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

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