From 6f2e70d03c9dde5cdb26b8911d6c19e2993a38ab Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期六, 24 一月 2026 11:08:30 +0800
Subject: [PATCH] 1

---
 zy-acs-cv/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java |  211 +++++-----------------------------------------------
 1 files changed, 21 insertions(+), 190 deletions(-)

diff --git a/zy-acs-cv/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java b/zy-acs-cv/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
index e040e4b..bb1e295 100644
--- a/zy-acs-cv/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
+++ b/zy-acs-cv/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
@@ -5,29 +5,15 @@
 import com.alibaba.fastjson.JSONObject;
 import com.core.exception.CoolException;
 import com.zy.asrs.controller.requestParam.StationRequestParam;
+import com.zy.asrs.controller.vo.OpenBusSubmitParam;
 import com.zy.asrs.controller.vo.StationStatus;
-import com.zy.asrs.entity.Job;
-import com.zy.asrs.enums.WorkNoTypeType;
-import com.zy.asrs.mapper.JobMapper;
 import com.zy.asrs.service.CtuMainService;
-import com.zy.asrs.service.WrkLastnoService;
 import com.zy.common.utils.HttpHandler;
-import com.zy.common.utils.News;
-import com.zy.core.cache.MessageQueue;
-import com.zy.core.cache.SlaveConnection;
-import com.zy.core.enums.SlaveType;
-import com.zy.core.model.DevpSlave;
-import com.zy.core.model.Task;
-import com.zy.core.model.protocol.StaProtocol;
-import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.SiemensDevpThread;
 import lombok.Data;
 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 org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -43,10 +29,6 @@
 @Data
 public class CtuMainServiceImpl implements CtuMainService {
 
-    public static final long COMMAND_TIMEOUT = 5 * 1000;
-
-    public static final int LOG_STEP = 1;
-
 
     @Value("${ctu.url}")
     private String ctuUrl;
@@ -54,182 +36,31 @@
     @Value("${ctu.station}")
     private String station;
 
+    @Value("${ctu.sendTask}")
+    private String sendTask;
 
-    @Autowired
-    private SlaveProperties slaveProperties;
 
-    @Autowired
-    private WrkLastnoService wrkLastnoService;
-
-    @Autowired
-    private JobMapper jobMapper;
-
-    /**
-     * 鍑哄簱鐨勬椂鍊欙紝璁惧涓婅蛋
-     */
-    public synchronized void out(Integer mark) {
+    @Transactional
+    public boolean sendTask(OpenBusSubmitParam openBusSubmitParam) {
+        String response = "";
         try {
-            // 鏍规嵁杈撻�佺嚎plc閬嶅巻
-            for (DevpSlave devp : slaveProperties.getDevp()) {
-                // 閬嶅巻鍑哄簱鍙�
-                for (DevpSlave.Sta releaseSta : devp.getReleaseSta()) {
-                    // 鑾峰彇鍏ュ簱绔欎俊鎭�
-                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                    StaProtocol staProtocol = devpThread.getStation().get(releaseSta.getStaNo());
-                    if (staProtocol == null) {
-                        continue;
-                    } else {
-                        staProtocol = staProtocol.clone();
-                    }
-                    // 鍒ゆ柇鏄惁婊¤冻鏉′欢
-                    if (!staProtocol.isLoading()) {
-                        continue;
-                    }
-                    //&& staProtocol.isOutEnable()
-                    if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0 ) {
-                        String seqNum = checkStationStatus(releaseSta.getStaNo());
-                        if (seqNum != null) {
-                            Job jobBySeqNum = jobMapper.getJobBySeqNum(seqNum);
-                            if (jobBySeqNum == null) {
-                                int workNo = wrkLastnoService.nextWorkNo(WorkNoTypeType.WORK_NO_TYPE.type);
-                                // 涓嬪彂绉诲姩 涓� 涓嬪彂plc鍛戒护
-                                staProtocol.setWorkNo(workNo);
-                                staProtocol.setStaNo(releaseSta.getTargetSta());
-                                if (jobMapper.insert(new Job(seqNum, workNo)) == 0) {
-                                    throw new CoolException("鎻掑叆杈撻�佺嚎浠诲姟澶辫触," + jobBySeqNum + " - " + workNo);
-                                }
-                                devpThread.setPakMk(staProtocol.getSiteId(), false);
-                                boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                                if (result) {
-                                    log.info("杈撻�佺嚎涓嬪彂锛歿},{}", staProtocol.getWorkNo(), releaseSta.getTargetSta());
-                                } else {
-                                    News.error("" + (mark + LOG_STEP) + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
-                                }
-                            }
-                        } else {
-                            News.errorNoLog("" + (mark + LOG_STEP) + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 璋冪敤RCS妫�楠屾湭閫氳繃,绔欑偣锛�" + staProtocol.getSiteId());
-                        }
-                    } else {
-                        News.errorNoLog("" + (mark + LOG_STEP) + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable() + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo() + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk());
-                    }
-                }
+            response = new HttpHandler.Builder()
+                    .setUri(ctuUrl)
+                    .setPath(sendTask)
+                    .setTimeout(1200, TimeUnit.SECONDS)
+                    .setJson(JSON.toJSONString(openBusSubmitParam))
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+            if (jsonObject.getInteger("code").equals(200)) {
+                log.info("涓嬪彂浠诲姟杩斿洖鏁版嵁锛歿}", response);
+                return true;
             }
         } catch (Exception e) {
-            e.printStackTrace();
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", ctuUrl + sendTask, JSON.toJSONString(openBusSubmitParam), response);
         }
+        return false;
     }
-
-
-    /**
-     * 浠庢嫞鏂欑珯鍒板叆搴撶珯锛圕TU鍙栬揣绔欙級
-     */
-    public synchronized void fake(Integer mark) {
-        try {
-            // 鏍规嵁杈撻�佺嚎plc閬嶅巻
-            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-            StaProtocol staProtocol = devpThread.getStation().get(1004);
-            if (staProtocol == null) {
-                return;
-            } else {
-                staProtocol = staProtocol.clone();
-            }
-            // 鍒ゆ柇鏄惁婊¤冻鏉′欢
-            if (!staProtocol.isLoading()) {
-                return;
-            }
-            if (staProtocol.getWorkNo() > 0 && staProtocol.isAutoing()) {
-                Job jobByWorkNo = jobMapper.getJobByWorkNo(staProtocol.getWorkNo());
-                if (jobByWorkNo != null && jobByWorkNo.getJobSts() == 1) {
-                    staProtocol.setStaNo(1006);
-                    boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
-                    if (result) {
-                        jobByWorkNo.setJobSts(2);
-                        jobMapper.updateById(jobByWorkNo);
-                        log.info("鍏ュ簱杈撻�佺嚎涓嬪彂锛歿},{}", staProtocol.getWorkNo(), 1006);
-                    }
-                }
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-        }
-    }
-
-    public synchronized void clear(Integer mark) {
-        try {
-            // 鏍规嵁杈撻�佺嚎plc閬嶅巻
-            for (DevpSlave devp : slaveProperties.getDevp()) {
-                // 閬嶅巻绛夊緟ctu鍙栬揣绔�
-                for (DevpSlave.Sta takeSta : devp.getTakeSta()) {
-                    // 鏍规嵁杈撻�佺嚎plc閬嶅巻
-                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                    StaProtocol staProtocol = devpThread.getStation().get(takeSta.getStaNo());
-                    if (staProtocol == null) {
-                        return;
-                    } else {
-                        staProtocol = staProtocol.clone();
-                    }
-                    // 鍒ゆ柇鏄惁婊¤冻鏉′欢
-                    if (staProtocol.isLoading()) {
-                        return;
-                    }
-                    if (staProtocol.getWorkNo() > 0 && staProtocol.isAutoing()) {
-                        if (checkStationStatus(takeSta.getStaNo()) != null) {
-                            staProtocol.setWorkNo(0);
-                            staProtocol.setStaNo(0);
-                            boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
-                            if (result) {
-                                log.info("" + (mark + LOG_STEP) + "绔欑偣娓呯┖澶辫触锛歿},{}", takeSta.getStaNo(), staProtocol.getWorkNo());
-                            }
-                        }
-                    }
-                }
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-        }
-    }
-
-
-    public synchronized void waitTake(Integer mark) {
-        try {
-            // 鏍规嵁杈撻�佺嚎plc閬嶅巻
-            for (DevpSlave devp : slaveProperties.getDevp()) {
-                // 閬嶅巻鍏ュ簱鍙�
-                for (DevpSlave.Sta inSta : devp.getInSta()) {
-                    // 鏍规嵁杈撻�佺嚎plc閬嶅巻
-                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                    StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
-                    if (staProtocol == null) {
-                        return;
-                    } else {
-                        staProtocol = staProtocol.clone();
-                    }
-                    // 鍒ゆ柇鏄惁婊¤冻鏉′欢
-                    if (!staProtocol.isLoading()) {
-                        return;
-                    }
-                    if (staProtocol.getWorkNo() > 0 && staProtocol.isAutoing()) {
-                        StaProtocol targetStaProtocol = devpThread.getStation().get(inSta.getTargetSta());
-                        if (targetStaProtocol.getWorkNo() == 0 && targetStaProtocol.isAutoing() && !targetStaProtocol.isLoading()) {
-                            staProtocol.setWorkNo(staProtocol.getWorkNo());
-                            staProtocol.setStaNo(inSta.getTargetSta());
-                            boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
-                            if (result) {
-                                log.info("" + (mark + LOG_STEP) + "鍏ュ簱鍓嶈繘锛歿},{}", staProtocol.getWorkNo(), inSta.getTargetSta());
-                            }
-                        }
-                    }
-                }
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-        }
-    }
-
 
     /**
      * 妫�鏌ョ珯鐐圭姸鎬�
@@ -237,7 +68,7 @@
      * @param staNo 绔欑偣缂栧彿
      * @return 绔欑偣鏄惁鍙�氳
      */
-    private String checkStationStatus(Integer staNo) {
+    public String checkStationStatus(Integer staNo) {
         StationRequestParam stationRequestParam = new StationRequestParam();
         List<String> staNos = new ArrayList<>();
         staNos.add(staNo + "");
@@ -259,7 +90,7 @@
                 for (StationStatus object : stationStatuses) {
                     if (object.getStaNo().equals(staNo + "")) {
                         if (object.getConveyable()) {
-                            return object.getSeqNum();
+                            return object.getTaskNo();
                         } else {
                             log.info("绔欑偣锛歿}鐘舵�佷笉瀵�", staNo);
                             return null;

--
Gitblit v1.9.1