예제 #1
0
 public string AddMain(WeekReportMain main)
 {
     try
     {
         dbContext.WeekReportMains.Add(main);
         dbContext.SaveChanges();
         return(Constants.AJAX_CREATE_SUCCESS_RETURN);
     }
     catch (Exception e1)
     {
         return("<p class='alert alert-danger'>出错了: " + e1.Message + "</p>");
     }
 }
예제 #2
0
 public string EditMain(WeekReportMain main)
 {
     try
     {
         dbContext.Entry(main).State = System.Data.Entity.EntityState.Modified;
         dbContext.SaveChanges();
         return(Constants.AJAX_EDIT_SUCCESS_RETURN);
     }
     catch (Exception e1)
     {
         return("<p class='alert alert-danger'>出错了: " + e1.Message + "</p>");
     }
 }
예제 #3
0
        public string DeleteMain(int id)
        {
            try
            {
                WeekReportMain main = dbContext.WeekReportMains.ToList().Find(a => a.WRMainID == id);
                dbContext.Entry(main).State = System.Data.Entity.EntityState.Deleted;
                dbContext.SaveChanges();

                // 同时删除重点工作对应的每周工作
                dbContext.Database.ExecuteSqlCommand("delete from WeekReportDetails where WorkName = @p0 and IsWithMain = 1", id.ToString());

                return("删除成功");
            }
            catch (Exception e1)
            {
                return("出错了: " + e1.Message);
            }
        }
예제 #4
0
        /* 每周工作 */

        // 每周工作页面
        public ActionResult DetailIndex(int pageNum = 1, int orderByType = 1)
        {
            var ls = from a in dbContext.WeekReportDetails select a;

            // 若非管理员只显示负责人中含有自己姓名的记录
            if (!this.IsAdminNow())
            {
                User user = this.GetSessionCurrentUser();
                if (user == null)
                {
                    return(RedirectToAction("Login", "User", new { ReturnUrl = "/WeekReport/DetailIndex" }));
                }
                ls = ls.Where(a => a.Person.Contains(user.Realname) || a.OutSource.Contains(user.Realname));
            }
            // 对于IsWithMain的任务,WorkName转换成对应的重点任务名称
            var            mainLs = dbContext.WeekReportMains.ToList();
            WeekReportMain main   = null;

            foreach (var detail in ls)
            {
                if (detail.IsWithMain)
                {
                    main            = mainLs.Find(a => a.WRMainID.ToString() == detail.WorkName);
                    detail.WorkName = main == null ? "未知" : main.WorkName;
                }
            }

            // 按照 orderByType 排序 (1-按照周报倒序;2-按照项目名称)
            if (orderByType == 2)
            {
                ls = ls.OrderBy(a => a.WorkName);
            }
            else
            {
                ls = ls.OrderByDescending(a => a.RptDate);
            }

            ViewBag.OrdeyByTypeParam = orderByType;

            return(View(ls.ToList().ToPagedList(pageNum, Constants.PAGE_SIZE)));
        }
예제 #5
0
        // 修改:每周重点工作
        public ActionResult EditMain(int id)
        {
            WeekReportMain main = dbContext.WeekReportMains.ToList().Find(a => a.WRMainID == id);

            if (main == null)
            {
                return(View());
            }

            // 若workYear为空,自动填上今年的日期
            if (string.IsNullOrEmpty(main.WorkYear))
            {
                main.WorkYear = DateTime.Now.Year.ToString();
            }

            // 工作类型下拉列表
            SelectList sl = MyTools.GetSelectList(Constants.WorkTypeList, false, true, main.WorkType);

            ViewBag.WorkTypeList = sl;

            return(View(main));
        }
예제 #6
0
        // 填报:重点工作
        public ActionResult AddMain()
        {
            // 工作类型下拉列表
            SelectList sl = MyTools.GetSelectList(Constants.WorkTypeList);

            ViewBag.WorkTypeList = sl;


            // 默认加上当前的用户UID和姓名
            User user = this.GetSessionCurrentUser();

            if (user == null)
            {
                user = Constants.UserList.FirstOrDefault <User>(); // 若获取不到则去第一个
            }

            WeekReportMain main = new WeekReportMain()
            {
                WorkTime = 0, RptPersonID = user.UID, Person = user.Realname, WorkYear = DateTime.Now.Year.ToString()
            };

            return(View(main));
        }
