|  |  |  | 
|---|
|  |  |  | 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()); | 
|---|