From 92b6e11b2c9494e82e9bcb4b9b8b150951727135 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期四, 04 九月 2025 10:29:20 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  626 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 364 insertions(+), 262 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 35e3521..d5dbdff 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,7 +6,6 @@
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
-import com.core.common.R;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.mapper.BasCrnErrorMapper;
@@ -50,10 +49,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -73,7 +69,11 @@
     @Autowired
     private WrkMastMapper wrkMastMapper;
     @Autowired
+    private WrkMastLogService wrkMastLogService;
+    @Autowired
     private WrkDetlService wrkDetlService;
+    @Autowired
+    private WrkDetlLogService wrkDetlLogService;
     @Autowired
     private WaitPakinMapper waitPakinMapper;
     @Autowired
@@ -92,8 +92,6 @@
     private BasCrnErrorMapper basCrnErrorMapper;
     @Autowired
     private WrkMastService wrkMastService;
-    @Autowired
-    private WrkMastLogService wrkMastLogService;
     @Autowired
     private ConfigService configService;
     @Autowired
@@ -370,24 +368,25 @@
      * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
      */
     public synchronized void stnToCrnStnPick(Integer mark) {
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            // 閬嶅巻鎷f枡鍏ュ簱鍙�
-            for (DevpSlave.Sta pickSta : devp.getPickSta()) {
-                // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
+        try {
+            for (DevpSlave devp : slaveProperties.getDevp()) {
+                // 閬嶅巻鎷f枡鍏ュ簱鍙�
+                for (DevpSlave.Sta pickSta : devp.getPickSta()) {
+                    // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
+                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                    StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
+                    if (staProtocol == null) {
+                        continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
+                    }
 
-                if (staProtocol.isAutoing()
-                        && staProtocol.isLoading()
-                        && staProtocol.isInEnable()
-                        && staProtocol.getWorkNo() > 0
-                        && staProtocol.isPakMk()) {
-                    News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
+                    if (staProtocol.isAutoing()
+                            && staProtocol.isLoading()
+                            && staProtocol.isInEnable()
+                            && staProtocol.getWorkNo() > 0
+                            && staProtocol.isPakMk()) {
+                        News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
 
 //                    // 鑾峰彇鏉$爜鎵弿浠俊鎭�
 //                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
@@ -405,17 +404,17 @@
 //                    }
 
 //                    WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
-                    if (wrkMast == null) {
-                        // 鏃犳嫞鏂欐暟鎹�
-                        continue;
-                    }
-                    if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
-                            || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
-                        continue;
-                    }
+                        WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
+                        if (wrkMast == null) {
+                            // 鏃犳嫞鏂欐暟鎹�
+                            continue;
+                        }
+                        if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
+                                || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
+                            continue;
+                        }
 
-                    // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹�
+                        // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹�
 //                    int stnNo = 0;
 //                    if (wrkMast.getStaNo() == 109) {
 //                        stnNo = 127;
@@ -424,87 +423,90 @@
 //                    } else {
 //                        log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo());
 //                    }
-                    // 鑾峰彇鐩爣绔�
-                    Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-                            .eq("type_no", wrkMast.getIoType() - 50)
-                            .eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
-                            .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
-                    StaDesc staDesc = staDescService.selectOne(wrapper);
-                    if (Cools.isEmpty(staDesc)) {
+                        // 鑾峰彇鐩爣绔�
+                        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+                                .eq("type_no", wrkMast.getIoType() - 50)
+                                .eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+                                .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+                        StaDesc staDesc = staDescService.selectOne(wrapper);
+                        if (Cools.isEmpty(staDesc)) {
 //                        News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
 //                        staProtocol.setWorkNo((short) 9989);
 //                        staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1));
 //                        devpThread.setPakMk(staProtocol.getSiteId(), false);
 //                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                        //LED
-                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
-                        // led 寮傚父鏄剧ず
-                        if (ledThread != null) {
-                            String errorMsg = "姝や负鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱.璇锋斁鍦�" + pickSta.getBackSta().shortValue() + "绔欑偣";
-                            MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errorMsg));
-                        }
-                        continue;
-                    }
-
-                    try {
-                        // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
-                        if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
-                            throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
-                        }
-                        // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
-                        if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
-                            throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+                            //LED
+                            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
+                            // led 寮傚父鏄剧ず
+                            if (ledThread != null) {
+                                String errorMsg = "姝や负鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱.璇锋斁鍦�" + pickSta.getBackSta().shortValue() + "绔欑偣";
+                                MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errorMsg));
+                            }
+                            continue;
                         }
 
-                        Date now = new Date();
-                        // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
-                        Integer staNo = staDesc.getCrnStn();
-                        // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
-                        wrkMast.setIoTime(now);
-                        wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
-                        wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
-                        wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
-                        wrkMast.setStaNo(staNo); // 鐩爣绔�
-                        wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
-                        wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
-                        wrkMast.setModiTime(now);
-                        wrkMast.setUpdMk("");//鍏佽鍐嶆绉诲簱
-                        if (wrkMastMapper.updateById(wrkMast) == 0) {
-                            throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+                        try {
+                            // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+                            if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
+                                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+                            }
+                            // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+                            if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
+                                throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+                            }
+
+                            Date now = new Date();
+                            // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+                            Integer staNo = staDesc.getCrnStn();
+                            // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+                            wrkMast.setIoTime(now);
+                            wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+                            wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+                            wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+                            wrkMast.setStaNo(staNo); // 鐩爣绔�
+                            wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+                            wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+                            wrkMast.setModiTime(now);
+                            wrkMast.setUpdMk("");//鍏佽鍐嶆绉诲簱
+                            if (wrkMastMapper.updateById(wrkMast) == 0) {
+                                throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+                            }
+                            // 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
+                            wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
+                            // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+                            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+                            locMast.setLocSts("Q");
+                            locMast.setModiTime(new Date());
+                            if (!locMastService.updateById(locMast)) {
+                                throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+                            }
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            continue;
                         }
