From 4d00b5a1923103b25ae4beaf26ba0a04b8d3ca4a Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期一, 26 五月 2025 11:25:30 +0800 Subject: [PATCH] 中空代码优化:提供字符串多级排序 提供客户名称 --- hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 38 insertions(+), 8 deletions(-) diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java index 5b12e1a..dbc4e08 100644 --- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java +++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java @@ -13,10 +13,7 @@ import com.mes.hollow.entity.HollowBigStorageCageDetails; import com.mes.hollow.entity.HollowGlassOutRelationInfo; import com.mes.hollow.entity.HollowGlassRelationInfo; -import com.mes.hollow.entity.dto.FlowCardGlassInfoDTO; -import com.mes.hollow.entity.dto.HollowBigStorageDTO; -import com.mes.hollow.entity.dto.HollowGlassDetailsDTO; -import com.mes.hollow.entity.dto.LackDetailsDTO; +import com.mes.hollow.entity.dto.*; import com.mes.hollow.entity.vo.HollowAllFlowCardVO; import com.mes.hollow.entity.vo.HollowBigStorageDetailsQueryVO; import com.mes.hollow.mapper.HollowGlassRelationInfoMapper; @@ -30,10 +27,13 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigInteger; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -315,21 +315,23 @@ listMap.forEach((e, v) -> { HollowAllFlowCardVO hollowAllFlowCardVO = new HollowAllFlowCardVO(); HollowBigStorageCageDetails cageDetails = v.get(0); + //鎸夌収娴佺▼鍗¤幏鍙栧搴旂殑浜у搧鍚嶇О + OrderDetailsDTO orderDetails = baseMapper.queryProductNameByFlowCardId(cageDetails.getFlowCardId()); + if (null != orderDetails) { + BeanUtils.copyProperties(orderDetails, hollowAllFlowCardVO); + } hollowAllFlowCardVO.setFlowCardId(e); if (cageDetails.getHollowSequence() == 0) { hollowAllFlowCardVO.setIsThroughSlot(Boolean.TRUE); } else { hollowAllFlowCardVO.setIsThroughSlot(Boolean.FALSE); } - //鎸夌収娴佺▼鍗¤幏鍙栧搴旂殑浜у搧鍚嶇О - String productName = baseMapper.queryProductNameByFlowCardId(cageDetails.getFlowCardId()); - hollowAllFlowCardVO.setProductName(productName); List<FlowCardGlassInfoDTO> flowCardInfoList = hollowBigStorageCageDetailsService.hollowIsAll(e, cageDetails.getTotalLayer(), Boolean.FALSE); hollowAllFlowCardVO.setFlowCardGlassInfoDTOList(flowCardInfoList); resultList.add(hollowAllFlowCardVO); }); + sortFlowCardIdList(resultList); return resultList; -// return dtos.stream().collect(Collectors.groupingBy(e -> e.getFlowCardId() + ":" + e.getProductName())); } @Override @@ -396,5 +398,33 @@ // return lackDetailsList; // } + private void sortFlowCardIdList(List<HollowAllFlowCardVO> list) { + Pattern pattern = Pattern.compile("^NG(\\d+)([A-Za-z]+)(\\d+)$"); + + list.sort((v1, v2) -> { + Matcher m1 = pattern.matcher(v1.getFlowCardId()); + Matcher m2 = pattern.matcher(v2.getFlowCardId()); + + if (!m1.find() || !m2.find()) { + throw new IllegalArgumentException("鑾峰彇鍒扮殑娴佺▼鍗′笉绗﹀悎鏍¢獙瑙勫垯"); + } + + // 鎻愬彇閮ㄥ垎 + BigInteger order1 = new BigInteger(m1.group(1)); + BigInteger order2 = new BigInteger(m2.group(1)); + String layer1 = m1.group(2); + String layer2 = m2.group(2); + BigInteger seq1 = new BigInteger(m1.group(3)); + BigInteger seq2 = new BigInteger(m2.group(3)); + + // 浼樺厛绾ф帓搴� + int cmp = order1.compareTo(order2); + if (cmp != 0) return cmp; + cmp = layer1.compareTo(layer2); + if (cmp != 0) return cmp; + return seq1.compareTo(seq2); + }); + } + } -- Gitblit v1.8.0