| | |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.entity.param.EmptyPlateOutParam; |
| | | import com.zy.asrs.entity.param.StatusParam; |
| | | import com.zy.asrs.mapper.WrkMastMapper; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.common.CodeRes; |
| | | import com.zy.common.model.LocTypeDto; |
| | |
| | | private WorkService workService; |
| | | @Autowired |
| | | private ApiLogService apiLogService; |
| | | @Autowired |
| | | private WrkMastMapper wrkMastMapper; |
| | | @Value("${wcs-slave.url}") |
| | | private String url; |
| | | @Value("${wcs-slave.loc}") |
| | |
| | | if (param.getFromPort().equals("101")) { |
| | | |
| | | //有空板出库时禁止入库 |
| | | int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type",110).eq("sta_no",100).notIn("wrk_sts",7)); |
| | | int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("sta_no", 100).notIn("wrk_sts", 7)); |
| | | if(wrkCount > 0){ |
| | | return Re.error("有空板出库到100站时时禁止入库"); |
| | | } |
| | |
| | | if (countLoc > 0 || countWrk > 0) { |
| | | return Re.error(CodeRes.EXIST_500); |
| | | } |
| | | }else { |
| | | } else { |
| | | //有满板出库时禁止空板入库 |
| | | int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no",100).andNew().eq("io_type",101).or().eq("io_type",110)); |
| | | if(wrkCount > 0){ |
| | | int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", 100).andNew().eq("io_type", 101).or().eq("io_type", 110)); |
| | | if (wrkCount > 0) { |
| | | return Re.error("有满板出库时禁止空板入库"); |
| | | } |
| | | |
| | | int countLoc = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 10)); |
| | | if (countLoc > 0 ) { |
| | | if (countLoc > 0) { |
| | | return Re.error("已有空板入库任务禁止在入空板"); |
| | | } |
| | | } |
| | |
| | | List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList()); |
| | | List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList()); |
| | | StartupDto dto = commonService.getLocNo(1, devpNo, matnrs.get(0), batchs.get(0), null, locTypeDto); |
| | | if(dto == null){ |
| | | if (dto == null) { |
| | | throw new CoolException("没有检索到空库位"); |
| | | } |
| | | int workNo = dto.getWorkNo(); |
| | |
| | | @ResponseBody |
| | | public Re status(@RequestBody StatusParam statusParam) { |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", statusParam.getTaskId())); |
| | | if(Cools.isEmpty(wrkMast)&&statusParam.getTaskStatus()!=8){ |
| | | return Re.error("没有找到:"+statusParam.getTaskId()+"这条任务"); |
| | | }else if(Cools.isEmpty(wrkMast)&&statusParam.getTaskStatus()==8){ |
| | | if (Cools.isEmpty(wrkMast) && statusParam.getTaskStatus() != 8) { |
| | | return Re.error("没有找到:" + statusParam.getTaskId() + "这条任务"); |
| | | } else if (Cools.isEmpty(wrkMast) && statusParam.getTaskStatus() == 8) { |
| | | return Re.ok(); |
| | | }else if(!Cools.isEmpty(wrkMast)&&statusParam.getTaskStatus()==8&&wrkMast.getIoType()==110){ |
| | | } else if (!Cools.isEmpty(wrkMast) && statusParam.getTaskStatus() == 8 && wrkMast.getIoType() == 110) { |
| | | return Re.ok(); |
| | | } |
| | | /** |
| | | /* |
| | | * 任务状态 |
| | | * 执行过程中 |
| | | * 的状态。 0- 已 接 |
| | |
| | | * 任务中断,4-放货 |
| | | * 完成,8-任务结束 |
| | | */ |
| | | if (statusParam.getTaskStatus()==0){ |
| | | if (statusParam.getTaskStatus() == 0) { |
| | | //拣料和盘点再入库判断 |
| | | if((wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) && wrkMast.getWrkSts() == 14){ |
| | | if ((wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) && wrkMast.getWrkSts() == 14) { |
| | | // LocDetl locDetl = locDetlService.selectItemByLocNo(wrkMast.getSourceLocNo()); |
| | | // List<WrkDetl> wrkDetl = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | String sourcecLocNo = wrkMast.getSourceLocNo(); |
| | | // // 获取后两位的层数 |
| | | // String layerStr = sourcecLocNo.substring(sourcecLocNo.length() - 2); |
| | | // int layer = Integer.parseInt(layerStr); |
| | | // // 判断层数 |
| | | // Short locType1 = (short) ((layer == 1) ? 1 : 2); |
| | | // LocTypeDto locTypeDto = new LocTypeDto(); |
| | | // locTypeDto.setLocType1(locType1); |
| | | // StartupDto dto = commonService.getLocNoRunPick(4, 1, 101, wrkDetl.get(0).getMatnr(), wrkDetl.get(0).getBatch(), null, 4, locTypeDto, 2); |
| | | Date now = new Date(); |
| | | wrkMast.setIoTime(now); |
| | | wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57 |
| | | wrkMast.setWrkSts(1L);//1.已接收 |
| | | wrkMast.setSourceStaNo(101); // 源站 |
| | | wrkMast.setStaNo(null); // 目标站 |
| | | wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 目标库位 = 出库时的源库位 |
| | | wrkMast.setSourceLocNo(""); // 源库位清空 |
| | | wrkMast.setLocNo(sourcecLocNo); // 目标库位 |
| | | wrkMast.setSourceLocNo(""); |
| | | wrkMast.setModiTime(now); |
| | | wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now); |
| | | |
| | | // 修改库位状态 Q.拣料/盘点/并板再入库 |
| | | LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); |
| | | locMast.setLocSts("Q"); |
| | | locMast.setModiTime(new Date()); |
| | | if (!locMastService.updateById(locMast)) { |
| | | LocMast locMast2 = locMastService.selectById(sourcecLocNo); |
| | | locMast2.setLocSts("Q"); |
| | | locMast2.setModiTime(new Date()); |
| | | if (!locMastService.updateById(locMast2)) { |
| | | |
| | | throw new CoolException("修改库位状态失败"); |
| | | } |
| | | }else{ |
| | | } else { |
| | | wrkMast.setWrkSts(1L);//1.已接收 |
| | | } |
| | | }else if (statusParam.getTaskStatus()==1){ |
| | | } else if (statusParam.getTaskStatus() == 1) { |
| | | wrkMast.setWrkSts(2L);//2.任务开始 |
| | | }else if (statusParam.getTaskStatus()==2){ |
| | | } else if (statusParam.getTaskStatus() == 2) { |
| | | wrkMast.setWrkSts(3L);//3.取货完成 |
| | | }else if (statusParam.getTaskStatus()==3){ |
| | | } else if (statusParam.getTaskStatus() == 3) { |
| | | wrkMast.setWrkSts(6L);//6.任务中断 |
| | | } else if (statusParam.getTaskStatus()==4 || statusParam.getTaskStatus()==8){ |
| | | if(wrkMast.getIoType()==1 || wrkMast.getIoType() == 10 || wrkMast.getIoType() == 11 || wrkMast.getIoType() == 53 ||wrkMast.getIoType() == 57){ |
| | | } else if (statusParam.getTaskStatus() == 4 || statusParam.getTaskStatus() == 8) { |
| | | if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10 || wrkMast.getIoType() == 11 || wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57) { |
| | | wrkMast.setWrkSts(4L);//4.入库完成 |
| | | }else if (wrkMast.getIoType()==103 || wrkMast.getIoType()==107){ |
| | | } else if (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) { |
| | | wrkMast.setWrkSts(14L);//14.已出库未确认 |
| | | }else if (wrkMast.getIoType()==101 || wrkMast.getIoType()==110){ |
| | | } else if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 110) { |
| | | wrkMast.setWrkSts(7L);//7.出库完成 |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | @GetMapping("loc") |
| | | public void loc(){ |
| | | List<LocMast> locMasts=locMastService.selectList(new EntityWrapper<LocMast>()); |
| | | List<HashMap<String,Object>> mapList=new ArrayList<>(); |
| | | public void loc() { |
| | | List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()); |
| | | List<HashMap<String, Object>> mapList = new ArrayList<>(); |
| | | for (LocMast locMast : locMasts) { |
| | | if (locMast.getLev1()!=4){ |
| | | HashMap<String,Object> map=new HashMap<>(); |
| | | map.put("warehouse","wzzy"); |
| | | map.put("posiX",locMast.getRow1()); |
| | | map.put("posiY",locMast.getBay1()); |
| | | map.put("posiZ",locMast.getLev1()); |
| | | map.put("cargoNo",locMast.getLocNo()); |
| | | map.put("type","0"); |
| | | if (locMast.getLev1() != 4) { |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | map.put("warehouse", "ddth"); |
| | | map.put("posiX", locMast.getRow1()); |
| | | map.put("posiY", locMast.getBay1()); |
| | | map.put("posiZ", locMast.getLev1()); |
| | | map.put("cargoNo", locMast.getLocNo()); |
| | | map.put("type", "0"); |
| | | mapList.add(map); |
| | | } |
| | | } |
| | | if(mapList.size()>0){ |
| | | if (mapList.size() > 0) { |
| | | String response = ""; |
| | | boolean success = false; |
| | | try { |
| | |
| | | if (jsonObject.getInteger("returnStatus").equals(0)) { |
| | | success = true; |
| | | } else { |
| | | log.error("wms同步wcs库位失败!!!url:{};request:{};response:{}", url+"/"+loc, JSON.toJSONString(mapList), response); |
| | | log.error("wms同步wcs库位失败!!!url:{};request:{};response:{}", url + "/" + loc, JSON.toJSONString(mapList), response); |
| | | throw new CoolException("wms下发任务给wcs失败"); |
| | | } |
| | | } catch (Exception e) { |
| | |
| | | // 保存接口日志 |
| | | apiLogService.save( |
| | | "wms同步wcs库位失败", |
| | | url+"/"+loc, |
| | | url + "/" + loc, |
| | | null, |
| | | "127.0.0.1", |
| | | JSON.toJSONString(mapList), |
| | | response, |
| | | success |
| | | ); |
| | | } catch (Exception e) { log.error("", e); } |
| | | } catch (Exception e) { |
| | | log.error("", e); |
| | | } |
| | | } |
| | | } |
| | | } |