-                        // 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
-                        wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
-                        // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+
                         LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-                        locMast.setLocSts("Q");
-                        locMast.setModiTime(new Date());
-                        if (!locMastService.updateById(locMast)) {
-                            throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+                        // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+                        staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
+                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+                        staProtocol.setPalletSize(locMast.getLocType2());
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        if (!result) {
+                            News.error("" + mark + " - 3" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
                         }
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        continue;
+
+                    } else {
+                        News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
+                                + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk());
                     }
 
-                    LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-                    // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-                    staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
-                    staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
-                    staProtocol.setPalletSize(locMast.getLocType2());
-                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                    if (!result) {
-                        News.error("" + mark + " - 3" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
-                    }
-
-                } else {
-                    News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
-                            + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk());
                 }
 
             }
-
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         News.infoNoLog("" + mark + " - 0" + " - 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱  ===銆嬫墽琛屽畬鎴�");
     }
@@ -513,51 +515,52 @@
      * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱-鏉$爜
      */
     public synchronized void stnToCrnStnPickBarcode(Integer mark) {
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            // 閬嶅巻鎷f枡鍏ュ簱鍙�
-            for (DevpSlave.Sta insta : devp.getInSta()) {
-                // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                StaProtocol staProtocol = devpThread.getStation().get(insta.getStaNo());
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-
-                if (staProtocol.isAutoing()
-                        && staProtocol.isLoading()
-                        && staProtocol.isInEnable()
-                        && staProtocol.getWorkNo() > 0
-                        && staProtocol.isPakMk()) {
-                    News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
-
-                    // 鑾峰彇鏉$爜鎵弿浠俊鎭�
-                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, insta.getBarcode());
-                    if (barcodeThread == null) {
+        try {
+            for (DevpSlave devp : slaveProperties.getDevp()) {
+                // 閬嶅巻鎷f枡鍏ュ簱鍙�
+                for (DevpSlave.Sta insta : devp.getInSta()) {
+                    // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
+                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                    StaProtocol staProtocol = devpThread.getStation().get(insta.getStaNo());
+                    if (staProtocol == null) {
                         continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
                     }
-                    String barcode = barcodeThread.getBarcode();
-                    if (!Cools.isEmpty(barcode)) {
-                        News.info("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", insta.getBarcode(), barcode);
-                        if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+
+                    if (staProtocol.isAutoing()
+                            && staProtocol.isLoading()
+                            && staProtocol.isInEnable()
+                            && staProtocol.getWorkNo() > 0
+                            && staProtocol.isPakMk()) {
+                        News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
+
+                        // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+                        BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, insta.getBarcode());
+                        if (barcodeThread == null) {
                             continue;
                         }
-                    } else {
-                        continue;
-                    }
+                        String barcode = barcodeThread.getBarcode();
+                        if (!Cools.isEmpty(barcode)) {
+                            News.info("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", insta.getBarcode(), barcode);
+                            if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+                                continue;
+                            }
+                        } else {
+                            continue;
+                        }
 
-                    WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
-                    if (wrkMast == null) {
-                        // 鏃犳嫞鏂欐暟鎹�
-                        continue;
-                    }
-                    if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
-                            || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
-                        continue;
-                    }
+                        WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
+                        if (wrkMast == null) {
+                            // 鏃犳嫞鏂欐暟鎹�
+                            continue;
+                        }
+                        if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
+                                || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
+                            continue;
+                        }
 
-                    // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹�
+                        // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹�
 //                    int stnNo = 0;
 //                    if (wrkMast.getStaNo() == 109) {
 //                        stnNo = 127;
@@ -566,87 +569,90 @@
 //                    } else {
 //                        log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo());
 //                    }
-                    // 鑾峰彇鐩爣绔�
-                    Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-                            .eq("type_no", wrkMast.getIoType() - 50)
-                            .eq("stn_no", insta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
-                            .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
-                    StaDesc staDesc = staDescService.selectOne(wrapper);
-                    if (Cools.isEmpty(staDesc)) {
+                        // 鑾峰彇鐩爣绔�
+                        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+                                .eq("type_no", wrkMast.getIoType() - 50)
+                                .eq("stn_no", insta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+                                .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+                        StaDesc staDesc = staDescService.selectOne(wrapper);
+                        if (Cools.isEmpty(staDesc)) {
 //                        News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
 //                        staProtocol.setWorkNo((short) 9989);
 //                        staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1));
 //                        devpThread.setPakMk(staProtocol.getSiteId(), false);
 //                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                        //LED
-                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, insta.getLed());
-                        // led 寮傚父鏄剧ず
-                        if (ledThread != null) {
-                            String errorMsg = "姝や负鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱.璇锋斁鍦�" + insta.getBackSta().shortValue() + "绔欑偣";
-                            MessageQueue.offer(SlaveType.Led, insta.getLed(), new Task(5, errorMsg));
-                        }
-                        continue;
-                    }
-
-                    try {
-                        // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
-                        if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
-                            throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
-                        }
-                        // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
-                        if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
-                            throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+                            //LED
+                            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, insta.getLed());
+                            // led 寮傚父鏄剧ず
+                            if (ledThread != null) {
+                                String errorMsg = "姝や负鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱.璇锋斁鍦�" + insta.getBackSta().shortValue() + "绔欑偣";
+                                MessageQueue.offer(SlaveType.Led, insta.getLed(), new Task(5, errorMsg));
+                            }
+                            continue;
                         }
 
-                        Date now = new Date();
-                        // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
-                        Integer staNo = staDesc.getCrnStn();
-                        // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
-                        wrkMast.setIoTime(now);
-                        wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
-                        wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
-                        wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
-                        wrkMast.setStaNo(staNo); // 鐩爣绔�
-                        wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
-                        wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
-                        wrkMast.setModiTime(now);
-                        wrkMast.setUpdMk("");//鍏佽鍐嶆绉诲簱
-                        if (wrkMastMapper.updateById(wrkMast) == 0) {
-                            throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+                        try {
+                            // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+                            if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
+                                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+                            }
+                            // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+                            if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
+                                throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+                            }
+
+                            Date now = new Date();
+                            // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+                            Integer staNo = staDesc.getCrnStn();
+                            // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+                            wrkMast.setIoTime(now);
+                            wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+                            wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+                            wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+                            wrkMast.setStaNo(staNo); // 鐩爣绔�
+                            wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+                            wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+                            wrkMast.setModiTime(now);
+                            wrkMast.setUpdMk("");//鍏佽鍐嶆绉诲簱
+                            if (wrkMastMapper.updateById(wrkMast) == 0) {
+                                throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+                            }
+                            // 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
+                            wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
+                            // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+                            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+                            locMast.setLocSts("Q");
+                            locMast.setModiTime(new Date());
+                            if (!locMastService.updateById(locMast)) {
+                                throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+                            }
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            continue;
                         }
-                        // 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
-                        wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
-                        // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+
                         LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-                        locMast.setLocSts("Q");
-                        locMast.setModiTime(new Date());
-                        if (!locMastService.updateById(locMast)) {
-                            throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+                        // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+                        staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
+                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+                        staProtocol.setPalletSize(locMast.getLocType2());
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        if (!result) {
+                            News.error("" + mark + " - 3" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
                         }
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        continue;
+
+                    } else {
+                        News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
+                                + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk());
                     }
 
-                    LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-                    // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-                    staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
-                    staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
-                    staProtocol.setPalletSize(locMast.getLocType2());
-                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                    if (!result) {
-                        News.error("" + mark + " - 3" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
-                    }
-
-                } else {
-                    News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
-                            + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk());
                 }
 
             }
-
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         News.infoNoLog("" + mark + " - 0" + " - 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱  ===銆嬫墽琛屽畬鎴�");
     }
