From efac58964167be8db7cc5e967051c104d741bac2 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期五, 20 九月 2024 09:23:41 +0800
Subject: [PATCH] Merge branch 'phyzwms2' into phyzasrs-erp

---
 src/main/java/com/zy/asrs/controller/OrderController.java                |   37 +++++++--
 src/main/java/com/zy/asrs/task/OverYearLogScheduler.java                 |    2 
 src/main/java/com/zy/asrs/task/handler/AutoMoveCreateExecuteHandler.java |    2 
 src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java         |   35 +++++++-
 src/main/java/com/zy/asrs/task/AutoMoveScheduler.java                    |    2 
 src/main/java/com/zy/asrs/task/OrderSyncScheduler.java                   |   35 +++++++-
 src/main/java/com/zy/asrs/controller/AgvOpenController.java              |    3 
 src/main/java/com/zy/common/config/ScheduleConfig.java                   |   18 ++++
 src/main/java/com/zy/asrs/controller/AgvBasDevpController.java           |    2 
 src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java         |    2 
 src/main/java/com/zy/common/web/WcsController.java                       |    1 
 src/main/webapp/static/js/agvWrkMast/wrkMast.js                          |    3 
 src/main/java/com/zy/asrs/controller/OrderDetlController.java            |   11 ++
 src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java                  |   14 +-
 src/main/java/com/zy/asrs/task/PlcLogScheduler.java                      |    2 
 src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java            |   12 +++
 src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js                    |    2 
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java           |    3 
 src/main/java/com/zy/asrs/task/WorkLogScheduler.java                     |    2 
 src/main/java/com/zy/common/model/DetlDto.java                           |    6 +
 src/main/java/com/zy/asrs/task/AutoMoveCreateExecuteScheduler.java       |    1 
 src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java              |    4 +
 src/main/java/com/zy/asrs/task/NotifyLogScheduler.java                   |    2 
 23 files changed, 166 insertions(+), 35 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvBasDevpController.java b/src/main/java/com/zy/asrs/controller/AgvBasDevpController.java
index 466391b..44c98f3 100644
--- a/src/main/java/com/zy/asrs/controller/AgvBasDevpController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvBasDevpController.java
@@ -235,6 +235,7 @@
         }
 
         agvWrkMast.setWrkSts(206L);
+        agvWrkMast.setModiTime(new Date());
         agvWrkMastService.updateById(agvWrkMast);
 
         return R.ok("璐ф灦绂诲満鎴愬姛");
@@ -254,6 +255,7 @@
         }
 
         agvWrkMast.setWrkSts(208L);
+        agvWrkMast.setModiTime(new Date());
         agvWrkMastService.updateById(agvWrkMast);
 
         return R.ok("璐ф灦绂诲満鎴愬姛");
diff --git a/src/main/java/com/zy/asrs/controller/AgvOpenController.java b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
index 2f37df0..66ecba6 100644
--- a/src/main/java/com/zy/asrs/controller/AgvOpenController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
@@ -28,6 +28,7 @@
 import javax.servlet.http.HttpServletRequest;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.util.Date;
 import java.util.EnumSet;
 import java.util.Map;
 
@@ -182,6 +183,7 @@
                 agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                 agvWrkMast.setWrkSts(206L);
             }
+            agvWrkMast.setModiTime(new Date());
             agvWrkMastService.updateById(agvWrkMast);
         }
     },
@@ -193,6 +195,7 @@
         public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
             //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负203.浠诲姟寮�濮�
             agvWrkMast.setWrkSts(203L);
+            agvWrkMast.setModiTime(new Date());
             agvWrkMastService.updateById(agvWrkMast);
         }
     },
diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index abc64da..adfbd0d 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -583,6 +583,7 @@
     @Transactional
     public R formModify(@RequestBody OrderDomainParam param){
         Order order = orderService.selectById(param.getOrderId());
+        int docType = param.getDocType().intValue();
         if (order == null || order.getStatus() == 0) {
             return R.error("璁㈠崟涓嶅瓨鍦�");
         }
@@ -606,7 +607,7 @@
         // 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());
                 item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
@@ -614,10 +615,20 @@
                     throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
                 }
             } 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);
                 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());
