From 3d4cb4fafdee76f0dc2f895f21a37bfa0f638c6a Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 16 一月 2026 15:09:50 +0800
Subject: [PATCH] 生产报工的新增和删除已经投入产出
---
src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java | 67 +++++++++++++++++++++++++--------
1 files changed, 50 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java b/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
index c678c48..ee7f721 100644
--- a/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
+++ b/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
@@ -3,13 +3,17 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.math.LongMath;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.procurementrecord.dto.ProcurementAddDto;
import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd;
import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
import com.ruoyi.procurementrecord.service.ProcurementRecordOutService;
+import com.ruoyi.procurementrecord.service.ProcurementRecordService;
import com.ruoyi.sales.mapper.ShipmentApprovalMapper;
import com.ruoyi.sales.mapper.ShippingInfoMapper;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
@@ -26,6 +30,7 @@
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
+import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@@ -43,6 +48,8 @@
private ISalesLedgerProductService salesLedgerProductService;
@Autowired
private ProcurementRecordOutService procurementRecordOutService;
+ @Autowired
+ private ProcurementRecordService procurementRecordStorageService;
@GetMapping("/listPage")
@ApiOperation("鍙戣揣瀹℃壒鍒楄〃")
@@ -55,34 +62,60 @@
@ApiOperation("鍙戣揣瀹℃壒,鏇存柊鍙戣揣瀹℃壒鐘舵��")
@Transactional(rollbackFor = Exception.class)
public AjaxResult update(@RequestBody ShipmentApproval req) {
+
+ // 鏌ヨ鍙戣揣瀹℃壒
ShipmentApproval shipmentApproval = shipmentApprovalMapper.selectById(req.getId());
if (shipmentApproval == null) {
return AjaxResult.error("鍙戣揣瀹℃壒涓嶅瓨鍦�");
}
+ // 鏇存柊鍙戣揣瀹℃壒鐘舵��
shipmentApproval.setApproveStatus(req.getApproveStatus());
boolean update = shipmentApprovalService.updateById(shipmentApproval);
- if(update){
- SalesLedgerProduct salesLedgerProduct = salesLedgerProductService.getById(shipmentApproval.getSalesLedgerProductId());
- salesLedgerProduct.setApproveStatus(req.getApproveStatus());
- salesLedgerProductService.updateById(salesLedgerProduct);
- if(req.getApproveStatus()==3){
- //鍙戣揣瀹℃壒閫氳繃锛岀敓浜ц璁㈠崟鍑哄簱璁板綍
- ProcurementRecordOutAdd procurementRecordOutAdd = new ProcurementRecordOutAdd();
- procurementRecordOutAdd.setSalesLedgerProductId(Math.toIntExact(salesLedgerProduct.getId()));
- procurementRecordOutAdd.setType(2);
- procurementRecordOutAdd.setUserId(Math.toIntExact(getUserId()));
- procurementRecordOutAdd.setQuantity(String.valueOf(salesLedgerProduct.getQuantity()));
- //鑾峰彇褰撳墠鏃堕棿
- LocalDateTime now = LocalDateTime.now();
- procurementRecordOutAdd.setTime(now.toString());
- procurementRecordOutService.stockout(procurementRecordOutAdd);
- }
+ if (!update) {
+ // 浜嬪姟鍥炴粴
+ throw new ServiceException("鍙戣揣瀹℃壒鏇存柊澶辫触");
}
- return update ? AjaxResult.success() : AjaxResult.error();
+ // 鏌ヨ鍏宠仈鐨勯攢鍞彴璐︿骇鍝�
+ SalesLedgerProduct salesLedgerProduct = salesLedgerProductService.getById(shipmentApproval.getSalesLedgerProductId());
+ if (salesLedgerProduct == null) {
+ // 鎶涘紓甯镐簨鍔″洖婊�
+ throw new ServiceException("閿�鍞彴璐︿笉瀛樺湪锛屽鎵瑰洖婊�");
+ }
+
+ // 鍚屾鏇存柊閿�鍞彴璐︿骇鍝佺殑瀹℃壒鐘舵��
+ salesLedgerProduct.setApproveStatus(req.getApproveStatus());
+ salesLedgerProductService.updateById(salesLedgerProduct);
+
+ // 瀹℃壒閫氳繃
+ if (req.getApproveStatus() == 3) {
+ // 鏌ヨ閲囪喘鍏ュ簱璁板綍
+ LambdaQueryWrapper<ProcurementRecordStorage> lambdaQueryWrapper = new LambdaQueryWrapper<ProcurementRecordStorage>()
+ .eq(ProcurementRecordStorage::getSalesLedgerProductId, req.getSalesLedgerProductId());
+ ProcurementRecordStorage procurementRecordStorage = procurementRecordStorageService.getOne(lambdaQueryWrapper);
+
+ if (procurementRecordStorage == null) {
+ // 淇濊瘉鍓嶉潰鐨勪慨鏀瑰叏閮ㄥ洖婊�
+ throw new ServiceException("閲囪喘璁板綍涓嶅瓨鍦紝瀹℃壒鍥炴粴");
+ }
+
+ // 鐢熸垚鍑哄簱璁板綍
+ ProcurementRecordOutAdd procurementRecordOutAdd = new ProcurementRecordOutAdd();
+ procurementRecordOutAdd.setId(procurementRecordStorage.getId());
+ procurementRecordOutAdd.setSalesLedgerProductId((long) Math.toIntExact(salesLedgerProduct.getId()));
+ procurementRecordOutAdd.setType(2);
+ procurementRecordOutAdd.setUserId(Math.toIntExact(getUserId()));
+ procurementRecordOutAdd.setQuantity(salesLedgerProduct.getQuantity().toPlainString());
+ procurementRecordOutAdd.setTime(LocalDate.now().toString());
+
+ procurementRecordOutService.stockout(procurementRecordOutAdd);
+ }
+
+ return AjaxResult.success();
}
+
/**
* 瀵煎嚭鍙戣揣淇℃伅绠$悊
*/
--
Gitblit v1.9.3