From 38ce5bc7cd58a218f89d8f9ca6aacd7e14d6d93e Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期二, 03 二月 2026 15:53:54 +0800
Subject: [PATCH] 1
---
zy-acs-cv/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java | 233 +++++++++------------------------------------------------
1 files changed, 39 insertions(+), 194 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..8cc721e 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
@@ -3,31 +3,20 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.controller.requestParam.StationRequestParam;
+import com.zy.asrs.controller.vo.ApplyInDto;
+import com.zy.asrs.controller.vo.ApplyInRepsonseDto;
+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;
@@ -38,14 +27,10 @@
* Created by vincent on 2020/8/6
*/
@Slf4j
-@Service("ctuMainService")
+@Service
@Transactional
@Data
public class CtuMainServiceImpl implements CtuMainService {
-
- public static final long COMMAND_TIMEOUT = 5 * 1000;
-
- public static final int LOG_STEP = 1;
@Value("${ctu.url}")
@@ -54,182 +39,39 @@
@Value("${ctu.station}")
private String station;
+ @Value("${ctu.sendTask}")
+ private String sendTask;
- @Autowired
- private SlaveProperties slaveProperties;
+ private String code ="code";
- @Autowired
- private WrkLastnoService wrkLastnoService;
+ private String dataCode ="data";
- @Autowired
- private JobMapper jobMapper;
+ private Integer codeValue =200;
- /**
- * 鍑哄簱鐨勬椂鍊欙紝璁惧涓婅蛋
- */
- public synchronized void out(Integer mark) {
+ private Integer timeout = 1200;
+
+
+ @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(timeout, TimeUnit.SECONDS)
+ .setJson(JSON.toJSONString(openBusSubmitParam))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger(code).equals(codeValue)) {
+ 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 +79,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 + "");
@@ -247,19 +89,19 @@
response = new HttpHandler.Builder()
.setUri(ctuUrl)
.setPath(station)
- .setTimeout(1200, TimeUnit.SECONDS)
+ .setTimeout(timeout, TimeUnit.SECONDS)
.setJson(JSON.toJSONString(stationRequestParam))
.build()
.doPost();
JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
+ if (jsonObject.getInteger(code).equals(codeValue)) {
log.info("RCS杩斿洖鏁版嵁锛歿}", response);
- JSONArray data = jsonObject.getJSONArray("data");
+ JSONArray data = jsonObject.getJSONArray(dataCode);
List<StationStatus> stationStatuses = JSONArray.parseArray(data.toString(), StationStatus.class);
for (StationStatus object : stationStatuses) {
if (object.getStaNo().equals(staNo + "")) {
if (object.getConveyable()) {
- return object.getSeqNum();
+ return object.getTaskNo();
} else {
log.info("绔欑偣锛歿}鐘舵�佷笉瀵�", staNo);
return null;
@@ -268,8 +110,8 @@
}
log.info("鏈繑鍥炵珯鐐圭姸鎬侊細{}", staNo);
} else {
- log.error("璋冪敤涓嬪彂浠诲姟鎺ュ彛鎶ラ敊锛屽搷搴旂爜锛歿}锛屽搷搴斿唴瀹癸細{}", jsonObject.getInteger("code"), response);
- throw new CoolException("璋冪敤涓嬪彂浠诲姟鎺ュ彛鎶ラ敊锛屽搷搴旂爜锛�" + jsonObject.getInteger("code"));
+ log.error("璋冪敤涓嬪彂浠诲姟鎺ュ彛鎶ラ敊锛屽搷搴旂爜锛歿}锛屽搷搴斿唴瀹癸細{}", jsonObject.getInteger(code), response);
+ throw new CoolException("璋冪敤涓嬪彂浠诲姟鎺ュ彛鎶ラ敊锛屽搷搴旂爜锛�" + jsonObject.getInteger(code));
}
} catch (CoolException e) {
log.error("璋冪敤绔欑偣鐘舵�佹帴鍙e紓甯�", e);
@@ -279,4 +121,7 @@
}
return null;
}
+
+
+
}
--
Gitblit v1.9.1