| | |
| | | import com.zy.asrs.service.BasDualCrnpService; |
| | | import com.zy.asrs.service.BasStationService; |
| | | import com.zy.asrs.service.LocMastService; |
| | | import com.zy.asrs.service.WrkAnalysisService; |
| | | import com.zy.asrs.service.WrkMastService; |
| | | import com.zy.asrs.utils.NotifyUtils; |
| | | import com.zy.asrs.utils.Utils; |
| | |
| | | private NotifyUtils notifyUtils; |
| | | @Autowired |
| | | private StationOperateProcessUtils stationOperateProcessUtils; |
| | | @Autowired |
| | | private WrkAnalysisService wrkAnalysisService; |
| | | |
| | | private static final String CRN_OUT_REQUIRE_STATION_OUT_ENABLE_CONFIG = "crnOutRequireStationOutEnable"; |
| | | |
| | |
| | | .in("wrk_no", taskList) |
| | | ); |
| | | for (WrkMast wrkMast : wrkMasts) { |
| | | if(wrkMast.getWrkSts() != WrkStsType.INBOUND_DEVICE_RUN.sts){ |
| | | if(wrkMast.getWrkSts() != WrkStsType.INBOUND_STATION_RUN_COMPLETE.sts){ |
| | | continue; |
| | | } |
| | | list.add(wrkMast); |
| | |
| | | |
| | | Integer crnNo = basDualCrnp.getCrnNo(); |
| | | |
| | | if (wrkMast.getWrkSts() != WrkStsType.INBOUND_DEVICE_RUN.sts) { |
| | | if (wrkMast.getWrkSts() != WrkStsType.INBOUND_STATION_RUN_COMPLETE.sts) { |
| | | return null; |
| | | } |
| | | |
| | |
| | | commandList.add(pickCommand); |
| | | commandList.add(putCommand); |
| | | |
| | | Date now = new Date(); |
| | | wrkMast.setWrkSts(WrkStsType.INBOUND_RUN.sts); |
| | | wrkMast.setDualCrnNo(crnNo); |
| | | wrkMast.setSystemMsg(""); |
| | | wrkMast.setIoTime(new Date()); |
| | | wrkMast.setIoTime(now); |
| | | wrkMast.setModiTime(now); |
| | | if (wrkMastService.updateById(wrkMast)) { |
| | | wrkAnalysisService.markCraneStart(wrkMast, now); |
| | | SendDualCrnCommandParam sendDualCrnCommandParam = new SendDualCrnCommandParam(); |
| | | sendDualCrnCommandParam.setCrnNo(crnNo); |
| | | sendDualCrnCommandParam.setStation(station); |
| | |
| | | commandList.add(pickCommand); |
| | | commandList.add(putCommand); |
| | | |
| | | Date now = new Date(); |
| | | wrkMast.setWrkSts(WrkStsType.OUTBOUND_RUN.sts); |
| | | wrkMast.setDualCrnNo(crnNo); |
| | | wrkMast.setSystemMsg(""); |
| | | wrkMast.setIoTime(new Date()); |
| | | wrkMast.setIoTime(now); |
| | | wrkMast.setModiTime(now); |
| | | if (wrkMastService.updateById(wrkMast)) { |
| | | wrkAnalysisService.markCraneStart(wrkMast, now); |
| | | redisUtil.set(RedisKeyType.DUAL_CRN_OUT_TASK_STATION_INFO.key + wrkMast.getWrkNo(), JSON.toJSONString(stationObjModel, SerializerFeature.DisableCircularReferenceDetect), 60 * 60 * 24); |
| | | |
| | | SendDualCrnCommandParam sendDualCrnCommandParam = new SendDualCrnCommandParam(); |
| | |
| | | commandList.add(pickCommand); |
| | | commandList.add(putCommand); |
| | | |
| | | Date now = new Date(); |
| | | wrkMast.setWrkSts(WrkStsType.LOC_MOVE_RUN.sts); |
| | | wrkMast.setDualCrnNo(crnNo); |
| | | wrkMast.setSystemMsg(""); |
| | | wrkMast.setIoTime(new Date()); |
| | | wrkMast.setIoTime(now); |
| | | wrkMast.setModiTime(now); |
| | | if (wrkMastService.updateById(wrkMast)) { |
| | | wrkAnalysisService.markCraneStart(wrkMast, now); |
| | | SendDualCrnCommandParam sendDualCrnCommandParam = new SendDualCrnCommandParam(); |
| | | sendDualCrnCommandParam.setCrnNo(crnNo); |
| | | sendDualCrnCommandParam.setStation(station); |
| | |
| | | |
| | | if (idx >= 2) { |
| | | Long updateWrkSts = null; |
| | | Date now = new Date(); |
| | | if (wrkMast.getWrkSts() == WrkStsType.INBOUND_RUN.sts) { |
| | | updateWrkSts = WrkStsType.COMPLETE_INBOUND.sts; |
| | | notifyUtils.notify(String.valueOf(SlaveType.DualCrn), basDualCrnp.getCrnNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.DUAL_CRN_IN_TASK_COMPLETE, null); |
| | |
| | | |
| | | wrkMast.setWrkSts(updateWrkSts); |
| | | wrkMast.setSystemMsg(""); |
| | | wrkMast.setIoTime(new Date()); |
| | | wrkMast.setIoTime(now); |
| | | wrkMast.setModiTime(now); |
| | | if (wrkMastService.updateById(wrkMast)) { |
| | | wrkAnalysisService.markCraneComplete(wrkMast, now, updateWrkSts); |
| | | News.info("双工位堆垛机任务状态更新成功,堆垛机号={},工作号={}", basDualCrnp.getCrnNo(), taskNo); |
| | | } |
| | | redisUtil.set(RedisKeyType.DUAL_CRN_IO_EXECUTE_FINISH_LIMIT.key + basDualCrnp.getCrnNo() + "_" + taskNo, "lock", 10); |