public ActionResult WorkFlowList(int approveBodyId, string segmentedTab) { Models.ApplyCar.ApplyCarListModel vm = new Models.ApplyCar.ApplyCarListModel(); vm.SegmentedTab = segmentedTab; using (var db = new XkSystem.Models.DbContext()) { var firstNode = db.Table <Wechat.Entity.tbWeOAFlowNode>().Where(m => m.tbSysOAFlowType.Code == flowTypeCode && m.FlowStep == 1).FirstOrDefault(); var workFlowList = OAWeWorkFlow.GetWorkFlowList(db, flowTypeCode, approveBodyId); var workflowApproveList = OAWeWorkFlow.GetWorkFlowApproveList(flowTypeCode); vm.WorkFlowListDto = (from a in workFlowList join b in db.Table <Wechat.Entity.tbWeOAApplyCar>().Include(m => m.tbTeacherDept) on a.ApproveBodyId equals b.Id select new Dto.ApplyCar.ApplyCarListDto { CarTime = b.CarTime, Destination = b.Destination, tbTeacherDeptName = b.tbTeacherDept.TeacherDeptName, Reason = b.Reason, OtherUsers = b.OtherUsers, Remark = b.Remark, Id = b.Id, ApplyUser = workflowApproveList.Where(m => m.ApproveBodyId == b.Id).FirstOrDefault().tbSysUser.UserName, ApproveDate = a.ApproveDate, ApproveOpinion = a.ApproveOpinion, ApproveUserName = a.tbSysUser == null ? "" : a.tbSysUser.UserName, NodeApproveStatus = a.NodeApproveStatus, FlowApprovalNode = a.tbWeOAFlowPreviousNode != null ? a.tbWeOAFlowPreviousNode.FlowApprovalNode : firstNode.FlowApprovalNode, FlowStep = a.tbWeOAFlowPreviousNode != null ? a.tbWeOAFlowPreviousNode.FlowStep : firstNode.FlowStep, ConditionalFormula = a.tbWeOAFlowPreviousNode != null ? a.tbWeOAFlowPreviousNode.ConditionalFormula : firstNode.ConditionalFormula, }).ToList(); //下个节点审批人列表 var currFlow = vm.WorkFlowListDto.Where(m => string.IsNullOrEmpty(m.ApproveUserName)).FirstOrDefault(); if (currFlow != null) { var nextFlow = vm.WorkFlowListDto.Where(m => m.FlowStep == currFlow.FlowStep + 1).FirstOrDefault(); if (nextFlow != null) { var nextApproveUsers = db.Table <Wechat.Entity.tbWeOAFlowApprover>().Where(m => m.tbWeOAFlowNode.FlowStep == nextFlow.FlowStep && m.tbWeOAFlowNode.FlowApprovalNode == nextFlow.FlowApprovalNode && m.tbWeOAFlowNode.tbSysOAFlowType.Code == flowTypeCode).Include(m => m.tbSysUser).ToList(); var users = (from p in nextApproveUsers select new Code.MuiJsonDataBind { text = p.tbSysUser.UserName, value = p.tbSysUser.Id.ToString(), }).ToList(); vm.UserListJson = JsonConvert.SerializeObject(users); } } return(View(vm)); } }
private static void MyListPage(Models.ApplyCar.ApplyCarListModel vm, IEnumerable <Dto.ApplyCar.ApplyCarListDto> my) { //1:审批中,2:已完成,3:已驳回,0:全部 if (vm.ApproveStatus == 1) { vm.MyApplyDto = my.Where(m => m.IsComplete == false && m.NodeApproveStatus != Code.EnumHelper.OAFlowNodeStatus.WithoutApproval).ToPageList(vm.myPage); } else if (vm.ApproveStatus == 2) { vm.MyApplyDto = my.Where(m => m.IsComplete == true && m.NodeApproveStatus != Code.EnumHelper.OAFlowNodeStatus.WithoutApproval).ToPageList(vm.myPage); } else if (vm.ApproveStatus == 3) { vm.MyApplyDto = my.Where(m => m.NodeApproveStatus == Code.EnumHelper.OAFlowNodeStatus.WithoutApproval).ToPageList(vm.myPage); } else { vm.MyApplyDto = my.ToPageList(vm.myPage); } vm.myPage.PageCount = (int)Math.Ceiling(vm.myPage.TotalCount * 1.0 / vm.myPage.PageSize); vm.myPage.PageCount = vm.myPage.PageCount == 0 ? 1 : vm.myPage.PageCount; }
public ActionResult ApplyCarIndex(Models.ApplyCar.ApplyCarListModel vm) { using (var db = new XkSystem.Models.DbContext()) { var workflowApproveList = OAWeWorkFlow.GetWorkFlowApproveList(flowTypeCode); var allApproveList = OAWeWorkFlow.GetAllApprovedList(flowTypeCode); WaitApproveList(vm, workflowApproveList); ApprovedList(vm, workflowApproveList, allApproveList); MyApplyList(vm, workflowApproveList, allApproveList); if (Request.IsAjaxRequest()) { return(PartialView("ApplyCarApproveBody", vm)); } //发起流程权限 var approver = db.Table <Wechat.Entity.tbWeOAFlowApprover>().Where(m => m.tbWeOAFlowNode.tbSysOAFlowType.Code == flowTypeCode && m.tbSysUser.Id == XkSystem.Code.Common.UserId && m.tbWeOAFlowNode.FlowStep == 1).FirstOrDefault(); vm.StartFlowPermission = approver != null; return(View(vm)); } }
private static void WaitListPage(Models.ApplyCar.ApplyCarListModel vm, IEnumerable <Dto.ApplyCar.ApplyCarListDto> wait) { vm.WaitApproveDto = wait.ToPageList(vm.waitPage); vm.waitPage.PageCount = (int)Math.Ceiling(vm.waitPage.TotalCount * 1.0 / vm.waitPage.PageSize); vm.waitPage.PageCount = vm.waitPage.PageCount == 0 ? 1 : vm.waitPage.PageCount; }
private static void ApprovedListPage(Models.ApplyCar.ApplyCarListModel vm, IEnumerable <Dto.ApplyCar.ApplyCarListDto> approved) { vm.ApprovedDto = approved.ToPageList(vm.approvedPage); vm.approvedPage.PageCount = (int)Math.Ceiling(vm.approvedPage.TotalCount * 1.0 / vm.approvedPage.PageSize); vm.approvedPage.PageCount = vm.approvedPage.PageCount == 0 ? 1 : vm.approvedPage.PageCount; }