From 57fc660acff85425c2b4f8dfdb7801068188dcf3 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期四, 25 十二月 2025 11:45:52 +0800
Subject: [PATCH] 提交报工上传mysql做数量限制

---
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java     |   42 ++++++++++++++++++++++++++++++++++++++++++
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java |    2 ++
 north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml                   |    8 ++++++++
 north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java                  |    3 +++
 4 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java b/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
index 0d09f44..f3a5939 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
@@ -68,6 +68,9 @@
     private Integer importNumber;
     //璁㈠崟杞Щ瀵煎嚭鏁伴噺
     private Integer exportNumber;
+
+    //缁堟鏁伴噺
+    private Integer terminationQuantity;
     //杩炵嚎鐘舵��(0涓嶈繛绾�1杩炵嚎锛岄粯璁�1锛屾坊鍔犳椂闂�
     private Integer onlineStatus;
     //寤虹珛鏃堕棿
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java
index 52c4b3a..1926bbb 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java
@@ -28,4 +28,6 @@
     Integer selectInventory(@Param("processId") String processId, @Param("orderNumber") Integer orderNumber, @Param("technologyNumber") Integer technologyNumber, String thisProcess);
 
     String getGlassPliesCount(String reportingWorkId);
+
+    int selectFinishQuantity(String reportingWorkId);
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
index d3e2920..646858a 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -1728,6 +1728,38 @@
                                 JSONObject.toJSONString(stringRedisTemplate.opsForHash().entries(detailKey))
                                 , ReportingWorkDetail.class
                         );
+
+                        //鍒ゆ柇娴佺▼鍗℃槸鍚︽姤婊�
+                        FlowCard flowCard = flowCardMapper.selectOne(new LambdaQueryWrapper<FlowCard>()
+                                .eq(FlowCard::getProcessId, reportingWork.getProcessId())
+                                .eq(FlowCard::getOrderNumber, reportingWorkDetail.getOrderNumber())
+                                .eq(FlowCard::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber())
+                        );
+                        //鐢熶骇鏁伴噺= 娴佺▼鍗℃暟閲�-缁堟鏁伴噺
+                        int flowCardReportingWorkNum = flowCard.getQuantity()-flowCard.getTerminationQuantity();
+                        OrderProcessDetail orderProcessDetail = orderProcessDetailMapper
+                                .selectOne(new LambdaQueryWrapper<OrderProcessDetail>()
+                                        .eq(OrderProcessDetail::getProcessId, reportingWork.getProcessId())
+                                        .eq(OrderProcessDetail::getOrderNumber, reportingWorkDetail.getOrderNumber())
+                                        .eq(OrderProcessDetail::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber())
+                                        .eq(OrderProcessDetail::getProcess, reportingWork.getThisProcess())
+                                );
+                        //鎶ュ伐鏁伴噺
+                        int completedQuantity = reportingWorkDetail.getCompletedQuantity();
+                        //宸叉姤鏁伴噺
+                        int finishReportingWorkNum =  orderProcessDetail.getReportingWorkNum();
+
+                        //鑻ユ姤宸ユ暟閲�+宸叉姤鏁伴噺>娴佺▼鍗℃暟閲� 鍒欐姤宸ユ暟閲忎负娴佺▼鍗℃暟閲�-宸叉姤鏁伴噺
+                        if((completedQuantity+finishReportingWorkNum)>flowCardReportingWorkNum){
+                            completedQuantity = flowCardReportingWorkNum - finishReportingWorkNum;
+                            reportingWorkDetail.setCompletedQuantity(completedQuantity);
+                            //鑻ユ姤宸ユ暟閲忓皬浜�0 鍒欐姤宸ユ暟閲忎负0
+                            if(completedQuantity<0){
+                                reportingWorkDetail.setCompletedQuantity(0);
+                            }
+                        }
+
+
                         reportingWorkDetail.setReportingWorkId(reportingWorkId);
                         reportingWorkDetailMapper.insert(reportingWorkDetail);
 
@@ -1743,8 +1775,18 @@
 
                         orderProcessDetailMapper.update(null, updateWrapper);
                     });
+
+                    //鑾峰彇瀹屽伐鏄庣粏鏁伴噺鎬诲拰
+                    int num   = reportingWorkDetailMapper.selectFinishQuantity(reportingWorkId);
+                    reportingWorkMapper.update(null,
+                            new LambdaUpdateWrapper<ReportingWork>()
+                                    .eq(ReportingWork::getReportingWorkId, reportingWorkId)
+                                    .setSql("this_completed_quantity = " + num)
+                    );
+
                 }
 
+
             });
         }
         Set<String> uploadKeys = stringRedisTemplate.keys("upload:reportingWork:*");
diff --git a/north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml b/north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml
index b8a6891..1df8fd1 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml
@@ -268,4 +268,12 @@
 
     </select>
 
+    <select id="selectFinishQuantity">
+      select sum(a.completed_quantity) from (Select completed_quantity
+        from pp.reporting_work_detail
+        where reporting_work_id = #{reportingWorkId}
+        group by order_number) a
+
+    </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0