using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; using System.Web.Http.Description; using ESCG = CommercialApi.GeneralMethod; using ESCM = CommercialApi.Model; using Newtonsoft.Json.Linq; using Newtonsoft.Json; using HZQR.Common; namespace CommercialApi.Controllers { /// /// 营收相关接口 /// public class RevenueController : BaseController { #region 获取营收推送数据表列表 /// /// 获取营收推送数据表列表 /// /// 推送省份 /// 统计日期 /// 服务区内码 /// 区域内码 /// 是否纳入营收【每日营收推送中是否展示该门店的营收数据】(0:否;1:是) /// [Route("Revenue/GetRevenuePushList")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetRevenuePushList(string pushProvinceCode, string Statistics_Date, int? Serverpart_ID = null, int? SPRegionType_ID = null, int? Revenue_Include = null) { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,统计日期【" + Statistics_Date + "】," + "服务区内码【" + Serverpart_ID + "】,区域内码【" + SPRegionType_ID + "】,统计营收【" + Revenue_Include + "】"; try { string TransmitUrl = "TransmitUrl"; if (CommonHelper.IsFromNewServer(pushProvinceCode, ref TransmitUrl)) { string result = ESCG.HttpUtil.HttpUrlGet(TransmitUrl + "Revenue/GetRevenuePushList?pushProvinceCode=" + pushProvinceCode + "&Statistics_Date=" + Statistics_Date + "&Serverpart_ID=" + Serverpart_ID + "&SPRegionType_ID=" + SPRegionType_ID + "&Revenue_Include=" + Revenue_Include); try { JObject keyValuePairs = JObject.Parse(result); if (keyValuePairs["Result_Code"].ToString() == "100") { //获取服务区门店信息 Models.JsonList jsonList = JsonConvert.DeserializeObject< Models.JsonList>(keyValuePairs["Result_Data"].ToString()); return Ok(Models.JsonMsg>.Success(jsonList, 100, "查询成功")); } else { return Ok(ESCG.Common.ReturnJson(keyValuePairs["Result_Code"].TryParseToInt(), keyValuePairs["Result_Desc"].ToString())); } } catch (Exception _Exception) { LogUtil.WriteLog(null, "查询失败!" + Parameter + ",失败原因:" + _Exception.Message, DateTime.Now.ToString("yyyyMMdd") + "_GetRevenuePushList"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + _Exception.Message)); } } else { int TotalCount = 0; //获取营收推送数据表列表 List REVENUEPUSHList = ESCG.RevenuePushHelper.GetRevenuePushList(transaction, ref TotalCount, pushProvinceCode, Statistics_Date, Statistics_Date, Serverpart_ID, SPRegionType_ID, Revenue_Include); //转化json形式 Models.JsonList jsonList = Models.JsonList.Success( REVENUEPUSHList, TotalCount, 1, TotalCount); return Ok(Models.JsonMsg>.Success(jsonList, 100, "查询成功")); } } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetRevenuePushList"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取营收推送汇总数据 /// /// 获取营收推送汇总数据 /// /// 推送省份 /// 统计开始日期 /// 统计结束日期 /// 服务区内码 /// 区域内码 /// 是否纳入营收【每日营收推送中是否展示该门店的营收数据】(0:否;1:是) /// 是否计算增长率 /// 是否显示年度营收额 /// [Route("Revenue/GetSummaryRevenue")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetSummaryRevenue(string pushProvinceCode, string Statistics_StartDate = "", string Statistics_Date = "", int? Serverpart_ID = null, int? SPRegionType_ID = null, int? Revenue_Include = null, bool ShowCompareRate = false, bool ShowYearRevenue = false) { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,统计开始日期【" + Statistics_StartDate + "】," + "统计日期【" + Statistics_Date + "】,服务区内码【" + Serverpart_ID + "】,区域内码【" + SPRegionType_ID + "】," + "统计营收【" + Revenue_Include + "】,是否计算增长率【" + ShowCompareRate + "】"; try { if (string.IsNullOrWhiteSpace(Statistics_StartDate)) { Statistics_StartDate = Statistics_Date; } //获取营收推送数据表列表 ESCM.SummaryRevenueModel summaryRevenueModel = ESCG.RevenuePushHelper.GetSummaryRevenue(transaction, pushProvinceCode, Statistics_StartDate, Statistics_Date, Serverpart_ID, SPRegionType_ID, Revenue_Include, ShowCompareRate, ShowYearRevenue); if (summaryRevenueModel == null) { return Ok(ESCG.Common.ReturnJson(200, "查询失败,无数据返回!")); } return Ok(Models.JsonMsg.Success(summaryRevenueModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetSummaryRevenue"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取月度营收推送汇总数据 /// /// 获取月度营收推送汇总数据 /// /// 推送省份 /// 统计月份 /// 统计日期,如果传入了时间要显示当天的营收数据 /// 是否执行固化操作 /// [Route("Revenue/GetSummaryRevenueMonth")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetSummaryRevenueMonth(string pushProvinceCode, string StatisticsMonth, string StatisticsDate = "", bool SolidType = false) { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】," + "统计月份【" + StatisticsMonth + "】,统计日期【" + StatisticsDate + "】"; try { //获取营收推送数据表列表 ESCM.SummaryRevenueMonthModel summaryRevenueModel = ESCG.RevenuePushHelper.GetSummaryRevenueMonth(transaction, pushProvinceCode, StatisticsMonth, StatisticsDate, SolidType); if (summaryRevenueModel == null) { return Ok(ESCG.Common.ReturnJson(200, "查询失败,无数据返回!")); } return Ok(Models.JsonMsg.Success(summaryRevenueModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetSummaryRevenue"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取营收推送单品销售排行【甘肃营收推送】 /// /// 获取营收推送单品销售排行【甘肃营收推送】 /// /// 推送省份编码 /// 统计日期 /// 显示单品行数,默认100 /// [Route("Revenue/GetWechatPushSalesList")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetWechatPushSalesList(string pushProvinceCode, string Statistics_Date, int RankNum = 100) { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】," + "统计日期【" + Statistics_Date + "】,显示单品行数【" + RankNum + "】"; try { //获取营收推送数据表列表 List REVENUEPUSHList = ESCG.RevenuePushHelper.GetWechatPushSalesList( transaction, pushProvinceCode, Statistics_Date, RankNum); //转化json形式 Models.JsonList jsonList = Models.JsonList.Success( REVENUEPUSHList, REVENUEPUSHList.Count, 1, REVENUEPUSHList.Count); return Ok(Models.JsonMsg>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetWechatPushSalesList"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 查询服务区未上传结账信息的门店列表 /// /// 查询服务区未上传结账信息的门店列表 /// /// 推送省份 /// 统计日期 /// 服务区内码 /// 区域内码 /// 是否纳入营收【每日营收推送中是否展示该门店的营收数据】(0:否;1:是) /// [Route("Revenue/GetUnUpLoadShops")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetUnUpLoadShops(string pushProvinceCode, string Statistics_Date, int? Serverpart_ID = null, int? SPRegionType_ID = null, int? Revenue_Include = null) { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,统计日期【" + Statistics_Date + "】," + "服务区内码【" + Serverpart_ID + "】,区域内码【" + SPRegionType_ID + "】,统计营收【" + Revenue_Include + "】"; try { //获取营收推送数据表列表 List REVENUEPUSHList = ESCG.RevenuePushHelper.GetUnUpLoadShops(transaction, pushProvinceCode, Statistics_Date, Serverpart_ID, SPRegionType_ID, Revenue_Include); //转化json形式 Models.JsonList jsonList = Models.JsonList.Success( REVENUEPUSHList, REVENUEPUSHList.Count, 1, REVENUEPUSHList.Count); return Ok(Models.JsonMsg>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetUnUpLoadShops"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取服务区品牌营收 /// /// 获取服务区品牌营收 /// /// 服务区内码 /// 统计时间 /// 省份编号 /// [AcceptVerbs("GET")] [Route("Revenue/GetServerpartBrand")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetServerpartBrand(string pushProvinceCode, int? Serverpart_Id, DateTime? statictics_Time) { try { //获取品牌详情列表 ESCM.ServerpartBrandModel serverpartBrandModel = ESCG.RevenuePushHelper.GetServerpartBrand( transaction, pushProvinceCode, Serverpart_Id, statictics_Time); //生成返回值返回 return Ok(Models.JsonMsg.Success(serverpartBrandModel, 100, "查询成功")); } catch (Exception ex) { SuperMap.RealEstate.Utility.ErrorLogHelper.Write(ex, "接口【GetServerPartBrand】", ""); transaction.Rollback(); string msg = "查询失败" + ex.Message; return Ok(ESCG.Common.ReturnJson(999, msg)); } } #endregion #region 查询服务区结账数据列表 /// /// 查询服务区结账数据列表 /// /// 推送省份 /// 服务区内码 /// 统计日期 /// [Route("Revenue/GetServerpartEndAccountList")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetServerpartEndAccountList(string pushProvinceCode, string Statistics_Date, int Serverpart_ID) { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】," + "统计日期【" + Statistics_Date + "】,服务区内码【" + Serverpart_ID + "】"; try { //获取营收推送数据表列表 ESCM.ServerpartEndaccountModel serverpartEndaccountModel = ESCG.RevenuePushHelper.GetServerpartEndAccountList( transaction, pushProvinceCode, Serverpart_ID, Statistics_Date); return Ok(Models.JsonMsg.Success(serverpartEndaccountModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetServerpartEndAccountList"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 查询门店结账数据列表 /// /// 查询门店结账数据列表 /// /// 推送省份 /// 服务区内码 /// 门店内码集合 /// 统计日期 /// [Route("Revenue/GetShopEndAccountList")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetShopEndAccountList(string pushProvinceCode, string Statistics_Date, int Serverpart_ID, string ServerpartShop_Ids = "") { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,统计日期【" + Statistics_Date + "】," + "服务区内码【" + Serverpart_ID + "】,门店内码集合【" + ServerpartShop_Ids + "】"; try { //获取营收推送数据表列表 ESCM.ShopBrandModel shopBrandModel = ESCG.RevenuePushHelper.GetShopEndAccountList(transaction, pushProvinceCode, Serverpart_ID, ServerpartShop_Ids, Statistics_Date); return Ok(Models.JsonMsg.Success(shopBrandModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetShopEndAccountList"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取预算费用表列表(POST) /// /// 获取预算费用表列表(POST) /// /// 查询条件对象 /// [Route("Revenue/GetBudgetExpenseList")] [AcceptVerbs("POST")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetBudgetExpenseList(ESCM.SearchModel searchModel) { string Parameter = "入参信息:查询方式【" + searchModel.QueryType + "】查询页码【" + searchModel.PageIndex + "】," + "每页显示数量【" + searchModel.PageSize + "】,排序条件【" + searchModel.SortStr + "】"; try { int TotalCount = 0; //获取预算费用表列表 List BUDGETEXPENSEList = ESCG.BUDGETEXPENSEHelper.GetBUDGETEXPENSEList( transaction, ref TotalCount, searchModel); //转化json形式 Models.JsonList jsonList = Models.JsonList.Success( BUDGETEXPENSEList, TotalCount, searchModel.PageIndex, searchModel.PageSize); return Ok(Models.JsonMsg>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetBudgetExpenseList"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取预算费用表列表(GET) /// /// 获取预算费用表列表(GET) /// /// 推送省份 /// 统计日期 /// 服务区内码 /// [Route("Revenue/GetBudgetExpenseList")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetBudgetExpenseList(string Statistics_Month, string Province_Code, int? Serverpart_ID = null) { string Parameter = "入参信息:统计月份【" + Statistics_Month + "】," + "省份编码【" + Province_Code + "】,服务区内码【" + Serverpart_ID + "】"; try { int TotalCount = 0; //获取预算费用表列表 List BUDGETEXPENSEList = ESCG.BUDGETEXPENSEHelper.GetBUDGETEXPENSEList( transaction, ref TotalCount, Statistics_Month, Province_Code, Serverpart_ID); //转化json形式 Models.JsonList jsonList = Models.JsonList.Success( BUDGETEXPENSEList, TotalCount, 1, TotalCount); return Ok(Models.JsonMsg>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetBudgetExpenseList"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取计划营收数据 /// /// 获取计划营收数据 /// /// 统计日期 /// 推送省份 /// 服务区内码 /// 区域内码 /// 是否纳入营收【每日营收推送中是否展示该门店的营收数据】(0:否;1:是) /// [Route("Revenue/GetRevenueBudget")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetRevenueBudget(string Province_Code, string Statistics_Date = "", int? Serverpart_ID = null, int? SPRegionType_ID = null, int? Revenue_Include = null) { string Parameter = "入参信息:省份编码【" + Province_Code + "】,统计日期【" + Statistics_Date + "】," + "服务区内码【" + Serverpart_ID + "】,片区内码【" + SPRegionType_ID + "】,是否纳入营收【" + Revenue_Include + "】"; try { //获取预算费用表列表 ESCM.RevenueBudgetModel revenueBudgetModel = ESCG.BUDGETEXPENSEHelper.GetRevenueBudget( transaction, Statistics_Date, Province_Code, Serverpart_ID, SPRegionType_ID, Revenue_Include); if (revenueBudgetModel == null) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,未录入预算数据!")); } return Ok(Models.JsonMsg.Success(revenueBudgetModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetRevenueBudget"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取全省计划营收分析 /// /// 获取全省计划营收分析 /// /// /// 接口应用描述:
/// 业务逻辑描述:
/// 4、按片区统计:
/// 1)从【预算费用表】和【服务区表】联合查询片区的计划营收数据
/// 2)从【安徽财务预算表】和【安徽财务预算明细表】查询当前片区下服务区的自营营业额数据,其中STATISTICS_TYPE=1000代表服务区
/// 3)从【服务区营收日度报表】和【服务区表】查询当前片区下服务区的营业额,片区营业额=服务区的累计 ///
/// 省份编码 /// 统计日期 /// /// 统计类型:
/// 1:按月度统计,子列表是片区
/// 2:按年度统计,子列表是月份
/// 3:按年度统计,子列表是片区
/// 4:按片区统计,子项列表是服务区
/// /// 片区内码 /// 服务区内码 /// 是否显示全年的计划营收 /// /// 涉及到的数据表: /// 1、预算费用表:HIGHWAY_STORAGE.T_BUDGETEXPENSE
/// 2、服务区表:HIGHWAY_STORAGE.T_SERVERPART
/// 3、安徽财务预算表:FINANCE_STORAGE.T_BUDGETPROJECT_AH
/// 4、安徽财务预算明细表:FINANCE_STORAGE.T_BUDGETDETAIL_AH
/// 5、服务区营收日度报表:PLATFORM_DASHBOARD.T_REVENUEDAILY ///
/// /// /// /// [Route("Revenue/GetProvinceRevenueBudget")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetProvinceRevenueBudget(string StatisticsDate, string ProvinceCode, int StatisticsType, int? SPRegionTypeID = null, int? ServerpartID = null, bool ShowWholeYear = false) { string Parameter = "入参信息:省份编码【" + ProvinceCode + "】," + "统计日期【" + StatisticsDate + "】,统计类型【" + StatisticsType + "】," + "片区内码【" + SPRegionTypeID + "】,服务区内码【" + ServerpartID + "】"; try { //获取月度车流量汇总数据 ESCM.ProvinceBudgetModel provinceBudgetModel = ESCG.BUDGETEXPENSEHelper.GetProvinceRevenueBudget( transaction, StatisticsDate, ProvinceCode, StatisticsType, SPRegionTypeID, ServerpartID, ShowWholeYear); if (provinceBudgetModel == null) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } return Ok(Models.JsonMsg.Success(provinceBudgetModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetProvinceRevenueBudget"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取移动支付分账数据 /// /// 获取移动支付分账数据 /// /// 推送省份 /// 统计日期 /// 统计开始日期 /// 统计结束日期 /// 服务区内码 /// 片区内码 /// 是否计算增长率 /// [Route("Revenue/GetMobileShare")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetMobileShare(string Province_Code, string Statistics_Date = "", string StatisticsStartDate = "", string StatisticsEndDate = "", int? Serverpart_ID = null, int? SPRegionType_ID = null, bool ShowCompareRate = false) { string Parameter = "入参信息:省份编码【" + Province_Code + "】,统计日期【" + Statistics_Date + "】," + "统计开始日期【" + StatisticsStartDate + "】,统计结束日期【" + StatisticsEndDate + "】," + "服务区内码【" + Serverpart_ID + "】,片区内码【" + SPRegionType_ID + "】,是否计算增长率【" + ShowCompareRate + "】"; try { //如果只传入了统计日期,则开始和结束日期都按统计日期计算 if (!string.IsNullOrWhiteSpace(Statistics_Date)) { if (string.IsNullOrWhiteSpace(StatisticsStartDate)) { StatisticsStartDate = Statistics_Date; } if (string.IsNullOrWhiteSpace(StatisticsEndDate)) { StatisticsEndDate = Statistics_Date; } } //获取预算费用表列表 ESCM.MobileShareModel mobileShareModel = ESCG.RevenuePushHelper.GetMobileShare(transaction, Province_Code, StatisticsStartDate, StatisticsEndDate, Serverpart_ID, SPRegionType_ID, ShowCompareRate); return Ok(Models.JsonMsg.Success(mobileShareModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetMobileShare"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取商城配送数据 /// /// 获取商城配送数据 /// /// 推送省份 /// 统计日期 /// 统计开始日期 /// 统计结束日期 /// 是否计算增长率 /// [Route("Revenue/GetMallDeliver")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetMallDeliver(string Province_Code, string Statistics_Date = "", string StatisticsStartDate = "", string StatisticsEndDate = "", bool ShowCompareRate = false) { string Parameter = "入参信息:省份编码【" + Province_Code + "】,统计日期【" + Statistics_Date + "】," + "统计开始日期【" + StatisticsStartDate + "】,统计结束日期【" + StatisticsEndDate + "】," + "是否计算增长率【" + ShowCompareRate + "】"; try { //如果只传入了统计日期,则开始和结束日期都按统计日期计算 if (!string.IsNullOrWhiteSpace(Statistics_Date)) { if (string.IsNullOrWhiteSpace(StatisticsStartDate)) { StatisticsStartDate = Statistics_Date; } if (string.IsNullOrWhiteSpace(StatisticsEndDate)) { StatisticsEndDate = Statistics_Date; } } //获取预算费用表列表 ESCM.MallDeliverModel mallDeliverModel = ESCG.RevenuePushHelper.GetMallDeliver( transaction, Province_Code, StatisticsStartDate, StatisticsEndDate, ShowCompareRate); return Ok(Models.JsonMsg.Success(mallDeliverModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetMobileShare"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取服务区客单交易分析 /// /// 获取服务区客单交易分析 /// /// 省份编码 /// 统计日期 /// 服务区内码 /// 是否显示消费水平占比 /// 是否显示消费转化率 /// [Route("Revenue/GetTransactionAnalysis")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetTransactionAnalysis(string Province_Code, string Statistics_Date, int? Serverpart_ID = null, bool ShowConsumptionLevel = false, bool ShowConvertRate = false) { string Parameter = "入参信息:省份编码【" + Province_Code + "】,统计日期【" + Statistics_Date + "】," + "服务区内码【" + Serverpart_ID + "】,是否显示消费水平占比【" + ShowConsumptionLevel + "】," + "是否显示消费转化率【" + ShowConvertRate + "】"; try { //获取预算费用表列表 ESCM.TransactionAnalysisModel transactionAnalysisModel = ESCG.TransactionHelper.GetTransactionAnalysis( transaction, Province_Code, Statistics_Date, Serverpart_ID, ShowConsumptionLevel, ShowConvertRate); return Ok(Models.JsonMsg.Success(transactionAnalysisModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetTransactionAnalysis"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取服务区时段消费分析 /// /// 获取服务区时段消费分析 /// /// 省份编码 /// 统计日期 /// 服务区内码 /// 片区内码 /// 时间间隔,默认4h /// [Route("Revenue/GetTransactionTimeAnalysis")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetTransactionTimeAnalysis(string Province_Code, string Statistics_Date, string Serverpart_ID = "", string SPRegionType_ID = "", int TimeSpan = 4) { string Parameter = "入参信息:省份编码【" + Province_Code + "】,统计日期【" + Statistics_Date + "】," + "服务区内码【" + Serverpart_ID + "】,片区内码【" + SPRegionType_ID + "】,时间间隔【" + TimeSpan + "】"; try { //获取预算费用表列表 ESCM.CommonScatterModel transactionAnalysisModel = ESCG.TransactionHelper.GetTransactionTimeAnalysis( transaction, Province_Code, Statistics_Date, Serverpart_ID, SPRegionType_ID, TimeSpan); if (transactionAnalysisModel == null) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } return Ok(Models.JsonMsg.Success(transactionAnalysisModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetTransactionTimeAnalysis"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取消费转化对比分析 /// /// 获取消费转化对比分析 /// /// 省份编码 /// 统计日期 /// 服务区内码 /// 片区内码 /// 时间间隔,默认4h /// [Route("Revenue/GetTransactionConvert")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetTransactionConvert(string Province_Code, string Statistics_Date, string Serverpart_ID = "", string SPRegionType_ID = "", int TimeSpan = 4) { string Parameter = "入参信息:省份编码【" + Province_Code + "】,统计日期【" + Statistics_Date + "】," + "服务区内码【" + Serverpart_ID + "】,片区内码【" + SPRegionType_ID + "】,时间间隔【" + TimeSpan + "】"; try { //获取预算费用表列表 ESCM.TransactionConvertModel transactionConvertModel = ESCG.TransactionHelper.GetTransactionConvert( transaction, Province_Code, Statistics_Date, Serverpart_ID, SPRegionType_ID, TimeSpan); if (transactionConvertModel == null) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } return Ok(Models.JsonMsg.Success(transactionConvertModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetTransactionConvert"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取业态营收占比 /// /// 获取业态营收占比 /// /// /// 接口应用描述:
/// 接口用于展示月度经营业态营收金额占比,统计的维度可以是全省、片区、服务区,可以按照一级经营业态、最小一级经营业态显示占比数据;
/// 业务逻辑描述:
/// 查询【服务区营收日度报表】数据,根据入参查询,按照经营业态返回经营业态内码、经营业态名称、营收金额;
/// 入参字段说明:
/// 1、统计日期为必传
/// 2、片区内码、服务区内码、经营业态内码可以不传参,如果传值可以传多个,多个值用,隔开
/// 3、片区内码【SPREGIONTYPE_ID】、服务区内码【SERVERPART_ID】从服务区信息表【HIGHWAY_STORAGE.T_SERVERPART】中获取数值
/// 4、只传入片区内码,那么接口返回片区的经营业态营收金额占比
/// 5、只传入服务区内码,那么接口返回服务区的经营业态营收金额占比
/// 6、经营业态表里存储的是数值,从经营业态表【COOP_MERCHANT.T_AUTOSTATISTICS】中获取数值, /// 经营业态表和服务区营收月度报表不在同一个数据库,所以是单独查询数据源再解析经营业态名称
/// 7、经营业态内码传值-1时,返回按一级经营业态统计营收金额;传了值,按最小一级经营业态统计营收金额; /// 经营业态内码传值0,代表查询没有设置过经营业态的数据 ///
/// 省份编码 /// 统计日期,格式yyyy-MM-dd /// 服务区内码集合,多个用,隔开 /// 片区内码集合,多个用,隔开 /// 经营业态内码 /// /// 涉及到的数据表:
/// 服务区营收日度报表【PLATFORM_DASHBOARD.T_REVENUEDAILY】
/// 服务区信息表【HIGHWAY_STORAGE.T_SERVERPART】
/// 两张表相对应的字段:服务区内码【SERVERPART_ID】, /// 其中服务区信息表要查询正式【STATISTIC_TYPE=1000】的服务区【STATISTICS_TYPE=1000】营收数据 ///
/// /// /// /// /// 返参:
/// name:经营业态名称
/// value:营收金额
/// key:经营业态内码,0代表未设置过经营业态 ///
[Route("Revenue/GetBusinessTradeRevenue")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetBusinessTradeRevenue(string ProvinceCode, string StatisticsDate, string ServerpartId = "", string SPRegionTypeID = "", string BusinessTradeIds = "") { //根据用户权限获取省份编码默认值 ProvinceCode = GetStringHeader("ProvinceCode", ProvinceCode); string Parameter = "入参信息:省份编码【" + ProvinceCode + "】," + "统计月份【" + StatisticsDate + "】,片区内码【" + SPRegionTypeID + "】," + "服务区内码【" + ServerpartId + "】,经营业态内码【" + BusinessTradeIds + "】"; try { //获取月度车流量汇总数据 ESCM.TransactionModel transactionModel = ESCG.TransactionHelper.GetBusinessTradeRevenue( transaction, ProvinceCode, StatisticsDate, ServerpartId, SPRegionTypeID, BusinessTradeIds); if (transactionModel == null) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } return Ok(Models.JsonMsg.Success(transactionModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetBusinessTradeRevenue"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取业态消费水平占比 /// /// 获取业态消费水平占比 /// /// /// 接口应用描述:
/// 业务逻辑描述:
///
/// 省份编码 /// 统计日期,格式yyyy-MM-dd /// 片区内码集合,多个用,隔开 /// 服务区内码集合,多个用,隔开 /// 经营业态内码 /// 最多显示几个业态,默认5 /// 是否包含全业态数据分析 /// /// 涉及到的数据表:
///
/// /// /// /// [Route("Revenue/GetBusinessTradeLevel")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetBusinessTradeLevel(string ProvinceCode, string StatisticsDate, string ServerpartId = "", string SPRegionTypeID = "", string BusinessTradeIds = "", int ShowTradeCount = 5, bool ShowWholeTrade = false) { //根据用户权限获取省份编码默认值 ProvinceCode = GetStringHeader("ProvinceCode", ProvinceCode); string Parameter = "入参信息:省份编码【" + ProvinceCode + "】," + "统计月份【" + StatisticsDate + "】,片区内码【" + SPRegionTypeID + "】," + "服务区内码【" + ServerpartId + "】,经营业态内码【" + BusinessTradeIds + "】"; try { //获取月度车流量汇总数据 ESCM.CommonColumnLegendModel transactionLevelModel = ESCG.TransactionHelper.GetBusinessTradeLevel(transaction, ProvinceCode, StatisticsDate, ServerpartId, SPRegionTypeID, BusinessTradeIds, ShowTradeCount, ShowWholeTrade); if (transactionLevelModel == null) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } return Ok(Models.JsonMsg.Success(transactionLevelModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetBusinessTradeLevel"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取品牌消费水平占比 /// /// 获取品牌消费水平占比 /// /// /// 接口应用描述:
/// 业务逻辑描述:
///
/// 省份编码 /// 统计日期,格式yyyy-MM-dd /// 片区内码集合,多个用,隔开 /// 服务区内码集合,多个用,隔开 /// 经营业态内码 /// 最多显示几个品牌,默认5 /// 是否包含全品牌数据分析 /// /// 涉及到的数据表:
///
/// /// /// /// [Route("Revenue/GetBusinessBrandLevel")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetBusinessBrandLevel(string ProvinceCode, string StatisticsDate, string ServerpartId = "", string SPRegionTypeID = "", string BusinessTradeIds = "", int ShowBrandCount = 5, bool ShowWholeBrand = false) { //根据用户权限获取省份编码默认值 ProvinceCode = GetStringHeader("ProvinceCode", ProvinceCode); string Parameter = "入参信息:省份编码【" + ProvinceCode + "】," + "统计月份【" + StatisticsDate + "】,片区内码【" + SPRegionTypeID + "】," + "服务区内码【" + ServerpartId + "】,经营业态内码【" + BusinessTradeIds + "】"; try { //获取月度车流量汇总数据 ESCM.CommonColumnLegendModel transactionLevelModel = ESCG.TransactionHelper.GetBusinessBrandLevel(transaction, ProvinceCode, StatisticsDate, ServerpartId, SPRegionTypeID, BusinessTradeIds, ShowBrandCount, ShowWholeBrand); if (transactionLevelModel == null) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } return Ok(Models.JsonMsg.Success(transactionLevelModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetBusinessBrandLevel"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取营收同比数据 /// /// 获取营收同比数据 /// /// /// 接口应用描述:
/// 业务逻辑描述:
///
/// 省份编码 /// 统计日期,可以是年份/月份/日期 /// 服务区内码集合,多个用,隔开 /// 片区内码集合,多个用,隔开 /// /// 涉及到的数据表:
///
/// /// /// /// [Route("Revenue/GetRevenueCompare")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetRevenueTrend(string ProvinceCode, string StatisticsDate, string ServerpartId = "", string SPRegionTypeID = "") { //根据用户权限获取省份编码默认值 ProvinceCode = GetStringHeader("ProvinceCode", ProvinceCode); string Parameter = "入参信息:省份编码【" + ProvinceCode + "】,统计时间【" + StatisticsDate + "】," + "片区内码【" + SPRegionTypeID + "】,服务区内码【" + ServerpartId + "】"; try { //获取月度车流量汇总数据 ESCM.RevenueCompareModel revenueCompareModel = ESCG.RevenuePushHelper.GetRevenueCompare( transaction, ProvinceCode, StatisticsDate, ServerpartId, SPRegionTypeID); if (revenueCompareModel == null) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } return Ok(Models.JsonMsg.Success(revenueCompareModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetRevenueTrend"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取营收趋势图 /// /// 获取营收趋势图 /// /// /// 接口应用描述:
/// 业务逻辑描述:
///
/// 省份编码 /// /// 统计类型,默认查询年度:
/// 1、统计年度数据
/// 2、统计月度数据
/// 3、统计时段数据 /// /// 统计日期,可以是年份/月份/日期 /// 服务区内码集合,多个用,隔开 /// 片区内码集合,多个用,隔开 /// /// 涉及到的数据表:
///
/// /// /// /// [Route("Revenue/GetRevenueTrend")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetRevenueTrend(string ProvinceCode, string StatisticsDate, int StatisticsType = 1, string ServerpartId = "", string SPRegionTypeID = "") { //根据用户权限获取省份编码默认值 ProvinceCode = GetStringHeader("ProvinceCode", ProvinceCode); string Parameter = "入参信息:省份编码【" + ProvinceCode + "】,统计类型【" + StatisticsType + "】," + "统计时间【" + StatisticsDate + "】,片区内码【" + SPRegionTypeID + "】,服务区内码【" + ServerpartId + "】"; try { //获取月度车流量汇总数据 List RevenueTrendList = ESCG.RevenuePushHelper.GetRevenueTrend(transaction, ProvinceCode, StatisticsType, StatisticsDate, ServerpartId, SPRegionTypeID); Models.JsonList jsonList = Models.JsonList.Success( RevenueTrendList, RevenueTrendList.Count, 1, RevenueTrendList.Count); return Ok(Models.JsonMsg>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetRevenueTrend"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取服务区经营报表 /// /// 获取服务区经营报表 /// /// 用户省份编码 /// 开始时间 /// 结束时间 /// 经营业态 /// 经营模式 /// 结算模式 /// /// 模糊查询字段,多个用,隔开:
/// 商户【MerchantName】,品牌:【Brand】,门店:【Shop】,服务区:【Serverpart】 /// /// 模糊查询内容 /// [Route("Revenue/GetRevenueReport")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetRevenueReport(string provinceCode, string startTime, string endTime, string BusinessTrade = "", string BusinessType = "", string SettlementMode = "", string SearchKeyName = "", string SearchKeyValue = "") { try { //获取服务区经营报表 ESCM.RevenueReportModel revenueReportModel = ESCG.RevenuePushHelper.GetRevenueReport(transaction, provinceCode, startTime, endTime, BusinessTrade, BusinessType, SettlementMode, SearchKeyName, SearchKeyValue); if (revenueReportModel == null) { return Ok(ESCG.Common.ReturnJson(200, "查询失败,无数数据返回!")); } return Ok(Models.JsonMsg.Success(revenueReportModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); string Parameter = "入参信息:省份编码【" + provinceCode + "】,统计开始日期【" + startTime + "】,结束日期【" + endTime + "】," + "经营业态【" + BusinessTrade + "】,经营模式【" + BusinessType + "】,结算模式【" + SettlementMode + "】," + "模糊查询字段【" + SearchKeyName + "】,模糊查询内容【" + SearchKeyValue + "】"; LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetRevenueReport"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取服务区经营报表详情 /// /// 获取服务区经营报表详情 /// /// 省份编码 /// 服务区内码 /// 开始日期 /// 结束日期 /// 经营业态 /// 经营模式 /// 结算模式 /// /// 模糊查询字段,多个用,隔开:
/// 商户【MerchantName】,品牌:【Brand】,门店:【Shop】,服务区:【Serverpart】 /// /// 模糊查询内容 /// [Route("Revenue/GetRevenueReportDetil")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetRevenueReportDetil(string provinceCode, int serverpartId, string startTime, string endTime, string BusinessTrade = "", string BusinessType = "", string SettlementMode = "", string SearchKeyName = "", string SearchKeyValue = "") { string Parameter = "入参信息:省份编码【" + provinceCode + "】,服务区内码【" + serverpartId + "】," + "统计开始日期【" + startTime + "】,统计结束日期【" + endTime + "】," + "模糊查询字段【" + SearchKeyName + "】,模糊查询内容【" + SearchKeyValue + "】"; try { //获取服务区经营报表 ESCM.RevenueReportDetilsModel revenueReportModel = ESCG.RevenuePushHelper.GetRevenueReportDetil(transaction, provinceCode, serverpartId, startTime, endTime, BusinessTrade, BusinessType, SettlementMode, SearchKeyName, SearchKeyValue); if (revenueReportModel == null) { return Ok(ESCG.Common.ReturnJson(200, "查询失败,无数数据返回!")); } return Ok(Models.JsonMsg.Success(revenueReportModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetRevenueReportDetil"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取商超畅销商品 /// /// 获取商超畅销商品 /// /// /// 接口应用描述:显示在驿达数智化小程序-交易画像:商超畅销商品板块,显示当月商超的畅销商品和滞销商品排名
/// 业务逻辑描述:当前接口暂时没有编写逻辑,返回的是假数据
///
/// 统计日期 /// 业主单位标识 /// 服务区内码 /// 服务区编码 /// /// 涉及到的数据表:
///
/// /// /// /// [Route("Revenue/GetSalableCommodity")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetSalableCommodity(string statisticsDate, string provinceCode, string Serverpart_ID = "", string SPRegionType_ID = "") { string Parameter = "入参信息:统计日期【" + statisticsDate + "】,业主单位标识【" + provinceCode + "】," + "服务区内码【" + Serverpart_ID + "】,服务区编码【" + SPRegionType_ID + "】"; try { Models.Revenue.SalableCommodityModel salableCommodityModel = ESCG.Revenue.SalableCommodityHelper.GetCommoditySellWell( transaction, provinceCode, statisticsDate, Serverpart_ID, SPRegionType_ID); if (salableCommodityModel == null) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } return Ok(Models.JsonMsg.Success(salableCommodityModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetSalableCommodity"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取近日服务区营收排行 /// /// 获取近日服务区营收排行 /// /// /// 应用场景:国庆等节日,显示服务区营收排 /// /// 推送省份 /// 统计日期 /// 服务区内码 /// 区域内码 /// 是否纳入营收【每日营收推送中是否展示该门店的营收数据】(0:否;1:是) /// [Route("Revenue/GetSPRevenueRank")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetSPRevenueRank(string pushProvinceCode, string Statistics_Date, int? Serverpart_ID = null, int? SPRegionType_ID = null, int? Revenue_Include = null) { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,统计日期【" + Statistics_Date + "】," + "服务区内码【" + Serverpart_ID + "】,区域内码【" + SPRegionType_ID + "】,统计营收【" + Revenue_Include + "】"; try { //获取营收推送数据表列表 List REVENUEPUSHList = ESCG.RevenuePushHelper.GetSPRevenueRank(transaction, pushProvinceCode, Statistics_Date, Statistics_Date, Serverpart_ID, SPRegionType_ID, Revenue_Include); decimal sumCashpay = REVENUEPUSHList.Sum(o => o.CashPay).TryParseToDecimal(); //返回的列表默认不显示万佳商贸下面的点位 REVENUEPUSHList = REVENUEPUSHList.FindAll(o => o.SPRegionType_Name != "万佳商贸"); //转化json形式 Models.JsonList jsonList = Models.JsonList.Success( REVENUEPUSHList, sumCashpay); return Ok(Models.JsonMsg>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetSPRevenueRank"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取每日营收同比数据 /// /// 获取每日营收同比数据 /// /// /// 应用场景:国庆等节日,显示服务区同比营收数据 /// /// 推送省份 /// 营收汇总数据结算日期 /// 统计开始日期 /// 统计结束日期 /// 同比开始日期 /// 同比结束日期 /// 服务区内码 /// 片区内码 /// [Route("Revenue/GetRevenueYOY")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetRevenueYOY(string pushProvinceCode, string StatisticsStartDate, string StatisticsEndDate, string CompareStartDate = "", string CompareEndDate = "", string StatisticsDate = "", string ServerpartId = "", string SPRegionTypeID = "") { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,营收汇总数据结算日期【" + StatisticsDate + "】," + "统计开始日期【" + StatisticsStartDate + "】,统计结束日期【" + StatisticsEndDate + "】," + "服务区内码【" + ServerpartId + "】,区域内码【" + SPRegionTypeID + "】"; try { //如果没有传入“营收汇总数据结算日期”,默认按结束日期计算 if (string.IsNullOrWhiteSpace(StatisticsDate)) { StatisticsDate = StatisticsEndDate; } //默认同比开始时间为去年同期开始时间 if (string.IsNullOrWhiteSpace(CompareStartDate)) { CompareStartDate = DateTime.Parse(StatisticsStartDate).AddYears(-1).ToString("yyyy/MM/dd"); } //默认同比结束时间为去年同期结束时间 if (string.IsNullOrWhiteSpace(CompareEndDate)) { CompareEndDate = DateTime.Parse(StatisticsEndDate).AddYears(-1).ToString("yyyy/MM/dd"); } //获取营收推送数据表列表 ESCM.RevenueYOYModel revenueYOYModel = ESCG.RevenuePushHelper.GetRevenueYOY(transaction, pushProvinceCode, StatisticsDate, StatisticsStartDate, StatisticsEndDate, CompareStartDate, CompareEndDate, ServerpartId, SPRegionTypeID); return Ok(Models.JsonMsg.Success(revenueYOYModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetRevenueYOY"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取节日营收同比数据 /// /// 获取节日营收同比数据 /// /// /// 应用场景:国庆等节日,显示服务区同比营收数据 /// /// 推送省份 /// 营收汇总数据结算日期 /// /// 节日类型:
/// 1【元旦】
2【春运】
3【清明】
4【五一】
5【端午】
6【暑期】
7【中秋】
8【国庆】 /// /// 当前年份 /// 同比年份 /// 服务区内码 /// 片区内码 /// [Route("Revenue/GetHolidayCompare")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetHolidayCompare(string pushProvinceCode, string StatisticsDate, int holidayType, int curYear, int compareYear, string ServerpartId = "", string SPRegionTypeID = "") { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,营收汇总数据结算日期【" + StatisticsDate + "】," + "节日类型【" + holidayType + "】,当前年份【" + curYear + "】,同比年份【" + compareYear + "】," + "服务区内码【" + ServerpartId + "】,区域内码【" + SPRegionTypeID + "】"; try { //如果没有传入“营收汇总数据结算日期”,默认按结束日期计算 if (string.IsNullOrWhiteSpace(StatisticsDate)) { StatisticsDate = DateTime.Now.ToShortDateString(); } //获取营收推送数据表列表 ESCM.RevenueYOYModel revenueYOYModel = ESCG.RevenuePushHelper.GetHolidayCompare(transaction, pushProvinceCode, StatisticsDate, holidayType, curYear, compareYear, ServerpartId, SPRegionTypeID); return Ok(Models.JsonMsg.Success(revenueYOYModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetHolidayCompare"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取营收统计明细数据 /// /// 获取营收统计明细数据 /// /// 计算方式:1【当月】,2【累计】 /// 省份编码 /// 统计结束月份,格式yyyyMM /// 统计开始月份,格式yyyyMM /// 统计日期 /// [Route("Revenue/GetAccountReceivable")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetAccountReceivable(string pushProvinceCode, string StatisticsDate, string StatisticsMonth, string StatisticsStartMonth = "", int calcType = 1) { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,计算方式【" + calcType + "】," + "统计结算月份【" + StatisticsMonth + "】,统计开始月份【" + StatisticsStartMonth + "】,结算日期【" + StatisticsDate + "】"; try { //如果没有传入“营收汇总数据结算日期”,默认按结束日期计算 if (string.IsNullOrWhiteSpace(StatisticsDate)) { StatisticsDate = DateTime.Now.ToShortDateString(); } if (string.IsNullOrWhiteSpace(StatisticsStartMonth)) { if (calcType == 1) { StatisticsStartMonth = StatisticsMonth; } else { StatisticsStartMonth = StatisticsMonth.Substring(0, 4) + "01"; } } //获取营收推送数据表列表 ESCM.AccountModel accountModel = ESCG.AccountHelper.GetAccountReceivable(transaction, calcType, pushProvinceCode, StatisticsMonth, StatisticsStartMonth, StatisticsDate); return Ok(Models.JsonMsg.Success(accountModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetAccountReceivable"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取实时营收交易数据 /// /// 获取实时营收交易数据 /// /// 省份编码 /// 统计日期 /// 服务区内码,多个用,隔开 /// [Route("Revenue/GetCurRevenue")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetCurRevenue(string pushProvinceCode, string StatisticsDate, string serverPartId = "") { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】," + "统计日期【" + StatisticsDate + "】,服务区内码【" + serverPartId + "】"; try { //如果没有传入“营收汇总数据结算日期”,默认按结束日期计算 if (string.IsNullOrWhiteSpace(StatisticsDate)) { StatisticsDate = DateTime.Now.ToShortDateString(); } //获取实时营收数据 ESCM.CurTransactionModel curTransactionModel = ESCG.TransactionHelper.getCurRevenue(transaction, pushProvinceCode, serverPartId, StatisticsDate, null, null, null); if (curTransactionModel == null) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } return Ok(Models.JsonMsg.Success(curTransactionModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetCurRevenue"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取实时门店营收交易数据 /// /// 获取实时门店营收交易数据 /// /// 服务区内码,多个用,隔开 /// 统计日期 /// 是否合并双侧同业态门店 /// [Route("Revenue/GetShopCurRevenue")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetShopCurRevenue(string serverPartId, string statisticsDate, bool groupByShop = false) { string Parameter = "入参信息:服务区内码【" + serverPartId + "】," + "统计日期【" + statisticsDate + "】,是否合并双侧同业态门店【" + groupByShop + "】"; try { //如果没有传入“营收汇总数据结算日期”,默认按结束日期计算 if (string.IsNullOrWhiteSpace(statisticsDate)) { statisticsDate = DateTime.Now.ToShortDateString(); } //获取实时营收数据 List curTransactionList = ESCG.TransactionHelper.getShopCurRevenue(transaction, serverPartId, statisticsDate, groupByShop); if (curTransactionList == null) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } Models.JsonList jsonList = Models.JsonList.Success(curTransactionList); return Ok(Models.JsonMsg>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetShopCurRevenue"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取最新的同步日期 /// /// 获取最新的同步日期 /// [Route("Revenue/GetLastSyncDateTime")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetLastSyncDateTime() { try { //获取最新的同步日期 var result = ESCG.HolidayHelper.GetLastSyncDateTime(transaction); return Ok(Models.JsonMsg.Success(result, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n", DateTime.Now.ToString("yyyyMMdd") + "_GetLastSyncDateTime"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取节日营收数据对比分析 /// /// 获取节日营收数据对比分析 /// /// 省份编码 /// 本年年份 /// 历年年份 /// /// 节日类型:
/// 1【元旦】
2【春运】
3【清明】
4【五一】
5【端午】
6【暑期】
7【中秋】
8【国庆】 /// /// 统计日期 /// 服务区内码,多个用,隔开 [Route("Revenue/GetHolidayAnalysis")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetHolidayAnalysis(string pushProvinceCode, int curYear, int compareYear, int HolidayType, string StatisticsDate, string ServerpartId = "") { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,节日类型【" + HolidayType + "】," + "本年年份【" + curYear + "】,历年年份【" + compareYear + "】," + "统计日期【" + StatisticsDate + "】,服务区内码【" + ServerpartId + "】"; try { //如果没有传入“营收汇总数据结算日期”,默认按结束日期计算 if (string.IsNullOrWhiteSpace(StatisticsDate)) { StatisticsDate = DateTime.Now.ToShortDateString(); } //else if (HolidayType == 2 && DateTime.Parse(StatisticsDate).Date > DateTime.Parse("2024/3/5")) //{ // StatisticsDate = "2024/3/5"; //} //获取实时营收数据 ESCM.HolidayCompareModel holidayCompareModel = ESCG.HolidayHelper.GetRevenueAnalysis(transaction, pushProvinceCode, curYear, compareYear, HolidayType, StatisticsDate, ServerpartId); if (holidayCompareModel == null) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } return Ok(Models.JsonMsg.Success(holidayCompareModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetHolidayAnalysis"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取节假日区域对客分析 /// /// 获取节假日区域对客分析 /// /// 省份编码 /// 本年年份 /// 历年年份 /// /// 节日类型:
/// 1【元旦】
2【春运】
3【清明】
4【五一】
5【端午】
6【暑期】
7【中秋】
8【国庆】 /// /// 统计日期 /// /// 经营模式:
/// 1000【合作分成】
2000【固定租金】
3000【自营提成】
4000【业主自营】 /// /// /// 经营业态:
/// 1【餐饮】
2【便利店】
3【加盟餐饮】
4【客房及其他】 /// /// /// 经营区域:
/// 1【服务区】
2【城市店】 /// [Route("Revenue/GetHolidaySPRAnalysis")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>>))] public IHttpActionResult GetHolidaySPRAnalysis(string pushProvinceCode, int curYear, int compareYear, int HolidayType, string StatisticsDate, string businessType = "", string businessTrade = "", string businessRegion = "") { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,节日类型【" + HolidayType + "】," + "本年年份【" + curYear + "】,历年年份【" + compareYear + "】,统计日期【" + StatisticsDate + "】," + "经营模式【" + businessType + "】,经营业态【" + businessTrade + "】,经营区域【" + businessRegion + "】"; try { //如果没有传入“营收汇总数据结算日期”,默认按结束日期计算 if (string.IsNullOrWhiteSpace(StatisticsDate)) { StatisticsDate = DateTime.Now.ToShortDateString(); } //else if (HolidayType == 2 && DateTime.Parse(StatisticsDate).Date > DateTime.Parse("2024/3/5")) //{ // StatisticsDate = "2024/3/5"; //} //获取实时营收数据 List> holidaySPRAnalysisList = ESCG.HolidayHelper.GetHolidaySPRAnalysis(transaction, pushProvinceCode, curYear, compareYear, HolidayType, StatisticsDate, businessType, businessTrade, businessRegion); if (holidaySPRAnalysisList == null || holidaySPRAnalysisList.Count == 0) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } Models.JsonList> jsonList = Models.JsonList>.Success(holidaySPRAnalysisList); return Ok(Models.JsonMsg>>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetHolidaySPRAnalysis"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取节假日各类项目所有天数对客分析 /// /// 获取节假日各类项目所有天数对客分析 /// /// 省份编码 /// 本年年份 /// 历年年份 /// /// 节日类型:
/// 1【元旦】
2【春运】
3【清明】
4【五一】
5【端午】
6【暑期】
7【中秋】
8【国庆】 /// /// 统计日期 /// 片区内码,多个用,隔开 /// 服务区内码,多个用,隔开 /// /// 经营模式:
/// 1000【合作分成】
2000【固定租金】
3000【自营提成】
4000【业主自营】 /// /// /// 经营业态:
/// 1【餐饮】
2【便利店】
3【加盟餐饮】
4【客房及其他】 /// /// /// 经营区域:
/// 1【服务区】
2【城市店】 /// [Route("Revenue/GetHolidayDailyAnalysis")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetHolidayDailyAnalysis(string pushProvinceCode, int curYear, int compareYear, int HolidayType, string StatisticsDate, string SPRegionTypeId = "", string ServerpartId = "", string businessType = "", string businessTrade = "", string businessRegion = "") { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,节日类型【" + HolidayType + "】," + "本年年份【" + curYear + "】,历年年份【" + compareYear + "】,统计日期【" + StatisticsDate + "】," + "片区内码【" + SPRegionTypeId + "】,服务区内码【" + ServerpartId + "】," + "经营模式【" + businessType + "】,经营业态【" + businessTrade + "】,经营区域【" + businessRegion + "】"; try { //如果没有传入“营收汇总数据结算日期”,默认按结束日期计算 if (string.IsNullOrWhiteSpace(StatisticsDate)) { StatisticsDate = DateTime.Now.ToShortDateString(); } //else if (HolidayType == 2 && DateTime.Parse(StatisticsDate).Date > DateTime.Parse("2024/3/5")) //{ // StatisticsDate = "2024/3/5"; //} //获取实时营收数据 List dailyAnalysisList = ESCG.HolidayHelper.GetHolidayDailyAnalysis( transaction, pushProvinceCode, curYear, compareYear, HolidayType, StatisticsDate, SPRegionTypeId, ServerpartId, businessType, businessTrade, businessRegion); if (dailyAnalysisList == null || dailyAnalysisList.Count == 0) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } Models.JsonList jsonList = Models.JsonList.Success(dailyAnalysisList); return Ok(Models.JsonMsg>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetHolidayDailyAnalysis"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取服务区营收增幅分析 /// /// 获取服务区营收增幅分析 /// /// 计算方式:1【当日】,2【累计】 /// 省份编码 /// 本年年份 /// 历年年份 /// /// 节日类型:
/// 1【元旦】
2【春运】
3【清明】
4【五一】
5【端午】
6【暑期】
7【中秋】
8【国庆】 /// /// 统计日期 /// 统计开始日期 /// 服务区内码,多个用,隔开 /// /// 经营区域:
/// 1【服务区】
/// 2【城市店】 /// /// /// 排序字段:
/// 营业额:revenue
/// 驿达收入:account
/// 车流量:bayonet
/// 正序:asc,倒序:desc
/// 示例:revenue desc,bayonet desc /// /// 是否对比同期数据 [Route("Revenue/GetServerpartINCAnalysis")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetServerpartINCAnalysis(int calcType, string pushProvinceCode, int curYear, int HolidayType, string StatisticsDate, int? compareYear = null, string CurStartDate = "", string ServerpartId = "", int? businessRegion = null, string SortStr = "", bool IsYOYCompare = false) { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,节日类型【" + HolidayType + "】," + "本年年份【" + curYear + "】,历年年份【" + compareYear + "】,对比同期数据【" + IsYOYCompare + "】," + "计算方式【" + calcType + "】,统计日期【" + StatisticsDate + "】,统计开始日期【" + CurStartDate + "】," + "服务区内码【" + ServerpartId + "】,经营区域【" + businessRegion + "】,排序字段【" + SortStr + "】"; try { //如果没有传入“营收汇总数据结算日期”,默认按结束日期计算 if (string.IsNullOrWhiteSpace(StatisticsDate)) { StatisticsDate = DateTime.Now.ToShortDateString(); } //else if (HolidayType == 2 && DateTime.Parse(StatisticsDate).Date > DateTime.Parse("2024/3/5")) //{ // StatisticsDate = "2024/3/5"; //} string HolidayPeriod = ""; List INCAnalysisList = ESCG.HolidayHelper.GetServerpartINCAnalysis(transaction, pushProvinceCode, calcType, curYear, compareYear ?? curYear - 1, HolidayType, StatisticsDate, CurStartDate, ServerpartId, businessRegion, SortStr, IsYOYCompare, ref HolidayPeriod); if (INCAnalysisList == null || INCAnalysisList.Count == 0) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } Models.JsonList jsonList = Models.JsonList.Success(INCAnalysisList, HolidayPeriod); return Ok(Models.JsonMsg>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetServerpartINCAnalysis"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取门店营收增幅分析 /// /// 获取门店营收增幅分析 /// /// 计算方式:1【当日】,2【累计】 /// 省份编码 /// 本年年份 /// 历年年份 /// /// 节日类型:
/// 1【元旦】
2【春运】
3【清明】
4【五一】
5【端午】
6【暑期】
7【中秋】
8【国庆】 /// /// 统计日期 /// 统计开始日期 /// 服务区内码,多个用,隔开 /// /// 排序字段:
/// 本年:curyeardata
/// 历年:lyeardata
/// 增长:increasedata
/// 增幅:increaserate
/// 正序:asc,倒序:desc
/// 示例:revenue desc /// [Route("Revenue/GetShopINCAnalysis")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg))] public IHttpActionResult GetShopINCAnalysis(int calcType, string pushProvinceCode, int curYear, int compareYear, int HolidayType, int ServerpartId, string StatisticsDate, string CurStartDate = "", string SortStr = "") { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,节日类型【" + HolidayType + "】," + "本年年份【" + curYear + "】,历年年份【" + compareYear + "】,服务区内码【" + ServerpartId + "】," + "统计日期【" + StatisticsDate + "】,统计开始日期【" + CurStartDate + "】,排序字段【" + SortStr + "】"; try { //如果没有传入“营收汇总数据结算日期”,默认按结束日期计算 if (string.IsNullOrWhiteSpace(StatisticsDate)) { StatisticsDate = DateTime.Now.ToShortDateString(); } //else if (HolidayType == 2 && DateTime.Parse(StatisticsDate).Date > DateTime.Parse("2024/3/5")) //{ // StatisticsDate = "2024/3/5"; //} //获取实时营收数据 ESCM.HolidayIncreaseModel increaseModel = ESCG.HolidayHelper.GetShopINCAnalysis(transaction, pushProvinceCode, calcType, curYear, compareYear, HolidayType, ServerpartId, StatisticsDate, CurStartDate, SortStr); if (increaseModel == null) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } return Ok(Models.JsonMsg.Success(increaseModel, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetShopINCAnalysis"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取月度经营增幅分析 /// /// 获取月度经营增幅分析 /// /// 计算方式:1【当月】,2【累计】 /// 省份编码 /// 本年年份 /// 历年年份 /// 结算结束月份 /// 结算开始月份,格式yyyyMM /// 统计日期 /// 片区内码,多个用,隔开 /// 服务区内码,多个用,隔开 /// /// 经营模式:
/// 1000【合作分成】
2000【固定租金】
3000【自营提成】
4000【业主自营】 /// /// /// 经营业态:
/// 1【餐饮】
2【便利店】
3【加盟餐饮】
4【客房及其他】 /// /// /// 经营区域:
/// 1【服务区】
2【城市店】 /// [Route("Revenue/GetMonthlyBusinessAnalysis")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetMonthlyBusinessAnalysis(int calcType, string pushProvinceCode, int curYear, int compareYear, int StatisticsMonth, int? StatisticsStartMonth = null, string StatisticsDate = "", string SPRegionTypeId = "", string ServerpartId = "", string businessType = "", string businessTrade = "", string businessRegion = "") { string Parameter = "入参信息:计算方式【" + calcType + "】,推送省份【" + pushProvinceCode + "】," + "本年年份【" + curYear + "】,历年年份【" + compareYear + "】," + "结算月份【" + StatisticsMonth + "】,结算开始月份【" + StatisticsMonth + "】," + "统计日期【" + StatisticsDate + "】,片区内码【" + SPRegionTypeId + "】,服务区内码【" + ServerpartId + "】," + "经营模式【" + businessType + "】,经营业态【" + businessTrade + "】,经营区域【" + businessRegion + "】"; try { if (StatisticsStartMonth == null) { if (calcType == 1) { StatisticsStartMonth = curYear * 100 + StatisticsMonth; } else { StatisticsStartMonth = curYear * 100 + 1; } } //获取实时营收数据 List dailyAnalysisList = ESCG.HolidayHelper.GetMonthlyBusinessAnalysis(transaction, pushProvinceCode, calcType, curYear, compareYear, StatisticsMonth, StatisticsStartMonth.Value, StatisticsDate, SPRegionTypeId, ServerpartId, businessType, businessTrade, businessRegion); if (dailyAnalysisList == null || dailyAnalysisList.Count == 0) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } Models.JsonList jsonList = Models.JsonList.Success(dailyAnalysisList); return Ok(Models.JsonMsg>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetMonthlyBusinessAnalysis"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取服务区营收增幅分析 /// /// 获取服务区营收增幅分析 /// /// 计算方式:
1【当日】,2【累计】 /// 省份编码 /// 本年年份 /// 历年年份 /// 统计结束月份 /// 统计开始月份,格式yyyyMM /// 统计日期 /// 服务区内码,多个用,隔开 /// /// 经营区域:
/// 1【服务区】
/// 2【城市店】 /// /// /// 统计维度:
1【对客销售】
2【营业收入】
3【入区车流】 /// /// /// 排序字段:
/// 营业额:revenue
/// 驿达收入:account
/// 车流量:bayonet
/// 正序:asc,倒序:desc
/// 示例:revenue desc,bayonet desc /// [Route("Revenue/GetMonthlySPINCAnalysis")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetMonthlySPINCAnalysis(int calcType, string pushProvinceCode, int curYear, int compareYear, string StatisticsDate, int StatisticsMonth, int? StatisticsStartMonth = null, string ServerpartId = "", int? businessRegion = null, string Dimension = "", string SortStr = "") { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,统计维度【" + Dimension + "】," + "统计结束月份【" + StatisticsMonth + "】,统计开始月份【" + StatisticsStartMonth + "】," + "本年年份【" + curYear + "】,历年年份【" + compareYear + "】,统计日期【" + StatisticsDate + "】," + "服务区内码【" + ServerpartId + "】,经营区域【" + businessRegion + "】,排序字段【" + SortStr + "】"; try { if (StatisticsStartMonth == null) { if (calcType == 1) { StatisticsStartMonth = curYear * 100 + StatisticsMonth; } else { StatisticsStartMonth = curYear * 100 + 1; } } //获取实时营收数据 List INCAnalysisList = ESCG.HolidayHelper.GetMonthlySPINCAnalysis(transaction, pushProvinceCode, calcType, curYear, compareYear, StatisticsMonth, StatisticsStartMonth.Value, StatisticsDate, ServerpartId, businessRegion, SortStr, Dimension); if (INCAnalysisList == null || INCAnalysisList.Count == 0) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } Models.JsonList jsonList = Models.JsonList.Success(INCAnalysisList); return Ok(Models.JsonMsg>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetMonthlySPINCAnalysis"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 月度服务区门店营收对比分析 /// /// 月度服务区门店营收对比分析 /// /// 省份编码 /// 统计开始月份 /// 统计结束月份 /// 服务区内码,多个用,隔开 /// /// 经营区域:
/// 1:服务区
/// 2:城市店 /// /// /// 经营业态大类:
/// 1:自营便利店
/// 2:自营餐饮客房
/// 3:商铺租赁 /// /// 商品业态 /// 合同开始日期 /// 合同结束日期 /// 是否计算环比 /// 是否计算同比 /// 是否计算车流量 /// 是否包含模拟车流 /// /// 统计类型:
/// 1:门店
/// 2:业态分类
/// 3:服务区类型 /// /// /// 收入结算类型:
/// 0【标准算法】
/// 1【自营的按照商超25%,餐饮20%计算】 /// /// /// 经营数据:
/// 0:全部
/// 1:增长
/// 2:降低 /// /// /// 车流数据:
/// 0:全部
/// 1:增长
/// 2:降低 /// /// /// 显示层级:
/// 1:服务区
/// 2:门店
/// /// 是否查询固化数据 /// /// 显示预警:
/// true:预警数据
/// false:正常数据 /// /// /// 预警类型:
/// 1:车流增加,服务区营收减少
/// 2:车流增加,门店的营收减少
/// 3:车流增加,营收增长不匹配
/// 4:车流减少,营收减低不匹配 /// /// [Route("Revenue/GetMonthINCAnalysis")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetMonthINCAnalysis(string pushProvinceCode, string StatisticsStartMonth, string StatisticsEndMonth, string ServerpartId = "", int? businessRegion = null, string BusinessTradeType = "", string shopTrade = "", string compactStartDate = "", string compactEndDate = "", bool calcQOQ = false, bool calcYOY = false, bool calcBayonet = false, bool hasAnalog = true, int statisticsType = 1, int accountType = 0, int showRevenue = 0, int showBayonet = 0, int showLevel = 1, bool solidType = true, bool? showWarning = true, int? warningType = null) { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,统计类型【" + statisticsType + "】" + "统计开始月份【" + StatisticsStartMonth + "】,统计结束月份【" + StatisticsEndMonth + "】," + "服务区内码【" + ServerpartId + "】,经营区域【" + businessRegion + "】,商品业态【" + shopTrade + "】," + "合同开始日期【" + compactStartDate + "】,合同结束日期【" + compactEndDate + "】,是否计算环比【" + calcQOQ + "】," + "是否计算同比【" + calcYOY + "】,是否计算车流量【" + calcBayonet + "】,是否包含模拟车流【" + hasAnalog + "】," + "统计类型【" + statisticsType + "】,收入结算类型【" + accountType + "】,查询固化【" + solidType + "】," + "经营增幅【" + showRevenue + "】,车流增幅【" + showBayonet + "】,显示层级【" + showLevel + "】," + "显示预警【" + showWarning + "】,预警类型【" + warningType + "】"; try { //获取实时营收数据 List> INCAnalysisList = ESCG.AccountHelper.GetMonthINCAnalysis( transaction, pushProvinceCode, StatisticsStartMonth, StatisticsEndMonth, ServerpartId, businessRegion, BusinessTradeType, shopTrade, compactStartDate, compactEndDate, calcQOQ, calcYOY, calcBayonet, hasAnalog, statisticsType, accountType, showRevenue, showBayonet, showLevel, solidType, showWarning, warningType); if (INCAnalysisList == null || INCAnalysisList.Count == 0) { return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!")); } Models.JsonList> jsonList = Models.JsonList>.Success(INCAnalysisList); return Ok(Models.JsonMsg>>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetMonthINCAnalysis"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 汇总月度经营项目预警数值 /// /// 汇总月度经营项目预警数值 /// /// 统计开始月份 /// 统计结束月份 /// /// 经营业态大类:
/// 1:自营便利店
/// 2:自营餐饮客房
/// 3:商铺租赁 /// /// 经营业态 [Route("Revenue/GetMonthINCAnalysisSummary")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetMonthINCAnalysisSummary(string StatisticsStartMonth, string StatisticsEndMonth, string BusinessTradeType = "", string shopTrade = "") { string Parameter = "入参信息:统计开始月份【" + StatisticsStartMonth + "】," + "统计结束月份【" + StatisticsEndMonth + "】,经营业态大类【" + BusinessTradeType + "】,经营业态【" + shopTrade + "】"; try { //获取实时营收数据 List INCAnalysisList = ESCG.AccountHelper.GetMonthINCAnalysisSummary(transaction, StatisticsStartMonth, StatisticsEndMonth, BusinessTradeType, shopTrade); Models.JsonList jsonList = Models.JsonList.Success(INCAnalysisList); return Ok(Models.JsonMsg>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetMonthINCAnalysisSummary"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 固化月度经营预警数据 /// /// 固化月度经营预警数据 /// /// 省份编码 /// 统计月份 /// 服务区内码 /// 是否包含模拟车流 /// /// 结算方式:
/// 0:自营100%
/// 1:自营按商超25%,餐饮20%计算 /// [Route("Revenue/StorageMonthINCAnalysis")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult StorageMonthINCAnalysis(string pushProvinceCode, string StatisticsMonth, string ServerpartId = "", bool hasAnalog = true, int accountType = 0) { string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,统计月份【" + StatisticsMonth + "】," + "服务区内码【" + ServerpartId + "】,是否包含模拟车流【" + hasAnalog + "】,收入结算类型【" + accountType + "】"; try { //获取实时营收数据 ESCG.AccountHelper.StorageMonthINCAnalysis(transaction, pushProvinceCode, StatisticsMonth, ServerpartId, hasAnalog, accountType); return Ok(ESCG.Common.ReturnJson(100, "生成成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); LogUtil.WriteLog(null, "生成失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_StorageMonthINCAnalysis"); return Ok(ESCG.Common.ReturnJson(999, "生成失败" + ex.Message)); } } #endregion #region 月度服务区门店商业适配指数(SABFI) /// /// 月度服务区门店商业适配指数(SABFI) /// /// 省份编码 /// 统计月份 /// 服务区内码,多个用,隔开 /// /// 经营业态大类:
/// 1:自营便利店
/// 2:自营餐饮客房
/// 3:商铺租赁 /// /// 经营业态 /// /// 结算方式:
/// 0:自营100%
/// 1:自营按商超25%,餐饮20%计算 /// [Route("Revenue/GetShopSABFIList")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>>))] public IHttpActionResult GetShopSABFIList(string pushProvinceCode, string StatisticsMonth, string ServerpartId, string BusinessTradeType = "", string BusinessTrade = "", int accountType = 0) { try { //获取实时营收数据 List> AnalysisList = ESCG.AccountHelper.GetShopSABFIList(transaction, pushProvinceCode, StatisticsMonth, ServerpartId, BusinessTradeType, BusinessTrade, accountType); Models.JsonList> jsonList = Models.JsonList>.Success(AnalysisList); return Ok(Models.JsonMsg>>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,统计月份【" + StatisticsMonth + "】," + "服务区内码【" + ServerpartId + "】,经营业态大类【" + BusinessTradeType + "】," + "经营业态【" + BusinessTrade + "】,结算方式【" + accountType + "】"; LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetShopSABFIList"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion #region 获取实时交易明细 /// /// 获取实时交易明细 /// /// 省份编码 /// 服务区内码 /// 门店内码 /// 开始时间 /// 结束时间 /// 显示页码 /// 每页数量 [Route("Revenue/GetTransactionDetailList")] [AcceptVerbs("GET")] [ResponseType(typeof(Models.JsonMsg>))] public IHttpActionResult GetTransactionDetailList(string ProvinceCode, string ServerpartId = "", string ServerpartShopId = "", string StartTime = "", string EndTime = "", int PageIndex = 1, int PageSize = 100) { try { int TotalCount = 0; if (string.IsNullOrWhiteSpace(StartTime)) { StartTime = DateTime.Now.AddMinutes(-10).ToString(); } if (string.IsNullOrWhiteSpace(EndTime)) { EndTime = DateTime.Now.ToString(); } //获取实时营收数据 List TransactionList = ESCG.TransactionHelper.GetTransactionDetailList(transaction, ProvinceCode, ServerpartId, ServerpartShopId, StartTime, EndTime, PageIndex, PageSize, ref TotalCount); Models.JsonList jsonList = Models.JsonList.Success(TransactionList, TotalCount, PageIndex, PageSize); return Ok(Models.JsonMsg>.Success(jsonList, 100, "查询成功")); } catch (Exception ex) { //事务回滚 transaction.Rollback(); string Parameter = "入参信息:推送省份【" + ProvinceCode + "】,服务区内码【" + ServerpartId + "】," + "门店内码【" + ServerpartShopId + "】,开始时间【" + StartTime + "】,结束时间【" + EndTime + "】," + "显示页码【" + PageIndex + "】,每页数量【" + PageSize + "】"; LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter, DateTime.Now.ToString("yyyyMMdd") + "_GetTransactionDetailList"); return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message)); } } #endregion } }