Browse Source

根据票据维护装运单定尺跟目的地

lingpeng.li 3 weeks ago
parent
commit
83c6291891

+ 8 - 5
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/controller/StorageBillController.java

@@ -312,11 +312,14 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
 				bill.setAmountTotal(print.getAmountTotal());
 				bill.setSize(print.getSize());
 				bill.setBrandNum(print.getBrandNum());
-				try {
-					Integer value = Integer.valueOf(print.getNumber());
-					bill.setCarAllNum(value);
-				} catch (NumberFormatException e) {
-					System.out.println("车次序号格式不正确:" + print.getNumber());
+				String numberStr = print.getNumber();
+				if (StringUtils.isNotBlank(numberStr)) {
+					try {
+						Integer value = Integer.valueOf(numberStr.trim());
+						bill.setCarAllNum(value);
+					} catch (NumberFormatException e) {
+						log.warn("车次序号格式不正确:{}", numberStr);
+					}
 				}
 
 				try {

+ 45 - 19
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/service/impl/StorageBillPrintServiceImpl.java

@@ -152,6 +152,50 @@ public class StorageBillPrintServiceImpl extends ServiceImpl<StorageBillPrintMap
 
         // 保存或更新
         this.saveOrUpdate(storageBillPrint);
+
+        // 查询当前 StorageBill 实体
+        StorageBill storageBill = storageBillMapper.selectById(addDTO.getStorageBillId());
+
+        if (storageBill != null) {
+            LambdaUpdateWrapper<StorageBill> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.eq(StorageBill::getId, addDTO.getStorageBillId());
+
+            boolean needUpdate = false;
+
+            // 仅当数据库中的 destination 为 null 且 addDTO 中有值时更新
+            if (StringUtils.isBlank(storageBill.getDestination()) && StringUtils.isNotBlank(addDTO.getDestination())) {
+                updateWrapper.set(StorageBill::getDestination, addDTO.getDestination());
+                BilletHotsendTypeConfig byParam = billetHotsendTypeConfigService.getByParam(addDTO);
+                if(oConvertUtils.isNotEmpty(byParam)){
+                    updateWrapper.set(StorageBill::getTypeConfigId, byParam.getId());
+                }
+
+                needUpdate = true;
+            }
+
+            // size 无需判断是否为 null,直接更新为格式化后的值
+            if (StringUtils.isNotBlank(addDTO.getSize())) {
+                String processedSize = Arrays.stream(addDTO.getSize().split(","))
+                        .map(String::trim)
+                        .map(s -> {
+                            try {
+                                double val = Double.parseDouble(s);
+                                double result = val < 20 ? val * 1000 : val;
+                                return String.valueOf((int) result);
+                            } catch (NumberFormatException e) {
+                                return s;
+                            }
+                        })
+                        .collect(Collectors.joining(","));
+                updateWrapper.set(StorageBill::getSize, processedSize);
+                needUpdate = true;
+            }
+
+            if (needUpdate) {
+                storageBillMapper.update(null, updateWrapper);
+            }
+        }
+
     }
 
 
@@ -1773,8 +1817,6 @@ public class StorageBillPrintServiceImpl extends ServiceImpl<StorageBillPrintMap
 
             int fetchCount = delta / 4;
 
-
-
             // 获取传递单
             BilletHotsend billetHotsend = billetHotsendBaseService.getOne(
                     new LambdaQueryWrapper<BilletHotsend>()
@@ -1842,10 +1884,9 @@ public class StorageBillPrintServiceImpl extends ServiceImpl<StorageBillPrintMap
                     billetOriginalProductRecordService.updateById(originalRecord);
 
                 } catch (Exception e) {
-                    log.error("解析或更新 stack_length 出错", e);
+                    log.error("解析 stack_length 出错", e);
                 }
             }
-
         }
 
         result.put("success", "堆垛保存完成");
@@ -1896,19 +1937,4 @@ public class StorageBillPrintServiceImpl extends ServiceImpl<StorageBillPrintMap
         return stackingAndLoadingVehiclesList.stream().collect(Collectors.groupingBy(stackingAndLoadingVehicles -> stackingAndLoadingVehicles.getHeatNo() + "," + stackingAndLoadingVehicles.getShiftGroup() + "," + stackingAndLoadingVehicles.getShift()));
     }
 
-    public static Integer safeToInteger(String str) {
-        if (StringUtils.isBlank(str)) {
-            return 0;
-        }
-        try {
-            return Integer.parseInt(str);
-        } catch (NumberFormatException e) {
-            try {
-                // 尝试转成小数再取整
-                return new BigDecimal(str).intValue();
-            } catch (Exception ex) {
-                return 0;
-            }
-        }
-    }
 }