From 520345cccdaa3349625d745e1baac81e0040e87a Mon Sep 17 00:00:00 2001 From: msb_37571 Date: Sun, 24 Mar 2024 12:03:02 +0800 Subject: [PATCH] o --- .../entity/ApproveListDetail.java | 11 ++++++ .../yuanzhoutest/entity/Coordinate.java | 7 ++++ .../yuanzhoutest/mapping/ApproveMapper.xml | 12 +++---- .../service/impl/ApproveServiceImpl.java | 36 ++++++++++++++++--- 4 files changed, 56 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/example/yuanzhoutest/entity/ApproveListDetail.java b/src/main/java/com/example/yuanzhoutest/entity/ApproveListDetail.java index 5f3b74d..72b6274 100644 --- a/src/main/java/com/example/yuanzhoutest/entity/ApproveListDetail.java +++ b/src/main/java/com/example/yuanzhoutest/entity/ApproveListDetail.java @@ -19,6 +19,17 @@ public class ApproveListDetail { private String model; private String twoDmodel; private String qualityRequire; + /** + * 供应商编码 + */ + private String supplierCode; + + /** + * 供应商名称 + */ + private String supplierName; + private String remark; + private Long num; private List coordinateList; } diff --git a/src/main/java/com/example/yuanzhoutest/entity/Coordinate.java b/src/main/java/com/example/yuanzhoutest/entity/Coordinate.java index d860ead..52ac7f6 100644 --- a/src/main/java/com/example/yuanzhoutest/entity/Coordinate.java +++ b/src/main/java/com/example/yuanzhoutest/entity/Coordinate.java @@ -13,4 +13,11 @@ public class Coordinate { private Boolean isTotal; private Long num; + public Coordinate(String xcode, String ycode) { + this.xcode = xcode; + this.ycode = ycode; + } + + public Coordinate() { + } } diff --git a/src/main/java/com/example/yuanzhoutest/mapping/ApproveMapper.xml b/src/main/java/com/example/yuanzhoutest/mapping/ApproveMapper.xml index a88ee44..c3480bf 100644 --- a/src/main/java/com/example/yuanzhoutest/mapping/ApproveMapper.xml +++ b/src/main/java/com/example/yuanzhoutest/mapping/ApproveMapper.xml @@ -186,8 +186,8 @@ num, remark) values - - #{param.id}, + + (#{param.id}, #{param.approveId}, #{param.inventionId}, #{param.inventionCode}, @@ -199,7 +199,7 @@ #{param.supplierCode}, #{param.supplierName}, #{param.num}, - #{param.remark} + #{param.remark}) @@ -213,12 +213,12 @@ ycode, num) values - - #{param.id}, + + (#{param.id}, #{param.detailId}, #{param.xcode}, #{param.ycode}, - #{param.num} + #{param.num}) diff --git a/src/main/java/com/example/yuanzhoutest/service/impl/ApproveServiceImpl.java b/src/main/java/com/example/yuanzhoutest/service/impl/ApproveServiceImpl.java index 4d1f3c3..057b3b4 100644 --- a/src/main/java/com/example/yuanzhoutest/service/impl/ApproveServiceImpl.java +++ b/src/main/java/com/example/yuanzhoutest/service/impl/ApproveServiceImpl.java @@ -10,11 +10,10 @@ import com.example.yuanzhoutest.util.SnowflakeIdWorker; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; +import java.util.stream.Stream; @Service public class ApproveServiceImpl implements ApproveService { @@ -24,6 +23,8 @@ public class ApproveServiceImpl implements ApproveService { @Autowired private SnowflakeIdWorker snowflakeIdWorker; + private String[] coorCodes = new String[]{"0.00", "-0.25", "-0.50", "-0.75", "-1.00", "-1.25", "-1.50", "-1.75", "-2.00", "-2.25"}; + @Override public List getApproveListByPage(ApproveRequestVO requestVO) { @@ -40,6 +41,7 @@ public class ApproveServiceImpl implements ApproveService { return approveMapper.getApproveById(id); } + @Override public List getApproveDetailListById(Long id) { List approveDetailList = approveMapper.getApproveDetailListById(id); List detailIds = approveDetailList.stream().map(v -> v.getId()).collect(Collectors.toList()); @@ -48,11 +50,37 @@ public class ApproveServiceImpl implements ApproveService { Collectors.groupingBy( Coordinate::getDetailId, Collectors.mapping(Function.identity(), Collectors.toList()))); approveDetailList.stream().forEach(v -> { - v.setCoordinateList(coordinateMap.get(v.getId())); + List coordinateList = coordinateMap.get(v.getId()); + List coordinateListResult = initCoordinate(coordinateList); + v.setCoordinateList(coordinateListResult); }); return approveDetailList; } + private List initCoordinate(List coordinateList) { + List coordinateListAll = new ArrayList<>(); + for (int i = 0; i <= coorCodes.length - 1; i++) { + for (int t = 0; t <= coorCodes.length - 1; t++) { + Coordinate coordinate = new Coordinate(coorCodes[i], coorCodes[t]); + coordinateListAll.add(coordinate); + } + } + coordinateListAll.addAll(coordinateList); + Map> coordinateMap = coordinateListAll.stream().collect(Collectors.groupingBy( + v-> v.getXcode() + v.getYcode(), Collectors.mapping(Function.identity(), Collectors.toList()))); + List coordinateListResult = coordinateMap.entrySet().stream().map(v -> { + List coordinates = v.getValue(); + Coordinate coordinate = coordinates.get(0); + if (coordinates.size() > 1) { + coordinate = coordinates.stream().filter(t -> t.getNum() != null).findAny().get(); + } + return coordinate; + }).collect(Collectors.toList()); + + + return coordinateListResult; + } + @Override public Long saveApprove(ApproveList approveList) { Long id = snowflakeIdWorker.getUUID();