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