@@ -749,7 +755,7 @@
 //            }
 
             //鍫嗗灈鏈哄洖鍘熺偣浠诲姟涓�
-            Object object = redisUtil.get(RedisConstantType.CRN_MOVE_LOCK);
+            Object object = redisUtil.get(RedisConstantType.CRN_MOVE_LOCK + crn.getId());
             if (object != null) {
                 continue;
             }
@@ -821,7 +827,7 @@
                     continue;
                 }
 
-                Object object = redisUtil.get(RedisConstantType.CRN_MOVE_LOCK);
+                Object object = redisUtil.get(RedisConstantType.CRN_MOVE_LOCK + crn.getId());
                 if (object != null) {
                     continue;
                 }
@@ -893,7 +899,7 @@
                     continue;
                 }
 
-                Object object = redisUtil.get(RedisConstantType.CRN_MOVE_LOCK);
+                Object object = redisUtil.get(RedisConstantType.CRN_MOVE_LOCK + crn.getId());
                 if (object != null) {
                     continue;
                 }
@@ -1251,7 +1257,7 @@
                             turnCrnExecuteCurrentChannel = turnCrnExecuteCurrentChannelConfig.getValue();
                         }
 
-                        if(turnCrnExecuteCurrentChannel.equals("Y")) {
+                        if (turnCrnExecuteCurrentChannel.equals("Y")) {
                             //鍒ゆ柇鍫嗗灈鏈哄拰褰撳墠浠诲姟鏄惁澶勪簬涓�涓贩閬�
                             if (Utils.getLaneByLocNo(wrkMast.getSourceLocNo()) != crnProtocol.getCrnLane()) {
                                 //鍒ゆ柇鍫嗗灈鏈烘墍鍦ㄥ贩閬撴槸鍚﹀瓨鍦ㄥ叾浠栦换鍔★紝濡傚瓨鍦ㄥ垯浼樺厛鎵ц
@@ -1650,6 +1656,7 @@
                 if (crnProtocol.getTaskNo() == 9999) {
                     // 鍫嗗灈鏈哄浣�
                     crnThread.setResetFlag(true);
+                    redisUtil.set(RedisConstantType.CRN_MOVE_LOCK + crn.getId(), "lock", 8);//闃叉鍥炲師鐐瑰悗涓嬪彂鎸囦护杩囧揩
                     continue;
                 }
 
@@ -1661,7 +1668,7 @@
                 }
 
                 Date now = new Date();
-                if(wrkMast.getIoType() < 100){
+                if (wrkMast.getIoType() < 100) {
                     // 鍏ュ簱 + 搴撲綅杞Щ  ==> 4.鍏ュ簱瀹屾垚
                     if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && (wrkMast.getIoType() == 11 || wrkMast.getIoType() == 111))) {
                         wrkMast.setWrkSts(4L);
@@ -1677,7 +1684,7 @@
                         News.warnNoLog("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo());
                         crnThread.setResetFlag(true);
                     }
-                }else {
+                } else {
                     List<Long> list = new ArrayList<>();
                     list.add(14L);
                     list.add(15L);
@@ -2059,8 +2066,9 @@
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
             // 鍛戒护闆嗗悎
             List<LedCommand> commands = new ArrayList<>();
-            // 宸ヤ綔妗i泦鍚�
-            List<WrkMast> wrkMasts = new ArrayList<>();
+//            // 宸ヤ綔妗i泦鍚�
+//            List<WrkMast> wrkMasts = new ArrayList<>();
+            List<Integer> workNoList = new ArrayList<>();
             for (Integer staNo : led.getStaArr()) {
                 // 鑾峰彇鍙夎溅绔欑偣
                 StaProtocol staProtocol = devpThread.getStation().get(staNo);
@@ -2069,20 +2077,48 @@
                 } else {
                     staProtocol = staProtocol.clone();
                 }
+                Integer wrkNo = null;
+                Integer ioType = null;
+                Integer targetStaNo = null;
+                String sourceLocNo = null;
+                String locNo = null;
+                String barcode = null;
+
                 // 鑾峰彇宸ヤ綔妗f暟鎹�
                 WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
 //                if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; }
                 if (null == wrkMast) {
-                    continue;
+                    List<WrkMastLog> wrkMastLogs = wrkMastLogService.selectList(new EntityWrapper<WrkMastLog>()
+                            .eq("wrk_no", staProtocol.getWorkNo())
+                            .orderBy("modi_time", false)
+                    );
+                    if (wrkMastLogs.isEmpty()) {
+                        continue;
+                    }
+
+                    WrkMastLog wrkMastLog = wrkMastLogs.get(0);
+                    wrkNo = wrkMastLog.getWrkNo();
+                    ioType = wrkMastLog.getIoType();
+                    sourceLocNo = wrkMastLog.getSourceLocNo();
+                    locNo = wrkMastLog.getLocNo();
+                    targetStaNo = wrkMastLog.getStaNo();
+                    barcode = wrkMastLog.getBarcode();
+                }else {
+                    wrkNo = wrkMast.getWrkNo();
+                    ioType = wrkMast.getIoType();
+                    sourceLocNo = wrkMast.getSourceLocNo();
+                    locNo = wrkMast.getLocNo();
+                    targetStaNo = wrkMast.getStaNo();
+                    barcode = wrkMast.getBarcode();
                 }
                 News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�:鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�");
-                wrkMasts.add(wrkMast);
+                workNoList.add(wrkNo);
                 // 缁勮鍛戒护
                 LedCommand ledCommand = new LedCommand();
-                ledCommand.setWorkNo(wrkMast.getWrkNo());
-                ledCommand.setIoType(wrkMast.getIoType());
+                ledCommand.setWorkNo(wrkNo);
+                ledCommand.setIoType(ioType);
                 // 鍑哄簱妯″紡
-                switch (wrkMast.getIoType()) {
+                switch (ioType) {
                     case 1:
                         ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
                         break;
@@ -2115,50 +2151,104 @@
                         ledCommand.setTitle("骞舵澘鍏ュ簱");
                         break;
                     default:
-                        News.error("" + mark + " - 1" + " - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+                        News.error("" + mark + " - 1" + " - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkNo, ioType);
                         break;
                 }
-                ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
-                ledCommand.setLocNo(wrkMast.getLocNo());
-                ledCommand.setStaNo(wrkMast.getStaNo());
-                ledCommand.setBarcode(wrkMast.getBarcode());
+                ledCommand.setSourceLocNo(sourceLocNo);
+                ledCommand.setLocNo(locNo);
+                ledCommand.setStaNo(targetStaNo);
+                ledCommand.setBarcode(barcode);
 //                ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
-                if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
-                    List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
-//                    try{
-//                        if (wrkMast.getIoType()>100){
-//                            for (WrkDetl wrkDetl : wrkDetls){
-//                                LocDetl locDetl = locDetlService.selectMatnrSpecs(wrkDetl.getMatnr(), wrkDetl.getSpecs(), wrkMast.getSourceLocNo());
-//                                wrkDetl.setWeight(locDetl.getAnfme());
-//                            }
-//                        }else {
-//                            for (WrkDetl wrkDetl : wrkDetls){
-//                                wrkDetl.setWeight(wrkDetl.getAnfme());
-//                            }
-//                        }
-//                    }catch (Exception e){
-//                        log.error("宸ヤ綔妗f鏄庣粏杈撳叆鐢佃鏈哄け璐�1锛氬紓甯镐俊鎭�==銆�"+e);
-//                    }
-                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(
-                            wrkDetl.getMatnr()
-                            , wrkDetl.getMaktx()
-                            , wrkDetl.getAnfme()
-                            , wrkDetl.getWeight()
-                            , wrkDetl.getStockNum()
-                            , wrkDetl.getStockNum2()
-                            , wrkDetl.getSpecs()
-                            , wrkDetl.getSku()
-                            , wrkDetl.getZpallet()
-                            , wrkDetl.getModel()
-                            , wrkDetl.getSupp()
-                            , wrkDetl.getKpCstmrName()
-                            , wrkDetl.getOrderNo()
-                            , wrkDetl.getCstateid$()
-                    )));
+                if (ioType != 110 && ioType != 10) {
+                    List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkNo);
+
+                    if (!wrkDetls.isEmpty()) {
+                        WrkDetl wrkDetl = wrkDetls.get(0);
+                        double anfme = 0D;
+                        double weight = 0D;
+                        for (WrkDetl detl : wrkDetls) {
+                            anfme += detl.getAnfme();
+                            weight += detl.getWeight();
+                            wrkDetl.setAnfme(anfme);
+                            wrkDetl.setWeight(weight);
+                        }
+
+                        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
+                                .eq("loc_no", wrkMast.getSourceLocNo()));
+                        double totalAnfme = 0D;
+                        double totalWeight = 0D;
+                        for (LocDetl locDetl : locDetls) {
+                            totalAnfme += locDetl.getAnfme();
+                            totalWeight += locDetl.getWeight();
+                        }
+                        wrkDetl.setStockNum(totalAnfme);
+                        wrkDetl.setStockNum2(totalWeight);
+
+                        ledCommand.getMatDtos().add(new MatDto(
+                                wrkDetl.getMatnr()
+                                , wrkDetl.getMaktx()
+                                , wrkDetl.getAnfme()
+                                , wrkDetl.getWeight()
+                                , wrkDetl.getStockNum()
+                                , wrkDetl.getStockNum2()
+                                , wrkDetl.getSpecs()
+                                , wrkDetl.getSku()
+                                , wrkDetl.getZpallet()
+                                , wrkDetl.getModel()
+                                , wrkDetl.getSupp()
+                                , wrkDetl.getKpCstmrName()
+                                , wrkDetl.getOrderNo()
+                                , wrkDetl.getCstateid$()
+                        ));
+
+                    }else {
+                        List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectTodayByWrkNo(wrkMast.getWrkNo());
+                        if(!wrkDetlLogs.isEmpty()) {
+                            WrkDetlLog wrkDetlLog = wrkDetlLogs.get(0);
+
+                            double anfme = 0D;
+                            double weight = 0D;
+                            for (WrkDetlLog detl : wrkDetlLogs) {
+                                anfme += detl.getAnfme();
+                                weight += detl.getWeight();
+                                wrkDetlLog.setAnfme(anfme);
+                                wrkDetlLog.setWeight(weight);
+                            }
+
+                            List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
+                                    .eq("loc_no", wrkMast.getSourceLocNo()));
+                            double totalAnfme = 0D;
+                            double totalWeight = 0D;
+                            for (LocDetl locDetl : locDetls) {
+                                totalAnfme += locDetl.getAnfme();
+                                totalWeight += locDetl.getWeight();
+                            }
+                            wrkDetlLog.setStockNum(totalAnfme);
+                            wrkDetlLog.setStockNum2(totalWeight);
+
+                            ledCommand.getMatDtos().add(new MatDto(
+                                    wrkDetlLog.getMatnr()
+                                    , wrkDetlLog.getMaktx()
+                                    , wrkDetlLog.getAnfme()
+                                    , wrkDetlLog.getWeight()
+                                    , wrkDetlLog.getStockNum()
+                                    , wrkDetlLog.getStockNum2()
+                                    , wrkDetlLog.getSpecs()
+                                    , wrkDetlLog.getSku()
+                                    , wrkDetlLog.getZpallet()
+                                    , wrkDetlLog.getModel()
+                                    , wrkDetlLog.getSupp()
+                                    , wrkDetlLog.getKpCstmrName()
+                                    , wrkDetlLog.getOrderNo()
+                                    , wrkDetlLog.getCstateid$()
+                            ));
+                        }
+                    }
+
                 }
                 commands.add(ledCommand);
             }
