| | |
| | | private SlaveProperties slaveProperties; |
| | | @Autowired |
| | | private WaitPakinService waitPakinService; |
| | | @Autowired |
| | | private OrderDetl1ServiceImpl orderDetl1Service; |
| | | @Autowired |
| | | private Order1ServiceImpl order1Service; |
| | | |
| | | @Override |
| | | @Transactional |
| | |
| | | wrkMast.setIoTime(now); |
| | | wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID |
| | | wrkMast.setIoType(ioType); // 入出库状态 |
| | | wrkMast.setIoPri(13D); // 优先级:13 |
| | | wrkMast.setIoPri(ioType==101?20D:13D); // 优先级:13 |
| | | wrkMast.setCrnNo(locMast.getCrnNo()); |
| | | wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 源站 |
| | | wrkMast.setStaNo(staDesc.getStnNo()); // 目标站 |
| | |
| | | wrkMast.setModiUser(user.getId()); |
| | | wrkMast.setModiTime(now); |
| | | wrkMast.setMemo(Cools.isEmpty(agvStaNo) ? "" : agvStaNo); |
| | | if(!Cools.isEmpty(taskDto.getLocDtos().get(0).getOrderNo())){ |
| | | wrkMast.setPacked(taskDto.getLocDtos().get(0).getOrderNo()); |
| | | } |
| | | if (!wrkMastService.insert(wrkMast)) { |
| | | throw new CoolException("保存工作档失败,出库库位号:" + taskDto.getLocNo()); |
| | | } |
| | | String orderNo = taskDto.getLocDtos().get(0).getOrderNo(); |
| | | Order order = orderService.selectByNo(orderNo); |
| | | if (Cools.isEmpty(order.getAccountDay())) { |
| | | order.setAccountDay(1); |
| | | } else { |
| | | order.setAccountDay(order.getAccountDay() + 1); |
| | | } |
| | | orderNo = order.getOrderNo() + "-" + order.getAccountDay(); |
| | | Order1 order2 = order1Service.selectByNo(orderNo); |
| | | if (Cools.isEmpty(order2)) { |
| | | //创建子表表头 |
| | | Order1 order1 = new Order1(); |
| | | order1.sync(order); |
| | | order1.setOrderNo(orderNo); |
| | | order1.setCreateBy(user.getId()); |
| | | order1.setCreateTime(now); |
| | | order1.setUpdateTime(new Date()); |
| | | order1.setSettle(2L); |
| | | order1Service.insert(order1); |
| | | order2=order1; |
| | | } |
| | | |
| | | // 生成工作档明细 |
| | | for (LocDto locDto : taskDto.getLocDtos()) { |
| | | if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) { |
| | |
| | | wrkDetl.setIoTime(now); |
| | | wrkDetl.setWrkNo(workNo); |
| | | wrkDetl.setBatch(locDto.getBatch()); |
| | | wrkDetl.setOrderNo(locDto.getOrderNo()); |
| | | wrkDetl.setOrderNo(orderNo); |
| | | wrkDetl.setModel(mat.getModel()); |
| | | wrkDetl.setAnfme(locDto.getAnfme()); // 数量 |
| | | wrkDetl.setAppeTime(now); |
| | |
| | | throw new CoolException("保存工作档明细失败"); |
| | | } |
| | | // 修改订单明细 |
| | | if (!orderDetlService.increaseWorkQty2(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme(), user.getEmail())) { |
| | | if (!orderDetlService.increaseWorkQty2(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme(), user.getId())) { |
| | | throw new CoolException("修改订单明细数量失败"); |
| | | } |
| | | |
| | | //生成出货单 |
| | | OrderDetl1 orderDetl1 = new OrderDetl1(); |
| | | orderDetl1.sync(wrkDetl); |
| | | orderDetl1.setOrderId(order2.getId()); |
| | | orderDetl1.setWorkQty(wrkDetl.getAnfme()); |
| | | orderDetl1.setStatus(1); |
| | | orderDetl1.setCreateBy(user.getId()); |
| | | orderDetl1.setUpdateBy(user.getId()); |
| | | orderDetl1.setCreateTime(new Date()); |
| | | orderDetl1.setUpdateTime(new Date()); |
| | | orderDetl1Service.insert(orderDetl1); |
| | | |
| | | orderService.updateSettle(orderDetl.getOrderId(), 2L, user.getId()); |
| | | } |
| | | // 修改库位状态: F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中 |
| | |
| | | } |
| | | // 获取库位 |
| | | LocMast locMast = locMastService.selectById(taskDto.getLocNo()); |
| | | String orderNo = ""; |
| | | int i = 0; |
| | | for (LocDto locDto : taskDto.getLocDtos()) { |
| | | if (i++ == 0) { |
| | | orderNo = locDto.getOrderNo(); |
| | | } else if (!orderNo.equals(locDto.getOrderNo())) { |
| | | throw new CoolException("出库订单不一致无法出库"); |
| | | } |
| | | |
| | | if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) { |
| | | continue; |
| | | } |
| | |
| | | if (orderDetl == null) { |
| | | orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null); |
| | | } |
| | | if (orderDetl.getAnfme() - orderDetl.getWorkQty() == 0) { |
| | | return; |
| | | } |
| | | // if (orderDetl.getAnfme() - orderDetl.getWorkQty() == 0) { |
| | | // return; |
| | | // } |
| | | |
| | | } |
| | | |
| | |
| | | wrkMast.setIoTime(now); |
| | | wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID |
| | | wrkMast.setIoType(ioType); // 入出库状态 |
| | | wrkMast.setIoPri(13D); // 优先级:13 |
| | | wrkMast.setIoPri(ioType==101?20D:13D); // 优先级:13 |
| | | wrkMast.setCrnNo(locMast.getCrnNo()); |
| | | wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 源站 |
| | | wrkMast.setStaNo(staDesc.getStnNo()); // 目标站 |
| | |
| | | wrkMast.setModiUser(user.getId()); |
| | | wrkMast.setModiTime(now); |
| | | wrkMast.setMemo(Cools.isEmpty(agvStaNo) ? "" : agvStaNo); |
| | | if(!Cools.isEmpty(taskDto.getLocDtos().get(0).getOrderNo())){ |
| | | wrkMast.setPacked(taskDto.getLocDtos().get(0).getOrderNo()); |
| | | } |
| | | if (!wrkMastService.insert(wrkMast)) { |
| | | throw new CoolException("保存工作档失败,出库库位号:" + taskDto.getLocNo()); |
| | | } |
| | | //新增子单 |
| | | Order order = orderService.selectByNo(orderNo); |
| | | if (Cools.isEmpty(order.getAccountDay())) { |
| | | order.setAccountDay(1); |
| | | } else { |
| | | order.setAccountDay(order.getAccountDay() + 1); |
| | | } |
| | | orderNo = order.getOrderNo() + "-" + order.getAccountDay(); |
| | | Order1 order2 = order1Service.selectByNo(orderNo); |
| | | if (Cools.isEmpty(order2)) { |
| | | //创建子表表头 |
| | | Order1 order1 = new Order1(); |
| | | order1.sync(order); |
| | | order1.setOrderNo(orderNo); |
| | | order1.setCreateBy(user.getId()); |
| | | order1.setCreateTime(now); |
| | | order1.setUpdateTime(new Date()); |
| | | order1.setSettle(2L); |
| | | order1Service.insert(order1); |
| | | order2=order1; |
| | | } |
| | | // 生成工作档明细 |
| | | for (LocDto locDto : taskDto.getLocDtos()) { |
| | | |
| | | if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) { |
| | | continue; |
| | | } |
| | |
| | | wrkDetl.setIoTime(now); |
| | | wrkDetl.setWrkNo(workNo); |
| | | wrkDetl.setBatch(locDto.getBatch()); |
| | | wrkDetl.setOrderNo(locDto.getOrderNo()); |
| | | wrkDetl.setOrderNo(orderNo); |
| | | wrkDetl.setModel(mat.getModel()); |
| | | wrkDetl.setAnfme(locDto.getAnfme() > (orderDetl.getAnfme() - orderDetl.getWorkQty()) ? (orderDetl.getAnfme() - orderDetl.getWorkQty()) : locDto.getAnfme()); // 数量 |
| | | wrkDetl.setAnfme(locDto.getAnfme()); // 数量 |
| | | wrkDetl.setAppeTime(now); |
| | | wrkDetl.setAppeUser(user.getId()); |
| | | wrkDetl.setModiTime(now); |
| | |
| | | throw new CoolException("保存工作档明细失败"); |
| | | } |
| | | // 修改订单明细 |
| | | if (!orderDetlService.increaseWorkQty2(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), wrkDetl.getAnfme(), user.getEmail())) { |
| | | if (!orderDetlService.increaseWorkQty2(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), wrkDetl.getAnfme(), user.getId())) { |
| | | throw new CoolException("修改订单明细数量失败"); |
| | | } |
| | | |
| | | //生成出货单 |
| | | OrderDetl1 orderDetl1 = new OrderDetl1(); |
| | | orderDetl1.sync(wrkDetl); |
| | | orderDetl1.setOrderId(order2.getId()); |
| | | orderDetl1.setWorkQty(wrkDetl.getAnfme()); |
| | | orderDetl1.setStatus(1); |
| | | orderDetl1.setCreateBy(user.getId()); |
| | | orderDetl1.setUpdateBy(user.getId()); |
| | | orderDetl1.setCreateTime(new Date()); |
| | | orderDetl1.setUpdateTime(new Date()); |
| | | orderDetl1Service.insert(orderDetl1); |
| | | orderService.updateSettle(orderDetl.getOrderId(), 2L, user.getId()); |
| | | } |
| | | // 修改库位状态: F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中 |
| | |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | for (WrkDetl wrkDetl : wrkDetls) { |
| | | //字符串不为空 |
| | | String orderNo = wrkDetl.getOrderNo().split("-")[0]; |
| | | if (!Cools.isEmpty(wrkDetl.getOrderNo())) { |
| | | if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) { |
| | | if (!orderDetlService.decrease(orderNo, wrkDetl.getMatnr(), null, wrkDetl.getAnfme())) { |
| | | throw new CoolException("订单数据回滚失败"); |
| | | } |
| | | |
| | | //修改订单主表状态,没有作业数量时才可以修改 |
| | | boolean flag = true; |
| | | List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", wrkDetl.getOrderNo())); |
| | | List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", orderNo)); |
| | | for (OrderDetl orderDetl : orderDetls) { |
| | | if (orderDetl.getWorkQty() > 0) { |
| | | flag = false; |
| | | } |
| | | } |
| | | if (flag) { |
| | | Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", wrkDetl.getOrderNo())); |
| | | Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", orderNo)); |
| | | if (!Cools.isEmpty(order) && order.getSettle() == 2) { |
| | | order.setSettle(1L); |
| | | order.setUpdateBy(userId); |
| | | order.setUpdateTime(now); |
| | | } |
| | | if (!orderService.update(order, new EntityWrapper<Order>().eq("order_no", wrkDetl.getOrderNo()))) { |
| | | if (!orderService.update(order, new EntityWrapper<Order>().eq("order_no", orderNo))) { |
| | | throw new CoolException("修改订单状态失败"); |
| | | } |
| | | } |
| | | |
| | | //对子表进行删减 |
| | | if (Cools.isEmpty(wrkDetl.getBatch())) { |
| | | orderDetl1Service.delete(new EntityWrapper<OrderDetl1>().eq("order_no", wrkDetl.getOrderNo()).eq("matnr", wrkDetl.getMatnr())); |
| | | } else { |
| | | orderDetl1Service.delete(new EntityWrapper<OrderDetl1>().eq("order_no", wrkDetl.getOrderNo()).eq("matnr", wrkDetl.getMatnr()).eq("batch", wrkDetl.getBatch())); |
| | | } |
| | | int orderNo1 = orderDetl1Service.selectCount(new EntityWrapper<OrderDetl1>().eq("order_no", wrkDetl.getOrderNo())); |
| | | if (orderNo1 == 0) { |
| | | order1Service.delete(new EntityWrapper<Order1>().eq("order_no", wrkDetl.getOrderNo())); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |