|  |  | 
 |  |  | import com.zy.asrs.service.*; | 
 |  |  | import com.zy.asrs.utils.OrderInAndOutUtil; | 
 |  |  | import com.zy.common.model.WrkDto; | 
 |  |  | import com.zy.common.model.enumUtils.OrderEnumVo; | 
 |  |  | import com.zy.common.utils.Synchro; | 
 |  |  | import com.zy.common.web.BaseController; | 
 |  |  | import com.zy.nc.entity.NccJcQilibcBarcodeflowWms; | 
 |  |  | 
 |  |  |                     LinkedList<CombParam.CombMat> combMats = new LinkedList<>(); | 
 |  |  |                     for (OrderDetl orderDetl : orderDetls) { | 
 |  |  |                         CombParam.CombMat combMat = new CombParam.CombMat(); | 
 |  |  |                         Synchro.Copy(orderDetl, combMat); | 
 |  |  |                         combMat.setMatnr(orderDetl.getMatnr()); | 
 |  |  |                         combMat.setBatch(orderDetl.getBatch()); | 
 |  |  |                         combMat.setAnfme(orderDetl.getAnfme() - orderDetl.getWorkQty()); | 
 |  |  |                         combMat.setMaktx(orderDetl.getMaktx()); | 
 |  |  |                         combMat.setSpecs(orderDetl.getSpecs()); | 
 |  |  |                         combMat.setEnableQty(orderDetl.getAnfme() - orderDetl.getWorkQty()); | 
 |  |  |                         combMats.add(combMat); | 
 |  |  |                     } | 
 |  |  |                     combParam.setCombMats(combMats); | 
 |  |  | 
 |  |  |         MatParam matParam = new MatParam(); | 
 |  |  |         Synchro.Copy(mat, matParam); | 
 |  |  |         matParam.setBatch(nccJcQilibcBarcodeflowWms.getVbatchcode()); | 
 |  |  |         matParam.setAnfme(12D); | 
 |  |  |         matParam.setAnfme(nccJcQilibcBarcodeflowWms.getNastnum() == null ? 0.0D : nccJcQilibcBarcodeflowWms.getNastnum().doubleValue()); | 
 |  |  |         return R.ok().add(matParam); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @RequestMapping("/checkDetl/auth/v2") | 
 |  |  |     @ManagerAuth | 
 |  |  |     public R getCheckDetlV2(@RequestParam(required = false) String barcode) { | 
 |  |  |         if (Cools.isEmpty(barcode)) { | 
 |  |  |             return R.ok(); | 
 |  |  |         } | 
 |  |  |         WrkMast wrkMast = wrkMastService.selectByBarcode(barcode); | 
 |  |  |         if (wrkMast != null && (wrkMast.getIoType() == 107 || wrkMast.getIoType() == 57)) { | 
 |  |  |             List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); | 
 |  |  |             if (!Cools.isEmpty(wrkDetls)) { | 
 |  |  |                 MobileAdjustResult result = new MobileAdjustResult(); | 
 |  |  |                 result.setBarcode(barcode); | 
 |  |  |                 result.setWrkNo(wrkMast.getWrkNo()); | 
 |  |  |                 result.setWrkDetls(wrkDetls); | 
 |  |  |                 return R.ok().add(result); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @RequestMapping("/adjust/auth") | 
 |  |  |     @ManagerAuth(memo = "盘点") | 
 |  |  |     public R adjust(@RequestBody MobileAdjustParam combParam) { | 
 
 |  |  | 
 |  |  |     @Data | 
 |  |  |     public static class CombMat { | 
 |  |  |  | 
 |  |  |         // 条码 | 
 |  |  |         private String  vbarcode; | 
 |  |  |         private Long id; | 
 |  |  |  | 
 |  |  |         private String orderNo; | 
 |  |  |  | 
 |  |  | 
 |  |  |         // 物料数量 | 
 |  |  |         private Double anfme; | 
 |  |  |  | 
 |  |  |         // 物料数量 | 
 |  |  |         private Double enableQty; | 
 |  |  |  | 
 |  |  |         // 商品名称 | 
 |  |  |         private String maktx; | 
 |  |  |  | 
 
 |  |  | 
 |  |  |      * 备注 | 
 |  |  |      */ | 
 |  |  |     private String memo; | 
 |  |  |     /** | 
 |  |  |      * 备注 | 
 |  |  |      */ | 
 |  |  |     private Integer times = 0; | 
 |  |  |  | 
 |  |  | } | 
 
 |  |  | 
 |  |  |  | 
 |  |  |     private Integer staNo; | 
 |  |  |  | 
 |  |  |     private String barcode; | 
 |  |  |  | 
 |  |  |     private Integer wrkNo; | 
 |  |  |  | 
 |  |  |     private List<WrkDetl> wrkDetls; | 
 
 |  |  | 
 |  |  |  | 
 |  |  |     private Integer staNo; | 
 |  |  |  | 
 |  |  |     private String barcode; | 
 |  |  |  | 
 |  |  |     private Integer wrkNo; | 
 |  |  |  | 
 |  |  |     private List<WrkDetl> wrkDetls; | 
 
 |  |  | 
 |  |  |  | 
 |  |  |     void turnMatLocDetl(EmptyPlateOutParam param, Long userId); | 
 |  |  |  | 
 |  |  |     void adjustLocDetl2(LocDetlAdjustParam param, Long userId); | 
 |  |  |  | 
 |  |  | } | 
 
 |  |  | 
 |  |  | import com.zy.common.model.DetlDto; | 
 |  |  | import com.zy.common.model.enums.WorkNoType; | 
 |  |  | import com.zy.common.service.CommonService; | 
 |  |  | import com.zy.nc.entity.NccJcQilibcBarcodeflowWms; | 
 |  |  | import com.zy.nc.service.NccJcQilibcBarcodeflowWmsService; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | 
 |  |  |     private BasDevpService basDevpService; | 
 |  |  |     @Autowired | 
 |  |  |     private WrkMastService wrkMastService; | 
 |  |  |     @Autowired | 
 |  |  |     private WorkService workService; | 
 |  |  |     @Autowired | 
 |  |  |     private WrkDetlService wrkDetlService; | 
 |  |  |     @Autowired | 
 |  |  | 
 |  |  |                 waitPakin.setAppeTime(now); | 
 |  |  |                 waitPakin.setModiUser(userId); | 
 |  |  |                 waitPakin.setModiTime(now); | 
 |  |  |                 waitPakin.setBoxType1(detlDto.getBoxType1()); | 
 |  |  |                 waitPakin.setBoxType2(detlDto.getBoxType2()); | 
 |  |  |                 waitPakin.setBoxType3(detlDto.getBoxType3()); | 
 |  |  |                 waitPakin.setStandby1(detlDto.getStandby1()); | 
 |  |  |                 waitPakin.setStandby2(detlDto.getStandby2()); | 
 |  |  |                 waitPakin.setStandby3(detlDto.getStandby3()); | 
 |  |  |                 if (!waitPakinService.insert(waitPakin)) { | 
 |  |  |                     throw new CoolException("保存入库通知档失败"); | 
 |  |  |                 } | 
 |  |  | 
 |  |  |             List<DetlDto> detlDtos = new ArrayList<>(); | 
 |  |  |  | 
 |  |  |             param.getCombMats().forEach(elem -> { | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                 // 订单明细数量校验 | 
 |  |  | //                OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch()); | 
 |  |  | 
 |  |  |                 waitPakin.setAppeTime(now); | 
 |  |  |                 waitPakin.setModiUser(userId); | 
 |  |  |                 waitPakin.setModiTime(now); | 
 |  |  |                 waitPakin.setBoxType1(detlDto.getBoxType1()); | 
 |  |  |                 waitPakin.setBoxType2(detlDto.getBoxType2()); | 
 |  |  |                 waitPakin.setBoxType3(detlDto.getBoxType3()); | 
 |  |  |                 waitPakin.setStandby1(detlDto.getStandby1()); | 
 |  |  |                 waitPakin.setStandby2(detlDto.getStandby2()); | 
 |  |  |                 waitPakin.setStandby3(detlDto.getStandby3()); | 
 |  |  |                 if (!waitPakinService.insert(waitPakin)) { | 
 |  |  |                     throw new CoolException("保存入库通知档失败"); | 
 |  |  |                 } | 
 |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void adjust(MobileAdjustParam param, Long userId) { | 
 |  |  |         BasDevp basDevp = basDevpService.selectById(param.getStaNo()); | 
 |  |  |         if (null == basDevp || basDevp.getWrkNo() == null) { | 
 |  |  |             throw new CoolException(param.getStaNo() + "盘点站无效"); | 
 |  |  |         } | 
 |  |  |         if (!param.getWrkNo().equals(basDevp.getWrkNo())) { | 
 |  |  |             throw new CoolException(param.getStaNo() + "盘点站更新,请重新检索"); | 
 |  |  |         } | 
 |  |  |         WrkMast wrkMast = wrkMastService.selectById(param.getWrkNo()); | 
 |  |  | //        BasDevp basDevp = basDevpService.selectById(param.getStaNo()); | 
 |  |  | //        if (null == basDevp || basDevp.getWrkNo() == null) { | 
 |  |  | //            throw new CoolException(param.getStaNo() + "盘点站无效"); | 
 |  |  | //        } | 
 |  |  | //        if (!param.getWrkNo().equals(basDevp.getWrkNo())) { | 
 |  |  | //            throw new CoolException(param.getStaNo() + "盘点站更新,请重新检索"); | 
 |  |  | //        } | 
 |  |  |         WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode()); | 
 |  |  |         if (wrkMast.getWrkSts() < 10) { | 
 |  |  |             throw new CoolException("盘点无效,任务已盘点再入库"); | 
 |  |  |         } | 
 |  |  | 
 |  |  |         List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); | 
 |  |  |  | 
 |  |  |         List<WrkDetl> list = param.getWrkDetls(); | 
 |  |  |         LocDetlAdjustParam adjustParam = new LocDetlAdjustParam(); | 
 |  |  |         List<LocDetlAdjustParam.LocDetlAdjust> locDetlAdjusts = new ArrayList<>(); | 
 |  |  |  | 
 |  |  |         adjustParam.setLocNo(wrkMast.getSourceLocNo()); | 
 |  |  |         // 修改数量 | 
 |  |  |         Iterator<WrkDetl> iterator = wrkDetls.iterator(); | 
 |  |  |         while (iterator.hasNext()) { | 
 |  |  | 
 |  |  |             if (!wrkDetlService.insert(wrkDetl)) { | 
 |  |  |                 throw new CoolException("添加" + wrkMast.getWrkNo() + "盘点任务," + wrkDetl.getMatnr() + "商品," + wrkDetl.getBatch() + "批号任务明细失败"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         List<WrkDetl> wrkDetls1 = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); | 
 |  |  |         for (WrkDetl wrkDetl : wrkDetls1) { | 
 |  |  |             LocDetlAdjustParam.LocDetlAdjust locDetlAdjust = new LocDetlAdjustParam.LocDetlAdjust(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme()); | 
 |  |  |             locDetlAdjusts.add(locDetlAdjust); | 
 |  |  |         } | 
 |  |  |         // 修改盘点任务主档状态 | 
 |  |  |         wrkMast.setFullPlt(wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()).size() != 0 ? "Y" : "N"); | 
 |  |  |         wrkMast.setFullPlt(wrkDetls1.size() != 0 ? "Y" : "N"); | 
 |  |  |         wrkMast.setModiTime(now); | 
 |  |  |         wrkMast.setModiUser(userId); | 
 |  |  |         if (!wrkMastService.updateById(wrkMast)) { | 
 |  |  |             throw new CoolException("修改盘点任务主档失败"); | 
 |  |  |         } | 
 |  |  |         adjustParam.setList(locDetlAdjusts); | 
 |  |  |         workService.adjustLocDetl2(adjustParam, userId); | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 
 |  |  | 
 |  |  |     private TagService tagService; | 
 |  |  |     @Autowired | 
 |  |  |     private TagMapper tagMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private OrderDetlPakoutServiceImpl orderDetlPakoutService; | 
 |  |  |     @Autowired | 
 |  |  |     private OrderPakoutServiceImpl orderPakoutService; | 
 |  |  |     @Autowired | 
 |  |  |     private OrderPakinServiceImpl orderPakinService; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void pakinOrderCreate(OpenOrderPakinParam param) { | 
 |  |  |         Order order = orderService.selectByNo(param.getOrderNo()); | 
 |  |  |         if (!Cools.isEmpty(order)) { | 
 |  |  |             throw new CoolException(param.getOrderNo() + "单据已存在,请勿重复提交"); | 
 |  |  |         OrderPakin orderPakin = orderPakinService.selectByNo(param.getOrderNo()); | 
 |  |  |         if (!Cools.isEmpty(orderPakin)) { | 
 |  |  |             if (orderPakin.getSettle() > 1L) { | 
 |  |  |                 throw new CoolException(param.getOrderNo() + "单据已存在,请勿重复提交"); | 
 |  |  |             } | 
 |  |  |             orderPakinService.remove(orderPakin.getId()); | 
 |  |  |             Order order = orderService.selectByNo(param.getOrderNo()); | 
 |  |  |             orderService.remove(order.getId()); | 
 |  |  |         } | 
 |  |  |         DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.TRUE); | 
 |  |  |         Date now = new Date(); | 
 |  |  |         // 单据主档 | 
 |  |  |         order = new Order( | 
 |  |  |         Order order = new Order( | 
 |  |  |                 String.valueOf(snowflakeIdWorker.nextId()),    // 编号[非空] | 
 |  |  |                 param.getOrderNo(),    // 订单编号 | 
 |  |  |                 DateUtils.convert(now),    // 单据日期 | 
 |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void pakoutOrderCreate(OpenOrderPakoutParam param) { | 
 |  |  |         Order order = orderService.selectByNo(param.getOrderNo()); | 
 |  |  |         OrderPakout orderPakout = orderPakoutService.selectByNo(param.getOrderNo()); | 
 |  |  |         // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据 | 
 |  |  |         if (!Cools.isEmpty(order)) { | 
 |  |  |             if (order.getSettle() > 1L) { | 
 |  |  |                 //TODO | 
 |  |  |                 //throw new CoolException(param.getOrderNo() + "正在出库,无法修改单据"); | 
 |  |  |         if (!Cools.isEmpty(orderPakout)) { | 
 |  |  |             if (orderPakout.getSettle() > 1L) { | 
 |  |  |                 throw new CoolException(param.getOrderNo() + "正在出库,无法修改单据"); | 
 |  |  |             } | 
 |  |  |             orderService.remove(order.getId()); | 
 |  |  |             orderService.remove(orderPakout.getId()); | 
 |  |  |             Order order = orderService.selectByNo(param.getOrderNo()); | 
 |  |  |             orderPakoutService.remove(order.getId()); | 
 |  |  |         } | 
 |  |  |         DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE); | 
 |  |  |         Date now = new Date(); | 
 |  |  |         // 单据主档 | 
 |  |  |         order = new Order( | 
 |  |  |         Order order = new Order( | 
 |  |  |                 String.valueOf(snowflakeIdWorker.nextId()),    // 编号[非空] | 
 |  |  |                 param.getOrderNo(),    // 订单编号 | 
 |  |  |                 DateUtils.convert(now),    // 单据日期 | 
 
 |  |  | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @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; | 
 |  |  |         boolean deleteFlag = true; | 
 |  |  |         boolean addFlag = 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(); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 删除库存 | 
 |  |  |         for (LocDetl locDetl : locDetls) { | 
 |  |  |             // todo 盘点记录 | 
 |  |  |             if (!locDetlService.updateAnfme(-1.0D, 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(0.0D); | 
 |  |  |             adjDetl.setModiTime(now); | 
 |  |  |             adjDetl.setModiUser(userId); | 
 |  |  |             adjDetl.setAppeTime(now); | 
 |  |  |             adjDetl.setAppeUser(userId); | 
 |  |  |             adjDetlService.save(adjDetl, userId); | 
 |  |  |  | 
 |  |  |             if (deleteFlag) { | 
 |  |  |                 wrkMast.setWrkNo(commonService.getWorkNo(3)); | 
 |  |  |                 wrkMast.setIoType(22); | 
 |  |  |                 boolean res = wrkMastLogService.insert(wrkMast); | 
 |  |  |                 if (!res) { | 
 |  |  |                     throw new CoolException("库存调整-删除 保存工作档失败"); | 
 |  |  |                 } | 
 |  |  |                 deleteFlag = false; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             // 添加历史工作明细 | 
 |  |  |             WrkDetlLog wrkDetl = new WrkDetlLog(); | 
 |  |  |             wrkDetl.sync(locDetl); | 
 |  |  |             wrkDetl.setWrkNo(wrkMast.getWrkNo()); | 
 |  |  |             wrkDetl.setIoTime(wrkMast.getIoTime()); | 
 |  |  |             wrkDetl.setAnfme(0.0); | 
 |  |  |             wrkDetl.setAppeTime(now); | 
 |  |  |             wrkDetl.setModiTime(now); | 
 |  |  |             wrkMast.setAppeUser(userId); | 
 |  |  |             wrkMast.setModiUser(userId); | 
 |  |  |             if (!wrkDetlLogService.insert(wrkDetl)) { | 
 |  |  |                 throw new CoolException("保存工作明细失败"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 添加库存 | 
 |  |  |         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.setBatch(adjust.getBatch()); | 
 |  |  |             locDetl.setLocNo(locMast.getLocNo()); | 
 |  |  |             locDetl.setZpallet(locMast.getBarcode()); | 
 |  |  |             locDetl.setAnfme(adjust.getCount()); // 数量 | 
 |  |  |             locDetl.setModiUser(userId); // 操作人员信息 | 
 |  |  |             locDetl.setModiTime(now); | 
 |  |  |             locDetl.setAppeUser(userId); | 
 |  |  |             locDetl.setAppeTime(now); | 
 |  |  |             if (!locDetlService.insert(locDetl)) { | 
 |  |  |                 throw new CoolException("添加" + locDetl.getLocNo() + "库位," + locDetl.getMatnr() + "商品," + locDetl.getBatch() + "批号库存明细失败"); | 
 |  |  |             } | 
 |  |  |             // 保存调整记录 | 
 |  |  |             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); | 
 |  |  |  | 
 |  |  |             if (addFlag) { | 
 |  |  |                 wrkMast.setWrkNo(commonService.getWorkNo(3)); | 
 |  |  |                 wrkMast.setIoType(21); | 
 |  |  |                 boolean res = wrkMastLogService.insert(wrkMast); | 
 |  |  |                 if (!res) { | 
 |  |  |                     throw new CoolException("库存调整-新增 保存工作档失败"); | 
 |  |  |                 } | 
 |  |  |                 addFlag = 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("保存工作明细失败"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         // 修改库位状态 | 
 |  |  |         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 | 
 
 |  |  | 
 |  |  |         if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) { | 
 |  |  |             List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>().eq("status", 2)); | 
 |  |  |             for (InventoryCheckOrder inventoryCheckOrder : inventoryCheckOrders) { | 
 |  |  |  | 
 |  |  |                 try { | 
 |  |  |                     ReturnT<String> result = orderSyncHandler.reportCheck(inventoryCheckOrder); | 
 |  |  |                     if (!result.isSuccess()) { | 
 |  |  |                         log.error("盘点单[orderNo={}]上报erp失败", inventoryCheckOrder.getOrderNo()); | 
 |  |  |                     } | 
 |  |  |                 } catch (Exception e) { | 
 |  |  |                     log.error(e.getMessage()); | 
 |  |  |                     log.error("盘点单[orderNo={}]上报erp失败", inventoryCheckOrder.getOrderNo()); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } | 
 
 |  |  | 
 |  |  | package com.zy.asrs.task.handler; | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.core.exception.CoolException; | 
 |  |  | import com.zy.asrs.entity.DocType; | 
 |  |  | import com.zy.asrs.entity.Order; | 
 |  |  | import com.zy.asrs.entity.OrderDetl; | 
 |  |  | import com.zy.asrs.service.DocTypeService; | 
 |  |  | import com.zy.asrs.service.OrderDetlService; | 
 |  |  | import com.zy.asrs.service.OrderService; | 
 |  |  | import com.zy.asrs.service.ReportToThirdService; | 
 |  |  | import com.zy.asrs.entity.*; | 
 |  |  | import com.zy.asrs.service.*; | 
 |  |  | import com.zy.asrs.task.AbstractHandler; | 
 |  |  | import com.zy.asrs.task.core.ReturnT; | 
 |  |  | import com.zy.asrs.utils.OrderInAndOutUtil; | 
 |  |  | 
 |  |  |     private OrderService orderService; | 
 |  |  |     @Autowired | 
 |  |  |     private OrderDetlService orderDetlService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private   InventoryCheckOrderDetlService inventoryCheckOrderDetlService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private DocTypeService docTypeService; | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Transactional | 
 |  |  |     public ReturnT<String> reportCheck(InventoryCheckOrder checkOrder) { | 
 |  |  |         List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrder.getOrderNo())); | 
 |  |  |         for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls){ | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         return SUCCESS; | 
 |  |  |     } | 
 |  |  | } | 
 
 |  |  | 
 |  |  |         // 4.入库完成 | 
 |  |  |         if (wrkMast.getWrkSts() == 4) { | 
 |  |  |             return doIn(wrkMast); | 
 |  |  |         // 14.出库完成 | 
 |  |  |         } else  if (wrkMast.getWrkSts() == 14) { | 
 |  |  |             // 14.出库完成 | 
 |  |  |         } else if (wrkMast.getWrkSts() == 14) { | 
 |  |  |             return doOut(wrkMast); | 
 |  |  |         } | 
 |  |  |         return SUCCESS; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private ReturnT<String> doIn(WrkMast wrkMast){ | 
 |  |  |     private ReturnT<String> doIn(WrkMast wrkMast) { | 
 |  |  |         Date now = new Date(); | 
 |  |  |         LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); | 
 |  |  |         try { | 
 |  |  | 
 |  |  |                     // 遍历工作明细,更新库存明细和入库通知档 | 
 |  |  |                     for (WrkDetl wrkDetl : wrkDetls) { | 
 |  |  |  | 
 |  |  |                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand() | 
 |  |  |                         ,wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3()); | 
 |  |  |                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand() | 
 |  |  |                                 , wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); | 
 |  |  |                         if (null != locDetl) { | 
 |  |  |                             if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3() | 
 |  |  |                             ,wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3())) { | 
 |  |  |                             if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3() | 
 |  |  |                                     , wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) { | 
 |  |  | //                                exceptionHandle("全板入库 ===>> 更新库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); | 
 |  |  |                                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  |                                 return FAIL.setMsg("全板入库 ===>> 更新库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); | 
 |  |  | 
 |  |  |  | 
 |  |  |                         // 更新订单完成数量 | 
 |  |  |                         OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem | 
 |  |  |                                 (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), | 
 |  |  |                                         wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3()); | 
 |  |  |                         if (orderDetlPakin==null){ | 
 |  |  |                                 (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), | 
 |  |  |                                         wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); | 
 |  |  |                         if (orderDetlPakin == null) { | 
 |  |  |                             orderDetlPakin = orderDetlPakinService.selectItem | 
 |  |  |                                     (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), | 
 |  |  |                                             wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), | 
 |  |  |                                             wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3()); | 
 |  |  |                                             wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), | 
 |  |  |                                             wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); | 
 |  |  |                         } | 
 |  |  |                         try { | 
 |  |  |                             if(!Cools.isEmpty(orderDetlPakin)){ | 
 |  |  |                                 if(!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), | 
 |  |  |                                         orderDetlPakin.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), | 
 |  |  |                                         wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(),wrkDetl.getAnfme())){ | 
 |  |  |                             if (!Cools.isEmpty(orderDetlPakin)) { | 
 |  |  |                                 if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), | 
 |  |  |                                         orderDetlPakin.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), | 
 |  |  |                                         wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) { | 
 |  |  | //                                    exceptionHandle("全板入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", | 
 |  |  | //                                            wrkMast.getWrkNo(), wrkMast.getLocNo()); | 
 |  |  |                                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  |                                     return FAIL.setMsg("全板入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                         } catch (Exception ignore){} | 
 |  |  |                         } catch (Exception ignore) { | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                     } | 
 |  |  |                     // 修改库位状态 S ====>> F | 
 |  |  | 
 |  |  |                     } | 
 |  |  |                     for (WrkDetl wrkDetl : wrkDetls53) { | 
 |  |  |  | 
 |  |  |                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand() | 
 |  |  |                                 ,wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3()); | 
 |  |  |                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand() | 
 |  |  |                                 , wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); | 
 |  |  |                         if (null != locDetl) { | 
 |  |  |                             if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3() | 
 |  |  |                                     ,wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3())) { | 
 |  |  |                             if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3() | 
 |  |  |                                     , wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) { | 
 |  |  | //                                exceptionHandle("拣料入库 ===>> 修改库存明细数量失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); | 
 |  |  |                                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  |                                 return FAIL.setMsg("拣料入库 ===>> 修改库存明细数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); | 
 |  |  | 
 |  |  |  | 
 |  |  |                         // 更新订单完成数量 | 
 |  |  |                         OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem | 
 |  |  |                                 (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(), | 
 |  |  |                                         wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), | 
 |  |  |                                         wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3()); | 
 |  |  |                         if (orderDetlPakin==null){ | 
 |  |  |                                 (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), | 
 |  |  |                                         wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), | 
 |  |  |                                         wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); | 
 |  |  |                         if (orderDetlPakin == null) { | 
 |  |  |                             orderDetlPakin = orderDetlPakinService.selectItem | 
 |  |  |                                     (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), | 
 |  |  |                                             wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3()); | 
 |  |  |                                     (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), | 
 |  |  |                                             wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); | 
 |  |  |                         } | 
 |  |  |                         try { | 
 |  |  |                             if(!Cools.isEmpty(orderDetlPakin)){ | 
 |  |  |                                 if(!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), | 
 |  |  |                                         orderDetlPakin.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), | 
 |  |  |                                         wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(),wrkDetl.getAnfme())){ | 
 |  |  |                             if (!Cools.isEmpty(orderDetlPakin)) { | 
 |  |  |                                 if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), | 
 |  |  |                                         orderDetlPakin.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), | 
 |  |  |                                         wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) { | 
 |  |  | //                                    exceptionHandle("拣料入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", | 
 |  |  | //                                            wrkMast.getWrkNo(), wrkMast.getLocNo()); | 
 |  |  |                                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  |                                     return FAIL.setMsg("拣料入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                         } catch (Exception ignore){} | 
 |  |  |                         } catch (Exception ignore) { | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                     } | 
 |  |  |                     // 修改库位状态 Q ====>> F | 
 |  |  | 
 |  |  |                         return FAIL.setMsg("并板入库 ===>> 工作明细档为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); | 
 |  |  |                     } | 
 |  |  |                     // 修改库存明细数量,如无库存,曾新增 | 
 |  |  |                     for (WrkDetl wrkDetl:wrkDetls54) { | 
 |  |  |                     for (WrkDetl wrkDetl : wrkDetls54) { | 
 |  |  |  | 
 |  |  |                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand() | 
 |  |  |                                 ,wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3()); | 
 |  |  |                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand() | 
 |  |  |                                 , wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); | 
 |  |  |                         if (null != locDetl) { | 
 |  |  |                             if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3() | 
 |  |  |                                     ,wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3())) { | 
 |  |  |                             if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3() | 
 |  |  |                                     , wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) { | 
 |  |  | //                                exceptionHandle("并板入库 ===>> 修改库存明细数量失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr()); | 
 |  |  |                                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  |                                 return FAIL.setMsg("并板入库 ===>> 修改库存明细数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); | 
 |  |  | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         // 更新订单完成数量 | 
 |  |  |                         OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(), wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3()); | 
 |  |  |                         OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); | 
 |  |  |                         try { | 
 |  |  |                             if(!Cools.isEmpty(orderDetlPakin)){ | 
 |  |  |                                 if(!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), | 
 |  |  |                                         orderDetlPakin.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), | 
 |  |  |                                         wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(),wrkDetl.getAnfme())){ | 
 |  |  |                             if (!Cools.isEmpty(orderDetlPakin)) { | 
 |  |  |                                 if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), | 
 |  |  |                                         orderDetlPakin.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), | 
 |  |  |                                         wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) { | 
 |  |  |                                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  |                                     return FAIL.setMsg("并板入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                         } catch (Exception ignore){ | 
 |  |  |                         } catch (Exception ignore) { | 
 |  |  |  | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  | 
 |  |  |                     } | 
 |  |  |                     // 修改库位状态 Q ====>> F | 
 |  |  |                     if (locMast.getLocSts().equals("Q")) { | 
 |  |  |                         locMast.setLocSts(wrkMast.getFullPlt().equals("Y")?"F":"D"); | 
 |  |  |                         locMast.setLocSts(wrkMast.getFullPlt().equals("Y") ? "F" : "D"); | 
 |  |  |                         locMast.setBarcode(wrkMast.getBarcode()); | 
 |  |  |                         locMast.setIoTime(now); | 
 |  |  |                         locMast.setModiTime(now); | 
 |  |  | 
 |  |  |         return SUCCESS; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private ReturnT<String> doOut(WrkMast wrkMast){ | 
 |  |  |     private ReturnT<String> doOut(WrkMast wrkMast) { | 
 |  |  |         Date now = new Date(); | 
 |  |  |         LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo()); | 
 |  |  |         try { | 
 |  |  | 
 |  |  |                     } | 
 |  |  |                     for (WrkDetl wrkDetl : wrkDetls101) { | 
 |  |  |                         // 更新订单完成数量 | 
 |  |  |                         OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), | 
 |  |  |                                 wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3()); | 
 |  |  |                         if (orderDetlPakout==null){ | 
 |  |  |                             orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), | 
 |  |  |                                     wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3()); | 
 |  |  |                         OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), | 
 |  |  |                                 wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); | 
 |  |  |                         if (orderDetlPakout == null) { | 
 |  |  |                             orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), | 
 |  |  |                                     wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); | 
 |  |  |                         } | 
 |  |  |                         try { | 
 |  |  |                             if(!Cools.isEmpty(orderDetlPakout)){ | 
 |  |  |                                 if(!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), | 
 |  |  |                                         orderDetlPakout.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), | 
 |  |  |                                         wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(),wrkDetl.getAnfme())){ | 
 |  |  |                             if (!Cools.isEmpty(orderDetlPakout)) { | 
 |  |  |                                 if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), | 
 |  |  |                                         orderDetlPakout.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), | 
 |  |  |                                         wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) { | 
 |  |  | //                                    exceptionHandle("全板出库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", | 
 |  |  | //                                            wrkMast.getWrkNo(), wrkMast.getLocNo()); | 
 |  |  |                                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  |                                     return FAIL.setMsg("全板出库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                         } catch (Exception ignore){} | 
 |  |  |                         } catch (Exception ignore) { | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     // 删除工作档源库位的库存明细 | 
 |  |  |                     if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) { | 
 |  |  | 
 |  |  |                         return FAIL.setMsg("并板途中捡料 ===>> 工作明细档为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); | 
 |  |  |                     } | 
 |  |  |                     for (WrkDetl wrkDetl : wrkDetls108) { | 
 |  |  |                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand() | 
 |  |  |                                 ,wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3()); | 
 |  |  |                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand() | 
 |  |  |                                 , wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); | 
 |  |  |                         if (null != locDetl) { | 
 |  |  |                             if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3() | 
 |  |  |                                     ,wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3())) { | 
 |  |  |                             if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3() | 
 |  |  |                                     , wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) { | 
 |  |  |                                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  |                                 return FAIL.setMsg("并板途中捡料 ===>> 修改库存明细数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         // 更新订单完成数量 | 
 |  |  |                         OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), | 
 |  |  |                                 wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3()); | 
 |  |  |                         OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), | 
 |  |  |                                 wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); | 
 |  |  |                         try { | 
 |  |  |                             if(!Cools.isEmpty(orderDetlPakout)){ | 
 |  |  |                                 if(!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), | 
 |  |  |                                         orderDetlPakout.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), | 
 |  |  |                                         wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(),wrkDetl.getAnfme())){ | 
 |  |  |                             if (!Cools.isEmpty(orderDetlPakout)) { | 
 |  |  |                                 if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), | 
 |  |  |                                         orderDetlPakout.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), | 
 |  |  |                                         wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) { | 
 |  |  |                                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  |                                     return FAIL.setMsg("并板途中捡料 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                         } catch (Exception ignore){} | 
 |  |  |                         } catch (Exception ignore) { | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     break; | 
 |  |  |                 // 空板出库 | 
 
 |  |  | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.Date; | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.stream.Collectors; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * Created by vincent on 2020/10/30 | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private WaitPakinService waitPakinService; | 
 |  |  |     @Autowired | 
 |  |  |     private  LocDetlService locDetlService; | 
 |  |  |     private LocDetlService locDetlService; | 
 |  |  |     @Autowired | 
 |  |  |     private RowLastnoService rowLastnoService; | 
 |  |  |     @Autowired | 
 |  |  | 
 |  |  |                 } | 
 |  |  |                 return R.parse(CodeRes.NO_COMB_700); | 
 |  |  |             } | 
 |  |  |             int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode())); | 
 |  |  |             int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",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) { | 
 |  |  |                 return R.error(CodeRes.EXIST_500); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         if (Cools.isEmpty(param.getLocType1())){ | 
 |  |  |         if (Cools.isEmpty(param.getLocType1())) { | 
 |  |  |             return R.error("高低检测信号不能为空"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  |     @PostMapping("/auto/emptyIn/v1") | 
 |  |  |     @ResponseBody | 
 |  |  |     public R autoEmptyIn(@RequestBody LocTypeDto locTypeDto){ | 
 |  |  |     public R autoEmptyIn(@RequestBody LocTypeDto locTypeDto) { | 
 |  |  |         // 源站点状态检测 | 
 |  |  |         BasDevp sourceStaNo = basDevpService.checkSiteStatus(12, true); | 
 |  |  |  | 
 |  |  |         // 检索库位 | 
 |  |  |         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(); | 
 |  |  |  | 
 |  |  |         StartupDto dto = commonService.getLocNo( 10, 12, findLocNoAttributeVo, locTypeDto); | 
 |  |  |         StartupDto dto = commonService.getLocNo(10, 12, findLocNoAttributeVo, locTypeDto); | 
 |  |  |         Date now = new Date(); | 
 |  |  |         // 生成工作档 | 
 |  |  |         WrkMast wrkMast = new WrkMast(); | 
 |  |  | 
 |  |  |         wrkMast.setAppeTime(now); | 
 |  |  |         wrkMast.setModiTime(now); | 
 |  |  |         wrkMast.setMemo("自动空托入库"); | 
 |  |  |         return wrkMastService.insert(wrkMast) ? R.ok("自动空托入库成功,工作号:"+wrkMast.getWrkNo()) : R.error("生成自动空托入库失败"); | 
 |  |  |         return wrkMastService.insert(wrkMast) ? R.ok("自动空托入库成功,工作号:" + wrkMast.getWrkNo()) : R.error("生成自动空托入库失败"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PostMapping("auto/emptyOut/v1") | 
 |  |  |     @ResponseBody | 
 |  |  |     public R autoEmptyOut(){ | 
 |  |  |     public R autoEmptyOut() { | 
 |  |  |         LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() | 
 |  |  |                 .eq("loc_sts", "D")); | 
 |  |  |         if (Cools.isEmpty(locMast)) { | 
 |  |  | 
 |  |  |         } | 
 |  |  |         EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam(); | 
 |  |  |         emptyPlateOutParam.setOutSite(12); | 
 |  |  |         emptyPlateOutParam.setLocNos(new ArrayList<String>(){{add(locMast.getLocNo()+"");}}); | 
 |  |  |         emptyPlateOutParam.setLocNos(new ArrayList<String>() {{ | 
 |  |  |             add(locMast.getLocNo() + ""); | 
 |  |  |         }}); | 
 |  |  |         WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam); | 
 |  |  |         return R.ok(!Cools.isEmpty(wrkMast)? R.ok("自动空托出库成功,工作号:" + wrkMast.getWrkNo()) : R.error("生成自动空托出库失败")); | 
 |  |  |         return R.ok(!Cools.isEmpty(wrkMast) ? R.ok("自动空托出库成功,工作号:" + wrkMast.getWrkNo()) : R.error("生成自动空托出库失败")); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  | 
 |  |  | //        List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList()); | 
 |  |  | //        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(matnrs.get(0), batchs.get(0)); | 
 |  |  |         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0)); | 
 |  |  |         StartupDto dto = commonService.getLocNo( 1, devpNo,findLocNoAttributeVo, locTypeDto); | 
 |  |  |  | 
 |  |  |         //TODO 测试 | 
 |  |  |         StartupDto dto = new StartupDto(); | 
 |  |  |         dto.setCrnNo(1); | 
 |  |  |         dto.setSourceStaNo(devpNo); | 
 |  |  |         dto.setStaNo(103); | 
 |  |  |         LocMast locMastxx = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O")); | 
 |  |  |         dto.setLocNo(locMastxx.getLocNo()); | 
 |  |  |         dto.setWorkNo(Math.round(1000)); | 
 |  |  |  | 
 |  |  |         //StartupDto dto = commonService.getLocNo( 1, devpNo,findLocNoAttributeVo, locTypeDto); | 
 |  |  |         int workNo = dto.getWorkNo(); | 
 |  |  |         Date now = new Date(); | 
 |  |  |         // 生成工作档 | 
 |  |  | 
 |  |  |         // 更新源站点信息 | 
 |  |  |         sourceStaNo.setWrkNo(workNo); | 
 |  |  |         sourceStaNo.setModiTime(now); | 
 |  |  |         if (!basDevpService.updateById(sourceStaNo)){ | 
 |  |  |         if (!basDevpService.updateById(sourceStaNo)) { | 
 |  |  |             throw new CoolException("更新源站失败"); | 
 |  |  |         } | 
 |  |  |         // 更新目标库位状态 | 
 |  |  |         LocMast locMast = locMastService.selectById(dto.getLocNo()); | 
 |  |  |         if (locMast.getLocSts().equals("O")){ | 
 |  |  |         if (locMast.getLocSts().equals("O")) { | 
 |  |  |             locMast.setLocSts("S"); // S.入库预约 | 
 |  |  |             locMast.setModiTime(now); | 
 |  |  |             if (!locMastService.updateById(locMast)){ | 
 |  |  |             if (!locMastService.updateById(locMast)) { | 
 |  |  |                 throw new CoolException("改变库位状态失败"); | 
 |  |  |             } | 
 |  |  |         } else { | 
 |  |  |             throw new CoolException(dto.getLocNo()+"目标库位已被占用"); | 
 |  |  |             throw new CoolException(dto.getLocNo() + "目标库位已被占用"); | 
 |  |  |         } | 
 |  |  |         return dto; | 
 |  |  |     } | 
 |  |  | 
 |  |  |         // 检索库位 | 
 |  |  |         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(); | 
 |  |  |  | 
 |  |  |         StartupDto dto = commonService.getLocNo( 10, devpNo, findLocNoAttributeVo, locTypeDto); | 
 |  |  |         StartupDto dto = commonService.getLocNo(10, devpNo, findLocNoAttributeVo, locTypeDto); | 
 |  |  |         int workNo = dto.getWorkNo(); | 
 |  |  |         // 生成工作档 | 
 |  |  |         WrkMast wrkMast = new WrkMast(); | 
 |  |  | 
 |  |  |         // 更新源站点信息 | 
 |  |  |         sourceStaNo.setWrkNo(workNo); | 
 |  |  |         sourceStaNo.setModiTime(new Date()); | 
 |  |  |         if (!basDevpService.updateById(sourceStaNo)){ | 
 |  |  |         if (!basDevpService.updateById(sourceStaNo)) { | 
 |  |  |             throw new CoolException("更新源站失败"); | 
 |  |  |         } | 
 |  |  |         // 更新目标库位状态 | 
 |  |  |         LocMast locMast = locMastService.selectById(dto.getLocNo()); | 
 |  |  |         if (locMast.getLocSts().equals("O")){ | 
 |  |  |         if (locMast.getLocSts().equals("O")) { | 
 |  |  |             locMast.setLocSts("S"); // S.入库预约 | 
 |  |  |             locMast.setModiTime(new Date()); | 
 |  |  |             if (!locMastService.updateById(locMast)){ | 
 |  |  |             if (!locMastService.updateById(locMast)) { | 
 |  |  |                 throw new CoolException("改变库位状态失败"); | 
 |  |  |             } | 
 |  |  |         } else { | 
 |  |  |             throw new CoolException(dto.getLocNo()+"目标库位已被占用"); | 
 |  |  |             throw new CoolException(dto.getLocNo() + "目标库位已被占用"); | 
 |  |  |         } | 
 |  |  |         return dto; | 
 |  |  |     } | 
 
 |  |  | 
 |  |  |                 if (Cools.isEmpty(mat)) { | 
 |  |  |                     throw new CoolException(nccScZkmxbWms.getWlbm() + "编号商品检索失败,请先添加商品"); | 
 |  |  |                 } | 
 |  |  |                 List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", nccScZkmxbWms.getVbillcode()).eq("matnr", mat.getMatnr()).eq("batch", nccScZkmxbWms.getVbatchcode())); | 
 |  |  |                 if (checkOrderDetls != null && !checkOrderDetls.isEmpty()) { | 
 |  |  |                     //throw new CoolException(nccScZkmxbWms.getWlbm() + "盘点单的明细重复了"); | 
 |  |  |                 } | 
 |  |  |                 checkOrderDetl = new InventoryCheckOrderDetl(); | 
 |  |  |                 checkOrderDetl.setMatnr(nccScZkmxbWms.getWlbm()); | 
 |  |  |                 checkOrderDetl.setMaktx(mat.getMaktx()); |