三级页面修改

This commit is contained in:
2025-11-11 09:40:42 +08:00
parent df65d8a021
commit 4302c17b76

View File

@@ -364,7 +364,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
}
/**
* 单个更新(正常更新,记录历史变更)
* 单个更新
*/
private Boolean updateBySingle(WmsMaterialCoilBo bo) {
// 查询原钢卷
@@ -373,35 +373,35 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
throw new RuntimeException("原钢卷不存在");
}
// 直接更新原记录(不产生新记录,不修改dataType
WmsMaterialCoil updateCoil = BeanUtil.toBean(bo, WmsMaterialCoil.class);
// 1. 将原钢卷标记为历史数据(dataType = 0
LambdaUpdateWrapper<WmsMaterialCoil> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(WmsMaterialCoil::getCoilId, oldCoil.getCoilId())
.set(WmsMaterialCoil::getDataType, 0); // 设置为历史数据
baseMapper.update(null, updateWrapper);
// 2. 创建新记录
WmsMaterialCoil newCoil = BeanUtil.toBean(bo, WmsMaterialCoil.class);
newCoil.setCoilId(null); // 清空ID让数据库自动生成新ID
newCoil.setDataType(1); // 设置为当前数据
newCoil.setQrcodeRecordId(oldCoil.getQrcodeRecordId()); // 继续使用原二维码
// 确保关键字段不丢失
if (updateCoil.getEnterCoilNo() == null) {
updateCoil.setEnterCoilNo(oldCoil.getEnterCoilNo());
// 继承原记录的关键字段
if (newCoil.getEnterCoilNo() == null) {
newCoil.setEnterCoilNo(oldCoil.getEnterCoilNo());
}
if (updateCoil.getSupplierCoilNo() == null) {
updateCoil.setSupplierCoilNo(oldCoil.getSupplierCoilNo());
}
if (updateCoil.getQrcodeRecordId() == null) {
updateCoil.setQrcodeRecordId(oldCoil.getQrcodeRecordId());
}
if (updateCoil.getWarehouseId() == null) {
updateCoil.setWarehouseId(oldCoil.getWarehouseId());
}
if (updateCoil.getActualWarehouseId() == null) {
updateCoil.setActualWarehouseId(oldCoil.getActualWarehouseId());
if (newCoil.getSupplierCoilNo() == null) {
newCoil.setSupplierCoilNo(oldCoil.getSupplierCoilNo());
}
validEntityBeforeSave(updateCoil);
validEntityBeforeSave(newCoil);
// 直接更新记录coilId不变
boolean flag = baseMapper.updateById(updateCoil) > 0;
// 插入新记录
boolean flag = baseMapper.insert(newCoil) > 0;
if (flag) {
// 更新二维码内容(添加新的step
// 3. 更新二维码内容(添加更新步骤并更新current_coil_id
if (oldCoil.getQrcodeRecordId() != null) {
updateQrcodeContentForNormalUpdate(oldCoil, bo);
updateQrcodeContentForNormalUpdate(oldCoil, bo, newCoil.getCoilId());
}
}
@@ -843,8 +843,11 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
/**
* 更新二维码内容正常更新添加step
* @param oldCoil 旧钢卷记录
* @param bo 更新数据
* @param newCoilId 新钢卷ID如果创建了新记录
*/
private void updateQrcodeContentForNormalUpdate(WmsMaterialCoil oldCoil, WmsMaterialCoilBo bo) {
private void updateQrcodeContentForNormalUpdate(WmsMaterialCoil oldCoil, WmsMaterialCoilBo bo, Long newCoilId) {
try {
// 获取原二维码记录
WmsGenerateRecordVo oldRecord = generateRecordService.queryById(oldCoil.getQrcodeRecordId());
@@ -872,6 +875,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
newStep.put("old_current_coil_no", oldCoil.getCurrentCoilNo());
newStep.put("new_current_coil_no", bo.getCurrentCoilNo());
newStep.put("old_coil_id", String.valueOf(oldCoil.getCoilId()));
newStep.put("new_coil_id", String.valueOf(newCoilId));
newStep.put("operator", LoginHelper.getUsername());
// 记录具体的变更字段
@@ -909,7 +913,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
contentMap.put("current_coil_no", bo.getCurrentCoilNo());
}
// current_coil_id保持不变因为coilId没有变化
// 更新 current_coil_id 为新记录的ID
if (newCoilId != null) {
contentMap.put("current_coil_id", String.valueOf(newCoilId));
}
// 更新二维码记录
String newContentJson = objectMapper.writeValueAsString(contentMap);