|  |  |  | 
|---|
|  |  |  | throw new CoolException(param.getBarcode() + "数据正在进行入库"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(param.getBarcode().length()!=8){ | 
|---|
|  |  |  | throw new CoolException("条码长度不是8位===>>" + param.getBarcode()); | 
|---|
|  |  |  | if(param.getBarcode().length()!=9){ | 
|---|
|  |  |  | throw new CoolException("条码长度不是9位===>>" + param.getBarcode()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (param.getCombMats().size()>1){ | 
|---|
|  |  |  | throw new CoolException("不允许混料===>>" + param.getBarcode()); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 生成入库通知档 | 
|---|
|  |  |  | List<DetlDto> detlDtos = new ArrayList<>(); | 
|---|
|  |  |  | param.getCombMats().forEach(elem -> { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (CombParam.CombMat elem : param.getCombMats()) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //            param.getCombMats().forEach(elem -> { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 订单明细数量校验 | 
|---|
|  |  |  | OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch()); | 
|---|
|  |  |  | if (Cools.isEmpty(orderDetl)) { | 
|---|
|  |  |  | throw new CoolException("该单据中未找到对应物料明细"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (elem.getAnfme() > orderDetl.getEnableQty()) { | 
|---|
|  |  |  | throw new CoolException(orderDetl.getMatnr() + "入库数量不合法"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | throw new CoolException("修改单据作业数量失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); | 
|---|
|  |  |  | DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getManu()); | 
|---|
|  |  |  | if (DetlDto.has(detlDtos, detlDto)) { | 
|---|
|  |  |  | DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); | 
|---|
|  |  |  | assert one != null; | 
|---|
|  |  |  | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | detlDtos.add(detlDto); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | //            }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (DetlDto detlDto : detlDtos) { | 
|---|
|  |  |  | Mat mat = matService.selectByMatnr(detlDto.getMatnr()); | 
|---|
|  |  |  | if (Cools.isEmpty(mat)) { | 
|---|
|  |  |  | 
|---|
|  |  |  | waitPakin.setAppeTime(now); | 
|---|
|  |  |  | waitPakin.setModiUser(userId); | 
|---|
|  |  |  | waitPakin.setModiTime(now); | 
|---|
|  |  |  | waitPakin.setManu(detlDto.getMark()); | 
|---|
|  |  |  | if (!waitPakinService.insert(waitPakin)) { | 
|---|
|  |  |  | throw new CoolException("保存入库通知档失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String orderNo = "PACK" + snowflakeIdWorker.nextId(); | 
|---|
|  |  |  | OpenOrderPakinParam openParam = new OpenOrderPakinParam(); | 
|---|
|  |  |  | openParam.setOrderNo(orderNo); | 
|---|
|  |  |  | openParam.setOrderTime(DateUtils.convert(now)); | 
|---|
|  |  |  | openParam.setInboundDate(DateUtils.convert(now)); | 
|---|
|  |  |  | openParam.setOrderType("打包入库单"); | 
|---|
|  |  |  | openParam.setOrderDetails(detlDtos); | 
|---|
|  |  |  | openService.pakinOrderCreate(openParam); | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | //    @Transactional | 
|---|
|  |  |  | public void leftoversOut(Map<String, Object> map,Long userId) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", map.get("barcode")).eq("io_type", 103)); | 
|---|
|  |  |  | String barcode = map.get("barcode").toString(); | 
|---|
|  |  |  | String barcode2 = map.get("barcode2").toString(); | 
|---|
|  |  |  | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode).eq("io_type", 103)); | 
|---|
|  |  |  | if (Cools.isEmpty(wrkMast)) { | 
|---|
|  |  |  | throw new CoolException("未查询到拣料任务"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  | int workNo = commonService.getWorkNo(1); | 
|---|
|  |  |  | WrkMast wrkMast1 = new WrkMast(); | 
|---|
|  |  |  | wrkMast1.sync(wrkMast); | 
|---|
|  |  |  | wrkMast1.setWrkNo(workNo); | 
|---|
|  |  |  | wrkMast1.setWrkSts(2L); | 
|---|
|  |  |  | wrkMast1.setIoType(200); | 
|---|
|  |  |  | wrkMast1.setSourceStaNo(wrkMast.getStaNo() == 113 ? 111 : 117); | 
|---|
|  |  |  | wrkMast1.setStaNo(map.get("floor").hashCode() == 2 ? 204:304); | 
|---|
|  |  |  | wrkMast1.setIoTime(now); | 
|---|
|  |  |  | wrkMast1.setIoPri(13D); // 优先级:13 | 
|---|
|  |  |  | wrkMast1.setCrnNo(wrkMast.getCrnNo()); | 
|---|
|  |  |  | wrkMast1.setSourceLocNo(wrkMast.getLocNo()); // 源库位 | 
|---|
|  |  |  | wrkMast1.setFullPlt("Y"); // 满板:Y | 
|---|
|  |  |  | wrkMast1.setPicking("N"); // 拣料 | 
|---|
|  |  |  | wrkMast1.setExitMk("N"); // 退出 | 
|---|
|  |  |  | wrkMast1.setEmptyMk("N"); // 空板 | 
|---|
|  |  |  | wrkMast1.setLinkMis("N"); | 
|---|
|  |  |  | wrkMast1.setAppeUser(userId); // 操作人员数据 | 
|---|
|  |  |  | wrkMast1.setAppeTime(now); | 
|---|
|  |  |  | wrkMast1.setModiUser(userId); | 
|---|
|  |  |  | wrkMast1.setModiTime(now); | 
|---|
|  |  |  | wrkMast1.setBarcode(wrkMast.getBarcode()); | 
|---|
|  |  |  | if (!wrkMastService.insert(wrkMast1)) { | 
|---|
|  |  |  | throw new CoolException("保存工作档失败"); | 
|---|
|  |  |  | WrkMast wrkMast2 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode2).eq("io_type", 200)); | 
|---|
|  |  |  | if (Cools.isEmpty(wrkMast2)) { | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | WrkMast wrkMast1 = new WrkMast(); | 
|---|
|  |  |  | wrkMast1.sync(wrkMast); | 
|---|
|  |  |  | wrkMast1.setWrkNo(workNo); | 
|---|
|  |  |  | wrkMast1.setWrkSts(2L); | 
|---|
|  |  |  | wrkMast1.setIoType(200); | 
|---|
|  |  |  | wrkMast1.setSourceStaNo(wrkMast.getStaNo() == 113 ? 111 : 117); | 
|---|
|  |  |  | wrkMast1.setStaNo(wrkMast.getStaNo() == 113 ? 204 : 304); | 
|---|
|  |  |  | wrkMast1.setIoTime(now); | 
|---|
|  |  |  | wrkMast1.setIoPri(13D); // 优先级:13 | 
|---|
|  |  |  | wrkMast1.setCrnNo(wrkMast.getCrnNo()); | 
|---|
|  |  |  | wrkMast1.setSourceLocNo(wrkMast.getLocNo()); // 源库位 | 
|---|
|  |  |  | wrkMast1.setFullPlt("Y"); // 满板:Y | 
|---|
|  |  |  | wrkMast1.setPicking("N"); // 拣料 | 
|---|
|  |  |  | wrkMast1.setExitMk("N"); // 退出 | 
|---|
|  |  |  | wrkMast1.setEmptyMk("N"); // 空板 | 
|---|
|  |  |  | wrkMast1.setLinkMis("N"); | 
|---|
|  |  |  | wrkMast1.setAppeUser(userId); // 操作人员数据 | 
|---|
|  |  |  | wrkMast1.setAppeTime(now); | 
|---|
|  |  |  | wrkMast1.setModiUser(userId); | 
|---|
|  |  |  | wrkMast1.setModiTime(now); | 
|---|
|  |  |  | wrkMast1.setBarcode(barcode2); | 
|---|
|  |  |  | if (!wrkMastService.insert(wrkMast1)) { | 
|---|
|  |  |  | throw new CoolException("保存工作档失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("zpallet", map.get("barcode"))); | 
|---|
|  |  |  | if (Cools.isEmpty(wrkDetls)) { | 
|---|
|  |  |  | throw new CoolException("未查询到拣料任务明细"); | 
|---|