From 7c1af4c63e66754f0868c1a501f4895f9cbc9213 Mon Sep 17 00:00:00 2001
From: zhangchao <zc857179121@qq.com>
Date: 星期五, 15 十一月 2024 09:29:12 +0800
Subject: [PATCH] 双单位

---
 src/main/java/com/zy/asrs/controller/OrderController.java |  177 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 156 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index abc64da..df58107 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -56,6 +56,8 @@
     private MatService matService;
     @Autowired
     private AgvLocDetlService agvLocDetlService;
+    @Autowired
+    private FlowLogService flowLogService;
 
     @GetMapping("/doc/type/list")
     @Transactional
@@ -335,7 +337,7 @@
         List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
         List<Long> docIds = new ArrayList<>();
         for (DocType pakin : pakins) {
-            if (pakin.getDocId() == 36) {
+            if (pakin.getDocId() == 17) {
                 docIds.add(pakin.getDocId());
             }
         }
@@ -359,6 +361,7 @@
     @Transactional
     public R formAdd(@RequestBody OrderDomainParam param){
         Order order = orderService.selectByNo(param.getOrderNo());
+        long flowId = snowflakeIdWorker.nextId();
         if (order != null) {
             return R.error("鍗曟嵁缂栧彿宸插瓨鍦�");
         }
@@ -416,13 +419,36 @@
             }
             DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
             if (DetlDto.has(list, dto)) {
-                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime());
+                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode().trim(),orderDetl.getDeadTime());
+                Double anfme = item.getAnfme();
                 item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
                 if (!orderDetlService.updateById(item)) {
                     throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
                 }