@@ -886,18 +897,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 +946,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 +977,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(
@@ -1045,7 +1064,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(
diff --git a/src/main/java/com/zy/asrs/controller/OrderDetlController.java b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
index e56ddff..349450e 100644
--- a/src/main/java/com/zy/asrs/controller/OrderDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
@@ -15,7 +15,9 @@
 import com.zy.asrs.entity.OrderDetl;
 import com.zy.asrs.service.*;
 import com.zy.common.web.BaseController;
+import lombok.Synchronized;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StopWatch;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
@@ -149,12 +151,15 @@
     }
 
     @RequestMapping(value = "/orderDetl/pakout/list/authV3")
+    @Synchronized
     @ManagerAuth
     public R pakoutList3(@RequestParam(defaultValue = "1")Integer curr,
                          @RequestParam(defaultValue = "10")Integer limit,
                          @RequestParam(required = false)String orderByField,
                          @RequestParam(required = false)String orderByType,
                          @RequestParam Map<String, Object> param){
+        StopWatch stopWatch = new StopWatch();
+        stopWatch.start();
         EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
         excludeTrash(param);
         convertLike(param, wrapper);
@@ -168,14 +173,14 @@
                 docIds.add(pakin.getDocId());
             }
         }
-
-        wrapper.in("source",docIds);
+        wrapper.ne("source",19);
         Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
         for (OrderDetl record : page.getRecords()) {
             Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode());
             record.setStock(sumAnfme == null ? 0 : sumAnfme);
         }
-
+        stopWatch.stop();
+        System.out.println(stopWatch.getTotalTimeSeconds());
         return R.ok(page);
     }
 
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
index c8b1273..7ac7ed3 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -151,6 +151,7 @@
             } else {
                 Double anfme = agvWrkDetl.getAnfme() + pick.getCount();
                 agvWrkDetl.setAnfme(anfme);
+                agvWrkDetl.setModiTime(new Date());
                 agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("matnr",agvWrkDetl.getMatnr()).eq("three_code",agvWrkDetl.getThreeCode()).eq("supp_code",pick.getSuppCode()));
 
             }
@@ -178,6 +179,7 @@
         }
         if (agvLocDetls.size() == sameNumber) {
             agvWrkMast.setIoType(101);
+            agvWrkMast.setModiTime(new Date());
             agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo()));
         }
 
@@ -515,7 +517,10 @@
         if (ioType == 12 && locMast.getFloor() == 1 && floor != 4 && agvLocMast.getFloor() != 1) {
             List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
             for (AgvLocDetl agvLocDetl : agvLocDetls) {
-                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("order_no", "DB" + agvLocDetl.getOrderNo()));
+                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("source", 33));
+                if (Cools.isEmpty(orderDetl)) {
+                    throw new CoolException("褰撳墠鐗╂枡鐨勮皟鎷ㄥ崟涓嶅瓨鍦紒");
+                }
                 orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme());
                 if (!orderDetlService.updateById(orderDetl)) {
                     throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
@@ -547,8 +552,28 @@
         if (!agvWrkMast.getBarcode().equals(param.getBarcode())) {
             throw new CoolException("褰撳墠璐ф灦鐮佷笌浠诲姟涓嶅尮閰�");
         }
-        if (!agvWrkMast.getWrkSts().equals(207L)) {
-            throw new CoolException("宸ヤ綔鐘舵�佷笉绗﹀悎绂诲満鏉′欢");
+        if (!agvWrkMast.getWrkSts().equals(207L) && !agvWrkMast.getWrkSts().equals(205L)) {
+            throw new CoolException("褰撳墠宸ヤ綔鐘舵��:" + agvWrkMast.getWrkSts$() +"涓嶇鍚堢鍦烘潯浠�");
+        }
+        if (agvWrkMast.getWrkSts().equals(205L)) {
+            // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅
+            if (agvWrkMast.getLocNo().substring(0,2).equals("DB")) {
+                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                // 鎺ラ┏浣� -- 搴撲綅
+            } else {
+                agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+            }
+
+            // 鎺ラ┏浣� -- 搴撲綅
+            if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
+                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0);
+                // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅
+            } else {
+                //淇敼婧愬簱浣嶇姸鎬佷负O
+                agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
+                //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁�
+                agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo()));
+            }
         }
 
         //鐢熸垚AGV宸ヤ綔鍘嗗彶妗� + 鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
@@ -571,7 +596,7 @@
             }
         }
         // 鏇存柊绔欑偣鐘舵��
