using System;
using System.Collections.Generic;
using System.Data;
using SuperMap.RealEstate.ServiceModel;
using Business = SuperMap.RealEstate.PlatForm.Dashboard.Business;
using HCC = HZQR.Common.Common;
using HZQR.Common;
namespace EShang.Common.GeneralMethod
{
///
/// 解析规则表相关方法
/// 2025/2/11 17:30:22自动生成
///
public class ANALYSISRULEHelper
{
#region 获取解析规则表列表
///
/// 获取解析规则表列表
///
/// 事务管理器
/// 查询结果总数
/// 查询条件对象
public static List GetANALYSISRULEList(Transaction transaction,
ref int TotalCount, Model.SearchModel searchModel)
{
List ANALYSISRULEList = new List();
string WhereSQL = "", RowFilterSQL = "";
if (searchModel.SearchParameter != null)
{
WhereSQL = OperationDataHelper.GetWhereSQL(searchModel.SearchParameter, searchModel.QueryType, "",
"CREATE_DATE_Start", "CREATE_DATE_End", "UPDATE_DATE_Start", "UPDATE_DATE_End");
if (WhereSQL != "")
{
WhereSQL = " WHERE " + WhereSQL;
}
//查询创建时间
if (searchModel.SearchParameter.CREATE_DATE_Start.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "CREATE_DATE >= TO_DATE('" +
searchModel.SearchParameter.CREATE_DATE_Start.Split(' ')[0] + "','YYYY/MM/DD')";
}
if (searchModel.SearchParameter.CREATE_DATE_End.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "CREATE_DATE < TO_DATE('" +
searchModel.SearchParameter.CREATE_DATE_End.Split(' ')[0] + "','YYYY/MM/DD') + 1";
}
//查询修改时间
if (searchModel.SearchParameter.UPDATE_DATE_Start.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "UPDATE_DATE >= TO_DATE('" +
searchModel.SearchParameter.UPDATE_DATE_Start.Split(' ')[0] + "','YYYY/MM/DD')";
}
if (searchModel.SearchParameter.UPDATE_DATE_End.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "UPDATE_DATE < TO_DATE('" +
searchModel.SearchParameter.UPDATE_DATE_End.Split(' ')[0] + "','YYYY/MM/DD') + 1";
}
}
DataTable dtANALYSISRULE = new Business.CATERINGGROSSMARGIN(transaction).ExecuteDataTable(
"SELECT * FROM PLATFORM_DASHBOARD.T_ANALYSISRULE" + WhereSQL);
//增加组合查询条件
if (searchModel.keyWord != null && !string.IsNullOrWhiteSpace(searchModel.keyWord.Key))
{
foreach (string KeyName in searchModel.keyWord.Key.Split(','))
{
RowFilterSQL += (RowFilterSQL == "" ? "" : " or ") +
KeyName + " like '%" + searchModel.keyWord.Value + "%'";
}
}
if (RowFilterSQL != "")
{
dtANALYSISRULE.DefaultView.RowFilter = RowFilterSQL;
}
//排序:
dtANALYSISRULE.DefaultView.Sort = searchModel.SortStr;
dtANALYSISRULE = dtANALYSISRULE.DefaultView.ToTable();
//获取查询结果总记录条数
TotalCount = dtANALYSISRULE.Rows.Count;
//根据传入的页码和每页显示条数返回结果
dtANALYSISRULE = CommonHelper.GetDataTableWithPageSize(dtANALYSISRULE, searchModel.PageSize, searchModel.PageIndex);
foreach (DataRow drANALYSISRULE in dtANALYSISRULE.Rows)
{
Model.ANALYSISRULEModel analysisruleModel = new Model.ANALYSISRULEModel();
//绑定解析规则表数据对象
BindDataRowToModel(drANALYSISRULE, analysisruleModel);
ANALYSISRULEList.Add(analysisruleModel);
}
return ANALYSISRULEList;
}
#region 绑定model
///
/// 绑定model
///
/// datarow数据源
/// model对象
public static void BindDataRowToModel(DataRow drANALYSISRULE, Model.ANALYSISRULEModel analysisruleModel)
{
if (drANALYSISRULE["ANALYSISRULE_ID"].ToString() != "")
{
analysisruleModel.ANALYSISRULE_ID = drANALYSISRULE["ANALYSISRULE_ID"].TryParseToInt(); //内码
}
analysisruleModel.TRIGGER_WORDS = drANALYSISRULE["TRIGGER_WORDS"].ToString(); //触发关键词,用于匹配用户输入的关键词(多个关键词用逗号分隔)
analysisruleModel.USER_INTENT = drANALYSISRULE["USER_INTENT"].ToString(); //用户意图标识,归类规则的用途(如“营收分析”或“服务区查询”)
analysisruleModel.API_ENDPOINT = drANALYSISRULE["API_ENDPOINT"].ToString(); //接口地址,前端根据解析结果调用该接口获取数据
analysisruleModel.PARAM_TEMPLATE = drANALYSISRULE["PARAM_TEMPLATE"].ToString(); //参数模板,以 JSON 格式存储,用于动态生成接口请求参数
analysisruleModel.PARSING_RULES = drANALYSISRULE["PARSING_RULES"].ToString(); //通用解析逻辑,以 JSON 格式存储,定义字段解析的详细规则
analysisruleModel.RESPONSE_CONFIG = drANALYSISRULE["RESPONSE_CONFIG"].ToString(); //响应内容配置,以 JSON 格式存储,定义接口返回内容的展示逻辑和字段控制
analysisruleModel.OUTPUT_FORMAT = drANALYSISRULE["OUTPUT_FORMAT"].ToString(); //输出格式,定义数据展示方式,如 JSON、表格 或 图表
if (drANALYSISRULE["ENABLE_CHART"].ToString() != "")
{
analysisruleModel.ENABLE_CHART = drANALYSISRULE["ENABLE_CHART"].TryParseToShort(); //图表输出(0:不支持;1:支持)
}
if (drANALYSISRULE["ENABLE_PDF_EXPORT"].ToString() != "")
{
analysisruleModel.ENABLE_PDF_EXPORT = drANALYSISRULE["ENABLE_PDF_EXPORT"].TryParseToShort(); //导出为PDF(0:不支持;1:支持)
}
if (drANALYSISRULE["ENABLE_VIEW_MORE"].ToString() != "")
{
analysisruleModel.ENABLE_VIEW_MORE = drANALYSISRULE["ENABLE_VIEW_MORE"].TryParseToShort(); //“查看更多”功能(0:不支持;1:支持)
}
if (drANALYSISRULE["RULE_PRIORITY"].ToString() != "")
{
analysisruleModel.RULE_PRIORITY = drANALYSISRULE["RULE_PRIORITY"].TryParseToShort(); //规则优先级,值越小优先级越高,用于多规则冲突时的选择
}
if (drANALYSISRULE["RULE_SOURCE"].ToString() != "")
{
analysisruleModel.RULE_SOURCE = drANALYSISRULE["RULE_SOURCE"].TryParseToShort(); //规则来源(1000:系统默认;2000:用户自定义)
}
if (!string.IsNullOrWhiteSpace(drANALYSISRULE["CREATE_DATE"].ToString()))
{
//创建时间
analysisruleModel.CREATE_DATE = drANALYSISRULE["CREATE_DATE"].ToString();
}
if (!string.IsNullOrWhiteSpace(drANALYSISRULE["UPDATE_DATE"].ToString()))
{
//修改时间
analysisruleModel.UPDATE_DATE = drANALYSISRULE["UPDATE_DATE"].ToString();
}
if (drANALYSISRULE["ANALYSISRULE_STATE"].ToString() != "")
{
analysisruleModel.ANALYSISRULE_STATE = drANALYSISRULE["ANALYSISRULE_STATE"].TryParseToShort(); //启用规则(0:禁用;1:启用)
}
analysisruleModel.ANALYSISRULE_DESC = drANALYSISRULE["ANALYSISRULE_DESC"].ToString(); //备注说明,记录规则的背景、用途或配置意图
if (drANALYSISRULE["ENABLE_TABLE"].ToString() != "")
{
analysisruleModel.ENABLE_TABLE = drANALYSISRULE["ENABLE_TABLE"].TryParseToShort(); //表格输出(0:不支持;1:支持)
}
if (drANALYSISRULE["SPRESPONSE_TYPE"].ToString() != "")
{
analysisruleModel.SPRESPONSE_TYPE = drANALYSISRULE["SPRESPONSE_TYPE"].TryParseToShort(); //服务区返回格式(1:单个服务区;2:多个服务区)
}
analysisruleModel.PARAM_FIELD = drANALYSISRULE["PARAM_FIELD"].ToString(); //入参配置
analysisruleModel.RESPONSE_FIELD = drANALYSISRULE["RESPONSE_FIELD"].ToString(); //返参配置
if (drANALYSISRULE["SHOW_CHILDNODE"].ToString() != "")
{
analysisruleModel.SHOW_CHILDNODE = drANALYSISRULE["SHOW_CHILDNODE"].TryParseToShort(); //显示子集(0:不显示;1:显示)
}
analysisruleModel.CHILD_NODENAME = drANALYSISRULE["CHILD_NODENAME"].ToString(); //子集名称
}
#endregion
#endregion
#region 获取解析规则表明细
///
/// 获取解析规则表明细
///
/// 事务管理器
/// 解析规则表内码
public static Model.ANALYSISRULEModel GetANALYSISRULEDetail(Transaction transaction, int ANALYSISRULEId)
{
Model.ANALYSISRULEModel analysisruleModel = new Model.ANALYSISRULEModel();
string WhereSQL = "WHERE ANALYSISRULE_ID = " + ANALYSISRULEId;
//查询明细数据
DataTable dtANALYSISRULE = new Business.CATERINGGROSSMARGIN(transaction).ExecuteDataTable(
"SELECT * FROM PLATFORM_DASHBOARD.T_ANALYSISRULE " + WhereSQL);
if (dtANALYSISRULE.Rows.Count > 0)
{
//绑定解析规则表数据对象
BindDataRowToModel(dtANALYSISRULE.Rows[0], analysisruleModel);
}
return analysisruleModel;
}
#endregion
#region 同步解析规则表
///
/// 赋值解析规则表数据对象
///
/// 事务管理器
/// 解析规则表数据对象
public static bool SynchroANALYSISRULE(Transaction transaction, Model.ANALYSISRULEModel analysisruleModel)
{
bool SynchroFlag = true;
string SQLString;
List excludeField = new List();
Dictionary dateFieldList = new Dictionary();
string tableName = "PLATFORM_DASHBOARD.T_ANALYSISRULE", keyField = "ANALYSISRULE_ID", seqName = "SEQ_ANALYSISRULE";
Business.CATERINGGROSSMARGIN _CATERINGGROSSMARGIN = new Business.CATERINGGROSSMARGIN(transaction);
#region 添加SQL语句中需要排除在外的字段
excludeField.Add("CREATE_DATE_Start");
excludeField.Add("CREATE_DATE_End");
excludeField.Add("UPDATE_DATE_Start");
excludeField.Add("UPDATE_DATE_End");
#endregion
#region 添加SQL语句中日期相关字段的执行语句
//创建时间
if (!string.IsNullOrWhiteSpace(analysisruleModel.CREATE_DATE))
{
dateFieldList.Add("CREATE_DATE", "TO_DATE('" +
analysisruleModel.CREATE_DATE + "','YYYY/MM/DD HH24:MI:SS')");
}
else
{
dateFieldList.Add("CREATE_DATE", "NULL");
}
//修改时间
if (!string.IsNullOrWhiteSpace(analysisruleModel.UPDATE_DATE))
{
dateFieldList.Add("UPDATE_DATE", "TO_DATE('" +
analysisruleModel.UPDATE_DATE + "','YYYY/MM/DD HH24:MI:SS')");
}
else
{
dateFieldList.Add("UPDATE_DATE", "NULL");
}
#endregion
if (analysisruleModel.ANALYSISRULE_ID != null)
{
string WhereSQL = " WHERE ANALYSISRULE_ID = " + analysisruleModel.ANALYSISRULE_ID;
DataTable dtANALYSISRULE = _CATERINGGROSSMARGIN.ExecuteDataTable(
"SELECT * FROM PLATFORM_DASHBOARD.T_ANALYSISRULE" + WhereSQL);
if (dtANALYSISRULE.Rows.Count > 0)
{
SQLString = OperationDataHelper.GetTableExcuteSQL(
analysisruleModel, 1, tableName, keyField, seqName, dateFieldList, excludeField, WhereSQL);
}
else
{
return false;
}
}
else
{
DataTable dtANALYSISRULE = _CATERINGGROSSMARGIN.ExecuteDataTable(
"SELECT " + seqName + ".NEXTVAL FROM DUAL");
analysisruleModel.ANALYSISRULE_ID = dtANALYSISRULE.Rows[0][0].TryParseToInt();
SQLString = OperationDataHelper.GetTableExcuteSQL(
analysisruleModel, 0, tableName, keyField, seqName, dateFieldList, excludeField);
}
_CATERINGGROSSMARGIN.ExecuteNonQuery(SQLString, null);
return SynchroFlag;
}
#endregion
#region 删除解析规则表
///
/// 删除解析规则表
///
/// 事务管理器
/// 解析规则表内码
public static bool DeleteANALYSISRULE(Transaction transaction, int? ANALYSISRULEId)
{
bool DeleteFlag = false;
if (ANALYSISRULEId != null)
{
string SQLString = "UPDATE PLATFORM_DASHBOARD.T_ANALYSISRULE SET ANALYSISRULE_STATE = 0 WHERE ANALYSISRULE_ID = " + ANALYSISRULEId;
int ExcuteCount = new Business.CATERINGGROSSMARGIN(transaction).ExecuteNonQuery(SQLString, null);
if (ExcuteCount > 0)
{
DeleteFlag = true;
}
}
return DeleteFlag;
}
#endregion
}
}