//根据条件查询报修
        private Expression <Func <Flow_Node, bool> > SearchNodeWhere(FlowNodeSearchViewModel flowNodeSearchViewModel)
        {
            var predicate = WhereExtension.True <Flow_Node>();//初始化where表达式

            predicate = predicate.And(p => p.status.Contains(flowNodeSearchViewModel.status));
            if (flowNodeSearchViewModel.Flow_ProcedureId != null)
            {
                predicate = predicate.And(p => p.Flow_ProcedureId == flowNodeSearchViewModel.Flow_ProcedureId);
            }
            if (flowNodeSearchViewModel.Repair_InfoId != null)
            {
                predicate = predicate.And(p => p.Repair_InfoId == flowNodeSearchViewModel.Repair_InfoId);
            }
            predicate = predicate.And(p => p.operate.Contains(flowNodeSearchViewModel.operate));
            if (flowNodeSearchViewModel.User_InfoId != null)
            {
                predicate = predicate.And(p => p.User_InfoId == flowNodeSearchViewModel.User_InfoId);
            }
            if (flowNodeSearchViewModel.isHandler != null)
            {
                predicate = predicate.And(p => p.Repair_Info.isHandler == flowNodeSearchViewModel.isHandler);
            }

            return(predicate);
        }
Beispiel #2
0
        public List <FlowNodeSearchMiddlecs> Node_Search(FlowNodeSearchViewModel flowNodeSearchViewModel)
        {
            FlowNodeSearchMiddlecs nodeSearchs = new FlowNodeSearchMiddlecs();
            List <Flow_Node>       node_Infos  = _IFlowNodeRepository.SearchInfoByNodeWhere(flowNodeSearchViewModel);

            var nodeSearchMiddle = _IMapper.Map <List <Flow_Node>, List <FlowNodeSearchMiddlecs> >(node_Infos);

            return(nodeSearchMiddle);
        }
Beispiel #3
0
        /// <summary>
        /// 查询流程是否已经结束,如果结束应该显示写意见方法
        /// </summary>
        /// <param name="flowNodeSearchViewModel"></param>
        /// <returns></returns>
        public int CurrentNodeSearch1(FlowNodeSearchViewModel flowNodeSearchViewModel)
        {
            List <Flow_Node> node_Infos = _IFlowNodeRepository.SearchInfoByNodeWhere(flowNodeSearchViewModel);

            for (int i = 0; i < node_Infos.Count; i++)
            {
                if (node_Infos[i].User_InfoId == null && node_Infos[i].Pre_User_InfoId != null)//说明已经流转到结束节点
                {
                    return(1);
                }
            }
            return(0);
        }
Beispiel #4
0
        public ActionResult <FlowNodeSearchResModel> Manage_Node_Search(FlowNodeSearchViewModel flowNodeSearchViewModel)
        {
            FlowNodeSearchResModel flowNodeSearchResModel = new FlowNodeSearchResModel();
            var nodeSearchResult = _IFlowNodeService.Node_Search(flowNodeSearchViewModel);
            var TotalNum         = _IFlowNodeService.Node_Get_ALLNum(flowNodeSearchViewModel);

            flowNodeSearchResModel.flowNodeDefine_Info        = nodeSearchResult;
            flowNodeSearchResModel.isSuccess                  = true;
            flowNodeSearchResModel.baseViewModel.Message      = "查询成功";
            flowNodeSearchResModel.baseViewModel.ResponseCode = 200;
            flowNodeSearchResModel.TotalNum = TotalNum;
            _ILogger.Information("查询流转信息成功");
            return(Ok(flowNodeSearchResModel));
        }
        public List <Flow_Node> SearchInfoByNodeWhere(FlowNodeSearchViewModel flowNodeSearchViewModel)
        {
            int SkipNum = flowNodeSearchViewModel.pageViewModel.CurrentPageNum * flowNodeSearchViewModel.pageViewModel.PageSize;
            //查询条件
            var predicate = SearchNodeWhere(flowNodeSearchViewModel);
            var result    = DbSet.Where(predicate).Include(b => b.User_Info)
                            .ThenInclude(c => c.User_Depart)
                            .Include(d => d.Pre_User_Info)
                            .ThenInclude(c => c.User_Depart)
                            .Include(a => a.Repair_Info)
                            .Include(a => a.Flow_NodeDefine)
                            .Where(s => s.User_Info.status != "1" &&
                                   s.Pre_User_Info.status != "1" &&
                                   s.Repair_Info.status != "1")
                            .OrderByDescending(o => o.Repair_Info.repairsDate).ToList()
                            .Skip(SkipNum)
                            .Take(flowNodeSearchViewModel.pageViewModel.PageSize).ToList();

            return(result);
        }
