From c3434b1fe0132372b34ff0a46d84e6129a094bfc Mon Sep 17 00:00:00 2001
From: L <L@132>
Date: 星期四, 28 八月 2025 08:43:15 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/controller/CrnController.java | 142 ++++++++++++++++++++++++++++++++---------------
1 files changed, 96 insertions(+), 46 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index ece8da6..573b31f 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -19,6 +19,7 @@
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.service.impl.MainServiceImpl;
+import com.zy.asrs.service.impl.TaskWrkServiceImpl;
import com.zy.asrs.utils.CommandUtils;
import com.zy.asrs.utils.VersionUtils;
import com.zy.core.CrnThread;
@@ -53,10 +54,10 @@
@RestController
public class CrnController {
- @Value("${wms.url}")
- private String wmsUrl;
- @Value("${wms.movePath}")
- private String movePath;
+// @Value("${wms.url}")
+// private String wmsUrl;
+// @Value("${wms.movePath}")
+// private String movePath;
@@ -72,6 +73,8 @@
private MainServiceImpl mainService;
@Autowired
private LocMastService locMastService;
+ @Autowired
+ private TaskWrkServiceImpl taskWrkService;
@ManagerAuth(memo = "杩涜涓殑鍛戒护")
@@ -195,13 +198,12 @@
vo.setWorkNo(crnProtocol.getTaskNo()); // 浠诲姟鍙�
if (crnProtocol.getTaskNo()>0) {
- WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo());
- if (wrkMast != null) {
- vo.setStatus(CrnStatusType.process(wrkMast.getIoType()).getDesc()); // 妯″紡鐘舵��
- vo.setSourceStaNo(wrkMast.getSourceStaNo$()); // 婧愮珯
- vo.setStaNo(wrkMast.getStaNo$()); // 鐩爣绔�
- vo.setSourceLocNo(wrkMast.getSourceLocNo()); // 婧愬簱浣�
- vo.setLocNo(wrkMast.getLocNo()); // 鐩爣搴撲綅
+ TaskWrk taskWrk = taskWrkService.selectByWrkNo(crnProtocol.getTaskNo().intValue());
+ if (taskWrk != null) {
+// vo.setWrkSts(taskWrk.getWrkSts$()); // 宸ヤ綔鐘舵��
+// vo.setIoType(taskWrk.getIoType$()); // 鍏ュ嚭搴撶被鍨�
+ vo.setSourceStaNo(taskWrk.getStartPoint());
+ vo.setStaNo(taskWrk.getTargetPoint());
}
} else {
vo.setStatus(crnProtocol.modeType.equals(CrnModeType.AUTO)? CrnStatusType.MACHINE_AUTO.getDesc(): CrnStatusType.MACHINE_UN_AUTO.getDesc()); // 妯″紡鐘舵��
@@ -236,13 +238,18 @@
vo.setWorkNo(crnProtocol.getTaskNo()); // 浠诲姟鍙�
if (crnProtocol.getTaskNo()>0) {
- WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo());
- if (wrkMast != null) {
- vo.setStatus(CrnStatusType.process(wrkMast.getIoType()).getDesc()); // 妯″紡鐘舵��
- vo.setSourceStaNo(wrkMast.getSourceStaNo$()); // 婧愮珯
- vo.setStaNo(wrkMast.getStaNo$()); // 鐩爣绔�
- vo.setSourceLocNo(wrkMast.getSourceLocNo()); // 婧愬簱浣�
- vo.setLocNo(wrkMast.getLocNo()); // 鐩爣搴撲綅
+ TaskWrk taskWrk = taskWrkService.selectByWrkNo(crnProtocol.getTaskNo().intValue());
+ if (taskWrk != null) {
+// vo.setWrkSts(taskWrk.getWrkSts$()); // 宸ヤ綔鐘舵��
+// vo.setIoType(taskWrk.getIoType$()); // 鍏ュ嚭搴撶被鍨�
+ vo.setSourceStaNo(taskWrk.getStartPoint());
+ vo.setStaNo(taskWrk.getTargetPoint());
+// if (wrkMast != null) {
+// vo.setStatus(CrnStatusType.process(wrkMast.getIoType()).getDesc()); // 妯″紡鐘舵��
+// vo.setSourceStaNo(wrkMast.getSourceStaNo$()); // 婧愮珯
+// vo.setStaNo(wrkMast.getStaNo$()); // 鐩爣绔�
+// vo.setSourceLocNo(wrkMast.getSourceLocNo()); // 婧愬簱浣�
+// vo.setLocNo(wrkMast.getLocNo()); // 鐩爣搴撲綅
}
} else {
vo.setStatus(crnProtocol.modeType.equals(CrnModeType.AUTO)? CrnStatusType.MACHINE_AUTO.getDesc(): CrnStatusType.MACHINE_UN_AUTO.getDesc()); // 妯″紡鐘舵��
@@ -279,13 +286,14 @@
vo.setWorkNo(crnProtocol.getTaskNo()); // 浠诲姟鍙�
if (crnProtocol.getTaskNo()>0) {
- WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo());
- if (wrkMast != null) {
- vo.setDeviceStatus(CrnStatusType.process(wrkMast.getIoType()).getDesc()); // 妯″紡鐘舵��
- vo.setSourceStaNo(wrkMast.getSourceStaNo$()); // 婧愮珯
- vo.setStaNo(wrkMast.getStaNo$()); // 鐩爣绔�
- vo.setSourceLocNo(wrkMast.getSourceLocNo()); // 婧愬簱浣�
- vo.setLocNo(wrkMast.getLocNo()); // 鐩爣搴撲綅
+ TaskWrk taskWrk = taskWrkService.selectByWrkNo(crnProtocol.getTaskNo().intValue());
+// WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo());
+ if (taskWrk != null) {
+ vo.setDeviceStatus(CrnStatusType.process(taskWrk.getIoType()).getDesc()); // 妯″紡鐘舵��
+ vo.setSourceStaNo(taskWrk.getStartPoint()); // 婧愮珯
+ vo.setStaNo(taskWrk.getTargetPoint()); // 鐩爣绔�
+// vo.setSourceLocNo(taskWrk.getTargetPoint()); // 婧愬簱浣�
+// vo.setLocNo(taskWrk.getLocNo()); // 鐩爣搴撲綅
}
} else {
if (Cools.isEmpty(crnProtocol.modeType)){
@@ -295,6 +303,7 @@
}
}
vo.setLaneNo(crnProtocol.getLaneNo()); //
+ vo.setErrorCrn(crnProtocol.getErrCrn()); //
vo.setXspeed(crnProtocol.getXSpeed()); // 璧拌閫熷害锛坢/min)
vo.setYspeed(crnProtocol.getYSpeed()); // 鍗囬檷閫熷害锛坢/min)
vo.setZspeed(crnProtocol.getZSpeed()); // 鍙夌墮閫熷害锛坢/min)
@@ -322,6 +331,7 @@
}
vo.setInEnable(basCrnp.getInEnable());
vo.setOutEnable(basCrnp.getOutEnable());
+ vo.setTaskComplete(crnThread.getResetFlag()? "浠诲姟瀹屾垚涓嬪彂绛夊緟":"-");
}
return R.ok().add(list);
}
@@ -444,11 +454,11 @@
command.setDestinationPosX(param.getBay()); // 鐩爣搴撲綅鍒�
command.setDestinationPosY(param.getLev()); // 鐩爣搴撲綅灞�
command.setCommand((short)1);
- LocMast sourceLoc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", command.getSourcePosX())
- .eq("bay1", command.getSourcePosY()).eq("lev1", command.getSourcePosZ()));
- LocMast loc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", command.getDestinationPosX())
- .eq("bay1", command.getDestinationPosY()).eq("lev1", command.getDestinationPosZ()));
- VersionUtils.locMoveCheckLocType(sourceLoc, loc);
+// LocMast sourceLoc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", command.getSourcePosX())
+// .eq("bay1", command.getSourcePosY()).eq("lev1", command.getSourcePosZ()));
+// LocMast loc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", command.getDestinationPosX())
+// .eq("bay1", command.getDestinationPosY()).eq("lev1", command.getDestinationPosZ()));
+// VersionUtils.locMoveCheckLocType(sourceLoc, loc);
return crnControl(command)?R.ok():R.error();
}
@@ -540,19 +550,54 @@
// if (SystemProperties.WCS_RUNNING_STATUS.get()) {
// return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
// }
- CrnCommand command = new CrnCommand();
- command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
- command.setTaskNo((short) 0); // 宸ヤ綔鍙�
- command.setAckFinish((short) 1); // 浠诲姟瀹屾垚纭浣�
- command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
- command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓
- command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪
- command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰
- command.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺�
- command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒�
- command.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞�
- command.setCommand((short)0);
- return crnControl(command)?R.ok():R.error();
+ if (Cools.isEmpty(param.getCrnNo()) || param.getCrnNo() == 0) {
+ return R.error("璇烽�夋嫨鍫嗗灈鏈�");
+ }
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, param.getCrnNo());
+ crnThread.setResetFlag(true);
+ return R.ok();
+// CrnCommand command = new CrnCommand();
+// command.setCrnNo(); // 鍫嗗灈鏈虹紪鍙�
+// command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+// command.setAckFinish((short) 1); // 浠诲姟瀹屾垚纭浣�
+// command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
+// command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓
+// command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪
+// command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰
+// command.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺�
+// command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒�
+// command.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞�
+// command.setCommand((short)0);
+// return crnControl(command)?R.ok():R.error();
+ }
+
+ @ManagerAuth(memo = "浠诲姟瀹屾垚鎸囦护娓呴櫎")
+ @PostMapping("/crn/operator/taskCompleteClearCommand")
+ public R crnTaskCompleteClearCommand(CrnOperatorParam param){
+ // 绯荤粺杩愯鐘舵�佸垽鏂�
+// if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+// return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+// }
+ // 绯荤粺杩愯鐘舵�佸垽鏂�
+ if (Cools.isEmpty(param.getCrnNo()) || param.getCrnNo() == 0) {
+ return R.error("璇烽�夋嫨鍫嗗灈鏈�");
+ }
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, param.getCrnNo());
+ crnThread.setResetFlag(false);
+ return R.ok();
+// CrnCommand command = new CrnCommand();
+// command.setCrnNo(); // 鍫嗗灈鏈虹紪鍙�
+// command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+// command.setAckFinish((short) 1); // 浠诲姟瀹屾垚纭浣�
+// command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
+// command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓
+// command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪
+// command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰
+// command.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺�
+// command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒�
+// command.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞�
+// command.setCommand((short)0);
+// return crnControl(command)?R.ok():R.error();
}
// @ManagerAuth(memo = "鏆傚仠")
@@ -615,12 +660,13 @@
}
CrnCommand crnCommand = new CrnCommand();
crnCommand.setCrnNo(crn.getId()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撳彿
crnCommand.setTaskMode(CrnTaskModeType.CLEAR);
crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
crnCommand.setCommand((short) 0); // 浠诲姟瀹屾垚纭浣�
// 寤舵椂鍙戦��
Thread.sleep(1000L);
- if (CommandUtils.offer(SlaveType.Crn, crn.getId(), new Task(5, crnCommand), false)) {
+ if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(5, crnCommand))) {
return R.ok();
} else {
throw new CoolException("鍛戒护涓嬪彂澶辫触");
@@ -772,9 +818,11 @@
if (crnProtocol == null) {
throw new CoolException("鍫嗗灈鏈轰笉鍦ㄧ嚎");
}
+ command.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撳彿
+
// 绌洪棽鍒ゆ柇
// if (crnProtocol.getStatusType().equals(com.zy.core.enums.CrnStatusType.IDLE) && crnProtocol.getTaskNo() == 0) {
- if (CommandUtils.offer(SlaveType.Crn, crn.getId(), new Task(4, command), false)) {
+ if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(4, command))) {
return true;
} else {
throw new CoolException("鍛戒护涓嬪彂澶辫触");
@@ -806,9 +854,11 @@
if (crnProtocol == null) {
throw new CoolException("鍫嗗灈鏈轰笉鍦ㄧ嚎");
}
+ command.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撳彿
+
// 绌洪棽鍒ゆ柇
// if (crnProtocol.getStatusType().equals(com.zy.core.enums.CrnStatusType.IDLE) && crnProtocol.getTaskNo() == 0) {
- if (CommandUtils.offer(SlaveType.Crn, crn.getId(), new Task(2, command), false)) {
+ if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, command))) {
return true;
} else {
throw new CoolException("鍛戒护涓嬪彂澶辫触");
--
Gitblit v1.9.1