2025-03-28 09:49:56 +08:00

235 lines
9.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
{
/// <summary>
/// 语义识别表相关方法
/// 2024/10/30 18:00:45自动生成
/// </summary>
public class SENTENCEHelper
{
#region
/// <summary>
/// 获取语义识别表列表
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="TotalCount">查询结果总数</param>
/// <param name="searchModel">查询条件对象</param>
public static List<Model.SENTENCEModel> GetSENTENCEList(Transaction transaction,
ref int TotalCount, Model.SearchModel<Model.SENTENCEModel> searchModel)
{
List<Model.SENTENCEModel> SENTENCEList = new List<Model.SENTENCEModel>();
string WhereSQL = "", RowFilterSQL = "";
if (searchModel.SearchParameter != null)
{
WhereSQL = OperationDataHelper<Model.SENTENCEModel>.GetWhereSQL(searchModel.SearchParameter, searchModel.QueryType, "",
"OPERATE_DATE_Start", "OPERATE_DATE_End");
if (WhereSQL != "")
{
WhereSQL = " WHERE " + WhereSQL;
}
//查询操作时间
if (searchModel.SearchParameter.OPERATE_DATE_Start.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "OPERATE_DATE >= TO_DATE('" +
searchModel.SearchParameter.OPERATE_DATE_Start.Split(' ')[0] + "','YYYY/MM/DD')";
}
if (searchModel.SearchParameter.OPERATE_DATE_End.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "OPERATE_DATE < TO_DATE('" +
searchModel.SearchParameter.OPERATE_DATE_End.Split(' ')[0] + "','YYYY/MM/DD') + 1";
}
}
DataTable dtSENTENCE = new Business.CATERINGGROSSMARGIN(transaction).ExecuteDataTable(
"SELECT * FROM PLATFORM_DASHBOARD.T_SENTENCE" + 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 != "")
{
dtSENTENCE.DefaultView.RowFilter = RowFilterSQL;
}
//排序:
dtSENTENCE.DefaultView.Sort = searchModel.SortStr;
dtSENTENCE = dtSENTENCE.DefaultView.ToTable();
//获取查询结果总记录条数
TotalCount = dtSENTENCE.Rows.Count;
//根据传入的页码和每页显示条数返回结果
dtSENTENCE = CommonHelper.GetDataTableWithPageSize(dtSENTENCE, searchModel.PageSize, searchModel.PageIndex);
foreach (DataRow drSENTENCE in dtSENTENCE.Rows)
{
Model.SENTENCEModel sentenceModel = new Model.SENTENCEModel();
//绑定语义识别表数据对象
BindDataRowToModel(drSENTENCE, sentenceModel);
SENTENCEList.Add(sentenceModel);
}
return SENTENCEList;
}
#region model
/// <summary>
/// 绑定model
/// </summary>
/// <param name="drSENTENCE">datarow数据源</param>
/// <param name="sentenceModel">model对象</param>
public static void BindDataRowToModel(DataRow drSENTENCE, Model.SENTENCEModel sentenceModel)
{
if (drSENTENCE["SENTENCE_ID"].ToString() != "")
{
sentenceModel.SENTENCE_ID = drSENTENCE["SENTENCE_ID"].TryParseToInt(); //语义识别表内码
}
if (drSENTENCE["SENTENCE_TYPE"].ToString() != "")
{
sentenceModel.SENTENCE_TYPE = drSENTENCE["SENTENCE_TYPE"].TryParseToShort(); //语义类型0无法识别1服务区列表2经营数据
}
sentenceModel.SENTENCE_CONTENT = drSENTENCE["SENTENCE_CONTENT"].ToString(); //语义内容
sentenceModel.SENTENCE_RESULT = drSENTENCE["SENTENCE_RESULT"].ToString(); //解析结果
if (drSENTENCE["SENTENCE_STATE"].ToString() != "")
{
sentenceModel.SENTENCE_STATE = drSENTENCE["SENTENCE_STATE"].TryParseToShort(); //解析状态0失败1成功
}
if (drSENTENCE["STAFF_ID"].ToString() != "")
{
sentenceModel.STAFF_ID = drSENTENCE["STAFF_ID"].TryParseToInt(); //操作人内码
}
sentenceModel.STAFF_NAME = drSENTENCE["STAFF_NAME"].ToString(); //操作人员
if (!string.IsNullOrWhiteSpace(drSENTENCE["OPERATE_DATE"].ToString()))
{
//操作时间
sentenceModel.OPERATE_DATE = drSENTENCE["OPERATE_DATE"].ToString();
}
}
#endregion
#endregion
#region
/// <summary>
/// 获取语义识别表明细
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="SENTENCEId">语义识别表内码</param>
public static Model.SENTENCEModel GetSENTENCEDetail(Transaction transaction, int SENTENCEId)
{
Model.SENTENCEModel sentenceModel = new Model.SENTENCEModel();
string WhereSQL = "WHERE SENTENCE_ID = " + SENTENCEId;
//查询明细数据
DataTable dtSENTENCE = new Business.CATERINGGROSSMARGIN(transaction).ExecuteDataTable(
"SELECT * FROM PLATFORM_DASHBOARD.T_SENTENCE " + WhereSQL);
if (dtSENTENCE.Rows.Count > 0)
{
//绑定语义识别表数据对象
BindDataRowToModel(dtSENTENCE.Rows[0], sentenceModel);
}
return sentenceModel;
}
#endregion
#region
/// <summary>
/// 赋值语义识别表数据对象
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="sentenceModel">语义识别表数据对象</param>
public static bool SynchroSENTENCE(Transaction transaction, Model.SENTENCEModel sentenceModel)
{
bool SynchroFlag = true;
string SQLString;
List<string> excludeField = new List<string>();
Dictionary<string, string> dateFieldList = new Dictionary<string, string>();
string tableName = "PLATFORM_DASHBOARD.T_SENTENCE", keyField = "SENTENCE_ID", seqName = "SEQ_SENTENCE";
Business.CATERINGGROSSMARGIN _CATERINGGROSSMARGIN = new Business.CATERINGGROSSMARGIN(transaction);
#region SQL语句中需要排除在外的字段
excludeField.Add("OPERATE_DATE_Start");
excludeField.Add("OPERATE_DATE_End");
#endregion
#region SQL语句中日期相关字段的执行语句
//操作时间
if (!string.IsNullOrWhiteSpace(sentenceModel.OPERATE_DATE))
{
dateFieldList.Add("OPERATE_DATE", "TO_DATE('" +
sentenceModel.OPERATE_DATE + "','YYYY/MM/DD HH24:MI:SS')");
}
else
{
dateFieldList.Add("OPERATE_DATE", "NULL");
}
#endregion
if (sentenceModel.SENTENCE_ID != null)
{
string WhereSQL = " WHERE SENTENCE_ID = " + sentenceModel.SENTENCE_ID;
DataTable dtSENTENCE = _CATERINGGROSSMARGIN.ExecuteDataTable(
"SELECT * FROM PLATFORM_DASHBOARD.T_SENTENCE" + WhereSQL);
if (dtSENTENCE.Rows.Count > 0)
{
SQLString = OperationDataHelper<Model.SENTENCEModel>.GetTableExcuteSQL(
sentenceModel, 1, tableName, keyField, seqName, dateFieldList, excludeField, WhereSQL);
}
else
{
return false;
}
}
else
{
DataTable dtSENTENCE = _CATERINGGROSSMARGIN.ExecuteDataTable(
"SELECT " + seqName + ".NEXTVAL FROM DUAL");
sentenceModel.SENTENCE_ID = dtSENTENCE.Rows[0][0].TryParseToInt();
SQLString = OperationDataHelper<Model.SENTENCEModel>.GetTableExcuteSQL(
sentenceModel, 0, tableName, keyField, seqName, dateFieldList, excludeField);
}
_CATERINGGROSSMARGIN.ExecuteNonQuery(SQLString, null);
return SynchroFlag;
}
#endregion
#region
/// <summary>
/// 删除语义识别表
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="SENTENCEId">语义识别表内码</param>
public static bool DeleteSENTENCE(Transaction transaction, int? SENTENCEId)
{
bool DeleteFlag = false;
if (SENTENCEId != null)
{
string SQLString = "UPDATE PLATFORM_DASHBOARD.T_SENTENCE SET SENTENCE_STATE = 0 WHERE SENTENCE_ID = " + SENTENCEId;
int ExcuteCount = new Business.CATERINGGROSSMARGIN(transaction).ExecuteNonQuery(SQLString, null);
if (ExcuteCount > 0)
{
DeleteFlag = true;
}
}
return DeleteFlag;
}
#endregion
}
}