From d635a99e20e207b40b16b8536c02a0b74df63c61 Mon Sep 17 00:00:00 2001
From: zzgtfwq <zzgtfwq>
Date: 星期一, 23 三月 2026 14:19:10 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |  118 ++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 65 insertions(+), 53 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index e2922d6..d07afd0 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
+import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.WrkDetl;
 import com.zy.asrs.entity.WrkLastno;
 import com.zy.asrs.entity.WrkMast;
@@ -56,7 +57,8 @@
     
     @Autowired
     private WrkDetlService wrkDetlService;
-    
+    @Autowired
+    private LocMastService locMastService;
     @Autowired
     private SlaveProperties slaveProperties;
 
@@ -178,52 +180,44 @@
             // 2. 淇濆瓨WrkMast
             WrkMast wrkMast = new WrkMast();
             int workNo = getWorkNo(0);
-            if(param.getIoType() == 2 || param.getIoType() == 12){
-                wrkMast.setWrkNo(workNo);
-                wrkMast.setUserNo(param.getTaskNo());
-                wrkMast.setIoType(param.getIoType() != 2?10:1);
-                wrkMast.setIoPri(param.getTaskPriority() != null ? param.getTaskPriority().doubleValue() : 11.0);
-                wrkMast.setBarcode(param.getBarcode());
-                wrkMast.setMemo(param.getMemo());
-                wrkMast.setSourceStaNo(Integer.valueOf(param.getStartPoint()));
-                wrkMast.setStaNo(Integer.valueOf(param.getTargetPoint()));
-                wrkMast.setLocNo(param.getTargetLocNo());
-                wrkMast.setSourceLocNo(param.getSourceLocNo());
-            }else if(param.getIoType() == 22 || param.getIoType() == 32){
-                wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode",param.getBarcode()));
-                wrkMast.setWrkSts(param.getIoType() != 32 ? 53L: 57L);
-                wrkMast.setWrkNo(workNo);
-                wrkMast.setUserNo(param.getTaskNo());
-                wrkMast.setIoPri(param.getTaskPriority() != null ? param.getTaskPriority().doubleValue() : 11.0);
-                wrkMast.setBarcode(param.getBarcode());
-                wrkMast.setMemo(param.getMemo());
-                wrkMast.setSourceStaNo(Integer.valueOf(param.getStartPoint()));
-                wrkMast.setStaNo(Integer.valueOf(param.getTargetPoint()));
-                wrkMast.setLocNo(param.getTargetLocNo());
-                wrkMast.setSourceLocNo(param.getSourceLocNo());
-            }else if(param.getIoType() == 3){
-                wrkMast.setWrkNo(workNo);
-                wrkMast.setUserNo(param.getTaskNo());
+
+            Integer sourceStaNo = (param.getStartPoint() == null || param.getStartPoint().isEmpty())
+                    ? null : Integer.valueOf(param.getStartPoint());
+
+            Integer targetStaNo = (param.getTargetPoint() == null || param.getTargetPoint().isEmpty())
+                    ? null : Integer.valueOf(param.getTargetPoint());
+
+            if (param.getIoType() == 2 || param.getIoType() == 12) {
+
+                wrkMast.setIoType(param.getIoType() != 2 ? 10 : 1);
+
+            } else if (param.getIoType() == 22 || param.getIoType() == 32) {
+
+                wrkMast = wrkMastService.selectOne(
+                        new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode())
+                );
+
+                wrkMast.setWrkSts(param.getIoType() != 32 ? 53L : 57L);
+
+            } else if (param.getIoType() == 3) {
+                wrkMast.setEmptyMk("N");
                 wrkMast.setIoType(11);
-                wrkMast.setIoPri(param.getTaskPriority() != null ? param.getTaskPriority().doubleValue() : 12.0);
-                wrkMast.setBarcode(param.getBarcode());
-                wrkMast.setMemo(param.getMemo());
-                wrkMast.setSourceStaNo(Integer.valueOf(param.getStartPoint()));
-                wrkMast.setStaNo(Integer.valueOf(param.getTargetPoint()));
-                wrkMast.setLocNo(param.getTargetLocNo());
-                wrkMast.setSourceLocNo(param.getSourceLocNo());
-            }else{
-                wrkMast.setWrkNo(workNo);
-                wrkMast.setUserNo(param.getTaskNo());
+
+            } else {
+
                 wrkMast.setIoType(ioType);
-                wrkMast.setIoPri(param.getTaskPriority() != null ? param.getTaskPriority().doubleValue() : 11.0);
-                wrkMast.setBarcode(param.getBarcode());
-                wrkMast.setMemo(param.getMemo());
-                wrkMast.setSourceStaNo(Integer.valueOf(param.getStartPoint()));
-                wrkMast.setStaNo(Integer.valueOf(param.getTargetPoint()));
-                wrkMast.setLocNo(param.getTargetLocNo());
-                wrkMast.setSourceLocNo(param.getSourceLocNo());
             }
