From 1498da813428be4e35423b6cf26fc45a203e73ab Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期三, 13 八月 2025 16:44:06 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java |  142 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 113 insertions(+), 29 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
index 6eb2d28..c61aa25 100644
--- a/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
@@ -1,10 +1,12 @@
 package com.zy.asrs.service.impl;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.mapper.*;
-import com.zy.asrs.service.*;
-import com.zy.common.service.CommonService;
+import com.zy.asrs.mapper.WrkMastMapper;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WrkMastService;
 import com.zy.common.utils.News;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.SlaveConnection;
@@ -16,18 +18,19 @@
 import com.zy.core.thread.SiemensDevpThread;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔�
  * Created by vincent on 2020/8/6
  */
 @Slf4j
-@Service("mainService")
+@Service("ctuMainService")
 @Transactional
 public class CtuMainServiceImpl {
 
@@ -36,8 +39,12 @@
 
     @Autowired
     private SlaveProperties slaveProperties;
+
     @Autowired
     private WrkMastMapper wrkMastMapper;
+
+    @Autowired
+    private LocMastService locMastService;
 
     @Autowired
     private WrkMastService wrkMastService;
@@ -62,28 +69,49 @@
                     staProtocol = staProtocol.clone();
                 }
                 // 鍒ゆ柇鏄惁婊¤冻鏉′欢
-                if (!staProtocol.isLoading()) {
-                    continue;
-                }
-                if (staProtocol.isAutoing() && staProtocol.isInEnable()
-                        && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
-                        && staProtocol.isPakMk()) {
+//                if (!staProtocol.isLoading()) {
+//                    continue;
+//                }
+                // && staProtocol.isInEnable()
+                if (staProtocol.isAutoing() && !staProtocol.isEmptyMk() && staProtocol.isPakMk()) {
                     WrkMast wrkMast = wrkMastMapper.selectByWrkNo(staProtocol.getWorkNo());
-                    if (wrkMast.getWrkSts() == 106) {
+                    if (wrkMast != null) {
                         //涓嬪彂绉诲姩浠诲姟锛屽苟鐢熸垚鍏ュ簱宸ヤ綔妗�
-
-                    } else {
-                        log.info("" + mark + " - " + staProtocol.getWorkNo() + " - 鎵句笉鍒板搴旂殑宸ヤ綔妗�");
+                        WrkMast in = new WrkMast();
+                        wrkMast.setWrkSts(223L);
+                        wrkMast.setModiTime(new Date());
+                        wrkMastService.updateById(wrkMast);
+                        in.setSourceLocNo("1007");
+                        in.setLocNo(wrkMast.getSourceLocNo());
+                        in.setIoType(10);
+                        in.setIoTime(new Date());
+                        in.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+                        in.setIoPri(13D); // 浼樺厛绾э細13
+                        in.setFullPlt("Y"); // 婊℃澘锛歒
+                        in.setPicking("N"); // 鎷f枡
+                        in.setExitMk("N"); // 閫�鍑�
+                        in.setEmptyMk("Y"); // 绌烘澘
+                        in.setLinkMis("N");
+                        in.setAppeTime(new Date());
+                        in.setModiTime(new Date());
+                        in.setBarcode(wrkMast.getBarcode());
+                        in.setPlcWrkNo(wrkMast.getPlcWrkNo());
+                        wrkMastService.insert(in);
+                        LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+                        locMast.setLocSts("S");
+                        locMast.setModiTime(new Date());
+                        locMastService.updateById(locMast);
                     }
                 }
             }
         }
     }
 
+
     /**
-     * 鍑哄簱绔欏埌鎷f枡绔�
+     * 鍑哄簱
      */