-        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
+//        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
         // 鏇存柊婧愬簱浣嶇姸鎬�
         agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
 
@@ -640,6 +665,7 @@
         if (!agvWrkMast.getBarcode().equals(param.getBarcode())) {
             throw new CoolException("褰撳墠璐ф灦鐮佷笌浠诲姟涓嶅尮閰�");
         }
+        agvWrkMast.setModiTime(new Date());
         agvWrkMast.setWrkSts(213L);
         agvWrkMast.setSourceLocNo("");
         if (!agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no",agvWrkMast.getWrkNo()))) {
@@ -668,6 +694,7 @@
             throw new CoolException("褰撳墠宸ヤ綔绫诲瀷涓嶈兘绌烘灦杩涘満");
         }
         agvWrkMast.setWrkSts(214L);
+        agvWrkMast.setModiTime(new Date());
         agvWrkMast.setSourceLocNo(param.getDevNo());
         if (!agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no",agvWrkMast.getWrkNo()))) {
             throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index dc0d6a4..c512623 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -284,6 +284,7 @@
             String locNo = agvWrkMast.getLocNo();
             agvWrkMast.setLocNo(agvWrkMast.getSourceLocNo());
             agvWrkMast.setSourceLocNo(locNo);
+            agvWrkMast.setModiTime(new Date());
             agvWrkMast.setIoTime(now);
             agvWrkMast.setLogErrMemo("createWaitPainWrkMastStart");
             agvWrkMastService.updateById(agvWrkMast);
@@ -1215,9 +1216,11 @@
         }
         if (wrkMast.getIoType() == 108) {
             wrkMast.setIoType(111);
+            wrkMast.setModiTime(new Date());
             agvWrkMastService.update(wrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo));
         } else if(wrkMast.getIoType() == 111) {
             wrkMast.setIoType(108);
+            wrkMast.setModiTime(new Date());
             agvWrkMastService.update(wrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo));
         }
 
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
index ce05dd6..ddfc242 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -67,6 +67,7 @@
         //鍒ゆ柇瑕佷慨鏀圭殑宸ヤ綔妗g姸鎬佹槸鍚﹀悎鐞嗭紝濡傛灉涓嶅悎鐞嗗垯鎶涘嚭寮傚父
         checkWrkSts(agvWrkMast,wrkSts);
         agvWrkMast.setWrkSts(wrkSts);
+        agvWrkMast.setModiTime(new Date());
         this.updateById(agvWrkMast);
     }
 
@@ -109,6 +110,7 @@
         agvWrkMast.setLocNo(locMast.getLocNo());
         agvWrkMast.setWrkSts(201L);
         agvWrkMast.setLogErrMemo("startAllcationIn");
+        agvWrkMast.setModiTime(new Date());
         agvWrkMastService.updateById(agvWrkMast);
         // 鏇寸洰鏍囧簱浣�
         locMast.setLocSts("S");
diff --git a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
index 539a5b5..a7dcc13 100644
--- a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -43,7 +43,7 @@
     /*
     瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚 涓� 锛�1.鍏ュ簱 || 53锛屾嫞鏂欏叆搴� || 57.鐩樼偣鍏ュ簱 || 10.绌烘澘鍏ュ簱 || 11.鍗曞眰绉诲簱 || 12.璺ㄥ眰绉诲簱 || 108.鑷姩璋冩嫧 || 109.鎵嬪姩璋冩嫧)鐨勬暟鎹�
      */
