From 6c95c2f6a3602fe6f92898dd322c20bbe955e69d Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 21 四月 2026 18:03:20 +0800
Subject: [PATCH] feat: 成品入库增加审批环节,原材质检后提交入库时增加一个审批环节

---
 src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java |   35 ++++++++++++++++++++++++++---------
 1 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
index a624661..22a6ca8 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -29,6 +29,8 @@
 import com.ruoyi.purchase.pojo.PurchaseLedger;
 import com.ruoyi.sales.mapper.CommonFileMapper;
 import com.ruoyi.sales.mapper.ShippingInfoMapper;
+import com.ruoyi.sales.mapper.SalesLedgerMapper;
+import com.ruoyi.sales.pojo.SalesLedger;
 import com.ruoyi.sales.pojo.CommonFile;
 import com.ruoyi.sales.pojo.ShippingInfo;
 import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
@@ -80,6 +82,9 @@
     @Autowired
     private  ISysNoticeService sysNoticeService;
 
+    @Autowired
+    private SalesLedgerMapper salesLedgerMapper;
+
     @Override
     public void addApprove(ApproveProcessVO approveProcessVO) throws Exception {
         SysUser sysUser = sysUserMapper.selectUserById(approveProcessVO.getApproveUser());
@@ -107,6 +112,7 @@
         approveProcess.setApproveUserNames(sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(",")));
         approveProcess.setApproveTime(StringUtils.isEmpty(approveProcessVO.getApproveTime()) ? null : dateFormat.parse(approveProcessVO.getApproveTime()));
         approveProcess.setApproveReason(approveProcessVO.getApproveReason());
+        approveProcess.setApproveRemark(approveProcessVO.getApproveRemark());
         approveProcess.setDeviceRepairId(approveProcessVO.getDeviceRepairId());
         approveProcess.setMaintenancePrice(approveProcessVO.getMaintenancePrice());
         approveProcess.setPrice(approveProcessVO.getPrice());
@@ -191,19 +197,28 @@
 
             //  鍙戣揣瀹℃壒鏌ヨ
             else if (record.getApproveType() == 7) {
-                String reason = record.getApproveReason(); // 鏍煎紡涓� "xx:...-..."
+                String reason = record.getApproveReason(); // 鏍煎紡涓� "xx:CONTRACT_NO"
                 if (StringUtils.hasText(reason) && reason.contains(":")) {
-                    // 鎻愬彇鍐掑彿鍚庨潰鐨勫彂璐у崟鍙�
-                    String shippingNo = reason.split(":")[1];
-                    // 鏍规嵁鍙戣揣鍗曞彿鏌ヨ鍙戣揣鍙拌处璁板綍
-                    ShippingInfo shippingInfo = shippingInfoMapper.selectOne(new LambdaQueryWrapper<ShippingInfo>()
-                            .eq(ShippingInfo::getShippingNo, shippingNo)
+                    // 鎻愬彇鍐掑彿鍚庨潰鐨勬爣璇嗙 (鍙兘鏄悎鍚屽彿鎴栧彂璐у崟鍙�)
+                    String identifier = reason.split(":")[1];
+                    // 1. 浼樺厛灏濊瘯鎵鹃攢鍞彴璐� (鏂伴�昏緫锛氬悎鍚屽彿鍚屾瀹℃壒)
+                    SalesLedger ledger = salesLedgerMapper.selectOne(new LambdaQueryWrapper<SalesLedger>()
+                            .eq(SalesLedger::getSalesContractNo, identifier)
                             .last("limit 1"));
-                    if (shippingInfo != null) {
-                        // 浣跨敤鍙戣揣鍙拌处鐨� 閿�鍞彴璐D 鍘绘煡闄勪欢
+                    if (ledger != null) {
                         allFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
-                                .eq(CommonFile::getCommonId, shippingInfo.getSalesLedgerId())
+                                .eq(CommonFile::getCommonId, ledger.getId())
                                 .eq(CommonFile::getType, FileNameType.SALE.getValue()));
+                    } else {
+                        // 2. 鍥為��鍒版棫閫昏緫锛氬彂璐у崟鍙�
+                        ShippingInfo shippingInfo = shippingInfoMapper.selectOne(new LambdaQueryWrapper<ShippingInfo>()
+                                .eq(ShippingInfo::getShippingNo, identifier)
+                                .last("limit 1"));
+                        if (shippingInfo != null) {
+                            allFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
+                                    .eq(CommonFile::getCommonId, shippingInfo.getSalesLedgerId())
+                                    .eq(CommonFile::getType, FileNameType.SALE.getValue()));
+                        }
                     }
                 }
             }
@@ -441,6 +456,8 @@
                 return "鍙戣揣瀹℃壒";
             case 8:
                 return "鍗遍櫓浣滀笟瀹℃壒";
+            case 9:
+                return "鍏ュ簱瀹℃壒";
         }
         return null;
     }

--
Gitblit v1.9.3