|  |  | 
 |  |  | package com.zy.asrs.service.impl; | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.baomidou.mybatisplus.mapper.Wrapper; | 
 |  |  | import com.baomidou.mybatisplus.service.impl.ServiceImpl; | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.core.common.DateUtils; | 
 |  |  | import com.core.exception.CoolException; | 
 |  |  | import com.zy.asrs.entity.*; | 
 |  |  | import com.zy.asrs.mapper.TaskMapper; | 
 |  |  | import com.zy.asrs.service.*; | 
 |  |  | import com.baomidou.mybatisplus.service.impl.ServiceImpl; | 
 |  |  | import com.zy.asrs.utils.OrderInAndOutUtil; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import org.springframework.transaction.annotation.Transactional; | 
 |  |  |  | 
 |  |  | import java.util.Collections; | 
 |  |  | import java.util.Date; | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.concurrent.TimeUnit; | 
 |  |  | 
 |  |  |     private TaskService taskService; | 
 |  |  |     @Autowired | 
 |  |  |     private TaskDetlLogService taskDetlLogService; | 
 |  |  |     @Autowired | 
 |  |  |     private OrderPakoutService orderPakoutService; | 
 |  |  |     @Autowired | 
 |  |  |     private OrderDetlPakoutService orderDetlPakoutService; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional(rollbackFor = Exception.class) | 
 |  |  | 
 |  |  |             List<TaskDetl> wrkDetls = taskDetlService.selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", wrkMast.getWrkNo())); | 
 |  |  |             for (TaskDetl 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) { | 
 |  |  |                     OrderPakout order = orderPakoutService.selectByNo(wrkDetl.getOrderNo()); | 
 |  |  |                     List<OrderDetlPakout> orderDetls = orderDetlPakoutService.selectByOrderId(order.getId()); | 
 |  |  |                     for (OrderDetlPakout orderDetl : orderDetls) { | 
 |  |  |                         if (orderDetl.getWorkQty() > 0) { | 
 |  |  |                             flag = false; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     if (flag) { | 
 |  |  | //                        Order order = orderService.selectOne(new EntityWrapper<Order>().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("修改订单状态失败"); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } |