qiangxuan 2 tygodni temu
rodzic
commit
9156e9eaf9

+ 63 - 62
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetHotsend/service/impl/BilletHotsendBaseServiceImpl.java

@@ -1453,6 +1453,8 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 		BeanUtils.copyProperties(billetInfo, billetBasicInfo);
 		// 去棒一数据补录
 		if (oConvertUtils.listIsEmpty(billetBasicInfoAdd.getRollClubOneList())){
+
+			List<BilletBasicInfo> allBilletBasicInfoList = new ArrayList<>();
 			// 整炉全部去组批
 			// 1流补录钢坯
 			if (oConvertUtils.isNotEmpty(billetBasicInfoAdd.getOneStrandNo()) && billetBasicInfoAdd.getOneStrandNoSum() > 0){
@@ -1460,7 +1462,8 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 				int addSum = billetBasicInfoAdd.getOneStrandNoSum();
 				int strandNo = billetBasicInfoAdd.getOneStrandNo();
 				int length = billetBasicInfoAdd.getOneLength();
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				allBilletBasicInfoList.addAll(billetBasicInfoList);
 				log.info("1流保存钢坯实绩结束:"+ DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
 			}
 			// 2流补录钢坯
@@ -1469,7 +1472,8 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 				int addSum = billetBasicInfoAdd.getTwoStrandNoSum();
 				int strandNo = billetBasicInfoAdd.getTwoStrandNo();
 				int length = billetBasicInfoAdd.getTwoLength();
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				allBilletBasicInfoList.addAll(billetBasicInfoList);
 				log.info("2流保存钢坯实绩结束:"+ DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
 			}
 			// 3流补录钢坯
@@ -1478,7 +1482,8 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 				int addSum = billetBasicInfoAdd.getThreeStrandNoSum();
 				int strandNo = billetBasicInfoAdd.getThreeStrandNo();
 				int length = billetBasicInfoAdd.getThreeLength();
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				allBilletBasicInfoList.addAll(billetBasicInfoList);
 				log.info("3流保存钢坯实绩结束:"+ DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
 			}
 
@@ -1488,7 +1493,8 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 				int addSum = billetBasicInfoAdd.getFourStrandNoSum();
 				int strandNo = billetBasicInfoAdd.getFourStrandNo();
 				int length = billetBasicInfoAdd.getFourLength();
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				allBilletBasicInfoList.addAll(billetBasicInfoList);
 				log.info("4流保存钢坯实绩结束:"+ DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
 			}
 
@@ -1498,7 +1504,8 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 				int addSum = billetBasicInfoAdd.getFiveStrandNoSum();
 				int strandNo = billetBasicInfoAdd.getFiveStrandNo();
 				int length = billetBasicInfoAdd.getFiveLength();
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				allBilletBasicInfoList.addAll(billetBasicInfoList);
 				log.info("5流保存钢坯实绩结束:"+ DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
 			}
 
@@ -1508,7 +1515,8 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 				int addSum = billetBasicInfoAdd.getSixStrandNoSum();
 				int strandNo = billetBasicInfoAdd.getSixStrandNo();
 				int length = billetBasicInfoAdd.getSixLength();
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				allBilletBasicInfoList.addAll(billetBasicInfoList);
 				log.info("6流保存钢坯实绩结束:"+ DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
 			}
 
@@ -1518,7 +1526,8 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 				int addSum = billetBasicInfoAdd.getSevenStrandNoSum();
 				int strandNo = billetBasicInfoAdd.getSevenStrandNo();
 				int length = billetBasicInfoAdd.getSevenLength();
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				allBilletBasicInfoList.addAll(billetBasicInfoList);
 				log.info("7流保存钢坯实绩结束:"+ DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
 			}
 
@@ -1528,20 +1537,19 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 				int addSum = billetBasicInfoAdd.getEightStrandNoSum();
 				int strandNo = billetBasicInfoAdd.getEightStrandNo();
 				int length = billetBasicInfoAdd.getEightLength();
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, addSum, strandNo, length);
+				allBilletBasicInfoList.addAll(billetBasicInfoList);
 				log.info("8流保存钢坯实绩结束:"+ DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
 			}
-			// 查询整个炉钢坯基础信息
-			List<BilletBasicInfo> resultList = billetBasicInfoService.list(new LambdaQueryWrapper<BilletBasicInfo>()
-					.eq(BilletBasicInfo::getCcmNo, billetBasicInfoAdd.getCcmNo())
-					.eq(BilletBasicInfo::getHeatNo, billetBasicInfoAdd.getHeatNo())
-					.eq(BilletBasicInfo::getShift, billetBasicInfoAdd.getShift())
-					.eq(BilletBasicInfo::getShiftGroup, billetBasicInfoAdd.getShiftGroup()));
-			log.info("开始组批号更新处理:"+ DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
-			if (oConvertUtils.listIsNotEmpty(resultList) && resultList.size() >= 4) {
+
+			List<BilletBasicInfo> finalBilletBasicInfoList = updateBilletBasicInfoAndSave(allBilletBasicInfoList);
+
+			billetBasicInfoService.saveOrUpdateBatch(finalBilletBasicInfoList);
+
+			if (oConvertUtils.listIsNotEmpty(finalBilletBasicInfoList) && finalBilletBasicInfoList.size() >= 4) {
 				// 收集所有需要更新的钢坯
 				List<BilletBasicInfo> updateList = new ArrayList<>();
-				int size = resultList.size();
+				int size = finalBilletBasicInfoList.size();
 				int maxProcessed = (size / 4) * 4; // 计算可处理的最大4的倍数
 				for (int i = 0; i < maxProcessed; i += 4) {
 					int start = i;
@@ -1549,7 +1557,7 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 					// 生成组批号(优化:直接生成随机数,避免雪花算法开销)
 					String assemblyNumber = generateUniqueAssemblyNumber(billetBasicInfoAdd.getHeatNo());
 					// 为当前分组的4条记录设置相同组批号,并添加到更新列表
-					List<BilletBasicInfo> batch = resultList.subList(start, end);
+					List<BilletBasicInfo> batch = finalBilletBasicInfoList.subList(start, end);
 					batch.forEach(item -> item.setAssemblyNumber(assemblyNumber));
 					updateList.addAll(batch);
 				}
@@ -1558,10 +1566,10 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 			log.info("结束组批号更新处理:"+ DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
 
 			// 更新炉次传递单中的总数和坯重
-			double totalBilletWeight = resultList.stream()
+			double totalBilletWeight = allBilletBasicInfoList.stream()
 					.mapToDouble(BilletBasicInfo::getBilletWeight)
 					.sum();
-			billetHotsend.setAmountTotal(resultList.size());
+			billetHotsend.setAmountTotal(allBilletBasicInfoList.size());
 			billetHotsend.setBlankOutput(totalBilletWeight);
 			billetHotsendBaseMapper.updateById(billetHotsend);
 
@@ -1569,7 +1577,7 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 
 			// 更新炉次实绩中的总数和坯重
 			heatsActuals.setBlankOutput(totalBilletWeight);
-			heatsActuals.setBilletSum(resultList.size());
+			heatsActuals.setBilletSum(allBilletBasicInfoList.size());
 			heatsActualsService.updateById(heatsActuals);
 
 			log.info("炉次实绩更新处理结束:"+ DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
@@ -1656,45 +1664,52 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 			}
 
 			log.info("开始处理每流剩余:{}" + DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
+			List<BilletBasicInfo> result = new ArrayList<>();
 			if (oneStrandRemainSum > 0){
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, oneStrandRemainSum, 1, billetBasicInfoAdd.getOneLength());
+				List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, oneStrandRemainSum, 1, billetBasicInfoAdd.getOneLength());
+				result.addAll(billetBasicInfoList);
 			}
 			if (twoStrandRemainSum > 0){
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, twoStrandRemainSum, 2, billetBasicInfoAdd.getTwoLength());
+				List<BilletBasicInfo> billetBasicInfoList =saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, twoStrandRemainSum, 2, billetBasicInfoAdd.getTwoLength());
+				result.addAll(billetBasicInfoList);
 			}
 			if (threeStrandRemainSum > 0){
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, threeStrandRemainSum, 3, billetBasicInfoAdd.getThreeLength());
+				List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, threeStrandRemainSum, 3, billetBasicInfoAdd.getThreeLength());
+				result.addAll(billetBasicInfoList);
 			}
 			if (fourStrandRemainSum > 0){
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, fourStrandRemainSum, 4, billetBasicInfoAdd.getFourLength());
+				List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, fourStrandRemainSum, 4, billetBasicInfoAdd.getFourLength());
+				result.addAll(billetBasicInfoList);
 			}
 			if (fiveStrandRemainSum > 0){
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, fiveStrandRemainSum, 5, billetBasicInfoAdd.getFiveLength());
+				List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, fiveStrandRemainSum, 5, billetBasicInfoAdd.getFiveLength());
+				result.addAll(billetBasicInfoList);
 			}
 			if (sixStrandRemainSum > 0){
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, sixStrandRemainSum, 6, billetBasicInfoAdd.getSixLength());
+				List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, sixStrandRemainSum, 6, billetBasicInfoAdd.getSixLength());
+				result.addAll(billetBasicInfoList);
 			}
 			// 7不存在去棒一
 			if (oConvertUtils.isNotEmpty(billetBasicInfoAdd.getSevenStrandNoSum()) && billetBasicInfoAdd.getSevenStrandNoSum() > 0){
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, billetBasicInfoAdd.getSevenStrandNoSum(), 7, billetBasicInfoAdd.getSevenLength());
+				List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, billetBasicInfoAdd.getSevenStrandNoSum(), 7, billetBasicInfoAdd.getSevenLength());
+				result.addAll(billetBasicInfoList);
 			}
 			// 8流不存在去棒一
 			if (oConvertUtils.isNotEmpty(billetBasicInfoAdd.getEightStrandNoSum()) && billetBasicInfoAdd.getEightStrandNoSum() > 0){
-				saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, billetBasicInfoAdd.getSevenStrandNoSum(), 8, billetBasicInfoAdd.getSevenLength());
+				List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, billetBasicInfoAdd.getSevenStrandNoSum(), 8, billetBasicInfoAdd.getSevenLength());
+				result.addAll(billetBasicInfoList);
 			}
 			log.info("结束处理每流剩余:{}" + DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
-			// 查询去除棒一,整炉 剩余钢坯基础信息
-			List<BilletBasicInfo> result = billetBasicInfoService.list(new LambdaQueryWrapper<BilletBasicInfo>()
-					.eq(BilletBasicInfo::getCcmNo, billetBasicInfoAdd.getCcmNo())
-					.eq(BilletBasicInfo::getHeatNo, billetBasicInfoAdd.getHeatNo())
-					.eq(BilletBasicInfo::getShift, billetBasicInfoAdd.getShift())
-					.eq(BilletBasicInfo::getShiftGroup, billetBasicInfoAdd.getShiftGroup())
-					.isNull(BilletBasicInfo::getBelongTable));
+
+			List<BilletBasicInfo> finalBilletBasicInfoList = updateBilletBasicInfoAndSave(result);
+
+			billetBasicInfoService.saveOrUpdateBatch(finalBilletBasicInfoList);
+
 			log.info("开始整炉去除棒一组批更新处理:{}" + DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
-			if (oConvertUtils.listIsNotEmpty(result) && result.size() >= 4) {
+			if (oConvertUtils.listIsNotEmpty(finalBilletBasicInfoList) && finalBilletBasicInfoList.size() >= 4) {
 				// 收集所有需要更新的钢坯
 				List<BilletBasicInfo> updateList = new ArrayList<>();
-				int size = result.size();
+				int size = finalBilletBasicInfoList.size();
 				int maxProcessed = (size / 4) * 4; // 计算可处理的最大4的倍数
 				for (int i = 0; i < maxProcessed; i += 4) {
 					int start = i;
@@ -1702,7 +1717,7 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 					// 生成组批号(优化:直接生成随机数,避免雪花算法开销)
 					String assemblyNumber = generateUniqueAssemblyNumber(billetBasicInfoAdd.getHeatNo());
 					// 为当前分组的4条记录设置相同组批号,并添加到更新列表
-					List<BilletBasicInfo> batch = result.subList(start, end);
+					List<BilletBasicInfo> batch = finalBilletBasicInfoList.subList(start, end);
 					batch.forEach(item -> item.setAssemblyNumber(assemblyNumber));
 					updateList.addAll(batch);
 				}
@@ -1711,13 +1726,13 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 			log.info("结束整炉去除棒一组批更新处理:{}" + DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
 
 			// 去棒一的和组批的合计钢坯实绩信息
-			result.addAll(rollClubOneResultList);
+			finalBilletBasicInfoList.addAll(rollClubOneResultList);
 
 			// 更新炉次传递单中的总数和坯重
-			double totalBilletWeight = result.stream()
+			double totalBilletWeight = finalBilletBasicInfoList.stream()
 					.mapToDouble(BilletBasicInfo::getBilletWeight)
 					.sum();
-			billetHotsend.setAmountTotal(result.size());
+			billetHotsend.setAmountTotal(finalBilletBasicInfoList.size());
 			billetHotsend.setBlankOutput(totalBilletWeight);
 
 			if (oConvertUtils.listIsNotEmpty(rollClubOneResultList) && rollClubOneResultList.size() > 0){
@@ -1728,23 +1743,10 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 
 			// 更新炉次实绩中的总数和坯重
 			heatsActuals.setBlankOutput(totalBilletWeight);
-			heatsActuals.setBilletSum(result.size());
+			heatsActuals.setBilletSum(finalBilletBasicInfoList.size());
 			log.info("炉次实绩更新:{}" + DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
 			heatsActualsService.updateById(heatsActuals);
 		}
-
-		// 根据炉号、铸机号、炉号查询钢坯实绩信息
-		List<BilletBasicInfo> allBilletBasicInfoList = billetBasicInfoService.list(new LambdaQueryWrapper<BilletBasicInfo>()
-				.eq(BilletBasicInfo::getCcmNo, billetBasicInfoAdd.getCcmNo())
-				.eq(BilletBasicInfo::getHeatNo, billetBasicInfoAdd.getHeatNo())
-				.eq(BilletBasicInfo::getShift, billetBasicInfoAdd.getShift())
-				.eq(BilletBasicInfo::getShiftGroup, billetBasicInfoAdd.getShiftGroup()));
-		// 处理钢坯实绩,流内顺序号、和炉内顺序号
-		if (oConvertUtils.listIsNotEmpty(allBilletBasicInfoList)){
-			updateBilletBasicInfoAndSave(allBilletBasicInfoList);
-		}
-		log.info("钢坯实绩流内顺序号处理结束:"+ DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
-
 		return "整炉补录成功!";
 	}
 
@@ -1803,9 +1805,9 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 	 * 处理流内顺序号、和炉内顺序号
 	 * @param resultList
 	 */
-	public void updateBilletBasicInfoAndSave(List<BilletBasicInfo> resultList) {
+	public List<BilletBasicInfo> updateBilletBasicInfoAndSave(List<BilletBasicInfo> resultList) {
 		if (oConvertUtils.listIsEmpty(resultList)) {
-			return;
+			return null;
 		}
 		Map<Integer, List<BilletBasicInfo>> strandNoGroupMap = resultList.stream()
 				.collect(Collectors.groupingBy(BilletBasicInfo::getStrandNo));
@@ -1817,8 +1819,7 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 		});
 		// 设置炉内顺序号(全局顺序)
 		IntStream.range(0, resultList.size()).forEach(i -> resultList.get(i).setHeatnoIndex(i + 1));
-		billetBasicInfoService.updateBatchById(resultList);
-
+		return resultList;
 	}
 
 	/**
@@ -1829,7 +1830,7 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 	 * @param strandNo
 	 * @param length
 	 */
-	private void saveBilletBasicInfoList(BilletBasicInfo billetBasicInfo, BilletBasicInfoAdd billetBasicInfoAdd, int addSum, int strandNo, int length) {
+	private List<BilletBasicInfo> saveBilletBasicInfoList(BilletBasicInfo billetBasicInfo, BilletBasicInfoAdd billetBasicInfoAdd, int addSum, int strandNo, int length) {
 		List<BilletBasicInfo> resultList = new ArrayList<>();
 
 		// 批量查询定尺规则
@@ -1865,7 +1866,7 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 			billet.setBilletWeight(weight);
 			resultList.add(billet);
 		}
-		billetBasicInfoService.saveOrUpdateBatch(resultList);
+		return resultList;
 	}
 
 	/**