From c289447144f4599fe2e13d342c28a3c4d49f750f Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期二, 25 十一月 2025 20:06:54 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/domain/param/RgvCircularShuttleParam.java | 38 ++
src/main/java/com/zy/asrs/controller/RgvController.java | 296 +++++++++++++++++---
src/main/java/com/zy/asrs/domain/param/EnergyGatheringRingParam.java | 11
src/main/java/com/zy/asrs/utils/Utils.java | 144 ++++++++++
src/main/java/com/zy/asrs/domain/param/RingThroughParam.java | 2
src/main/java/com/zy/asrs/controller/CrnController.java | 86 +++++
src/main/java/com/zy/asrs/domain/vo/CrnListVo.java | 170 ++++++++++++
src/main/java/com/zy/asrs/domain/param/RgvWrkMastParam.java | 46 +++
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 1
9 files changed, 735 insertions(+), 59 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index e4fcfca..1f63686 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -10,12 +10,10 @@
import com.zy.asrs.domain.param.CrnDemoParam;
import com.zy.asrs.domain.param.CrnOperatorParam;
import com.zy.asrs.domain.vo.CommandLogVo;
+import com.zy.asrs.domain.vo.CrnListVo;
import com.zy.asrs.domain.vo.CrnMsgTableVo;
import com.zy.asrs.domain.vo.CrnStateTableVo;
-import com.zy.asrs.entity.BasCrnError;
-import com.zy.asrs.entity.BasCrnp;
-import com.zy.asrs.entity.LocMast;
-import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.BasCrnErrorMapper;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.LocMastService;
@@ -524,5 +522,85 @@
return false;
}
+ @GetMapping("/crn/list/auth")
+ @ManagerAuth(memo = "鍫嗗灈鏈烘暟鎹〃")
+ public R crnList(){
+ List<CrnListVo> list = new ArrayList<>();
+ List<BasCrnp> crnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().orderBy("crn_no"));
+ for (BasCrnp basCrnp : crnps) {
+ // 琛ㄦ牸琛�
+ CrnListVo vo = new CrnListVo();
+ vo.setCrnNo(basCrnp.getCrnNo()); // 鍫嗗灈鏈哄彿
+ list.add(vo);
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo());
+ if (crnThread == null) {
+ continue;
+ }
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) {
+ continue;
+ }
+
+ vo.setWorkNo(crnProtocol.getTaskNo()); // 浠诲姟鍙�
+ if (crnProtocol.getTaskNo()>0) {
+ WrkMast wrkMast = wrkMastService.selectByWrkNo(crnProtocol.getTaskNo().intValue());
+// WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo());
+ if (wrkMast != null) {
+ vo.setDeviceStatus(CrnStatusType.process(wrkMast.getIoType()).getDesc()); // 妯″紡鐘舵��
+ vo.setSourceStaNo(wrkMast.getLocNo()); // 婧愮珯
+ vo.setStaNo(wrkMast.getStaNo().toString()); // 鐩爣绔�
+// vo.setSourceLocNo(taskWrk.getTargetPoint()); // 婧愬簱浣�
+// vo.setLocNo(taskWrk.getLocNo()); // 鐩爣搴撲綅
+ }
+ } else {
+ if (Cools.isEmpty(crnProtocol.modeType)){
+ vo.setDeviceStatus(CrnStatusType.MACHINE_UN_AUTO.getDesc()); // 妯″紡鐘舵��
+ } else {
+ vo.setDeviceStatus(crnProtocol.modeType.equals(CrnModeType.AUTO)? CrnStatusType.MACHINE_AUTO.getDesc(): CrnStatusType.MACHINE_UN_AUTO.getDesc()); // 妯″紡鐘舵��
+ }
+ }
+ vo.setLaneNo(crnProtocol.getCrnNo()); //
+ vo.setErrorCrn("-"); //
+ vo.setXspeed(crnProtocol.getXSpeed()); // 璧拌閫熷害锛坢/min)
+ vo.setYspeed(crnProtocol.getYSpeed()); // 鍗囬檷閫熷害锛坢/min)
+ vo.setZspeed(crnProtocol.getZSpeed()); // 鍙夌墮閫熷害锛坢/min)
+ vo.setXdistance(crnProtocol.getXDistance()); // 璧拌璺濈(Km)
+ vo.setYdistance(crnProtocol.getYDistance()); // 鍗囬檷璺濈(Km)
+ vo.setXduration(crnProtocol.getXDuration()); // 璧拌鏃堕暱(H)
+ vo.setYduration(crnProtocol.getYDuration()); // 鍗囬檷鏃堕暱(H)
+ if (Cools.isEmpty(crnProtocol.modeType)){
+ vo.setStatusType(CrnStatusType.MACHINE_UN_AUTO.getDesc()); // 妯″紡鐘舵��
+ } else {
+ vo.setStatusType(crnProtocol.modeType.desc); // 妯″紡鐘舵��
+ }
+ vo.setWrkStatus(crnProtocol.getStatusType().id); // 浠诲姟鐘舵��
+ vo.setLoading((crnProtocol.getLoaded() != null && crnProtocol.getLoaded() == 1) ? "鏈夌墿" : "鏃犵墿"); // 鏈夌墿
+ vo.setBay(crnProtocol.getBay()); // 鍒�
+ vo.setLev(crnProtocol.getLevel()); // 灞�
+
+ vo.setForkOffset(crnProtocol.getForkPosType().desc); // 璐у弶浣嶇疆
+ vo.setLiftPos(crnProtocol.getLiftPosType().desc);
+ vo.setWalkPos(crnProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�");
+ vo.setWarnCode(String.valueOf(crnProtocol.getAlarm()));
+ if (crnProtocol.getAlarm() > 0) {
+ BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
+ vo.setAlarm(crnError==null?"鏈煡寮傚父":crnError.getErrName());
+ }
+ vo.setInEnable(basCrnp.getInEnable());
+ vo.setOutEnable(basCrnp.getOutEnable());
+ vo.setHpMk(basCrnp.getHpMk());
+// vo.setTaskComplete(crnThread.getResetFlag()? "浠诲姟瀹屾垚涓嬪彂绛夊緟":"-");
+ vo.setTaskComplete("-");
+ vo.setDemo(SystemProperties.WCS_RUNNING_STATUS_DEMO.get()? "寮�鍚�":"鍏抽棴");
+ vo.setDemoValue(SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE);
+ if (vo.getHpMk().equals("N")){
+ vo.setDemo("鏈紑鍚�");
+ vo.setDemoValue(0);
+ }
+ }
+ return R.ok().add(list);
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index 1b5aa62..1f11a90 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -4,24 +4,31 @@
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
import com.core.common.R;
+import com.zy.asrs.domain.param.EnergyGatheringRingParam;
+import com.zy.asrs.domain.param.RgvCircularShuttleParam;
+import com.zy.asrs.domain.param.RgvWrkMastParam;
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;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.mapper.BasRgvErrMapper;
+import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.MainServiceImpl;
+import com.zy.asrs.utils.Utils;
+import com.zy.core.cache.*;
+import com.zy.core.enums.RgvModeType;
import com.zy.core.enums.SlaveType;
+import com.zy.core.model.DevpSlave;
+import com.zy.core.model.RgvSlave;
import com.zy.core.model.protocol.RgvProtocol;
+import com.zy.core.model.protocol.RgvTaskProtocol;
import com.zy.core.model.protocol.TaskProtocol;
+import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.RgvThread;
+import com.zy.core.thread.SiemensDevpThread;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
/**
@@ -35,6 +42,24 @@
@Autowired
private BasDevpPositionService basDevpPositionService;
+ @Autowired
+ private SlaveProperties slaveProperties;
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private BasRgvErrMapper basRgvErrMapper;
+ @Autowired
+ private BasRgvOptService basRgvOptService;
+ @Autowired
+ private BasRgvService basRgvService;
+ @Autowired
+ private BasDevpService basDevpService;
+ @Autowired
+ private MainServiceImpl mainService;
+
+
+ @Value("${constant-parameters.trackEntireLength}")
+ private Long trackEntireLength;
@GetMapping("/status/all")
// @ManagerAuth(memo = "鍏ㄩ儴淇℃伅")
public R allStatus(){
@@ -342,28 +367,37 @@
return R.ok("浠诲姟鐢熸垚鎴愬姛");
}
-
-
@PostMapping("/ring/through/rgv/position/data")
-// @ManagerAuth(memo = "灏忚溅浣嶇疆淇℃伅")
+// @ManagerAuth(memo = "鐜┛浣嶇疆淇℃伅")
public R ringThroughRgv(){
List<RingThroughParam> result = new ArrayList<>();
-
- ConcurrentHashMap<Integer, RgvProtocol> allRgvStatus = RgvStatusCache.getAllRgvStatus();
- for (RgvProtocol rgvProtocol : allRgvStatus.values()){
+ 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 = RgvStatusCache.getRgvStatus(rgv.getId());
+ RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(rgv.getId());
+ if (rgvTaskProtocol == null) {
+ continue;
+ }
RingThroughParam ringThroughParam = new RingThroughParam();
- ringThroughParam.setIndex(rgvProtocol.getRgvNo());
+ 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 );
+ double[] doubles = Utils.getRgvPosNew(trackEntireLength, rgvProtocol.RgvPos.doubleValue());
- ringThroughParam.setValueX(rgvProtocol.getRgvNo()*100*1D);
- ringThroughParam.setValueY(rgvProtocol.getRgvNo()*100*2D);
+ ringThroughParam.setValueX(doubles[0]);
+ ringThroughParam.setValueY(doubles[1]);
ringThroughParam.setModeColor(rgvProtocol.modeType.color);
ringThroughParam.setStatusColor(rgvProtocol.statusType.color);
+ if (rgvProtocol.getModeType() == RgvModeType.AUTO){
+ ringThroughParam.setAnimation(2);
+ }
result.add(ringThroughParam);
}
return R.ok().add(result);
@@ -374,40 +408,44 @@
// 绔欑偣浣嶇疆淇℃伅
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){
+ List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<>());
+ for (BasDevpPosition basDevpPosition : basDevpPositions){
+// if (basDevpPosition.getDevRegion() == 0){
+// continue;
+// }
RingThroughParam ringThroughParam = new RingThroughParam();
- ringThroughParam.setIndex(staNo);
+
+ ringThroughParam.setModeColor("#FFFFFF");
+ ringThroughParam.setStatusColor("#FFFFFF");
+ try{
+ BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",basDevpPosition.getDevNo()));
+ if (basDevp.getAutoing().equals("Y")){
+ if (basDevp.getLoading().equals("Y")){
+ ringThroughParam.setModeColor("#ab1839");
+ ringThroughParam.setStatusColor("#ab1839");
+ }
+ if (basDevp.getLoading().equals("N")){
+ ringThroughParam.setModeColor("#27AE60");
+ ringThroughParam.setStatusColor("#27AE60");
+ }
+ } else {
+ ringThroughParam.setModeColor("#C0392B");
+ ringThroughParam.setStatusColor("#C0392B");
+ }
+
+ } catch (Exception e){
+ System.out.println(e.getMessage());
+ ringThroughParam.setModeColor("#000000");
+ ringThroughParam.setStatusColor("#000000");
+
+ }
+ 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(staNo*100*1D);
- ringThroughParam.setValueY(staNo*100*2D);
+ double[] doubles = Utils.getRgvPosNew(basDevpPosition.getDevNo(),trackEntireLength, basDevpPosition.getPlcPosition());
+ ringThroughParam.setValueX(doubles[0]);
+ ringThroughParam.setValueY(doubles[1]);
result.add(ringThroughParam);
}
return R.ok().add(result);
@@ -416,30 +454,178 @@
@PostMapping("/ring/through/track/position/data")
// @ManagerAuth(memo = "杞ㄩ亾PLC鐘舵�佷俊鎭�")
public R wnergyGatheringRingParamTrack(){
- return R.ok();
+ 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(){
- return R.ok();
+ 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 = RgvStatusCache.getRgvStatus(rgvWrkMastParam.getRgvNo());
+ RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(rgvWrkMastParam.getRgvNo());
+ if (rgvTaskProtocol == 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(){
- return R.ok();
+ 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(){
- return R.ok();
+ 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();
}
+
+
+ @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();
+ }
+
+ @PostMapping("/disable/task/delete1")
+// @ManagerAuth(memo = "鍒濆鍖栦换鍔�")
+ public R taskDisabledelete1(@RequestParam Long wrkNo){
+ Date now = new Date();
+// log.info("/disable/task/delete1===銆嬪垵濮嬪寲浠诲姟锛侊紒锛亀rkNo:{},data:{}",wrkNo,new Date());
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkNo));
+ if (Cools.isEmpty(wrkMast)){
+ return R.error().add("鏈壘鍒版浠诲姟锛屽紓甯革紒锛侊紒");
+ }
+ wrkMast.setWrkSts(1L);
+// wrkMast.setRgvNo(0);
+ wrkMast.setAppeTime(now);
+ wrkMast.setLogErrTime(now);
+ if (wrkMastService.updateById(wrkMast)){
+ return R.ok();
+ }
+ return R.error("鍒濆鍖栧け璐ワ紒锛侊紒");
+ }
}
diff --git a/src/main/java/com/zy/asrs/domain/param/EnergyGatheringRingParam.java b/src/main/java/com/zy/asrs/domain/param/EnergyGatheringRingParam.java
new file mode 100644
index 0000000..6537abe
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/param/EnergyGatheringRingParam.java
@@ -0,0 +1,11 @@
+package com.zy.asrs.domain.param;
+
+import lombok.Data;
+
+@Data
+public class EnergyGatheringRingParam {
+
+ private String trackColor;
+
+ private String radiationColor;
+}
diff --git a/src/main/java/com/zy/asrs/domain/param/RgvCircularShuttleParam.java b/src/main/java/com/zy/asrs/domain/param/RgvCircularShuttleParam.java
new file mode 100644
index 0000000..4364c7f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/param/RgvCircularShuttleParam.java
@@ -0,0 +1,38 @@
+package com.zy.asrs.domain.param;
+
+//import com.zy.asrs.entity.BasCircularShuttle;
+import lombok.Data;
+
+/**
+ * Created by vincent on 2020-06-02
+ */
+@Data
+public class RgvCircularShuttleParam {
+
+ private Long id;
+
+
+ private Integer rgvId;
+
+ private Integer rgvNo;
+
+ /**
+ * 0:姝e父锛�1锛氱鐢�
+ */
+ private Integer status;
+ private Integer error;
+ private String status$ = "鏈煡";
+ private String error$ = "-";
+ private Long position = 0L;
+
+ public RgvCircularShuttleParam(){};
+
+
+// public RgvCircularShuttleParam(BasCircularShuttle basCircularShuttle){
+// this.rgvNo = basCircularShuttle.getRgvNo();
+// this.rgvId = basCircularShuttle.getRgvId();
+// this.status = basCircularShuttle.getStatus();
+// this.status$ = basCircularShuttle.getStatus()==0? "姝e父":"绂佺敤";
+// this.id = basCircularShuttle.getId();
+// }
+}
diff --git a/src/main/java/com/zy/asrs/domain/param/RgvWrkMastParam.java b/src/main/java/com/zy/asrs/domain/param/RgvWrkMastParam.java
new file mode 100644
index 0000000..6c10e68
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/param/RgvWrkMastParam.java
@@ -0,0 +1,46 @@
+package com.zy.asrs.domain.param;
+
+import com.zy.asrs.entity.WrkMast;
+import lombok.Data;
+
+/**
+ * Created by vincent on 2020-06-02
+ */
+@Data
+public class RgvWrkMastParam {
+
+ // RGV鍙�
+ private Integer rgvNo;
+ // 宸ヤ綔鍙�
+ private Long wrkNo;
+ // 宸ヤ綔鐘舵��
+ private Long wrkSts;
+ private String wrkSts$;
+ // 宸ヤ綅1鐩爣绔�
+ private Integer staNo;
+ // 宸ヤ綅1婧愮珯
+ private Integer sourceStaNo;
+ //涓嬪彂鏃堕棿
+ private String modiTime;
+ //鏇存柊鏃堕棿
+ private String appeTime;
+ private String crnStrTime;
+ private String crnEndTime;
+ private String rgvSts;
+
+ public RgvWrkMastParam(){};
+
+
+ public RgvWrkMastParam(WrkMast wrkMast){
+ this.wrkNo = wrkMast.getWrkNo().longValue();
+// this.rgvNo = wrkMast.getRgvNo();
+ this.sourceStaNo = wrkMast.getSourceStaNo();
+ this.staNo = wrkMast.getStaNo();
+ this.wrkSts = wrkMast.getWrkSts();
+ this.wrkSts$ = wrkMast.getWrkSts$();
+ this.modiTime = wrkMast.getModiTime$();
+ this.appeTime = wrkMast.getAppeTime$();
+ this.crnStrTime = wrkMast.getCrnStrTime$();
+ this.crnEndTime = wrkMast.getCrnEndTime$();
+ }
+}
diff --git a/src/main/java/com/zy/asrs/domain/param/RingThroughParam.java b/src/main/java/com/zy/asrs/domain/param/RingThroughParam.java
index f920c86..9adcedc 100644
--- a/src/main/java/com/zy/asrs/domain/param/RingThroughParam.java
+++ b/src/main/java/com/zy/asrs/domain/param/RingThroughParam.java
@@ -14,4 +14,6 @@
private String modeColor;
private String statusColor;
+
+ private int animation = 0;//鍏夋晥
}
diff --git a/src/main/java/com/zy/asrs/domain/vo/CrnListVo.java b/src/main/java/com/zy/asrs/domain/vo/CrnListVo.java
new file mode 100644
index 0000000..6f07eac
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/vo/CrnListVo.java
@@ -0,0 +1,170 @@
+package com.zy.asrs.domain.vo;
+
+import com.zy.asrs.utils.Utils;
+import com.zy.core.enums.CrnStatusType;
+import lombok.Data;
+
+@Data
+public class CrnListVo {
+
+ // 鍫嗗灈鏈哄彿
+ private Integer crnNo;
+ private Integer laneNo;
+
+ // 妯″紡
+ private String statusType = "-";
+
+ // 鏈夌墿
+ private String loading = "-";
+
+ // 鍒�
+ private Short bay;
+
+ // 灞�
+ private Short lev;
+
+ // 璧拌鍘熺偣
+ private String xOrigin = "-";
+
+ // 鍗囬檷鍘熺偣
+ private String yOrigin = "-";
+
+ // 璐у弶浣嶇疆
+ private String forkOffset = "-";
+
+ // 杞借揣鍙颁綅缃�
+ private String liftPos = "-";
+
+ // 璧拌瀹氫綅
+ private String walkPos = "-";
+
+ // 鎬ュ仠
+ private String stop = "-";
+
+ // 鍒楀潗鏍�
+ private String bayCoor = "-";
+
+ // 灞傚潗鏍�
+ private String levCoor = "-";
+
+ // 瀹屾垚
+ private String complete = "-";
+
+ // 浠诲姟鍙�
+ private Short workNo = 0;
+
+ // 浠诲姟鐘舵��
+ private Integer wrkStatus;
+
+ // 寮傚父鐮�
+ private String warnCode = "-";
+
+ // 鍨傜洿鏁呴殰鐮�
+ private String alarm = "-";
+
+ // 婧愮珯
+ private String sourceStaNo = "-";
+
+ // 鐩爣绔�
+ private String staNo = "-";
+
+ // 婧愬簱浣�
+ private String sourceLocNo = "-";
+
+ // 鐩爣搴撲綅
+ private String locNo = "-";
+
+ // 寮傚父
+ private String error = "";
+
+ // 鍘熺偣
+ private String origin = "";
+
+ // 鍛戒护
+ private String command = "";
+
+ // 璧拌閫熷害锛坢/min)
+ private Float xspeed = 0.0F;
+
+ // 鍗囬檷閫熷害锛坢/min)
+ private Float yspeed = 0.0F;
+
+ // 鍙夌墮閫熷害锛坢/min)
+ private Float zspeed = 0.0F;
+
+ // 璧拌璺濈(Km)
+ private Float xdistance = 0.0F;
+
+ // 鍗囬檷璺濈(Km)
+ private Float ydistance = 0.0F;
+
+ // 璧拌鏃堕暱(H)
+ private Float xduration = 0.0F;
+
+ // 鍗囬檷鏃堕暱(H)
+ private Float yduration = 0.0F;
+
+ // 璁惧鐘舵��
+ private String deviceStatus = "-";
+
+ // 鍙叆
+ private String inEnable;
+
+ // 鍙嚭
+ private String outEnable;
+ private String hpMk = "N";
+ private String taskComplete = "鏃�";
+ private String errorCrn;
+ private String demo = "-";
+ private Integer demoValue = 0;
+
+ public void setXspeed(Float xspeed) {
+ this.xspeed = Utils.scale(xspeed);
+ }
+
+ public void setYspeed(Float yspeed) {
+ this.yspeed = Utils.scale(yspeed);
+ }
+
+ public void setZspeed(Float zspeed) {
+ this.zspeed = Utils.scale(zspeed);
+ }
+
+ public void setXdistance(Float xdistance) {
+ this.xdistance = Utils.scale(xdistance);
+ }
+
+ public void setYdistance(Float ydistance) {
+ this.ydistance = Utils.scale(ydistance);
+ }
+
+ public void setXduration(Float xduration) {
+ this.xduration = Utils.scale(xduration);
+ }
+
+ public void setYduration(Float yduration) {
+ this.yduration = Utils.scale(yduration);
+ }
+
+ public String getWrkStatus$() {
+ if (this.wrkStatus == null) {
+ return "-";
+ }
+ return CrnStatusType.get(this.wrkStatus.shortValue()).desc;
+ }
+
+ public String getDemoValue$() {
+ switch (this.demoValue) {
+ case 0:
+ return "鍋滄";
+ case 1:
+ return "杩愯鍚姩涓�";
+ case 2:
+ return "杩愯涓�";
+ case 3:
+ return "鍋滄涓�";
+ default:
+ return "鏈煡鐘舵��";
+ }
+ }
+}
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 36a0324..c208377 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -161,6 +161,150 @@
}
+
+ public static double[] getRgvPosNew(Integer devNo,double a, double b) {
+ double[] rgvPosNew = getRgvPosNew(a, b);
+ switch (devNo){
+ case 101:
+ case 102:
+ case 103:
+ case 104:
+ case 105:
+ case 106:
+ case 107:
+ case 108:
+ case 109:
+ case 110:
+ case 111:
+ rgvPosNew[0] = rgvPosNew[0] - 70;
+ break;
+ case 112:
+ case 113:
+ case 114:
+ case 115:
+ rgvPosNew[0] = rgvPosNew[0] + 50;
+ break;
+ case 116:
+ case 117:
+ case 118:
+ case 119:
+ case 120:
+ case 121:
+ case 122:
+ case 123:
+ case 124:
+ case 125:
+ case 126:
+ case 127:
+ case 128:
+ case 129:
+ case 130:
+ case 131:
+ case 132:
+ case 133:
+ rgvPosNew[1] = rgvPosNew[1] + 50;
+ break;
+ case 134:
+ rgvPosNew[1] = rgvPosNew[1] - 70;
+ break;
+ }
+ return rgvPosNew;
+
+ }
+ public static double[] getRgvPosNew(double a, double b) {
+ Object[][] intervals = {
+// // 寮х嚎鍖洪棿锛堟嫄鐐�116-115锛夛紝鎺у埗鐐瑰亣璁句负(1125, 882)
+// {680103, 731550, 1115, 882, 1215, 775, 1125, 882},
+ // 鐩寸嚎鍖洪棿锛�0-134400锛�
+// {璧风偣, 缁堢偣, 绫诲瀷, x1, y1, x2, y2,
+ {0.0, 120000.0, 0, 390.0, 750.0, 60.0, 750.0},
+ // 鍦嗗姬鍖洪棿锛堟嫄鐐�116-115锛夋柊鍙傛暟锛氬渾蹇�(1115,775)
+ {120000.0, 127500.0, 2, 60.0, 750.0, 10.0, 800.0, 60.0, 800.0}, // 淇缁堢偣鍧愭爣
+ {127500.0, 134900.0, 2, 10.0, 800.0, 60.0, 850.0, 60.0, 800.0},
+ {134900.0, 680103.0,0, 60.0, 850.0, 1100.0, 850.0},
+ {680103.0, 731550.0, 2, 1100.0, 850.0, 1200.0, 750.0, 1100.0, 750.0},
+ {731550.0, 972950.0,0, 1200.0, 750.0, 1200.0, 100.0},
+ {972950.0, 1016193.0, 2, 1200.0, 100.0, 1150.0, 50.0, 1150.0, 100.0},
+ {1016193.0, 1063563.0, 2, 1150.0, 50.0, 1100.0, 100.0, 1150.0, 100.0},
+ {1063563.0, 1315250.0,0, 1100.0, 100.0, 1100.0, 700.0},
+ {1315250.0, 1322829.0, 2, 1100.0, 700.0, 1050.0, 750.0, 1050.0, 700.0},
+ {1322829.0, 1737000.0,0, 1050.0, 750.0, 390.0, 750.0},
+ };
+
+ for (Object[] interval : intervals) {
+ double start = (Double) interval[0];
+ double end = (Double) interval[1];
+ int type = (Integer) interval[2];
+
+ if (b >= start && b <= end) {
+ double t = (b - start) / (end - start);
+
+ // 鏍规嵁涓嶅悓绫诲瀷璁$畻鍧愭爣
+ switch (type) {
+ case 0: // 鐩寸嚎
+ return linearInterpolation(interval, t);
+ case 1: // 璐濆灏旀洸绾�
+ return bezierInterpolation(interval, t);
+ case 2: // 鍦嗗姬
+ return circularInterpolation(interval, t);
+ }
+ }
+ }
+ return new double[]{0, 0};
+ }
+
+
+
+ // 鐩寸嚎鎻掑��
+ private static double[] linearInterpolation(Object[] interval, double t) {
+ double x1 = (Double) interval[3];
+ double y1 = (Double) interval[4];
+ double x2 = (Double) interval[5];
+ double y2 = (Double) interval[6];
+ return new double[]{
+ x1 + t * (x2 - x1),
+ y1 + t * (y2 - y1)
+ };
+ }
+
+ // 璐濆灏旀洸绾挎彃鍊�
+ private static double[] bezierInterpolation(Object[] interval, double t) {
+ double x0 = (Double) interval[3];
+ double y0 = (Double) interval[4];
+ double x2 = (Double) interval[5];
+ double y2 = (Double) interval[6];
+ double cx = (Double) interval[7];
+ double cy = (Double) interval[8];
+ return new double[]{
+ Math.pow(1-t, 2)*x0 + 2*(1-t)*t*cx + t*t*x2,
+ Math.pow(1-t, 2)*y0 + 2*(1-t)*t*cy + t*t*y2
+ };
+ }
+
+ // 鍦嗗姬鎻掑�硷紙鏂板锛�
+ private static double[] circularInterpolation(Object[] interval, double t) {
+ // 鍙傛暟瑙f瀽
+ double startX = (Double) interval[3];
+ double startY = (Double) interval[4];
+ double endX = (Double) interval[5];
+ double endY = (Double) interval[6];
+ double centerX = (Double) interval[7];
+ double centerY = (Double) interval[8];
+
+ // 璁$畻璧峰瑙掑害鍜岀粓姝㈣搴�
+ double startAngle = Math.atan2(startY - centerY, startX - centerX);
+ double endAngle = Math.atan2(endY - centerY, endX - centerX);
+
+ // 瑙掑害鎻掑��
+ double currentAngle = startAngle + t * (endAngle - startAngle);
+ double radius = Math.hypot(startX - centerX, startY - centerY);
+
+ return new double[]{
+ centerX + radius * Math.cos(currentAngle),
+ centerY + radius * Math.sin(currentAngle)
+ };
+ }
+
public static void main(String[] args) {
SlaveProperties slaveProperties = new SlaveProperties();
slaveProperties.setDoubleDeep(true);
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 252da3e..12db825 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -43,6 +43,7 @@
private SiemensS7Net siemensS7Net;
private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
private short heartBeatVal = 1;
+ private boolean result = false;
public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
add(101);add(102);add(103);add(104);add(105);add(106);add(107);add(108);add(109);add(110);
add(111);add(112);add(113);add(114);add(115);add(116);add(117);add(118);add(119);add(120);
--
Gitblit v1.9.1