package com.xly.service;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 表单 / 字段解析(KgSearch 内核)—— 把「实体类型 / 字段中文名」解析到具体的
* 主表 / formId / moduleId / 技术列名,供 Read 与 Write 共用,集中一处避免各工具各猜一套。
*
*
数据全部来自已物化的知识图谱视图:{@code viw_ai_useful_forms} / {@code viw_kg_form}
* / {@code viw_kg_field_dict}。
*/
@Service
public class FormResolverService {
private final JdbcTemplate jdbc;
public FormResolverService(JdbcTemplate jdbc) {
this.jdbc = jdbc;
}
/**
* 定位某实体的**可改主表**:该实体名下、table 类型、排除报表视图(viw_*)、按 AI工具/连接度/名称长度
* 取最常用的一张。返回含 sFormId / sModuleId / sDataSource 的行,找不到返回 null。
*/
public Map resolveMasterForm(String entityKeyword) {
if (isBlank(entityKeyword)) {
return null;
}
try {
List