fix: 优化逻辑
This commit is contained in:
parent
77681adba9
commit
b895e989c9
@ -38,21 +38,21 @@ public class MsOperationLogServiceImpl implements IMsOperationLogService {
|
|||||||
ENG_FIELD_MEANING_MAP.put("TM", "数据时间");
|
ENG_FIELD_MEANING_MAP.put("TM", "数据时间");
|
||||||
ENG_FIELD_MEANING_MAP.put("ENNM", "电站名称");
|
ENG_FIELD_MEANING_MAP.put("ENNM", "电站名称");
|
||||||
ENG_FIELD_MEANING_MAP.put("BASE_ID", "所属基地编码");
|
ENG_FIELD_MEANING_MAP.put("BASE_ID", "所属基地编码");
|
||||||
ENG_FIELD_MEANING_MAP.put("BASE_NAME", "所属基地名称");
|
// ENG_FIELD_MEANING_MAP.put("BASE_NAME", "所属基地名称");
|
||||||
ENG_FIELD_MEANING_MAP.put("HBRVCD", "所属基地流域编码");
|
ENG_FIELD_MEANING_MAP.put("HBRVCD", "所属基地流域编码");
|
||||||
ENG_FIELD_MEANING_MAP.put("HBRVCD_NAME", "所属基地流域名称");
|
// ENG_FIELD_MEANING_MAP.put("HBRVCD_NAME", "所属基地流域名称");
|
||||||
ENG_FIELD_MEANING_MAP.put("RVCD", "所属流域编码");
|
ENG_FIELD_MEANING_MAP.put("RVCD", "所属流域编码");
|
||||||
ENG_FIELD_MEANING_MAP.put("RVCD_NAME", "所属流域名称");
|
// ENG_FIELD_MEANING_MAP.put("RVCD_NAME", "所属流域名称");
|
||||||
ENG_FIELD_MEANING_MAP.put("ADDVCD", "所属行政区编码");
|
ENG_FIELD_MEANING_MAP.put("ADDVCD", "所属行政区编码");
|
||||||
ENG_FIELD_MEANING_MAP.put("ADDVCD_NAME", "所属行政区名称");
|
// ENG_FIELD_MEANING_MAP.put("ADDVCD_NAME", "所属行政区名称");
|
||||||
ENG_FIELD_MEANING_MAP.put("COUNTRY", "所属国家编码");
|
ENG_FIELD_MEANING_MAP.put("COUNTRY", "所属国家编码");
|
||||||
ENG_FIELD_MEANING_MAP.put("COUNTRY_NAME", "所属国家名称");
|
// ENG_FIELD_MEANING_MAP.put("COUNTRY_NAME", "所属国家名称");
|
||||||
ENG_FIELD_MEANING_MAP.put("REACHCD", "所属河段编码");
|
ENG_FIELD_MEANING_MAP.put("REACHCD", "所属河段编码");
|
||||||
ENG_FIELD_MEANING_MAP.put("REACHCD_NAME", "所属河段名称");
|
// ENG_FIELD_MEANING_MAP.put("REACHCD_NAME", "所属河段名称");
|
||||||
ENG_FIELD_MEANING_MAP.put("HYCD", "所属公司编码");
|
ENG_FIELD_MEANING_MAP.put("HYCD", "所属公司编码");
|
||||||
ENG_FIELD_MEANING_MAP.put("HYNM", "所属公司名称");
|
// ENG_FIELD_MEANING_MAP.put("HYNM", "所属公司名称");
|
||||||
ENG_FIELD_MEANING_MAP.put("TOP_HYCD", "所属集团编码");
|
ENG_FIELD_MEANING_MAP.put("TOP_HYCD", "所属集团编码");
|
||||||
ENG_FIELD_MEANING_MAP.put("TOP_HYNM", "所属集团名称");
|
// ENG_FIELD_MEANING_MAP.put("TOP_HYNM", "所属集团名称");
|
||||||
ENG_FIELD_MEANING_MAP.put("BLPRD", "所属建设阶段");
|
ENG_FIELD_MEANING_MAP.put("BLPRD", "所属建设阶段");
|
||||||
ENG_FIELD_MEANING_MAP.put("BLDSTT", "建设状态");
|
ENG_FIELD_MEANING_MAP.put("BLDSTT", "建设状态");
|
||||||
ENG_FIELD_MEANING_MAP.put("BLDSTT_CODE", "建设状态分类");
|
ENG_FIELD_MEANING_MAP.put("BLDSTT_CODE", "建设状态分类");
|
||||||
@ -165,6 +165,8 @@ public class MsOperationLogServiceImpl implements IMsOperationLogService {
|
|||||||
|
|
||||||
private static final Set<String> ENG_NAME_COLUMNS = new HashSet<>();
|
private static final Set<String> ENG_NAME_COLUMNS = new HashSet<>();
|
||||||
|
|
||||||
|
private static final Map<String, Map<String, String>> ENG_DICT_VALUE_NAME_MAP = new LinkedHashMap<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
ENG_CODE_NAME_FIELD_MAP.put("BASE_ID", "BASE_NAME");
|
ENG_CODE_NAME_FIELD_MAP.put("BASE_ID", "BASE_NAME");
|
||||||
ENG_CODE_NAME_FIELD_MAP.put("HBRVCD", "HBRVCD_NAME");
|
ENG_CODE_NAME_FIELD_MAP.put("HBRVCD", "HBRVCD_NAME");
|
||||||
@ -175,6 +177,93 @@ public class MsOperationLogServiceImpl implements IMsOperationLogService {
|
|||||||
ENG_CODE_NAME_FIELD_MAP.put("TOP_HYCD", "TOP_HYNM");
|
ENG_CODE_NAME_FIELD_MAP.put("TOP_HYCD", "TOP_HYNM");
|
||||||
ENG_CODE_NAME_FIELD_MAP.put("REACHCD", "REACHCD_NAME");
|
ENG_CODE_NAME_FIELD_MAP.put("REACHCD", "REACHCD_NAME");
|
||||||
ENG_NAME_COLUMNS.addAll(ENG_CODE_NAME_FIELD_MAP.values());
|
ENG_NAME_COLUMNS.addAll(ENG_CODE_NAME_FIELD_MAP.values());
|
||||||
|
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("USFL", buildValueNameMap("0", "禁用", "1", "启用"));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("DTIN", buildValueNameMap("0", "否", "1", "是"));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("MONTH_REPORT", buildValueNameMap("0", "否", "1", "是"));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("BLPRD", buildValueNameMap(
|
||||||
|
"1001000", "规划",
|
||||||
|
"1002000", "预可研",
|
||||||
|
"1003000", "环评",
|
||||||
|
"1004000", "可研",
|
||||||
|
"1005000", "在建",
|
||||||
|
"1006000", "招标设计",
|
||||||
|
"1007000", "施工详图",
|
||||||
|
"1009000", "建设",
|
||||||
|
"1010000", "蓄水阶段环保验收",
|
||||||
|
"1011000", "竣工",
|
||||||
|
"1012000", "竣工环保验收",
|
||||||
|
"1013000", "环境影响后评价"
|
||||||
|
));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("BLDSTT", buildValueNameMap(
|
||||||
|
"1", "已建成未验收",
|
||||||
|
"2", "在建",
|
||||||
|
"3", "可研",
|
||||||
|
"4", "规划",
|
||||||
|
"5", "预可研",
|
||||||
|
"6", "已核准",
|
||||||
|
"7", "招标设计",
|
||||||
|
"8", "施工详图",
|
||||||
|
"9", "其他",
|
||||||
|
"10", "已建成已验收",
|
||||||
|
"11", "已开展后评价",
|
||||||
|
"31", "项目建议书",
|
||||||
|
"32", "可研",
|
||||||
|
"33", "已审批",
|
||||||
|
"34", "初步设计",
|
||||||
|
"35", "技施设计",
|
||||||
|
"36", "在建",
|
||||||
|
"37", "已建成未验收",
|
||||||
|
"38", "已建成已验收",
|
||||||
|
"39", "已开展后评价",
|
||||||
|
"40", "其他",
|
||||||
|
"61", "规划",
|
||||||
|
"62", "项目建议书",
|
||||||
|
"63", "预可研",
|
||||||
|
"64", "可研",
|
||||||
|
"65", "已核准",
|
||||||
|
"66", "初步设计",
|
||||||
|
"67", "招标设计",
|
||||||
|
"68", "技施设计",
|
||||||
|
"69", "施工详图",
|
||||||
|
"70", "在建",
|
||||||
|
"71", "已建成未验收",
|
||||||
|
"72", "已建成已验收",
|
||||||
|
"73", "已开展后评价",
|
||||||
|
"74", "其他",
|
||||||
|
"91", "拆除"
|
||||||
|
));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("BLDSTT_CODE", buildValueNameMap(
|
||||||
|
"0", "未建/规划",
|
||||||
|
"1", "在建",
|
||||||
|
"2", "已建"
|
||||||
|
));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("ENGTP", buildValueNameMap("1", "水电站", "2", "水利工程", "3", "航电枢纽"));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("PRSC", buildValueNameMap("1", "大型1", "2", "大型2", "3", "中型", "4", "小型"));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("SCRSC", buildValueNameMap("1", "大型1", "2", "大型2", "3", "中型", "4", "小型1", "5", "小型2"));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("PRGR", buildValueNameMap("1", "Ⅰ", "2", "Ⅱ", "3", "Ⅲ", "4", "Ⅳ", "5", "Ⅴ"));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("FN", buildValueNameMap(
|
||||||
|
"1", "发电", "2", "防洪", "3", "灌溉", "4", "供水", "5", "航运",
|
||||||
|
"6", "旅游", "7", "环境", "8", "养殖", "9", "其他"
|
||||||
|
));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("BSSSIN", buildValueNameMap("5", "<Ⅵ", "6", "Ⅵ", "7", "Ⅶ", "8", "Ⅷ", "9", "≥Ⅸ"));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("FRSSIN", buildValueNameMap("0", "未设防", "6", "Ⅵ", "7", "Ⅶ", "8", "Ⅷ", "9", "≥Ⅸ"));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("ADJUST_ENG", buildValueNameMap("0", "否", "1", "是"));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("ISHVBRRG", buildValueNameMap("0", "无", "1", "有"));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("RGCP", buildValueNameMap(
|
||||||
|
"1", "多年调节", "2", "年调节", "3", "不完全年调节", "4", "径流式(无调节)",
|
||||||
|
"5", "季调节", "6", "月调节", "7", "周调节", "8", "日调节", "9", "其他"
|
||||||
|
));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("DMAT", buildValueNameMap("0", "混凝土坝", "1", "土坝"));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("DMTP", buildValueNameMap(
|
||||||
|
"0", "混合型", "1", "重力坝", "2", "拱坝", "3", "土石坝", "4", "支墩坝",
|
||||||
|
"5", "混凝土闸坝", "6", "混凝土面板堆石坝", "7", "预应力坝",
|
||||||
|
"8", "复合土工膜面板堆石坝", "9", "碾压混凝土重力坝", "10", "混凝土重力坝"
|
||||||
|
));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("DVTP", buildValueNameMap("1", "堤坝式", "2", "引水式", "3", "混合式"));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("CNTP", buildValueNameMap("1", "新建", "2", "改建", "3", "扩建", "4", "加固"));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("BLSYS", buildValueNameMap("1", "水利", "2", "能源", "3", "交通", "4", "农业", "5", "建设", "9", "其他"));
|
||||||
|
ENG_DICT_VALUE_NAME_MAP.put("IMPDSTRZ", buildValueNameMap("0", "否", "1", "是"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
@ -243,8 +332,8 @@ public class MsOperationLogServiceImpl implements IMsOperationLogService {
|
|||||||
Object oldValue = getFieldValue(field, before);
|
Object oldValue = getFieldValue(field, before);
|
||||||
Object newValue = getFieldValue(field, after);
|
Object newValue = getFieldValue(field, after);
|
||||||
String nameColumn = ENG_CODE_NAME_FIELD_MAP.get(columnName);
|
String nameColumn = ENG_CODE_NAME_FIELD_MAP.get(columnName);
|
||||||
Object oldNameValue = StrUtil.isBlank(nameColumn) ? oldValue : getColumnValue(before, nameColumn);
|
Object oldNameValue = resolveNameValue(columnName, nameColumn, oldValue, before);
|
||||||
Object newNameValue = StrUtil.isBlank(nameColumn) ? newValue : getColumnValue(after, nameColumn);
|
Object newNameValue = resolveNameValue(columnName, nameColumn, newValue, after);
|
||||||
if (equalsValue(oldValue, newValue) && equalsValue(oldNameValue, newNameValue)) {
|
if (equalsValue(oldValue, newValue) && equalsValue(oldNameValue, newNameValue)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -340,6 +429,48 @@ public class MsOperationLogServiceImpl implements IMsOperationLogService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Object resolveNameValue(String fieldCode, String nameColumn, Object rawValue, SdEngInfoBH target) {
|
||||||
|
if (StrUtil.isNotBlank(nameColumn)) {
|
||||||
|
return getColumnValue(target, nameColumn);
|
||||||
|
}
|
||||||
|
return resolveDictName(fieldCode, rawValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Object resolveDictName(String fieldCode, Object rawValue) {
|
||||||
|
String text = formatValue(rawValue);
|
||||||
|
if (StrUtil.isBlank(text)) {
|
||||||
|
return rawValue;
|
||||||
|
}
|
||||||
|
Map<String, String> dictMap = ENG_DICT_VALUE_NAME_MAP.get(fieldCode);
|
||||||
|
if (dictMap == null || dictMap.isEmpty()) {
|
||||||
|
return rawValue;
|
||||||
|
}
|
||||||
|
if (!text.contains(",") && !text.contains(";")) {
|
||||||
|
return dictMap.getOrDefault(text, rawValue == null ? null : text);
|
||||||
|
}
|
||||||
|
String[] parts = text.split("[,;]");
|
||||||
|
List<String> names = new ArrayList<>();
|
||||||
|
for (String part : parts) {
|
||||||
|
String code = StrUtil.trim(part);
|
||||||
|
if (StrUtil.isBlank(code)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
names.add(dictMap.getOrDefault(code, code));
|
||||||
|
}
|
||||||
|
return names.isEmpty() ? rawValue : String.join(",", names);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Map<String, String> buildValueNameMap(String... keyValues) {
|
||||||
|
Map<String, String> valueMap = new LinkedHashMap<>();
|
||||||
|
if (keyValues == null) {
|
||||||
|
return valueMap;
|
||||||
|
}
|
||||||
|
for (int i = 0; i + 1 < keyValues.length; i += 2) {
|
||||||
|
valueMap.put(keyValues[i], keyValues[i + 1]);
|
||||||
|
}
|
||||||
|
return valueMap;
|
||||||
|
}
|
||||||
|
|
||||||
private boolean equalsValue(Object oldValue, Object newValue) {
|
private boolean equalsValue(Object oldValue, Object newValue) {
|
||||||
return StrUtil.equals(formatValue(oldValue), formatValue(newValue));
|
return StrUtil.equals(formatValue(oldValue), formatValue(newValue));
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user