//已审批 private static void ApprovedList(ApplyLeaveListModel vm, IEnumerable <tbWeOAFlowDetail> workflowApproveList, IEnumerable <tbWeOAFlowDetail> allApproveList) { using (var db = new XkSystem.Models.DbContext()) { var approvedList = OAWeWorkFlow.GetApprovedList(db, flowTypeCode); var approved = (from a in approvedList join b in db.Table <Wechat.Entity.tbWeOAApplyLeave>().Include(m => m.tbTeacherDept).Include(m => m.tbWeOALeaveType) on a.ApproveBodyId equals b.Id select new Dto.ApplyLeave.ApplyLeaveListDto { CaseFileName = b.CaseFileName, LeaveDayCount = b.LeaveDayCount, LeaveFromTime = b.LeaveFromTime, LeaveToTime = b.LeaveToTime, tbTeacherDeptName = b.tbTeacherDept.TeacherDeptName, tbWeOALeaveTypeName = b.tbWeOALeaveType.LeaveTypeName, Reason = b.Reason, Id = b.Id, ApplyUser = workflowApproveList.Where(m => m.ApproveBodyId == b.Id).FirstOrDefault().tbSysUser.UserName, ApproveDate = a.ApproveDate, ApproveOpinion = a.ApproveOpinion, ApproveUserName = a.tbSysUser.UserName, NodeApproveStatus = allApproveList.Where(m => m.ApproveBodyId == a.ApproveBodyId && m.NodeApproveStatus == Code.EnumHelper.OAFlowNodeStatus.WithoutApproval).FirstOrDefault() == null ? Code.EnumHelper.OAFlowNodeStatus.Approved : Code.EnumHelper.OAFlowNodeStatus.WithoutApproval, IsComplete = allApproveList.Where(m => m.ApproveBodyId == a.ApproveBodyId && m.tbWeOAFlowNextNode == null).FirstOrDefault() != null }).Distinct(new Code.EqualComparer <Dto.ApplyLeave.ApplyLeaveListDto>((x, y) => x.Id == y.Id)).OrderByDescending(m => m.ApproveDate); ApprovedListPage(vm, approved); } }
//待审批 private void WaitApproveList(ApplyLeaveListModel vm, IEnumerable <tbWeOAFlowDetail> workflowApproveList) { using (var db = new XkSystem.Models.DbContext()) { var waitApproveList = OAWeWorkFlow.GetWaitApproveList(db, flowTypeCode); var wait = (from a in waitApproveList join b in db.Table <Wechat.Entity.tbWeOAApplyLeave>().Include(m => m.tbTeacherDept).Include(m => m.tbWeOALeaveType) on a.ApproveBodyId equals b.Id select new Dto.ApplyLeave.ApplyLeaveListDto { CaseFileName = b.CaseFileName, LeaveDayCount = b.LeaveDayCount, LeaveFromTime = b.LeaveFromTime, LeaveToTime = b.LeaveToTime, tbTeacherDeptName = b.tbTeacherDept.TeacherDeptName, tbWeOALeaveTypeName = b.tbWeOALeaveType.LeaveTypeName, Reason = b.Reason, Id = b.Id, ApplyUser = workflowApproveList.Where(m => m.ApproveBodyId == b.Id).FirstOrDefault().tbSysUser.UserName, ApproveDate = a.ApproveDate, ApproveOpinion = a.ApproveOpinion, ApproveUserName = a.tbSysUser.UserName, NodeApproveStatus = a.NodeApproveStatus }).Distinct(new Code.EqualComparer <Dto.ApplyLeave.ApplyLeaveListDto>((x, y) => x.Id == y.Id)).OrderByDescending(m => m.ApproveDate); WaitListPage(vm, wait); } }