-            Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
+            Set<Integer> workNos = new HashSet<>(workNoList);
             // 鑾峰彇LED绾跨▼
             LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
             // 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护
@@ -2196,12 +2286,15 @@
 
             try {
                 // 淇敼涓绘。led鏍囪
-                for (WrkMast wrkMast : wrkMasts) {
-                    wrkMast.setOveMk("Y");
-                    wrkMast.setModiTime(new Date());
-                    if (wrkMastMapper.updateById(wrkMast) == 0) {
-                        News.errorNoLog("" + mark + " - 4" + " - 鏇存柊宸ヤ綔妗eけ璐�");
-                        throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+                for (Integer wrkNo : workNoList) {
+                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkNo));
+                    if (wrkMast != null) {
+                        wrkMast.setOveMk("Y");
+                        wrkMast.setModiTime(new Date());
+                        if (wrkMastMapper.updateById(wrkMast) == 0) {
+                            News.errorNoLog("" + mark + " - 4" + " - 鏇存柊宸ヤ綔妗eけ璐�");
+                            throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+                        }
                     }
                 }
 
@@ -2385,6 +2478,15 @@
                 return false;
 //                throw new CoolException("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
             } else {
+                String deepLoc2 = Utils.getDeepLoc2(slaveProperties, loc.getLocNo());
+                if (deepLoc2 != null) {
+                    LocMast locnew = locMastService.selectById(deepLoc2);
+                    if (locnew != null && locnew.getLocSts().equals("O")) {
+                        loc = locnew;
+                    }
+                }
+
+
                 try {
                     // 鑾峰彇宸ヤ綔鍙�
                     int workNo = commonService.getWorkNo(0);

--
Gitblit v1.9.1