From c904f735e0b8a488ef56744c08f8e10258639bce Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期四, 05 六月 2025 15:54:58 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/RgvController.java | 217 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 209 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index c46f545..59cb2d8 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -14,10 +14,12 @@
import com.zy.asrs.entity.BasRgv;
import com.zy.asrs.entity.BasRgvErr;
import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.WrkMastSta;
import com.zy.asrs.mapper.BasRgvErrMapper;
import com.zy.asrs.service.BasRgvService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.WrkMastStaService;
import com.zy.asrs.service.impl.MainServiceImpl;
import com.zy.core.CrnThread;
import com.zy.core.RgvThread;
@@ -70,6 +72,8 @@
private MainServiceImpl mainService;
@Autowired
private LocMastService locMastService;
+ @Autowired
+ private WrkMastStaService wrkMastStaService;
int wrkNo = 9990;
@@ -104,17 +108,27 @@
@GetMapping("/demo/status")
public R demoStatus(Integer rgvNo){
+ Map<String,Object> map = new HashMap<>();
if (Cools.isEmpty(rgvNo)){
- return R.ok("X");
+ map.put("demo","X");
+ map.put("rgvMode",0);
+ return R.ok().add(map);
}
String demo = "X";
+ Integer rgvMode = 0;
// List<Map<String, Object>> res = new ArrayList<>();
for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
- if (rgvSlave.getId() == rgvNo){
+ SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvSlave.getId().equals(rgvNo)){
demo = rgvSlave.getDemo()?"Y":"N";
+ rgvSlave.setRgvMode(rgvProtocol.getMode().intValue());
+ rgvMode = rgvProtocol.getMode().intValue();
}
}
- return R.ok(demo);
+ map.put("demo",demo);
+ map.put("rgvMode",rgvMode);
+ return R.ok().add(map);
}
@GetMapping("/demo/status/true")
@@ -124,7 +138,7 @@
}
// List<Map<String, Object>> res = new ArrayList<>();
for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
- if (rgvSlave.getId() == rgvNo){
+ if (rgvSlave.getId().equals(rgvNo)){
rgvSlave.setDemo(true);
}
}
@@ -137,9 +151,90 @@
}
// List<Map<String, Object>> res = new ArrayList<>();
for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
- if (rgvSlave.getId() == rgvNo){
+ if (rgvSlave.getId().equals(rgvNo)){
rgvSlave.setDemo(false);
}
+ }
+ return R.ok();
+ }
+
+ @GetMapping("/demo/status/rgvStatus")
+ public R demoStatusTrue1(Integer rgvNo,Integer status){
+ if (Cools.isEmpty(rgvNo)){
+ return R.error("璇烽�夋嫨rgv");
+ }
+ if (Cools.isEmpty(status)){
+ return R.error("閫夋嫨鎸夐挳鏈夎");
+ }
+// List<Map<String, Object>> res = new ArrayList<>();
+ for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
+ // 鑾峰彇RGV淇℃伅
+ SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ if (rgvThread == null) {
+ throw new CoolException("RGV涓嶅湪绾�");
+ }
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ throw new CoolException("RGV涓嶅湪绾�");
+ }
+ String DB = "";
+ if (rgvSlave.getId().equals(rgvNo)){
+ switch (status){
+ case 5://寮哄埗鍚姩
+ DB="4.4";
+ break;
+// case 6://澶嶄綅淇″彿
+// DB="4.5";
+// break;
+ case 7://鎶ヨ娑堥煶
+ DB="4.6";
+ break;
+ case 8://鍚姩
+ DB="4.7";
+ break;
+ case 9://鍋滄
+ DB="5.0";
+ break;
+ case 10://鎬ュ仠
+ DB="5.1";
+ break;
+ case 11://澶嶄綅鎸夐挳
+ DB="5.2";
+ break;
+ case 12://鎵嬪姩
+ DB="5.3";
+ rgvSlave.setRgvMode(3);
+ break;
+ case 13://鎵嬪姩瀹氫綅
+ DB="5.4";
+ break;
+ case 14://鍗曟満
+ DB="5.5";
+ rgvSlave.setRgvMode(2);
+ break;
+ case 15://鑱旀満
+ DB="5.6";
+ rgvSlave.setRgvMode(1);
+ break;
+ case 16://璐у弶瀹氫綅鍥炰腑
+ DB="5.7";
+ break;
+ case 17://鎭㈠鑱旀満浠诲姟
+ DB="6.0";
+ break;
+ case 18://娓呮鑱旀満浠诲姟
+ DB="6.1";
+ break;
+ default:
+ return R.error("鎸夐挳涓嶅瓨鍦紵锛燂紵锛燂紒锛侊紒");
+ }
+ if (MessageQueue.offer(SlaveType.Rgv, rgvNo, new Task(10, DB))) {
+ return R.ok();
+ } else {
+ return R.error("鍛戒护涓嬪彂澶辫触");
+ }
+ }
+
}
return R.ok();
}
@@ -188,6 +283,68 @@
return rgvControl(command)? R.ok(): R.error();
}
+
+
+ @ManagerAuth(memo = "鍙�")
+ @PostMapping("/operator/single/step/one/put")
+ public R rgvFetchSingleStepOnePut(RgvOperatorParam param){
+ return rgvFetchSingleStepPut(param,1)?R.ok():R.error();
+ }
+ @ManagerAuth(memo = "鏀�")
+ @PostMapping("/operator/single/step/two/put")
+ public R rgvFetchSingleStepTwoPut(RgvOperatorParam param){
+ return rgvFetchSingleStepPut(param,2)?R.ok():R.error();
+ }
+ @ManagerAuth(memo = "X杩愯")
+ @PostMapping("/operator/single/step/three/put")
+ public R rgvFetchSingleStepThreePut(RgvOperatorParam param){
+ return rgvFetchSingleStepPut(param,3)?R.ok():R.error();
+ }
+
+ @ManagerAuth(memo = "鍙栨斁")
+ @PostMapping("/operator/single/step/four/put")
+ public R rgvFetchSingleStepFourPut(RgvOperatorParam param){
+ return rgvFetchSingleStepPut(param,4)?R.ok():R.error();
+ }
+
+ public boolean rgvFetchSingleStepPut(RgvOperatorParam param ,Integer type){
+ wrkNo++;
+ RgvCommand command = new RgvCommand();
+ RgvTaskModeType fetchPut = RgvTaskModeType.NONE;
+ switch (type){
+ case 1:
+ fetchPut = RgvTaskModeType.FETCH;
+ param.setSourceBay(0);
+ break;
+ case 2:
+ fetchPut = RgvTaskModeType.PUT;
+ param.setSourceRow(0);
+ break;
+ case 3:
+ fetchPut = RgvTaskModeType.X_MOVE;
+ break;
+ case 4:
+ fetchPut = RgvTaskModeType.FETCH_PUT;
+ break;
+ default:
+ return false;
+ }
+ command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
+ command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣�
+ command.setTaskNo1(wrkNo); // 宸ヤ綔鍙�
+ command.setTaskMode1(fetchPut); // 浠诲姟妯″紡: 鍙栨斁璐�
+ command.setSourceStaNo1(param.getSourceRow().shortValue()); // 婧愮珯
+ command.setDestinationStaNo1(param.getSourceBay().shortValue()); // 鐩爣绔�
+// command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
+// command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
+// command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
+// command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
+// command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
+ command.setCommand((short) 0);
+
+ return rgvControlD(command);
+ }
+
@ManagerAuth(memo = "澶嶄綅")
@PostMapping("/operator/reset")
@@ -288,15 +445,29 @@
if (rgvProtocol == null) {
continue;
}
+ if (rgvProtocol.getTaskNo1() != 0){
+ WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>()
+ .setSqlSelect("TOP 1 wrk_no as wrkNo , wrk_sts as wrkSts, create_time as createTime")
+ .eq("wrk_No", rgvProtocol.getTaskNo1())
+
+ .orderBy("create_time", false)
+
+ );
+ if (!Cools.isEmpty(wrkMastSta)){
+ vo.setWrkSts(wrkMastSta.getWrkSts());
+ }
+ }
vo.setStatusType(rgvProtocol.modeType.desc); // 妯″紡鐘舵��
vo.setStatus(rgvProtocol.getStatusType1().desc); // 鐘舵��
vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 宸ヤ綅1浠诲姟鍙�
- vo.setRgvPos(rgvProtocol.getRgvPos());
+ vo.setRgvPos(rgvProtocol.getCode());
vo.setPakMk(rgvThread.isPakMk()?"鏃犻攣":"閿佸畾");
vo.setWalkPos(rgvProtocol.getAlarm() == 0?"姝e父":"鎶ヨ");
vo.setWarnCode(String.valueOf(rgvProtocol.getAlarm()));
-// vo.setStaNo(rgvProtocol.getSouSta().intValue());
-// vo.setSourceStaNo(rgvProtocol.getEndSta().intValue());
+ vo.setList32(rgvProtocol.getList32());
+ vo.setList33(rgvProtocol.getList33());
+ vo.setList34(rgvProtocol.getList34());
+ vo.setList35(rgvProtocol.getList35());
if (rgvProtocol.getAlarm() > 0) {
BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm());
vo.setAlarm(rgvErr==null?"鏈煡寮傚父":rgvErr.getErrName());
@@ -470,4 +641,34 @@
return false;
}
+ private boolean rgvControlD(RgvCommand command){
+ if (command.getRgvNo() == null) {
+ throw new CoolException("璇烽�夋嫨RGV");
+ }
+ for (RgvSlave rgv : slaveProperties.getRgv()) {
+ // 鑾峰彇RGV淇℃伅
+ if (command.getRgvNo().equals(rgv.getId())) {
+// SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+// if (rgvThread == null) {
+// throw new CoolException("RGV涓嶅湪绾�");
+// }
+// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+// if (rgvProtocol == null) {
+// throw new CoolException("RGV涓嶅湪绾�");
+// }
+ try{
+ if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(11, command))) {
+ return true;
+ } else {
+ throw new CoolException("鍛戒护涓嬪彂澶辫触");
+ }
+ }catch (Exception e){
+ log.error("鍗曟浠诲姟涓嬪彂澶辫触锛屽紓甯革細"+e);
+ throw new CoolException("鍛戒护涓嬪彂澶辫触");
+ }
+ }
+ }
+ return false;
+ }
+
}
\ No newline at end of file
--
Gitblit v1.9.1