From 2b91b242113bd10f1be241d19ab154e9ad6506cd Mon Sep 17 00:00:00 2001 From: wangfei <3597712270@qq.com> Date: 星期二, 10 六月 2025 14:18:00 +0800 Subject: [PATCH] 国际化命名 --- hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java | 135 +++++++++++++++++++++++++++++++------------- 1 files changed, 95 insertions(+), 40 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 53b5663..a26d6b8 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 @@ -6,32 +6,34 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.common.config.Const; +import com.mes.common.config.ConstSysConfig; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.service.GlassInfoService; import com.mes.hollow.entity.HollowBigStorageCage; 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; import com.mes.hollow.service.HollowBigStorageCageDetailsService; import com.mes.hollow.service.HollowBigStorageCageService; import com.mes.hollow.service.HollowGlassOutRelationInfoService; import com.mes.hollow.service.HollowGlassRelationInfoService; +import com.mes.sysconfig.service.SysConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigInteger; import java.util.ArrayList; -import java.util.HashMap; +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; /** @@ -54,13 +56,15 @@ HollowGlassOutRelationInfoService hollowGlassOutRelationInfoService; @Resource HollowBigStorageCageDetailsService hollowBigStorageCageDetailsService; - @Value("${mes.slotWidth}") - private Integer slotWidth; - @Value("${mes.glassGap}") - private Integer glassGap; - - @Value("${mes.outCarMaxSize}") - private Integer outCarMaxSize; + @Resource + SysConfigService sysConfigService; +// @Value("${mes.slotWidth}") +// private Integer slotWidth; +// @Value("${mes.glassGap}") +// private Integer glassGap; +// +// @Value("${mes.outCarMaxSize}") +// private Integer outCarMaxSize; @Override public HollowBigStorageDTO queryHollowTargetSlot(String flowCardId, double width, double height, int totalLayer, int layer) { @@ -99,6 +103,7 @@ .last("limit 1") ); } + Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_WIDTH); //璇︽儏琛ㄥ唴鑾峰彇鏈粍鏄惁宸茬粡鏈夌幓鐠冨湪绗煎瓙鍐咃紙0琛ㄧず鎻愬墠鍗犵敤锛� int taskCount = hollowGlassOutRelationInfoService.count(new LambdaQueryWrapper<HollowGlassOutRelationInfo>() .eq(HollowGlassOutRelationInfo::getFlowCardId, flowCardId)); @@ -243,6 +248,11 @@ // List<HollowBigStorageCage> hollowSlotList = HollowBigStorageCageService.list(new LambdaQueryWrapper<HollowBigStorageCage>() // .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)); //鏂瑰紡浜岋細灏嗙幓鐠冩寜娴佺▼鍗°�佸昂瀵搞�佺増鍥俱�佺増搴� 锛屼紭鍏堝皢鏍煎瓙鍏ㄩ儴琛ュ叏鍚� 渚濇璁$畻鍚庨潰鐨勬牸瀛愬彿 + + Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_WIDTH); +// Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_GLASS_GAP); + Integer glassGap = getGlassGapByThickness(tempGlassList.get(0).getThickness()); + Integer outCarMaxSize = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_OUT_CAR_SIZE); List<HollowGlassRelationInfo> relationInfoList = new ArrayList(); List<List<HollowGlassRelationInfo>> tempHollowList = new ArrayList<>(); int slotNumber = 1; @@ -289,7 +299,7 @@ } @Override - public Map<String, List<FlowCardGlassInfoDTO>> queryHollowAllFlowCard(HollowBigStorageDetailsQueryVO query) { + public List<HollowAllFlowCardVO> queryHollowAllFlowCard(HollowBigStorageDetailsQueryVO query) { List<HollowBigStorageCageDetails> detailsList = hollowBigStorageCageDetailsService.list(new LambdaQueryWrapper<HollowBigStorageCageDetails>() .eq(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN) .like(StringUtils.isNotBlank(query.getFilmsId()), HollowBigStorageCageDetails::getFilmsId, query.getFilmsId()) @@ -299,37 +309,34 @@ ); if (CollectionUtil.isEmpty(detailsList)) { log.info("绗煎唴鏃犵幓鐠�"); - return new HashMap<>(); + return new ArrayList<>(); } Map<String, List<HollowBigStorageCageDetails>> listMap = detailsList.stream().collect(Collectors.groupingBy(HollowBigStorageCageDetails::getFlowCardId)); - List<FlowCardGlassInfoDTO> dtos = new ArrayList<>(); + List<HollowAllFlowCardVO> resultList = new ArrayList<>(); listMap.forEach((e, v) -> { + HollowAllFlowCardVO hollowAllFlowCardVO = new HollowAllFlowCardVO(); HollowBigStorageCageDetails cageDetails = v.get(0); - dtos.addAll(hollowBigStorageCageDetailsService.hollowIsAll(e, cageDetails.getTotalLayer(), Boolean.FALSE)); + //鎸夌収娴佺▼鍗¤幏鍙栧搴旂殑浜у搧鍚嶇О + 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); + } + List<FlowCardGlassInfoDTO> flowCardInfoList = hollowBigStorageCageDetailsService.hollowIsAll(e, cageDetails.getTotalLayer(), Boolean.FALSE); + hollowAllFlowCardVO.setFlowCardGlassInfoDTOList(flowCardInfoList); + resultList.add(hollowAllFlowCardVO); }); - Map<String, FlowCardGlassInfoDTO> result = dtos.stream() - .collect(Collectors.toMap( - FlowCardGlassInfoDTO::getFlowCardId, - dto -> { - FlowCardGlassInfoDTO newDto = new FlowCardGlassInfoDTO(); - newDto.setFlowCardId(dto.getFlowCardId()); - newDto.setSumCount(dto.getSumCount()); - newDto.setPairCount(dto.getPairCount()); - newDto.setRealCount(dto.getRealCount()); - newDto.setLayer(dto.getLayer()); - return newDto; - }, - (dto1, dto2) -> { - dto1.setRealCount(dto1.getRealCount() + dto2.getRealCount()); // 绱姞 realCount - dto1.setLayer(Math.max(dto1.getLayer(),dto2.getLayer())); // 绱姞 鏈�澶у眰鏁� - return dto1; // 杩斿洖鍚堝苟鍚庣殑瀵硅薄 - } - )); - return dtos.stream().collect(Collectors.groupingBy(FlowCardGlassInfoDTO::getFlowCardId)); + sortFlowCardIdList(resultList); + return resultList; } @Override - public Map<String, FlowCardGlassInfoDTO> queryHollowAllFlowCardSummary(HollowBigStorageDetailsQueryVO query) { + public List<FlowCardGlassInfoDTO> queryHollowAllFlowCardSummary(HollowBigStorageDetailsQueryVO query) { List<HollowBigStorageCageDetails> detailsList = hollowBigStorageCageDetailsService.list(new LambdaQueryWrapper<HollowBigStorageCageDetails>() .eq(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN) .like(StringUtils.isNotBlank(query.getFilmsId()), HollowBigStorageCageDetails::getFilmsId, query.getFilmsId()) @@ -339,7 +346,7 @@ ); if (CollectionUtil.isEmpty(detailsList)) { log.info("绗煎唴鏃犵幓鐠�"); - return new HashMap<>(); + return null; } Map<String, List<HollowBigStorageCageDetails>> listMap = detailsList.stream().collect(Collectors.groupingBy(HollowBigStorageCageDetails::getFlowCardId)); List<FlowCardGlassInfoDTO> dtos = new ArrayList<>(); @@ -362,12 +369,17 @@ }, (dto1, dto2) -> { dto1.setRealCount(dto1.getRealCount() + dto2.getRealCount()); // 绱姞 realCount - dto1.setLayer(Math.max(dto1.getLayer(),dto2.getLayer())); // 绱姞 鏈�澶у眰鏁� + dto1.setLayer(Math.max(dto1.getLayer(), dto2.getLayer())); // 绱姞 鏈�澶у眰鏁� dto1.setSlotCount(dto1.getSlotCount() + dto2.getSlotCount()); return dto1; // 杩斿洖鍚堝苟鍚庣殑瀵硅薄 } )); - return result; + List<FlowCardGlassInfoDTO> resultList = new ArrayList<>(result.values()); + List<FlowCardGlassInfoDTO> sortedList = resultList.stream() + .sorted(Comparator.comparing(FlowCardGlassInfoDTO::getRealCount).reversed() // 绗竴涓瓧娈靛�掑簭 + .thenComparing(FlowCardGlassInfoDTO::getSumCount, Comparator.reverseOrder())) // 绗簩涓瓧娈靛�掑簭 + .collect(Collectors.toList()); + return sortedList; } @Override @@ -381,11 +393,54 @@ public int queryLayerByFlowCardId(String flowCardId) { return baseMapper.queryLayerByFlowCardId(flowCardId); } + + @Override + public Integer getGlassGapByThickness(Double thickness) { + int sysKey = 0; + if (thickness >= 12) { + sysKey = ConstSysConfig.HOLLOW_GLASS_GAP_12; + } else if (thickness == 8) { + sysKey = ConstSysConfig.HOLLOW_GLASS_GAP_8; + } else if (thickness == 10) { + sysKey = ConstSysConfig.HOLLOW_GLASS_GAP_10; + } else { + sysKey = ConstSysConfig.HOLLOW_GLASS_GAP; + } + return sysConfigService.queryConfigValue(sysKey); + } // @Override // public List<LackDetailsDTO> queryLackByFlowCard(String flowCardId) { // List<LackDetailsDTO> lackDetailsList = this.baseMapper.queryLackByFlowCard(flowCardId); // 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