From 87b052cbd5bb44bf90ac4e9c4aeaf1cdcf5acf63 Mon Sep 17 00:00:00 2001
From: cpT <1@123>
Date: 星期日, 22 六月 2025 15:30:44 +0800
Subject: [PATCH] #改造
---
src/main/java/com/zy/asrs/controller/RgvController.java | 252 +++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 238 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index e7c212b..0b889d3 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -2,41 +2,42 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
+import com.core.common.Cools;
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.domain.enums.RgvStatusType;
-import com.zy.asrs.domain.param.RgvOperatorParam;
+import com.zy.asrs.domain.param.*;
import com.zy.asrs.domain.vo.*;
import com.zy.asrs.entity.*;
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.*;
import com.zy.asrs.service.impl.MainServiceImpl;
-import com.zy.asrs.utils.VersionUtils;
+import com.zy.asrs.utils.NumUtils;
+import com.zy.asrs.utils.Utils;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.RgvModeType;
import com.zy.core.enums.RgvTaskModeType;
import com.zy.core.enums.SlaveType;
+import com.zy.core.model.DevpSlave;
import com.zy.core.model.RgvSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.RgvCommand;
import com.zy.core.model.protocol.RgvProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.RgvThread;
+import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import javax.rmi.CORBA.Util;
+import java.util.*;
/**
* RGV鎺ュ彛
@@ -54,11 +55,20 @@
@Autowired
private BasRgvErrMapper basRgvErrMapper;
@Autowired
+ private BasRgvErrLogService basRgvErrLogService;
+ @Autowired
+ private BasRgvOptService basRgvOptService;
+ @Autowired
private BasRgvService basRgvService;
@Autowired
private MainServiceImpl mainService;
@Autowired
- private LocMastService locMastService;
+ private BasDevpPositionService basDevpPositionService;
+ @Autowired
+ private BasCircularShuttleService basCircularShuttleService;
+
+ @Value("${constant-parameters.perimeter}")
+ private Long perimeter;
@PostMapping("/table/rgv/state")
@ManagerAuth(memo = "RGV淇℃伅琛�")
@@ -88,7 +98,7 @@
vo.setWalkPos(rgvProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�");
vo.setWorkNo2(rgvProtocol.getTaskNo2()); // 宸ヤ綅2浠诲姟鍙�
vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵��
- vo.setLoading2(rgvProtocol.getLoaded2()==1?"鏈夌墿":"鏃犵墿"); // 宸ヤ綅2鏈夌墿
+ vo.setLoading2(rgvProtocol.getLoaded2()==0?"鏃犵墿":"鏈夌墿"); // 宸ヤ綅2鏈夌墿
vo.setWarnCode(String.valueOf(rgvProtocol.getAlarm()));
if (rgvProtocol.getAlarm() > 0) {
@@ -110,7 +120,7 @@
vo.setRgvNo(basRgv.getRgvNo()); // RGV鍙�
list.add(vo);
// 鑾峰彇RGV淇℃伅
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Crn, basRgv.getRgvNo());
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basRgv.getRgvNo());
if (rgvThread == null) {
continue;
}
@@ -119,7 +129,7 @@
continue;
}
- vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 浠诲姟鍙�
+ vo.setWorkNo(rgvProtocol.getTaskNo1()); // 浠诲姟鍙�
if (rgvProtocol.getTaskNo1()>0) {
WrkMast wrkMast = wrkMastService.selectById(rgvProtocol.getTaskNo1());
if (wrkMast != null) {
@@ -321,4 +331,218 @@
return false;
}
+ @PostMapping("/ring/through/rgv/position/data")
+// @ManagerAuth(memo = "鐜┛浣嶇疆淇℃伅")
+ public R ringThroughRgv(){
+ List<RingThroughParam> result = new ArrayList<>();
+ for (RgvSlave rgv : slaveProperties.getRgv()) {
+// for (int i = 1;i<2;i++) {
+// // 鑾峰彇RGV淇℃伅
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+ if (rgvThread == null) {
+ continue;
+ }
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ continue;
+ }
+ RingThroughParam ringThroughParam = new RingThroughParam();
+
+ ringThroughParam.setIndex(rgv.getId());
+// 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(doubles[0]-2.94);
+ ringThroughParam.setValueY(doubles[1]-2.94);
+ 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<>();
+ List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<>());
+ for (BasDevpPosition basDevpPosition : basDevpPositions){
+ if (basDevpPosition.getDevNo() == 134){
+ continue;
+ }
+ RingThroughParam ringThroughParam = new RingThroughParam();
+ ringThroughParam.setIndex(basDevpPosition.getDevNo());
+// 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(doubles[0]);
+ ringThroughParam.setValueY(doubles[1]);
+ result.add(ringThroughParam);
+ }
+ return R.ok().add(result);
+ }
+
+ @PostMapping("/ring/through/track/position/data")
+// @ManagerAuth(memo = "杞ㄩ亾PLC鐘舵�佷俊鎭�")
+ public R wnergyGatheringRingParamTrack(){
+ List<EnergyGatheringRingParam> result = new ArrayList<>();
+ try{
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ if (devp.getId()!=1){
+ break;
+ }
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ if (devpThread.isResult()){
+ if (true){
+ EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam();
+ energyGatheringRingParam.setTrackColor("rgba(0, 230, 118, 0.5)");
+ energyGatheringRingParam.setRadiationColor("rgba(0, 230, 118, 0.5)");
+ result.add(energyGatheringRingParam);
+ } else {
+ EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam();
+ energyGatheringRingParam.setTrackColor("rgba(0, 230, 118, 0.5)");
+ energyGatheringRingParam.setRadiationColor("rgba(0, 230, 118, 0.5)");
+ result.add(energyGatheringRingParam);
+ }
+ }
+ }
+ if (result.isEmpty()){
+ EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam();
+ energyGatheringRingParam.setTrackColor("rgba(0, 0, 0, 81)");
+ energyGatheringRingParam.setRadiationColor("rgba(0, 0, 0, 81)");
+ result.add(energyGatheringRingParam);
+ }
+ } catch (Exception e){
+ EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam();
+ energyGatheringRingParam.setTrackColor("rgba(0, 0, 0, 81)");
+ energyGatheringRingParam.setRadiationColor("rgba(0, 0, 0, 81)");
+ result.add(energyGatheringRingParam);
+ }
+ return R.ok().add(result);
+ }
+
+ @PostMapping("/ring/through/task/wrk/mast/position/data")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R ringThroughTaskWrkMast(){
+ List<RgvWrkMastParam> result = new ArrayList<>();
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<>());
+ for (WrkMast wrkMast : wrkMasts){
+ RgvWrkMastParam rgvWrkMastParam = new RgvWrkMastParam(wrkMast);
+ if (Cools.isEmpty(rgvWrkMastParam.getRgvNo())){
+ rgvWrkMastParam.setRgvSts("鏈粦瀹�");
+ } else {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvWrkMastParam.getRgvNo());
+ if (rgvThread == null) {
+ rgvWrkMastParam.setRgvSts("鏈煡");
+ } else {
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ rgvWrkMastParam.setRgvSts("鏈煡");
+ } else {
+ rgvWrkMastParam.setRgvSts(rgvProtocol.statusType.desc);
+ }
+ }
+ }
+ result.add(rgvWrkMastParam);
+ }
+ return R.ok().add(result);
+ }
+
+ @PostMapping("/ring/through/task/wrk/mast/position/data/v1")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R ringThroughTaskWrkMastV1(){
+ List<BasRgvOpt> result = new ArrayList<>();
+ for (int i = 1 ; i<11; i ++){
+ BasRgvOpt basRgvOpt = basRgvOptService.selectOne(new EntityWrapper<BasRgvOpt>().eq("rgv_no", i).orderBy("id", false));
+ if (basRgvOpt!=null){
+ result.add(basRgvOpt);
+ }
+ }
+ return R.ok().add(result);
+ }
+
+ @PostMapping("/task/rgv/circular/shuttle/mast/position/data")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R rgvCircularShuttle(){
+ List<RgvCircularShuttleParam> result = new ArrayList<>();
+ List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<>());
+ for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){
+ RgvCircularShuttleParam rgvCircularShuttleParam = new RgvCircularShuttleParam(basCircularShuttle);
+ if (!Cools.isEmpty(rgvCircularShuttleParam.getRgvNo())){
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvCircularShuttleParam.getRgvNo());
+ if (rgvThread != null) {
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol != null) {
+ rgvCircularShuttleParam.setPosition(rgvProtocol.getRgvPos());
+ if (rgvCircularShuttleParam.getStatus()==0){
+ rgvCircularShuttleParam.setStatus$(rgvProtocol.statusType.desc);
+ }
+ if (rgvProtocol.getAlarmList().isEmpty()){
+ rgvCircularShuttleParam.setError(0);
+ rgvCircularShuttleParam.setError$("-");
+ } else {
+ StringBuilder alarmList = new StringBuilder();
+ for (Integer alarm : rgvProtocol.getAlarmList()){
+ BasRgvErr rgvErr = basRgvErrMapper.selectById(alarm);
+ alarmList.append((rgvErr==null || rgvErr.getErrName()==null)? "鏈煡寮傚父:"+alarm:rgvErr.getErrName());
+ if (alarm.equals(rgvProtocol.getAlarmList().get(rgvProtocol.getAlarmList().size() - 1))){
+ break;
+ }
+ alarmList.append("---");
+ }
+ rgvCircularShuttleParam.setError$(alarmList.toString());
+ }
+ }
+ }
+ }
+ result.add(rgvCircularShuttleParam);
+ }
+ return R.ok().add(result);
+ }
+
+ @PostMapping("/task/rgv/circular/shuttle/mast/position/data/v1")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R rgvCircularShuttleV1(){
+ List<BasRgvErrLog> result = new ArrayList<>();
+ for (int i = 1 ; i<11; i ++){
+ BasRgvErrLog basRgvErrLog = basRgvErrLogService.selectOne(new EntityWrapper<BasRgvErrLog>().eq("rgv_no", i).orderBy("id", false));
+ if (basRgvErrLog!=null){
+ result.add(basRgvErrLog);
+ }
+ }
+ return R.ok().add(result);
+ }
+
+
+ @PostMapping("/disable/rgv/status")
+// @ManagerAuth(memo = "淇敼RGV鐘舵��")
+ public R rgvDisableStatus(@RequestParam Integer rgvNo,
+ @RequestParam Integer status){
+ log.info("/disable/rgv/status===銆嬩慨鏀筊GV鐘舵�侊紒锛侊紒rgvNo:{},status:{},data:{}",rgvNo,status,new Date());
+ BasCircularShuttle basCircularShuttle = basCircularShuttleService.selectOne(new EntityWrapper<BasCircularShuttle>().eq("rgv_no", rgvNo));
+ if (basCircularShuttle == null){
+ return R.error().add("鏈壘鍒版RGV锛屽紓甯革紒锛侊紒");
+ }
+ basCircularShuttle.setStatus(status);
+ basCircularShuttleService.updateById(basCircularShuttle);
+ return R.ok();
+ }
+
+ @PostMapping("/disable/task/delete")
+// @ManagerAuth(memo = "鍒犻櫎浠诲姟")
+ public R taskDisabledelete(@RequestParam Long wrkNo){
+ log.info("/disable/task/delete===銆嬪垹闄や换鍔★紒锛侊紒wrkNo:{},data:{}",wrkNo,new Date());
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkNo));
+ if (Cools.isEmpty(wrkMast)){
+ return R.error().add("鏈壘鍒版浠诲姟锛屽紓甯革紒锛侊紒");
+ }
+ wrkMastService.deleteById(wrkMast);
+ return R.ok();
+ }
+
}
\ No newline at end of file
--
Gitblit v1.9.1