From c4b2cfbdc4b31a6e37a9b51c5f69620bd5e7841f Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期六, 23 八月 2025 08:38:58 +0800
Subject: [PATCH] wcs功能完善

---
 src/main/java/com/zy/common/model/MatDto.java             |    6 +
 src/main/java/com/zy/core/model/protocol/StaProtocol.java |    3 
 src/main/java/com/zy/core/thread/SiemensCrnThread.java    |    1 
 src/main/resources/mapper/WrkMastMapper.xml               |    3 
 src/main/java/com/zy/service/impl/MainServiceImpl.java    |  164 ++++++++++++++++++++++++++++++++++++++--
 src/main/java/com/zy/core/thread/SiemensDevpThread.java   |   32 ++++++++
 src/main/java/com/zy/mapper/WrkMastMapper.java            |    9 ++
 7 files changed, 207 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/common/model/MatDto.java b/src/main/java/com/zy/common/model/MatDto.java
index 66c5ca0..8e1843f 100644
--- a/src/main/java/com/zy/common/model/MatDto.java
+++ b/src/main/java/com/zy/common/model/MatDto.java
@@ -41,6 +41,12 @@
 
     private Double total;
 
+    // 鎬诲嚭搴撴暟
+    private int outTotal;
+
+    // 宸插嚭搴撴暟
+    private int isOutCount;
+
     public MatDto() {
     }
     public MatDto(String matnr,String batch,String specs,String manuDate,String model,double weight, double length,double volume) {
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index 7529041..1a51b5d 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -46,6 +46,9 @@
     // 浣�
     private boolean low;
 
+    // 鍑哄叆搴撴ā寮�
+    private int inOrOutMode;
+
     // 閿佸畾鏍囪
     private boolean pakMk = true;
 
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 9c3e00e..e4d6b3a 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -111,6 +111,7 @@
             crnProtocol = new CrnProtocol();
         }
         crnProtocol.setMode((short) -1);
+        crnProtocol.setCrnNo(slave.getId());
 //        crnProtocol.setTaskNo((short)0);
         crnProtocol.setStatus((short)-1);
         crnProtocol.setBay((short)0);
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index d8e8d66..40d0653 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -5,6 +5,7 @@
 import HslCommunication.Profinet.Siemens.SiemensPLCS;
 import HslCommunication.Profinet.Siemens.SiemensS7Net;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.SpringUtils;
@@ -18,6 +19,8 @@
 import com.zy.core.model.protocol.StaProtocol;
 import com.zy.entity.BasDevp;
 import com.zy.service.BasDevpService;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import com.zy.utils.News;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
@@ -369,6 +372,35 @@
             }
         }
 
