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 { /// /// 经营项目月度利润表相关方法 /// 2024/11/6 16:39:11自动生成 /// public class PERIODMONTHPROFITHelper { #region 获取经营项目月度利润表列表 /// /// 获取经营项目月度利润表列表 /// /// 事务管理器 /// 查询结果总数 /// 查询条件对象 public static List GetPERIODMONTHPROFITList(Transaction transaction, ref int TotalCount, Model.SearchModel searchModel) { List PERIODMONTHPROFITList = new List(); string WhereSQL = "", RowFilterSQL = ""; if (searchModel.SearchParameter != null) { WhereSQL = OperationDataHelper.GetWhereSQL(searchModel.SearchParameter, searchModel.QueryType, "", "STATISTICS_MONTH_Start", "STATISTICS_MONTH_End", "BUSINESSPROJECT_IDS", "SERVERPART_IDS", "BUSINESS_STATES", "SHOPROYALTY_IDS", "SETTLEMENT_MODESS", "BUSINESS_TYPES", "WARNING_TYPES"); if (WhereSQL != "") { WhereSQL = " WHERE " + WhereSQL; } //查询统计月份 if (searchModel.SearchParameter.STATISTICS_MONTH_Start.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "SUBSTR(STATISTICS_MONTH,1,8) >= " + DateTime.Parse(searchModel.SearchParameter.STATISTICS_MONTH_Start).ToString("yyyyMMdd"); } if (searchModel.SearchParameter.STATISTICS_MONTH_End.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "SUBSTR(STATISTICS_MONTH,1,8) <= " + DateTime.Parse(searchModel.SearchParameter.STATISTICS_MONTH_End).ToString("yyyyMMdd"); } //查询项目内码 if (searchModel.SearchParameter.BUSINESSPROJECT_IDS.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "BUSINESSPROJECT_ID IN (" + searchModel.SearchParameter.BUSINESSPROJECT_IDS + ")"; } //查询服务区内码 if (searchModel.SearchParameter.SERVERPART_IDS.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "SERVERPART_ID IN (" + searchModel.SearchParameter.SERVERPART_IDS + ")"; } //查询经营状态 if (searchModel.SearchParameter.BUSINESS_STATES.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "BUSINESS_STATE IN (" + searchModel.SearchParameter.BUSINESS_STATES + ")"; } //查询应收拆分内码 if (searchModel.SearchParameter.SHOPROYALTY_IDS.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "SHOPROYALTY_ID IN (" + searchModel.SearchParameter.SHOPROYALTY_IDS + ")"; } //查询结算模式 if (searchModel.SearchParameter.SETTLEMENT_MODESS.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "SETTLEMENT_MODES IN (" + searchModel.SearchParameter.SETTLEMENT_MODESS + ")"; } //查询经营模式 if (searchModel.SearchParameter.BUSINESS_TYPES.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "BUSINESS_TYPE IN (" + searchModel.SearchParameter.BUSINESS_TYPES + ")"; } //查询预警类型 if (searchModel.SearchParameter.WARNING_TYPES.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "WARNING_TYPE IN (" + searchModel.SearchParameter.WARNING_TYPES + ")"; } } DataTable dtPERIODMONTHPROFIT = new Business.CATERINGGROSSMARGIN(transaction).ExecuteDataTable( "SELECT * FROM PLATFORM_DASHBOARD.T_PERIODMONTHPROFIT" + 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 != "") { dtPERIODMONTHPROFIT.DefaultView.RowFilter = RowFilterSQL; } //排序: dtPERIODMONTHPROFIT.DefaultView.Sort = searchModel.SortStr; dtPERIODMONTHPROFIT = dtPERIODMONTHPROFIT.DefaultView.ToTable(); //获取查询结果总记录条数 TotalCount = dtPERIODMONTHPROFIT.Rows.Count; //根据传入的页码和每页显示条数返回结果 dtPERIODMONTHPROFIT = CommonHelper.GetDataTableWithPageSize(dtPERIODMONTHPROFIT, searchModel.PageSize, searchModel.PageIndex); foreach (DataRow drPERIODMONTHPROFIT in dtPERIODMONTHPROFIT.Rows) { Model.PERIODMONTHPROFITModel periodmonthprofitModel = new Model.PERIODMONTHPROFITModel(); //绑定经营项目月度利润表数据对象 BindDataRowToModel(drPERIODMONTHPROFIT, periodmonthprofitModel); PERIODMONTHPROFITList.Add(periodmonthprofitModel); } return PERIODMONTHPROFITList; } #region 绑定model /// /// 绑定model /// /// datarow数据源 /// model对象 public static void BindDataRowToModel(DataRow drPERIODMONTHPROFIT, Model.PERIODMONTHPROFITModel periodmonthprofitModel) { if (drPERIODMONTHPROFIT["PERIODPROFIT_ID"].ToString() != "") { periodmonthprofitModel.PERIODPROFIT_ID = drPERIODMONTHPROFIT["PERIODPROFIT_ID"].TryParseToInt(); //表内码 } if (!string.IsNullOrWhiteSpace(drPERIODMONTHPROFIT["STATISTICS_MONTH"].ToString())) { //统计月份 periodmonthprofitModel.STATISTICS_MONTH = HCC.Common.TranslateDateTime(drPERIODMONTHPROFIT["STATISTICS_MONTH"].ToString()); } if (drPERIODMONTHPROFIT["BUSINESSPROJECT_ID"].ToString() != "") { periodmonthprofitModel.BUSINESSPROJECT_ID = drPERIODMONTHPROFIT["BUSINESSPROJECT_ID"].TryParseToInt(); //项目内码 } periodmonthprofitModel.BUSINESSPROJECT_NAME = drPERIODMONTHPROFIT["BUSINESSPROJECT_NAME"].ToString(); //项目名称 if (drPERIODMONTHPROFIT["SERVERPART_ID"].ToString() != "") { periodmonthprofitModel.SERVERPART_ID = drPERIODMONTHPROFIT["SERVERPART_ID"].TryParseToInt(); //服务区内码 } periodmonthprofitModel.SERVERPART_NAME = drPERIODMONTHPROFIT["SERVERPART_NAME"].ToString(); //服务区名称 periodmonthprofitModel.SERVERPARTSHOP_ID = drPERIODMONTHPROFIT["SERVERPARTSHOP_ID"].ToString(); //门店内码 periodmonthprofitModel.SERVERPARTSHOP_NAME = drPERIODMONTHPROFIT["SERVERPARTSHOP_NAME"].ToString(); //门店名称 if (drPERIODMONTHPROFIT["BUSINESS_STATE"].ToString() != "") { periodmonthprofitModel.BUSINESS_STATE = drPERIODMONTHPROFIT["BUSINESS_STATE"].TryParseToInt(); //经营状态 } if (drPERIODMONTHPROFIT["BUSINESS_TRADE"].ToString() != "") { periodmonthprofitModel.BUSINESS_TRADE = drPERIODMONTHPROFIT["BUSINESS_TRADE"].TryParseToInt(); //经营业态 } if (drPERIODMONTHPROFIT["MERCHANTS_ID"].ToString() != "") { periodmonthprofitModel.MERCHANTS_ID = drPERIODMONTHPROFIT["MERCHANTS_ID"].TryParseToInt(); //经营商户内码 } periodmonthprofitModel.MERCHANTS_NAME = drPERIODMONTHPROFIT["MERCHANTS_NAME"].ToString(); //经营商户名称 if (drPERIODMONTHPROFIT["PROJECT_STARTDATE"].ToString() != "") { periodmonthprofitModel.PROJECT_STARTDATE = drPERIODMONTHPROFIT["PROJECT_STARTDATE"].TryParseToInt(); //项目开始日期 } if (drPERIODMONTHPROFIT["PROJECT_ENDDATE"].ToString() != "") { periodmonthprofitModel.PROJECT_ENDDATE = drPERIODMONTHPROFIT["PROJECT_ENDDATE"].TryParseToInt(); //项目结束日期 } if (drPERIODMONTHPROFIT["GUARANTEE_PRICE"].ToString() != "") { periodmonthprofitModel.GUARANTEE_PRICE = drPERIODMONTHPROFIT["GUARANTEE_PRICE"].TryParseToDouble(); //项目金额 } if (drPERIODMONTHPROFIT["SHOPROYALTY_ID"].ToString() != "") { periodmonthprofitModel.SHOPROYALTY_ID = drPERIODMONTHPROFIT["SHOPROYALTY_ID"].TryParseToInt(); //应收拆分内码 } periodmonthprofitModel.BUSINESS_PERIOD = drPERIODMONTHPROFIT["BUSINESS_PERIOD"].ToString(); //经营周期 if (drPERIODMONTHPROFIT["PERIOD_INDEX"].ToString() != "") { periodmonthprofitModel.PERIOD_INDEX = drPERIODMONTHPROFIT["PERIOD_INDEX"].TryParseToShort(); //第几期 } if (drPERIODMONTHPROFIT["STARTDATE"].ToString() != "") { periodmonthprofitModel.STARTDATE = drPERIODMONTHPROFIT["STARTDATE"].TryParseToInt(); //周期开始日期 } if (drPERIODMONTHPROFIT["ENDDATE"].ToString() != "") { periodmonthprofitModel.ENDDATE = drPERIODMONTHPROFIT["ENDDATE"].TryParseToInt(); //周期结束日期 } if (drPERIODMONTHPROFIT["SETTLEMENT_MODES"].ToString() != "") { periodmonthprofitModel.SETTLEMENT_MODES = drPERIODMONTHPROFIT["SETTLEMENT_MODES"].TryParseToInt(); //结算模式 } if (drPERIODMONTHPROFIT["BUSINESS_TYPE"].ToString() != "") { periodmonthprofitModel.BUSINESS_TYPE = drPERIODMONTHPROFIT["BUSINESS_TYPE"].TryParseToInt(); //经营模式 } if (drPERIODMONTHPROFIT["RENTFEE"].ToString() != "") { periodmonthprofitModel.RENTFEE = drPERIODMONTHPROFIT["RENTFEE"].TryParseToDouble(); //固定租金 } if (drPERIODMONTHPROFIT["MINTURNOVER"].ToString() != "") { periodmonthprofitModel.MINTURNOVER = drPERIODMONTHPROFIT["MINTURNOVER"].TryParseToDouble(); //保底租金 } if (drPERIODMONTHPROFIT["ACTUAL_RATIO"].ToString() != "") { periodmonthprofitModel.ACTUAL_RATIO = drPERIODMONTHPROFIT["ACTUAL_RATIO"].TryParseToDouble(); //真实提成 } if (drPERIODMONTHPROFIT["COMMISSION_RATIO"].ToString() != "") { periodmonthprofitModel.COMMISSION_RATIO = drPERIODMONTHPROFIT["COMMISSION_RATIO"].TryParseToDouble(); //建议提成 } if (drPERIODMONTHPROFIT["REVENUE_AMOUNT"].ToString() != "") { periodmonthprofitModel.REVENUE_AMOUNT = drPERIODMONTHPROFIT["REVENUE_AMOUNT"].TryParseToDouble(); //营收金额 } if (drPERIODMONTHPROFIT["TICKET_COUNT"].ToString() != "") { periodmonthprofitModel.TICKET_COUNT = drPERIODMONTHPROFIT["TICKET_COUNT"].TryParseToInt(); //客单数量 } if (drPERIODMONTHPROFIT["ROYALTY_PRICE"].ToString() != "") { periodmonthprofitModel.ROYALTY_PRICE = drPERIODMONTHPROFIT["ROYALTY_PRICE"].TryParseToDouble(); //业主到账 } if (drPERIODMONTHPROFIT["ROYALTY_THEORY"].ToString() != "") { periodmonthprofitModel.ROYALTY_THEORY = drPERIODMONTHPROFIT["ROYALTY_THEORY"].TryParseToDouble(); //业主入账 } if (drPERIODMONTHPROFIT["SUBROYALTY_THEORY"].ToString() != "") { periodmonthprofitModel.SUBROYALTY_THEORY = drPERIODMONTHPROFIT["SUBROYALTY_THEORY"].TryParseToDouble(); //商家入账 } if (drPERIODMONTHPROFIT["PROFIT_AMOUNT"].ToString() != "") { periodmonthprofitModel.PROFIT_AMOUNT = drPERIODMONTHPROFIT["PROFIT_AMOUNT"].TryParseToDouble(); //商家盈利 } if (drPERIODMONTHPROFIT["COST_AMOUNT"].ToString() != "") { periodmonthprofitModel.COST_AMOUNT = drPERIODMONTHPROFIT["COST_AMOUNT"].TryParseToDouble(); //预估成本 } if (drPERIODMONTHPROFIT["COST_RATE"].ToString() != "") { periodmonthprofitModel.COST_RATE = drPERIODMONTHPROFIT["COST_RATE"].TryParseToDouble(); //采购成本比例 } if (drPERIODMONTHPROFIT["CA_COST"].ToString() != "") { periodmonthprofitModel.CA_COST = drPERIODMONTHPROFIT["CA_COST"].TryParseToDouble(); //获客成本 } if (drPERIODMONTHPROFIT["LABOURS_COUNT"].ToString() != "") { periodmonthprofitModel.LABOURS_COUNT = drPERIODMONTHPROFIT["LABOURS_COUNT"].TryParseToDouble(); //员工人数 } if (drPERIODMONTHPROFIT["LABOURS_WAGE"].ToString() != "") { periodmonthprofitModel.LABOURS_WAGE = drPERIODMONTHPROFIT["LABOURS_WAGE"].TryParseToDouble(); //人均工资(元/月) } if (drPERIODMONTHPROFIT["DEPRECIATION_EXPENSE"].ToString() != "") { periodmonthprofitModel.DEPRECIATION_EXPENSE = drPERIODMONTHPROFIT["DEPRECIATION_EXPENSE"].TryParseToDouble(); //折旧费用(三年费用) } if (drPERIODMONTHPROFIT["OTHER_EXPENSE"].ToString() != "") { periodmonthprofitModel.OTHER_EXPENSE = drPERIODMONTHPROFIT["OTHER_EXPENSE"].TryParseToDouble(); //其他费用 } if (drPERIODMONTHPROFIT["DEPRECIATION_YEAR"].ToString() != "") { periodmonthprofitModel.DEPRECIATION_YEAR = drPERIODMONTHPROFIT["DEPRECIATION_YEAR"].TryParseToShort(); //折旧年限 } if (drPERIODMONTHPROFIT["MONTH_COUNT"].ToString() != "") { periodmonthprofitModel.MONTH_COUNT = drPERIODMONTHPROFIT["MONTH_COUNT"].TryParseToDouble(); //结算月数 } if (drPERIODMONTHPROFIT["GUARANTEERATIO"].ToString() != "") { periodmonthprofitModel.GUARANTEERATIO = drPERIODMONTHPROFIT["GUARANTEERATIO"].TryParseToDouble(); //保底比例 } if (drPERIODMONTHPROFIT["WARNING_TYPE"].ToString() != "") { periodmonthprofitModel.WARNING_TYPE = drPERIODMONTHPROFIT["WARNING_TYPE"].TryParseToShort(); //预警类型 } periodmonthprofitModel.WARNING_CONTENT = drPERIODMONTHPROFIT["WARNING_CONTENT"].ToString(); //预警条件 if (drPERIODMONTHPROFIT["STAFF_ID"].ToString() != "") { periodmonthprofitModel.STAFF_ID = drPERIODMONTHPROFIT["STAFF_ID"].TryParseToInt(); //操作人内码 } periodmonthprofitModel.STAFF_NAME = drPERIODMONTHPROFIT["STAFF_NAME"].ToString(); //操作人员 if (drPERIODMONTHPROFIT["RECORD_DATE"].ToString() != "") { periodmonthprofitModel.RECORD_DATE = drPERIODMONTHPROFIT["RECORD_DATE"].TryParseToDateTime(); //记录时间 } } #endregion #endregion #region 获取经营项目月度利润表明细 /// /// 获取经营项目月度利润表明细 /// /// 事务管理器 /// 经营项目月度利润表内码 public static Model.PERIODMONTHPROFITModel GetPERIODMONTHPROFITDetail(Transaction transaction, int PERIODMONTHPROFITId) { Model.PERIODMONTHPROFITModel periodmonthprofitModel = new Model.PERIODMONTHPROFITModel(); string WhereSQL = "WHERE PERIODMONTHPROFIT_ID = " + PERIODMONTHPROFITId; //查询明细数据 DataTable dtPERIODMONTHPROFIT = new Business.CATERINGGROSSMARGIN(transaction).ExecuteDataTable( "SELECT * FROM PLATFORM_DASHBOARD.T_PERIODMONTHPROFIT " + WhereSQL); if (dtPERIODMONTHPROFIT.Rows.Count > 0) { //绑定经营项目月度利润表数据对象 BindDataRowToModel(dtPERIODMONTHPROFIT.Rows[0], periodmonthprofitModel); } return periodmonthprofitModel; } #endregion #region 同步经营项目月度利润表 /// /// 赋值经营项目月度利润表数据对象 /// /// 事务管理器 /// 经营项目月度利润表数据对象 public static bool SynchroPERIODMONTHPROFIT(Transaction transaction, Model.PERIODMONTHPROFITModel periodmonthprofitModel) { bool SynchroFlag = true; string SQLString; List excludeField = new List(); Dictionary dateFieldList = new Dictionary(); string tableName = "PLATFORM_DASHBOARD.T_PERIODMONTHPROFIT", keyField = "PERIODMONTHPROFIT_ID", seqName = "SEQ_PERIODMONTHPROFIT"; Business.CATERINGGROSSMARGIN _CATERINGGROSSMARGIN = new Business.CATERINGGROSSMARGIN(transaction); #region 添加SQL语句中需要排除在外的字段 excludeField.Add("STATISTICS_MONTH_Start"); excludeField.Add("STATISTICS_MONTH_End"); excludeField.Add("BUSINESSPROJECT_IDS"); excludeField.Add("SERVERPART_IDS"); excludeField.Add("BUSINESS_STATES"); excludeField.Add("SHOPROYALTY_IDS"); excludeField.Add("SETTLEMENT_MODESS"); excludeField.Add("BUSINESS_TYPES"); excludeField.Add("WARNING_TYPES"); #endregion #region 添加SQL语句中日期相关字段的执行语句 //统计月份 if (!string.IsNullOrWhiteSpace(periodmonthprofitModel.STATISTICS_MONTH)) { dateFieldList.Add("STATISTICS_MONTH", DateTime.Parse( periodmonthprofitModel.STATISTICS_MONTH).ToString("yyyyMMddHHmmss")); } else { dateFieldList.Add("STATISTICS_MONTH", "NULL"); } #endregion if (periodmonthprofitModel.PERIODMONTHPROFIT_ID != null) { string WhereSQL = " WHERE PERIODMONTHPROFIT_ID = " + periodmonthprofitModel.PERIODMONTHPROFIT_ID; DataTable dtPERIODMONTHPROFIT = _CATERINGGROSSMARGIN.ExecuteDataTable( "SELECT * FROM PLATFORM_DASHBOARD.T_PERIODMONTHPROFIT" + WhereSQL); if (dtPERIODMONTHPROFIT.Rows.Count > 0) { SQLString = OperationDataHelper.GetTableExcuteSQL( periodmonthprofitModel, 1, tableName, keyField, seqName, dateFieldList, excludeField, WhereSQL); } else { return false; } } else { DataTable dtPERIODMONTHPROFIT = _CATERINGGROSSMARGIN.ExecuteDataTable( "SELECT " + seqName + ".NEXTVAL FROM DUAL"); periodmonthprofitModel.PERIODMONTHPROFIT_ID = dtPERIODMONTHPROFIT.Rows[0][0].TryParseToInt(); SQLString = OperationDataHelper.GetTableExcuteSQL( periodmonthprofitModel, 0, tableName, keyField, seqName, dateFieldList, excludeField); } _CATERINGGROSSMARGIN.ExecuteNonQuery(SQLString, null); return SynchroFlag; } #endregion #region 删除经营项目月度利润表 /// /// 删除经营项目月度利润表 /// /// 事务管理器 /// 经营项目月度利润表内码 public static bool DeletePERIODMONTHPROFIT(Transaction transaction, int? PERIODMONTHPROFITId) { bool DeleteFlag = false; if (PERIODMONTHPROFITId != null) { } return DeleteFlag; } #endregion } }