|  |  | 
 |  |  | package com.vincent.rsf.server.manager.schedules; | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
 |  |  | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | 
 |  |  | import com.vincent.rsf.framework.exception.CoolException; | 
 |  |  | import com.vincent.rsf.server.manager.entity.WaitPakin; | 
 |  |  | import com.vincent.rsf.server.manager.entity.WaitPakinItem; | 
 |  |  | import com.vincent.rsf.server.manager.entity.WaitPakinItemLog; | 
 |  |  | import com.vincent.rsf.server.manager.entity.WaitPakinLog; | 
 |  |  | import com.vincent.rsf.server.manager.entity.*; | 
 |  |  | import com.vincent.rsf.server.manager.enums.AsnExceStatus; | 
 |  |  | import com.vincent.rsf.server.manager.enums.PakinIOStatus; | 
 |  |  | import com.vincent.rsf.server.manager.service.WaitPakinItemLogService; | 
 |  |  | import com.vincent.rsf.server.manager.service.WaitPakinItemService; | 
 |  |  | import com.vincent.rsf.server.manager.service.WaitPakinLogService; | 
 |  |  | import com.vincent.rsf.server.manager.service.WaitPakinService; | 
 |  |  | import com.vincent.rsf.server.manager.service.*; | 
 |  |  | import org.springframework.beans.BeanUtils; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.scheduling.annotation.Scheduled; | 
 |  |  | 
 |  |  |     private WaitPakinLogService waitPakinLogService; | 
 |  |  |     @Autowired | 
 |  |  |     private WaitPakinItemLogService waitPakinItemLogService; | 
 |  |  |     @Autowired | 
 |  |  |     private AsnOrderService asnOrderService; | 
 |  |  |     @Autowired | 
 |  |  |     private AsnOrderItemService asnOrderItemService; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * @param | 
 |  |  | 
 |  |  |             if (pakinItems.isEmpty()) { | 
 |  |  |                 throw new CoolException("组拖明细为空!!"); | 
 |  |  |             } | 
 |  |  |             List<String> pkinItems = pakinItems.stream().map(WaitPakinItem::getAsnCode).collect(Collectors.toList()); | 
 |  |  |             pkinItems.forEach(item -> { | 
 |  |  |                 List<WkOrderItem> wkOrders = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderCode, item)); | 
 |  |  |                 if (wkOrders.isEmpty()) { | 
 |  |  |                     throw new CoolException("数据错误,原单据不存在或已丢失!!"); | 
 |  |  |                 } | 
 |  |  |                 Double sum = wkOrders.stream().mapToDouble(WkOrderItem::getAnfme).sum(); | 
 |  |  |                 List<WaitPakinItem> waitPakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().eq(WaitPakinItem::getAsnCode, item)); | 
 |  |  |                 if (waitPakinItems.isEmpty()) { | 
 |  |  |                     throw new CoolException("数据错误,组托明细不存在!!"); | 
 |  |  |                 } | 
 |  |  |                 Double sum1 = waitPakinItems.stream().mapToDouble(WaitPakinItem::getAnfme).sum(); | 
 |  |  |                 if (sum.compareTo(sum1) == 0) { | 
 |  |  |                     if (!asnOrderService.update(new LambdaUpdateWrapper<WkOrder>() | 
 |  |  |                             .eq(WkOrder::getCode, item) | 
 |  |  |                             .set(WkOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val))) { | 
 |  |  |                         throw new CoolException("单据修改失败!!"); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             }); | 
 |  |  |  | 
 |  |  |             List<WaitPakinItemLog> itemLogs = new ArrayList<>(); | 
 |  |  |  | 
 |  |  |             pakinItems.forEach(item -> { |