+        // 璇�1鍙疯緭閫佺嚎鍑哄叆搴撴ā寮�
+        if (slave.getId() == 1) {
+            OperateResultExOne<byte[]> inOrOutBoundModeResult = siemensS7Net.Read("DB101.1480", (short) 2);
+            if (inOrOutBoundModeResult.IsSuccess) {
+                // 鍑哄叆搴撴ā寮�
+                int inOrOutMode = siemensS7Net.getByteTransform().TransInt16(inOrOutBoundModeResult.Content, 0);
+                // 鏇存柊鍑哄叆搴撴ā寮忓��
+                ConfigService configService = SpringUtils.getBean(ConfigService.class);
+                Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "inOrOutBoundMode"));
+                if (config != null) {
+                    config.setValue(String.valueOf(inOrOutMode));
+                    configService.updateById(config);
+                }
+                StaProtocol staProtocol1016 = station.get(1016);
+                StaProtocol staProtocol1043 = station.get(1016);
+                StaProtocol staProtocol1019 = station.get(1019);
+                if(staProtocol1016 != null) {
+                    staProtocol1016.setInOrOutMode(inOrOutMode);
+                }
+                if(staProtocol1043 != null) {
+                    staProtocol1043.setInOrOutMode(inOrOutMode);
+                }
+                if(staProtocol1019 != null) {
+                    staProtocol1019.setInOrOutMode(inOrOutMode);
+                }
+//                log.info("璇诲彇鍒板嚭鍏ュ簱妯″紡鍊间负锛歿}",inOrOutMode);
+            }
+        }
+
         // 璇荤┖妗朵俊鎭弽棣�
         if (slave.getId() == 1) {
             OperateResultExOne<byte[]> emptyBucketsResult = siemensS7Net.Read("DB101.1320", (short) (staNosErrList1.size() * 6));
diff --git a/src/main/java/com/zy/mapper/WrkMastMapper.java b/src/main/java/com/zy/mapper/WrkMastMapper.java
index 511d6b6..d6eb1a1 100644
--- a/src/main/java/com/zy/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/mapper/WrkMastMapper.java
@@ -2,9 +2,13 @@
 
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import com.zy.entity.WrkMast;
-import org.apache.ibatis.annotations.*;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
 import org.springframework.stereotype.Repository;
 
+import java.util.Date;
 import java.util.List;
 
 @Mapper
@@ -127,4 +131,7 @@
     WrkMast selectBy104();
 
     int selectCountByKb();
+
+    // 鏍规嵁鍑哄叆搴撶被鍨嬪拰宸ヤ綔鏃堕棿锛屾煡璇㈠巻鍙茶〃璁板綍鏁伴噺
+    int selectCountHisByIoTypeAndIoTime(@Param("ioType") Integer IoType,@Param("ioType") Date ioTime);
 }
diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index 4b06fd2..3c045b6 100644
--- a/src/main/java/com/zy/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -108,7 +108,7 @@
         crnOutSiteToRgvSite.put(1093, (short) 1091);crnOutSiteToRgvSite.put(1099, (short) 1097);crnOutSiteToRgvSite.put(1107, (short) 1105);
 
         crnOutSiteToRgvSite2.put(1087, (short) 1089);crnOutSiteToRgvSite2.put(1084, (short) 1086);crnOutSiteToRgvSite2.put(1081, (short) 1083);
-        crnOutSiteToRgvSite2.put(1043, (short) 1041);crnOutSiteToRgvSite2.put(1016, (short) 1018);
+        crnOutSiteToRgvSite2.put(1043, (short) 1041);crnOutSiteToRgvSite2.put(1016, (short) 1018);crnOutSiteToRgvSite2.put(1008, (short) 1006);
     }
 
     @Autowired
@@ -696,7 +696,12 @@
                 // 鍒ゆ柇1050鏄惁鏈夎揣
                 StaProtocol staProtocol1 = devpThread.getStation().get(1050);
                 if(staProtocol1.isAutoing() && staProtocol1.isLoading() && staProtocol1.isInEnable() && staProtocol1.getWorkNo() != 0) {
-
+                    // 鍒嗛厤搴撲綅
+                    boolean isContinue =getLocNoNew(staProtocol1.getWorkNo(),wrkMast);
+                    // 鏄惁涓嶇户缁線涓嬫墽琛�
+                    if (isContinue) {
+                        continue;
+                    }
                 } else {
                     continue;
                 }
@@ -789,8 +794,8 @@
             if(crnStn.getStaNo() == 1050 && locMast.getRow1() == 10) {
                 crnCommand.setDestinationPosX((short) 9);
             }
