|  |  | 
 |  |  |         if (Cools.isEmpty(locMast)) { | 
 |  |  |             throw new CoolException("库位不存在"); | 
 |  |  |         } | 
 |  |  |         for (LocDetlAdjustParam.LocDetlAdjust adjust : param.getList()) { | 
 |  |  |             if (Cools.isEmpty(adjust.getMatnr())) { | 
 |  |  |                 throw new CoolException(BaseRes.PARAM); | 
 |  |  |             } | 
 |  |  |             LocDetl sqlParam = new LocDetl(); | 
 |  |  |             sqlParam.setLocNo(locMast.getLocNo()); | 
 |  |  |             sqlParam.setMatnr(adjust.getMatnr()); | 
 |  |  |             LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam)); | 
 |  |  |             // 保存新库存明细 | 
 |  |  |             if (Cools.isEmpty(one)) { | 
 |  |  |                 if (adjust.getCount() == 0){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 Mat mat = matService.selectByMatnr(adjust.getMatnr()); | 
 |  |  |                 LocDetl locDetl = new LocDetl(); | 
 |  |  |                 locDetl.sync(mat); | 
 |  |  |                 locDetl.setLocNo(locMast.getLocNo()); | 
 |  |  |                 locDetl.setAnfme(adjust.getCount()); // 数量 | 
 |  |  |                 locDetl.setModiUser(userId); // 操作人员信息 | 
 |  |  |                 locDetl.setModiTime(new Date()); | 
 |  |  |                 locDetl.setAppeUser(userId); | 
 |  |  |                 locDetl.setAppeTime(new Date()); | 
 |  |  |                 if (!locDetlService.insert(locDetl)) { | 
 |  |  |                     throw new CoolException("保存库存明细失败"); | 
 |  |  |                 } | 
 |  |  |                 // 保存调整记录 | 
 |  |  |                 AdjDetl adjDetl = new AdjDetl(); | 
 |  |  |                 adjDetl.setLocNo(locDetl.getLocNo()); | 
 |  |  |                 adjDetl.setMatNo(locDetl.getMatnr()); | 
 |  |  |                 adjDetl.setOriQty(0.0D); | 
 |  |  |                 adjDetl.setAdjQty(adjust.getCount()); | 
 |  |  |                 adjDetlService.save(adjDetl, userId); | 
 |  |  |             // 修改原库存明细 | 
 |  |  |             } else { | 
 |  |  |                 // 如果数量修改,则更新库存明细 | 
 |  |  |                 if (!adjust.getCount().equals(one.getAnfme())) { | 
 |  |  |                     // 当数量被修改为 0 时,直接清除库存明细 | 
 |  |  |                     if (adjust.getCount() == 0) { | 
 |  |  |                         // 删除库存 | 
 |  |  |                         if (!locDetlService.delete(new EntityWrapper<>(one))) { | 
 |  |  |                             throw new CoolException("清除库存明细失败"); | 
 |  |  |         if (!(locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O"))) { | 
 |  |  |             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(); | 
 |  |  |  | 
 |  |  |         // 修改数量 | 
 |  |  |         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())) { | 
 |  |  |                             throw new CoolException(locDetl.getLocNo() + "库位," + locDetl.getMatnr() + "商品," + locDetl.getBatch() + "批号修改数量失败"); | 
 |  |  |                         } | 
 |  |  |                     } else { | 
 |  |  |                         LocDetl sqlParam1 = new LocDetl(); | 
 |  |  |                         sqlParam1.setAnfme(adjust.getCount()); | 
 |  |  |                         sqlParam1.setModiTime(new Date()); | 
 |  |  |                         sqlParam1.setModiUser(userId); | 
 |  |  |                         if (!locDetlService.update(sqlParam1, new EntityWrapper<LocDetl>() | 
 |  |  |                                 .eq("loc_no", locMast.getLocNo()) | 
 |  |  |                                 .eq("matnr", adjust.getMatnr()))) { | 
 |  |  |                             throw new CoolException("修改库存明细失败"); | 
 |  |  |                         } | 
 |  |  |                         // 保存调整记录 | 
 |  |  |                         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); | 
 |  |  |                     } | 
 |  |  |                     // 保存调整记录 | 
 |  |  |                     AdjDetl adjDetl = new AdjDetl(); | 
 |  |  |                     adjDetl.setLocNo(locMast.getLocNo()); | 
 |  |  |                     adjDetl.setMatNo(adjust.getMatnr()); | 
 |  |  |                     adjDetl.setOriQty(one.getAnfme()); | 
 |  |  |                     adjDetl.setAdjQty(adjust.getCount()); | 
 |  |  |                     adjDetlService.save(adjDetl, userId); | 
 |  |  |                     iterator.remove(); | 
 |  |  |                     iterator1.remove(); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo())); | 
 |  |  |         if (locDetls.isEmpty()) { | 
 |  |  |             locMast.setLocSts("D"); | 
 |  |  |             locMast.setModiUser(userId); | 
 |  |  |             locMast.setModiTime(new Date()); | 
 |  |  |             if (!locMastService.updateById(locMast)) { | 
 |  |  |                 throw new CoolException("更新库位状态失败"); | 
 |  |  |  | 
 |  |  |         // 删除库存 | 
 |  |  |         for (LocDetl locDetl : locDetls) { | 
 |  |  |             // todo 盘点记录 | 
 |  |  |             if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) { | 
 |  |  |                 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(0.0D); | 
 |  |  |             adjDetl.setModiTime(now); | 
 |  |  |             adjDetl.setModiUser(userId); | 
 |  |  |             adjDetl.setAppeTime(now); | 
 |  |  |             adjDetl.setAppeUser(userId); | 
 |  |  |             adjDetlService.save(adjDetl, userId); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 添加库存 | 
 |  |  |         for (LocDetlAdjustParam.LocDetlAdjust adjust : list) { | 
 |  |  |             if (adjust.getCount() == 0.0D) { continue; } | 
 |  |  |             Mat mat = matService.selectByMatnr(adjust.getMatnr()); | 
 |  |  |             LocDetl locDetl = new LocDetl(); | 
 |  |  |             locDetl.sync(mat); | 
 |  |  |             locDetl.setLocNo(locMast.getLocNo()); | 
 |  |  |             locDetl.setAnfme(adjust.getCount()); // 数量 | 
 |  |  |             locDetl.setModiUser(userId); // 操作人员信息 | 
 |  |  |             locDetl.setModiTime(now); | 
 |  |  |             locDetl.setAppeUser(userId); | 
 |  |  |             locDetl.setAppeTime(now); | 
 |  |  |             if (!locDetlService.insert(locDetl)) { | 
 |  |  |                 throw new CoolException("保存库存明细失败"); | 
 |  |  |             } | 
 |  |  |             // 保存调整记录 | 
 |  |  |             AdjDetl adjDetl = new AdjDetl(); | 
 |  |  |             adjDetl.setLocNo(locMast.getLocNo()); | 
 |  |  |             adjDetl.setMatnr(adjust.getMatnr()); | 
 |  |  |             adjDetl.setBatch(adjust.getBatch()); | 
 |  |  |             adjDetl.setOriQty(0.0D); | 
 |  |  |             adjDetl.setAdjQty(adjust.getCount()); | 
 |  |  |             adjDetl.setModiTime(now); | 
 |  |  |             adjDetl.setModiUser(userId); | 
 |  |  |             adjDetl.setAppeTime(now); | 
 |  |  |             adjDetl.setAppeUser(userId); | 
 |  |  |             adjDetlService.save(adjDetl, userId); | 
 |  |  |         } | 
 |  |  |         // 修改库位状态 | 
 |  |  |         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(new Date()); | 
 |  |  |         if (!locMastService.updateById(locMast)) { | 
 |  |  |             throw new CoolException("更新库位状态失败"); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void cancelWrkMast(String workNo, Long userId) { |