|  |  | 
 |  |  |     private AdjDetlService adjDetlService; | 
 |  |  |     @Autowired | 
 |  |  |     private CheckRecordService checkRecordService; | 
 |  |  |     @Autowired | 
 |  |  |     private LocDetlService locDetlService; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  | 
 |  |  |             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() + "数据正在进行入库"); | 
 |  |  | //        } | 
 |  |  |         if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>(). | 
 |  |  |                 eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) { | 
 |  |  |             throw new CoolException(param.getBarcode() + "数据正在进行入库"); | 
 |  |  |                 eq("zpallet", param.getBarcode())) > 0) { | 
 |  |  |             throw new CoolException(param.getBarcode() + "组托数据已存在"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // todo: 不下线重新入库 | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode())); | 
 |  |  |         int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",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 (wrkMast != null && wrkMast.getWrkSts()==18) countWrk = 0; | 
 |  |  |         if (countLoc > 0 || countWrk > 0) { | 
 |  |  |             throw new CoolException("工作档/库存条码数据已存在===>>" + param.getBarcode()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         Date now = new Date(); | 
 |  |  |         int matType = 0; | 
 |  |  |  | 
 |  |  |         // 无单组托 | 
 |  |  |         if (Cools.isEmpty(param.getOrderNo())) { | 
 |  |  | 
 |  |  |             // 生成入库通知档 | 
 |  |  |             List<DetlDto> detlDtos = new ArrayList<>(); | 
 |  |  |             param.getCombMats().forEach(elem -> { | 
 |  |  |                 DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getMemo()); | 
 |  |  |                 elem.setBatch(""); | 
 |  |  |                 DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getMemo(), elem.getCstmr()); | 
 |  |  |  | 
 |  |  |                 if (Cools.isEmpty(detlDto.getBatch())){ | 
 |  |  |                     String batch = DateUtils.convert(new Date(),DateUtils.yyyyMMdd); | 
 |  |  |                     detlDto.setBatch(batch); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 if (DetlDto.has(detlDtos, detlDto)) { | 
 |  |  |                     DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); | 
 |  |  |                     assert one != null; | 
 |  |  | 
 |  |  |                 } | 
 |  |  |                 WaitPakin waitPakin = new WaitPakin(); | 
 |  |  |                 waitPakin.sync(mat); | 
 |  |  |                 waitPakin.setBatch(detlDto.getBatch()); | 
 |  |  |                 waitPakin.setBatch(""); | 
 |  |  |                 waitPakin.setZpallet(param.getBarcode());   // 托盘码 | 
 |  |  |                 waitPakin.setIoStatus("N");     // 入出状态 | 
 |  |  |                 waitPakin.setAnfme(detlDto.getAnfme());  // 数量 | 
 |  |  | 
 |  |  |                 waitPakin.setModiTime(now); | 
 |  |  |                 waitPakin.setMemo(detlDto.getMemo()); | 
 |  |  |                 waitPakin.setFrozen(param.getFrozen()); // 是否冻结 | 
 |  |  |                 waitPakin.setManu(detlDto.getCstmr()); | 
 |  |  |                 waitPakin.setMatType(mat.getMatType());//物料类型 | 
 |  |  | //                if (Cools.isEmpty(mat.getMatType())){ | 
 |  |  | //                    throw new CoolException("物料类型异常"+mat.getMatnr()); | 
 |  |  | //                }else { | 
 |  |  | //                    if (matType == 0){ | 
 |  |  | //                        matType = mat.getMatType(); | 
 |  |  | //                    }else if (matType!=mat.getMatType()){ | 
 |  |  | //                        throw new CoolException("请组托同一类型的物料"); | 
 |  |  | //                    } | 
 |  |  | //                } | 
 |  |  |                 if (!waitPakinService.insert(waitPakin)) { | 
 |  |  |                     throw new CoolException("保存入库通知档失败"); | 
 |  |  |                 } | 
 |  |  | 
 |  |  |             // 生成入库通知档 | 
 |  |  |             List<DetlDto> detlDtos = new ArrayList<>(); | 
 |  |  |             param.getCombMats().forEach(elem -> { | 
 |  |  |  | 
 |  |  |                 elem.setBatch(""); | 
 |  |  |                 // 订单明细数量校验 | 
 |  |  |                 OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch()); | 
 |  |  |                 if (elem.getAnfme() > orderDetl.getEnableQty()) { | 
 |  |  | 
 |  |  |                 WaitPakin waitPakin = new WaitPakin(); | 
 |  |  |                 waitPakin.sync(mat); | 
 |  |  |                 waitPakin.setOrderNo(order.getOrderNo());   // 单据编号 | 
 |  |  |                 waitPakin.setBatch(detlDto.getBatch());     // 序列码 | 
 |  |  |                 waitPakin.setBatch("");     // 序列码 | 
 |  |  |                 waitPakin.setZpallet(param.getBarcode());   // 托盘码 | 
 |  |  |                 waitPakin.setIoStatus("N");     // 入出状态 | 
 |  |  |                 waitPakin.setAnfme(detlDto.getAnfme());  // 数量 | 
 |  |  | 
 |  |  |                 waitPakin.setAppeTime(now); | 
 |  |  |                 waitPakin.setModiUser(userId); | 
 |  |  |                 waitPakin.setModiTime(now); | 
 |  |  |                 waitPakin.setMatType(mat.getMatType());//物料类型 | 
 |  |  | //                if (Cools.isEmpty(mat.getMatType())){ | 
 |  |  | //                    throw new CoolException("物料类型异常"+mat.getMatnr()); | 
 |  |  | //                }else { | 
 |  |  | //                    if (matType == 0){ | 
 |  |  | //                        matType = mat.getMatType(); | 
 |  |  | //                    }else if (matType!=mat.getMatType()){ | 
 |  |  | //                        throw new CoolException("请组托同一类型的物料"); | 
 |  |  | //                    } | 
 |  |  | //                } | 
 |  |  |                 if (!waitPakinService.insert(waitPakin)) { | 
 |  |  |                     throw new CoolException("保存入库通知档失败"); | 
 |  |  |                 } | 
 |  |  | 
 |  |  |     } | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void adjustNew(MobileAdjustParam param, Long userId) { | 
 |  |  |     public void adjustNew(MobileAdjustParam param, Boolean re, Long userId) { | 
 |  |  |         WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode())); | 
 |  |  |         if (Cools.isEmpty(wrkMast)){ | 
 |  |  |             throw new CoolException("托盘码:"+param.getBarcode()+" 无有效工作档"); | 
 |  |  | 
 |  |  |             WrkDetl wrkDetlOld = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>() | 
 |  |  |                     .eq("wrk_no", wrkMast.getWrkNo()) | 
 |  |  |                     .eq("matnr",wrkDetl.getMatnr()) | 
 |  |  |                     .eq("batch",wrkDetl.getBatch()) | 
 |  |  | //                    .eq("batch",Cools.isEmpty(wrkDetl.getBatch())?"":wrkDetl.getBatch()) | 
 |  |  |             ); | 
 |  |  | //            LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>() | 
 |  |  | //                            .eq("loc_no", wrkMast.getLocNo()) | 
 |  |  | //                            .eq("matnr",wrkDetl.getMatnr()) | 
 |  |  | //                            .eq("batch",wrkDetl.getBatch()) | 
 |  |  | //            ); | 
 |  |  |  | 
 |  |  |             adjDetl.setMatnr(wrkDetl.getMatnr()); | 
 |  |  |             adjDetl.setBatch(wrkDetl.getBatch()); | 
 |  |  |             adjDetl.setAdjQty(wrkDetl.getAnfme()); | 
 |  |  | 
 |  |  |             checkRecord.setConfirmQty(wrkDetl.getAnfme()); | 
 |  |  |             if (Cools.isEmpty(wrkDetlOld)){ | 
 |  |  |                 wrkDetl.setWrkNo(wrkMast.getWrkNo()); | 
 |  |  |                 wrkDetl.setZpallet(wrkMast.getBarcode()); | 
 |  |  |                 wrkDetlService.insert(wrkDetl); | 
 |  |  |                 recordRecordLog=recordRecordLog+"\n"+"新增一条明细:"+"\t商品编号:"+wrkDetl.getMatnr()+"\t批号:"+wrkDetl.getBatch()+"\t数量:"+wrkDetl.getAnfme(); | 
 |  |  |                 adjDetl.setOriQty(0.0); | 
 |  |  |                 adjDetlService.insert(adjDetl); | 
 |  |  |                 checkRecord.setAnfme(0.0); | 
 |  |  |                 checkRecordService.insert(checkRecord); | 
 |  |  |                 if (!re) { | 
 |  |  |                     checkRecordService.insert(checkRecord); | 
 |  |  |                 } | 
 |  |  |             }else if (wrkDetlOld.getAnfme()!=wrkDetl.getAnfme()){ | 
 |  |  |                 wrkDetlService.updateAnfme(wrkDetl.getAnfme(),wrkMast.getWrkNo(),wrkDetl.getMatnr(),wrkDetl.getBatch()); | 
 |  |  |                 recordRecordLog=recordRecordLog+"\n"+"更新一条明细:"+"\t商品编号:"+wrkDetl.getMatnr()+"\t批号:"+wrkDetl.getBatch()+"\t原数量:"+wrkDetlOld.getAnfme()+"\t新数量:"+wrkDetl.getAnfme(); | 
 |  |  | 
 |  |  |                 adjDetlService.insert(adjDetl); | 
 |  |  |  | 
 |  |  |                 checkRecord.setAnfme(wrkDetlOld.getAnfme()); | 
 |  |  |                 checkRecordService.insert(checkRecord); | 
 |  |  |                 if (!re) { | 
 |  |  |                     checkRecordService.insert(checkRecord); | 
 |  |  |                 } | 
 |  |  |             }else if (wrkDetlOld.getAnfme()==wrkDetl.getAnfme()){ | 
 |  |  |                 recordRecordLog=recordRecordLog+"\n"+"一条明细保持不变:"+"\t商品编号:"+wrkDetl.getMatnr()+"\t批号:"+wrkDetl.getBatch()+"\t数量:"+wrkDetlOld.getAnfme(); | 
 |  |  |                 continue; | 
 |  |  | 
 |  |  |                 waitPakin.setAppeTime(now); | 
 |  |  |                 waitPakin.setModiUser(userId); | 
 |  |  |                 waitPakin.setModiTime(now); | 
 |  |  |                 waitPakin.setMatType(mat.getMatType());//物料类型 | 
 |  |  |                 if (!waitPakinService.insert(waitPakin)) { | 
 |  |  |                     throw new CoolException("保存入库通知档失败"); | 
 |  |  |                 } |