| | |
| | | import com.core.common.R; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.domain.enums.TaskStatusType; |
| | | import com.zy.asrs.entity.StaDesc; |
| | | import com.zy.asrs.entity.TaskWrk; |
| | | import com.zy.asrs.entity.ToWmsDTO; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.entity.param.TaskOverParam; |
| | | import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam; |
| | | import com.zy.asrs.entity.param.taskCreateParam; |
| | | import com.zy.asrs.service.ApiLogService; |
| | | import com.zy.asrs.service.OpenService; |
| | | import com.zy.asrs.service.StaDescService; |
| | | import com.zy.asrs.service.TaskWrkService; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.core.DevpThread; |
| | |
| | | @Autowired |
| | | private StaDescService staDescService; |
| | | |
| | | @Autowired |
| | | private BasCrnpService basCrnpService; |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | |
| | | |
| | | |
| | | @Value("${wms.url}") |
| | |
| | | |
| | | @Override |
| | | public R taskCreate(taskCreateParam param) { |
| | | //禁用堆垛机后不可下发任务 |
| | | // BasCrnp basCrnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", param.getCrn())); |
| | | // if ((param.getIoType() == 3 || param.getIoType() == 1 ) && basCrnp.getInEnable().equals("N")){ |
| | | // throw new CoolException("生成任务失败,堆垛机不可用"); |
| | | // } else if (param.getIoType() == 2 && basCrnp.getOutEnable().equals("N")) { |
| | | // throw new CoolException("生成任务失败,堆垛机不可用"); |
| | | // } |
| | | //禁用库位后不可下发出库任务 |
| | | if (param.getIoType() == 2){ |
| | | String wcsLocNo = Utils.getWcsLocNo(param.getStartPoint()); |
| | | LocMast locMast = locMastService.selectByLocNo(wcsLocNo); |
| | | if (locMast.getLocSts().equals("J")){ |
| | | throw new CoolException("生成出库任务失败,库位被禁用"); |
| | | } |
| | | } |
| | | |
| | | TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo()); |
| | | if (taskWrk != null) { |
| | | throw new CoolException(param.getTaskNo() + "任务已存在,请勿重复提交"); |
| | |
| | | |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | |
| | | apiLogService.save("wms请求入库码头接口" |
| | | apiLogService.save("请求入库码头接口" |
| | | ,wmsUrl+"wcsManager/wcsInterface/inboundTaskApply" |
| | | ,null |
| | | ,"127.0.0.1" |
| | | ,JSON.toJSONString(param) |
| | | ,JSON.toJSONString(toWmsDTO) |
| | | ,response |
| | | ,true |
| | | ); |
| | |
| | | staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() |
| | | .eq("crn_no",data.getTaskTunnel()) |
| | | .eq("type_no",1) |
| | | .lt("crn_stn",200)); |
| | | .lt("stn_no",200)); |
| | | }else if (param.getWharfSource().contains("H")){ |
| | | staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() |
| | | .eq("crn_no",data.getTaskTunnel()) |
| | | .eq("type_no",1) |
| | | .lt("stn_no",400) |
| | | .gt("stn_no",200)); |
| | | }else { |
| | | staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() |
| | | .eq("crn_no",data.getTaskTunnel()) |
| | | .eq("type_no",1) |
| | | .ge("crn_stn",200)); |
| | | .lt("stn_no",500) |
| | | .ge("stn_no",400)); |
| | | } |
| | | map1.put("taskTunnel", staDesc.getStnDesc()); |
| | | //map1.put("taskTunnel", "J-1104"); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void getAgvTaskOver(TaskOverParam param) { |
| | | public R getAgvTaskOver(TaskOverParam param) { |
| | | // 根据输送线plc遍历 |
| | | for (DevpSlave devp : slaveProperties.getDevp()) { |
| | | StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() |
| | | .eq("stn_desc", param.getWharfCode())); |
| | | if (Cools.isEmpty(staDesc)){ |
| | | throw new RuntimeException("未查询到站点信息"); |
| | | throw new CoolException("未查询到站点信息"); |
| | | } |
| | | // 获取入库站信息 |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | |
| | | staProtocol.setStaNo((short)0); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol)); |
| | | if (result) { |
| | | |
| | | return R.ok("取货完成"); |
| | | } else { |
| | | throw new RuntimeException("agv返回完成后,命令下发失败"); |
| | | throw new CoolException("agv返回完成后,命令下发失败"); |
| | | } |
| | | }else { |
| | | return R.error("取货站点状态有误,有物信号:"+staProtocol.isLoading() |
| | | +",车辆信号:"+staProtocol.isCar()+",工作号:"+staProtocol.getWorkNo()); |
| | | } |
| | | }else { |
| | | for (DevpSlave.Sta inSta : devp.getInSta()) { |
| | |
| | | staProtocol.setStaNo(inSta.getStaNo().shortValue()); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol)); |
| | | if (result) { |
| | | |
| | | return R.ok("放货完成"); |
| | | } else { |
| | | throw new RuntimeException("agv返回完成后,命令下发失败"); |
| | | throw new CoolException("agv返回完成后,命令下发失败"); |
| | | } |
| | | }else { |
| | | return R.error("放货站点状态有误,有物信号:"+staProtocol.isLoading() |
| | | +",车辆信号:"+staProtocol.isCar()+",工作号:"+staProtocol.getWorkNo()); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return R.ok(); |
| | | |
| | | } |
| | | |
| | |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | Short workNo = staProtocol.getWorkNo(); |
| | | if (workNo == 0 && !staProtocol.isLoading()){ |
| | | if (workNo == 0 && !staProtocol.isLoading() && staProtocol.isAutoing()){ |
| | | if (Cools.isEmpty( map.get(inSta.getStaNo()))){ |
| | | continue; |
| | | } |
| | | BasCrnp crnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", map.get(inSta.getStaNo()))); |
| | | if (Cools.isEmpty(crnp)){ |
| | | continue; |
| | | } |
| | | if (crnp.getInEnable().equals("N")){ |
| | | continue; |
| | | } |
| | | if (crnp.getCrnSts()!=3){ |
| | | continue; |
| | | } |
| | | list.add( map.get(inSta.getStaNo())); |
| | |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | Short workNo = staProtocol.getWorkNo(); |
| | | if (workNo == 0 && !staProtocol.isLoading()){ |
| | | if (workNo == 0 && !staProtocol.isLoading() && staProtocol.isAutoing()){ |
| | | if (Cools.isEmpty( map.get(inSta.getStaNo()))){ |
| | | continue; |
| | | } |
| | | BasCrnp crnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", map.get(inSta.getStaNo()))); |
| | | if (Cools.isEmpty(crnp)){ |
| | | continue; |
| | | } |
| | | if (crnp.getInEnable().equals("N")){ |
| | | continue; |
| | | } |
| | | if (crnp.getCrnSts()!=3){ |
| | | continue; |
| | | } |
| | | list.add( map.get(inSta.getStaNo())); |
| | | } |
| | | } |