package com.zy.asrs.controller;
|
|
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.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.*;
|
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.*;
|
import java.util.concurrent.ConcurrentHashMap;
|
|
/**
|
* 输送设备接口
|
* Created by vincent on 2020-06-01
|
*/
|
@RestController
|
@RequestMapping("/rgv")
|
public class RgvController {
|
|
@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(){
|
List<Map<String, Object>> res = new ArrayList<>();
|
ConcurrentHashMap<Integer, RgvProtocol> allRgvStatus = RgvStatusCache.getAllRgvStatus();
|
for (RgvProtocol rgvProtocol : allRgvStatus.values()){
|
Map<String, Object> map2 = new HashMap<>();
|
map2.put("rgvNo", rgvProtocol.getRgvNo());
|
map2.put("taskNo", rgvProtocol.getTaskNo());
|
map2.put("mode", rgvProtocol.getModeType().desc);
|
map2.put("status", rgvProtocol.getStatusType().desc);
|
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);
|
}
|
|
@PostMapping("/task/cache/all")
|
// @ManagerAuth(memo = "全部信息")
|
public R allTaskCache(@RequestParam(defaultValue = "0") Integer rgvNo){
|
List<Map<String, Object>> res = new ArrayList<>();
|
try{
|
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
|
TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
|
ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
|
for (TaskProtocol taskProtocol : allTaskProtocol.values()){
|
Map<String, Object> map2 = new HashMap<>();
|
map2.put("rgvNo", rgvNo);
|
map2.put("taskNo", taskProtocol.getTaskNo());
|
map2.put("targetPosition", taskProtocol.getTargetPosition());
|
map2.put("isRunning", taskProtocol.getIsRunning());
|
map2.put("taskStatus", taskProtocol.getTaskStatus());
|
map2.put("direction", taskProtocol.isDirection());
|
res.add(map2);
|
}
|
} catch (Exception e){
|
// return R.error("异常"+e.getMessage());
|
}
|
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 = "9999") Integer taskNo,
|
@RequestParam(defaultValue = "0") Integer rgvStaNoPut,
|
@RequestParam(defaultValue = "0") Long rgvPosDestination
|
) {
|
if (rgvNo==null || rgvNo==0){
|
return R.error("请选择小车");
|
}
|
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", rgvStaNoPut));
|
if (Cools.isEmpty(basDevpPosition)){
|
return R.error("目标站点不存在");
|
}
|
rgvPosDestination = basDevpPosition.getPlcPosition();
|
}
|
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
|
TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
|
|
TaskProtocol issued = new TaskProtocol();
|
|
try {
|
ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
|
if (allTaskProtocol.size() > 0) {
|
return R.error("存在执行中任务,请先处理!!!");
|
}
|
|
//执行
|
issued.setTaskNo(Long.valueOf(taskNo));
|
issued.setTaskStatus(1);
|
issued.setTaskNoDirection(issued.gettaskNoDirection$(issued.getTaskNo(), issued.getTaskStatus()));
|
issued.setTargetPosition(rgvPosDestination);
|
issued.setIsRunning(1);
|
issued.setDirection(true);
|
|
taskProtocolCache.updateTaskProtocol(issued);
|
|
} catch (Exception e) {
|
return R.error("任务生成失败"+e.getMessage());
|
}
|
|
return R.ok("任务生成成功");
|
}
|
|
@PostMapping("/run/put")//Take Put Walk
|
// @ManagerAuth(memo = "小车放货")
|
public R rgvPutWalk(@RequestParam(defaultValue = "0") Integer rgvNo,
|
@RequestParam(defaultValue = "9999") Integer taskNo,
|
@RequestParam(defaultValue = "0") Integer rgvStaNoPut,
|
@RequestParam(defaultValue = "0") Long rgvPosDestination
|
) {
|
if (rgvNo==null || rgvNo==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 issuedPut = new TaskProtocol();
|
|
try {
|
ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
|
if (allTaskProtocol.size() > 0) {
|
return R.error("存在执行中任务,请先处理!!!");
|
}
|
|
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.setTargetPositionStaNoEnd(basDevpPosition.getDevNo$());
|
issuedPut.setTargetPositionStaNoPlcId(basDevpPosition.getPlcId());
|
issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus()));
|
issuedPut.setTargetPosition(basDevpPosition.getPlcPosition());
|
issuedPut.setIsRunning(1);
|
issuedPut.setDirection(basDevpPosition.getRgvSign()==1);
|
|
taskProtocolCache.updateTaskProtocol(issuedPut);
|
} catch (Exception e) {
|
return R.error("任务生成失败"+e.getMessage());
|
}
|
|
return R.ok("任务生成成功");
|
}
|
|
@PostMapping("/run/take")//Take Put Walk
|
// @ManagerAuth(memo = "小车取货")
|
public R rgvTakeWalk(@RequestParam(defaultValue = "0") Integer rgvNo,
|
@RequestParam(defaultValue = "9999") Integer taskNo,
|
@RequestParam(defaultValue = "0") Integer rgvStaNoTake,
|
@RequestParam(defaultValue = "0") Long rgvPosDestination
|
) {
|
if (rgvNo==null || rgvNo==0){
|
return R.error("请选择小车");
|
}
|
if (rgvStaNoTake == null || rgvStaNoTake == 0){
|
return R.error("取货站点请填写");
|
}
|
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
|
TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
|
|
TaskProtocol issuedTake = new TaskProtocol();
|
try {
|
ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
|
if (allTaskProtocol.size() > 0) {
|
return R.error("存在执行中任务,请先处理!!!");
|
}
|
|
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);
|
issuedTake.setDirection(basDevpPosition.getRgvSign()==1);
|
|
taskProtocolCache.updateTaskProtocol(issuedTake);
|
} catch (Exception e) {
|
return R.error("任务生成失败"+e.getMessage());
|
}
|
|
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.setTargetPositionStaNoEnd(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<>();
|
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(rgv.getId());
|
// ringThroughParam.setIndex(i);
|
// double[] doubles = Utils.RingThroughXY2(perimeter, NumUtils.GetRandomIntInRange(183));
|
// double[] doubles = Utils.RingThroughXYRgv(perimeter, perimeter-rgvProtocol.RgvPos.doubleValue());
|
double v = rgvProtocol.RgvPos.doubleValue() ;
|
if (rgv.getId()>2){
|
v = rgvProtocol.RgvPos.doubleValue() + 1000000.0;
|
}
|
double[] doubles = Utils.getRgvPosNew(trackEntireLength, v);
|
|
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);
|
}
|
|
@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.getDevRegion() == 0){
|
// continue;
|
// }
|
RingThroughParam ringThroughParam = new RingThroughParam();
|
|
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 v = basDevpPosition.getPlcPosition() ;
|
if (basDevpPosition.getDevNo()>200){
|
v = basDevpPosition.getPlcPosition() + 1000000.0;
|
}
|
double[] doubles = Utils.getRgvPosNew(basDevpPosition.getDevNo(),trackEntireLength, v);
|
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 = 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(){
|
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();
|
}
|
|
|
@PostMapping("/disable/rgv/status")
|
// @ManagerAuth(memo = "修改RGV状态")
|
public R rgvDisableStatus(@RequestParam Integer rgvNo,
|
@RequestParam Integer status){
|
// log.info("/disable/rgv/status===》修改RGV状态!!!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===》初始化任务!!!wrkNo:{},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("初始化失败!!!");
|
}
|
}
|