+                // 娴佹按 -- 鏂板璁㈠崟鏄庣粏
+//                FlowLog flowLog = new FlowLog();
+//                flowLog.setFid(String.valueOf(flowId));
+//                flowLog.setOpType(2L);
+//                flowLog.setOrderNo(param.getOrderNo());
+//                flowLog.setThreeCode(orderDetl.getThreeCode().trim());
+//                flowLog.setMatnr(orderDetl.getMatnr());
+//                flowLog.setMaktx(orderDetl.getMaktx());
+//                flowLog.setOrderPrevious(anfme);
+//                flowLog.setOrderCurrent(anfme + orderDetl.getAnfme());
+//                flowLog.setOrderChanged(orderDetl.getAnfme());
+//                flowLog.setQtyPrevious(orderDetl.getQty());
+//                flowLog.setQtyCurrent(orderDetl.getQty());
+//                flowLog.setQtyChanged(0.0D);
+//                flowLog.setUserId(getUserId());
+//                flowLog.setAppeTime(now);
+//                if (!flowLogService.insert(flowLog)) {
+//                    throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+//                }
             } else {
                 list.add(dto);
+                if (!Cools.isEmpty(orderDetl.getThreeCode())){
+                    orderDetl.setThreeCode(orderDetl.getThreeCode().trim());
+                }
                 orderDetl.setOrderId(order.getId());
                 orderDetl.setOrderNo(order.getOrderNo());
                 orderDetl.setSource(param.getDocType().intValue());
@@ -435,6 +461,25 @@
                 if (!orderDetlService.insert(orderDetl)) {
                     throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
                 }
+//                // 娴佹按 -- 鏂板璁㈠崟鏄庣粏
+//                FlowLog flowLog = new FlowLog();
+//                flowLog.setFid(String.valueOf(flowId));
+//                flowLog.setOpType(1L);
+//                flowLog.setOrderNo(param.getOrderNo());
+//                flowLog.setThreeCode(orderDetl.getThreeCode().trim());
+//                flowLog.setMatnr(orderDetl.getMatnr());
+//                flowLog.setMaktx(orderDetl.getMaktx());
+//                flowLog.setOrderPrevious(0.0D);
+//                flowLog.setOrderCurrent(orderDetl.getAnfme());
+//                flowLog.setOrderChanged(orderDetl.getAnfme());
+//                flowLog.setQtyPrevious(0.0D);
+//                flowLog.setQtyCurrent(0.0D);
+//                flowLog.setQtyChanged(0.0D);
+//                flowLog.setUserId(getUserId());
+//                flowLog.setAppeTime(now);
+//                if (!flowLogService.insert(flowLog)) {
+//                    throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+//                }
             }
         }
         if (param.getDocType().intValue() == 32) {
@@ -481,13 +526,16 @@
             for (OrderDetl orderDetl : param.getOrderDetlList()) {
                 DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
                 if (DetlDto.has(dbList, dto)) {
-                    OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime());
+                    OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode().trim(),orderDetl.getDeadTime());
                     item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
                     if (!orderDetlService.updateById(item)) {
                         throw new CoolException("鐢熸垚鍗婃垚鍝佽皟鎷ㄥ崟鏄庣粏妗eけ璐�");
                     }
                 } else {
                     dbList.add(dto);
+                    if (!Cools.isEmpty(orderDetl.getThreeCode())){
+                        orderDetl.setThreeCode(orderDetl.getThreeCode().trim());
+                    }
                     orderDetl.setOrderId(order.getId());
                     orderDetl.setOrderNo(order.getOrderNo());
                     orderDetl.setSource(33);
@@ -551,13 +599,16 @@
                     if (orderDetl.getProcessSts() != 1) continue;
                     DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
                     if (DetlDto.has(dbList, dto)) {
-                        OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime());
+                        OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode().trim(),orderDetl.getDeadTime());
                         item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
                         if (!orderDetlService.updateById(item)) {
                             throw new CoolException("鐢熸垚鍗婃垚鍝佽皟鎷ㄥ崟鏄庣粏妗eけ璐�");
                         }
                     } else {
                         dbList.add(dto);
+                        if (!Cools.isEmpty(orderDetl.getThreeCode())){
+                            orderDetl.setThreeCode(orderDetl.getThreeCode().trim());
+                        }
                         orderDetl.setOrderId(order.getId());
                         orderDetl.setOrderNo(order.getOrderNo());
                         orderDetl.setSource(35);
@@ -570,11 +621,33 @@
                         if (!orderDetlService.insert(orderDetl)) {
                             throw new CoolException("鐢熸垚鍗婃垚鍝佽皟鎷ㄥ崟鏄庣粏妗eけ璐�");
                         }
+//                        // 娴佹按 -- 鏂板璁㈠崟鏄庣粏
+//                        FlowLog flowLog = new FlowLog();
+//                        flowLog.setFid(String.valueOf(flowId));
+//                        flowLog.setOpType(1L);
+//                        flowLog.setOrderNo(param.getOrderNo());
+//                        flowLog.setThreeCode(orderDetl.getThreeCode().trim());
+//                        flowLog.setMatnr(orderDetl.getMatnr());
+//                        flowLog.setMaktx(orderDetl.getMaktx());
+//                        flowLog.setOrderPrevious(0.0D);
+//                        flowLog.setOrderCurrent(orderDetl.getAnfme());
+//                        flowLog.setOrderChanged(orderDetl.getAnfme());
+//                        flowLog.setQtyPrevious(0.0D);
+//                        flowLog.setQtyCurrent(0.0D);
+//                        flowLog.setQtyChanged(0.0D);
+//                        flowLog.setUserId(getUserId());
+//                        flowLog.setAppeTime(now);
+//                        if (!flowLogService.insert(flowLog)) {
+//                            throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+//                        }
+
                     }
+
                 }
 
             }
         }
+
         return R.ok("璁㈠崟娣诲姞鎴愬姛");
     }
 
@@ -583,6 +656,8 @@
     @Transactional
     public R formModify(@RequestBody OrderDomainParam param){
         Order order = orderService.selectById(param.getOrderId());
+        long flowId = snowflakeIdWorker.nextId();
+        int docType = param.getDocType().intValue();
         if (order == null || order.getStatus() == 0) {
             return R.error("璁㈠崟涓嶅瓨鍦�");
         }
@@ -606,18 +681,51 @@
         // 2.閲嶇粍鏁版嵁
         List<DetlDto> list = new ArrayList<>();
         for (OrderDetl orderDetl : param.getOrderDetlList()) {
-            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
+            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getAnfme(), orderDetl.getProcessSts());
             if (DetlDto.has(list, dto)) {
-                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime());
+                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode().trim(),orderDetl.getDeadTime());
+                Double anfme = item.getAnfme();
                 item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
                 if (!orderDetlService.updateById(item)) {
                     throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
                 }
