Selaa lähdekoodia

看板确认目的地同步、装运单编辑同步逻辑调整和优化

qiangxuan 2 kuukautta sitten
vanhempi
sitoutus
f6c6eb956e

+ 68 - 20
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/service/impl/StorageBillServiceImpl.java

@@ -2800,7 +2800,6 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
                     rollClubCommon.setBilletWeight(x.getBlankOutput());
                     rollClubCommonHotChargeList.add(rollClubCommon);
                 });
-                log.info("{}{}", "装运单编辑,棒线临时表数据同步总条数:", billetAutoTmpHotChargeList.size());
 
                 // 根据ID获取钢坯配置信息
                 BilletHotsend billetHotsend = new BilletHotsend();
@@ -2956,7 +2955,8 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
                 billetBasicInfoService.saveOrUpdateBatch(billetBasicInfoStackList);
 
             }
-
+            log.info("{}{}", "B端编辑装运单确认目的地,棒线临时表数据同步总条数:", rollClubCommonHotChargeList.size());
+            log.info("{}{}", "B端编辑装运单确认目的地,堆垛临时表数据同步总条数:", rollClubCommonStackList.size());
             // 合并堆垛数据、棒线数据
             rollClubCommonList.addAll(rollClubCommonStackList);
             rollClubCommonList.addAll(rollClubCommonHotChargeList);
@@ -2976,25 +2976,49 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
                 storageBill.setSpec(rollClubCommon.getSpec());//规格
                 storageBill.setHeatNo(rollClubCommon.getHeatNo());// 炉号
             }
-            List<Integer> sizeList = rollClubCommonList.stream().map(RollClubCommon::getLength).distinct().collect(Collectors.toList());
-            String sizeString = String.join(",", sizeList.stream().map(String::valueOf).collect(Collectors.toList()));
-            storageBill.setSize(sizeString);// 定尺
+            // 装运单编辑确认目的地,同步时,维护定尺
+            List<Integer> sizeIntList = billetBasicInfoAllList.stream().map(BilletBasicInfo::getLength).distinct().collect(Collectors.toList());
+            List<String> sizeStrList = sizeIntList.stream().map(String::valueOf).collect(Collectors.toList());
+            if(oConvertUtils.listIsNotEmpty(sizeStrList)) {
+                String distinctSizeStr = sizeIntList.stream()
+                        .distinct()
+                        .map(String::valueOf)
+                        .collect(Collectors.joining(","));
+                String finalSizeStr = Optional.ofNullable(storageBill.getSize())
+                        .filter(oConvertUtils::isNotEmpty)
+                        .map(s -> s + "," + distinctSizeStr)
+                        .orElse(distinctSizeStr);
+                // 对 finalSizeStr 再次去重
+                String[] sizeArray = finalSizeStr.split(",");
+                Set<String> uniqueSizes = Arrays.stream(sizeArray)
+                        .filter(s -> s != null && !s.isEmpty())
+                        .collect(Collectors.toCollection(HashSet::new));
+                finalSizeStr = String.join(",", uniqueSizes);
+                storageBill.setSize(finalSizeStr);
+            }
 
-            List<String> assemblyNumberList = billetBasicInfoAllList.stream().map(BilletBasicInfo::getAssemblyNumber).filter(assemblyNumber -> oConvertUtils.isNotEmpty(assemblyNumber)).collect(Collectors.toList());
+            // 装运单编辑确认目的地,同步时,维护组批号
+            List<String> assemblyNumberList = billetBasicInfoAllList.stream().map(BilletBasicInfo::getAssemblyNumber)
+                    .filter(assemblyNumber -> oConvertUtils.isNotEmpty(assemblyNumber)).collect(Collectors.toList());
             if(oConvertUtils.listIsNotEmpty(assemblyNumberList)) {
-                String distinctAssemblyNumber = billetBasicInfoAllList.stream()
-                        .map(BilletBasicInfo::getAssemblyNumber)
-                        .filter(assemblyNumber -> oConvertUtils.isNotEmpty(assemblyNumber))
-                        .distinct().collect(Collectors.joining(","));
+                String distinctAssemblyNumber = assemblyNumberList.stream().distinct().collect(Collectors.joining(","));
                 String finalAssemblyNumber = Optional.ofNullable(storageBill.getAssemblyNumber())
                         .filter(oConvertUtils::isNotEmpty)
                         .map(s -> s + "," + distinctAssemblyNumber)
                         .orElse(distinctAssemblyNumber);
+
+                // 对 finalAssemblyNumber 再次去重
+                String[] assemblyNumberArray = finalAssemblyNumber.split(",");
+                Set<String> uniqueAssemblyNumbers = Arrays.stream(assemblyNumberArray)
+                        .filter(s -> s != null && !s.isEmpty())
+                        .collect(Collectors.toCollection(HashSet::new));
+                finalAssemblyNumber = String.join(",", uniqueAssemblyNumbers);
                 storageBill.setAssemblyNumber(finalAssemblyNumber);
             }
             baseMapper.updateById(storageBill);
             // 物理删除钢坯临时表记录
             billetAutoTmpService.removeBatchByIds(billetAutoTmpList.stream().map(BilletAutoTmp::getId).collect(Collectors.toList()));
