小改
This commit is contained in:
@@ -35,10 +35,6 @@ public class WmsStock extends BaseEntity {
|
|||||||
* 物品ID(指向原材料或产品主键)
|
* 物品ID(指向原材料或产品主键)
|
||||||
*/
|
*/
|
||||||
private Long itemId;
|
private Long itemId;
|
||||||
/**
|
|
||||||
* 钢卷ID(指向wms_material_coil.coil_id)
|
|
||||||
*/
|
|
||||||
private Long coilId;
|
|
||||||
/**
|
/**
|
||||||
* 批次号(可选)
|
* 批次号(可选)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -161,6 +161,8 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
boolean flag = baseMapper.insert(add) > 0;
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
if (flag) {
|
if (flag) {
|
||||||
bo.setCoilId(add.getCoilId());
|
bo.setCoilId(add.getCoilId());
|
||||||
|
// 4. 更新二维码内容中的coilId
|
||||||
|
updateQrcodeCoilId(qrcodeRecordId, add.getCoilId());
|
||||||
}
|
}
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
@@ -175,6 +177,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
|
|
||||||
contentMap.put("enter_coil_no", bo.getEnterCoilNo()); // 入场钢卷号(唯一不变)
|
contentMap.put("enter_coil_no", bo.getEnterCoilNo()); // 入场钢卷号(唯一不变)
|
||||||
contentMap.put("current_coil_no", currentCoilNo); // 当前钢卷号(可变)
|
contentMap.put("current_coil_no", currentCoilNo); // 当前钢卷号(可变)
|
||||||
|
contentMap.put("coil_id", null); // 钢卷ID(新增时暂时为null,插入后更新)
|
||||||
|
|
||||||
// 创建steps数组
|
// 创建steps数组
|
||||||
List<Map<String, Object>> steps = new ArrayList<>();
|
List<Map<String, Object>> steps = new ArrayList<>();
|
||||||
@@ -395,6 +398,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
validEntityBeforeSave(newCoil);
|
validEntityBeforeSave(newCoil);
|
||||||
baseMapper.insert(newCoil);
|
baseMapper.insert(newCoil);
|
||||||
newCoils.add(newCoil);
|
newCoils.add(newCoil);
|
||||||
|
|
||||||
|
// 更新二维码内容中的coilId
|
||||||
|
updateQrcodeCoilId(newQrcodeId, newCoil.getCoilId());
|
||||||
}
|
}
|
||||||
} else if (isMerge) {
|
} else if (isMerge) {
|
||||||
// 合卷:将bo作为合卷后的新钢卷,newCoils中的对象作为参与合卷的原始钢卷
|
// 合卷:将bo作为合卷后的新钢卷,newCoils中的对象作为参与合卷的原始钢卷
|
||||||
@@ -428,6 +434,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
validEntityBeforeSave(newCoil);
|
validEntityBeforeSave(newCoil);
|
||||||
baseMapper.insert(newCoil);
|
baseMapper.insert(newCoil);
|
||||||
newCoils.add(newCoil);
|
newCoils.add(newCoil);
|
||||||
|
|
||||||
|
// 更新二维码内容中的coilId
|
||||||
|
updateQrcodeCoilId(mergedQrcodeId, newCoil.getCoilId());
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -441,6 +450,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
Map<String, Object> contentMap = new HashMap<>();
|
Map<String, Object> contentMap = new HashMap<>();
|
||||||
contentMap.put("enter_coil_no", oldCoil.getEnterCoilNo());
|
contentMap.put("enter_coil_no", oldCoil.getEnterCoilNo());
|
||||||
contentMap.put("current_coil_no", newCoilBo.getCurrentCoilNo());
|
contentMap.put("current_coil_no", newCoilBo.getCurrentCoilNo());
|
||||||
|
contentMap.put("coil_id", null); // 钢卷ID(分卷时暂时为null,插入后更新)
|
||||||
|
|
||||||
// 复制原钢卷的历史steps
|
// 复制原钢卷的历史steps
|
||||||
List<Map<String, Object>> steps = new ArrayList<>();
|
List<Map<String, Object>> steps = new ArrayList<>();
|
||||||
@@ -464,6 +474,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
splitStep.put("action", "更新");
|
splitStep.put("action", "更新");
|
||||||
splitStep.put("operation", "分卷");
|
splitStep.put("operation", "分卷");
|
||||||
splitStep.put("old_current_coil_no", oldCoil.getCurrentCoilNo());
|
splitStep.put("old_current_coil_no", oldCoil.getCurrentCoilNo());
|
||||||
|
splitStep.put("old_coil_id", oldCoil.getCoilId());
|
||||||
splitStep.put("new_current_coil_nos", String.join(",", allNewCoilNos));
|
splitStep.put("new_current_coil_nos", String.join(",", allNewCoilNos));
|
||||||
splitStep.put("child_coils", allNewCoilNos);
|
splitStep.put("child_coils", allNewCoilNos);
|
||||||
steps.add(splitStep);
|
steps.add(splitStep);
|
||||||
@@ -507,6 +518,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
}
|
}
|
||||||
contentMap.put("enter_coil_no", enterCoilNo);
|
contentMap.put("enter_coil_no", enterCoilNo);
|
||||||
contentMap.put("current_coil_no", mergedCoilBo.getCurrentCoilNo());
|
contentMap.put("current_coil_no", mergedCoilBo.getCurrentCoilNo());
|
||||||
|
contentMap.put("coil_id", null); // 钢卷ID(合卷时暂时为null,插入后更新)
|
||||||
|
|
||||||
// 合并所有参与合卷的原始钢卷的历史steps
|
// 合并所有参与合卷的原始钢卷的历史steps
|
||||||
List<Map<String, Object>> steps = new ArrayList<>();
|
List<Map<String, Object>> steps = new ArrayList<>();
|
||||||
@@ -540,16 +552,21 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
mergeStep.put("action", "更新");
|
mergeStep.put("action", "更新");
|
||||||
mergeStep.put("operation", "合卷");
|
mergeStep.put("operation", "合卷");
|
||||||
|
|
||||||
// 收集参与合卷的原始钢卷号
|
// 收集参与合卷的原始钢卷号和ID
|
||||||
List<String> originalCoilNos = new ArrayList<>();
|
List<String> originalCoilNos = new ArrayList<>();
|
||||||
|
List<String> originalCoilIds = new ArrayList<>();
|
||||||
if (originalCoils != null && !originalCoils.isEmpty()) {
|
if (originalCoils != null && !originalCoils.isEmpty()) {
|
||||||
for (WmsMaterialCoilBo originalCoilBo : originalCoils) {
|
for (WmsMaterialCoilBo originalCoilBo : originalCoils) {
|
||||||
if (originalCoilBo.getCurrentCoilNo() != null) {
|
if (originalCoilBo.getCurrentCoilNo() != null) {
|
||||||
originalCoilNos.add(originalCoilBo.getCurrentCoilNo());
|
originalCoilNos.add(originalCoilBo.getCurrentCoilNo());
|
||||||
}
|
}
|
||||||
|
if (originalCoilBo.getCoilId() != null) {
|
||||||
|
originalCoilIds.add(originalCoilBo.getCoilId().toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mergeStep.put("parent_coil_nos", String.join(",", originalCoilNos));
|
mergeStep.put("parent_coil_nos", String.join(",", originalCoilNos));
|
||||||
|
mergeStep.put("parent_coil_ids", String.join(",", originalCoilIds));
|
||||||
mergeStep.put("new_current_coil_no", mergedCoilBo.getCurrentCoilNo());
|
mergeStep.put("new_current_coil_no", mergedCoilBo.getCurrentCoilNo());
|
||||||
steps.add(mergeStep);
|
steps.add(mergeStep);
|
||||||
|
|
||||||
@@ -571,6 +588,35 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
throw new RuntimeException("生成合卷二维码失败: " + e.getMessage());
|
throw new RuntimeException("生成合卷二维码失败: " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 更新二维码内容中的coilId
|
||||||
|
*/
|
||||||
|
private void updateQrcodeCoilId(Long qrcodeRecordId, Long coilId) {
|
||||||
|
try {
|
||||||
|
// 获取二维码记录
|
||||||
|
WmsGenerateRecordVo record = generateRecordService.queryById(qrcodeRecordId);
|
||||||
|
if (record == null) {
|
||||||
|
throw new RuntimeException("二维码记录不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 解析现有content
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
Map<String, Object> contentMap = objectMapper.readValue(record.getContent(), Map.class);
|
||||||
|
|
||||||
|
// 更新coilId
|
||||||
|
contentMap.put("coil_id", coilId);
|
||||||
|
|
||||||
|
// 更新二维码记录
|
||||||
|
String newContentJson = objectMapper.writeValueAsString(contentMap);
|
||||||
|
WmsGenerateRecordBo updateBo = new WmsGenerateRecordBo();
|
||||||
|
updateBo.setRecordId(qrcodeRecordId);
|
||||||
|
updateBo.setContent(newContentJson);
|
||||||
|
generateRecordService.updateByBo(updateBo);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException("更新二维码coilId失败: " + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新二维码内容(单个更新)
|
* 更新二维码内容(单个更新)
|
||||||
*/
|
*/
|
||||||
@@ -602,6 +648,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
newStep.put("action", "更新");
|
newStep.put("action", "更新");
|
||||||
newStep.put("old_current_coil_no", oldCoil.getCurrentCoilNo()); // 原当前钢卷号
|
newStep.put("old_current_coil_no", oldCoil.getCurrentCoilNo()); // 原当前钢卷号
|
||||||
newStep.put("new_current_coil_no", bo.getCurrentCoilNo()); // 新当前钢卷号
|
newStep.put("new_current_coil_no", bo.getCurrentCoilNo()); // 新当前钢卷号
|
||||||
|
newStep.put("coil_id", bo.getCoilId()); // 钢卷ID
|
||||||
|
|
||||||
// 判断操作类型
|
// 判断操作类型
|
||||||
if (bo.getHasMergeSplit() != null && bo.getHasMergeSplit() == 2) {
|
if (bo.getHasMergeSplit() != null && bo.getHasMergeSplit() == 2) {
|
||||||
@@ -691,6 +738,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
extractCoilNo(step, "new_current_coil_nos", coilNos);
|
extractCoilNo(step, "new_current_coil_nos", coilNos);
|
||||||
extractCoilNo(step, "merged_from", coilNos);
|
extractCoilNo(step, "merged_from", coilNos);
|
||||||
extractCoilNo(step, "parent_coil_nos", coilNos);
|
extractCoilNo(step, "parent_coil_nos", coilNos);
|
||||||
|
// 提取钢卷ID字段
|
||||||
|
extractCoilId(step, "coil_id", coilNos);
|
||||||
|
extractCoilId(step, "old_coil_id", coilNos);
|
||||||
|
extractCoilId(step, "parent_coil_ids", coilNos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -757,5 +808,24 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从step中提取钢卷ID
|
||||||
|
*/
|
||||||
|
private void extractCoilId(Map<String, Object> step, String fieldName, Set<String> coilNos) {
|
||||||
|
Object value = step.get(fieldName);
|
||||||
|
if (value != null) {
|
||||||
|
String strValue = value.toString();
|
||||||
|
if (strValue.contains(",")) {
|
||||||
|
// 如果是逗号分隔的多个钢卷ID,分割后添加
|
||||||
|
String[] coilArray = strValue.split(",");
|
||||||
|
for (String coilId : coilArray) {
|
||||||
|
coilNos.add(coilId.trim());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
coilNos.add(strValue.trim());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user