public MissTargetEvaluationModel GetContrastRemark(string SystemID, string TargetID, string FinMonth, string FinYear, bool IsPro) { MissTargetEvaluationModel result = new MissTargetEvaluationModel(); C_System sys = C_SystemOperator.Instance.GetSystem(Guid.Parse(SystemID)); if (sys.GroupType != "ProSystem") { result.SystemName = sys.SystemName; } else { result.SystemName = "境内项目"; } R_MissTargetEvaluationScope model = new R_MissTargetEvaluationScope(); Guid TarID = Guid.Empty; if (Guid.Parse(TargetID) == Guid.Empty) { TarID = Guid.Parse("99999999-9999-9999-9999-999999999999"); result.TargetName = "门店数量"; } else { TarID = Guid.Parse(TargetID); result.TargetName = C_TargetOperator.Instance.GetTarget(Guid.Parse(TargetID)).TargetName; } Guid SysID = Guid.Parse(SystemID); string m = "ContrastRemark"; if (IsPro == false) { m = "AContrastRemark"; } model = R_MissTargetEvaluationScopeOperator.Instance.GetEvaluationDetailByType(SysID, TarID, int.Parse(FinYear), int.Parse(FinMonth), m); if (model == null) { result.EvaluationRemark = null; } else { result.EvaluationRemark = model.ContrastRemark; } return(result); }
public Guid UpdateContrastRemark(string SystemID, string TargetID, string FinMonth, string FinYear, string Remark, bool IsPro) { string m = "ContrastRemark"; if (IsPro == false) { m = "AContrastRemark"; } Guid Result = Guid.Empty; R_MissTargetEvaluationScope model = new R_MissTargetEvaluationScope(); Guid TarID = Guid.Empty; Guid SysID = Guid.Parse(SystemID); if (Guid.Parse(TargetID) == Guid.Empty) { TarID = Guid.Parse("99999999-9999-9999-9999-999999999999"); } else { TarID = Guid.Parse(TargetID); } model = R_MissTargetEvaluationScopeOperator.Instance.GetEvaluationDetailByType(SysID, TarID, int.Parse(FinYear), int.Parse(FinMonth), m); if (model != null) { model.ContrastRemark = Remark; Result = R_MissTargetEvaluationScopeOperator.Instance.UpdateMissTargetEvaluationScope(model); } else { model = new R_MissTargetEvaluationScope(); model.SystemID = SysID; model.TargetID = TarID; model.FinMonth = int.Parse(FinMonth); model.FinYear = int.Parse(FinYear); model.EvaluationType = m; model.ContrastRemark = Remark; Result = R_MissTargetEvaluationScopeOperator.Instance.AddMissTargetEvaluationScope(model); } return(Result); }
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!"); }