|  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void adjustLocDetl2(LocDetlAdjustParam param, Long userId) { | 
 |  |  |         param.integrate(); | 
 |  |  |         LocMast locMast = locMastService.selectById(param.getLocNo()); | 
 |  |  |         if (Cools.isEmpty(locMast)) { | 
 |  |  |             throw new CoolException("库位不存在"); | 
 |  |  |         } | 
 |  |  |         if (!(locMast.getLocSts().equals("P"))) { | 
 |  |  |             throw new CoolException("当前库位不可调整!库位状态:" + locMast.getLocSts$()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         Date now = new Date(); | 
 |  |  |         List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo())); | 
 |  |  |  | 
 |  |  |         List<LocDetlAdjustParam.LocDetlAdjust> list = param.getList(); | 
 |  |  |  | 
 |  |  |         // 添加历史工作主档 | 
 |  |  |         WrkMastLog wrkMast = new WrkMastLog(); | 
 |  |  |         wrkMast.setIoTime(now); | 
 |  |  |         wrkMast.setWrkSts(5); | 
 |  |  |         wrkMast.setIoPri(13D); // 优先级 | 
 |  |  |         wrkMast.setCrnNo(locMast.getCrnNo()); | 
 |  |  |         wrkMast.setSourceLocNo(locMast.getLocNo()); | 
 |  |  |         wrkMast.setLocNo(locMast.getLocNo()); | 
 |  |  |         wrkMast.setBarcode(locMast.getBarcode()); // 托盘码 | 
 |  |  |         wrkMast.setFullPlt("Y"); // 满板:Y | 
 |  |  |         wrkMast.setPicking("N"); // 拣料 | 
 |  |  |         wrkMast.setExitMk("N"); // 退出 | 
 |  |  |         wrkMast.setEmptyMk("N"); // 空板 | 
 |  |  |         wrkMast.setLinkMis("Y"); | 
 |  |  |         // 操作人员数据 | 
 |  |  |         wrkMast.setAppeTime(now); | 
 |  |  |         wrkMast.setModiTime(now); | 
 |  |  |         wrkMast.setAppeUser(userId); | 
 |  |  |         wrkMast.setModiUser(userId); | 
 |  |  |  | 
 |  |  |         // 增删改只创建一次工作主档 | 
 |  |  |         boolean updateFlag = true; | 
 |  |  |  | 
 |  |  |         // 修改数量 | 
 |  |  |         Iterator<LocDetl> iterator = locDetls.iterator(); | 
 |  |  |         while (iterator.hasNext()) { | 
 |  |  |             LocDetl locDetl = iterator.next(); | 
 |  |  |  | 
 |  |  |             Iterator<LocDetlAdjustParam.LocDetlAdjust> iterator1 = list.iterator(); | 
 |  |  |             while (iterator1.hasNext()) { | 
 |  |  |                 LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next(); | 
 |  |  |                 if (adjust.getCount() == 0) { | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) { | 
 |  |  |                     if (!locDetl.getAnfme().equals(adjust.getCount())) { | 
 |  |  |                         // todo 盘点记录 | 
 |  |  |                         // 修改库存 | 
 |  |  |                         if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(), | 
 |  |  |                                 locDetl.getStandby1(), locDetl.getStandby2(), locDetl.getStandby3(), locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3())) { | 
 |  |  |                             throw new CoolException(locDetl.getLocNo() + "库位," + locDetl.getMatnr() + "商品," + locDetl.getBatch() + "批号修改数量失败"); | 
 |  |  |                         } | 
 |  |  |                         // 保存调整记录 | 
 |  |  |                         AdjDetl adjDetl = new AdjDetl(); | 
 |  |  |                         adjDetl.setLocNo(locDetl.getLocNo()); | 
 |  |  |                         adjDetl.setMatnr(locDetl.getMatnr()); | 
 |  |  |                         adjDetl.setBatch(locDetl.getBatch()); | 
 |  |  |                         adjDetl.setOriQty(locDetl.getAnfme()); | 
 |  |  |                         adjDetl.setAdjQty(adjust.getCount()); | 
 |  |  |                         adjDetl.setModiTime(now); | 
 |  |  |                         adjDetl.setModiUser(userId); | 
 |  |  |                         adjDetl.setAppeTime(now); | 
 |  |  |                         adjDetl.setAppeUser(userId); | 
 |  |  |                         adjDetlService.save(adjDetl, userId); | 
 |  |  |  | 
 |  |  |                         if (updateFlag) { | 
 |  |  |                             wrkMast.setWrkNo(commonService.getWorkNo(3)); | 
 |  |  |                             wrkMast.setIoType(23); | 
 |  |  |                             boolean res = wrkMastLogService.insert(wrkMast); | 
 |  |  |                             if (!res) { | 
 |  |  |                                 throw new CoolException("库存调整-修改 保存工作档失败"); | 
 |  |  |                             } | 
 |  |  |                             updateFlag = false; | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         // 添加历史工作明细 | 
 |  |  |                         WrkDetlLog wrkDetl = new WrkDetlLog(); | 
 |  |  |                         wrkDetl.sync(locDetl); | 
 |  |  |                         wrkDetl.setWrkNo(wrkMast.getWrkNo()); | 
 |  |  |                         wrkDetl.setIoTime(wrkMast.getIoTime()); | 
 |  |  |                         wrkDetl.setAnfme(adjust.getCount()); | 
 |  |  |                         wrkDetl.setAppeTime(now); | 
 |  |  |                         wrkDetl.setModiTime(now); | 
 |  |  |                         wrkMast.setAppeUser(userId); | 
 |  |  |                         wrkMast.setModiUser(userId); | 
 |  |  |                         if (!wrkDetlLogService.insert(wrkDetl)) { | 
 |  |  |                             throw new CoolException("保存工作明细失败"); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     iterator.remove(); | 
 |  |  |                     iterator1.remove(); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 修改库位状态 | 
 |  |  |         int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); | 
 |  |  |         if (locMast.getLocSts().equals("F")) { | 
 |  |  |             if (count == 0) { | 
 |  |  |                 locMast.setLocSts("D"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         if (locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O")) { | 
 |  |  |             if (count > 0) { | 
 |  |  |                 locMast.setLocSts("F"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         locMast.setModiUser(userId); | 
 |  |  |         locMast.setModiTime(now); | 
 |  |  |         if (!locMastService.updateById(locMast)) { | 
 |  |  |             throw new CoolException("更新库位状态失败"); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void cancelWrkMast(String workNo, Long userId) { | 
 |  |  |         Date now = new Date(); | 
 |  |  |         WrkMast wrkMast = wrkMastService.selectById(workNo); |