src/main/java/com/zy/asrs/controller/OutController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/model/DetlDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/OrderDetlMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/OutController.java
@@ -3,18 +3,20 @@ import com.core.common.BaseRes; import com.core.common.Cools; import com.core.common.R; import com.zy.asrs.entity.LocDetl; import com.zy.asrs.entity.OrderDetl; import com.zy.asrs.service.LocDetlService; import com.zy.asrs.service.OrderDetlService; import com.zy.asrs.service.OrderService; import com.zy.common.model.DetlDto; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import java.util.HashSet; import java.util.List; import java.util.Set; /** * Created by vincent on 2022/3/26 @@ -35,10 +37,20 @@ if (Cools.isEmpty(ids)) { return R.parse(BaseRes.PARAM); } // 合并同类项 List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids); Set<DetlDto> detlDtos = new HashSet<>(); for (OrderDetl orderDetl : orderDetls) { List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOrderNo()); if (DetlDto.hasList(detlDtos, orderDetl)) { DetlDto detlDto = DetlDto.find(detlDtos, orderDetl.getMatnr(), orderDetl.getBatch()); assert detlDto != null; detlDto.setAnfme(detlDto.getAnfme() + orderDetl.getAnfme()); } else { detlDtos.add(new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getAnfme())); } } // // List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOrderNo()); return R.ok().add(orderDetls); src/main/java/com/zy/common/model/DetlDto.java
@@ -1,6 +1,10 @@ package com.zy.common.model; import com.core.common.Cools; import com.zy.asrs.entity.OrderDetl; import lombok.Data; import java.util.Set; /** * Created by vincent on 2022/3/25 @@ -24,10 +28,58 @@ this.anfme = anfme; } public DetlDto(String matnr, String batch, Double anfme) { this.matnr = matnr; this.batch = batch; this.anfme = anfme; } public DetlDto(String orderNo, String matnr, String batch, Double anfme) { this.orderNo = orderNo; this.matnr = matnr; this.batch = batch; this.anfme = anfme; } public static boolean hasList(Set<DetlDto> detlDtos, OrderDetl orderDetl) { for (DetlDto dto : detlDtos) { if (Cools.isEmpty(dto.getBatch()) && Cools.isEmpty(orderDetl.getBatch())) { if (dto.getMatnr().equals(orderDetl.getMatnr())) { return true; } } else { if (!Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(orderDetl.getBatch())) { if (dto.getMatnr().equals(orderDetl.getMatnr()) && dto.getBatch().equals(orderDetl.getBatch())) { return true; } } } } return false; } public static DetlDto find(Set<DetlDto> detlDtos, String matnr, String batch) { if (Cools.isEmpty(matnr)) { return null; } for (DetlDto detlDto : detlDtos) { if (!matnr.equals(detlDto.getMatnr())) { continue; } if (Cools.isEmpty(batch) && Cools.isEmpty(detlDto.getBatch())) { return detlDto; } if (Cools.isEmpty(batch) && !Cools.isEmpty(detlDto.getBatch())) { continue; } if (Cools.isEmpty(detlDto.getBatch()) && !Cools.isEmpty(batch)) { continue; } if (batch.equals(detlDto.getBatch())) { return detlDto; } } return null; } } src/main/resources/mapper/OrderDetlMapper.xml
@@ -36,9 +36,14 @@ where 1=1 and order_id = #{orderId} and matnr = #{matnr} <if test="batch != null and batch != ''"> and batch = #{batch} </if> <choose> <when test="batch != null and batch != ''"> and batch = #{batch} </when> <otherwise> and (batch IS NULL OR batch = '') </otherwise> </choose> </select> <select id="selectWorkingDetls" resultMap="BaseResultMap"> @@ -54,9 +59,14 @@ where 1=1 and order_id = #{orderId} and matnr = #{matnr} <if test="batch != null and batch != ''"> and batch = #{batch} </if> <choose> <when test="batch != null and batch != ''"> and batch = #{batch} </when> <otherwise> and (batch IS NULL OR batch = '') </otherwise> </choose> </update> </mapper>