Merge remote-tracking branch 'origin/0.8.X' into 0.8.X

This commit is contained in:
2025-11-03 17:06:30 +08:00
21 changed files with 5026 additions and 16 deletions

View File

@@ -230,7 +230,8 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
contentMap.put("enter_coil_no", bo.getEnterCoilNo()); // 入场钢卷号(唯一不变)
contentMap.put("current_coil_no", currentCoilNo); // 当前钢卷号(可变)
contentMap.put("coil_id", "null"); // 钢卷ID新增时暂时为null插入后更新
contentMap.put("coil_id", "null"); // 初始钢卷ID新增时暂时为null插入后更新
contentMap.put("current_coil_id", "null"); // 当前有效的钢卷ID新增时暂时为null插入后更新
// 创建steps数组
List<Map<String, Object>> steps = new ArrayList<>();
@@ -399,15 +400,17 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
if (newCoil.getItemId() == null) {
newCoil.setItemId(oldCoil.getItemId());
}
// 确保warehouseId有值如果前端没传使用原值
if (newCoil.getWarehouseId() == null) {
newCoil.setWarehouseId(oldCoil.getWarehouseId());
}
validEntityBeforeSave(newCoil);
boolean flag = baseMapper.insert(newCoil) > 0;
if (flag) {
bo.setCoilId(newCoil.getCoilId());
// 如果生成了新二维码,更新二维码中的coilId
if (warehouseChanged) {
updateQrcodeCoilId(qrcodeRecordId, newCoil.getCoilId());
}
// 无论库区是否变化都需要更新二维码中的current_coil_id
updateQrcodeCoilId(qrcodeRecordId, newCoil.getCoilId());
}
return flag;
}
@@ -430,7 +433,8 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
contentMap.put("enter_coil_no", oldCoil.getEnterCoilNo()); // 入场钢卷号(始终不变)
contentMap.put("current_coil_no", currentCoilNo); // 当前钢卷号
contentMap.put("coil_id", "null"); // 钢卷ID更新时暂时为null插入后更新
contentMap.put("coil_id", String.valueOf(oldCoil.getCoilId())); // 初始钢卷ID记录最初的ID
contentMap.put("current_coil_id", "null"); // 当前钢卷ID更新时暂时为null插入后更新
// 复制原钢卷的历史steps
List<Map<String, Object>> steps = new ArrayList<>();
@@ -630,7 +634,8 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
Map<String, Object> contentMap = new HashMap<>();
contentMap.put("enter_coil_no", oldCoil.getEnterCoilNo());
contentMap.put("current_coil_no", newCoilBo.getCurrentCoilNo());
contentMap.put("coil_id", "null"); // 钢卷ID分卷时暂时为null插入后更新
contentMap.put("coil_id", String.valueOf(oldCoil.getCoilId())); // 初始钢卷ID记录原钢卷的ID
contentMap.put("current_coil_id", "null"); // 当前钢卷ID分卷时暂时为null插入后更新
// 复制原钢卷的历史steps
List<Map<String, Object>> steps = new ArrayList<>();
@@ -700,7 +705,8 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
}
contentMap.put("enter_coil_no", enterCoilNo);
contentMap.put("current_coil_no", mergedCoilBo.getCurrentCoilNo());
contentMap.put("coil_id", "null"); // 钢卷ID合卷时暂时为null,插入后更新
contentMap.put("coil_id", "null"); // 初始钢卷ID合卷时为null
contentMap.put("current_coil_id", "null"); // 当前钢卷ID合卷时暂时为null插入后更新
// 合并所有参与合卷的原始钢卷的历史steps
List<Map<String, Object>> steps = new ArrayList<>();
@@ -790,8 +796,13 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> contentMap = objectMapper.readValue(record.getContent(), Map.class);
// 更新coilId
contentMap.put("coil_id", String.valueOf(coilId));
// 如果是第一次设置coilId从"null"变为实际ID则同时设置coil_id和current_coil_id
if ("null".equals(contentMap.get("coil_id"))) {
contentMap.put("coil_id", String.valueOf(coilId)); // 初始ID不再改变
}
// 始终更新current_coil_id为最新的钢卷ID
contentMap.put("current_coil_id", String.valueOf(coilId));
// 更新二维码记录
String newContentJson = objectMapper.writeValueAsString(contentMap);
@@ -854,6 +865,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
// 更新当前钢卷号到最外层(方便快速查看)
contentMap.put("current_coil_no", bo.getCurrentCoilNo());
// 更新当前钢卷ID注意这里需要获取新插入的钢卷ID但在这个方法中还没有新ID
// 所以这个方法只在库区不变化时调用此时钢卷ID不变
// contentMap.put("current_coil_id", String.valueOf(bo.getCoilId())); // 保持当前ID不变
// 更新二维码记录
String newContentJson = objectMapper.writeValueAsString(contentMap);
WmsGenerateRecordBo updateBo = new WmsGenerateRecordBo();