|  |  |  | 
|---|
|  |  |  | import com.zy.asrs.service.LocMastService; | 
|---|
|  |  |  | import com.zy.asrs.service.WrkMastService; | 
|---|
|  |  |  | import com.zy.asrs.utils.Utils; | 
|---|
|  |  |  | import com.zy.common.service.CommonService; | 
|---|
|  |  |  | import com.zy.common.utils.NavigatePositionConvert; | 
|---|
|  |  |  | import com.zy.core.cache.MessageQueue; | 
|---|
|  |  |  | import com.zy.core.cache.OutputQueue; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.zy.core.model.ShuttleSlave; | 
|---|
|  |  |  | import com.zy.core.model.Task; | 
|---|
|  |  |  | import com.zy.core.model.command.ShuttleAssignCommand; | 
|---|
|  |  |  | import com.zy.core.model.command.ShuttleCommand; | 
|---|
|  |  |  | import com.zy.core.model.protocol.ShuttleProtocol; | 
|---|
|  |  |  | import com.zy.core.properties.SlaveProperties; | 
|---|
|  |  |  | import com.zy.core.thread.ShuttleThread; | 
|---|
|  |  |  | 
|---|
|  |  |  | private WrkMastService wrkMastService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private LocMastService locMastService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private CommonService commonService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping("/table/shuttle/state") | 
|---|
|  |  |  | @ManagerAuth(memo = "四向穿梭车信息表") | 
|---|
|  |  |  | 
|---|
|  |  |  | // 获取四向穿梭车信息 | 
|---|
|  |  |  | ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, basShuttle.getShuttleNo()); | 
|---|
|  |  |  | if (shuttleThread == null) { | 
|---|
|  |  |  | vo.setStatus(ShuttleProtocolStatusType.OFFLINE.id);//设备离线 | 
|---|
|  |  |  | vo.setBusyStatus(ShuttleProtocolStatusType.OFFLINE.desc); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol(); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | vo.setTaskNo(shuttleProtocol.getTaskNo().intValue());  //  任务号 | 
|---|
|  |  |  | vo.setBusyStatus(shuttleProtocol.getBusyStatusType().desc); //四向穿梭车状态 | 
|---|
|  |  |  | vo.setStatus(shuttleProtocol.getProtocolStatusType().desc);//当前任务状态 | 
|---|
|  |  |  | vo.setStatus(shuttleProtocol.getProtocolStatusType().id);//当前任务状态 | 
|---|
|  |  |  | vo.setCurrentCode(shuttleProtocol.getCurrentCode());//当前二维码 | 
|---|
|  |  |  | LocMast currentLocMast = locMastService.queryByQrCode(shuttleProtocol.getCurrentCode().toString()); | 
|---|
|  |  |  | if (currentLocMast == null) { | 
|---|
|  |  |  | 
|---|
|  |  |  | vo.setCurrentOrBeforeCode(shuttleProtocol.getCurrentOrBeforeCode());//当前或者之前读到的二维码值 | 
|---|
|  |  |  | vo.setCodeOffsetX(shuttleProtocol.getCodeOffsetX());//读到的二维码X方向偏移量 | 
|---|
|  |  |  | vo.setCodeOffsetY(shuttleProtocol.getCodeOffsetY());//读到的二维码Y方向偏移量 | 
|---|
|  |  |  | vo.setCurrentVoltage(shuttleProtocol.getCurrentVoltage() * 0.1);//当前的电压值 | 
|---|
|  |  |  | vo.setCurrentVoltage(shuttleProtocol.getCurrentVoltage());//当前的电压值 | 
|---|
|  |  |  | vo.setCurrentAnalogValue(shuttleProtocol.getCurrentAnalogValue());//当前的模拟量值 | 
|---|
|  |  |  | vo.setCurrentLiftServoSpeed(shuttleProtocol.getCurrentLiftServoSpeed());//当前的升降伺服速度 | 
|---|
|  |  |  | vo.setCurrentMoveServoSpeed(shuttleProtocol.getCurrentMoveServoSpeed());//当前的行走伺服速度 | 
|---|
|  |  |  | 
|---|
|  |  |  | if (shuttleProtocol == null) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (shuttleProtocol.getShuttleNo() == null) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | vo.setWorkNo(shuttleProtocol.getTaskNo().intValue());//任务号 | 
|---|
|  |  |  | if (shuttleProtocol.getTaskNo() > 0) { | 
|---|
|  |  |  | 
|---|
|  |  |  | vo.setCurrentLiftServoLoad(shuttleProtocol.getCurrentLiftServoLoad() == null ? "" : shuttleProtocol.getCurrentLiftServoLoad() + "%");//当前的升降伺服负载率 | 
|---|
|  |  |  | vo.setCurrentLiftServoSpeed(shuttleProtocol.getCurrentLiftServoSpeed());//当前的升降伺服速度 | 
|---|
|  |  |  | vo.setPakMk(shuttleProtocol.getPakMk()?"Y" : "N");    // 作业标记 | 
|---|
|  |  |  | vo.setLocNo(shuttleProtocol.getLocNo());//四向穿梭车当前库位号 | 
|---|
|  |  |  | vo.setLev(shuttleProtocol.getLocNo() == null ? 0 : Utils.getLev(shuttleProtocol.getLocNo()));//四向穿梭车当前层高 | 
|---|
|  |  |  | vo.setRunSpeed(basShuttle.getRunSpeed());//四向穿梭车运行速度(设置) | 
|---|
|  |  |  | vo.setChargeLine(basShuttle.getChargeLine());//充电阈值 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok().add(list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping("/detl/update") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R steUpdate(ShuttleDataVo vo){ | 
|---|
|  |  |  | BasShuttle basShuttle = basShuttleService.selectById(vo.getShuttleNo()); | 
|---|
|  |  |  | if (basShuttle == null) { | 
|---|
|  |  |  | return R.error(); | 
|---|
|  |  |  | @ManagerAuth(memo = "修改数据") | 
|---|
|  |  |  | public R liftUpdate(@RequestParam Integer shuttleNo, | 
|---|
|  |  |  | @RequestParam Short workNo, | 
|---|
|  |  |  | @RequestParam String pakMk){ | 
|---|
|  |  |  | for (ShuttleSlave shuttleSlave : slaveProperties.getShuttle()) { | 
|---|
|  |  |  | ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleSlave.getId()); | 
|---|
|  |  |  | if (shuttleThread == null) { | 
|---|
|  |  |  | return R.error("plc已掉线"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol(); | 
|---|
|  |  |  | if (shuttleProtocol == null) { | 
|---|
|  |  |  | return R.error("plc已掉线"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (workNo != null) { | 
|---|
|  |  |  | shuttleProtocol.setTaskNo(workNo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pakMk != null) { | 
|---|
|  |  |  | shuttleProtocol.setPakMk(pakMk.equals("Y")); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 获取四向穿梭车信息 | 
|---|
|  |  |  | ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, vo.getShuttleNo()); | 
|---|
|  |  |  | ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol(); | 
|---|
|  |  |  | if (shuttleProtocol == null) { | 
|---|
|  |  |  | throw new CoolException(vo.getShuttleNo() + "号四向穿梭车不在线,无法保存"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        if (!Cools.isEmpty(vo.getRow(), vo.getBay(), vo.getLev())) { | 
|---|
|  |  |  | //            if (!shuttleThread.modifyPosHandle(vo.getRow(), vo.getBay(), vo.getLev())) { | 
|---|
|  |  |  | //                throw new CoolException("服务器错误"); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | ShuttleCommand shuttleCommand = new ShuttleCommand(); | 
|---|
|  |  |  | shuttleCommand.setTaskNo(vo.getWorkNo().shortValue()); | 
|---|
|  |  |  | if (MessageQueue.offer(SlaveType.Shuttle, vo.getShuttleNo(), new Task(2, shuttleCommand))) { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | throw new CoolException("命令下发失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.error("plc已掉线"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | basShuttle.setPakMk(vo.getPakMk()); | 
|---|
|  |  |  | basShuttle.setWrkNo(vo.getWorkNo()); | 
|---|
|  |  |  | basShuttle.setUpdateTime(new Date()); | 
|---|
|  |  |  | @PostMapping("/runSpeed/{shuttleNo}") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R setRunSpeed(@PathVariable("shuttleNo") String shuttleNo, @RequestParam("runSpeed") Integer runSpeed, @RequestParam("chargeLine") Integer chargeLine) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BasShuttle basShuttle = basShuttleService.selectById(shuttleNo); | 
|---|
|  |  |  | if (basShuttle == null) { | 
|---|
|  |  |  | return R.error("四向穿梭车不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | basShuttle.setRunSpeed(runSpeed); | 
|---|
|  |  |  | basShuttle.setChargeLine(chargeLine); | 
|---|
|  |  |  | if (!basShuttleService.updateById(basShuttle)) { | 
|---|
|  |  |  | throw new CoolException("修改失败"); | 
|---|
|  |  |  | return R.error(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | ShuttleTaskModeType shuttleTaskModeType = ShuttleTaskModeType.get(param.getShuttleTaskMode()); | 
|---|
|  |  |  | assignCommand.setShuttleNo(shuttleSlave.getId().shortValue()); // 四向穿梭车编号 | 
|---|
|  |  |  | assignCommand.setTaskMode(shuttleTaskModeType.id.shortValue()); | 
|---|
|  |  |  | assignCommand.setTaskNo((short) 9999); | 
|---|
|  |  |  | assignCommand.setTaskNo((short) commonService.getWorkNo(3));//获取任务号 | 
|---|
|  |  |  | assignCommand.setAuto(false);//手动模式 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (MessageQueue.offer(SlaveType.Shuttle, shuttleSlave.getId(), new Task(3, assignCommand))) { | 
|---|