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);
        }
Exemple #2
0
        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());
            }
        }
Exemple #4
0
        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!");
        }
Exemple #5
0
        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");
        }