-    public synchronized void generateStoreWrkFile0(Integer mark) {
+    public synchronized void out(Integer mark) {
         // 鏍规嵁杈撻�佺嚎plc閬嶅巻
         for (DevpSlave devp : slaveProperties.getDevp()) {
             // 閬嶅巻鍏ュ簱鍙�
@@ -100,13 +128,12 @@
                 if (!staProtocol.isLoading()) {
                     continue;
                 }
-
-                if (staProtocol.isAutoing() && staProtocol.isOutEnable()
-                        && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
-                        && staProtocol.isPakMk()) {
+                //&& staProtocol.isOutEnable()
+                if (staProtocol.isAutoing() && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) && staProtocol.isPakMk()) {
                     News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
-                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_sta_no", staProtocol.getSiteId()).eq("wrk_sts", 105));
+                    // 106涔熺畻涓婏紝浠ュ悗106-銆�107鐢ㄤ簬鏇存柊搴撳瓨
+                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("loc_no", "1001").in("wrk_sts", 106, 107));
                     if (wrkMast == null) {
                         continue;
                     }
@@ -114,14 +141,14 @@
                     // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
 
                     // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-                    staProtocol.setWorkNo(wrkMast.getWrkNo());
-                    staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+                    staProtocol.setWorkNo(wrkMast.getPlcWrkNo());
+                    staProtocol.setStaNo((short) 1004);
                     devpThread.setPakMk(staProtocol.getSiteId(), false);
                     boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                    log.info("杈撻�佺嚎涓嬪彂3锛歿},{}", wrkMast.getWrkNo(), wrkMast.getStaNo());
+                    log.info("杈撻�佺嚎涓嬪彂3锛歿},{}", wrkMast.getWrkNo(), 1004);
                     if (result) {
                         // 鏇存柊宸ヤ綔涓绘。
-                        wrkMast.setWrkSts(106L);
+                        wrkMast.setWrkSts(108L);
                         wrkMast.setModiTime(new Date());
                         if (wrkMastMapper.updateById(wrkMast) == 0) {
                             News.error("" + mark + " - 1" + " - 鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
@@ -131,12 +158,69 @@
                     }
 
                 } else {
-                    News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
-                            + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo()
-                            + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk() + "銆佸叆搴撳嵃璁帮細" + staProtocol.getStamp());
+                    News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable() + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo() + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk() + "銆佸叆搴撳嵃璁帮細" + staProtocol.getStamp());
                 }
             }
         }
     }
 
+    public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
+
+        add(101);
+        add(102);
+        add(103);
+        add(104);
+        add(105);
+        add(106);
+        add(107);
+        add(108);
+    }};
+
+    public synchronized void in(Integer mark) {
+        // 閬嶅巻鍏ュ簱鍙�
+        for (Integer inSta : staNos2) {
+            // 鑾峰彇鍏ュ簱绔欎俊鎭�
+            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+            StaProtocol staProtocol = devpThread.getStation().get(inSta);
+            if (staProtocol == null) {
+                continue;
+            } else {
+                staProtocol = staProtocol.clone();
+            }
+            // 鍒ゆ柇鏄惁婊¤冻鏉′欢
+            if (!staProtocol.isAutoing() && !staProtocol.isLoading()) {
+                continue;
+            }
+            // && staProtocol.isInEnable()
+            if (staProtocol.isInEnable()) {
+                getWrk(staProtocol, "-2");
+            }
+            if (staProtocol.isOutEnable()) {
+                getWrk(staProtocol, "-3");
+            }
+        }
+    }
+
+    private void getWrk(StaProtocol staProtocol, String lev) {
+        List<WrkMast> sourceLocNo = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("source_loc_no", staProtocol.getSiteId() + lev));
+        if (!Cools.isEmpty(sourceLocNo) && !sourceLocNo.isEmpty()) {
+            return;
+        }
+        WrkMast in = new WrkMast();
+        in.setSourceLocNo(staProtocol.getSiteId() + lev);
+        in.setLocNo("");
+        in.setIoType(10);
+        in.setIoTime(new Date());
+        in.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+        in.setIoPri(13D); // 浼樺厛绾э細13
+        in.setFullPlt("Y"); // 婊℃澘锛歒
+        in.setPicking("N"); // 鎷f枡
+        in.setExitMk("N"); // 閫�鍑�
+        in.setEmptyMk("Y"); // 绌烘澘
+        in.setLinkMis("N");
+        in.setAppeTime(new Date());
+        in.setModiTime(new Date());
+        wrkMastService.insert(in);
+    }
+
 }

--
Gitblit v1.9.1