//项目计划与工作周报交叉比对 //对于 [周报] 中存在,但[项目计划]中不存在的内容,存放 ignoredWeeklyItemList //对于 [周报] 中不存在,但[项目计划]中存在的内容,存放 ignoredProjectPlanList //对于 [周报] 中立项和需求中的项目,存放 markableWeeklyItemList,留待人工判断 public ProjectPlan CompareWith(DevWeeklies weeklies) { Console.WriteLine("周报 --> 项目类工作 : " + weeklies.ProjectWorkList.Count); Console.WriteLine("项目计划 --> 对比开始"); //尝试将周报中的项目名称模糊匹配为项目计划中的项目名称 weeklies.ProjectWorkList.ForEach(item => { item.Name = projectName.TryToProjectPlanName(item.Name); }); existedProjectPlanList = weeklies.ProjectWorkList .Where(item => IsExist(item.Name) && !item.IsProjectApproved()) .ToList() .Select(item => ToProjectPlanItem(item)) .ToList(); ignoredWeeklyItemList = weeklies.ProjectWorkList .Where(item => !IsExist(item.Name) && !item.IsProjectApproved()) .ToList(); ignoredProjectPlanList = projectPlanList .Where(item => !weeklies.IsExist(item.ProjectName)) .ToList(); markableWeeklyItemList = weeklies.ProjectWorkList .Where(item => item.IsProjectApproved()) .ToList(); Console.WriteLine("项目计划 --> 对比结束 : "); Console.WriteLine("项目计划 --> [项目计划][存在] and [周报][存在] : " + existedProjectPlanList.Count); Console.WriteLine("项目计划 --> [项目计划][不存在] and [周报][存在] : " + ignoredWeeklyItemList.Count); Console.WriteLine("项目计划 --> [项目计划][存在] and [周报][不存在] : " + ignoredProjectPlanList.Count); Console.WriteLine("项目计划 --> 立项和需求中的项目 : " + markableWeeklyItemList.Count); return(this); }
public DevBrief() { DevWeeklies weeklies = new DevWeeklies(); weeklies.Load().Summarize(); FrontDevBriefList = ToBriefItemList(DepartmentType.FRONT, weeklies.CurrentWeekWorksDevDivisions); FrontDataBriefList = ToBriefItemList(DepartmentType.FRONT, weeklies.CurrentWeekWorksDataSci); BackDevBriefList = ToBriefItemList(DepartmentType.BACK, weeklies.CurrentWeekWorksDevDivisions); BackDataBriefList = ToBriefItemList(DepartmentType.BACK, weeklies.CurrentWeekWorksDataSci); }
//比对项目计划与周报中的项目部分,生成草稿 static void Phase1() { Console.WriteLine("phase 1 start ... "); DevWeeklies devWeeklies = new DevWeeklies(); devWeeklies.Load().Summarize(); new ProjectPlan() .CompareWith(devWeeklies) .ReNewProjectPlan(); Console.WriteLine("phase 1 complete ... "); }