From e36c42fa6e1d5c6ee8f1ac15b1be4a825a257807 Mon Sep 17 00:00:00 2001
From: cpT <1@123>
Date: 星期五, 27 六月 2025 13:34:47 +0800
Subject: [PATCH] #改造
---
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 19 +++++++++
src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java | 4 +
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 47 +++++++++++++++++++++++
src/main/java/com/zy/core/MainProcess.java | 8 +++-
src/main/resources/mapper/TaskWrkMapper.xml | 6 +++
5 files changed, 81 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java b/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java
index ea133a8..dcc15b9 100644
--- a/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java
@@ -19,6 +19,8 @@
TaskWrk selectByWrkNo(Integer wrkNo);
+ List<TaskWrk> selectByLaneNo(Integer laneNo);
+
List<TaskWrk> selectReceive();//鑾峰彇鎺ユ敹浠诲姟
TaskWrk selectPakIn(@Param("crnNo") Integer crnNo, @Param("workNo") Integer workNo, @Param("startPoint") String startPoint);
@@ -35,7 +37,7 @@
TaskWrk selectCrnNoInWorking(@Param("crnNo") Integer crnNo,@Param("workNo") Integer workNo);
- TaskWrk selectWalkSta(@Param("crnNo") Integer crnNo,@Param("workNo") Integer workNo);
+// TaskWrk selectWalkSta(@Param("crnNo") Integer crnNo,@Param("workNo") Integer workNo);
List<TaskWrk> selectToBeHistoryData();
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 438cf44..d258772 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -102,6 +102,8 @@
@Value("${constant-parameters.avoidDistance}")
private Long avoidDistance;
+ @Autowired
+ private TaskWrkLogServiceImpl taskWrkLogService;
public void generateStoreWrkFile() {
try {
@@ -701,6 +703,51 @@
}
/**
+ * 鍫嗗灈鏈�5鍒嗛挓鏃犱换鍔″垯鍥炲埌婧愮偣
+ */
+ public void crnStnToOutStnSou() {
+ for (CrnSlave crn : slaveProperties.getCrn()) {
+ try{
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) {
+ continue;
+ }
+ BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
+ if (basCrnp == null) {
+ log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+ continue;
+ }
+
+ if (crnProtocol.getLaneNo()!=0 && (crnProtocol.getBay()!=1 || crnProtocol.getLevel()!=1)){
+ if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.statusType == CrnStatusType.IDLE && crnProtocol.getTaskNo() != 0) {
+ //鑾峰彇宸ヤ綔妗�
+ List<TaskWrk> taskWrks = taskWrkMapper.selectByLaneNo(crnProtocol.getLaneNo());
+ if (!taskWrks.isEmpty()) {
+ continue;
+ }
+ List<TaskWrkLog> taskWrkLogs = taskWrkLogService.selectList(new EntityWrapper<TaskWrkLog>().eq("CRN_NO",crnProtocol.getLaneNo()).orderBy("COMPLETE_TIME",true));
+ if (taskWrkLogs.isEmpty()) {
+ CrnCommand command = new CrnCommand();
+ if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(4, command))) {
+ log.error("鍫嗗灈鏈鸿嚜鍔ㄥ洖婧愮偣澶辫触锛屽爢鍨涙満鍙�={}", crnProtocol.getCrnNo());
+ }
+ }
+// long differenceInSeconds = TimeCalculatorUtils.differenceInMilliseconds(taskWrkLogs.get(0).getCompleteTime(), new Date());
+// if (differenceInSeconds <= 1000) {
+// return;
+// }
+
+ }
+ }
+ } catch (Exception e){
+
+ }
+ }
+ }
+
+ /**
* 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
*/
public synchronized void crnIoExecute() throws IOException {
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index b7aefef..2b938e2 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -46,12 +46,16 @@
mainService.generateStoreWrkFileWalk(); // 浠诲姟涓嬪彂
- // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
- mainService.crnStnToOutStn();
+// // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
+// mainService.crnStnToOutStn();
// 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
mainService.crnIoExecute();
// 鍏ュ簱 ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
mainService.storeFinished();
+ // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
+ mainService.crnStnToOutStn();
+ // 鍑哄簱 ===>> 鍫嗗灈鏈�5鍒嗛挓鏃犱换鍔″垯鍥炲埌婧愮偣
+// mainService.crnStnToOutStnSou();
// 鍫嗗灈鏈哄紓甯镐俊鎭褰�
mainService.recCrnErr();
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 61575fa..1074858 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -95,6 +95,25 @@
command.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞�
write(command);
break;
+ // 澶嶄綅
+ case 4:
+ CrnCommand command4 = (CrnCommand) task.getData();
+ if (null == command4) {
+ command4 = new CrnCommand();
+ }
+ command4.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+ command4.setTaskNo((short) 9999); // 宸ヤ綔鍙�
+ command4.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ command4.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡
+ command4.setSourcePosX((short)0); // 婧愬簱浣嶆帓
+ command4.setSourcePosY((short)0); // 婧愬簱浣嶅垪
+ command4.setSourcePosZ((short)0); // 婧愬簱浣嶅眰
+ int row = slave.getId() * 2;
+ command4.setDestinationPosX((short)row); // 鐩爣搴撲綅鎺�
+ command4.setDestinationPosY((short)1); // 鐩爣搴撲綅鍒�
+ command4.setDestinationPosZ((short)1); // 鐩爣搴撲綅灞�
+ write(command4);
+ break;
default:
break;
}
diff --git a/src/main/resources/mapper/TaskWrkMapper.xml b/src/main/resources/mapper/TaskWrkMapper.xml
index 1793962..7710edd 100644
--- a/src/main/resources/mapper/TaskWrkMapper.xml
+++ b/src/main/resources/mapper/TaskWrkMapper.xml
@@ -36,6 +36,12 @@
and "TASK_NO" = #{taskNo}
</select>
+ <select id="selectByLaneNo" resultMap="BaseResultMap">
+ select * from "SOURCE"."wcs_task_wrk"
+ where 1=1
+ and "CRN_NO"=#{crnNo}
+ </select>
+
<select id="selectByStartPoint" resultMap="BaseResultMap">
select top 1 * from "SOURCE"."wcs_task_wrk"
where 1=1
--
Gitblit v1.9.1