public Guid UpdateReportTime(string time, string status, string openday) { C_ReportTime model = GetReportTime(); if (status == "1") { if (openday != "" && time != "") { model.SysOpenDay = DateTime.Parse(openday); model.WantTime = DateTime.Parse(time); } } else if (status == "2") { if (time != "") { model.ReportTime = DateTime.Parse(time); } } else { model.ReportTime = null; model.SysOpenDay = null; model.WantTime = null; } model.OpenStatus = status; var guid = C_ReportTimeOperator.Instance.UpdateReportTime(model); StaticResource.Instance.Reload(); return(guid); }
public void Execute(IJobExecutionContext context) { Common.ScheduleService.Log.Instance.Info("Service GenerateTargetPlanAttachments 年度计划指标分解 开始 execute"); Common.ScheduleService.Log.Instance.Info(string.Format("Service GenerateTargetPlanAttachments:filePath =>{0}; ImageFilePath =>{1}; ImageFilePath =>{2}", filePath, ImageFilePath, licenseFile)); C_ReportTime RptTime = C_ReportTimeOperator.Instance.GetReportTime(); try { //获取当年的所有的计划分解指标 var TPList = B_TargetplanOperator.Instance.GetTargetPlanByApprovedAndApproved(RptTime.ReportTime.Value.Year).ToList(); ///数据时间 if (TPList != null && TPList.Count > 0) { var CList = TPList.Where(p => p.CreatorID == 0).ToList(); if (CList != null && CList.Count > 0) { //循环生成 附件 CList.ForEach(F => { Common.ScheduleService.Log.Instance.Info("Service GenerateTargetPlanAttachments 生成Excel的附件信息:" + F.ID.ToString() + " ; 系统名称 :" + F.SystemID); bool IsUrl = GenerateAttachmentsUrl(F); //这里写生成Excel if (IsUrl) { F.CreatorID = 100; } else { F.CreatorID = -100; } //修改已经生成的Excel B_TargetplanOperator.Instance.UpdateTargetplan(F); }); } } } catch (Exception ex) { Common.ScheduleService.Log.Instance.Error("Service GenerateTargetPlanAttachments 年度计划指标分解 错误:" + ex.ToString()); } Common.ScheduleService.Log.Instance.Info("Service GenerateTargetPlanAttachments 年度计划指标分解 结束 execute"); }
public void Execute(Quartz.IJobExecutionContext context) { Common.ScheduleService.Log.Instance.Info("Service begin execute"); //查出上报月所有订阅了的系统以及人 // List<B_Subscription> result = B_SubscriptionOperator.Instance.GetallSubscriptionList().ToList(); int times = 60; try { string tim = ConfigurationManager.AppSettings["duration"]; if (tim != null && tim != "") { times = int.Parse(tim); } Common.ScheduleService.Log.Instance.Info("系统开放日服务,在App.Config读取时间间隔成功{0}", times); } catch (Exception) { Common.ScheduleService.Log.Instance.Error("系统开放日服务,在App.Config内读取时间间隔错误,请确保其为数字,没有空格.而且其单位为分钟"); } //拿出系统开放实体 C_ReportTime SysConfigModel = C_ReportTimeOperator.Instance.GetReportTime(); Common.ScheduleService.Log.Instance.Info("系统开放日服务,执行逻辑业务开始"); try { if (SysConfigModel.SysOpenDay != null) { if (SysConfigModel.SysOpenDay.Value.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")) { SysConfigModel.ReportTime = SysConfigModel.WantTime; SysConfigModel.OpenStatus = "1"; C_ReportTimeOperator.Instance.UpdateReportTime(SysConfigModel); } } Common.ScheduleService.Log.Instance.Info("系统开放日服务,执行逻辑业务结束"); } catch (Exception ex) { Common.ScheduleService.Log.Instance.Error("系统开放日服务,执行逻辑业务报错:" + ex.ToString()); } }
public void Execute(Quartz.IJobExecutionContext context) { Common.ScheduleService.Log.Instance.Info("计算未完成指标考核范围Stare!"); //获取需要的项目系统 List <C_System> sysList = C_SystemOperator.Instance.GetSystemListBySeq().ToList(); //获取上报年 C_ReportTime RTime = C_ReportTimeOperator.Instance.GetReportTime(); sysList.ForEach(S => { Common.ScheduleService.Log.Instance.Info("循环系统 Stare! " + S.SystemName); //筛选指标类型是 收入和净利润 (这里还包含了,旅业的客流量) ,不包含成本类的指标 List <C_Target> targetList = StaticResource.Instance.GetTargetList(S.ID, DateTime.Now).Where(T => T.NeedEvaluation == true && (T.TargetType != (int)EnumTargetType.Cost)).ToList(); targetList.ForEach(t => { Common.ScheduleService.Log.Instance.Info("循环系统下的考核指标 Stare! " + t.TargetName.ToString()); //获取上报年计划指标 (参数,公司ID, 指标ID, 系统ID) List <A_TargetPlanDetail> targetPlanList = A_TargetplandetailOperator.Instance.GetTargetplandetailList(S.ID, RTime.ReportTime.Value.Year).ToList(); for (int i = 1; i <= 12; i++) { Common.ScheduleService.Log.Instance.Info("循环系统下的考核指标的 全年12月 Stare! " + i.ToString() + "月"); #region 循环12月,在里面查询公司 //每个月,上报的月报单独指标 A表 List <A_MonthlyReportDetail> currentMRDList = A_MonthlyreportdetailOperator.Instance.GetAMonthlyreportdetailList(S.ID, RTime.ReportTime.Value.Year, i).Where(M => M.TargetID == t.ID).ToList(); //每个月,上报的月报单独指标, B表 List <B_MonthlyReportDetail> currentB_MRDList = B_MonthlyreportdetailOperator.Instance.GetMonthlyreportdetailList(S.ID, RTime.ReportTime.Value.Year, i, Guid.Empty).Where(M => M.TargetID == t.ID).ToList(); //未完成数量 int MissTargetA = 0; int MissTargetB = 0; MissTargetA = currentMRDList.Where(p => p.IsMissTarget == true).ToList().Count(); MissTargetB = currentB_MRDList.Where(p => p.IsMissTarget == true).ToList().Count(); //每个月的单独计划指标公司 List <A_TargetPlanDetail> currentTargetPlanList = targetPlanList.Where(tp => tp.FinMonth <= i && tp.TargetID == t.ID).ToList(); //获取上报且考核的公司 List <C_Company> companyList = C_CompanyOperator.Instance.GetCompanyListByNeedEvaluation(t.ID, S.ID).ToList(); //该list 作为记数用 A表的 List <C_Company> companyListCount = new List <C_Company>(); //该list 作为记数用 B表的 List <C_Company> companyB_ListCount = new List <C_Company>(); //这里循环有效的考核范围公司 companyList.ForEach(c => { //首先判断当月公司是否存在,存在代表:大于0 int isCompanyCount = currentTargetPlanList.Where(P => P.CompanyID == c.ID).Count(); //获取当月指标等于0的个数 int tempCount = currentTargetPlanList.Where(P => P.CompanyID == c.ID && P.Target == 0).Count(); //记录A表数据 int isMonthRotCount = currentMRDList.Where(MR => MR.CompanyID == c.ID).Count(); //记录B表数据 int isB_MonthRotCount = currentB_MRDList.Where(MR => MR.CompanyID == c.ID).Count(); A_MonthlyReportDetail MonthRpt = currentMRDList.Where(MR => MR.CompanyID == c.ID).FirstOrDefault(); B_MonthlyReportDetail B_MonthRpt = currentB_MRDList.Where(MR => MR.CompanyID == c.ID).FirstOrDefault(); //A表数据的List if (isMonthRotCount > 0 && isCompanyCount > 0 && tempCount != i) { //这里排除总部 if (c.CompanyName.IndexOf("总部") == -1 && MonthRpt.CompanyProperty1 != "筹备门店") { companyListCount.Add(c); } } //B表数据的List if (isB_MonthRotCount > 0 && isCompanyCount > 0 && tempCount != i) { //这里排除总部 if (c.CompanyName.IndexOf("总部") == -1 && B_MonthRpt.CompanyProperty1 != "筹备门店") { companyB_ListCount.Add(c); } } }); //End companyList try { //首先获取数据 , 这里区分A表 和B表的数据 (A表数据) R_MissTargetEvaluationScope UpdateModel = R_MissTargetEvaluationScopeOperator.Instance.GetEvaluationDetailByType(S.ID, t.ID, RTime.ReportTime.Value.Year, i, "NeedEvaluation"); if (UpdateModel != null) { //修改 if (companyListCount != null) { UpdateModel.EvaluationNumber = companyListCount.Count; } else { UpdateModel.EvaluationNumber = 0; } UpdateModel.MissTargetNumber = MissTargetA; UpdateModel.ModifierName = "Sys"; UpdateModel.ModifyTime = DateTime.Now; R_MissTargetEvaluationScopeOperator.Instance.UpdateMissTargetEvaluationScope(UpdateModel); } else { //新增 R_MissTargetEvaluationScope ScopeModel = new R_MissTargetEvaluationScope(); if (companyListCount != null) { ScopeModel.EvaluationNumber = companyListCount.Count; } else { ScopeModel.EvaluationNumber = 0; } ScopeModel.MissTargetNumber = MissTargetA; ScopeModel.FinMonth = i; ScopeModel.FinYear = RTime.ReportTime.Value.Year; ScopeModel.SystemID = S.ID; ScopeModel.TargetID = t.ID; ScopeModel.EvaluationType = "NeedEvaluation"; ScopeModel.CreateTime = DateTime.Now; ScopeModel.CreatorName = "Sys"; //12个月的,每个月,添加一次 R_MissTargetEvaluationScopeOperator.Instance.AddMissTargetEvaluationScope(ScopeModel); } //----------------------------------------------------------------------------------------------------------------- //这里代表B表的数据 R_MissTargetEvaluationScope B_UpdateModel = R_MissTargetEvaluationScopeOperator.Instance.GetEvaluationDetailByType(S.ID, t.ID, RTime.ReportTime.Value.Year, i, "BNeedEvaluation"); if (UpdateModel != null) { //修改 if (companyB_ListCount != null) { B_UpdateModel.EvaluationNumber = companyB_ListCount.Count; } else { B_UpdateModel.EvaluationNumber = 0; } B_UpdateModel.MissTargetNumber = MissTargetB; B_UpdateModel.ModifierName = "Sys"; B_UpdateModel.ModifyTime = DateTime.Now; R_MissTargetEvaluationScopeOperator.Instance.UpdateMissTargetEvaluationScope(B_UpdateModel); } else { //新增 R_MissTargetEvaluationScope ScopeModel = new R_MissTargetEvaluationScope(); if (companyB_ListCount != null) { ScopeModel.EvaluationNumber = companyB_ListCount.Count; } else { ScopeModel.EvaluationNumber = 0; } ScopeModel.MissTargetNumber = MissTargetB; ScopeModel.FinMonth = i; ScopeModel.FinYear = RTime.ReportTime.Value.Year; ScopeModel.SystemID = S.ID; ScopeModel.TargetID = t.ID; ScopeModel.EvaluationType = "BNeedEvaluation"; ScopeModel.CreateTime = DateTime.Now; ScopeModel.CreatorName = "Sys"; //12个月的,每个月,添加一次 R_MissTargetEvaluationScopeOperator.Instance.AddMissTargetEvaluationScope(ScopeModel); } } catch (Exception Exp) { Common.ScheduleService.Log.Instance.Error("添加错误 TargetID" + t.ID + "SystemID" + S.ID + "FinMonth" + i + "FinYear" + RTime.ReportTime.Value.Year); } #endregion } Common.ScheduleService.Log.Instance.Info("循环系统下的考核指标 End!" + t.TargetName.ToString()); }); //End targetList Common.ScheduleService.Log.Instance.Info("循环系统 End!" + S.SystemName.ToString()); });// End sysList Common.ScheduleService.Log.Instance.Info("计算未完成指标考核范围End!"); }
public void Execute(IJobExecutionContext context) { Common.ScheduleService.Log.Instance.Info("Service GenerateQuerryJsonData 开始 execute"); C_ReportTime RptTime = C_ReportTimeOperator.Instance.GetReportTime(); try { bool JsonDataSwitch = false; bool.TryParse(AppSettingConfig.GetSetting("JsonDataSwitch", ""), out JsonDataSwitch); List <B_MonthlyReport> MList = new List <B_MonthlyReport>(); //开关:true=按照当前上报月 ,查询, 关闭:false=查询所有的数据执行 if (JsonDataSwitch) { MList = B_MonthlyreportOperator.Instance.GetMonthlyReportByApproveList(RptTime.ReportTime.Value.Year, RptTime.ReportTime.Value.Month); } else { MList = B_MonthlyreportOperator.Instance.GetMonthlyreportList().ToList(); } //获取,需要执行的JSon数据 && p.ID == Guid.Parse("114B9692-BC9E-47F0-A6EB-C14450E25C4E") var GList = MList.Where(p => string.IsNullOrEmpty(p.DataOptimizationJson)).ToList(); if (GList != null && GList.Count > 0) { GList.ForEach(G => { try { // 基础信息, 月度报告汇总表 ReportInstance rpt = new ReportInstance(G.ID, true, ""); List <DictionaryVmodel> listSRDS = ReportInstanceSummaryEngine.ReportInstanceSummaryService.GetSummaryRptDataSource(rpt, false); StringBuilder SumStr = new StringBuilder(); SumStr.Append(JsonHelper.Serialize(listSRDS)); // 追加所有的出来的数据 string strProp = string.Empty; //判断下,直管公司里是没有属性的 if (rpt._System.Category != 4) { //公司的属性List var VpropList = (List <VCompanyProperty>)listSRDS[4].ObjValue; VpropList.ForEach(vp => { strProp = strProp + vp.ColumnName + ":"; if (vp.listCP != null && vp.listCP.Count > 0) { vp.listCP.ForEach(v => { strProp = strProp + v.ItemCompanyPropertyValue + ","; }); } strProp = strProp + ";"; }); } //月度明细数据 ReportInstance rpt_Detail = new ReportInstance(G.ID, true, ""); List <DictionaryVmodel> DetailData = ReportInstanceDetailEngine.ReportInstanceDetailService.GetDetailRptDataSource(rpt_Detail, strProp, "Detail", false); StringBuilder DetailStr = new StringBuilder(); DetailStr.Append(JsonHelper.Serialize(DetailData)); // 追加所有的出来的数据 //累计未完成 ReportInstance rpt_MIss = new ReportInstance(G.ID, true, ""); List <DictionaryVmodel> MIssData = ReportInstanceMissTargetEngine.ReportInstanceMissTargetService.GetMissTargetRptDataSource(rpt_MIss); StringBuilder MIssStr = new StringBuilder(); MIssStr.Append(JsonHelper.Serialize(MIssData)); // 追加所有的出来的数据 //当月未完成 ReportInstance rpt_CurrenMIss = new ReportInstance(G.ID, true, ""); List <DictionaryVmodel> CurrentMIssData = ReportInstanceCurrentMissTargetEngine.ReportInstanceMissTargetService.GetCurrentMissTargetRptDataSource(rpt_CurrenMIss); StringBuilder CurrentMIssStr = new StringBuilder(); CurrentMIssStr.Append(JsonHelper.Serialize(CurrentMIssData)); // 追加所有的出来的数据 //补回情况 C_System sys; if (rpt.ReportDetails != null && rpt.ReportDetails.Count() > 0) { sys = StaticResource.Instance[rpt._System.ID, rpt.ReportDetails[0].CreateTime]; } else { sys = StaticResource.Instance[rpt._System.ID, DateTime.Now]; } ReportInstance rpt_Return = new ReportInstance(G.ID, true, ""); List <DictionaryVmodel> ReturnData = ReportInstanceReturnEngine.ReportInstanceReturnService.GetReturnRptDataSource(rpt_Return, sys); //rpt.GetReturnRptDataSource(); StringBuilder ReturnStr = new StringBuilder(); ReturnStr.Append(JsonHelper.Serialize(ReturnData)); // 追加所有的出来的数据 // 序列化的Json数据保存 B_MonthlyReportJsonData JsonData = new B_MonthlyReportJsonData(); try {// 获取Json数据 JsonData = B_MonthlyReportJsonDataOperator.Instance.GetMonthlyReportJsonData(G.ID); } catch (Exception) { JsonData = null; } if (JsonData != null) { JsonData.ModifierName = "SysService"; JsonData.ModifyTime = DateTime.Now; JsonData.QuerrySumJsonData = SumStr.ToString(); JsonData.QuerryDetaileJsonData = DetailStr.ToString(); JsonData.QuerryMissJsonData = MIssStr.ToString(); JsonData.QuerryReturnJsonData = ReturnStr.ToString(); JsonData.QuerryCurrentMissJsonData = CurrentMIssStr.ToString(); B_MonthlyReportJsonDataOperator.Instance.UpdateMonthlyReportJsonData(JsonData); G.DataOptimizationJson = "100"; B_MonthlyreportOperator.Instance.UpdateMonthlyreport(G); } else { JsonData = new B_MonthlyReportJsonData(); JsonData.ID = G.ID; JsonData.FinMonth = rpt.FinMonth; JsonData.FinYear = rpt.FinYear; JsonData.PlanType = "M"; JsonData.SystemID = rpt._SystemID; JsonData.ModifierName = "SysService"; JsonData.ModifyTime = DateTime.Now; JsonData.QuerrySumJsonData = SumStr.ToString(); JsonData.QuerryDetaileJsonData = DetailStr.ToString(); JsonData.QuerryMissJsonData = MIssStr.ToString(); JsonData.QuerryReturnJsonData = ReturnStr.ToString(); JsonData.QuerryCurrentMissJsonData = CurrentMIssStr.ToString(); B_MonthlyReportJsonDataOperator.Instance.AddMonthlyReportJsonData(JsonData); G.DataOptimizationJson = "100"; B_MonthlyreportOperator.Instance.UpdateMonthlyreport(G); } } catch (Exception ep) { G.DataOptimizationJson = "-100"; B_MonthlyreportOperator.Instance.UpdateMonthlyreport(G); Common.ScheduleService.Log.Instance.Error("Service GenerateQueryAttachments 错误:" + ep.ToString()); } }); } } catch (Exception ex) { Common.ScheduleService.Log.Instance.Error("Service GenerateQueryAttachments 错误:" + ex.ToString()); } Common.ScheduleService.Log.Instance.Info("Service GenerateQuerryJsonData 结束 execute"); }