+//                // 娴佹按 -- 鏂板璁㈠崟鏄庣粏
+//                FlowLog flowLog = new FlowLog();
+//                flowLog.setFid(String.valueOf(flowId));
+//                flowLog.setOpType(2L);
+//                flowLog.setOrderNo(param.getOrderNo());
+//                flowLog.setThreeCode(orderDetl.getThreeCode().trim());
+//                flowLog.setMatnr(orderDetl.getMatnr());
+//                flowLog.setMaktx(orderDetl.getMaktx());
+//                flowLog.setOrderPrevious(anfme);
+//                flowLog.setOrderCurrent(anfme + orderDetl.getAnfme());
+//                flowLog.setOrderChanged(orderDetl.getAnfme());
+//                flowLog.setQtyPrevious(orderDetl.getQty());
+//                flowLog.setQtyCurrent(orderDetl.getQty());
+//                flowLog.setQtyChanged(0.0D);
+//                flowLog.setUserId(getUserId());
+//                flowLog.setAppeTime(now);
+//                if (!flowLogService.insert(flowLog)) {
+//                    throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+//                }
             } else {
+                if (docType == 35 && orderDetl.getProcessSts() == 1) {
+                    List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>()
+                            .eq("matnr", orderDetl.getMatnr())
+                            .eq("order_no", orderDetl.getOrderNo())
+                            .eq("process_sts", 3));
+                    for (AgvLocDetl agvLocDetl : agvLocDetls) {
+                        agvLocDetl.setProcessSts(1);
+                        agvLocDetlService.updateById(agvLocDetl);
+                    }
+                }
                 list.add(dto);
+                if (!Cools.isEmpty(orderDetl.getThreeCode())){
+                    orderDetl.setThreeCode(orderDetl.getThreeCode().trim());
+                }
                 orderDetl.setOrderId(order.getId());
                 orderDetl.setOrderNo(order.getOrderNo());
-                orderDetl.setSource(param.getDocType().intValue());
+                orderDetl.setSource(docType);
                 orderDetl.setCreateBy(getUserId());
                 orderDetl.setCreateTime(now);
                 orderDetl.setUpdateBy(getUserId());
@@ -627,6 +735,25 @@
                 if (!orderDetlService.insert(orderDetl)) {
                     throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
                 }
+                // 娴佹按 -- 鏂板璁㈠崟鏄庣粏
+//                FlowLog flowLog = new FlowLog();
+//                flowLog.setFid(String.valueOf(flowId));
+//                flowLog.setOpType(2L);
+//                flowLog.setOrderNo(param.getOrderNo());
+//                flowLog.setThreeCode(orderDetl.getThreeCode().trim());
+//                flowLog.setMatnr(orderDetl.getMatnr());
+//                flowLog.setMaktx(orderDetl.getMaktx());
+//                flowLog.setOrderPrevious(0.0D);
+//                flowLog.setOrderCurrent(orderDetl.getAnfme());
+//                flowLog.setOrderChanged(orderDetl.getAnfme());
+//                flowLog.setQtyPrevious(orderDetl.getQty());
+//                flowLog.setQtyCurrent(orderDetl.getQty());
+//                flowLog.setQtyChanged(0.0D);
+//                flowLog.setUserId(getUserId());
+//                flowLog.setAppeTime(now);
+//                if (!flowLogService.insert(flowLog)) {
+//                    throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+//                }
             }
         }
         return R.ok("璁㈠崟淇敼鎴愬姛");
@@ -841,15 +968,15 @@
             Integer proSts = 0;
             Row row = sheet.getRow(i);
             //鍗曟嵁绫诲瀷
-            String docName =  dataFormatter.formatCellValue(row.getCell(0));
+            String docName =  dataFormatter.formatCellValue(row.getCell(0)).trim();
             //鍗曟嵁缂栧彿
-            String uuid = dataFormatter.formatCellValue(row.getCell(1));
+            String uuid = dataFormatter.formatCellValue(row.getCell(1)).trim();
             //鐗╂枡鍙�
