From cf65d0a608b21f07dc50a98b864dfe47def4f86b Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期一, 23 三月 2026 17:12:37 +0800
Subject: [PATCH] fix:1.产品删除 2.原材料展示 3.菜单优化 4.区分角色编辑删除
---
src/main/resources/mapper/consumables/ConsumablesInventoryMapper.xml | 7
src/main/java/com/ruoyi/basic/controller/ProductController.java | 12 --
src/main/java/com/ruoyi/consumables/controller/ConsumablesInRecordController.java | 22 ++++
src/main/resources/mapper/stock/StockInventoryMapper.xml | 3
src/main/java/com/ruoyi/stock/service/StockInRecordService.java | 2
src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java | 16 ---
src/main/resources/mapper/quality/RawMaterialMapper.xml | 14 +-
src/main/java/com/ruoyi/consumables/controller/ConsumablesOutRecordController.java | 25 ++++
src/main/java/com/ruoyi/quality/controller/RawMaterialController.java | 14 +-
src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java | 11 +-
src/main/java/com/ruoyi/stock/controller/StockInRecordController.java | 23 ++++
src/main/java/com/ruoyi/production/controller/ProductOrderController.java | 3
src/main/java/com/ruoyi/stock/controller/StockOutRecordController.java | 25 ++++
src/main/resources/mapper/system/SysMenuMapper.xml | 73 ++++++++++++++
src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java | 27 +++-
15 files changed, 197 insertions(+), 80 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/controller/ProductController.java b/src/main/java/com/ruoyi/basic/controller/ProductController.java
index 252ab4d..7d77ab8 100644
--- a/src/main/java/com/ruoyi/basic/controller/ProductController.java
+++ b/src/main/java/com/ruoyi/basic/controller/ProductController.java
@@ -17,11 +17,8 @@
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import com.ruoyi.sales.service.ISalesLedgerProductService;
-import com.ruoyi.sales.service.ISalesLedgerService;
-import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -36,7 +33,7 @@
private IProductService productService;
private IProductModelService productModelService;
- @Autowired
+
private ISalesLedgerProductService salesLedgerProductService;
/**
* 鏌ヨ浜у搧
@@ -80,13 +77,6 @@
public AjaxResult remove(@RequestBody Long[] ids) {
if (ids == null || ids.length == 0) {
return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
- }
- // 妫�鏌ユ槸鍚︽湁閿�鍞晢鍝佽褰曞叧鑱旇浜у搧
- LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.in(SalesLedgerProduct::getProductId, ids);
- List<SalesLedgerProduct> salesLedgerProductList = salesLedgerProductService.list(queryWrapper);
- if (salesLedgerProductList.size() > 0) {
- return AjaxResult.error("璇ヤ骇鍝佸瓨鍦ㄩ攢鍞�/閲囪喘璁板綍锛屼笉鑳藉垹闄�");
}
return toAjax(productService.delProductByIds(ids));
}
diff --git a/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java
index fdf2dd3..2f94b20 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java
@@ -12,23 +12,28 @@
import com.ruoyi.basic.pojo.ProductModel;
import com.ruoyi.basic.service.IProductService;
import com.ruoyi.common.utils.bean.BeanUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import lombok.AllArgsConstructor;
+import com.ruoyi.consumables.mapper.ConsumablesInventoryMapper;
+import com.ruoyi.consumables.pojo.ConsumablesInventory;
+import com.ruoyi.stock.mapper.StockInventoryMapper;
+import com.ruoyi.stock.pojo.StockInventory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Service
-@AllArgsConstructor
public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements IProductService {
+ @Autowired
private ProductMapper productMapper;
-
+ @Autowired
private ProductModelMapper productModelMapper;
+ @Autowired
+ private StockInventoryMapper stockInventoryMapper;
+ @Autowired
+ private ConsumablesInventoryMapper consumablesInventoryMapper;
@Override
public List<ProductTreeDto> selectProductList(ProductDto productDto) {
@@ -115,15 +120,21 @@
@Override
public int delProductByIds(Long[] ids) {
+
+ List<StockInventory> stockInventoryList = stockInventoryMapper.selectList(new LambdaQueryWrapper<StockInventory>().in(StockInventory::getProductId, Arrays.asList(ids)));
+ List<ConsumablesInventory> consumablesInventoryList = consumablesInventoryMapper.selectList(new LambdaQueryWrapper<ConsumablesInventory>().in(ConsumablesInventory::getProductId, Arrays.asList(ids)));
+ if (!stockInventoryList.isEmpty() || !consumablesInventoryList.isEmpty()) {
+ throw new RuntimeException("璇ヤ骇鍝佸瓨鍦ㄥ簱瀛樺叧鑱�!");
+ }
+
// 1. 鍒犻櫎瀛愯〃 product_model 涓叧鑱旂殑鏁版嵁
LambdaQueryWrapper<ProductModel> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(ProductModel::getProductId, ids);
productModelMapper.delete(queryWrapper);
// 2. 鍒犻櫎涓昏〃 product 鏁版嵁
- int deleteCount = productMapper.deleteBatchIds(Arrays.asList(ids));
- return deleteCount;
+ return productMapper.deleteBatchIds(Arrays.asList(ids));
}
}
diff --git a/src/main/java/com/ruoyi/consumables/controller/ConsumablesInRecordController.java b/src/main/java/com/ruoyi/consumables/controller/ConsumablesInRecordController.java
index 2b11e0d..12318ea 100644
--- a/src/main/java/com/ruoyi/consumables/controller/ConsumablesInRecordController.java
+++ b/src/main/java/com/ruoyi/consumables/controller/ConsumablesInRecordController.java
@@ -2,14 +2,18 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.consumables.dto.ConsumablesInRecordDto;
import com.ruoyi.consumables.service.ConsumablesInRecordService;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.stock.dto.StockInRecordDto;
+import com.ruoyi.stock.word.WeighbridgeDocGenerator;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
@@ -22,6 +26,8 @@
public class ConsumablesInRecordController {
@Autowired
private ConsumablesInRecordService consumablesInRecordService;
+ @Autowired
+ private WeighbridgeDocGenerator weighbridgeDocGenerator;
@GetMapping("/listPage")
@Log(title = "鐢熶骇鍏ュ簱-鍏ュ簱绠$悊-鍒楄〃", businessType = BusinessType.OTHER)
@@ -31,9 +37,23 @@
return AjaxResult.success(result);
}
-
+ @PostMapping("/editStockInStock")
+ @PreAuthorize("@ss.hasPermi('c_receipt_edit')")
+ @ApiOperation("缂栬緫鍏ュ簱璁板綍")
+ public AjaxResult editStockInStock(@RequestBody ConsumablesInRecordDto consumablesInRecordDto) {
+ if (consumablesInRecordDto.getId() == null) {
+ return AjaxResult.error("鍏ュ簱璁板綍ID涓嶈兘涓虹┖");
+ }
+ StockInRecordDto stockInRecordDto = new StockInRecordDto();
+ BeanUtils.copyProperties(consumablesInRecordDto, stockInRecordDto);
+ String absoluteDocPath = weighbridgeDocGenerator.generateWeighbridgeDoc(stockInRecordDto);
+ consumablesInRecordDto.setWeighbridgeDocPath(absoluteDocPath);
+ consumablesInRecordDto.setStockInNum(consumablesInRecordDto.getQualitity());
+ return AjaxResult.success(consumablesInRecordService.updateById(consumablesInRecordDto));
+ }
@DeleteMapping("")
+ @PreAuthorize("@ss.hasPermi('c_receipt_cancel')")
@Log(title = "鍏ュ簱绠$悊-鍒犻櫎鍏ュ簱", businessType = BusinessType.DELETE)
public AjaxResult delete(@RequestBody List<Long> ids) {
if(CollectionUtils.isEmpty(ids)){
diff --git a/src/main/java/com/ruoyi/consumables/controller/ConsumablesOutRecordController.java b/src/main/java/com/ruoyi/consumables/controller/ConsumablesOutRecordController.java
index 419bd1f..da886ce 100644
--- a/src/main/java/com/ruoyi/consumables/controller/ConsumablesOutRecordController.java
+++ b/src/main/java/com/ruoyi/consumables/controller/ConsumablesOutRecordController.java
@@ -2,14 +2,18 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.consumables.dto.ConsumablesOutRecordDto;
import com.ruoyi.consumables.service.ConsumablesOutRecordService;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.stock.dto.StockInRecordDto;
+import com.ruoyi.stock.word.WeighbridgeDocGenerator;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
@@ -30,6 +34,8 @@
public class ConsumablesOutRecordController {
@Autowired
private ConsumablesOutRecordService consumablesUnInventoryDto;
+ @Autowired
+ private WeighbridgeDocGenerator weighbridgeDocGenerator;
@GetMapping("/listPage")
@Log(title = "鐢熶骇鍑哄簱-鍑哄簱绠$悊-鍒楄〃", businessType = BusinessType.OTHER)
@@ -45,13 +51,24 @@
return AjaxResult.success(consumablesUnInventoryDto.add(consumablesOutRecordDto));
}
- @PutMapping("/{id}")
- @Log(title = "鍑哄簱绠$悊-鏇存柊鍑哄簱", businessType = BusinessType.UPDATE)
- public AjaxResult update(@PathVariable("id") Long id, @RequestBody ConsumablesOutRecordDto consumablesOutRecordDto) {
- return AjaxResult.success(consumablesUnInventoryDto.update(id, consumablesOutRecordDto));
+ @PostMapping("/editStockOut")
+ @PreAuthorize("@ss.hasPermi('c_dispatch_edit')")
+ @ApiOperation("缂栬緫鍑哄簱璁板綍")
+ public AjaxResult update(@RequestBody ConsumablesOutRecordDto consumablesOutRecordDto) {
+ if (consumablesOutRecordDto.getId() == null) {
+ return AjaxResult.error("鍑哄簱璁板綍ID涓嶈兘涓虹┖");
+ }
+ StockInRecordDto stockInRecordDto = new StockInRecordDto();
+ BeanUtils.copyProperties(consumablesOutRecordDto, stockInRecordDto);
+ stockInRecordDto.setStockInNum(consumablesOutRecordDto.getStockOutNum());
+ String absoluteDocPath = weighbridgeDocGenerator.generateWeighbridgeDoc(stockInRecordDto);
+ consumablesOutRecordDto.setWeighbridgeDocPath(absoluteDocPath);
+ consumablesOutRecordDto.setStockOutNum(consumablesOutRecordDto.getQualitity());
+ return AjaxResult.success(consumablesUnInventoryDto.updateById(consumablesOutRecordDto));
}
@DeleteMapping("")
+ @PreAuthorize("@ss.hasPermi('c_dispatch_cancel')")
@Log(title = "鍑哄簱绠$悊-鍒犻櫎鍑哄簱", businessType = BusinessType.DELETE)
public AjaxResult delete(@RequestBody List<Long> ids) {
if(CollectionUtils.isEmpty(ids)){
diff --git a/src/main/java/com/ruoyi/production/controller/ProductOrderController.java b/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
index 09bd010..8a68436 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
@@ -14,7 +14,6 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
-import java.math.BigDecimal;
import java.util.List;
@RequestMapping("/productOrder")
@@ -63,7 +62,7 @@
@ApiOperation("鏂板鐢熶骇璁㈠崟")
- @PostMapping("addProductOrder")
+ @PostMapping("/addProductOrder")
public R addProductOrder(@RequestBody ProductOrder productOrder) {
return R.ok(productOrderService.addProductOrder(productOrder));
}
diff --git a/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java b/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
index e558c30..b6c99cd 100644
--- a/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
+++ b/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
@@ -4,7 +4,8 @@
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.quality.pojo.QualityUnqualified;
import com.ruoyi.quality.service.IQualityUnqualifiedService;
-import org.springframework.util.CollectionUtils;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -39,12 +40,8 @@
* @return
*/
@DeleteMapping("/del")
+ @PreAuthorize("@ss.hasPermi('nonconforming_cancel')")
public AjaxResult delQualityUnqualified(@RequestBody List<Integer> ids) {
- qualityUnqualifiedService.listByIds(ids).stream().forEach(qualityUnqualified -> {
- if (qualityUnqualified.getInspectState()==1){
- throw new RuntimeException("璇ヤ笉鍚堟牸鏁版嵁宸茬粡澶勭悊鏃犳硶鍒犻櫎!");
- }
- });
return AjaxResult.success(qualityUnqualifiedService.removeBatchByIds(ids));
}
@@ -64,6 +61,8 @@
* @return
*/
@PostMapping("/update")
+ @PreAuthorize("@ss.hasPermi('nonconforming_edit')")
+ @ApiOperation("涓嶅悎鏍肩鐞嗕慨鏀�")
public AjaxResult update(@RequestBody QualityUnqualified qualityUnqualified) {
return AjaxResult.success(qualityUnqualifiedService.updateById(qualityUnqualified));
}
diff --git a/src/main/java/com/ruoyi/quality/controller/RawMaterialController.java b/src/main/java/com/ruoyi/quality/controller/RawMaterialController.java
index ffcbba4..b5939be 100644
--- a/src/main/java/com/ruoyi/quality/controller/RawMaterialController.java
+++ b/src/main/java/com/ruoyi/quality/controller/RawMaterialController.java
@@ -2,13 +2,15 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.enums.RawMaterialInspectState;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.quality.dto.RawMaterialDto;
-import com.ruoyi.quality.pojo.*;
+import com.ruoyi.quality.pojo.QualityInspectFile;
+import com.ruoyi.quality.pojo.RawMaterial;
+import com.ruoyi.quality.pojo.RawMaterialQualityInspectItem;
import com.ruoyi.quality.service.IQualityInspectFileService;
import com.ruoyi.quality.service.RawMaterialQualityInspectItemService;
import com.ruoyi.quality.service.RawMaterialService;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
@@ -96,17 +98,11 @@
* 鍘熸枡鍒犻櫎
*/
@DeleteMapping("")
+ @PreAuthorize("@ss.hasPermi('raw_cancel')")
@Transactional(rollbackFor = Exception.class)
public AjaxResult delete(@RequestBody List<Integer> ids) {
if(CollectionUtils.isEmpty(ids)){
return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
- }
- //濡傛灉宸茬粡鎻愪氦灏变笉鍏佽鍒犻櫎
- List<RawMaterial> rawMaterials = rawMaterialService.list(Wrappers.<RawMaterial>lambdaQuery()
- .in(RawMaterial::getId,ids)
- .eq(RawMaterial::getInspectState, RawMaterialInspectState.RawMaterialInspectStateSubmitted.getCode()));
- if(!CollectionUtils.isEmpty(rawMaterials)){
- throw new RuntimeException("宸叉彁浜ょ殑鏁版嵁涓嶅厑璁稿垹闄�");
}
//鍒犻櫎妫�楠屽弬鏁�
rawMaterialQualityInspectItemService.remove(Wrappers.<RawMaterialQualityInspectItem>lambdaQuery()
diff --git a/src/main/java/com/ruoyi/stock/controller/StockInRecordController.java b/src/main/java/com/ruoyi/stock/controller/StockInRecordController.java
index b12fc67..98e9e39 100644
--- a/src/main/java/com/ruoyi/stock/controller/StockInRecordController.java
+++ b/src/main/java/com/ruoyi/stock/controller/StockInRecordController.java
@@ -7,9 +7,11 @@
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.stock.dto.StockInRecordDto;
import com.ruoyi.stock.service.StockInRecordService;
+import com.ruoyi.stock.word.WeighbridgeDocGenerator;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
@@ -22,6 +24,9 @@
public class StockInRecordController {
@Autowired
private StockInRecordService stockInRecordService;
+ @Autowired
+ private WeighbridgeDocGenerator weighbridgeDocGenerator;
+
@GetMapping("/listPage")
@Log(title = "鐢熶骇鍏ュ簱-鍏ュ簱绠$悊-鍒楄〃", businessType = BusinessType.OTHER)
@@ -31,12 +36,24 @@
return AjaxResult.success(result);
}
-
+ @PostMapping("/editStockInStock")
+ @PreAuthorize("@ss.hasPermi('receipt_edit')")
+ @ApiOperation("缂栬緫鍏ュ簱璁板綍")
+ public AjaxResult editStockInStock(@RequestBody StockInRecordDto stockInRecordDto) {
+ if (stockInRecordDto.getId() == null) {
+ return AjaxResult.error("鍏ュ簱璁板綍ID涓嶈兘涓虹┖");
+ }
+ stockInRecordDto.setStockInNum(stockInRecordDto.getNetWeight());
+ String absoluteDocPath = weighbridgeDocGenerator.generateWeighbridgeDoc(stockInRecordDto);
+ stockInRecordDto.setWeighbridgeDocPath(absoluteDocPath);
+ return AjaxResult.success(stockInRecordService.updateById(stockInRecordDto));
+ }
@DeleteMapping("")
+ @PreAuthorize("@ss.hasPermi('receipt_cancel')")
@Log(title = "鍏ュ簱绠$悊-鍒犻櫎鍏ュ簱", businessType = BusinessType.DELETE)
public AjaxResult delete(@RequestBody List<Long> ids) {
- if(CollectionUtils.isEmpty(ids)){
+ if (CollectionUtils.isEmpty(ids)) {
return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
}
return AjaxResult.success(stockInRecordService.batchDelete(ids));
@@ -45,7 +62,7 @@
@PostMapping("/exportStockInRecord")
@ApiOperation("瀵煎嚭鍏ュ簱璁板綍")
public void exportStockInRecord(HttpServletResponse response, StockInRecordDto stockInRecordDto) {
- stockInRecordService.exportStockInRecord(response,stockInRecordDto);
+ stockInRecordService.exportStockInRecord(response, stockInRecordDto);
}
}
diff --git a/src/main/java/com/ruoyi/stock/controller/StockOutRecordController.java b/src/main/java/com/ruoyi/stock/controller/StockOutRecordController.java
index bd98859..c213393 100644
--- a/src/main/java/com/ruoyi/stock/controller/StockOutRecordController.java
+++ b/src/main/java/com/ruoyi/stock/controller/StockOutRecordController.java
@@ -2,14 +2,18 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.stock.dto.StockInRecordDto;
import com.ruoyi.stock.dto.StockOutRecordDto;
import com.ruoyi.stock.service.StockOutRecordService;
+import com.ruoyi.stock.word.WeighbridgeDocGenerator;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
@@ -30,6 +34,8 @@
public class StockOutRecordController {
@Autowired
private StockOutRecordService stockOutRecordService;
+ @Autowired
+ private WeighbridgeDocGenerator weighbridgeDocGenerator;
@GetMapping("/listPage")
@Log(title = "鐢熶骇鍑哄簱-鍑哄簱绠$悊-鍒楄〃", businessType = BusinessType.OTHER)
@@ -45,13 +51,24 @@
return AjaxResult.success(stockOutRecordService.add(stockOutRecordDto));
}
- @PutMapping("/{id}")
- @Log(title = "鍑哄簱绠$悊-鏇存柊鍑哄簱", businessType = BusinessType.UPDATE)
- public AjaxResult update(@PathVariable("id") Long id, @RequestBody StockOutRecordDto stockOutRecordDto) {
- return AjaxResult.success(stockOutRecordService.update(id, stockOutRecordDto));
+ @PostMapping("/editStockOut")
+ @PreAuthorize("@ss.hasPermi('dispatch_edit')")
+ @ApiOperation("缂栬緫鍑哄簱璁板綍")
+ public AjaxResult update(@RequestBody StockOutRecordDto stockOutRecordDto) {
+ if (stockOutRecordDto.getId() == null) {
+ return AjaxResult.error("鍑哄簱璁板綍ID涓嶈兘涓虹┖");
+ }
+ StockInRecordDto stockInRecordDto = new StockInRecordDto();
+ BeanUtils.copyProperties(stockOutRecordDto, stockInRecordDto);
+ stockInRecordDto.setStockInNum(stockOutRecordDto.getStockOutNum());
+ String absoluteDocPath = weighbridgeDocGenerator.generateWeighbridgeDoc(stockInRecordDto);
+ stockOutRecordDto.setWeighbridgeDocPath(absoluteDocPath);
+ stockOutRecordDto.setStockOutNum(stockOutRecordDto.getStockOutNum());
+ return AjaxResult.success(stockOutRecordService.updateById(stockOutRecordDto));
}
@DeleteMapping("")
+ @PreAuthorize("@ss.hasPermi('dispatch_cancel')")
@Log(title = "鍑哄簱绠$悊-鍒犻櫎鍑哄簱", businessType = BusinessType.DELETE)
public AjaxResult delete(@RequestBody List<Long> ids) {
if(CollectionUtils.isEmpty(ids)){
diff --git a/src/main/java/com/ruoyi/stock/service/StockInRecordService.java b/src/main/java/com/ruoyi/stock/service/StockInRecordService.java
index 29ba7e5..885487a 100644
--- a/src/main/java/com/ruoyi/stock/service/StockInRecordService.java
+++ b/src/main/java/com/ruoyi/stock/service/StockInRecordService.java
@@ -14,8 +14,6 @@
int add(StockInRecordDto stockInRecordDto);
- int update(Long id, StockInRecordDto stockInRecordDto);
-
int batchDelete(List<Long> ids);
void exportStockInRecord(HttpServletResponse response, StockInRecordDto stockInRecordDto);
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
index 30e545f..a11ba2f 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
@@ -4,8 +4,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
+import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.EnumUtil;
import com.ruoyi.common.utils.OrderUtils;
@@ -51,20 +51,6 @@
StockInRecord stockInRecord = new StockInRecord();
BeanUtils.copyProperties(stockInRecordDto, stockInRecord);
return stockInRecordMapper.insert(stockInRecord);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public int update(Long id, StockInRecordDto stockInRecordDto) {
- // 鍒ゆ柇瀵硅薄鏄惁瀛樺湪
- StockInRecord stockInRecord = stockInRecordMapper.selectById(id);
- if (stockInRecord == null){
- throw new BaseException("璇ュ叆搴撹褰曚笉瀛樺湪,鏃犳硶鏇存柊!!!");
- }
-
- String[] ignoreProperties = {"id", "inbound_batches"};//鎺掗櫎id灞炴��
- BeanUtils.copyProperties(stockInRecordDto, stockInRecord, ignoreProperties);
- return stockInRecordMapper.updateById(stockInRecord);
}
@Override
diff --git a/src/main/resources/mapper/consumables/ConsumablesInventoryMapper.xml b/src/main/resources/mapper/consumables/ConsumablesInventoryMapper.xml
index ebc0712..fa16914 100644
--- a/src/main/resources/mapper/consumables/ConsumablesInventoryMapper.xml
+++ b/src/main/resources/mapper/consumables/ConsumablesInventoryMapper.xml
@@ -60,8 +60,7 @@
select
si.id,
-- 褰撳墠鍑�閲� = 鍏ュ簱鍑�閲� - 鍑哄簱鍑�閲�
- (COALESCE(sir.total_net_weight,0) - COALESCE(sor.total_net_weight,0)) as net_weight,
- si.qualitity,
+ (COALESCE(sir.total_net_weight,0) - COALESCE(sor.total_net_weight,0)) as qualitity,
si.purchaser,
COALESCE(si.locked_quantity, 0) as locked_quantity,
si.product_model_id,
@@ -85,7 +84,7 @@
left join (
select
product_model_id,
- sum(net_weight) as total_net_weight
+ sum(stock_in_num) as total_net_weight
from consumables_in_record
group by product_model_id
) sir on si.product_model_id = sir.product_model_id
@@ -93,7 +92,7 @@
left join (
select
product_model_id,
- sum(net_weight) as total_net_weight
+ sum(stock_out_num) as total_net_weight
from consumables_out_record
group by product_model_id
) sor on si.product_model_id = sor.product_model_id
diff --git a/src/main/resources/mapper/quality/RawMaterialMapper.xml b/src/main/resources/mapper/quality/RawMaterialMapper.xml
index cddecc6..da34144 100644
--- a/src/main/resources/mapper/quality/RawMaterialMapper.xml
+++ b/src/main/resources/mapper/quality/RawMaterialMapper.xml
@@ -22,21 +22,21 @@
FROM raw_material rm
LEFT JOIN product_model pm ON rm.product_model_id = pm.id
LEFT JOIN product p ON p.id = pm.product_id
- where
- 1=1
- <if test="params.checkType != null ">
+ WHERE p.id IS NOT NULL
+ AND rm.id IS NOT NULL
+ <if test="params.checkType != null">
AND rm.check_type = #{params.checkType}
</if>
<if test="params.batchNo != null and params.batchNo != ''">
- and rm.batch_no like concat('%', #{params.batchNo}, '%')
+ AND rm.batch_no LIKE CONCAT('%', #{params.batchNo}, '%')
</if>
- <if test="params.inspectState != null ">
+ <if test="params.inspectState != null">
AND rm.inspect_state = #{params.inspectState}
</if>
- <if test="params.entryDateStart != null and params.entryDateStart != '' ">
+ <if test="params.entryDateStart != null and params.entryDateStart != ''">
AND rm.check_time >= #{params.entryDateStart}
</if>
- <if test="params.entryDateEnd != null and params.entryDateEnd != '' ">
+ <if test="params.entryDateEnd != null and params.entryDateEnd != ''">
AND rm.check_time <= #{params.entryDateEnd}
</if>
ORDER BY rm.check_time DESC
diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index 4427ee6..06a42c4 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -60,8 +60,7 @@
SELECT
si.id,
-- 褰撳墠鍑�閲� = 鍏ュ簱鍑�閲� - 鍑哄簱鍑�閲�
- (COALESCE(sir.total_net_weight, 0) - COALESCE(sor.total_net_weight, 0)) AS net_weight,
- si.qualitity,
+ (COALESCE(sir.total_net_weight, 0) - COALESCE(sor.total_net_weight, 0)) AS qualitity,
COALESCE(si.locked_quantity, 0) AS locked_quantity,
si.product_model_id,
si.create_time,
diff --git a/src/main/resources/mapper/system/SysMenuMapper.xml b/src/main/resources/mapper/system/SysMenuMapper.xml
index 20063e3..eae3933 100644
--- a/src/main/resources/mapper/system/SysMenuMapper.xml
+++ b/src/main/resources/mapper/system/SysMenuMapper.xml
@@ -30,8 +30,77 @@
</resultMap>
<sql id="selectMenuVo">
- select menu_id, menu_name, parent_id, order_num, path,app_component, component, `query`, route_name, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time
- from sys_menu
+ WITH RECURSIVE valid_menus AS (
+ SELECT
+ menu_id,
+ menu_name,
+ parent_id,
+ order_num,
+ path,
+ app_component,
+ component,
+ `query`,
+ route_name,
+ is_frame,
+ is_cache,
+ menu_type,
+ visible,
+ STATUS,
+ IFNULL(perms, '') AS perms,
+ icon,
+ create_time,
+ 1 AS LEVEL
+ FROM
+ sys_menu
+ WHERE
+ STATUS = 0
+ AND visible = 0
+ AND (parent_id = 0 OR parent_id IS NULL) UNION ALL
+ SELECT
+ m.menu_id,
+ m.menu_name,
+ m.parent_id,
+ m.order_num,
+ m.path,
+ m.app_component,
+ m.component,
+ m.`query`,
+ m.route_name,
+ m.is_frame,
+ m.is_cache,
+ m.menu_type,
+ m.visible,
+ m.STATUS,
+ IFNULL(m.perms, '') AS perms,
+ m.icon,
+ m.create_time,
+ vm.LEVEL + 1
+ FROM
+ sys_menu m
+ INNER JOIN valid_menus vm ON m.parent_id = vm.menu_id
+ WHERE
+ m.STATUS = 0
+ AND m.visible = 0
+ ) SELECT
+ menu_id,
+ menu_name,
+ parent_id,
+ order_num,
+ path,
+ app_component,
+ component,
+ `query`,
+ route_name,
+ is_frame,
+ is_cache,
+ menu_type,
+ visible,
+ STATUS,
+ perms,
+ icon,
+ create_time
+ FROM
+ valid_menus
</sql>
<select id="selectMenuList" parameterType="com.ruoyi.project.system.domain.SysMenu" resultMap="SysMenuResult">
--
Gitblit v1.9.3