From e9152bae00b01fc80000d44f726f337084215748 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 21 五月 2025 10:19:18 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  115 ++++++++++++++++++++-------------------------------------
 1 files changed, 41 insertions(+), 74 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index f893871..eb847be 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -7,6 +7,7 @@
 import com.core.exception.CoolException;
 import com.zy.asrs.domain.dto.NotifyCustomDataDto;
 import com.zy.asrs.domain.enums.NotifyMsgType;
+import com.zy.asrs.domain.enums.RedisKeyType;
 import com.zy.asrs.domain.enums.TaskStatusType;
 import com.zy.asrs.domain.enums.WorkNoType;
 import com.zy.asrs.entity.*;
@@ -18,6 +19,7 @@
 import com.zy.asrs.utils.Utils;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
+import com.zy.common.utils.RedisUtil;
 import com.zy.core.CrnThread;
 import com.zy.core.DevpThread;
 import com.zy.core.cache.MessageQueue;
@@ -72,13 +74,9 @@
     @Autowired
     private TaskWrkService taskWrkService;
     @Autowired
-    private ConfigService configService;
-    @Autowired
     private StaDescMapper staDescMapper;
     @Autowired
     private CommandInfoService commandInfoService;
-    @Autowired
-    private OpenServiceImpl openServiceImpl;
     @Autowired
     private StaDescService staDescService;
     @Autowired
@@ -89,6 +87,8 @@
     private CrnOperaUtils crnOperaUtils;
     @Autowired
     private NotifyUtils notifyUtils;
+    @Autowired
+    private RedisUtil redisUtil;
     @Value("${wms.count}")
     private Integer maxCount;
     @Value("${wms.url}")
@@ -112,8 +112,6 @@
                     } else {
                         staProtocol = staProtocol.clone();
                     }
-                    Short workNo = staProtocol.getWorkNo();
-                    Short stano = staProtocol.getStaNo();
 
                     // 灏哄妫�娴嬪紓甯�
                     boolean back = false;
@@ -146,11 +144,15 @@
                         errMsg = "鎵爜澶辫触";
                         back = true;
                     }
+
                     // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                    if (staProtocol.isAutoing() && staProtocol.isLoading()
+                    if (staProtocol.isAutoing()
+                            && staProtocol.isLoading()
                             && staProtocol.isInEnable()
-                            && !staProtocol.isEmptyMk() && workNo >= 9790
-                            && staProtocol.isPakMk()) {
+                            && !staProtocol.isEmptyMk()
+                            && staProtocol.isPakMk()
+                            && staProtocol.getWorkNo() == 9999
+                    ) {
                         // 鑾峰彇鏉$爜鎵弿浠俊鎭�
                         BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
                         if (barcodeThread == null) {
@@ -158,6 +160,11 @@
                         }
 
                         String barcode = barcodeThread.getBarcode();
+                        if (Cools.isEmpty(barcode)) {
+                            log.info("鍏ュ簱淇″彿婊¤冻锛屾墭鐩樼爜涓虹┖");
+                            continue;
+                        }
+
                         TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode));
                         if (taskWrk1 != null) {
                             log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�");
@@ -177,6 +184,11 @@
                         String response = "";
                         Boolean success = false;
                         try {
+                            Object object = redisUtil.get(RedisKeyType.IN_TASK_LOCK.key);
+                            if(object != null) {
+                                continue;
+                            }
+
                             response = new HttpHandler.Builder()
                                     .setUri(wmsUrl)
                                     .setPath(inboundTaskApplyPath)
@@ -184,20 +196,24 @@
                                     .build()
                                     .doPost();
                             JSONObject jsonObject = JSON.parseObject(response);
-                            if (jsonObject.getInteger("code") != 200) {
-                                log.info("鏉$爜锛�" + barcode + "鐢宠WMS澶辫触,response=" + JSON.toJSONString(jsonObject));
-                                continue;
-                            }
+                            redisUtil.set(RedisKeyType.IN_TASK_LOCK.key, "lock", 5);
+                            if (jsonObject.getInteger("code") == 200) {
 
-                            if (back) {
-                                devpThread.setPakMk(staProtocol.getSiteId(), false);
+                            } else if (jsonObject.getInteger("code") == 500) {
+                                log.info("鏉$爜锛�" + barcode + "鐢宠WMS澶辫触,response=" + JSON.toJSONString(jsonObject));
+
+                                staProtocol.setWorkNo(9997);
+                                staProtocol.setStaNo(inSta.getBackSta().shortValue());
                                 MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                                continue;
+                            }else {
+                                log.info("鏉$爜锛�" + barcode + "鐢宠WMS澶辫触,response=" + JSON.toJSONString(jsonObject));
                                 continue;
                             }
 
                             JSONObject result = jsonObject.getJSONObject("data");
                             Integer resultWrkNo = result.getInteger("wrkNo");
-                            Integer resultStaNo = result.getInteger("staNo");
+                            Integer resultStaNo = result.getInteger("stnNo");
                             String resultLocNo = result.getString("locNo");
 
                             // 鍒涙柊涓�涓叆搴撳伐浣滄。
@@ -246,7 +262,7 @@
 
                             StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                                     .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
-                            staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+                            staProtocol.setWorkNo(taskWrk.getWrkNo());
                             staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
                             MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
 
@@ -311,7 +327,7 @@
         for (CrnSlave crnSlave : slaveProperties.getCrn()) {
             // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
             for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
-                List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo()));
+                List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("type_no", 2).eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo()));
                 for (StaDesc staDesc : staDescs) {
                     try {
                         // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
@@ -322,7 +338,8 @@
                         } else {
                             staProtocol = staProtocol.clone();
                         }
-                        if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
+
+                        if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
                             // 鏌ヨ宸ヤ綔妗�
                             TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), staDesc.getStnNo().toString());
                             if (taskWrk == null) {
@@ -330,7 +347,7 @@
                             }
                             log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk));
 //                            R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false);