예제 #7
0
        // 生成ExcelWorkBook
        private void procWorkbook(ExcelWorkbook wb, string thisWeek, string nextWeek, int sheetNum)
        {
            // 根据sheetNum处理
            ExcelWorksheet sheet = wb.Worksheets[sheetNum];

            sheet.Name = thisWeek; //sheet名称设为报表日期

            // 填报周期
            sheet.Cells[1, 4].Value = "填报周期:" + thisWeek + " - " + nextWeek;

            // 分别读取年度重点任务、每周工作、重点工作、项目风险

            // 游标:标记目前需要操作的行号
            int cursor = 4; //从第4行开始操作

            // 【1】重点任务
            var yearMissionList = dbContext.YearMissions.Where(p => p.DoNotTrack != true).ToList();

            int size = yearMissionList.Count();
            int num  = 1;

            // 在cursor+1位置插入size-1行
            sheet.InsertRow(cursor + 1, size - 1, cursor);

            // 插入数据
            foreach (var s in yearMissionList)
            {
                // 第一列是序号
                sheet.Cells[cursor, 1].Value  = num;
                sheet.Cells[cursor, 2].Value  = s.MissionDate;
                sheet.Cells[cursor, 3].Value  = s.MissionSource;
                sheet.Cells[cursor, 4].Value  = s.WorkMission;
                sheet.Cells[cursor, 5].Value  = s.WorkStage;
                sheet.Cells[cursor, 6].Value  = s.Person;
                sheet.Cells[cursor, 7].Value  = s.OutSource;
                sheet.Cells[cursor, 8].Value  = s.Progress;
                sheet.Cells[cursor, 9].Value  = s.PlanDeadLine;
                sheet.Cells[cursor, 10].Value = s.Remark;

                // 下移一行
                cursor++;

                num++;
            }

            // 游标下移3行,因为有1个空行2个标题行
            cursor += 3;

            // 【2】重点工作(取所有不为100%的、以及WorkYear是本年的)
            var mainList = (from a in dbContext.WeekReportMains
                            where a.DoNotTrack != true
                            orderby a.Person, a.OutSource
                            select a).ToList();

            size = mainList.Count();
            num  = 1;
            // 在cursor+1位置插入size-1行
            sheet.InsertRow(cursor + 1, size - 1, cursor);

            // 插入数据
            foreach (var s in mainList)
            {
                // 第一列是序号
                sheet.Cells[cursor, 1].Value  = num;
                sheet.Cells[cursor, 2].Value  = s.WorkType;
                sheet.Cells[cursor, 3].Value  = s.WorkName;
                sheet.Cells[cursor, 4].Value  = s.WorkMission;
                sheet.Cells[cursor, 5].Value  = s.WorkStage;
                sheet.Cells[cursor, 6].Value  = s.Person;
                sheet.Cells[cursor, 7].Value  = s.OutSource;
                sheet.Cells[cursor, 8].Value  = s.Progress + "%";
                sheet.Cells[cursor, 9].Value  = s.PlanDeadLine == null ? "" : s.PlanDeadLine.Value.ToString("yyyy/M/d");
                sheet.Cells[cursor, 10].Value = s.Remark;

                // 下移一行
                cursor++;

                num++;
            }

            // 游标下移3行
            cursor += 3;

            // 【3】风险
            // 风险提示取本周和下周的
            var riskList = dbContext.WeekReportRisks.Where(a => a.RptDate == thisWeek || a.RptDate == nextWeek);

            size = riskList.Count();
            if (size > 0)
            {
                // 在cursor+1位置插入size-1行
                sheet.InsertRow(cursor + 1, size - 1, cursor);

                // 插入数据
                num = 1; //序号
                foreach (var s in riskList)
                {
                    // 需要对第2-4单元格进行合并
                    //sheet.Cells[cursor, 2, cursor, 4].Merge = true;
                    // 5-10单元格合并
                    //sheet.Cells[cursor, 5, cursor, 10].Merge = true;   //似乎有问题,以后处理

                    // 第一列是序号
                    sheet.Cells[cursor, 1].Value = num;
                    sheet.Cells[cursor, 2].Value = s.RiskDetail;
                    sheet.Cells[cursor, 5].Value = s.Solution;

                    // 下移一行
                    cursor++;
                    // 序号+1
                    num++;
                }

                // 游标下移3行,因为有3个标题行
                cursor += 3;
            }
            else
            {
                // 游标下移4行,因为有一个空行
                cursor += 4;
            }

            // 【4】本周工作
            var thisWeekDetailList = (from a in dbContext.WeekReportDetails
                                      where a.RptDate == thisWeek
                                      orderby a.Person, a.OutSource
                                      select a).ToList();

            size = thisWeekDetailList.Count();
            // 在cursor+1位置插入size-1行
            sheet.InsertRow(cursor + 1, size - 1, cursor);

            // 插入数据
            foreach (var s in thisWeekDetailList)
            {
                string workName = "";
                if (s.IsWithMain)
                {
                    WeekReportMain main = mainList.Find(a => a.WRMainID.ToString() == s.WorkName);
                    if (main != null)
                    {
                        workName = main.WorkName;
                    }
                }
                else
                {
                    workName = s.WorkName;
                }

                sheet.Cells[cursor, 1].Value  = s.Priority;
                sheet.Cells[cursor, 2].Value  = s.WorkType;
                sheet.Cells[cursor, 3].Value  = workName;
                sheet.Cells[cursor, 4].Value  = s.WorkMission;
                sheet.Cells[cursor, 5].Value  = s.WorkTarget;
                sheet.Cells[cursor, 6].Value  = s.Person;
                sheet.Cells[cursor, 7].Value  = s.OutSource;
                sheet.Cells[cursor, 8].Value  = s.Progress + "%";
                sheet.Cells[cursor, 9].Value  = s.PlanDeadLine == null ? "" : s.PlanDeadLine.Value.ToString("yyyy/M/d");
                sheet.Cells[cursor, 10].Value = s.Remark;

                // 下移一行
                cursor++;
            }

            // 游标下移3行,因为有3个标题行
            cursor += 3;

            // 【4】下周计划
            var nextWeekDetailList = (from a in dbContext.WeekReportDetails
                                      where a.RptDate == nextWeek
                                      orderby a.Person, a.OutSource
                                      select a).ToList();

            size = nextWeekDetailList.Count();
            // 在cursor+1位置插入size-1行
            sheet.InsertRow(cursor + 1, size - 1, cursor);

            // 插入数据
            foreach (var s in nextWeekDetailList)
            {
                string workName = "";
                if (s.IsWithMain)
                {
                    WeekReportMain main = mainList.Find(a => a.WRMainID.ToString() == s.WorkName);
                    if (main != null)
                    {
                        workName = main.WorkName;
                    }
                }
                else
                {
                    workName = s.WorkName;
                }

                sheet.Cells[cursor, 1].Value  = s.Priority;
                sheet.Cells[cursor, 2].Value  = s.WorkType;
                sheet.Cells[cursor, 3].Value  = workName;
                sheet.Cells[cursor, 4].Value  = s.WorkMission;
                sheet.Cells[cursor, 5].Value  = s.WorkTarget;
                sheet.Cells[cursor, 6].Value  = s.Person;
                sheet.Cells[cursor, 7].Value  = s.OutSource;
                sheet.Cells[cursor, 8].Value  = s.Progress + "%";
                sheet.Cells[cursor, 9].Value  = s.PlanDeadLine == null ? "" : s.PlanDeadLine.Value.ToString("yyyy/M/d");
                sheet.Cells[cursor, 10].Value = s.Remark;

                // 下移一行
                cursor++;
            }
        }