diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 987dd107..aa8b62af 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -364,7 +364,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { } /** - * 单个更新(正常更新,不产生新记录,二维码不变) + * 单个更新(正常更新,记录历史变更) */ private Boolean updateBySingle(WmsMaterialCoilBo bo) { // 查询原钢卷 @@ -400,7 +400,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { if (flag) { // 更新二维码内容(添加新的step) - updateQrcodeContentForNormalUpdate(oldCoil, bo); + if (oldCoil.getQrcodeRecordId() != null) { + updateQrcodeContentForNormalUpdate(oldCoil, bo); + } } return flag; @@ -866,18 +868,46 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { Map newStep = new HashMap<>(); newStep.put("step", steps.size() + 1); newStep.put("action", "更新"); - newStep.put("operation", "更新"); + newStep.put("operation", "信息更新"); newStep.put("old_current_coil_no", oldCoil.getCurrentCoilNo()); newStep.put("new_current_coil_no", bo.getCurrentCoilNo()); - newStep.put("coil_id", String.valueOf(bo.getCoilId())); + newStep.put("old_coil_id", String.valueOf(oldCoil.getCoilId())); newStep.put("operator", LoginHelper.getUsername()); + + // 记录具体的变更字段 + List changedFields = new ArrayList<>(); + if (bo.getCurrentCoilNo() != null && !bo.getCurrentCoilNo().equals(oldCoil.getCurrentCoilNo())) { + changedFields.add("钢卷号: " + oldCoil.getCurrentCoilNo() + " → " + bo.getCurrentCoilNo()); + } + if (bo.getTeam() != null && !bo.getTeam().equals(oldCoil.getTeam())) { + changedFields.add("班组: " + oldCoil.getTeam() + " → " + bo.getTeam()); + } + if (bo.getWarehouseId() != null && !bo.getWarehouseId().equals(oldCoil.getWarehouseId())) { + changedFields.add("逻辑库区ID: " + oldCoil.getWarehouseId() + " → " + bo.getWarehouseId()); + } + if (bo.getActualWarehouseId() != null && !bo.getActualWarehouseId().equals(oldCoil.getActualWarehouseId())) { + changedFields.add("真实库区ID: " + oldCoil.getActualWarehouseId() + " → " + bo.getActualWarehouseId()); + } + if (bo.getGrossWeight() != null && !bo.getGrossWeight().equals(oldCoil.getGrossWeight())) { + changedFields.add("毛重: " + oldCoil.getGrossWeight() + " → " + bo.getGrossWeight()); + } + if (bo.getNetWeight() != null && !bo.getNetWeight().equals(oldCoil.getNetWeight())) { + changedFields.add("净重: " + oldCoil.getNetWeight() + " → " + bo.getNetWeight()); + } + if (bo.getRemark() != null && !bo.getRemark().equals(oldCoil.getRemark())) { + changedFields.add("备注: " + oldCoil.getRemark() + " → " + bo.getRemark()); + } + + newStep.put("changed_fields", String.join("; ", changedFields)); newStep.put("update_time", new java.util.Date()); steps.add(newStep); contentMap.put("steps", steps); // 更新当前钢卷号 - contentMap.put("current_coil_no", bo.getCurrentCoilNo()); + if (bo.getCurrentCoilNo() != null) { + contentMap.put("current_coil_no", bo.getCurrentCoilNo()); + } // current_coil_id保持不变(因为coilId没有变化)