From 3c87c3ff67c2193ab5bfaa31f0fb1ad5a68cd5af Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期五, 15 三月 2024 09:09:10 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java |   79 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 79 insertions(+), 0 deletions(-)

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 178461f..4d12fda 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
@@ -379,4 +379,83 @@
         orderProcessDetailMapper.updateQuantity(reportingWork.getReportingWorkId(),reportingWork.getThisProcess(),"add");
         return  true;
     }
+    //鎶ュ伐绠$悊鏌ヨ
+    public Map<String, Object> selectReportingWorkSv(Integer pageNum, Integer pageSize, java.sql.Date selectTime1, java.sql.Date selectTime2, String orderId, ReportingWork reportingWork) {
+        Integer offset = (pageNum - 1) * pageSize;
+        if (orderId.equals("null")) {
+            orderId = "";
+        }
+        Map<String, Object> map = new HashMap<>();
+        map.put("data", reportingWorkMapper.selectReportingWorkMp(offset, pageSize, selectTime1, selectTime2, orderId, reportingWork));
+        map.put("total", reportingWorkMapper.getPageTotal(offset, pageSize, selectTime1, selectTime2, orderId, reportingWork));
+        //System.out.println(map.get("data"));
+        return map;
+    }
+
+    public Boolean deleteWorkSv(String reportingWorkId, String processId, String thisProcess) {
+        if (!reportingWorkId.isEmpty() && !processId.isEmpty() && !thisProcess.isEmpty()) {
+            //鑾峰彇褰撳墠鎶ュ伐缂栧彿涓嬪伐搴�
+            String nextProcess = reportingWorkMapper.selectNextProcess(reportingWorkId);
+            //鏌ヨ褰撳墠鎶ュ伐缂栧彿涓嬪伐搴忔槸鍚︽姤宸�
+            Integer count = reportingWorkMapper.selectCountByProcessId(processId, nextProcess);
+            //鑾峰彇鏈�鍚庝竴閬撳伐搴�
+            String lastProcess = reportingWorkMapper.selectLastProcess(processId);
+            //鍒ゆ柇鏄惁鏄叆搴撳伐搴�
+            if (lastProcess.equals(thisProcess)) {//鏄叆搴撳伐搴�
+                //鏌ヨ璇ユ祦绋嬪崱鏁伴噺銆佸彲鍏ュ簱鏁伴噺銆佸凡鍏ュ簱鏁伴噺
+                Map<String, Object> list = reportingWorkMapper.selectReceiptQuantity(processId);
+                // System.out.println(list.get("quantity")+"--"+list.get("inventoryQuantity")+"---"+list.get("receivedQuantity"));
+                if (list.get("quantity") == list.get("receiptQuantity")) {
+                    return false;
+                } else {
+                    //杞崲绫诲瀷:宸插叆搴撴暟閲�
+                    Integer receiptQuantity = Integer.parseInt(list.get("receivedQuantity").toString());
+                    //杞崲绫诲瀷:鍙叆搴撴暟閲�
+                    Integer inventoryQuantity = Integer.parseInt(list.get("inventoryQuantity").toString());
+                    //鏌ヨ璇ユ姤宸ョ紪鍙锋湰宸ュ簭瀹屽伐鏁伴噺
+                    Integer completedQuantity = reportingWorkMapper.selectCompletedQuantity(reportingWorkId);
+                    //褰撹宸ュ簭瀹屽伐鏁伴噺灏忎簬绛変簬宸插叆搴撴暟閲忔椂
+                    //System.out.println("inventoryQuantity:" + inventoryQuantity +"completedQuantity:" + completedQuantity + "---receiptQuantity:" + receiptQuantity);
+                    //鍙叆搴撴暟閲�-宸插叆搴撴暟閲�>=鎶ュ伐缂栧彿鏈伐搴忓畬宸ユ暟閲�
+                    if (inventoryQuantity - receiptQuantity >= completedQuantity) {
+                        //鏌ヨ褰撳墠鎶ュ伐缂栧彿瀹屽伐娆$牬鏁伴噺鐨勬暟鎹�
+                        List<Map<String, Object>> workDateList = reportingWorkMapper.reportingWorkDate(reportingWorkId);
+                        for (Map<String, Object> item : workDateList) {
+
+                            //鏇存柊娴佺▼鍗″彲鍏ュ簱鏁伴噺
+                            reportingWorkMapper.updateInventoryQuantity(processId, item.get("order_number"), item.get("technology_number"), item.get("completed_quantity"));
+                            //鏇存柊鎶ュ伐娴佺▼琛ㄦ暟鎹�
+                            reportingWorkMapper.updateWorkProcess(processId, item.get("order_number"), item.get("technology_number"), item.get("completed_quantity"), item.get("breakage_quantity"), thisProcess);
+                        }
+                        //鍒犻櫎鎶ュ伐锛屽皢瀹℃牳鐘舵�佹敼涓�-1
+                        reportingWorkMapper.deleteWork(reportingWorkId);
+                        return true;
+                    } else {
+                        return false;
+                    }
+                }
+
+            }
+          else{//涓嶆槸鍏ュ簱宸ュ簭
+              if (count==0){
+                  //鏌ヨ褰撳墠鎶ュ伐缂栧彿瀹屽伐娆$牬鏁伴噺鐨勬暟鎹�
+                  List<Map<String, Object>> workDateList=reportingWorkMapper.reportingWorkDate(reportingWorkId);
+                  for (Map<String, Object> item : workDateList) {
+                      //鏇存柊鎶ュ伐娴佺▼琛ㄦ暟鎹�
+                      reportingWorkMapper.updateWorkProcess(processId,item.get("order_number"),item.get("technology_number"),item.get("completed_quantity"),item.get("breakage_quantity"),thisProcess);
+                  }
+                  //鍒犻櫎鎶ュ伐锛屽皢瀹℃牳鐘舵�佹敼涓�-1
+                  reportingWorkMapper.deleteWork(reportingWorkId);
+                  return true;
+              }
+            else {
+                return false;
+            }
+          }
+
+
+        } else {
+            return false;
+        }
+    }
 }

--
Gitblit v1.8.0