Selaa lähdekoodia

编辑堆垛起垛前根据炉号定尺进行清空在起垛

qiangxuan 2 viikkoa sitten
vanhempi
sitoutus
306bbf52c1

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

@@ -11,6 +11,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -261,6 +262,9 @@ public class BilletOriginalProductRecordController extends JeecgController<Bille
 			 // 定尺
 			 String size = parts[1];
 			 String typeConfigId = parts[2];
+			 // 根据炉号清空已起垛数据
+			 clearStackByHeatNo(bopr.getCcmNo(), bopr.getHeatNo(), size, typeConfigId);
+			 // 根据炉号、数量进行起垛
 			 handleAddStack(bopr.getCcmNo(), bopr.getHeatNo(), stackingSum, size, typeConfigId);
 			 // 备注stackInfo字段重置
 			 bopr.setStackInfo("");
@@ -269,6 +273,45 @@ public class BilletOriginalProductRecordController extends JeecgController<Bille
 		 billetOriginalProductRecordService.updateById(bopr);
 	 }
 
+	 /**
+	  * 清空指定炉已经起垛的 数据
+	  * @param ccmNo
+	  * @param heatNo
+	  * @param typeConfigId
+	  */
+	 private void clearStackByHeatNo(String ccmNo, String heatNo, String size, String typeConfigId) {
+		 if (oConvertUtils.isEmpty(ccmNo) || oConvertUtils.isEmpty(heatNo) || oConvertUtils.isEmpty(typeConfigId) || oConvertUtils.isEmpty(size)){
+			 log.info("{}{}", "清空指定炉已经起垛的数据时参数为空:", ccmNo + ">|<" + heatNo + ">|<" + size + ">|<" + typeConfigId);
+			 return;
+		 }
+		 // 根据ccmNo、heatNo、typeConfigId查询出已经起垛的记录
+		 LambdaQueryWrapper<StackingAndLoadingVehicles> queryWrapper = new LambdaQueryWrapper<>();
+		 queryWrapper.eq(StackingAndLoadingVehicles::getCcmNo, ccmNo)
+				 .eq(StackingAndLoadingVehicles::getHeatNo, heatNo)
+				 .eq(StackingAndLoadingVehicles::getSize, size)
+				 .eq(StackingAndLoadingVehicles::getTypeConfigId, typeConfigId);
+		 List<StackingAndLoadingVehicles> stackingAndLoadingVehiclesList = stackingAndLoadingVehiclesMapper.selectList(queryWrapper);
+		 if (oConvertUtils.listIsEmpty(stackingAndLoadingVehiclesList)){
+			 log.info("{}{}", "该炉没有需要清空的堆垛信息:", heatNo);
+			 return;
+		 }
+		 List<String> ids = stackingAndLoadingVehiclesList.stream().map(StackingAndLoadingVehicles::getId).collect(Collectors.toList());
+		 // 创建更新包装器
+		 LambdaUpdateWrapper<StackingAndLoadingVehicles> updateWrapper = new LambdaUpdateWrapper<>();
+		 updateWrapper.in(StackingAndLoadingVehicles::getId, ids)
+				 .set(StackingAndLoadingVehicles::getBilletNos, null)
+				 .set(StackingAndLoadingVehicles::getSpec, null)
+				 .set(StackingAndLoadingVehicles::getSteel, null)
+				 .set(StackingAndLoadingVehicles::getSize, null)
+				 .set(StackingAndLoadingVehicles::getShift, null)
+				 .set(StackingAndLoadingVehicles::getHeatNo, null)
+				 .set(StackingAndLoadingVehicles::getCreateDate, null)
+				 .set(StackingAndLoadingVehicles::getShiftGroup, null)
+				 .set(StackingAndLoadingVehicles::getUpdateTime, new Date());
+		 // 执行批量更新
+		 stackingAndLoadingVehiclesMapper.update(null, updateWrapper);
+	 }
+
 	 /***
 	  * 处理起垛
 	  * @param ccmNo