+            log.info("{}{}", "******B端编辑装运单确认目的地,临时表同步成功总条数:", billetBasicInfoAllList.size());
             result.put("success", "B端编辑装运单未知目的地明细同步成功!");
             return result;
         } catch (Exception e) {
@@ -3055,7 +3079,6 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
                     rollClubCommon.setBilletWeight(x.getBlankOutput());
                     rollClubCommonHotChargeList.add(rollClubCommon);
                 });
-                log.info("{}{}", "监控看板确认目的地,棒线临时表数据同步总条数:", rollClubCommonHotChargeList.size());
 
                 // 根据ID获取钢坯配置信息
                 BilletHotsend billetHotsend = new BilletHotsend();
@@ -3211,7 +3234,8 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
                 billetBasicInfoService.saveOrUpdateBatch(billetBasicInfoStackList);
 
             }
-
+            log.info("{}{}", "监控看板确认目的地,棒线临时表数据同步总条数:", rollClubCommonHotChargeList.size());
+            log.info("{}{}", "监控看板确认目的地,堆垛临时表数据同步总条数:", rollClubCommonStackList.size());
             // 合并堆垛数据、棒线数据
             rollClubCommonList.addAll(rollClubCommonStackList);
             rollClubCommonList.addAll(rollClubCommonHotChargeList);
@@ -3231,27 +3255,51 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
                 storageBill.setSpec(rollClubCommon.getSpec());//规格
                 storageBill.setHeatNo(rollClubCommon.getHeatNo());// 炉号
             }
-            List<Integer> sizeList = rollClubCommonList.stream().map(RollClubCommon::getLength).distinct().collect(Collectors.toList());
-            String sizeString = String.join(",", sizeList.stream().map(String::valueOf).collect(Collectors.toList()));
-            storageBill.setSize(sizeString);// 定尺
+            // 监控看板确认目的地,同步时,维护定尺
+            List<Integer> sizeIntList = billetBasicInfoAllList.stream().map(BilletBasicInfo::getLength).distinct().collect(Collectors.toList());
+            List<String> sizeStrList = sizeIntList.stream().map(String::valueOf).collect(Collectors.toList());
+            if(oConvertUtils.listIsNotEmpty(sizeStrList)) {
+                String distinctSizeStr = sizeIntList.stream()
+                        .distinct()
+                        .map(String::valueOf)
+                        .collect(Collectors.joining(","));
+                String finalSizeStr = Optional.ofNullable(storageBill.getSize())
+                        .filter(oConvertUtils::isNotEmpty)
+                        .map(s -> s + "," + distinctSizeStr)
+                        .orElse(distinctSizeStr);
+                // 对 finalSizeStr 再次去重
+                String[] sizeArray = finalSizeStr.split(",");
+                Set<String> uniqueSizes = Arrays.stream(sizeArray)
+                        .filter(s -> s != null && !s.isEmpty())
+                        .collect(Collectors.toCollection(HashSet::new));
+                finalSizeStr = String.join(",", uniqueSizes);
+                storageBill.setSize(finalSizeStr);
+            }
 
+            // 监控看板确认目的地,同步时,维护组批号
             List<String> assemblyNumberList = billetBasicInfoAllList.stream().map(BilletBasicInfo::getAssemblyNumber).filter(assemblyNumber -> oConvertUtils.isNotEmpty(assemblyNumber)).collect(Collectors.toList());
             if(oConvertUtils.listIsNotEmpty(assemblyNumberList)) {
-                String distinctAssemblyNumber = billetBasicInfoAllList.stream()
-                        .map(BilletBasicInfo::getAssemblyNumber)
-                        .filter(assemblyNumber -> oConvertUtils.isNotEmpty(assemblyNumber))
-                        .distinct().collect(Collectors.joining(","));
+                String distinctAssemblyNumber = assemblyNumberList.stream().distinct().collect(Collectors.joining(","));
                 String finalAssemblyNumber = Optional.ofNullable(storageBill.getAssemblyNumber())
                         .filter(oConvertUtils::isNotEmpty)
                         .map(s -> s + "," + distinctAssemblyNumber)
                         .orElse(distinctAssemblyNumber);
+
+                // 对 finalAssemblyNumber 再次去重
+                String[] assemblyNumberArray = finalAssemblyNumber.split(",");
+                Set<String> uniqueAssemblyNumbers = Arrays.stream(assemblyNumberArray)
+                        .filter(s -> s != null && !s.isEmpty())
+                        .collect(Collectors.toCollection(HashSet::new));
+                finalAssemblyNumber = String.join(",", uniqueAssemblyNumbers);
                 storageBill.setAssemblyNumber(finalAssemblyNumber);
             }
             baseMapper.updateById(storageBill);
 
             // 物理删除钢坯临时表记录
             billetAutoTmpService.removeBatchByIds(billetAutoTmpList.stream().map(BilletAutoTmp::getId).collect(Collectors.toList()));
-            result.put("success", "B端监控看板确认目的地同步成功!");
+
+            log.info("{}{}", "******监控看板确认目的地,临时表同步成功总条数:", billetBasicInfoAllList.size());
+            result.put("success", "监控看板确认目的地同步成功!");
             return result;
         }catch (Exception e){
             // 记录异常日志