| | |
| | | |
| | | 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.CrnOperatorParam; |
| | | import com.zy.asrs.domain.param.RgvOperatorParam; |
| | | import com.zy.asrs.domain.vo.RgvMsgTableVo; |
| | | import com.zy.asrs.domain.vo.RgvStateTableVo; |
| | | import com.zy.asrs.entity.BasRgv; |
| | | import com.zy.asrs.entity.BasRgvErr; |
| | | import com.zy.asrs.entity.BasRgvMap; |
| | | import com.zy.asrs.entity.WrkMast; |
| | | 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.mapper.BasRgvMapMapper; |
| | | 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.core.cache.MessageQueue; |
| | | import com.zy.core.cache.OutputQueue; |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.core.cache.*; |
| | | import com.zy.core.enums.RgvModeType; |
| | | import com.zy.core.enums.RgvTaskModeType; |
| | | import com.zy.core.enums.RgvTaskStatusType; |
| | | 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.model.protocol.RgvTaskProtocol; |
| | | import com.zy.core.model.protocol.TaskProtocol; |
| | | import com.zy.core.properties.SlaveProperties; |
| | | import com.zy.core.thread.RgvThread; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import com.zy.core.thread.SiemensDevpThread; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.lang.reflect.Field; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.*; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | |
| | | /** |
| | | * RGV接口 |
| | | * 输送设备接口 |
| | | * Created by vincent on 2020-06-01 |
| | | */ |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping("/rgv") |
| | | public class RgvController { |
| | | |
| | | @Autowired |
| | | private BasDevpPositionService basDevpPositionService; |
| | | |
| | | @Autowired |
| | | private SlaveProperties slaveProperties; |
| | |
| | | @Autowired |
| | | private BasRgvErrMapper basRgvErrMapper; |
| | | @Autowired |
| | | private BasRgvOptService basRgvOptService; |
| | | @Autowired |
| | | private BasRgvService basRgvService; |
| | | @Autowired |
| | | private BasDevpService basDevpService; |
| | | @Autowired |
| | | private MainServiceImpl mainService; |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | @Autowired |
| | | private BasRgvMapMapper basRgvMapMapper; |
| | | // @ManagerAuth(memo = "解锁小车") |
| | | // @PostMapping("/lock") |
| | | // public R lock(CrnOperatorParam param){ |
| | | // RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, param.getRgvNo()); |
| | | // rgvThread.setPakMk(true); |
| | | // return R.ok(); |
| | | // } |
| | | // |
| | | // @PostMapping("/table/rgv/state") |
| | | // @ManagerAuth(memo = "RGV信息表") |
| | | // public R rgvStateTable() { |
| | | // List<RgvStateTableVo> list = new ArrayList<>(); |
| | | // List<BasRgv> rgvs = basRgvService.selectList(new EntityWrapper<BasRgv>().orderBy("rgv_no")); |
| | | // |
| | | // for (BasRgv basRgv : rgvs) { |
| | | // RgvStateTableVo vo = new RgvStateTableVo(); |
| | | // vo.setRgvNo(basRgv.getRgvNo()); // RGV号 |
| | | // list.add(vo); |
| | | // |
| | | |
| | | |
| | | @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, basRgv.getRgvNo()); |
| | | // if (rgvThread == null) continue; |
| | | // |
| | | // RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | // if (rgvProtocol == null) continue; |
| | | // BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); |
| | | // |
| | | // vo.setStatusType(rgvProtocol.modeType.desc); // 模式状态 |
| | | // vo.setStatus(String.valueOf(rgvProtocol.getMode())); // 状态 |
| | | // vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 工位1任务号 |
| | | // vo.setStatus1(rgvProtocol.getStatusType1().desc); // 工位1状态 |
| | | // vo.setLoading1(rgvProtocol.getLoaded1() ? "有物" : "无物"); // 工位1有物 |
| | | // vo.setRgvPos(basRgvMap != null?basRgvMap.getNowRoute():0); |
| | | // vo.setRgvPos1(rgvProtocol.getRgvPosI2()); |
| | | // vo.setWalkPos(Objects.equals(rgvProtocol.getWalkPos(), 1) ? "在定位" : "不在定位"); |
| | | // vo.setPakMk(rgvThread.isPakMk() ? "无锁" : "锁定"); |
| | | //// vo.setPakIn(rgvThread.isPakIn() ? "可入" : "不可入"); |
| | | //// vo.setPakOut(rgvThread.isPakOut() ? "可出" : "不可出"); |
| | | //// vo.setPakRgv(rgvThread.isPakRgv() ? "无锁" : "锁定"); |
| | | // vo.setPaking(rgvThread.isPaking()? "无锁" : "锁定"); |
| | | //// vo.setPakAll(rgvThread.isPakAll() ? "无锁" : "锁定"); |
| | | //// vo.setPakToCrn(rgvThread.isPakToCrn() ? "无锁" : "锁定"); |
| | | // |
| | | // |
| | | // vo.setWorkNo2(rgvProtocol.getTaskNo2()); // 工位2任务号 |
| | | //// vo.setStatus2(rgvProtocol.getStatusType2().desc); // 工位2状态 |
| | | // vo.setLoading2(rgvProtocol.getLoaded2() ? "有物" : "无物"); // 工位2有物 |
| | | // |
| | | // // --- 遍历 errX 字段生成 warnCode 和 alarm --- |
| | | // List<String> alarms = new ArrayList<>(); |
| | | // List<String> warnCodes = new ArrayList<>(); |
| | | // Field[] fields = rgvProtocol.getClass().getDeclaredFields(); |
| | | // for (Field field : fields) { |
| | | // if (field.getName().startsWith("err") && field.getType().equals(Boolean.class)) { |
| | | // field.setAccessible(true); |
| | | // try { |
| | | // Boolean value = (Boolean) field.get(rgvProtocol); |
| | | // if (Boolean.TRUE.equals(value)) { |
| | | // String numPart = field.getName().substring(3); |
| | | // int errId = Integer.parseInt(numPart); |
| | | // warnCodes.add(String.valueOf(errId)); |
| | | // |
| | | // BasRgvErr rgvErr = basRgvErrMapper.selectById(errId); |
| | | // alarms.add(rgvErr == null ? "未知异常(" + errId + ")" : rgvErr.getErrName()); |
| | | 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); |
| | | // } |
| | | // } catch (IllegalAccessException e) { |
| | | // e.printStackTrace(); |
| | | // 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()); |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // vo.setWarnCode(String.join(",", warnCodes)); |
| | | // vo.setAlarm(alarms.isEmpty() ? "" : String.join(",", alarms)); |
| | | // result.add(rgvCircularShuttleParam); |
| | | // } |
| | | // |
| | | // return R.ok().add(list); |
| | | // } |
| | | |
| | | |
| | | // @PostMapping("/table/rgv/msg") |
| | | // @ManagerAuth(memo = "RGV数据表") |
| | | // public R rgvMsgTable(){ |
| | | // List<RgvMsgTableVo> list = new ArrayList<>(); |
| | | // List<BasRgv> rgvs = basRgvService.selectList(new EntityWrapper<BasRgv>().orderBy("rgv_no")); |
| | | // for (BasRgv basRgv : rgvs) { |
| | | // // 表格行 |
| | | // RgvMsgTableVo vo = new RgvMsgTableVo(); |
| | | // vo.setRgvNo(basRgv.getRgvNo()); // RGV号 |
| | | // list.add(vo); |
| | | // // 获取RGV信息 |
| | | // RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basRgv.getRgvNo()); |
| | | // if (rgvThread == null) { |
| | | // continue; |
| | | // } |
| | | // RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | // if (rgvProtocol == null) { |
| | | // continue; |
| | | // } |
| | | // |
| | | // vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 工位1工作号 |
| | | // vo.setWorkNo2(rgvProtocol.getTaskNo2()); //工位2 工作号 |
| | | // vo.setStaNo(String.valueOf(rgvProtocol.getRgvPosDestination())); //小车目标站 |
| | | // vo.setStatus(rgvProtocol.modeType.equals(RgvModeType.AUTO)? rgvProtocol.modeType.desc: RgvModeType.HAND.desc); // 模式状态 |
| | | // |
| | | // } |
| | | // return R.ok().add(list); |
| | | // } |
| | | |
| | | @PostMapping("/output/site") |
| | | @ManagerAuth(memo = "RGV报文日志输出") |
| | | public R rgvOutput(){ |
| | | StringBuilder str = new StringBuilder(); |
| | | String s; |
| | | int i = 0; |
| | | while((s = OutputQueue.RGV.poll()) != null && i <=10) { |
| | | str.append("\n").append(s); |
| | | i++; |
| | | } |
| | | return R.ok().add(str.toString()); |
| | | return R.ok().add(result); |
| | | } |
| | | |
| | | // /****************************************************************/ |
| | | // /************************** 手动操作 ******************************/ |
| | | // /****************************************************************/ |
| | | // |
| | | // @ManagerAuth(memo = "取放货") |
| | | // @PostMapping("/operator/put") |
| | | // public R rgvFetchPut(RgvOperatorParam param){ |
| | | // RgvCommand command = new RgvCommand(); |
| | | // command.setRgvNo(param.getRgvNo()); // RGV编号 |
| | | // command.setAckFinish1(false); // 任务完成确认位 |
| | | // command.setTaskNo(0); // 工作号 |
| | | // command.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 任务模式: 取放货 |
| | | // command.setSourceStaNo1(param.getSourceStaNo1()); // 源站 |
| | | //// command.setDestinationStaNo1(param.getStaNo1()); // 目标站 |
| | | // command.setAckFinish2(false); // 任务完成确认位 |
| | | // command.setTaskNo2(0); // 工作号 |
| | | // command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 任务模式: 取放货 |
| | | // command.setSourceStaNo2(param.getSourceStaNo2()); // 源站 |
| | | //// command.setDestinationStaNo2(param.getStaNo2()); // 目标站 |
| | | // command.setCommand(true); |
| | | // |
| | | // return rgvControl(command)? R.ok(): R.error(); |
| | | // } |
| | | |
| | | // @ManagerAuth(memo = "取货") |
| | | // @PostMapping("/operator/take") |
| | | // public R rgvFetch(RgvOperatorParam param){ |
| | | // RgvCommand command = new RgvCommand(); |
| | | // command.setRgvNo(param.getRgvNo()); // RGV编号 |
| | | // command.setWrkTaskPri(param.getWorkSta()); //执行工位 |
| | | // command.setTaskNo(Math.toIntExact(param.getWorkNo())); // 工作号 |
| | | // command.setTaskStatus(RgvTaskStatusType.FETCH); // 任务模式: 取货 |
| | | // command.setTargetPosition(Integer.valueOf(param.getStaNo())); // 目标站 |
| | | //// command.setTaskMode2(RgvTaskModeType.FETCH); // 任务模式: 取放货 |
| | | //// command.setAckFinish1(false); // 任务完成确认位 |
| | | //// command.setSourceStaNo1(param.getSourceStaNo1()); // 源站 |
| | | //// command.setAckFinish2(false); // 任务完成确认位 |
| | | //// command.setTaskNo2( 0); // 工作号 |
| | | //// command.setSourceStaNo2(param.getSourceStaNo2()); // 源站 |
| | | //// command.setDestinationStaNo2(param.getStaNo2()); // 目标站 |
| | | // command.setCommand(true); |
| | | // |
| | | // return rgvControl(command)? R.ok(): R.error(); |
| | | // } |
| | | |
| | | // @ManagerAuth(memo = "放货") |
| | | // @PostMapping("/operator/stockMove") |
| | | // public R rgvPut(RgvOperatorParam param){ |
| | | // RgvCommand command = new RgvCommand(); |
| | | // command.setRgvNo(param.getRgvNo()); // RGV编号 |
| | | // command.setWrkTaskPri(param.getWorkSta()); //执行工位 |
| | | // command.setTaskNo(Math.toIntExact(param.getWorkNo())); // 工作号 |
| | | // command.setTaskStatus(RgvTaskStatusType.PUT); // 任务模式: 取货 |
| | | // command.setTargetPosition(Integer.valueOf(param.getStaNo())); // 目标站 |
| | | //// command.setAckFinish1(false); // 任务完成确认位 |
| | | //// command.setSourceStaNo1(param.getSourceStaNo1()); // 源站 |
| | | //// command.setAckFinish2(false); // 任务完成确认位 |
| | | //// command.setTaskNo2( 0); // 工作号 |
| | | //// command.setTaskMode2(RgvTaskModeType.FETCH); // 任务模式: 取放货 |
| | | //// command.setSourceStaNo2(param.getSourceStaNo2()); // 源站 |
| | | //// command.setDestinationStaNo2(param.getStaNo2()); // 目标站 |
| | | // command.setCommand(true); |
| | | // |
| | | // return rgvControl(command)? R.ok(): R.error(); |
| | | // } |
| | | |
| | | |
| | | |
| | | // @ManagerAuth(memo = "任务完成") |
| | | // @PostMapping("/operator/taskComplete") |
| | | // public R rgvTaskComplete(RgvOperatorParam param){ |
| | | // RgvCommand command = new RgvCommand(); |
| | | // command.setRgvNo(param.getRgvNo()); // RGV编号 |
| | | // command.setAckFinish1(true); // 任务完成确认位 |
| | | //// command.setTaskNo1(0); // 工作号 |
| | | // command.setTaskMode1(RgvTaskModeType.NONE); // 任务模式 |
| | | // command.setSourceStaNo1((short) 0); // 源站 |
| | | // command.setDestinationStaNo1((short) 0); // 目标站 |
| | | // command.setAckFinish2(true); // 任务完成确认位 |
| | | // command.setTaskNo2( 0); // 工作号 |
| | | // command.setTaskMode2(RgvTaskModeType.NONE); // 任务模式 |
| | | // command.setSourceStaNo2((short) 0); // 源站 |
| | | // command.setDestinationStaNo2((short) 0); // 目标站 |
| | | // command.setCommand(true); |
| | | // |
| | | // return rgvControl(command)? R.ok(): R.error(); |
| | | // } |
| | | |
| | | // @ManagerAuth(memo = "清除命令") |
| | | // @PostMapping("/operator/clearCommand") |
| | | // public R rgvClearCommand(RgvOperatorParam param){ |
| | | // if (param.getRgvNo() == null) { |
| | | // throw new CoolException("请选择RGV号"); |
| | | // } |
| | | // RgvCommand command = new RgvCommand(); |
| | | // command.setRgvNo(param.getRgvNo()); // RGV编号 |
| | | // command.setWrkTaskPri(0); //执行工位 |
| | | // command.setTaskNo(Math.toIntExact(0)); // 工作号 |
| | | // command.setTaskStatus((short)0); // 任务模式: 取货 |
| | | // command.setTargetPosition(0); // 目标站 |
| | | // |
| | | // return rgvClear(command)? R.ok(): R.error(); |
| | | // } |
| | | |
| | | // @ManagerAuth(memo = "手动复位") |
| | | // @PostMapping("/operator/handleReset") |
| | | // public R handleReset(RgvOperatorParam param) throws Exception { |
| | | // if (param.getRgvNo() == null) { |
| | | // throw new CoolException("请选择RGV"); |
| | | // } |
| | | // // 获取RGV缓存 |
| | | // for (RgvSlave rgv : slaveProperties.getRgv()) { |
| | | // // 获取RGV信息 |
| | | // if (param.getRgvNo().equals(rgv.getId())) { |
| | | // RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); |
| | | // if (rgvThread == null) { |
| | | // throw new CoolException("RGV不在线"); |
| | | // } |
| | | // RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | // if (rgvProtocol == null) { |
| | | // throw new CoolException("RGV不在线"); |
| | | // } |
| | | // RgvCommand Command = new RgvCommand(); |
| | | // Command.setRgvNo(rgv.getId()); // RGV编号 |
| | | // Command.setTaskMode1(RgvTaskModeType.NONE); |
| | | // Command.setAckFinish1(true); // 任务完成确认位 |
| | | // Command.setAckFinish2(true); // 任务完成确认位 |
| | | // Command.setCommand(true); // 任务完成确认位 |
| | | // // 延时发送 |
| | | // Thread.sleep(1000L); |
| | | // if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(4, Command))) { |
| | | // return R.ok(); |
| | | // } else { |
| | | // throw new CoolException("命令下发失败"); |
| | | // } |
| | | // |
| | | @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.error(); |
| | | // } |
| | | // |
| | | // private boolean rgvControl(RgvCommand command){ |
| | | // if (command.getRgvNo() == null) { |
| | | // throw new CoolException("请选择RGV"); |
| | | // } |
| | | // for (RgvSlave rgv : slaveProperties.getRgv()) { |
| | | // // 获取RGV信息 |
| | | // if (command.getRgvNo().equals(rgv.getId())) { |
| | | // RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); |
| | | // if (rgvThread == null) { |
| | | // throw new CoolException("RGV不在线"); |
| | | // } |
| | | // RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | // if (rgvProtocol == null) { |
| | | // throw new CoolException("RGV不在线"); |
| | | // } |
| | | // if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(2, command))) { |
| | | // return true; |
| | | // } else { |
| | | // throw new CoolException("命令下发失败"); |
| | | // } |
| | | // } |
| | | // } |
| | | // return false; |
| | | // } |
| | | // |
| | | // private boolean rgvClear(RgvCommand command){ |
| | | // if (command.getRgvNo() == null) { |
| | | // throw new CoolException("请选择RGV"); |
| | | // } |
| | | // for (RgvSlave rgv : slaveProperties.getRgv()) { |
| | | // // 获取RGV信息 |
| | | // if (command.getRgvNo().equals(rgv.getId())) { |
| | | // RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); |
| | | // if (rgvThread == null) { |
| | | // throw new CoolException("RGV不在线"); |
| | | // } |
| | | // RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | // if (rgvProtocol == null) { |
| | | // throw new CoolException("RGV不在线"); |
| | | // } |
| | | // if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(3, command))) { |
| | | // return true; |
| | | // } else { |
| | | // throw new CoolException("命令下发失败"); |
| | | // } |
| | | // } |
| | | // } |
| | | // return false; |
| | | // |
| | | // } |
| | | 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("初始化失败!!!"); |
| | | } |
| | | } |