|  |  | 
 |  |  | import com.zy.asrs.entity.param.FullStoreParam; | 
 |  |  | import com.zy.asrs.entity.param.LocDetlAdjustParam; | 
 |  |  | import com.zy.asrs.entity.param.StockOutParam; | 
 |  |  | import com.zy.asrs.mapper.LocMastMapper; | 
 |  |  | import com.zy.asrs.entity.result.FindLocNoAttributeVo; | 
 |  |  | import com.zy.asrs.mapper.LocMastMapper; | 
 |  |  | import com.zy.asrs.service.*; | 
 |  |  | import com.zy.asrs.utils.OrderInAndOutUtil; | 
 |  |  | import com.zy.asrs.utils.Utils; | 
 |  |  | import com.zy.common.model.*; | 
 |  |  | import com.zy.common.model.enums.IoWorkType; | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SnowflakeIdWorker snowflakeIdWorker; | 
 |  |  |     @Autowired | 
 |  |  |     private OrderService orderService; | 
 |  |  |     @Autowired | 
 |  |  |     private OrderDetlService orderDetlService; | 
 |  |  |     @Autowired | 
 |  |  |     private WcsController wcsController; | 
 |  |  |     @Autowired | 
 |  |  |     private RowLastnoService rowLastnoService; | 
 |  |  | 
 |  |  |     @Resource | 
 |  |  |     private LocMastMapper locMastMapper; | 
 |  |  |  | 
 |  |  |     @Resource | 
 |  |  |     private OrderPakoutService orderPakOutService; | 
 |  |  |     @Autowired | 
 |  |  |     private OrderPakinService orderPakinService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private OrderDetlPakinService orderDetlPakinService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private OrderPakoutService orderPakoutService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private OrderDetlPakoutService orderDetlPakoutService; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  | 
 |  |  |         LocMast locMast = locMastService.selectById(taskDto.getLocNo()); | 
 |  |  |         // 判断是否是盘点单 | 
 |  |  |         String orderNo = taskDto.getLocDtos().get(0).getOrderNo(); | 
 |  |  |         OrderPakout orderPakout = orderPakOutService.selectByNo(orderNo); | 
 |  |  |         OrderPakout orderPakout = orderPakoutService.selectByNo(orderNo); | 
 |  |  |         int ioType = orderPakout.getDocType() == 8 ? 107 : (taskDto.isAll() ? 101 : 103); | 
 |  |  |         StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo()); | 
 |  |  |         // 生成工作号 | 
 |  |  | 
 |  |  |             if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) { | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  | //            OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); | 
 |  |  |             OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getBrand() | 
 |  |  |             OrderDetlPakout orderDetl = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getBrand() | 
 |  |  |                     , locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), locDto.getBoxType1(), locDto.getBoxType2(), locDto.getBoxType3()); | 
 |  |  | //            if (orderDetl == null) { | 
 |  |  | ////                orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null); | 
 |  |  | //                orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), null); | 
 |  |  | // | 
 |  |  | //                orderDetl = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null, locDto.getBrand() | 
 |  |  | //                        , locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), locDto.getBoxType1(), locDto.getBoxType2(), locDto.getBoxType3()); | 
 |  |  | //            } | 
 |  |  |             WrkDetl wrkDetl = new WrkDetl(); | 
 |  |  |             wrkDetl.sync(orderDetl); | 
 |  |  | 
 |  |  |                 throw new CoolException("保存工作档明细失败"); | 
 |  |  |             } | 
 |  |  | //            // 修改订单明细 | 
 |  |  | //            if (!orderDetlService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) { | 
 |  |  | //                throw new CoolException("修改订单明细数量失败"); | 
 |  |  | //            } | 
 |  |  | //            orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); | 
 |  |  |             OrderInAndOutUtil.increaseWorkQty(Boolean.FALSE, orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), | 
 |  |  |                     orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(), | 
 |  |  |                     orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3() | 
 |  |  |                     , locDto.getAnfme()); | 
 |  |  |             OrderInAndOutUtil.updateOrder(Boolean.FALSE, orderDetl.getOrderId(), 2L, userId); | 
 |  |  |             if (!orderDetlPakoutService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(), | 
 |  |  |                     orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3(), locDto.getAnfme())) { | 
 |  |  |                 throw new CoolException("修改订单明细数量失败"); | 
 |  |  |             } | 
 |  |  |             orderPakoutService.updateSettle(orderDetl.getOrderId(), 2L, userId); | 
 |  |  |         } | 
 |  |  |         // 修改库位状态:   F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中 | 
 |  |  |         locMast = locMastService.selectById(taskDto.getLocNo()); | 
 |  |  | 
 |  |  |             List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); | 
 |  |  |             for (WrkDetl wrkDetl : wrkDetls) { | 
 |  |  |                 if (!Cools.isEmpty(wrkDetl.getOrderNo())) { | 
 |  |  | //                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) { | 
 |  |  | //                        throw new CoolException("订单数据回滚失败"); | 
 |  |  | //                    } | 
 |  |  |                     OrderInAndOutUtil.decrease(Boolean.FALSE, wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), | 
 |  |  |                     if (!orderDetlPakoutService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), | 
 |  |  |                             wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), | 
 |  |  |                             wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme()); | 
 |  |  |  | 
 |  |  |                             wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) { | 
 |  |  |                         throw new CoolException("订单数据回滚失败"); | 
 |  |  |                     } | 
 |  |  |                     //修改订单主表状态,没有作业数量时才可以修改 | 
 |  |  |                     boolean flag = true; | 
 |  |  | //                    List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo())); | 
 |  |  |                     Order order = OrderInAndOutUtil.selectByNo(Boolean.FALSE, wrkDetl.getOrderNo()); | 
 |  |  |                     List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(Boolean.FALSE, order.getId()); | 
 |  |  |                     for (OrderDetl orderDetl : orderDetls) { | 
 |  |  |                     List<OrderDetlPakout> orderDetls = orderDetlPakoutService.selectList(new EntityWrapper<OrderDetlPakout>().eq("order_no", wrkDetl.getOrderNo())); | 
 |  |  |                     for (OrderDetlPakout orderDetl : orderDetls) { | 
 |  |  |                         if (orderDetl.getWorkQty() > 0) { | 
 |  |  |                             flag = false; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     if (flag) { | 
 |  |  | //                        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo())); | 
 |  |  |                         OrderPakout order = orderPakoutService.selectOne(new EntityWrapper<OrderPakout>().eq("order_no", wrkDetl.getOrderNo())); | 
 |  |  |                         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()))){ | 
 |  |  | //                            throw new CoolException("修改订单状态失败"); | 
 |  |  | //                        } | 
 |  |  |                         OrderInAndOutUtil.updateOrder(Boolean.FALSE, order.getId(), order.getSettle(), userId); | 
 |  |  |                         if (!orderPakoutService.update(order, new EntityWrapper<OrderPakout>().eq("order_no", wrkDetl.getOrderNo()))) { | 
 |  |  |                             throw new CoolException("修改订单状态失败"); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } |