| | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.common.R; |
| | | import com.core.common.SpringUtils; |
| | | import com.core.exception.CoolException; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.zy.asrs.domain.enums.TaskStatusType; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.entity.param.TaskOverToWms; |
| | | import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam; |
| | | import com.zy.asrs.entity.param.taskCreateParam; |
| | | import com.zy.asrs.mapper.*; |
| | | import com.zy.asrs.mapper.BasCrnErrorMapper; |
| | | import com.zy.asrs.mapper.StaDescMapper; |
| | | import com.zy.asrs.mapper.TaskWrkMapper; |
| | | import com.zy.asrs.mapper.WrkMastMapper; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.utils.CommandUtils; |
| | | import com.zy.asrs.utils.PostMesDataUtils; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.common.service.CommonService; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.core.CrnThread; |
| | | import com.zy.core.DevpThread; |
| | |
| | | import com.zy.core.model.protocol.StaProtocol; |
| | | import com.zy.core.properties.SlaveProperties; |
| | | import com.zy.core.thread.BarcodeThread; |
| | | import com.zy.core.thread.LedThread; |
| | | import com.zy.core.thread.SiemensDevpThread; |
| | | import com.zy.system.entity.Config; |
| | | import com.zy.system.service.ConfigService; |
| | |
| | | |
| | | @Autowired |
| | | private ApiLogService apiLogService; |
| | | // |
| | | // // 入库站点号对应的堆垛机 |
| | | // private static final Map<Integer,Integer> staNoToCrnMap = new HashMap<Integer,Integer>(){{ |
| | | // put(103,1); put(205,1); put(107,2); put(211,2); |
| | | // put(111,3); put(217,3); put(115,4); put(223,4); |
| | | // put(119,5); put(229,5); put(123,6); put(235,6); |
| | | // }}; |
| | | |
| | | @Value("${wms.url}") |
| | | private String wmsUrl; |
| | |
| | | if (!taskWrkService.updateById(taskWrk)){ |
| | | log.error("保存wms库位号失败"); |
| | | } |
| | | // try { |
| | | // // 更新库位为入库预约 |
| | | // LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint()); |
| | | // locMast.setLocSts("S"); |
| | | // locMastService.updateById(locMast); |
| | | // log.info("-----入库更新库位状态为:S成功----------"+ locMast.getLocNo()); |
| | | // } catch (Exception e){ |
| | | // log.error("-----入库更新库位状态为:S异常----------"+ e); |
| | | // } |
| | | |
| | | }else { |
| | | log.error("wms通讯失败,"+jsonObject.get("msg")); |
| | |
| | | } |
| | | } |
| | | } |
| | | // |
| | | // private boolean getCrnByStaNo(Integer staNo) { |
| | | // int crn = staNoToCrnMap.get(staNo); |
| | | // BasCrnp crnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", crn)); |
| | | // return crnp.getCrnSts() == 0; |
| | | // } |
| | | |
| | | |
| | | /** |
| | |
| | | |
| | | // 双深库位且浅库位有货,则需先对浅库位进行库位移转 |
| | | if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) { |
| | | // 获取浅库位,状态为S直接出,状态为R,则找到这个库位的工作档,提升优先级先出 |
| | | String shallowLoc = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint()); |
| | | LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLoc)); |
| | | if (locMast.getLocSts().equals("R")) { |
| | | List<TaskWrk> wrkMastList = taskWrkMapper.selectList(new EntityWrapper<TaskWrk>().eq("start_point", locMast.getLocNo())); |
| | | if (!wrkMastList.isEmpty()) { |
| | | TaskWrk wrkMast = wrkMastList.get(0); |
| | | wrkMast.setIoPri(99); |
| | | taskWrkMapper.updateById(wrkMast); |
| | | log.warn("{}对应浅库位有货,提升{}库位优先级",taskWrk.getStartPoint(),wrkMast.getStartPoint()); |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | taskWrkMapper.selectPakOutIoType(taskWrk.getCrnNo()); |
| | | |
| | |
| | | if (crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED && crnProtocol.getTaskNo() != 0) { |
| | | //获取入库待确认工作档 |
| | | TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crn.getId(),crnProtocol.getTaskNo().intValue()); |
| | | |
| | | if (Cools.isEmpty(taskWrk)) { |
| | | // log.error("堆垛机处于等待确认且任务完成状态,但未找到工作档。堆垛机号={},工作号={}", crn.getId(), crnProtocol.getTaskNo()); |
| | | continue; |
| | | } |
| | | |
| | | log.info("收到申请完成请求:" + taskWrk); |
| | | //获取指令ID |
| | | // Integer commandId = crnProtocol.getCommandId(); |
| | | // CommandInfo commandInfo = new CommandInfo(); |
| | |
| | | for (TaskWrk taskWrk : taskWrkService.selectReceive()) { |
| | | try { |
| | | taskWrkService.distribute(taskWrk.getTaskNo(), 9527L); |
| | | } catch (CoolException e) { |
| | | // log.info(e.getMessage()); |
| | | } catch (Exception e) { |
| | | // log.error("自动派发任务异常:"+e.getMessage()+"{" + taskWrk.toString()); |
| | | } |
| | | } |
| | | } |