From 080fdceed464c56f43633e85daeaf929d40496af Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期三, 18 十月 2023 13:16:07 +0800
Subject: [PATCH] 连接ERP 获取ERP库存信息

---
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java |  182 ++++++++++++--------------------------------
 1 files changed, 51 insertions(+), 131 deletions(-)

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 cf82a7a..1ed3d71 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -3,7 +3,6 @@
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
-import com.core.common.DateUtils;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.EmptyPlateOutParam;
@@ -25,7 +24,6 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.UUID;
-import java.util.concurrent.TimeUnit;
 
 /**
  * Created by vincent on 2020/6/11
@@ -447,26 +445,22 @@
         if (Cools.isEmpty(wrkMast)){
             throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
         }
-        if (wrkMast.getWrkSts() == 9 || wrkMast.getWrkSts() == 29) {
-            throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+
+        if(wrkMast.getWrkSts() > 202){
+            //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚
+            agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205);
+
+            //鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱
+            if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107){
+                //淇敼鍑哄簱绔欑偣鐘舵��
+                agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode());
+            }
+            //鍑哄簱浠诲姟 110.绌烘澘鍑哄簱
+            if(wrkMast.getIoType() == 110){
+                agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode());
+            }
         }
-        // 鍏ュ簱 + 搴撲綅杞Щ
-        if (wrkMast.getWrkSts() < 9 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) {
-            wrkMast.setWrkSts(9L);
-            // 鍑哄簱
-        } else if (wrkMast.getWrkSts() > 20) {
-            wrkMast.setWrkSts(29L);
-        }
-        Date now = new Date();
-        wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
-        wrkMast.setCrnEndTime(now);
-        wrkMast.setModiTime(now);
-        wrkMast.setModiUser(userId);
-        // 瀹屾垚鎿嶄綔浜哄憳璁板綍
-        wrkMast.setManuType("鎵嬪姩瀹屾垚");
-        if (!agvWrkMastService.updateById(wrkMast)) {
-            throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
-        }
+
     }
 
     @Transactional
@@ -475,125 +469,51 @@
         if (Cools.isEmpty(wrkMast)){
             throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
         }
-
-        if (wrkMast.getWrkSts() == 200) {
-            //灏忚溅绉诲簱浠诲姟锛岀洿鎺ュ垹闄ゅ伐浣滄。
-            agvWrkMastService.deleteById(wrkMast);
-            return;
+        //鎷f枡鍏ュ簱 鐩樼偣鍏ュ簱涓嶅彲鍙栨秷
+        if(wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){
+            throw new CoolException("褰撳墠浠诲姟涓嶅彲鍙栨秷");
         }
 
-        String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
-        String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
-        // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
-        if (wrkMast.getWrkSts() < 9) {
-            locNo = wrkMast.getLocNo();
-            locSts = "O";
+        //AGV鏈哄櫒浜烘湭鍙栬揣鍓嶅彇娑�
+        if(wrkMast.getWrkSts() < 203){
+            //鍏ュ簱鍙栨秷
+            if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10){
+                //婧愮珯鐐�
+                String devNo = wrkMast.getSourceLocNo();
+                //鐩爣搴撲綅
+                String locNo = wrkMast.getLocNo();
+                agvLocMastService.updateLocStsByLocNo(locNo,"O");
+                agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode());
 
-            // 搴撲綅杞Щ
-            if (wrkMast.getIoType() == 11) {
-                // 搴撲綅杞Щ锛氭簮搴撲綅
-                AgvLocMast locMast = agvLocMastService.selectById(wrkMast.getSourceLocNo());
-                if (Cools.isEmpty(locMast)) {
-                    throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:"+ wrkMast.getSourceLocNo());
-                }
-                locMast.setLocSts("F");
-                locMast.setModiTime(new Date());
-                locMast.setModiUser(userId);
-                agvLocMastService.updateById(locMast);
+                //鍑哄簱鍙栨秷
+            }else {
+                //婧愬簱浣�
+                String locNo = wrkMast.getSourceLocNo();
+                //鐩爣绔欑偣
+                String devNo = wrkMast.getLocNo();
+                agvLocMastService.updateLocStsByLocNo(locNo,"F");
+                agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","");
             }
-            // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
-        } else if (wrkMast.getWrkSts() > 20) {
-            locNo = wrkMast.getSourceLocNo();
-            // 鍑哄簱 ===>> F.鍦ㄥ簱
-            if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
-                locSts = "F";
-                // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
-            } else if (wrkMast.getIoType() == 110) {
-                locSts = "D";
-                // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
-            } else if (wrkMast.getIoType() == 11) {
-                locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F";
-                // 搴撲綅杞Щ锛氱洰鏍囧簱浣�
-                AgvLocMast locMast = agvLocMastService.selectById(wrkMast.getLocNo());
-                if (Cools.isEmpty(locMast)) {
-                    throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:"+ wrkMast.getSourceLocNo());
-                }
-                locMast.setLocSts("O");
-                locMast.setModiTime(new Date());
-                locMast.setModiUser(userId);
-                agvLocMastService.updateById(locMast);
-            }
-        } else {
-            throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
-        }
-        // 璁㈠崟鍏宠仈
-        List<AgvWrkDetl> wrkDetls = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
-        for (AgvWrkDetl wrkDetl : wrkDetls) {
-            if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-                if (!BaseController.isJSON(wrkDetl.getOrderNo())) {
-                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
-                        throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
-                    }
-                } else {
-                    // 璁㈠崟鍚堝苟鍑哄簱
 
-                    //瀹為檯鍙栨秷鐨勫嚭搴撴暟閲�
-                    Double wrkDetlAnfme = wrkDetl.getAnfme();
-                    //璁㈠崟瀹為檯鍑哄簱鏁伴噺
-                    Double orderAnfme;
-
-                    List<OrderDto> orderDtoList = JSON.parseArray(wrkDetl.getOrderNo(), OrderDto.class);
-                    for (OrderDto orderDto : orderDtoList) {
-
-                        if(wrkDetlAnfme > orderDto.getAnfme()){
-                            orderAnfme = orderDto.getAnfme();
-                            wrkDetlAnfme -= orderAnfme;
-                        }else {
-                            orderAnfme = wrkDetlAnfme;
-                        }
-
-                        if (!orderDetlService.decrease(orderDto.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), orderAnfme)) {
-                            throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
-                        }
-                    }
-                }
-            }
-        }
-        // 鍙栨秷鎿嶄綔浜哄憳璁板綍
-        wrkMast.setManuType("鎵嬪姩鍙栨秷");
-        wrkMast.setModiUser(userId);
-        wrkMast.setModiTime(new Date());
-        if (!agvWrkMastService.updateById(wrkMast)) {
-            throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐�");
-        }
-        // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
-        if (!agvWrkMastLogService.save(wrkMast)) {
-            throw new CoolException("淇濆瓨宸ヤ綔鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
-        }
-        // 鍒犻櫎宸ヤ綔涓绘。
-        boolean wrkMastRes = agvWrkMastService.deleteById(wrkMast);
-
-        if (wrkMast.getIoType() != 10 && wrkMast.getIoType() != 110) {
-            // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
-            if (!agvWrkDetlLogService.save(wrkMast.getWrkNo())) {
-//                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
-            }
-            // 鍒犻櫎宸ヤ綔妗f槑缁�
-            boolean wrkDetlRes = agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", workNo));
         }
 
-        // 淇敼搴撲綅鐘舵��
-        AgvLocMast locMast = agvLocMastService.selectById(locNo);
-        if (Cools.isEmpty(locMast)) {
-            throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:"+ locNo);
+        //璁㈠崟鍥炴粴
+        AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo()).get(0);
+        if(!Cools.isEmpty(agvWrkDetl.getOrderNo())){
+            OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(agvWrkDetl.getOrderNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
+            orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
+            orderDetlService.updateById(orderDetl);
         }
-        locMast.setLocSts(locSts);
-        locMast.setModiTime(new Date());
-        locMast.setModiUser(userId);
-        boolean locMastRes = agvLocMastService.updateById(locMast);
-        if (!wrkMastRes || !locMastRes) {
-            throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+
+        //淇濆瓨宸ヤ綔妗d互鍙婃槑缁�
+        agvWrkMastLogService.save(wrkMast);
+        agvWrkDetlLogService.save(wrkMast.getWrkNo());
+
+        //鍒犻櫎宸ヤ綔妗d互鍙婃槑缁�
+        if(!agvWrkMastService.deleteByWrkNo(wrkMast.getWrkNo()) || !agvWrkDetlService.deleteByWrkNo(wrkMast.getWrkNo())){
+            throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�");
         }
+
     }
 
     /*

--
Gitblit v1.9.1