| | |
| | | @Override |
| | | @Transactional |
| | | public void comb(CombParam param, Long userId) { |
| | | if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) { |
| | | if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) { |
| | | throw new CoolException(BaseRes.PARAM); |
| | | } |
| | | // 判断是否有相同条码的数据 |
| | | if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>(). |
| | | eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) { |
| | | throw new CoolException(param.getBarcode() + "数据正在进行入库"); |
| | | throw new CoolException(param.getBarcode() + "数据组托档中已存在"); |
| | | } |
| | | |
| | | int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode())); |
| | | int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode())); |
| | | if (countLoc > 0 || countWrk > 0) { |
| | | throw new CoolException("工作档/库存条码数据已存在===>>" + param.getBarcode()); |
| | | // int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()) |
| | | // .last(" wrk_no IN ( SELECT wrk_no FROM asr_wrk_mast WHERE wrk_sts != 15 )")); |
| | | |
| | | if (countLoc > 0 ) { |
| | | throw new CoolException("库存条码数据已存在===>>" + param.getBarcode()); |
| | | } |
| | | if (countWrk > 0) { |
| | | throw new CoolException("工作档条码数据已存在===>>" + param.getBarcode()); |
| | | } |
| | | |
| | | Date now = new Date(); |
| | |
| | | |
| | | for (DetlDto detlDto : detlDtos) { |
| | | Mat mat = matService.selectByMatnr(detlDto.getMatnr()); |
| | | if (Cools.isEmpty(detlDto.getBatch())){ |
| | | detlDto.setBatch(""); |
| | | } |
| | | if (Cools.isEmpty(mat)) { |
| | | throw new CoolException(detlDto.getMatnr() + "商品档案不存在"); |
| | | } |
| | |
| | | waitPakin.setAppeTime(now); |
| | | waitPakin.setModiUser(userId); |
| | | waitPakin.setModiTime(now); |
| | | waitPakin.setBatch(mat.getBarcode()); //批次 |
| | | if (!waitPakinService.insert(waitPakin)) { |
| | | throw new CoolException("保存入库通知档失败"); |
| | | } |
| | |
| | | throw new CoolException(combMat.getMatnr() + ":商品数量有误!"); |
| | | } |
| | | if (Cools.isEmpty(combMat.getBatch())){ |
| | | throw new CoolException(combMat.getMatnr() + ":商品批号有误!"); |
| | | // throw new CoolException(combMat.getMatnr() + ":商品批号有误!"); |
| | | } |
| | | ManLocDetl manLocDetl = new ManLocDetl(); |
| | | manLocDetl.setLocNo(locno); |
| | | manLocDetl.setNodeId(node.getId()); |
| | | manLocDetl.setMaktx(mat.getMaktx()); |
| | | manLocDetl.setMatnr(mat.getMatnr()); |
| | | manLocDetl.setBatch(combMat.getBatch()); |
| | | manLocDetl.setBatch(Cools.isEmpty(combMat.getBatch()) ? "" : combMat.getBatch()); |
| | | manLocDetl.setAnfme(combMat.getAnfme()); |
| | | manLocDetl.setModiTime(now); |
| | | if (!manLocDetlService.insert(manLocDetl)) { |
| | |
| | | throw new CoolException(locDetl.getLocNo() + "库位不是在库状态"); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void createEmptyWrk(String barcode, Long userId) { |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode)); |
| | | if (!Cools.isEmpty(wrkMast)){ |
| | | throw new CoolException("托盘编号" + barcode + "已存在工作档"); |
| | | } |
| | | List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode)); |
| | | if (!Cools.isEmpty(waitPakins)){ |
| | | throw new CoolException("托盘编号" + barcode + "已组托"); |
| | | } |
| | | LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("barcode", barcode)); |
| | | if (!locMast.getLocSts().equals("O")){ |
| | | throw new CoolException("托盘编号" + barcode + "库位状态不是空库位"); |
| | | } |
| | | int workNo = commonService.getWorkNo(0); |
| | | Date now = new Date(); |
| | | // 生成工作档 |
| | | WrkMast emptyWrkMast = new WrkMast(); |
| | | emptyWrkMast.setWrkNo(workNo); |
| | | emptyWrkMast.setIoTime(new Date()); |
| | | emptyWrkMast.setWrkSts(2L); // 工作状态:生成入库ID |
| | | emptyWrkMast.setIoType(10); // 入出库状态:1.空托盘入库 |
| | | emptyWrkMast.setIoPri(30D); // 优先级 |
| | | emptyWrkMast.setCrnNo(1); |
| | | emptyWrkMast.setSourceStaNo(101); |
| | | emptyWrkMast.setStaNo(0); |
| | | emptyWrkMast.setLocNo(locMast.getLocNo()); |
| | | emptyWrkMast.setBarcode(barcode); // 托盘码 |
| | | emptyWrkMast.setFullPlt("N"); // 满板:N |
| | | emptyWrkMast.setPicking("N"); // 拣料 |
| | | emptyWrkMast.setExitMk("N"); // 退出 |
| | | emptyWrkMast.setEmptyMk("Y"); // 空板 |
| | | emptyWrkMast.setLinkMis("Y"); |
| | | emptyWrkMast.setCtnType(0); // 容器类型 |
| | | // 操作人员数据 |
| | | emptyWrkMast.setAppeTime(now); |
| | | emptyWrkMast.setModiTime(now); |
| | | emptyWrkMast.setModiUser(userId); |
| | | emptyWrkMast.setAppeUser(userId); |
| | | boolean res = wrkMastService.insert(emptyWrkMast); |
| | | if (!res) { |
| | | throw new CoolException("保存空托盘入库工作档失败"); |
| | | } |
| | | |
| | | // 更新源站点信息 |
| | | BasDevp sourceStaNo = basDevpService.checkSiteStatus(101, true); |
| | | sourceStaNo.setWrkNo(emptyWrkMast.getWrkNo()); |
| | | sourceStaNo.setModiTime(now); |
| | | if (!basDevpService.updateById(sourceStaNo)){ |
| | | throw new CoolException("更新源站失败"); |
| | | } |
| | | |
| | | // 更新目标库位状态 |
| | | locMast.setLocSts("S"); // S.入库预约 |
| | | locMast.setModiTime(now); |
| | | if (!locMastService.updateById(locMast)){ |
| | | throw new CoolException("改变库位状态失败"); |
| | | } |
| | | } |
| | | } |