From 4e3b8155722b66e25df3c6fd42cc586b68dea391 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期五, 06 六月 2025 13:55:39 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java | 86 +++++++++++++++++++++++++++++++++++--------
1 files changed, 70 insertions(+), 16 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 75754d3..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,16 +6,14 @@
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;
@@ -23,16 +21,19 @@
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.Comparator;
import java.util.List;
import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
@@ -55,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) {
@@ -100,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));
@@ -244,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;
@@ -307,21 +316,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
@@ -382,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