-    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/1 * * * * ? ")
     public void excutePutwayWrk(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
                 .eq("wrk_sts", 205)
@@ -76,7 +76,7 @@
     /*
     瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负206.鍑哄簱瀹屾垚 涓� (101.鍑哄簱 || 110.绌烘澘鍑哄簱)
      */
-    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/1 * * * * ? ")
     public void excuteCarryWrk(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
                 .eq("wrk_sts", 206)
@@ -97,7 +97,7 @@
     /*
     瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负206.鍑哄簱瀹屾垚 涓� (101.鍑哄簱 || 110.绌烘澘鍑哄簱)
      */
-    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/1 * * * * ? ")
     public void excuteCarryWrk2(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
                 .eq("wrk_sts", 208)
@@ -119,7 +119,7 @@
     putaway锛氫笂鏋�
     瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负201.鐢熸垚鍏ュ簱浠诲姟ID 涓�(鍑哄簱绫诲瀷涓� 53.鎷f枡鍐嶅叆搴� || 1.鍏ュ簱 || 10.绌烘澘鍏ュ簱鏍� || 57.鐩樼偣鍐嶅叆搴�)鐨勬暟鎹�
      */
-    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/1 * * * * ? ")
     public void startPutwayWrk(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectPage(new Page<>(1, 50)
                 ,new EntityWrapper<AgvWrkMast>()
@@ -152,7 +152,7 @@
     putaway锛氫笂鏋�
     瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负201.鐢熸垚鍏ュ簱浠诲姟ID 涓�(鍑哄簱绫诲瀷涓� 53.鎷f枡鍐嶅叆搴� || 1.鍏ュ簱 || 10.绌烘澘鍏ュ簱鏍� || 57.鐩樼偣鍐嶅叆搴�)鐨勬暟鎹�
      */
-    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/1 * * * * ? ")
     public void startAllcationIn(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectPage(new Page<>(1, 50)
                 ,new EntityWrapper<AgvWrkMast>()
@@ -174,7 +174,7 @@
     carry锛氭惉杩愶紝缁熸寚鍑哄簱銆佺Щ搴撱�佺偣鍒扮偣鎼繍绛�
     瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负21.鐢熸垚鍑哄簱浠诲姟 涓�(鍑哄簱绫诲瀷涓� 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 11.搴撴牸绉绘牻 || 110.绌烘澘鍑哄簱 || 107.鐩樼偣鍑哄簱)鐨勬暟鎹�
      */
-    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/1 * * * * ? ")
     public void startCarryWrk(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectPage(new Page<>(1, 50)
                 ,new EntityWrapper<AgvWrkMast>()
@@ -241,7 +241,7 @@
     /*
     鑷姩鐢熸垚绌烘澘鍑哄簱浠诲姟
      */
-    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/1 * * * * ? ")
     public void autoEmptyOut(){
         boolean packageEmptyAutoOUt = Cools.eq("Y",Parameter.get().getPackageEmptyAutoOUt());
         boolean mateEmptyAutoOut = Cools.eq("Y",Parameter.get().getMateEmptyAutoOut());
diff --git a/src/main/java/com/zy/asrs/task/AutoMoveCreateExecuteScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveCreateExecuteScheduler.java
index 57a4370..682cf0c 100644
--- a/src/main/java/com/zy/asrs/task/AutoMoveCreateExecuteScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoMoveCreateExecuteScheduler.java
@@ -117,6 +117,7 @@
                 WrkMastExecute wrkMastExecute = wrkMastExecuteService.selectOne(new EntityWrapper<WrkMastExecute>().eq("io_type", 121).eq("wrk_no", agvWrkMast.getWrkNo().longValue()));
                 if (!Cools.isEmpty(wrkMastExecute) && wrkMastExecute.getWrkSts()==3L && wrkMastExecute.getNowPosition()==3){
                     agvWrkMast.setWrkSts(205L);//浠诲姟瀹屾垚
+                    agvWrkMast.setModiTime(new Date());
                     agvWrkMastService.updateById(agvWrkMast);
                     //鐢熸垚agv_wrk_mast_execute浠诲姟鍘嗗彶妗�
                     wrkMastExecuteLogService.save(wrkMastExecute);
diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
index 04fe7ac..c7b265e 100644
--- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
@@ -66,7 +66,7 @@
      * ioType 108.鑷姩璋冩嫧
      * crnNo :2鐩爣妤煎眰
      */
-    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/1 * * * * ? ")
     private synchronized void execute2(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
                 .eq("wrk_sts", 22)
diff --git a/src/main/java/com/zy/asrs/task/NotifyLogScheduler.java b/src/main/java/com/zy/asrs/task/NotifyLogScheduler.java
index 93799d9..bbff508 100644
--- a/src/main/java/com/zy/asrs/task/NotifyLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/NotifyLogScheduler.java
@@ -19,7 +19,7 @@
     @Autowired
     private NotifyLogHandler notifyLogHandler;
 
-    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/1 * * * * ? ")
     private void execute(){
         ReturnT<String> returnT = notifyLogHandler.start();
         if (!returnT.isSuccess()) {
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index 84bfaa1..65a84cc 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -1,9 +1,14 @@
 package com.zy.asrs.task;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.Cools;
+import com.zy.asrs.entity.AgvLocDetl;
 import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.service.AgvLocDetlService;
 import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.OrderDetlService;
 import com.zy.asrs.service.OrderService;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.task.handler.OrderSyncHandler;
@@ -30,8 +35,14 @@
     @Autowired
     private ApiLogService apiLogService;
 
+    @Autowired
+    private AgvLocDetlService agvLocDetlService;
+
+    @Autowired
+    private OrderDetlService orderDetlService;
+
     @Scheduled(cron = "0 0 1 * * ? ")
-    public void clearApiLog(){
+    public void clearApiLog() {
         try {
             apiLogService.clearWeekBefore();
         } catch (Exception e) {
@@ -40,12 +51,28 @@
     }
 
     @Scheduled(cron = "0/5 * * * * ? ")
-    @Async("orderThreadPool")
-    public void completeAndReport(){
+    //@Async("orderThreadPool")
+    public void completeAndReport() {
         String erpReport = Parameter.get().getErpReport();
         if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
             List<Order> orders = orderService.selectComplete();
             for (Order order : orders) {
+                //濡傛灉鏄姞宸ュ崟鍒欒繘琛屽垽鏂�
+                if (order.getDocType() == 33) {
+                    //鏌ヨ搴撳瓨涓槸鍚﹀瓨鍦ㄨ璁㈠崟鐨勭墿鏂欎俊鎭紝瀛樺湪鍒欎笉澶勭悊璇ヨ鍗�
+                    List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
+                    Boolean flag = false;
+                    for (OrderDetl orderDetl : orderDetlList) {
+                        List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("matnr", orderDetl.getMatnr()).eq("three_code", orderDetl.getThreeCode()));
+                        if (!Cools.isEmpty(agvLocDetls)) {
+                            //鍙鏈変竴椤硅鍗曟槑缁嗗瓨鍦紝鍒欐爣璇嗕负true锛岃烦杩囪璁㈠崟
+                            flag = true;
+                        }
+                    }
+                    if (flag) {
+                        continue;
+                    }
+                }
                 ReturnT<String> result = orderSyncHandler.start(order);
                 if (!result.isSuccess()) {
                     log.error("鍗曟嵁[orderNo={}]涓婃姤erp澶辫触", order.getOrderNo());
@@ -58,7 +85,7 @@
     瀹氭椂鏌ヨ鐘舵�佷负2.浣滀笟涓殑鍗曟嵁锛屾鏌ユ槸鍚﹀畬鎴�
      */
     @Scheduled(cron = "0 */1 * * * ? ")
-    public void completeOrder(){
+    public void completeOrder() {
         List<Order> orderList = orderService.selectList(new EntityWrapper<Order>().eq("settle", 2));
         orderList.forEach(order -> {
             orderService.checkComplete(order.getOrderNo());
diff --git a/src/main/java/com/zy/asrs/task/OverYearLogScheduler.java b/src/main/java/com/zy/asrs/task/OverYearLogScheduler.java
index 95a8a29..39652b4 100644
--- a/src/main/java/com/zy/asrs/task/OverYearLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OverYearLogScheduler.java
@@ -19,7 +19,7 @@
     @Autowired
     private OverYearLogHandler overYearLogHandler;
 
-    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/1 * * * * ? ")
     private void execute(){
         ReturnT<String> returnT = overYearLogHandler.start();
         if (!returnT.isSuccess()) {
diff --git a/src/main/java/com/zy/asrs/task/PlcLogScheduler.java b/src/main/java/com/zy/asrs/task/PlcLogScheduler.java
index 708392f..61c7e8a 100644
--- a/src/main/java/com/zy/asrs/task/PlcLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/PlcLogScheduler.java
@@ -19,7 +19,7 @@
     @Autowired
     private PlcLogHandler plcLogHandler;
 
-    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/1 * * * * ? ")
     private void execute(){
         ReturnT<String> returnT = plcLogHandler.start();
         if (!returnT.isSuccess()) {
diff --git a/src/main/java/com/zy/asrs/task/WorkLogScheduler.java b/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
index 06a0624..148f081 100644
--- a/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
@@ -23,7 +23,7 @@
     @Autowired
     private WrkMastService wrkMastService;
 
-    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/1 * * * * ? ")
     private void execute(){
         List<WrkMast> wrkMasts = wrkMastService.selectToBeHistoryData();
         if (wrkMasts.isEmpty()) {
diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
index 9a23068..ea153f8 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -116,6 +116,7 @@
             }
 
 
+            agvWrkMast.setModiTime(new Date());
             //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
             agvWrkMast.setWrkSts(207L);
             agvWrkMastService.updateById(agvWrkMast);
@@ -279,6 +280,13 @@
                 //鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
                 agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
             }
+//            else {
+//                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
+//                if (!agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
+//                    agvWrkMast.setSourceLocNo("");
+//                }
+//                agvWrkMastService.updateById(agvWrkMast);
+//            }
 
             if(!isJSON(orderNo)){
                 //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
@@ -320,6 +328,7 @@
             String orderNo = getOrderNoByWrkNo(wrkNo);
             //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
             agvWrkMast.setWrkSts(207L);
+            agvWrkMast.setModiTime(new Date());
             agvWrkMastService.updateById(agvWrkMast);
             //淇敼婧愬簱浣嶇姸鎬佷负O
             if (agvWrkMast.getIoType() == 110) {
@@ -420,6 +429,7 @@
             }
             //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
             agvWrkMast.setWrkSts(207L);
+            agvWrkMast.setModiTime(new Date());
             agvWrkMastService.updateById(agvWrkMast);
             //淇敼婧愬簱浣嶇姸鎬佷负O
             agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
@@ -472,6 +482,7 @@
             }
 
             agvWrkMast.setWrkSts(202L);
+            agvWrkMast.setModiTime(new Date());
             agvWrkMastService.updateById(agvWrkMast);
             if(agvWrkMast.getIoType() == 1){
                 //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y
@@ -537,6 +548,7 @@
             Map<String, Object> devNoMap = devNoMaps.get(0);
             if((int)devNoMap.get("num") < maxWrokNum){
                 agvWrkMast.setLocNo(devNoMap.get("dev_no").toString());
+                agvWrkMast.setModiTime(new Date());
                 agvWrkMastService.updateById(agvWrkMast);
                 log.info("after锛�" + devNoMap.toString()  +  ", wrkNo:" + agvWrkMast.getWrkNo() + ", locNo: " + agvWrkMast.getLocNo());
             }
diff --git a/src/main/java/com/zy/asrs/task/handler/AutoMoveCreateExecuteHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoMoveCreateExecuteHandler.java
index 6a43f32..866b082 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoMoveCreateExecuteHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveCreateExecuteHandler.java
@@ -28,7 +28,7 @@
         try{
             if (wrkMastExecuteService.insert(wrkMastExecute)){
                 agvWrkMast.setWrkSts(agvWrkMast.getWrkSts()+1);
-                agvWrkMast.setAppeTime(new Date());
+                agvWrkMast.setModiTime(new Date());
                 agvWrkMastService.updateById(agvWrkMast);
             }
         }catch (Exception e){
diff --git a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
index 9648cba..8653c4c 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -198,6 +198,7 @@
             throw new CoolException("褰撳墠搴撲綅姝e湪杩涜鍏ュ簱锛岃繘琛屼笅涓�娆¤疆璇�");
         }
         agvWrkMast.setWrkSts(201L);
+        agvWrkMast.setModiTime(new Date());
         agvWrkMast.setLocNo(locMast.getLocNo());
         agvWrkMast.setLogErrMemo("start2-doAutoMove2");
         agvWrkMastService.updateById(agvWrkMast);
@@ -219,6 +220,7 @@
         agvWrkMast.setWrkSts(201L);
         agvWrkMast.setLocNo(locMast.getLocNo());
         agvWrkMast.setLogErrMemo("start2-doAutoMove2");
+        agvWrkMast.setModiTime(new Date());
         agvWrkMastService.updateById(agvWrkMast);
         //鏇存柊鐩爣搴撲綅鐘舵��
         updateAgvLocMast(locMast,"S");
@@ -241,8 +243,10 @@
         }
         agvWrkMast.setWrkSts(201L);
         agvWrkMast.setLocNo(devpNo.getDevNo());
+        agvWrkMast.setModiTime(new Date());
         agvWrkMast.setLogErrMemo("start3-doHandMove2");
         agvWrkMastService.updateById(agvWrkMast);
+        agvWrkMast.setModiTime(new Date());
         updateAgvBasDevp(devpNo,"S",null,agvWrkMast.getBarcode());
         return SUCCESS;
     }
diff --git a/src/main/java/com/zy/common/config/ScheduleConfig.java b/src/main/java/com/zy/common/config/ScheduleConfig.java
new file mode 100644
index 0000000..d6c4aeb
--- /dev/null
+++ b/src/main/java/com/zy/common/config/ScheduleConfig.java
@@ -0,0 +1,18 @@
+package com.zy.common.config;
+
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.SchedulingConfigurer;
+import org.springframework.scheduling.config.ScheduledTaskRegistrar;
+
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+
+@Configuration
+public class ScheduleConfig implements SchedulingConfigurer {
+
+    @Override
+    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+        taskRegistrar.setScheduler(Executors.newScheduledThreadPool(12));
+    }
+}
diff --git a/src/main/java/com/zy/common/model/DetlDto.java b/src/main/java/com/zy/common/model/DetlDto.java
index 00640f9..0ebe17e 100644
--- a/src/main/java/com/zy/common/model/DetlDto.java
+++ b/src/main/java/com/zy/common/model/DetlDto.java
@@ -46,6 +46,12 @@
         this.anfme = anfme;
     }
 
+    public DetlDto(String matnr, Double anfme,Integer processSts) {
+        this.matnr = matnr;
+        this.anfme = anfme;
+        this.processSts = processSts;
+    }
+
     public DetlDto(String matnr, String batch) {
         this.matnr = matnr;
         this.batch = batch;
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index fb0ed88..07864aa 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -651,6 +651,7 @@
             if(!Cools.isEmpty(agvWrkMast) && agvWrkMast.getIoType() == 101){
                 //灏嗗伐浣滃厷鐘舵�佹敼涓鸿揣鏋剁鍦�
                 agvWrkMast.setWrkSts(206L);
+                agvWrkMast.setModiTime(new Date());
                 agvWrkMastService.updateById(agvWrkMast);
 //                //鍙戦�佽揣鏋剁珛鍦鸿姹傦紝瀹屾垚宸ヤ綔妗�
 //                List<AgvWrkMast> agvWrkMastList = new ArrayList<>();
diff --git a/src/main/webapp/static/js/agvWrkMast/wrkMast.js b/src/main/webapp/static/js/agvWrkMast/wrkMast.js
index 1fd852b..6887bf7 100644
--- a/src/main/webapp/static/js/agvWrkMast/wrkMast.js
+++ b/src/main/webapp/static/js/agvWrkMast/wrkMast.js
@@ -21,7 +21,7 @@
         cols: [[
             {type: 'checkbox'}
             ,{field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�',sort: true, width: 85}
-            ,{field: 'ioTime$', align: 'center',title: '宸ヤ綔鏃堕棿',sort: true, width: 160}
+            ,{field: 'modiTime$', align: 'center',title: '宸ヤ綔鏃堕棿',sort: true, width: 160}
             ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��'}
             ,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�'}
             ,{field: 'ioPri', align: 'center',title: '浼樺厛绾�',width: 80}
@@ -57,6 +57,7 @@
             // ,{field: 'crnStrTime$', align: 'center',title: '鍫嗗灈鏈哄惎鍔ㄦ椂闂�'}
             // ,{field: 'crnEndTime$', align: 'center',title: '鍫嗗灈鏈哄仠姝㈡椂闂�'}
             // ,{field: 'refIotime$', align: 'center',title: '鎷f枡鏃堕棿'}
+            ,{field: 'appeTime$', align: 'center',title: '寮�濮嬫椂闂�', hide:false, width: 160}
             ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳', hide:true}
             ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿', hide:true, width: 160}
             // ,{field: 'memo', align: 'center',title: '澶囨敞'}
diff --git a/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js b/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js
index 867626e..c29516e 100644
--- a/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js
+++ b/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js
@@ -28,7 +28,7 @@
             ,{field: 'sourceLocNo', align: 'center',title: '婧愬簱浣�'}
             ,{field: 'locNo', align: 'center',title: '鐩爣搴撲綅'}
             ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳', hide:true}
-            ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿', hide:true}
+            ,{field: 'appeTime$', align: 'center',title: '寮�濮嬫椂闂�', hide:false}
             ,{field: 'barcode', align: 'center',title: '璐ф灦鐮�'}
             ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 80}
         ]],

--
Gitblit v1.9.1