+
+            /* 鍏叡瀛楁 */
+            wrkMast.setWrkNo(workNo);
+            wrkMast.setUserNo(param.getTaskNo());
+            wrkMast.setIoPri(param.getTaskPriority() != null ? param.getTaskPriority().doubleValue() : 11.0);
+            wrkMast.setBarcode(param.getBarcode());
+            wrkMast.setMemo(param.getMemo());
+            wrkMast.setSourceStaNo(sourceStaNo);
+            wrkMast.setStaNo(targetStaNo);
+            wrkMast.setLocNo(param.getTargetLocNo());
+            wrkMast.setSourceLocNo(param.getSourceLocNo());
 
             if(Inbound){
                 wrkMast.setWrkSts(2L);
@@ -231,10 +225,10 @@
                 wrkMast.setWrkSts(11L);
             }
             String locNo = null;
-            if(param.getSourceLocNo() != null){
+            if (param.getSourceLocNo() != null && !param.getSourceLocNo().isEmpty()) {
                 locNo = param.getSourceLocNo();
             }
-            if(param.getTargetLocNo() !=null){
+            if (param.getTargetLocNo() != null && !param.getTargetLocNo().isEmpty()) {
                 locNo = param.getTargetLocNo();
             }
 // 鍙栧墠涓や綅
@@ -255,6 +249,7 @@
             }
 
             wrkMast.setCrnNo(crnNo);
+            wrkMast.setIoTime(new Date());
             wrkMast.setModiTime(new Date());
             wrkMast.setAppeTime(new Date());
             wrkMast.setWrkDate(new Date());
@@ -265,7 +260,7 @@
             }
 
             // 3. 淇濆瓨WrkDetl
-            if (param.getDetlList() != null && !param.getDetlList().isEmpty()) {
+            if (param.getDetlList() != null && !param.getDetlList().isEmpty() && param.getIoType()!=3) {
                 for (TaskCreateParam.Detl detl : param.getDetlList()) {
                     WrkDetl wrkDetl = new WrkDetl();
                     wrkDetl.setWrkNo(wrkMast.getWrkNo());
@@ -278,7 +273,19 @@
                     wrkDetlService.insert(wrkDetl);
                 }
             }
-            
+            if(param.getIoType() == 2 || param.getIoType() == 12){
+                locMastService.updateLocMast(param.getTargetLocNo(),"S");
+            }else if(param.getIoType() == 3){
+                locMastService.updateLocMast(param.getSourceLocNo(),"R");
+                locMastService.updateLocMast(param.getTargetLocNo(),"S");
+            }else if(param.getIoType() == 22 || param.getIoType() == 32){
+                locMastService.updateLocMast(param.getTargetLocNo(),"Q");
+            }else if(param.getIoType() == 1 || param.getIoType() == 11){
+                locMastService.updateLocMast(param.getSourceLocNo(),"R" );
+            }else{
+                locMastService.updateLocMast(param.getSourceLocNo(),"P" );
+            }
+
             // 4. 涓嬪彂缁橮LC
             if(Inbound){
                 writeToPlc(wrkMast);
@@ -327,17 +334,22 @@
              if (devpThread == null) continue;
              
              // 妫�鏌ヨPLC鏄惁绠$悊璇ョ珯鐐�
-             if (devpThread.getStation().containsKey(sourceStaNo.shortValue())) {
-                 StaProtocol staProtocol = devpThread.getStation().get(sourceStaNo.shortValue());
-                 if (staProtocol != null && staProtocol.getWorkNo() == 9998) {
+             if (devpThread.getStation().containsKey(sourceStaNo)) {
+                 StaProtocol staProtocol = devpThread.getStation().get(sourceStaNo);
+                 if (staProtocol == null) {
+                     continue;
+                 } else {
+                     staProtocol = staProtocol.clone();
+                 }
+                 if (staProtocol != null && staProtocol.getWorkNo() == 9999) {
 
                      staProtocol.setWorkNo(wrkMast.getWrkNo());
                      if (wrkMast.getStaNo() != null) {
-                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+                        staProtocol.setStaNo((short)(wrkMast.getSourceStaNo()- 1));
                      }
                      
                      // 涓嬪彂PLC鎸囦护
-                     devpThread.setPakMk(staProtocol.getSiteId(), false, 283);
+                     devpThread.setPakMk(staProtocol.getSiteId(), false, 9999);
                      boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                      
                      if (result) {

--
Gitblit v1.9.1