| | |
| | | if (Cools.isEmpty(param.getOutSite())) { |
| | | throw new CoolException("站点不存在"); |
| | | } |
| | | List<String> locNoOtherList = new ArrayList<>(); |
| | | List<String> locNoOtherListOne = new ArrayList<>(); |
| | | for (String locNo : param.getLocNos()) { |
| | | |
| | | //小料箱伴生出库 |
| | | if (Utils.getRow(locNo)<=8){ |
| | | String locNoOther = staNoOther(locNo); |
| | | if (!param.getLocNos().contains(locNoOther)){ |
| | | locNoOtherListOne.add(locNoOther); |
| | | } |
| | | } |
| | | |
| | | // 获取工作号 |
| | | int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type); |
| | | // 获取库位 |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | for (String locNo:locNoOtherListOne){ |
| | | // 获取工作号 |
| | | int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type); |
| | | |
| | | //伴生入库工作号 |
| | | int workNoRu = commonService.getWorkNo(0); |
| | | |
| | | // 获取库位 |
| | | LocMast locMast = locMastService.selectById(locNo); |
| | | if (Cools.isEmpty(locMast)) { |
| | | throw new CoolException(locNo+"库位不存在"); |
| | | } |
| | | if (!locMast.getLocSts().equals("D")){ |
| | | throw new CoolException("所选库位存在状态不为D的库位,库位号:"+locMast.getLocNo()+" 、当前状态:"+locMast.getLocSts()+"-"+locMast.getLocSts$()); |
| | | } |
| | | // 获取源站 |
| | | Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() |
| | | .eq("type_no", 110) |
| | | .eq("stn_no", param.getOutSite()) |
| | | .eq("crn_no", locMast.getCrnNo()); |
| | | StaDesc staDesc = staDescService.selectOne(wrapper); |
| | | Integer sourceStaNo = staDesc.getCrnStn(); |
| | | if (Cools.isEmpty(sourceStaNo)) { |
| | | throw new CoolException("检索源站失败"); |
| | | } |
| | | Date now = new Date(); |
| | | // 保存工作档 |
| | | WrkMast wrkMast = new WrkMast(); |
| | | wrkMast.setWrkNo(workNo); |
| | | wrkMast.setIoTime(now); |
| | | wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID |
| | | wrkMast.setIoType(110); // 入出库状态: 110.空板出库 |
| | | wrkMast.setIoPri(10D); |
| | | wrkMast.setSourceStaNo(sourceStaNo); // 源站 |
| | | wrkMast.setStaNo(crnStaRu(locMast.getCrnNo())); // 目标站 堆垛机入库口 |
| | | wrkMast.setCrnNo(locMast.getCrnNo()); |
| | | wrkMast.setSourceLocNo(locNo); // 源库位 |
| | | wrkMast.setFullPlt("N"); // 满板:Y |
| | | wrkMast.setPicking("N"); // 拣料 |
| | | wrkMast.setExitMk("N"); // 退出 |
| | | wrkMast.setEmptyMk("Y"); // 空板 |
| | | wrkMast.setLinkMis("N"); |
| | | wrkMast.setAppeUser(userId); |
| | | wrkMast.setAppeTime(now); |
| | | wrkMast.setModiUser(userId); |
| | | wrkMast.setModiTime(now); |
| | | wrkMast.setWorkNoOther(workNoRu); |
| | | boolean res = wrkMastService.insert(wrkMast); |
| | | if (!res) { |
| | | throw new CoolException("保存工作档失败"); |
| | | } |
| | | // 更新库位状态 D.空板 -> R.出库预约 |
| | | if (locMast.getLocSts().equals("D")){ |
| | | locMast.setLocSts("R"); |
| | | locMast.setModiUser(userId); |
| | | locMast.setModiTime(now); |
| | | if (!locMastService.updateById(locMast)) { |
| | | throw new CoolException("更新库位状态失败"); |
| | | } |
| | | } |
| | | |
| | | public String[] staNoOther(String locNo){ |
| | | String[] strings = new String[2]; |
| | | int row = Utils.getRow(locNo); |
| | | if (row==1 || row==5 ){ |
| | | strings[0] = locNo; |
| | | strings[1] = getDeepLoc2(locNo,row); |
| | | return strings; |
| | | } else if (row == 4 || row == 8){ |
| | | strings[0] = getDeepLoc2(locNo,row); |
| | | strings[1] = locNo; |
| | | return strings; |
| | | }else { |
| | | // 生成工作档 |
| | | WrkMast wrkMastRu = new WrkMast(); |
| | | wrkMastRu.setWrkNo(workNoRu); |
| | | wrkMastRu.setIoTime(new Date()); |
| | | wrkMastRu.setWrkSts(2L); // 工作状态:生成入库ID |
| | | wrkMastRu.setIoType(10); // 入出库状态:10.空板入库 |
| | | wrkMastRu.setIoPri(13D); // 优先级 |
| | | wrkMastRu.setCrnNo(wrkMast.getCrnNo()); |
| | | wrkMastRu.setSourceStaNo(wrkMast.getSourceStaNo()); |
| | | wrkMastRu.setStaNo(wrkMast.getStaNo()); |
| | | // wrkMast.setLocNo(dto.getLocNo()); |
| | | wrkMastRu.setFullPlt("N"); // 满板 |
| | | wrkMastRu.setPicking("N"); // 拣料 |
| | | wrkMastRu.setExitMk("N"); // 退出 |
| | | wrkMastRu.setEmptyMk("Y"); // 空板 |
| | | wrkMastRu.setLinkMis("Y"); |
| | | wrkMastRu.setCtnType(wrkMast.getCtnType()); // 容器类型 |
| | | // 操作人员数据 |
| | | wrkMastRu.setAppeTime(new Date()); |
| | | wrkMastRu.setModiTime(new Date()); |
| | | boolean resOther = wrkMastService.insert(wrkMastRu); |
| | | if (!resOther) { |
| | | throw new CoolException("保存工作档失败"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public Integer crnStaRu(Integer crnNo){ |
| | | switch (crnNo){ |
| | | case 1: |
| | | return 153; |
| | | case 2: |
| | | return 145; |
| | | default: |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | public String staNoOther(String locNo){ |
| | | int row = Utils.getRow(locNo); |
| | | if (row%4==0 || row%4==1){ |
| | | return getDeepLoc2(locNo,row); |
| | | }else { |
| | | return getDeepLoc(locNo,row); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取 浅库位对应的深库位号 |
| | | */ |