diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/MsOperationLog.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/MsOperationLog.java index 277171ac..55d64cc0 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/MsOperationLog.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/MsOperationLog.java @@ -29,4 +29,7 @@ public class MsOperationLog implements Serializable { @TableField("REMARK") private String remark; + + @TableField("TABLE_NAME") + private String tableName; } diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsOperationLogServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsOperationLogServiceImpl.java index 8e70e7fb..8efc9d86 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsOperationLogServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsOperationLogServiceImpl.java @@ -382,6 +382,7 @@ public class MsOperationLogServiceImpl implements IMsOperationLogService { MsOperationLog log = new MsOperationLog(); log.setOperator(resolveOperator()); log.setOperateTime(new Date()); + log.setTableName(ENG_TABLE_NAME); log.setSource(StrUtil.trimToNull(source)); log.setRemark(remark); return log; diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/wq/service/impl/EnvWqDataServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/wq/service/impl/EnvWqDataServiceImpl.java index 7ac6d0b1..6778bd2f 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/wq/service/impl/EnvWqDataServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/wq/service/impl/EnvWqDataServiceImpl.java @@ -48,15 +48,6 @@ public class EnvWqDataServiceImpl implements EnvWqDataService { private static final LinkedHashMap WQ_UPDATE_COLUMN_MAP = new LinkedHashMap<>(); private static final Map WQ_FIELD_MEANING_MAP = new LinkedHashMap<>(); - private static final List WQ_SNAPSHOT_COLUMNS = Arrays.asList( - "STCD", "TM", "DT", "DRTP", "YEAR", "MONTH", - "WTMP", "PH", "DOX", "CODMN", "CODCR", "BOD5", "NH3N", "TP", "TN", - "CU", "ZN", "F", "SE", "ARS", "HG", "CD", "CR6", "PB", "CN", - "VLPH", "OIL", "LAS", "S2", "FCG", "CL", "SO4", "NO3", "THRD", - "COND", "FE", "MN", "AL", "CHLA", "CLARITY", "TU", "CYANO", - "WQGRD", "SFDB", "WQ_SFDBHN_YS", "IS_DELETED" - ); - static { WQ_UPDATE_COLUMN_MAP.put("wtmp", "WTMP"); WQ_UPDATE_COLUMN_MAP.put("ph", "PH"); @@ -144,8 +135,6 @@ public class EnvWqDataServiceImpl implements EnvWqDataService { WQ_FIELD_MEANING_MAP.put("WWQTG", "水功能区目标"); WQ_FIELD_MEANING_MAP.put("SFDB", "是否达标"); WQ_FIELD_MEANING_MAP.put("WQ_SFDBHN_YS", "是否达标湖内饮用水源"); - WQ_FIELD_MEANING_MAP.put("ROW_KEY", "删除记录标识"); - WQ_FIELD_MEANING_MAP.put("ROW_DATA", "删除记录数据"); } @Resource @@ -4176,12 +4165,19 @@ public class EnvWqDataServiceImpl implements EnvWqDataService { List details = new ArrayList<>(); for (Map row : rows) { String stcd = asString(row.get("STCD")); - String rowKey = buildWqRowKey(tableName, row); - String rowSnapshot = buildWqRowSnapshot(row); - details.add(buildWqDetail(mainLog.getId(), tableName, stcd, "ROW_KEY", - rowKey, rowKey, null, null, "删除记录")); - details.add(buildWqDetail(mainLog.getId(), tableName, stcd, "ROW_DATA", - rowSnapshot, rowSnapshot, null, null, "删除记录")); + for (Map.Entry entry : row.entrySet()) { + String fieldCode = entry.getKey(); + if (StrUtil.isBlank(fieldCode)) { + continue; + } + Object oldValue = entry.getValue(); + if (oldValue == null) { + continue; + } + details.add(buildWqDetail(mainLog.getId(), tableName, stcd, fieldCode, + oldValue, resolveWqDisplayValue(fieldCode, oldValue), + null, null, "删除字段值")); + } } batchInsertWqLogDetails(details); } @@ -4190,6 +4186,7 @@ public class EnvWqDataServiceImpl implements EnvWqDataService { MsOperationLog log = new MsOperationLog(); log.setOperator(resolveLogOperator()); log.setOperateTime(new Date()); + log.setTableName(WQ_HOUR_TABLE_NAME); log.setSource(StrUtil.trimToNull(source)); log.setRemark(remark); return log; @@ -4222,34 +4219,12 @@ public class EnvWqDataServiceImpl implements EnvWqDataService { if (CollUtil.isEmpty(details)) { return; } - msOperationLogDetailMapper.insert(details); - } - - private String buildWqRowKey(String tableName, Map row) { - if (WQ_HOUR_TABLE_NAME.equals(tableName)) { - return "STCD=" + formatLogValue(row.get("STCD")) + ", TM=" + formatLogValue(row.get("TM")); - } - if (WQ_DAY_TABLE_NAME.equals(tableName)) { - return "STCD=" + formatLogValue(row.get("STCD")) + ", DT=" + formatLogValue(row.get("DT")); - } - return "STCD=" + formatLogValue(row.get("STCD")) + ", DRTP=" + formatLogValue(row.get("DRTP")) + - ", YEAR=" + formatLogValue(row.get("YEAR")) + ", MONTH=" + formatLogValue(row.get("MONTH")); - } - - private String buildWqRowSnapshot(Map row) { - if (row == null || row.isEmpty()) { - return null; - } - List parts = new ArrayList<>(); - for (String column : WQ_SNAPSHOT_COLUMNS) { - Object value = row.get(column); - String text = formatLogValue(value); - if (StrUtil.isBlank(text)) { + for (MsOperationLogDetail detail : details) { + if (detail == null) { continue; } - parts.add(column + "=" + text); + msOperationLogDetailMapper.insert(detail); } - return parts.isEmpty() ? null : String.join("; ", parts); } private Object resolveWqDisplayValue(String fieldCode, Object rawValue) {