-            if(crnStn.getStaNo() == 1049 && locMast.getRow1() == 11) {
-                crnCommand.setDestinationPosX((short) 12);
+            if(crnStn.getStaNo() == 1049 && locMast.getRow1() == 10) {
+                crnCommand.setDestinationPosX((short) 9);
             }
             crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
             crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞�
@@ -832,6 +837,115 @@
         News.infoNoLog(""+mark+" - 1"+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 锛� 鍏ュ簱鎵ц瀹屾瘯");
     }
 
+    private boolean getLocNoNew(Integer workNo1050, WrkMast wrkMast1049) {
+        if(!wrkMast1049.getLocNo().isEmpty()) {
+            return false;
+        }
+        WrkMast wrkMast1050 = wrkMastMapper.selectPakInStep2(4, workNo1050);
+        // 鍒ゆ柇1050娌℃湁琚爢鍨涙満鍙栵紝骞朵笖娌℃湁灏炬嫋淇″彿
+        if(wrkMast1050 != null && wrkMast1050.getCtnType() != 1) {
+            // 鍒ゆ柇杩欎袱涓揣鏄笉鏄竴绉嶇被鍨嬶紝涓嶆槸缁�1050鍒嗛厤搴撲綅锛岀粰灏炬嫋鏍囪瘑锛屾槸鍒欑粰涓や釜璐у垎閰嶅簱浣�
+             if(wrkMast1050.getPdcType().equals(wrkMast1049.getPdcType())) {
+                 // 鍙栨柊搴撲綅缁勭殑绗竴涓簱浣�
+                 List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no", 4).eq("loc_sts", "O"));
+                 List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 9 || locMast1.getRow1() == 11).collect(Collectors.toList());
+                 List<LocMast> collect1 = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 10 || locMast1.getRow1() == 12).collect(Collectors.toList());
+                 if (collect.size() <= 0 && collect1.size()  <= 0) {
+                     News.error("绔欑偣:{},浠诲姟鍙穥}锛氬叆搴撶┖妗跺簱鏃犵┖搴撲綅",1050,workNo1050);
+                     return true;
+                 }
+                 // 鍙敤搴撲綅缁�
+                 List<LocMast> locMastList = new ArrayList<>();
+                 for(LocMast locMast1:collect) {
+                     Optional<LocMast> first = collect1.stream().filter(locMast2 -> locMast1.getRow1() + 1 == locMast2.getRow1() && Objects.equals(locMast1.getLev1(), locMast2.getLev1())
+                             && Objects.equals(locMast1.getBay1(), locMast2.getBay1())).findFirst();
+                     first.ifPresent(locMastList::add);
+                 }
+
+                 if (locMastList.size() == 0) {
+                     News.error("绔欑偣:{},浠诲姟鍙穥}锛氬叆搴撶┖妗跺簱鏃犲搴旂┖绌烘《缁�",1050,workNo1050);
+                     return true;
+                 }
+                 WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo1050));
+                 if (wrkDetl.getModel().equals("208L") && locMastList.size() <= 40 * 2 * 2) { // 鏈�涓婇潰涓�灞傚彧鑳芥斁208L锛屽簱浣嶅墿浣欓噺涓嶅鏃讹紝濡傛灉鏄�208L妗跺叆搴擄紝鍒欏厛浠庢渶椤跺眰鏀�
+                     locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).reversed().thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList());
+                 } else {
+                     locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList());
+                 }
+                 // 1049瀵瑰簲搴撲綅
+                 LocMast locMast = locMastList.get(0);
+
+                 wrkMast1049.setLocNo(locMast.getLocNo());
+                 wrkMastService.updateById(wrkMast1049);
+                 if (locMast.getLocSts().equals("O")){
+                     locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+                     locMast.setModiTime(new Date());
+                     if (!locMastService.updateById(locMast)){
+                         News.error("绔欑偣:{},浠诲姟鍙穥}锛氭敼鍙樺簱浣峽}鐘舵�亄}澶辫触",1049,wrkMast1049.getWrkNo(),locMast.getLocNo(),locMast.getLocSts());
+                     } else {
+                         // 缁�1050鍒嗛厤瀵瑰簲搴撲綅
+                         Optional<LocMast> first = collect.stream().filter(locMast1 -> locMast1.getLocNo().equals((locMast.getRow1() == 10 ? "09" : "11") + locMast.getLocNo().substring(2))).findFirst();
+                         if(first.isPresent()) {
+                             LocMast locMast1 = first.get();
+                             wrkMast1050.setLocNo(locMast1.getLocNo());
+
+                             locMast1.setLocSts("S"); // S.鍏ュ簱棰勭害
+                             locMast1.setModiTime(new Date());
+                             wrkMastService.updateById(wrkMast1050); // 鏇存柊鍒嗛厤鐨勫簱浣�
+                             locMastService.updateById(locMast1); // 鏇存柊搴撲綅鐘舵��
+                             return false;
+                         } else {
+                             News.error("绔欑偣:{},浠诲姟鍙穥}锛氱┖搴撲綅缁剓}鏃犲搴旂┖搴撲綅",1050,workNo1050,locMast.getLocNo());
+                         }
+                     }
+                 } else {
+                     News.error("绔欑偣:{},浠诲姟鍙穥}锛氱洰鏍囧簱浣嶏細{}宸茶鍗犵敤",1049,wrkMast1049.getWrkNo(),locMast.getLocNo());
+                 }
+             } else {
+                 // 鍙栨柊搴撲綅缁勭殑绗竴涓簱浣�
+                 List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no", 4).eq("loc_sts", "O"));
+                 List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 9 || locMast1.getRow1() == 11).collect(Collectors.toList());
+                 List<LocMast> collect1 = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 10 || locMast1.getRow1() == 12).collect(Collectors.toList()); // 绗竴涓厛鏀捐繖涓ゆ帓
+                 if (collect.size() <= 0 && collect1.size()  <= 0) {
+                     News.error("绔欑偣:{},浠诲姟鍙穥}锛氬叆搴撶┖妗跺簱鏃犵┖搴撲綅",1050,workNo1050);
+                     return true;
+                 }
+                // 鍙敤搴撲綅缁�
+                List<LocMast> locMastList = new ArrayList<>();
+                for(LocMast locMast1:collect) {
+                    Optional<LocMast> first = collect1.stream().filter(locMast2 -> locMast1.getRow1() + 1 == locMast2.getRow1() && Objects.equals(locMast1.getLev1(), locMast2.getLev1())
+                            && Objects.equals(locMast1.getBay1(), locMast2.getBay1())).findFirst();
+                    first.ifPresent(locMastList::add);
+                }
+
+                if (locMastList.size() == 0) {
+                    News.error("绔欑偣:{},浠诲姟鍙穥}锛氬叆搴撶┖妗跺簱鏃犲搴旂┖绌烘《缁�",1050,workNo1050);
+                    return true;
+                }
+                 WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo1050));
+                if (wrkDetl.getModel().equals("208L") && locMastList.size() <= 40 * 2 * 2) { // 鏈�涓婇潰涓�灞傚彧鑳芥斁208L锛屽簱浣嶅墿浣欓噺涓嶅鏃讹紝濡傛灉鏄�208L妗跺叆搴擄紝鍒欏厛浠庢渶椤跺眰鏀�
+                    locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).reversed().thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList());
+                } else {
+                    locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList());
+                }
+                 LocMast locMast = locMastList.get(0);
+                 wrkMast1050.setLocNo(locMast.getLocNo());
+                 wrkMast1050.setCtnType(1); // 灏炬墭鏍囪瘑
+                 wrkMastService.updateById(wrkMast1050);
+                 if (locMast.getLocSts().equals("O")){
+                     locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+                     locMast.setModiTime(new Date());
+                     if (!locMastService.updateById(locMast)){
+                         News.error("绔欑偣:{},浠诲姟鍙穥}锛氭敼鍙樺簱浣峽}鐘舵�亄}澶辫触",1050,workNo1050,locMast.getLocNo(),locMast.getLocSts());
+                     }
+                 } else {
+                     News.error("绔欑偣:{},浠诲姟鍙穥}锛氱洰鏍囧簱浣嶏細{}宸茶鍗犵敤",1050,workNo1050,locMast.getLocNo());
+                 }
+             }
+        }
+        return true;
+    }
+
     /**
      * 鍑哄簱  ===>>  搴撲綅鍒板爢鍨涙満绔�
      * 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
@@ -858,6 +972,15 @@
             for (WrkMast wrkMast : wrkMasts) {
                 if (wrkMast == null) {
                     continue;
+                }
+                // 鍒ゆ柇浠诲姟鐩爣绔欑偣鏄惁鏄嚭搴撴ā寮�
+                if(wrkMast.getStaNo() == 1016 || wrkMast.getStaNo() == 1043) {
+                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+                    StaProtocol staProtocol = devpThread.getStation().get(wrkMast.getStaNo());
+                    if(staProtocol.getInOrOutMode() != 2) {
+                        News.error("{}浠诲姟鐩爣绔欑偣锛歿}锛屽綋鍓嶆ā寮忥細{}涓嶆槸鍑哄簱妯″紡锛屾棤娉曞嚭搴�",wrkMast.getWrkNo(),wrkMast.getStaNo(),staProtocol.getInOrOutMode());
+                        continue;
+                    }
                 }
                 if (wrkMast.getStaNo() == 1031) {
                     // 鑾峰彇1033鏃犵姸鎬佹椂浠诲姟鏁�+1
@@ -1193,16 +1316,16 @@
                     if(wrkMast.getWorkNoOther() != 0 ){
                         WrkMast wrkMast1 = wrkMastService.selectByWrkNo(wrkMast.getWorkNoOther());
                         if (wrkMast1 != null) {
-                            // 浜ゆ崲搴撲綅鍙�
+//                            // 浜ゆ崲搴撲綅鍙�
                             String locNo = wrkMast.getLocNo();
-                            wrkMast.setLocNo(wrkMast1.getLocNo());
+//                            wrkMast.setLocNo(wrkMast1.getLocNo());
                             // 浜ゆ崲鍏ュ簱鏃堕棿锛屾彁鍙栧簱瀛樻椂鎸夐『搴忓厛娴呭悗娣�
                             Date ioTime = wrkMast.getIoTime();
                             if(locNo.startsWith("10")) {
                                 wrkMast.setIoTime(wrkMast1.getIoTime());
                                 wrkMast1.setIoTime(ioTime);
                             }
-                            wrkMast1.setLocNo(locNo);
+//                            wrkMast1.setLocNo(locNo);
                             wrkMast1.setCrnEndTime(now);
                             wrkMast1.setModiTime(now);
                             wrkMast1.setWrkSts(4L);
@@ -1648,6 +1771,13 @@
                 // 鏄庣粏
                 WrkDetl wrkDetl1 = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                 if (wrkDetl1 != null) {
+                    // 鍑哄簱浠诲姟鐨勫洓涓嚭搴撶珯鐐癸紝鍒ゆ柇褰撳墠鐗╂枡涓�鎵瑰嚭搴撶殑鏃堕棿 鑾峰彇褰撳墠宸插畬鎴� / 鎬绘暟
+                    if(wrkMast.getIoType() == 101 && (wrkMast.getStaNo() == 1024 ||wrkMast.getStaNo() == 1040 ||wrkMast.getStaNo() == 1043 ||wrkMast.getStaNo() == 1016) ) {
+                        int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 101).eq("io_time", wrkMast.getIoTime()));
+                        int countHis = wrkMastMapper.selectCountHisByIoTypeAndIoTime(101, wrkMast.getIoTime());
+                        matDto.setOutTotal(count+countHis);
+                        matDto.setIsOutCount(countHis + 1);
+                    }
                     ledCommand.setOrderNo(wrkDetl1.getOrderNo());
                     matDto.setMaknx(wrkDetl1.getMaktx());
                     matDto.setMatnr(wrkDetl1.getMatnr());
@@ -1716,6 +1846,14 @@
                 if (staProtocol.getWorkNo() != 0) {
                     reset = false;
                     break;
+                } else {
+                    // 鍏ュ簱鍦ㄦ棤鐗╃殑鏃跺�欐墠娓呴櫎寮傚父
+                    if(staNo == 1006 || staNo == 1012 || staNo == 1018 || staNo == 1041) {
+                        if(staProtocol.isLoading()) {
+                            reset = false;
+                            break;
+                        }
+                    }
                 }
             }
             // 鑾峰彇led绾跨▼
@@ -2079,6 +2217,12 @@
                     wrkMast.setWrkSts(15L);
                     wrkMast.setModiTime(new Date());
                     wrkMastService.updateById(wrkMast);
+                    // 1020鍒囨崲鍑哄簱妯″紡锛屽鏋滄湁鎵樼洏鍏ユ媶鐩樻満锛屼笉缁欒緭閫佺嚎涓嬪彂鍛戒护
+                    if(wrkMast.getStaNo() == 1020) {
+                        if(staProtocol.getInOrOutMode() != 1) {
+                            continue;
+                        }
+                    }
                 } else if(wrkMast.getIoType() == 120) {
                     if(wrkMast.getWrkSts() != 53 ){
                         log.warn("rgv鏀捐揣瀹屾垚120锛宺gv鏈浣�:rgv鍙穥}锛屼换鍔″彿锛歿}锛屼换鍔$姸鎬亄}",wrkMast.getRgvNo(),wrkMast.getWrkNo(),wrkMast.getWrkSts());
@@ -2596,7 +2740,7 @@
             if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.getWorkNo() != 0) {
                 // 鏌ヨ宸ヤ綔妗�
                 WrkMast wrkMast = wrkMastMapper.selectByWrkNo(staProtocol.getWorkNo());
-                if (wrkMast != null && wrkMast.getWhsType() == null) {
+                if (wrkMast != null && wrkMast.getWhsType() == null && wrkMast.getIoType() != 120) {
                     WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                     staProtocol.setBucketType(wrkDetl.getMatnr());
                     staProtocol.setBucketCount(wrkDetl.getAnfme().intValue());
@@ -2671,10 +2815,10 @@
                 StaProtocol staProtocolNew = new StaProtocol();
                 staProtocolNew.setSiteId(staProtocol.getSiteId());
                 staProtocolNew.setWorkNo(wrkMast.getWrkNo());
-                staProtocolNew.setStaNo(crnOutSiteToRgvSite2.get(wrkMast.getSourceStaNo()));
+                staProtocolNew.setStaNo(crnOutSiteToRgvSite2.get(wrkMast.getSourceStaNo()) != null ? crnOutSiteToRgvSite2.get(wrkMast.getSourceStaNo()) :wrkMast.getSourceStaNo().shortValue());
                 devpThread.setPakMk(staProtocol.getSiteId(), false);
                 boolean result = MessageQueue.offer(SlaveType.Devp, devpId, new Task(2, staProtocolNew));
-                log.info("鎵嬪姩绔欎綅杞Щ杈撻�佺嚎涓嬪彂锛�" + staProtocolNew.getWrkNo() + "," + staProtocolNew.getSiteId());
+                log.info("鎵嬪姩绔欎綅杞Щ杈撻�佺嚎涓嬪彂锛�" + staProtocolNew.getWorkNo() + "," + staProtocolNew.getSiteId() + "->" + staProtocolNew.getStaNo());
                 if (!result) {
                     News.errorNoLog("" + " - 1" + " - 鏇存柊plc绔欑偣淇℃伅澶辫触");
                     throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index ed4f285..b07af7d 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -237,4 +237,7 @@
     )
 )
     </select>
+    <select id="selectCountHisByIoTypeAndIoTime" resultType="java.lang.Integer">
+         select count (*) from asr_wrk_mast_log where io_type = #{ioType} and io_time = #{ioTime}
+    </select>
 </mapper>

--
Gitblit v1.9.1