Beispiel #6
0
        /// <summary>
        /// 查询流程时间是否超时,如果超时,显示催单按钮
        /// </summary>
        /// <param name="flowNodeSearchViewModel"></param>
        /// <returns></returns>
        public int CurrentNodeOverTimeSearch(FlowNodeSearchViewModel flowNodeSearchViewModel)
        {
            TimeSpan         ts1;
            List <Flow_Node> node_Infos = _IFlowNodeRepository.SearchInfoByNodeWhere(flowNodeSearchViewModel);

            for (int i = 0; i < node_Infos.Count; i++)
            {
                if (node_Infos[i].User_InfoId == null && node_Infos[i].Pre_User_InfoId == null)//说明是开始节点
                {
                    ts1 = node_Infos[i].StartTime.Value.AddHours(1).ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0);
                    long sdate = Convert.ToInt64(ts1.TotalSeconds);
                    //当前时间转为时间戳格式
                    TimeSpan ts2   = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0);
                    long     edate = Convert.ToInt64(ts2.TotalSeconds);
                    if (sdate < edate)//超时
                    {
                        return(1);
                    }
                }
            }
            return(0);
        }
Beispiel #7
0
 public int Node_Get_ALLNum(FlowNodeSearchViewModel flowNodeSearchViewModel)
 {
     return(_IFlowNodeRepository.GetNodeAll(flowNodeSearchViewModel).Count());
 }
        public IQueryable <Flow_Node> GetNodeAll(FlowNodeSearchViewModel flowNodeSearchViewModel)
        {
            var predicate = SearchNodeWhere(flowNodeSearchViewModel);

            return(DbSet.Where(predicate));
        }
Beispiel #9
0
        public ActionResult <FlowNodeSearchResModel> Manage_CurrentNodeOverTime_Search(FlowNodeSearchViewModel flowNodeSearchViewModel)
        {
            FlowNodeSearchResModel flowNodeSearchResModel = new FlowNodeSearchResModel();

            int temp = _IWorkFlowService.CurrentNodeOverTimeSearch(flowNodeSearchViewModel);

            if (temp == 1)
            {
                flowNodeSearchResModel.isSuccess                  = true;
                flowNodeSearchResModel.baseViewModel.Message      = "查询成功,当前流程已超时";
                flowNodeSearchResModel.baseViewModel.ResponseCode = 200;
                _ILogger.Information("查询成功,当前流程已超时");
                return(Ok(temp));
            }
            else
            {
                flowNodeSearchResModel.isSuccess                  = false;
                flowNodeSearchResModel.baseViewModel.Message      = "查询成功,当前流程未超时";
                flowNodeSearchResModel.baseViewModel.ResponseCode = 200;
                _ILogger.Information("查询成功,当前流程未超时");
                return(Ok(temp));
            }
        }
