src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/model/OrderMergeVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -1,6 +1,7 @@ package com.zy.asrs.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.SnowflakeIdWorker; @@ -11,8 +12,8 @@ import com.zy.asrs.mapper.OrderDetlMapper; import com.zy.asrs.mapper.OrderMapper; import com.zy.asrs.service.*; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.zy.common.model.DetlDto; import com.zy.common.model.OrderDto; import com.zy.common.model.OrderMergeVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -174,6 +175,18 @@ // 获取所有未作业的明细 List<OrderDetl> orderDetls = orderDetlService.selectRemainder(orderId); for (OrderDetl orderDetl : orderDetls) { Double leave = orderDetl.getAnfme() - orderDetl.getQty(); OrderMergeVo vo = new OrderMergeVo(orderDetl.getMatnr(), orderDetl.getBatch(), leave); OrderDto orderDto = new OrderDto(orderDetl.getOrderNo(), null, leave); if (OrderMergeVo.has(result, vo)) { OrderMergeVo exist = OrderMergeVo.find(result, vo.getMatnr(), vo.getBatch()); assert exist != null; exist.setAnfme(exist.getAnfme() + vo.getAnfme()); exist.getOrderDtos().add(orderDto); } else { vo.getOrderDtos().add(orderDto); result.add(vo); } } } src/main/java/com/zy/common/model/OrderMergeVo.java
@@ -1,5 +1,6 @@ package com.zy.common.model; import com.core.common.Cools; import lombok.Data; import java.util.ArrayList; @@ -21,6 +22,33 @@ private Double anfme; private List<DetlDto> detlDtos = new ArrayList<>(); private List<OrderDto> orderDtos = new ArrayList<>(); public OrderMergeVo(String matnr, String batch, Double anfme) { this.matnr = matnr; this.batch = batch; this.anfme = anfme; } public static boolean has(List<OrderMergeVo> detlDtos, OrderMergeVo detlDto) { for (OrderMergeVo dto : detlDtos) { if (dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch())) { return true; } } return false; } public static OrderMergeVo find(List<OrderMergeVo> detlDtos, String matnr, String batch) { if (Cools.isEmpty(matnr)) { return null; } for (OrderMergeVo detlDto : detlDtos) { if (matnr.equals(detlDto.getMatnr()) && Cools.eq(batch, detlDto.getBatch())) { return detlDto; } } return null; } }