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/RgvController.java | 277 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 255 insertions(+), 22 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index e85e4de..13e0f36 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -2,9 +2,12 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
+import com.core.common.Cools;
import com.core.common.R;
+import com.zy.asrs.domain.param.RingThroughParam;
import com.zy.asrs.entity.BasDevpPosition;
import com.zy.asrs.service.BasDevpPositionService;
+import com.zy.core.cache.RgvErrCache;
import com.zy.core.cache.RgvStatusCache;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.cache.TaskProtocolCache;
@@ -46,6 +49,7 @@
map2.put("rgvPos", rgvProtocol.getRgvPos());
map2.put("rgvPosDestination", rgvProtocol.getRgvPosDestination());
map2.put("loaded", rgvProtocol.getLoaded().equals((short)-1)? "鏈煡":rgvProtocol.getLoaded()==1? "鏈夌墿":"鏃犵墿");
+ map2.put("errorRgv", RgvErrCache.getErrorDev(rgvProtocol.getRgvNo()));
res.add(map2);
}
return R.ok().add(res);
@@ -75,24 +79,64 @@
return R.ok().add(res);
}
+ @PostMapping("/run/del")//Take Put Walk
+ @ManagerAuth(memo = "娓呯┖浠诲姟")
+ public R rgvRunDel(@RequestParam(defaultValue = "0") Integer rgvNo
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+
+ try {
+ ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+ for (TaskProtocol taskProtocol : allTaskProtocol.values()){
+ taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection());
+ }
+
+ } catch (Exception e) {
+ return R.error("浠诲姟鍒犻櫎澶辫触"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟娓呯┖鎴愬姛");
+ }
+
+ @PostMapping("/run/del2")//Take Put Walk
+ @ManagerAuth(memo = "娓呴櫎浣滀笟鍚姩涓�")
+ public R rgvRunDel2(@RequestParam(defaultValue = "0") Integer rgvNo
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ try {
+ rgvThread.setWrkSign();
+ } catch (Exception e) {
+ return R.error("娓呴櫎浣滀笟鍚姩涓け璐�"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟娓呯┖鎴愬姛");
+ }
+
@PostMapping("/run/walk")//Take Put Walk
@ManagerAuth(memo = "灏忚溅琛岃蛋")
public R rgvRunWalk(@RequestParam(defaultValue = "0") Integer rgvNo,
- @RequestParam(defaultValue = "0") Integer taskNo,
- @RequestParam(defaultValue = "0") Integer rgvStaNo,
+ @RequestParam(defaultValue = "9999") Integer taskNo,
+ @RequestParam(defaultValue = "0") Integer rgvStaNoPut,
@RequestParam(defaultValue = "0") Long rgvPosDestination
) {
if (rgvNo==null || rgvNo==0){
return R.error("璇烽�夋嫨灏忚溅");
}
- if (taskNo==null || taskNo==0){
- return R.error("浣滀笟鍙疯濉啓");
- }
- if ((rgvStaNo == null || rgvStaNo == 0) && (rgvPosDestination==null || rgvPosDestination==0L)){
+ if ((rgvStaNoPut == null || rgvStaNoPut == 0) && (rgvPosDestination==null || rgvPosDestination==0L)){
return R.error("鐩爣绔欑偣璇峰~鍐�");
}
if (rgvPosDestination == null || rgvPosDestination == 0){
- BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNo));
+ BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut));
+ if (Cools.isEmpty(basDevpPosition)){
+ return R.error("鐩爣绔欑偣涓嶅瓨鍦�");
+ }
rgvPosDestination = basDevpPosition.getPlcPosition();
}
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
@@ -126,17 +170,14 @@
@PostMapping("/run/put")//Take Put Walk
@ManagerAuth(memo = "灏忚溅鏀捐揣")
public R rgvPutWalk(@RequestParam(defaultValue = "0") Integer rgvNo,
- @RequestParam(defaultValue = "0") Integer taskNo,
- @RequestParam(defaultValue = "0") Integer rgvStaNo,
+ @RequestParam(defaultValue = "9999") Integer taskNo,
+ @RequestParam(defaultValue = "0") Integer rgvStaNoPut,
@RequestParam(defaultValue = "0") Long rgvPosDestination
) {
if (rgvNo==null || rgvNo==0){
return R.error("璇烽�夋嫨灏忚溅");
}
- if (taskNo==null || taskNo==0){
- return R.error("浣滀笟鍙疯濉啓");
- }
- if (rgvStaNo == null || rgvStaNo == 0){
+ if (rgvStaNoPut == null || rgvStaNoPut == 0){
return R.error("鐩爣绔欑偣璇峰~鍐�");
}
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
@@ -150,10 +191,15 @@
return R.error("瀛樺湪鎵ц涓换鍔★紝璇峰厛澶勭悊锛侊紒锛�");
}
- BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNo));
+ BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut));
+ if (Cools.isEmpty(basDevpPosition)){
+ return R.error("鐩爣绔欑偣涓嶅瓨鍦�");
+ }
//鎵ц
issuedPut.setTaskNo(Long.valueOf(taskNo));
issuedPut.setTaskStatus(3);
+ issuedPut.setTargetPositionStaNo(basDevpPosition.getDevNo());
+ issuedPut.setTargetPositionStaNoPlcId(basDevpPosition.getPlcId());
issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus()));
issuedPut.setTargetPosition(basDevpPosition.getPlcPosition());
issuedPut.setIsRunning(1);
@@ -170,18 +216,15 @@
@PostMapping("/run/take")//Take Put Walk
@ManagerAuth(memo = "灏忚溅鍙栬揣")
public R rgvTakeWalk(@RequestParam(defaultValue = "0") Integer rgvNo,
- @RequestParam(defaultValue = "0") Integer taskNo,
- @RequestParam(defaultValue = "0") Integer rgvStaNo,
+ @RequestParam(defaultValue = "9999") Integer taskNo,
+ @RequestParam(defaultValue = "0") Integer rgvStaNoTake,
@RequestParam(defaultValue = "0") Long rgvPosDestination
) {
if (rgvNo==null || rgvNo==0){
return R.error("璇烽�夋嫨灏忚溅");
}
- if (taskNo==null || taskNo==0){
- return R.error("浣滀笟鍙疯濉啓");
- }
- if (rgvStaNo == null || rgvStaNo == 0){
- return R.error("鐩爣绔欑偣璇峰~鍐�");
+ if (rgvStaNoTake == null || rgvStaNoTake == 0){
+ return R.error("鍙栬揣绔欑偣璇峰~鍐�");
}
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
@@ -193,10 +236,15 @@
return R.error("瀛樺湪鎵ц涓换鍔★紝璇峰厛澶勭悊锛侊紒锛�");
}
- BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNo));
+ BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoTake));
+ if (Cools.isEmpty(basDevpPosition)){
+ return R.error("鍙栬揣绔欑偣涓嶅瓨鍦�");
+ }
//鎵ц
issuedTake.setTaskNo(Long.valueOf(taskNo));
issuedTake.setTaskStatus(2);
+ issuedTake.setTargetPositionStaNo(basDevpPosition.getDevNo());
+ issuedTake.setTargetPositionStaNoPlcId(basDevpPosition.getPlcId());
issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus()));
issuedTake.setTargetPosition(basDevpPosition.getPlcPosition());
issuedTake.setIsRunning(1);
@@ -209,4 +257,189 @@
return R.ok("浠诲姟鐢熸垚鎴愬姛");
}
+
+ @PostMapping("/run/TakeAndPut")//Take Put Walk
+ @ManagerAuth(memo = "灏忚溅鍙栬揣")
+ public R rgvTakeAndPut(@RequestParam(defaultValue = "0") Integer rgvNo,
+ @RequestParam(defaultValue = "9999") Integer taskNo,
+ @RequestParam(defaultValue = "0") Integer rgvStaNoTake,
+ @RequestParam(defaultValue = "0") Integer rgvStaNoPut,
+ @RequestParam(defaultValue = "0") Long rgvPosDestination
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+ if (rgvStaNoTake == null || rgvStaNoTake == 0){
+ return R.error("鍙栬揣绔欑偣璇峰~鍐�");
+ }
+ if (rgvStaNoPut == null || rgvStaNoPut == 0){
+ return R.error("鏀捐揣绔欑偣璇峰~鍐�");
+ }
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+
+ TaskProtocol issuedTake = new TaskProtocol();
+ TaskProtocol issuedPut = new TaskProtocol();
+ try {
+ ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+ if (allTaskProtocol.size() > 0) {
+ return R.error("瀛樺湪鎵ц涓换鍔★紝璇峰厛澶勭悊锛侊紒锛�");
+ }
+
+ BasDevpPosition basDevpPositionTake = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoTake));
+ if (Cools.isEmpty(basDevpPositionTake)){
+ return R.error("鍙栬揣绔欑偣涓嶅瓨鍦�");
+ }
+ //鎵ц
+ issuedTake.setTaskNo(Long.valueOf(taskNo));
+ issuedTake.setTaskStatus(2);
+ issuedTake.setTargetPositionStaNo(basDevpPositionTake.getDevNo());
+ issuedTake.setTargetPositionStaNoPlcId(basDevpPositionTake.getPlcId());
+ issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus()));
+ issuedTake.setTargetPosition(basDevpPositionTake.getPlcPosition());
+ issuedTake.setIsRunning(1);
+ issuedTake.setDirection(basDevpPositionTake.getRgvSign()==1);
+
+ BasDevpPosition basDevpPositionPut = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut));
+ if (Cools.isEmpty(basDevpPositionPut)){
+ return R.error("鐩爣绔欑偣涓嶅瓨鍦�");
+ }
+ //鎵ц
+ issuedPut.setTaskNo(Long.valueOf(taskNo));
+ issuedPut.setTaskStatus(3);
+ issuedPut.setTargetPositionStaNo(basDevpPositionPut.getDevNo());
+ issuedPut.setTargetPositionStaNoPlcId(basDevpPositionPut.getPlcId());
+ issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus()));
+ issuedPut.setTargetPosition(basDevpPositionPut.getPlcPosition());
+ issuedPut.setIsRunning(1);
+ issuedPut.setDirection(basDevpPositionPut.getRgvSign()==1);
+
+ taskProtocolCache.updateTaskProtocol(issuedTake);
+ taskProtocolCache.updateTaskProtocol(issuedPut);
+
+ } catch (Exception e) {
+ return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟鐢熸垚鎴愬姛");
+ }
+
+ @PostMapping("/run/delRgvTask")//Take Put Walk
+ @ManagerAuth(memo = "灏忚溅鍙栬揣")
+ public R rgvDelRgvTask(@RequestParam(defaultValue = "0") Integer rgvNo
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+
+ try {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ rgvThread.setDelRgvTask();
+ } catch (Exception e) {
+ return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟鐢熸垚鎴愬姛");
+ }
+
+
+
+ @PostMapping("/ring/through/rgv/position/data")
+// @ManagerAuth(memo = "灏忚溅浣嶇疆淇℃伅")
+ public R ringThroughRgv(){
+ List<RingThroughParam> result = new ArrayList<>();
+
+ ConcurrentHashMap<Integer, RgvProtocol> allRgvStatus = RgvStatusCache.getAllRgvStatus();
+ for (RgvProtocol rgvProtocol : allRgvStatus.values()){
+ RingThroughParam ringThroughParam = new RingThroughParam();
+
+ ringThroughParam.setIndex(rgvProtocol.getRgvNo());
+// ringThroughParam.setIndex(i);
+// double[] doubles = Utils.RingThroughXY2(perimeter, NumUtils.GetRandomIntInRange(183));
+// double[] doubles = Utils.RingThroughXYRgv(perimeter, perimeter-rgvProtocol.RgvPos.doubleValue());
+// double[] doubles = Utils.getRgvPosNew(perimeter, rgvProtocol.RgvPos.doubleValue());
+// double[] doubles = Utils.RingThroughXY2(183.0, 100*i );
+
+ ringThroughParam.setValueX(rgvProtocol.getRgvNo()*100*1D);
+ ringThroughParam.setValueY(rgvProtocol.getRgvNo()*100*2D);
+ ringThroughParam.setModeColor(rgvProtocol.modeType.color);
+ ringThroughParam.setStatusColor(rgvProtocol.statusType.color);
+ result.add(ringThroughParam);
+ }
+ return R.ok().add(result);
+ }
+
+ @PostMapping("/ring/through/dev/position/data")
+// @ManagerAuth(memo = "绔欑偣淇℃伅")
+ // 绔欑偣浣嶇疆淇℃伅
+ public R ringThroughDev(){
+ List<RingThroughParam> result = new ArrayList<>();
+ ArrayList<Integer> arrayList = new ArrayList<Integer>() {{
+ add(1001);
+ add(1002);
+ add(1003);
+ add(1004);
+ add(1005);
+ add(1006);
+ add(1007);
+ add(1008);
+ add(1009);
+ add(1010);
+ add(1011);
+ add(1012);
+ add(1013);
+ add(1014);
+ add(1015);
+ add(1016);
+ add(1017);
+ add(1018);
+ add(1019);
+ add(1020);
+ add(1021);
+ add(1022);
+ add(1023);
+ }};
+ for (Integer staNo : arrayList){
+ RingThroughParam ringThroughParam = new RingThroughParam();
+ ringThroughParam.setIndex(staNo);
+// double[] doubles = Utils.RingThroughXYSta(perimeter, perimeter-basDevpPosition.getPlcPosition());
+// ringThroughParam.setValueX(doubles[0]>50? doubles[0]+6:doubles[0]-1);
+// ringThroughParam.setValueY(doubles[1]>50? doubles[1]+6:doubles[1]-1);
+// double[] doubles = Utils.getRgvPosNew(basDevpPosition.getDevNo(),perimeter, basDevpPosition.getPlcPosition());
+ ringThroughParam.setValueX(staNo*100*1D);
+ ringThroughParam.setValueY(staNo*100*2D);
+ result.add(ringThroughParam);
+ }
+ return R.ok().add(result);
+ }
+
+ @PostMapping("/ring/through/track/position/data")
+// @ManagerAuth(memo = "杞ㄩ亾PLC鐘舵�佷俊鎭�")
+ public R wnergyGatheringRingParamTrack(){
+ return R.ok();
+ }
+
+ @PostMapping("/ring/through/task/wrk/mast/position/data")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R ringThroughTaskWrkMast(){
+ return R.ok();
+ }
+
+ @PostMapping("/ring/through/task/wrk/mast/position/data/v1")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R ringThroughTaskWrkMastV1(){
+ return R.ok();
+ }
+
+ @PostMapping("/task/rgv/circular/shuttle/mast/position/data")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R rgvCircularShuttle(){
+ return R.ok();
+ }
+
+ @PostMapping("/task/rgv/circular/shuttle/mast/position/data/v1")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R rgvCircularShuttleV1(){
+ return R.ok();
+ }
}
--
Gitblit v1.9.1