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

278 lines
14 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.SendRec.Storage.Business;
using HCC = HZQR.Common.Common;
using HZQR.Common;
namespace EShang.Common.GeneralMethod
{
/// <summary>
/// 餐饮原材料基础库相关方法
/// 2024/9/13 11:00:28自动生成
/// </summary>
public class RAWMATERIALBASEHelper
{
#region
/// <summary>
/// 获取餐饮原材料基础库列表
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="TotalCount">查询结果总数</param>
/// <param name="searchModel">查询条件对象</param>
public static List<Model.RAWMATERIALBASEModel> GetRAWMATERIALBASEList(Transaction transaction,
ref int TotalCount, Model.SearchModel<Model.RAWMATERIALBASEModel> searchModel)
{
List<Model.RAWMATERIALBASEModel> RAWMATERIALBASEList = new List<Model.RAWMATERIALBASEModel>();
string WhereSQL = "", RowFilterSQL = "";
if (searchModel.SearchParameter != null)
{
WhereSQL = OperationDataHelper<Model.RAWMATERIALBASEModel>.GetWhereSQL(searchModel.SearchParameter, searchModel.QueryType, "",
"RAWMATERIALBASE_IDS", "RAWMATERIAL_TYPEIDS", "OPERATE_DATE_Start", "OPERATE_DATE_End");
if (WhereSQL != "")
{
WhereSQL = " WHERE " + WhereSQL;
}
//查询餐饮原材料基础库内码
if (searchModel.SearchParameter.RAWMATERIALBASE_IDS.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "RAWMATERIALBASE_ID IN (" + searchModel.SearchParameter.RAWMATERIALBASE_IDS + ")";
}
//查询原材料类型
if (searchModel.SearchParameter.RAWMATERIAL_TYPEIDS.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "RAWMATERIAL_TYPEID IN (" + searchModel.SearchParameter.RAWMATERIAL_TYPEIDS + ")";
}
//查询修改时间
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 dtRAWMATERIALBASE = new Business.SENDRECPROINST(transaction).ExecuteDataTable(
"SELECT * FROM SENDREC_STORAGE.T_RAWMATERIALBASE" + 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 != "")
{
dtRAWMATERIALBASE.DefaultView.RowFilter = RowFilterSQL;
}
//排序:
dtRAWMATERIALBASE.DefaultView.Sort = searchModel.SortStr;
dtRAWMATERIALBASE = dtRAWMATERIALBASE.DefaultView.ToTable();
//获取查询结果总记录条数
TotalCount = dtRAWMATERIALBASE.Rows.Count;
//根据传入的页码和每页显示条数返回结果
dtRAWMATERIALBASE = CommonHelper.GetDataTableWithPageSize(dtRAWMATERIALBASE, searchModel.PageSize, searchModel.PageIndex);
foreach (DataRow drRAWMATERIALBASE in dtRAWMATERIALBASE.Rows)
{
Model.RAWMATERIALBASEModel rawmaterialbaseModel = new Model.RAWMATERIALBASEModel();
//绑定餐饮原材料基础库数据对象
BindDataRowToModel(drRAWMATERIALBASE, rawmaterialbaseModel);
RAWMATERIALBASEList.Add(rawmaterialbaseModel);
}
return RAWMATERIALBASEList;
}
#region model
/// <summary>
/// 绑定model
/// </summary>
/// <param name="drRAWMATERIALBASE">datarow数据源</param>
/// <param name="rawmaterialbaseModel">model对象</param>
public static void BindDataRowToModel(DataRow drRAWMATERIALBASE, Model.RAWMATERIALBASEModel rawmaterialbaseModel)
{
if (drRAWMATERIALBASE["RAWMATERIALBASE_ID"].ToString() != "")
{
rawmaterialbaseModel.RAWMATERIALBASE_ID = drRAWMATERIALBASE["RAWMATERIALBASE_ID"].TryParseToInt(); //餐饮原材料基础库内码
}
if (drRAWMATERIALBASE["RAWMATERIAL_TYPEID"].ToString() != "")
{
rawmaterialbaseModel.RAWMATERIAL_TYPEID = drRAWMATERIALBASE["RAWMATERIAL_TYPEID"].TryParseToInt(); //原材料类型
}
rawmaterialbaseModel.RAWMATERIAL_NAME = drRAWMATERIALBASE["RAWMATERIAL_NAME"].ToString(); //原材料名称
rawmaterialbaseModel.RAWMATERIAL_CODE = drRAWMATERIALBASE["RAWMATERIAL_CODE"].ToString(); //原材料编码
rawmaterialbaseModel.RAWMATERIAL_BARCODE = drRAWMATERIALBASE["RAWMATERIAL_BARCODE"].ToString(); //原材料条码
rawmaterialbaseModel.RAWMATERIAL_RULE = drRAWMATERIALBASE["RAWMATERIAL_RULE"].ToString(); //原材料规格
rawmaterialbaseModel.RAWMATERIAL_UNIT = drRAWMATERIALBASE["RAWMATERIAL_UNIT"].ToString(); //最小单位名称
if (drRAWMATERIALBASE["RAWMATERIAL_PURCHASEPRICE"].ToString() != "")
{
rawmaterialbaseModel.RAWMATERIAL_PURCHASEPRICE = drRAWMATERIALBASE["RAWMATERIAL_PURCHASEPRICE"].TryParseToDouble(); //基准价格
}
if (drRAWMATERIALBASE["FLOATING_RATIO"].ToString() != "")
{
rawmaterialbaseModel.FLOATING_RATIO = drRAWMATERIALBASE["FLOATING_RATIO"].TryParseToDouble(); //上浮比例(%)
}
if (drRAWMATERIALBASE["RAWMATERIAL_MAXPRICE"].ToString() != "")
{
rawmaterialbaseModel.RAWMATERIAL_MAXPRICE = drRAWMATERIALBASE["RAWMATERIAL_MAXPRICE"].TryParseToDouble(); //上浮价格
}
if (drRAWMATERIALBASE["DOWNWARDFLOATING_RATIO"].ToString() != "")
{
rawmaterialbaseModel.DOWNWARDFLOATING_RATIO = drRAWMATERIALBASE["DOWNWARDFLOATING_RATIO"].TryParseToDouble(); //下浮比例(%)
}
if (drRAWMATERIALBASE["RAWMATERIAL_MINPRICE"].ToString() != "")
{
rawmaterialbaseModel.RAWMATERIAL_MINPRICE = drRAWMATERIALBASE["RAWMATERIAL_MINPRICE"].TryParseToDouble(); //下浮价格
}
if (drRAWMATERIALBASE["PROVINCE_ID"].ToString() != "")
{
rawmaterialbaseModel.PROVINCE_ID = drRAWMATERIALBASE["PROVINCE_ID"].TryParseToInt(); //省份内码
}
if (drRAWMATERIALBASE["PROVINCE_CODE"].ToString() != "")
{
rawmaterialbaseModel.PROVINCE_CODE = drRAWMATERIALBASE["PROVINCE_CODE"].TryParseToInt(); //省份编码
}
if (drRAWMATERIALBASE["RAWMATERIAL_STATE"].ToString() != "")
{
rawmaterialbaseModel.RAWMATERIAL_STATE = drRAWMATERIALBASE["RAWMATERIAL_STATE"].TryParseToShort(); //有效状态0无效1有效
}
if (!string.IsNullOrWhiteSpace(drRAWMATERIALBASE["OPERATE_DATE"].ToString()))
{
//修改时间
rawmaterialbaseModel.OPERATE_DATE = drRAWMATERIALBASE["OPERATE_DATE"].ToString();
}
rawmaterialbaseModel.RAWMATERIAL_DESC = drRAWMATERIALBASE["RAWMATERIAL_DESC"].ToString(); //备注说明
if (drRAWMATERIALBASE["UNIT_COUNT"].ToString() != "")
{
rawmaterialbaseModel.UNIT_COUNT = drRAWMATERIALBASE["UNIT_COUNT"].TryParseToInt(); //折算数量
}
}
#endregion
#endregion
#region
/// <summary>
/// 获取餐饮原材料基础库明细
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="RAWMATERIALBASEId">餐饮原材料基础库内码</param>
public static Model.RAWMATERIALBASEModel GetRAWMATERIALBASEDetail(Transaction transaction, int RAWMATERIALBASEId)
{
Model.RAWMATERIALBASEModel rawmaterialbaseModel = new Model.RAWMATERIALBASEModel();
string WhereSQL = "WHERE RAWMATERIALBASE_ID = " + RAWMATERIALBASEId;
//查询明细数据
DataTable dtRAWMATERIALBASE = new Business.SENDRECPROINST(transaction).ExecuteDataTable(
"SELECT * FROM SENDREC_STORAGE.T_RAWMATERIALBASE " + WhereSQL);
if (dtRAWMATERIALBASE.Rows.Count > 0)
{
//绑定餐饮原材料基础库数据对象
BindDataRowToModel(dtRAWMATERIALBASE.Rows[0], rawmaterialbaseModel);
}
return rawmaterialbaseModel;
}
#endregion
#region
/// <summary>
/// 赋值餐饮原材料基础库数据对象
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="rawmaterialbaseModel">餐饮原材料基础库数据对象</param>
public static bool SynchroRAWMATERIALBASE(Transaction transaction, Model.RAWMATERIALBASEModel rawmaterialbaseModel)
{
bool SynchroFlag = true;
string SQLString;
List<string> excludeField = new List<string>();
Dictionary<string, string> dateFieldList = new Dictionary<string, string>();
string tableName = "SENDREC_STORAGE.T_RAWMATERIALBASE", keyField = "RAWMATERIALBASE_ID", seqName = "SEQ_RAWMATERIALBASE";
Business.SENDRECPROINST _SENDRECPROINST = new Business.SENDRECPROINST(transaction);
#region SQL语句中需要排除在外的字段
excludeField.Add("RAWMATERIALBASE_IDS");
excludeField.Add("RAWMATERIAL_TYPEIDS");
excludeField.Add("OPERATE_DATE_Start");
excludeField.Add("OPERATE_DATE_End");
#endregion
#region SQL语句中日期相关字段的执行语句
//修改时间
if (!string.IsNullOrWhiteSpace(rawmaterialbaseModel.OPERATE_DATE))
{
dateFieldList.Add("OPERATE_DATE", "TO_DATE('" +
rawmaterialbaseModel.OPERATE_DATE + "','YYYY/MM/DD HH24:MI:SS')");
}
else
{
dateFieldList.Add("OPERATE_DATE", "NULL");
}
#endregion
if (rawmaterialbaseModel.RAWMATERIALBASE_ID != null)
{
string WhereSQL = " WHERE RAWMATERIALBASE_ID = " + rawmaterialbaseModel.RAWMATERIALBASE_ID;
DataTable dtRAWMATERIALBASE = _SENDRECPROINST.ExecuteDataTable(
"SELECT * FROM SENDREC_STORAGE.T_RAWMATERIALBASE" + WhereSQL);
if (dtRAWMATERIALBASE.Rows.Count > 0)
{
SQLString = OperationDataHelper<Model.RAWMATERIALBASEModel>.GetTableExcuteSQL(
rawmaterialbaseModel, 1, tableName, keyField, seqName, dateFieldList, excludeField, WhereSQL);
}
else
{
return false;
}
}
else
{
DataTable dtRAWMATERIALBASE = _SENDRECPROINST.ExecuteDataTable(
"SELECT " + seqName + ".NEXTVAL FROM DUAL");
rawmaterialbaseModel.RAWMATERIALBASE_ID = dtRAWMATERIALBASE.Rows[0][0].TryParseToInt();
SQLString = OperationDataHelper<Model.RAWMATERIALBASEModel>.GetTableExcuteSQL(
rawmaterialbaseModel, 0, tableName, keyField, seqName, dateFieldList, excludeField);
}
_SENDRECPROINST.ExecuteNonQuery(SQLString, null);
return SynchroFlag;
}
#endregion
#region
/// <summary>
/// 删除餐饮原材料基础库
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="RAWMATERIALBASEId">餐饮原材料基础库内码</param>
public static bool DeleteRAWMATERIALBASE(Transaction transaction, int? RAWMATERIALBASEId)
{
bool DeleteFlag = false;
if (RAWMATERIALBASEId != null)
{
string SQLString = "UPDATE SENDREC_STORAGE.T_RAWMATERIALBASE SET RAWMATERIAL_STATE = 0 WHERE RAWMATERIALBASE_ID = " + RAWMATERIALBASEId;
int ExcuteCount = new Business.SENDRECPROINST(transaction).ExecuteNonQuery(SQLString, null);
if (ExcuteCount > 0)
{
DeleteFlag = true;
}
}
return DeleteFlag;
}
#endregion
}
}