Browse Source

原始记录添加炉号,验证炉号在当班是否已经存在

lingpeng.li 2 weeks ago
parent
commit
4ab3e7c49b

+ 23 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetOriginalProductRecord/controller/BilletOriginalProductRecordController.java

@@ -167,6 +167,29 @@ public class BilletOriginalProductRecordController extends JeecgController<Bille
 			}
 		}
 
+
+		// ====================== 新增:炉号班次唯一性验证 ======================
+		String currentHeatNo = billetOriginalProductRecord.getHeatNo();
+		// 1. 检查 BilletHotsend 中是否存在相同炉号+班次+班组的记录
+		LambdaQueryWrapper<BilletHotsend> hotsendQuery = new LambdaQueryWrapper<>();
+		hotsendQuery.eq(BilletHotsend::getHeatNo, currentHeatNo)
+				.eq(BilletHotsend::getShift, finalShift)
+				.eq(BilletHotsend::getShiftGroup, finalShiftGroup)
+				.eq(BilletHotsend::getCcmNo, billetOriginalProductRecord.getCcmNo());
+		if (billetHotsendBaseService.count(hotsendQuery) > 0) {
+			return Result.error("当前炉号已存在于当前班次(炉次传递单)");
+		}
+
+		// 2. 检查 billetOriginalProductRecord 中是否存在相同炉号+班次+班组的记录
+		LambdaQueryWrapper<BilletOriginalProductRecord> originalQuery = new LambdaQueryWrapper<>();
+		originalQuery.eq(BilletOriginalProductRecord::getHeatNo, currentHeatNo)
+				.eq(BilletOriginalProductRecord::getShift, finalShift)
+				.eq(BilletOriginalProductRecord::getShiftGroup, finalShiftGroup)
+				.eq(BilletOriginalProductRecord::getCcmNo, billetOriginalProductRecord.getCcmNo());
+		if (billetOriginalProductRecordService.count(originalQuery) > 0) {
+			return Result.error("当前炉号已存在于当前班次(原始记录)");
+		}
+
 		// 计算目标创建时间
 		Date targetCreateTime = new Date(); // 默认使用当前时间
 

+ 9 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetOriginalProductRecord/service/impl/BilletOriginalProductRecordServiceImpl.java

@@ -296,8 +296,17 @@ public class BilletOriginalProductRecordServiceImpl extends ServiceImpl<BilletOr
         QualityInspectionStatistics qualityInspectionStatistics = qualityInspectionStatisticsMapper.selectOne(qualityQueryWrapper);
 
         Map<String, Object> result = new HashMap<>();
+
+        // 获取米重数据
+        String meterWeightKey = String.format("ccmno:meter:weight:%s", queryDTO.getCcmNo());
+        String mWeightStr = oConvertUtils.getString(redisTemplate.opsForValue().get(meterWeightKey));
+        BigDecimal meterWeightFactor = StringUtils.isNotEmpty(mWeightStr)
+                ? new BigDecimal(mWeightStr)
+                : BigDecimal.ONE; // 如果没有米重数据,使用1作为系数
+
         result.put("records", resultList);
         result.put("statistics", qualityInspectionStatistics);
+        result.put("meterWeight", meterWeightFactor);
 
         return result;
     }