三级页面修改
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user