类 BusinessXmlCreatorBase

java.lang.Object
com.gdxsoft.easyweb.define.bussinessXmlCreator.BusinessXmlCreatorBase
直接已知子类:
BusinessXmlCreatorFrame, BusinessXmlCreatorListFrame, BusinessXmlCreatorTree

public abstract class BusinessXmlCreatorBase extends Object
业务 XML 创建器基类 提供公共功能和默认实现
  • 字段详细资料

    • LOGGER

      protected static final org.slf4j.Logger LOGGER
    • config

      protected IConfig config
    • table

      protected Table table
    • xmlDoc

      protected Document xmlDoc
    • defineConfig

      protected EwaDefineConfig defineConfig
  • 构造器详细资料

    • BusinessXmlCreatorBase

      public BusinessXmlCreatorBase(IConfig config, Table table)
  • 方法详细资料

    • createAndSave

      public boolean createAndSave(String db, String tableName, String selectSql, org.json.JSONObject tableJson, String frameType, String operationType, String xmlName, String itemName, String admId)
      生成并保存业务 XML
    • createAndSave

      public boolean createAndSave(String db, String selectSql, String frameType, String operationType, String xmlName, String itemName, String admId)
      生成并保存业务 XML(简化版本,不需要 tableName 和 tableJson)
      参数:
      db - 数据库名
      selectSql - 查询 SQL
      frameType - Frame 类型 (ListFrame/Frame/Tree)
      operationType - 操作类型 (N/M/V/NM)
      xmlName - 配置名称
      itemName - 配置项名
      admId - 管理员ID
      返回:
      是否保存成功
    • createShowXml

      public String createShowXml(String db, String tableName, String selectSql, org.json.JSONObject tableJson, String frameType, String operationType)
      生成预览 XML
    • create

      protected abstract Document create(String frameType, String operationType) throws Exception
      创建 XML 文档(由子类实现)
      抛出:
      Exception
    • save

      protected boolean save(String xmlContent, String xmlName, String itemName, String admId)
      保存 XML 到配置库
    • getCurrentDateTime

      protected String getCurrentDateTime()
      获取当前日期时间
    • getFrameTypeShort

      protected String getFrameTypeShort(String frameType)
      获取 Frame 类型简写
    • toProperFrameType

      protected String toProperFrameType(String frameType)
      获取 Frame 类型的标准大小写(FrameTag 使用)
    • getFrameName

      protected String getFrameName(String frameType)
      获取 Frame 名称
    • getOperationName

      protected String getOperationName(String operationType)
      获取操作名称
    • getTagType

      protected String getTagType(String dbType, String fieldName, String frameType)
      获取 Tag 类型 从 EwaDefineSettings.xml/FieldTags 读取配置 参考 EwaConfig.xml/Items/XItems 中定义的 XItem Name 可用的类型:text, textarea, span, hidden, password, date, datetime, time, select, combo, checkbox, radio 等 特殊后缀:_SQL→sqlEditor, _XML→xmlEditor, _JSON→jsonEditor, _HTML→dHtml5, _CSS→cssEditor
      参数:
      dbType - 数据库字段类型
      fieldName - 字段名(用于后缀匹配)
      frameType - Frame 类型(Frame 或 ListFrame),用于选择对应的配置
      返回:
      Tag 类型
    • getTagType

      protected String getTagType(String dbType)
      获取 Tag 类型(不传字段名和 frameType)
    • getDataType

      protected String getDataType(String dbType)
      获取数据类型
    • getFormat

      protected String getFormat(String dbType)
      获取日期格式
    • getNumberScale

      protected String getNumberScale(String dbType)
      获取数字精度
    • getValidType

      protected String getValidType(String dbType)
      获取验证类型
    • getFieldDisplayName

      protected String getFieldDisplayName(Field field)
      获取字段显示名称
    • getFieldValueName

      protected String getFieldValueName(Field field)
      获取字段值名称
    • shouldHideField

      protected boolean shouldHideField(Field field)
      判断字段是否应该隐藏
    • getStatusField

      protected String getStatusField()
      获取状态字段名
    • getPrimaryKeyField

      protected String getPrimaryKeyField()
      获取主键字段名
    • processJsExpression

      protected String processJsExpression(String val)
      处理 JavaScript 表达式
    • findChildElement

      protected Element findChildElement(Element parent, String tagName)
      查找子元素
    • createDescriptionSet

      protected Element createDescriptionSet(Document doc, Map<String,String> descMap)
      创建 DescriptionSet
    • getSqlTreeLoad

      protected String getSqlTreeLoad()
      获取 Tree 加载 SQL 如果存在 _STATUS 或 _STATE 字段,添加 WHERE status='USED' 条件
    • getSqlTreeNodeDelete

      protected String getSqlTreeNodeDelete()
      获取 Tree 删除节点 SQL 如果存在 _STATUS 或 _STATE 字段,改为 UPDATE status='DEL' 而不是 DELETE
    • getSqlTreeNodeRename

      protected String getSqlTreeNodeRename()
      获取 Tree 重命名节点 SQL
    • getSqlTreeNodeNew

      protected String getSqlTreeNodeNew()
      获取 Tree 新增节点 SQL 参考 SQL Server 模板,使用 CASE WHEN 适配不同数据库
    • findFieldBySuffix

      protected String findFieldBySuffix(String suffix)
      查找带有指定后缀的字段
    • findStatusField

      protected String findStatusField()
      查找状态字段 (_STATUS 或 _STATE)
    • getSqlSelectLF

      protected String getSqlSelectLF(String statusField, boolean includeRecycle)
      获取 ListFrame 的 SELECT 查询 SQL
      参数:
      statusField - 状态字段名
      includeRecycle - 是否包含回收站
      返回:
    • getSqlDeleteA

      protected String getSqlDeleteA(String statusField)
      逻辑删除 SQL(更新状态为 DEL)
      参数:
      statusField - 状态字段名
      返回:
    • getSqlRestore

      protected String getSqlRestore(String statusField)
      恢复数据 SQL(更新状态为 USED)
      参数:
      statusField - 状态字段名
      返回:
    • getSqlDelete

      protected String getSqlDelete()
      物理删除 SQL
      返回:
    • getSqlSelect

      protected String getSqlSelect()
      获取加载数据 SQL(单条记录)
      返回:
    • getSqlUpdate

      protected String getSqlUpdate(String statusField)
      获取更新 SQL
      参数:
      statusField - 状态字段名
      返回:
    • getSqlNew

      protected String getSqlNew(String statusField)
      获取新增 SQL
      参数:
      statusField - 状态字段名
      返回:
    • findIdentityField

      protected String findIdentityField()
      查找自增字段