-                            staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+                            staProtocol.setWorkNo(taskWrk.getWrkNo());
                             staProtocol.setStaNo(staDesc.getStnNo().shortValue());
                             boolean offer = false;
                             try {
@@ -431,6 +448,7 @@
                     log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
                     continue;
                 }
+
                 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
                         && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
                     flag = true;
@@ -515,28 +533,6 @@
                         continue;
                     }
 
-                    LocMast locMast=locMastService.selectByLocNo(taskWrk.getStartPoint());
-                    //鍒ゆ柇鍏跺簱浣嶆槸鍚︿负娣卞簱浣嶏紝濡傛灉涓烘繁搴撲綅鎵惧叾娴呭簱浣嶆槸閮芥湁璐�
-                    if(locMast.getRow1()==1||locMast.getRow1()==5){
-                        LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>()
-                                .eq("row1", (locMast.getRow1()+1))
-                                .eq("bay1",locMast.getBay1())
-                                .eq("lev1",locMast.getLev1()).eq("loc_sts","F"));
-                        if (!Cools.isEmpty(locMast1)){
-                            log.info(locMast.getLocNo()+"鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
-                            continue;
-                        }
-                    }else if(locMast.getRow1()==4||locMast.getRow1()==8){
-                        LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>()
-                                .eq("row1", (locMast.getRow1()-1))
-                                .eq("bay1",locMast.getBay1())
-                                .eq("lev1",locMast.getLev1()).eq("loc_sts","F"));
-                        if (!Cools.isEmpty(locMast1)){
-                            log.info(locMast.getLocNo()+"鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
-                            continue;
-                        }
-                    }
-
                     // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
                     SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
                     StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
@@ -554,8 +550,8 @@
                     }
 
                     // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-                    if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
-                            && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+                    if (staProtocol.isAutoing() && staProtocol.isOutEnable() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+                    ) {
                         // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
 
                         // 鍫嗗灈鏈烘帶鍒惰繃婊�
@@ -608,7 +604,7 @@
                             HashMap<String, Object> hashMap = new HashMap<>();
                             hashMap.put("taskNo", taskWrk.getTaskNo());
                             hashMap.put("status", TaskStatusType.DISTRIBUTE.id);
-                            hashMap.put("ioType", 1);
+                            hashMap.put("ioType", 2);
                             hashMap.put("barcode", taskWrk.getBarcode());
                             hashMap.put("reportTime", format.format(new Date()));
 
@@ -812,42 +808,13 @@
                     if (taskWrk.getIoType() == 1 && taskWrk.getWrkSts() == 3) {
                         taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
                         taskWrk.setStatus(5);//瀹岀粨
-
-                        //鏇存柊搴撲綅鐘舵��
-                        LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
-                        locMast.setLocSts("F");//F.鍦ㄥ簱
-                        locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
-                        locMast.setModiTime(new Date());
-                        locMast.setModiUser(9999L);
-                        locMastService.updateById(locMast);
                     } else if (taskWrk.getIoType() == 2 && taskWrk.getWrkSts() == 12) {
                         taskWrk.setWrkSts(13);//鍑哄簱瀹屾垚
                         taskWrk.setStatus(5);//瀹岀粨
 
-                        //鏇存柊搴撲綅鐘舵��
-                        LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
-                        locMast.setLocSts("O");//O.绌哄簱浣�
-                        locMast.setBarcode("");//鎵樼洏鐮�
-                        locMast.setModiTime(new Date());
-                        locMast.setModiUser(9999L);
-                        locMastService.updateById(locMast);
                     } else if (taskWrk.getIoType() == 3 && taskWrk.getWrkSts() == 12) {
                         taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
                         taskWrk.setStatus(5);//瀹岀粨
-                        //鏇存柊搴撲綅鐘舵��
-                        LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
-                        locMast.setLocSts("F");//F.鍦ㄥ簱
-                        locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
-                        locMast.setModiTime(new Date());
-                        locMast.setModiUser(9999L);
-                        locMastService.updateById(locMast);
-
-                        LocMast locMast1 = locMastService.selectByLocNo(taskWrk.getStartPoint());
-                        locMast1.setLocSts("O");//O.绌哄簱浣�
-                        locMast1.setBarcode("");//鎵樼洏鐮�
-                        locMast1.setModiTime(new Date());
-                        locMast1.setModiUser(9999L);
-                        locMastService.updateById(locMast1);
                     }
                     taskWrkService.updateById(taskWrk);
                 }

--
Gitblit v1.9.1