Beispiel #10
0
        /// <summary>
        /// 根据节点查用户列表
        /// </summary>
        /// <param name="roleByNodeSearchViewModel"></param>
        /// <returns></returns>
        public List <UserSearchMiddlecs> User_By_Node_Search(RoleByNodeSearchViewModel roleByNodeSearchViewModel)
        {
            List <Flow_Relate_NodeRole> node_Relate_Info_Roles = _IRelateRoleByNodeRepository.SearchRoleInfoByWhere(roleByNodeSearchViewModel);
            List <int> RoleList = new List <int>();

            for (int i = 0; i < node_Relate_Info_Roles.Count; i++)
            {
                int User_RoleId = node_Relate_Info_Roles[i].User_RoleId;
                RoleList.Add(User_RoleId);
            }

            /***********************查询当前节点处理人的上一步处理人**************************/

            FlowNodeSearchViewModel flowNodeSearchViewModel = new FlowNodeSearchViewModel();

            if (roleByNodeSearchViewModel.Repair_InfoId != null)
            {
                flowNodeSearchViewModel.Repair_InfoId = roleByNodeSearchViewModel.Repair_InfoId.Value;
            }
            flowNodeSearchViewModel.operate = "1";
            if (roleByNodeSearchViewModel.user_InfoId != null)
            {
                flowNodeSearchViewModel.User_InfoId = roleByNodeSearchViewModel.user_InfoId.Value;
            }
            flowNodeSearchViewModel.status    = "0";
            flowNodeSearchViewModel.isHandler = roleByNodeSearchViewModel.isHandler;
            flowNodeSearchViewModel.pageViewModel.CurrentPageNum = 0;
            flowNodeSearchViewModel.pageViewModel.PageSize       = 99;
            List <Flow_Node> node_Infos = _IFlowNodeRepository.SearchInfoByNodeWhere(flowNodeSearchViewModel);

            /***********************查询当前节点处理人的上一步处理人**************************/


            //FlowNodeKeepSearchViewModel flowNodeKeepSearchViewModel = new FlowNodeKeepSearchViewModel();
            //flowNodeKeepSearchViewModel.Repair_InfoId = roleByNodeSearchViewModel.Repair_InfoId.Value;
            //flowNodeKeepSearchViewModel.Flow_NodeDefineId = roleByNodeSearchViewModel.Flow_NodeDefineId;
            //flowNodeKeepSearchViewModel.Flow_NextNodeDefineId = roleByNodeSearchViewModel.Flow_NextNodeDefineId;
            //List<Flow_Node> node_Infos4 = _IFlowNodeRepository.SearchInfoByNode2Where(flowNodeKeepSearchViewModel);



            /***********************查询当前表单ID查询拟文处理人**************************/
            FlowNodeNiWenSearchViewModel flowNodeNiWenSearchViewModel = new FlowNodeNiWenSearchViewModel();

            flowNodeNiWenSearchViewModel.Repair_InfoId = roleByNodeSearchViewModel.Repair_InfoId.Value;
            List <Flow_Node> node_Infos2 = _IFlowNodeRepository.SearchInfoNiWenWhere(flowNodeNiWenSearchViewModel);


            flowNodeNiWenSearchViewModel.Parent_Flow_NodeDefineId = node_Infos2[0].Flow_NodeDefineId;
            List <Flow_Node> node_Infos3 = _IFlowNodeRepository.SearchInfoNiWenWhere(flowNodeNiWenSearchViewModel);
            /*************************查询当前表单ID查询拟文处理人************************/
            int userId2 = node_Infos3[0].User_InfoId.Value;


            int userId = node_Infos[0].Pre_User_InfoId.Value;
            // int userId = node_Infos4[0].User_InfoId.Value;
            int departId = roleByNodeSearchViewModel.departId.Value;

            string nodeType = roleByNodeSearchViewModel.NodeKeep;


            List <User_Info> user_Relate_Info_Users = _IUserRelateInfoRoleRepository.SearchUserInfoByListWhere(RoleList);

            List <UserSearchMiddlecs> userSearchMiddlecs = new List <UserSearchMiddlecs>();
            var userLsit_Info = _IMapper.Map <List <User_Info>, List <UserSearchMiddlecs> >(user_Relate_Info_Users);

            if (nodeType == "部门保持")
            {
                for (int i = 0; i < userLsit_Info.Count; i++)
                {
                    if (userLsit_Info[i].user_DepartId == departId)
                    {
                        userSearchMiddlecs.Add(userLsit_Info[i]);
                    }
                }
            }
            else if (nodeType == "用户保持")
            {
                for (int i = 0; i < userLsit_Info.Count; i++)
                {
                    if (userLsit_Info[i].id == userId)
                    {
                        userSearchMiddlecs.Add(userLsit_Info[i]);
                    }
                }
            }
            else if (nodeType == "拟文保持")
            {
                for (int i = 0; i < userLsit_Info.Count; i++)
                {
                    if (userLsit_Info[i].id == userId2)
                    {
                        userSearchMiddlecs.Add(userLsit_Info[i]);
                    }
                }
            }
            else
            {
                userSearchMiddlecs = userLsit_Info; //无任何保持
            }
            return(userSearchMiddlecs);
        }