From bcb19e8c93c3cabf0d8eb3ee34ed819b3c5a10ef Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期一, 25 十一月 2024 13:14:11 +0800
Subject: [PATCH] #优化地图

---
 src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java |   89 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 84 insertions(+), 5 deletions(-)

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 c66f01b..9364b19 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.common.R;
+import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.service.*;
@@ -51,9 +52,17 @@
     private AgvBasDevpService agvBasDevpService;
     @Autowired
     private AgvWorkService agvWorkService;
+    @Autowired
+    private OrderDetlService orderDetlService;
+    @Autowired
+    private SnowflakeIdWorker snowflakeIdWorker;
+    @Autowired
+    private FlowLogService flowLogService;
 
     @Transactional
     public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) {
+        long flowId = snowflakeIdWorker.nextId();
+        Date now = new Date();
         try{
             int wrkNo = agvWrkMast.getWrkNo();
             String barcode = agvWrkMast.getBarcode();
@@ -66,6 +75,7 @@
             }
 
 
+            agvWrkMast.setModiTime(new Date());
             //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
             agvWrkMast.setWrkSts(207L);
             agvWrkMastService.updateById(agvWrkMast);
@@ -111,6 +121,34 @@
                         AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
                         if (!Cools.isEmpty(agvLocDetl)) {
                             double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme();
+//                            OrderDetl orderDetl = orderDetlService.selectItem(agvWrkDetl.getOrderNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getThreeCode());
+//                            FlowLog flowLog = new FlowLog();
+//                            flowLog.setFid(String.valueOf(flowId));
+//                            flowLog.setSpare2(String.valueOf(agvWrkMast.getWrkNo()));
+//                            flowLog.setLocNo(agvWrkMast.getLocNo());
+//                            flowLog.setSpare1(agvWrkDetl.getSuppCode());
+//                            flowLog.setOpType(53L);
+//                            flowLog.setOrderNo(agvWrkDetl.getOrderNo());
+//                            flowLog.setThreeCode(agvWrkDetl.getThreeCode());
+//                            flowLog.setMatnr(agvWrkDetl.getMatnr());
+//                            flowLog.setMaktx(agvWrkDetl.getMaktx());
+//
+//                            flowLog.setOrderPrevious(orderDetl.getAnfme());
+//                            flowLog.setOrderCurrent(orderDetl.getAnfme());
+//                            flowLog.setOrderChanged(0.0);
+//
+//                            flowLog.setQtyPrevious(orderDetl.getQty());
+//                            flowLog.setQtyCurrent(updateAnfme);
+//                            flowLog.setQtyChanged(agvWrkDetl.getAnfme());
+//
+//                            flowLog.setLocPrevious(agvLocDetl.getAnfme());
+//                            flowLog.setLocCurrent(updateAnfme);
+//                            flowLog.setLocChanged(agvWrkDetl.getAnfme());
+//
+//                            flowLog.setAppeTime(now);
+//                            if (!flowLogService.insert(flowLog)) {
+//                                throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+//                            }
                             agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
                         }
                         //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
@@ -119,11 +157,29 @@
                     agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                     agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
                     break;
+                case 57:
+                    // 鏇存柊搴撳瓨鏄庣粏
+                    List<AgvWrkDetl> wrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+                    wrkDetlList.forEach(agvWrkDetl -> {
+                        AgvLocDetl agvLocDetl = new AgvLocDetl();
+                        agvLocDetl.setLocNo(agvWrkMast.getLocNo());
+                        agvLocDetl.sync(agvWrkDetl);
+                        agvLocDetl.setModiTime(now);
+                        agvLocDetl.setAppeTime(now);
+                        if (!agvLocDetlService.insert(agvLocDetl)) {
+                            throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+                        }
+                    });
+                    // 鏇存柊绔欑偣 + 搴撲綅鐘舵��     婧愬簱浣嶆槸绔欑偣
+                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                    break;
                 case 58:
                     agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                     agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
                     break;
                 case 108:
+                case 114:
                     agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                     //鏇存柊搴撳瓨鏄庣粏
                     agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
@@ -210,6 +266,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)){
                 //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
@@ -233,26 +296,30 @@
     @Transactional
     public ReturnT<String> completedCarryWrk(AgvWrkMast agvWrkMast) {
         try{
+            Date now = new Date();
             int wrkNo = agvWrkMast.getWrkNo();
             String orderNo = getOrderNoByWrkNo(wrkNo);
             //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
             agvWrkMast.setWrkSts(207L);
+            agvWrkMast.setModiTime(new Date());
             agvWrkMastService.updateById(agvWrkMast);
             //淇敼婧愬簱浣嶇姸鎬佷负O
-            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
+            if (agvWrkMast.getIoType() == 110) {
+                agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
+            }
             if(agvWrkMast.getIoType() == 101){
                 //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁�
                 agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo()));
                 //鐢熸垚绌烘澘鍏ュ簱浠诲姟
                 Short containerType = Short.valueOf(agvWrkMast.getBarcode().substring(0, 2));
                 try {
-                    //agvWorkService.emptyPlateIn(agvWrkMast.getLocNo(),agvWrkMast.getBarcode(),containerType,9527L,true);
+//                    agvWorkService.emptyPlateIn(agvWrkMast.getLocNo(),agvWrkMast.getBarcode(),containerType,9527L,true);
                     AgvWrkMast wrkMast = new AgvWrkMast();
                     //宸ヤ綔鐘舵��
                     wrkMast.setWrkSts(201L);
                     //鍏ュ嚭搴撶被鍨�
                     wrkMast.setIoType(10);
-                    wrkMast.setIoTime(new Date());
+                    wrkMast.setIoTime(now);
                     //浼樺厛绾�
                     wrkMast.setIoPri(300.0);
                     //婧愮珯鐐�
@@ -265,14 +332,23 @@
                     wrkMast.setWhsType(Integer.valueOf(agvWrkMast.getBarcode().substring(0, 2)));
 
                     wrkMast.setAppeUser(9527L);
-                    wrkMast.setAppeTime(new Date());
+                    wrkMast.setAppeTime(now);
                     wrkMast.setModiUser(9527L);
-                    wrkMast.setModiTime(new Date());
+                    wrkMast.setModiTime(now);
+                    wrkMast.setLogErrMemo("completedCarryWrk");
 
                     if (!agvWrkMastService.insertByIncrease(wrkMast)) {
                         throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
                     }
+                    AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getSourceLocNo());
+                    agvLocMast.setLocSts("S");
+                    agvLocMast.setModiTime(now);
+                    agvLocMastService.updateById(agvLocMast);
 
+                    AgvBasDevp agvBasDevp = agvBasDevpService.selectById(agvWrkMast.getLocNo());
+                    agvBasDevp.setLocSts("R");
+                    agvBasDevp.setLocType2(Short.valueOf(agvWrkMast.getBarcode().substring(0, 2)));
+                    agvBasDevpService.updateById(agvBasDevp);
                 }catch (Exception e){
                     e.printStackTrace();
                     log.error(e.getMessage());
@@ -317,6 +393,7 @@
             }
             //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
             agvWrkMast.setWrkSts(207L);
+            agvWrkMast.setModiTime(new Date());
             agvWrkMastService.updateById(agvWrkMast);
             //淇敼婧愬簱浣嶇姸鎬佷负O
             agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
@@ -362,6 +439,7 @@
             }
 
             agvWrkMast.setWrkSts(202L);
+            agvWrkMast.setModiTime(new Date());
             agvWrkMastService.updateById(agvWrkMast);
             if(agvWrkMast.getIoType() == 1){
                 //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y
@@ -427,6 +505,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());
             }

--
Gitblit v1.9.1