-            String matnr = dataFormatter.formatCellValue(row.getCell(2));
+            String matnr = dataFormatter.formatCellValue(row.getCell(2)).trim();
             //閿�鍞崟鍙�
-            String csocode = dataFormatter.formatCellValue(row.getCell(3));
+            String csocode = dataFormatter.formatCellValue(row.getCell(3)).trim();
             //鑷敱椤�
-            String isocode = dataFormatter.formatCellValue(row.getCell(4));
+            String isocode = dataFormatter.formatCellValue(row.getCell(4)).trim();
             // 鏁伴噺
             if(Cools.isEmpty(dataFormatter.formatCellValue(row.getCell(5)))){
                 continue;
@@ -886,18 +1013,18 @@
                 proSts = 3;
             }
 
-
+            String odNo = uuid;
             if(docType.getPakin() == 1){
-                uuid += "_I";
+                odNo += "_I";
             }else {
-                uuid += "_O";
+                odNo += "_O";
             }
 
-            Order order = orderService.selectByNo(uuid);
+            Order order = orderService.selectByNo(odNo);
             if (null == order) {
                 order = new Order(
                         String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
-                        uuid,    // 璁㈠崟缂栧彿
+                        odNo,    // 璁㈠崟缂栧彿
                         null,    // 鍗曟嵁鏃ユ湡
                         docType.getDocId(),    // 鍗曟嵁绫诲瀷
                         null,    // 椤圭洰缂栧彿
@@ -935,6 +1062,11 @@
                     throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃閲嶆柊瀵煎叆锛�");
                 }
             }else {
+                //  鏈夊師璁㈠崟鍦ㄧ殑鎯呭喌
+                DocType orderType = docTypeService.selectById(order.getDocType());
+                if (!orderType.getDocName().equals(docName)) {
+                    throw new CoolException("鏂拌鍗曪細" + uuid + " 涓庣郴缁熷唴鐨勮鍗曞彿鐩稿悓锛屽崟鎹被鍨嬩笉鍚屻�傝纭鏂拌鍗曞崟鎹被鍨嬶紒");
+                }
                 order.setSettle(order.getSettle() == 1L ? 1L : 2L );
                 orderService.updateById(order);
             }
@@ -961,13 +1093,16 @@
                     throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃閲嶆柊瀵煎叆锛�");
                 }
             } else {
+                if (anfme < 0)  {
+                    throw new CoolException("璁㈠崟鏁伴噺涓嶅厑璁镐负璐熸暟锛�");
+                }
                 if(!orderDetlService.increaseAnfme(order.getId(), matnr, null, anfme,csocode,isocode)) {
                     throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃閲嶆柊瀵煎叆锛�");
                 }
             }
             // 鐢熸垚璋冩嫧鍗�
             if (docType.getDocId().intValue() == 32) {
-                String dbUuid = "DB" + uuid;
+                String dbUuid = "DB" + odNo;
                 Order order2 = orderService.selectByNo(dbUuid);
                 if (null == order2) {
                     order2 = new Order(
@@ -1010,7 +1145,7 @@
                         throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃閲嶆柊瀵煎叆锛�");
                     }
                 }else {
-                    order2.setSettle(order.getSettle() == 1L ? 1L : 2L );
+                    order2.setSettle(order2.getSettle() == 1L ? 1L : 2L );
                     orderService.updateById(order2);
                 }
 
@@ -1045,7 +1180,7 @@
             // 宸ュ簭涓�1锛氬緟鍔犲伐 鐢熸垚鍔犲伐鍗�
             if (proSts == 1) {
                 if (docType.getDocId().intValue() == 32) {
-                    String dbUuid = "JG" + uuid;
+                    String dbUuid = "JG" + odNo;
                     Order order3 = orderService.selectByNo(dbUuid);
                     if (null == order3) {
                         order3 = new Order(
@@ -1088,7 +1223,7 @@
                             throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃閲嶆柊瀵煎叆锛�");
                         }
                     }else {
-                        order3.setSettle(order.getSettle() == 1L ? 1L : 2L );
+                        order3.setSettle(order3.getSettle() == 1L ? 1L : 2L );
                         orderService.updateById(order3);
                     }
 

--
Gitblit v1.9.1