This commit is contained in:
砂糖
2026-03-04 17:29:54 +08:00

View File

@@ -3177,10 +3177,21 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
// 删除操作记录
deletePendingActionForRollback(originalCoil.getCoilId());
}
// 更新二维码记录
updateQrcodeForMergeRollback(qrcodeRecord, currentCoil, parentCoilIds);
// 恢复原始钢卷的二维码为生效状态并更新二维码记录
if (originalCoil.getQrcodeRecordId() != null) {
WmsGenerateRecordBo originalQrBo = new WmsGenerateRecordBo();
originalQrBo.setRecordId(originalCoil.getQrcodeRecordId());
originalQrBo.setStatus(1); // 1=生效
generateRecordService.updateByBo(originalQrBo);
// 更新原始钢卷的二维码记录(添加回滚步骤)
WmsGenerateRecordVo originalQrRecord = generateRecordService.queryById(originalCoil.getQrcodeRecordId());
if (originalQrRecord != null) {
updateQrcodeForMergeRollback(originalQrRecord, currentCoil, originalCoil.getCoilId());
}
}
}
result.put("success", true);
result.put("message", "合卷回滚成功,已恢复 " + parentCoilIds.size() + " 个原始钢卷,删除了合卷钢卷");
@@ -3285,8 +3296,20 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
// 删除母卷的操作记录
deletePendingActionForRollback(motherCoilId);
// 更新二维码记录
updateQrcodeForSplitRollback(qrcodeRecord, currentCoil, motherCoilId);
// 恢复母卷的二维码为生效状态
WmsMaterialCoil motherCoil = baseMapper.selectById(motherCoilId);
if (motherCoil != null && motherCoil.getQrcodeRecordId() != null) {
WmsGenerateRecordBo motherQrBo = new WmsGenerateRecordBo();
motherQrBo.setRecordId(motherCoil.getQrcodeRecordId());
motherQrBo.setStatus(1); // 1=生效
generateRecordService.updateByBo(motherQrBo);
// 更新母卷的二维码记录(添加回滚步骤)
WmsGenerateRecordVo motherQrRecord = generateRecordService.queryById(motherCoil.getQrcodeRecordId());
if (motherQrRecord != null) {
updateQrcodeForSplitRollback(motherQrRecord, currentCoil, motherCoilId);
}
}
}
result.put("success", true);
@@ -3408,7 +3431,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
/**
* 更新合卷回滚后的二维码记录
*/
private void updateQrcodeForMergeRollback(WmsGenerateRecordVo qrcodeRecord, WmsMaterialCoil currentCoil, List<Long> parentCoilIds) {
private void updateQrcodeForMergeRollback(WmsGenerateRecordVo qrcodeRecord, WmsMaterialCoil currentCoil, Long restoredCoilId) {
try {
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> contentMap = objectMapper.readValue(qrcodeRecord.getContent(), Map.class);
@@ -3426,17 +3449,15 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
rollbackStep.put("operation", "合卷回滚");
rollbackStep.put("deleted_coil_id", String.valueOf(currentCoil.getCoilId()));
rollbackStep.put("deleted_current_coil_no", currentCoil.getCurrentCoilNo());
rollbackStep.put("restored_parent_coil_ids", parentCoilIds.stream().map(String::valueOf).collect(Collectors.joining(",")));
rollbackStep.put("restored_coil_id", String.valueOf(restoredCoilId));
rollbackStep.put("operator", LoginHelper.getUsername());
rollbackStep.put("rollback_time", new java.util.Date());
steps.add(rollbackStep);
contentMap.put("steps", steps);
// 更新current_coil_id为第一个恢复的原始钢卷ID
if (!parentCoilIds.isEmpty()) {
contentMap.put("current_coil_id", String.valueOf(parentCoilIds.get(0)));
}
// 更新current_coil_id为恢复的原始钢卷ID
contentMap.put("current_coil_id", String.valueOf(restoredCoilId));
String newContentJson = objectMapper.writeValueAsString(contentMap);
WmsGenerateRecordBo updateBo = new WmsGenerateRecordBo();
@@ -3977,6 +3998,15 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
.set(WmsMaterialCoil::getParentCoilNos, String.join(",", childCoilNos)); // 记录子卷号
baseMapper.update(null, parentUpdateWrapper);
// 4.1 将母卷的二维码标记为失效
if (parentCoil.getQrcodeRecordId() != null) {
WmsGenerateRecordBo parentQrBo = new WmsGenerateRecordBo();
parentQrBo.setRecordId(parentCoil.getQrcodeRecordId());
parentQrBo.setStatus(0); // 0=失效
generateRecordService.updateByBo(parentQrBo);
}
// 5. 批量更新所有子钢卷的二维码中的child_coil_ids
String allChildCoilIdsStr = childCoilIds.stream()
.map(String::valueOf)