qiangxuan há 5 meses atrás
pai
commit
a03bda1e88

+ 42 - 30
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/stackingAndLoadingVehicles/service/impl/StackingAndLoadingVehiclesServiceImpl.java

@@ -236,21 +236,21 @@ public class StackingAndLoadingVehiclesServiceImpl extends ServiceImpl<StackingA
         String finalCacheShintGroup = redisTemplate.opsForValue().get(keyShiftGroup).toString();
         String finalCacheShint = redisTemplate.opsForValue().get(keyShift).toString();
         // 根据铸机号、位置、层数、类型配置ID更新 初始化容器中的垛位信息
-        stackingAndLoadingVehiclesList.forEach(x -> {
-            LambdaUpdateWrapper<StackingAndLoadingVehicles> updateWrapper = new LambdaUpdateWrapper();
-            updateWrapper.eq(StackingAndLoadingVehicles::getId, x.getId())
-                    .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);
-            StackingAndLoadingVehicles stackingAndLoadingVehicles = new StackingAndLoadingVehicles();
-            BeanUtils.copyProperties(x, stackingAndLoadingVehicles);
-            stackingAndLoadingVehiclesMapper.update(stackingAndLoadingVehicles, updateWrapper);
-        });
+        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);
         // 3 保存 下垛日志    stacking_up_log
         List<StackingDownLog> stackingDownLogList = new ArrayList<>();
         List<RollClubTwoDetails> addRollClubTwoDetailsList = new ArrayList<>();
@@ -866,24 +866,14 @@ public class StackingAndLoadingVehiclesServiceImpl extends ServiceImpl<StackingA
         if (oConvertUtils.listIsEmpty(stackingAndLoadingVehiclesList)) {
             return "钢坯叛废记录不存在!";
         }
+
+        // 批量更新 StackingAndLoadingVehicles
+        batchUpdateStackingAndLoadingVehicles(stackingAndLoadingVehiclesList);
+
+        // 生成叛废记录
         List<BilletHotsendAbandons> billetHotsendAbandonsList = new ArrayList<>();
         // 2 发车后,动态更新容器中的垛位信息 初始化
         stackingAndLoadingVehiclesList.forEach(x -> {
-            // 叛废后,动态更新容器中的垛位信息 初始化
-            LambdaUpdateWrapper<StackingAndLoadingVehicles> updateWrapper = new LambdaUpdateWrapper();
-            updateWrapper.eq(StackingAndLoadingVehicles::getId, x.getId())
-                    .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);
-            StackingAndLoadingVehicles stackingAndLoadingVehicles = new StackingAndLoadingVehicles();
-            BeanUtils.copyProperties(x, stackingAndLoadingVehicles);
-            stackingAndLoadingVehiclesMapper.update(stackingAndLoadingVehicles, updateWrapper);
-
             // 拆分四个钢坯集,组成叛废记录
             List<String> sizeList = Arrays.asList(x.getSize().split(","));
             List<String> billetNosList = Arrays.asList(x.getBilletNos().split(","));
@@ -932,6 +922,28 @@ public class StackingAndLoadingVehiclesServiceImpl extends ServiceImpl<StackingA
         return "钢坯叛废成功!";
     }
 
+    /**
+     *  初始化堆垛公共容器
+     * @param stackingAndLoadingVehiclesList
+     */
+    private void batchUpdateStackingAndLoadingVehicles(List<StackingAndLoadingVehicles> stackingAndLoadingVehiclesList) {
+        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);
+    }
+
     /**
      * 根据班组班别对钢坯信息进行分组
      *