| | |
| | | Integer ioType = null; |
| | | // 生成工作档 |
| | | for (OutLocDto dto : dtos) { |
| | | // 如果为深库位,且对应浅库位为X.禁用,则略过此库位 |
| | | if (Utils.isDeepLoc(slaveProperties, dto.getLocNo())) { |
| | | String shallowLoc = Utils.getShallowLoc(slaveProperties, dto.getLocNo()); |
| | | if (locMastService.selectById(shallowLoc).getLocSts().equals("X")) { |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | // 判断入出库类型:101.全板出库 or 103.拣料出库 |
| | | if (ioWorkType == null) { |
| | | ioType = dto.isAll() ? 101 : 103; |
| | |
| | | throw new CoolException("站点不存在"); |
| | | } |
| | | for (String locNo : param.getLocNos()) { |
| | | // 如果为深库位,且对应浅库位为X.禁用,则略过此库位 |
| | | if (Utils.isDeepLoc(slaveProperties, locNo)) { |
| | | String shallowLoc = Utils.getShallowLoc(slaveProperties, locNo); |
| | | if (locMastService.selectById(shallowLoc).getLocSts().equals("X")) { |
| | | continue; |
| | | } |
| | | } |
| | | // 获取工作号 |
| | | int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type); |
| | | // 获取库位 |
| | |
| | | if (wrkMast.getWrkSts() < 4) { |
| | | locNo = wrkMast.getLocNo(); |
| | | locSts = "O"; |
| | | /** |
| | | * 库位转移 |
| | | * 取消后 源库位 ==>> F.在库 |
| | | * 目标库位 ===>> O.空库位 |
| | | **/ |
| | | |
| | | // 库位转移 |
| | | if (wrkMast.getIoType() == 11) { |
| | | // 库位转移:源库位 |
| | | LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo()); |
| | |
| | | throw new CoolException("操作失败,当前仓库找不到空库位"); |
| | | } |
| | | |
| | | Date now = new Date(); |
| | | // 修改工作档 |
| | | StaDesc staDesc = staDescService.queryCrnStn(targetLoc.getCrnNo()); |
| | | if (Cools.isEmpty(staDesc)) { |
| | |
| | | wrkMast.setWrkSts(2L); |
| | | wrkMast.setLocNo(targetLoc.getLocNo()); |
| | | wrkMast.setStaNo(staDesc.getCrnStn()); |
| | | wrkMast.setCrnNo(targetLoc.getCrnNo()); |
| | | wrkMast.setModiTime(now); |
| | | wrkMast.setModiUser(userId); |
| | | wrkMast.setPreHave("N"); |
| | | if (!wrkMastService.updateById(wrkMast)) { |
| | | throw new CoolException("修改工作档失败"); |
| | | } |
| | | |
| | | // 修改库位状态 O ===>>> S |
| | | if (targetLoc.getLocSts().equals("O")){ |
| | | targetLoc.setLocSts("S"); // S.入库预约 |
| | | targetLoc.setModiUser(userId); |
| | | targetLoc.setModiTime(now); |
| | | if (!locMastService.updateById(targetLoc)){ |
| | | throw new CoolException("改变库位状态失败"); |
| | | } |
| | | } else { |
| | | throw new CoolException(targetLoc.getLocNo()+"目标库位已被占用"); |
| | | } |
| | | // 禁用异常库位 |
| | | // locMast.setLocSts("X"); // X.禁用 |
| | | // locMast.setModiUser(userId); |
| | | // locMast.setModiTime(now); |
| | | // if (!locMastService.updateById(locMast)){ |
| | | // throw new CoolException("改变库位状态失败"); |
| | | // } |
| | | return targetLoc.getLocNo(); |
| | | } |
| | | |