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

310 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.Seller.Storage.Business;
using HCC = HZQR.Common.Common;
using HZQR.Common;
namespace EShang.Common.GeneralMethod
{
/// <summary>
/// 验收单相关方法
/// 2023/9/18 10:11:21自动生成
/// </summary>
public class ACCEPTANCEHelper
{
#region
/// <summary>
/// 获取验收单列表
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="TotalCount">查询结果总数</param>
/// <param name="searchModel">查询条件对象</param>
public static List<Model.ACCEPTANCEModel> GetACCEPTANCEList(Transaction transaction,
ref int TotalCount, Model.SearchModel<Model.ACCEPTANCEModel> searchModel)
{
List<Model.ACCEPTANCEModel> ACCEPTANCEList = new List<Model.ACCEPTANCEModel>();
string WhereSQL = "", RowFilterSQL = "";
if (searchModel.SearchParameter != null)
{
WhereSQL = OperationDataHelper<Model.ACCEPTANCEModel>.GetWhereSQL(searchModel.SearchParameter, searchModel.QueryType, "",
"ACCEPTANCE_DATE_Start", "ACCEPTANCE_DATE_End", "ACCEPTANCE_STATES", "EXPECTED_DATE_Start", "EXPECTED_DATE_End");
if (WhereSQL != "")
{
WhereSQL = " WHERE " + WhereSQL;
}
//查询验收日期
if (searchModel.SearchParameter.ACCEPTANCE_DATE_Start.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "SUBSTR(ACCEPTANCE_DATE,1,8) >= " +
DateTime.Parse(searchModel.SearchParameter.ACCEPTANCE_DATE_Start).ToString("yyyyMMdd");
}
if (searchModel.SearchParameter.ACCEPTANCE_DATE_End.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "SUBSTR(ACCEPTANCE_DATE,1,8) <= " +
DateTime.Parse(searchModel.SearchParameter.ACCEPTANCE_DATE_End).ToString("yyyyMMdd");
}
//查询入库状态
if (searchModel.SearchParameter.ACCEPTANCE_STATES.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "ACCEPTANCE_STATE IN (" + searchModel.SearchParameter.ACCEPTANCE_STATES + ")";
}
//查询期望送达时间
if (searchModel.SearchParameter.EXPECTED_DATE_Start.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "SUBSTR(EXPECTED_DATE,1,8) >= " +
DateTime.Parse(searchModel.SearchParameter.EXPECTED_DATE_Start).ToString("yyyyMMdd");
}
if (searchModel.SearchParameter.EXPECTED_DATE_End.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "SUBSTR(EXPECTED_DATE,1,8) <= " +
DateTime.Parse(searchModel.SearchParameter.EXPECTED_DATE_End).ToString("yyyyMMdd");
}
}
DataTable dtACCEPTANCE = new Business.SELLERPROINST(transaction).ExecuteDataTable(
"SELECT * FROM SELLER_STORAGE.T_ACCEPTANCE" + 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 != "")
{
dtACCEPTANCE.DefaultView.RowFilter = RowFilterSQL;
}
//排序:
dtACCEPTANCE.DefaultView.Sort = searchModel.SortStr;
dtACCEPTANCE = dtACCEPTANCE.DefaultView.ToTable();
//获取查询结果总记录条数
TotalCount = dtACCEPTANCE.Rows.Count;
//根据传入的页码和每页显示条数返回结果
dtACCEPTANCE = CommonHelper.GetDataTableWithPageSize(dtACCEPTANCE, searchModel.PageSize, searchModel.PageIndex);
foreach (DataRow drACCEPTANCE in dtACCEPTANCE.Rows)
{
Model.ACCEPTANCEModel acceptanceModel = new Model.ACCEPTANCEModel();
//绑定验收单数据对象
BindDataRowToModel(drACCEPTANCE, acceptanceModel);
ACCEPTANCEList.Add(acceptanceModel);
}
return ACCEPTANCEList;
}
#region model
/// <summary>
/// 绑定model
/// </summary>
/// <param name="drACCEPTANCE">datarow数据源</param>
/// <param name="acceptanceModel">model对象</param>
public static void BindDataRowToModel(DataRow drACCEPTANCE, Model.ACCEPTANCEModel acceptanceModel)
{
if (drACCEPTANCE["ACCEPTANCE_ID"].ToString() != "")
{
acceptanceModel.ACCEPTANCE_ID = drACCEPTANCE["ACCEPTANCE_ID"].TryParseToInt(); //验收单内码
}
if (drACCEPTANCE["PURCHASE_ID"].ToString() != "")
{
acceptanceModel.PURCHASE_ID = drACCEPTANCE["PURCHASE_ID"].TryParseToInt(); //采购内码
}
acceptanceModel.PURCHASE_CODE = drACCEPTANCE["PURCHASE_CODE"].ToString(); //采购单号
if (drACCEPTANCE["GOODSDELIVER_ID"].ToString() != "")
{
acceptanceModel.GOODSDELIVER_ID = drACCEPTANCE["GOODSDELIVER_ID"].TryParseToInt(); //送货单内码
}
acceptanceModel.GOODSDELIVER_CODE = drACCEPTANCE["GOODSDELIVER_CODE"].ToString(); //送货编码
if (!string.IsNullOrWhiteSpace(drACCEPTANCE["ACCEPTANCE_DATE"].ToString()))
{
//验收日期
acceptanceModel.ACCEPTANCE_DATE = HCC.Common.TranslateDateTime(drACCEPTANCE["ACCEPTANCE_DATE"].ToString());
}
acceptanceModel.ACCEPTANCE_PERSON = drACCEPTANCE["ACCEPTANCE_PERSON"].ToString(); //验收人员
acceptanceModel.ACCEPTANCE_PERSONTEL = drACCEPTANCE["ACCEPTANCE_PERSONTEL"].ToString(); //联系电话
if (drACCEPTANCE["SUPPLIER_ID"].ToString() != "")
{
acceptanceModel.SUPPLIER_ID = drACCEPTANCE["SUPPLIER_ID"].TryParseToInt(); //供应商内码
}
acceptanceModel.SUPPLIER_NAME = drACCEPTANCE["SUPPLIER_NAME"].ToString(); //供应商名称
if (drACCEPTANCE["DELIVER_TYPE"].ToString() != "")
{
acceptanceModel.DELIVER_TYPE = drACCEPTANCE["DELIVER_TYPE"].TryParseToInt(); //配送类型
}
if (drACCEPTANCE["BILL_STATE"].ToString() != "")
{
acceptanceModel.BILL_STATE = drACCEPTANCE["BILL_STATE"].TryParseToShort(); //开票状态
}
if (drACCEPTANCE["SELLER_ID"].ToString() != "")
{
acceptanceModel.SELLER_ID = drACCEPTANCE["SELLER_ID"].TryParseToInt(); //商户内码
}
if (drACCEPTANCE["WAREHOUSE_ID"].ToString() != "")
{
acceptanceModel.WAREHOUSE_ID = drACCEPTANCE["WAREHOUSE_ID"].TryParseToInt(); //配送单位内码
}
acceptanceModel.WAREHOUSE_NAME = drACCEPTANCE["WAREHOUSE_NAME"].ToString(); //配送单位名称
if (drACCEPTANCE["ACCEPTANCE_STATE"].ToString() != "")
{
acceptanceModel.ACCEPTANCE_STATE = drACCEPTANCE["ACCEPTANCE_STATE"].TryParseToShort(); //入库状态
}
if (drACCEPTANCE["STAFF_ID"].ToString() != "")
{
acceptanceModel.STAFF_ID = drACCEPTANCE["STAFF_ID"].TryParseToInt(); //操作员内码
}
acceptanceModel.STAFF_NAME = drACCEPTANCE["STAFF_NAME"].ToString(); //操作人名称
if (drACCEPTANCE["OPERATE_DATE"].ToString() != "")
{
acceptanceModel.OPERATE_DATE = drACCEPTANCE["OPERATE_DATE"].TryParseToDateTime(); //操作时间
}
acceptanceModel.ACCEPTANCE_DESC = drACCEPTANCE["ACCEPTANCE_DESC"].ToString(); //入库备注
if (!string.IsNullOrWhiteSpace(drACCEPTANCE["EXPECTED_DATE"].ToString()))
{
//期望送达时间
acceptanceModel.EXPECTED_DATE = HCC.Common.TranslateDateTime(drACCEPTANCE["EXPECTED_DATE"].ToString());
}
if (drACCEPTANCE["BILLSITE_STATE"].ToString() != "")
{
acceptanceModel.BILLSITE_STATE = drACCEPTANCE["BILLSITE_STATE"].TryParseToShort(); //开票状态(配送站点)
}
if (drACCEPTANCE["ACCOUNTED_TYPE"].ToString() != "")
{
acceptanceModel.ACCOUNTED_TYPE = drACCEPTANCE["ACCOUNTED_TYPE"].TryParseToShort(); //入账类型1000配送站点2000劳务派遣
}
}
#endregion
#endregion
#region
/// <summary>
/// 获取验收单明细
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="ACCEPTANCEId">验收单内码</param>
public static Model.ACCEPTANCEModel GetACCEPTANCEDetail(Transaction transaction, int ACCEPTANCEId)
{
Model.ACCEPTANCEModel acceptanceModel = new Model.ACCEPTANCEModel();
string WhereSQL = "WHERE ACCEPTANCE_ID = " + ACCEPTANCEId;
//查询明细数据
DataTable dtACCEPTANCE = new Business.SELLERPROINST(transaction).ExecuteDataTable(
"SELECT * FROM SELLER_STORAGE.T_ACCEPTANCE " + WhereSQL);
if (dtACCEPTANCE.Rows.Count > 0)
{
//绑定验收单数据对象
BindDataRowToModel(dtACCEPTANCE.Rows[0], acceptanceModel);
}
return acceptanceModel;
}
#endregion
#region
/// <summary>
/// 赋值验收单数据对象
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="acceptanceModel">验收单数据对象</param>
public static bool SynchroACCEPTANCE(Transaction transaction, Model.ACCEPTANCEModel acceptanceModel)
{
bool SynchroFlag = true;
string SQLString;
List<string> excludeField = new List<string>();
Dictionary<string, string> dateFieldList = new Dictionary<string, string>();
string tableName = "SELLER_STORAGE.T_ACCEPTANCE", keyField = "ACCEPTANCE_ID", seqName = "SEQ_ACCEPTANCE";
Business.SELLERPROINST _SELLERPROINST = new Business.SELLERPROINST(transaction);
#region SQL语句中需要排除在外的字段
excludeField.Add("ACCEPTANCE_DATE_Start");
excludeField.Add("ACCEPTANCE_DATE_End");
excludeField.Add("ACCEPTANCE_STATES");
excludeField.Add("EXPECTED_DATE_Start");
excludeField.Add("EXPECTED_DATE_End");
#endregion
#region SQL语句中日期相关字段的执行语句
//验收日期
if (!string.IsNullOrWhiteSpace(acceptanceModel.ACCEPTANCE_DATE))
{
dateFieldList.Add("ACCEPTANCE_DATE", DateTime.Parse(
acceptanceModel.ACCEPTANCE_DATE).ToString("yyyyMMddHHmmss"));
}
else
{
dateFieldList.Add("ACCEPTANCE_DATE", "NULL");
}
//期望送达时间
if (!string.IsNullOrWhiteSpace(acceptanceModel.EXPECTED_DATE))
{
dateFieldList.Add("EXPECTED_DATE", DateTime.Parse(
acceptanceModel.EXPECTED_DATE).ToString("yyyyMMddHHmmss"));
}
else
{
dateFieldList.Add("EXPECTED_DATE", "NULL");
}
#endregion
if (acceptanceModel.ACCEPTANCE_ID != null)
{
string WhereSQL = " WHERE ACCEPTANCE_ID = " + acceptanceModel.ACCEPTANCE_ID;
DataTable dtACCEPTANCE = _SELLERPROINST.ExecuteDataTable(
"SELECT * FROM SELLER_STORAGE.T_ACCEPTANCE" + WhereSQL);
if (dtACCEPTANCE.Rows.Count > 0)
{
SQLString = OperationDataHelper<Model.ACCEPTANCEModel>.GetTableExcuteSQL(
acceptanceModel, 1, tableName, keyField, seqName, dateFieldList, excludeField, WhereSQL);
}
else
{
return false;
}
}
else
{
DataTable dtACCEPTANCE = _SELLERPROINST.ExecuteDataTable(
"SELECT " + seqName + ".NEXTVAL FROM DUAL");
acceptanceModel.ACCEPTANCE_ID = dtACCEPTANCE.Rows[0][0].TryParseToInt();
SQLString = OperationDataHelper<Model.ACCEPTANCEModel>.GetTableExcuteSQL(
acceptanceModel, 0, tableName, keyField, seqName, dateFieldList, excludeField);
}
_SELLERPROINST.ExecuteNonQuery(SQLString, null);
return SynchroFlag;
}
#endregion
#region
/// <summary>
/// 删除验收单
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="ACCEPTANCEId">验收单内码</param>
public static bool DeleteACCEPTANCE(Transaction transaction, int? ACCEPTANCEId)
{
bool DeleteFlag = false;
if (ACCEPTANCEId != null)
{
string SQLString = "UPDATE SELLER_STORAGE.T_ACCEPTANCE SET ACCEPTANCE_STATE = 0 WHERE ACCEPTANCE_ID = " + ACCEPTANCEId;
int ExcuteCount = new Business.SELLERPROINST(transaction).ExecuteNonQuery(SQLString, null);
if (ExcuteCount > 0)
{
DeleteFlag = true;
}
}
return DeleteFlag;
}
#endregion
}
}