Exemple #1
0
        /// <summary>
        /// 【具体业务根据需要重写】工作流审批 任务节点 返回执行人 - 默认返回为工作流角色设置中的用户列表
        /// </summary>
        /// <param name="line"></param>
        /// <returns></returns>
        public virtual List <ICommunicationable> DoWorkFlowGetTaskUserList(WorkFlowDefLineDetail line)
        {
            var workflowRole = WorkFlowRole.GetInstance(line.ToStep.WorkFlowRoleId);
            var userIds      = workflowRole.GetDescripUserId();
            BaseResponseList <UserManager> userManagers = UserManager.searchList(new UserManagerSearchRequest()
            {
                cId = new BaseBatchRequest <string>()
                {
                    rows = userIds
                },
                page = 0
            });
            List <ICommunicationable> result = new List <ICommunicationable>();

            if (userManagers.rows != null)
            {
                if (userManagers.rows.Count > 0)
                {
                    foreach (var item in userManagers.rows)
                    {
                        result.Add(item);
                    }
                }
            }
            return(result);
        }
        public static List <AccountInformation> GetAvailableUsers(string username, int requesterID)
        {
            NameValueCollection postParams = new NameValueCollection();

            postParams.Add("username", username);
            postParams.Add("id", requesterID.ToString());

            string data = SendData(baseUrl + "list", postParams);
            BaseResponseList <AccountInformation> users = null;

            try
            {
                users = JsonConvert.DeserializeObject <BaseResponseList <AccountInformation> >(data);
            }
            catch (Exception ex)
            {
                Console.WriteLine("An error occured while parsing received JSON data: " + ex.Message);
            }

            if (users.Status != 200)
            {
                Console.WriteLine(users.ErrorMessage);
                return(null);
            }

            return(users.Data);
        }
Exemple #3
0
        /// <summary>
        /// 检索系统异常日志
        /// </summary>
        /// <param name="condtion"></param>
        /// <returns></returns>
        public static BaseResponseList <ExceptionLog> searchList(ExceptionLogSearchRequest condtion)
        {
            BaseResponseList <ExceptionLog> result = new BaseResponseList <ExceptionLog>();
            DateTime?endDate = null;

            if (condtion.endDate != null)
            {
                endDate = DateTime.Parse(string.Format("{0} 23:59:59", condtion.endDate.Value.Date.ToString("yyyy-MM-dd")));
            }
            DateTime?beginDate = null;

            if (condtion.beginDate != null)
            {
                beginDate = condtion.beginDate.Value.Date;
            }
            using (var db = new DefaultContainer()) {
                var rows = (from c in db.Db_BaseLogSet.OfType <Db_ExceptionLog>()
                            where (1 == 1) &&
                            (string.IsNullOrEmpty(condtion.code) ? true : c.code == condtion.code) &&
                            (beginDate == null ? true : c.createdOn >= beginDate) &&
                            (endDate == null ? true : c.createdOn <= endDate)
                            select c);
                result.total = rows.Count();
                if (result.total > 0 && condtion.getRows)
                {
                    rows = rows.OrderByDescending(p => p.createdOn);
                    if (condtion.page > 0)
                    {
                        rows = rows.Skip(condtion.getSkip()).Take(condtion.pageSize);
                    }
                    result.rows = rows.AsEnumerable().Select(p => new ExceptionLog(p)).ToList();
                }
            }
            return(result);
        }
Exemple #4
0
        public BaseResponse <BaseResponseList <BaseTree> > GetBaseTreeRootsList()
        {
            BaseResponseList <BaseTree> result = new BaseResponseList <BaseTree>();

            result.rows = BaseTree.GetBaseTreeRoots();
            if (result.rows.Count > 0)
            {
                foreach (var row in result.rows)
                {
                    row.GetBaseTreeChilderns();
                }
            }
            result.total = result.rows.Count;
            return(BaseResponse.getResult(result));
        }
Exemple #5
0
        /// <summary>
        /// 获取我的请假申请列表
        /// </summary>
        /// <param name="userId">用户的ID</param>
        /// <param name="condtion"></param>
        /// <returns></returns>
        public static BaseResponseList <LeaveInfo> SearchMyLeavesList(string userId, BaseRequest condtion)
        {
            BaseResponseList <LeaveInfo> result = new BaseResponseList <LeaveInfo>();

            using (var db = new DefaultContainer()) {
                var rows = (from c in db.Db_BaseWorkOrderSet.OfType <Db_OA_Leave>() where c.UserId == userId select c);
                result.total = rows.Count();
                if (result.total > 0 && condtion.getRows)
                {
                    result.rows = rows.OrderByDescending(p => p.CreatedOn).Skip(condtion.getSkip()).Take(condtion.pageSize).AsEnumerable().Select(p => new LeaveInfo(p)).ToList();
                }
            }

            return(result);
        }
        public static List <RequestInformation> GetAvailableRequests(int accountId)
        {
            string data = SendData(baseUrl + accountId + "/requests", null);
            BaseResponseList <RequestInformation> requests = null;

            try
            {
                requests = JsonConvert.DeserializeObject <BaseResponseList <RequestInformation> >(data);
            }
            catch (Exception ex)
            {
                Console.WriteLine("An error occurred while parsing received requets JSON data: " + ex.Message);
            }

            return(requests.Data);
        }
Exemple #7
0
        /// <summary>
        /// 检索工单信息
        /// </summary>
        /// <param name="condtion"></param>
        /// <returns></returns>
        public static BaseResponseList <BaseWorkOrderListDetail> SearchBaseWorkOrderList(BaseWorkOrderSearchRequest condtion)
        {
            BaseResponseList <BaseWorkOrderListDetail> result = new BaseResponseList <BaseWorkOrderListDetail>();

            using (var db = new DefaultContainer())
            {
                //指定用户作为查询条件
                List <string> usersOrderId = new List <string>();
                if (!string.IsNullOrEmpty(condtion.TaskUserId))
                {
                    //返回最多200调已审核或者待审记录
                    usersOrderId = (from u in db.Db_BaseWorkOrderTaskUserSet
                                    join o in db.Db_BaseWorkOrderSet on u.Db_BaseWorkOrderId equals o.Id
                                    where u.UserId == condtion.TaskUserId &&
                                    (condtion.TaskUserConfirmType == WorkOrderUserConfirmType.已审 ? u.IsConfirm == true : (u.IsConfirm == false && u.Db_WorkFlowDefStepId == o.WorkFlowBookMarkId && o.OrderStatus == (byte)WorkOrderStatus.执行中))
                                    group new { u.Db_BaseWorkOrderId, u.CreatedOn } by new { u.Db_BaseWorkOrderId, u.CreatedOn } into g
                                    orderby g.Key.CreatedOn descending
                                    select g.Key.Db_BaseWorkOrderId).Skip(0).Take(200).ToList();
                }
                var rows = (from c in db.Db_BaseWorkOrderSet
                            join d in db.Db_WorkFlowDefinitionSet on c.WorkFlowDefinitionId equals d.Id into temp
                            from x in temp.DefaultIfEmpty()
                            join s in db.Db_WorkFlowDefBaseUnitSet.OfType <Db_WorkFlowDefStep>() on c.WorkFlowBookMarkId equals s.Id into temp1 from step in temp1.DefaultIfEmpty()
                            where (string.IsNullOrEmpty(condtion.TaskUserId) ? true : usersOrderId.Contains(c.Id))
                            select new
                {
                    c,
                    x,
                    users = (from u in c.Db_BaseWorkOrderTaskUser where u.Db_WorkFlowDefStepId == c.WorkFlowBookMarkId select u),
                    step
                }
                            );
                result.total = rows.Count();
                if (condtion.getRows && result.total > 0)
                {
                    if (condtion.page > 0)
                    {
                        rows = rows.OrderByDescending(p => p.c.CreatedOn).Skip(condtion.getSkip()).Take(condtion.pageSize);
                    }

                    result.rows = rows.AsEnumerable().OrderByDescending(p => p.c.CreatedOn).Select(p => new BaseWorkOrderListDetail(p.c, p.x, p.users.ToList(), p.step)).ToList();
                }
            }

            return(result);
        }
Exemple #8
0
        /// <summary>
        /// 获取工作流角色列表
        /// </summary>
        /// <param name="condtion"></param>
        /// <returns></returns>
        public static BaseResponseList <WorkFlowRole> GetRolsList(BaseRequest condtion)
        {
            BaseResponseList <WorkFlowRole> result = new BaseResponseList <WorkFlowRole>();

            using (var db = new DefaultContainer()) {
                var rows = (from c in db.Db_WorkFlowRoleSet.AsEnumerable() select c);
                result.total = rows.Count();
                if (condtion.getRows && result.total > 0)
                {
                    if (condtion.page > 1)
                    {
                        rows = rows.OrderByDescending(p => p.CreatedOn).Skip(condtion.getSkip()).Take(condtion.pageSize);
                    }

                    result.rows = rows.Select(p => new WorkFlowRole(p)).ToList();
                }
            }
            return(result);
        }
Exemple #9
0
        /// <summary>
        /// 检索系统日志
        /// </summary>
        /// <param name="condtion"></param>
        /// <returns></returns>
        public static BaseResponseList <BaseLog> searchList(BaseLogSearchReqeust condtion)
        {
            BaseResponseList <BaseLog> result = new BaseResponseList <BaseLog>();

            using (var db = new DefaultContainer()) {
                DateTime?endDate = null;
                if (condtion.endDate != null)
                {
                    endDate = DateTime.Parse(string.Format("{0} 23:59:59", condtion.endDate.Value.Date.ToString("yyyy-MM-dd")));
                }
                DateTime?beginDate = null;
                if (condtion.beginDate != null)
                {
                    beginDate = condtion.beginDate.Value.Date;
                }
                List <byte> types = new List <byte>();
                if (condtion.types != null)
                {
                    if (condtion.types.Count > 0)
                    {
                        types = condtion.types.Select(p => (byte)p).ToList();
                    }
                }
                var rows = (from c in db.Db_BaseLogSet
                            where (1 == 1) &&
                            (types.Count == 0 ? true : types.Contains(c.logType)) &&
                            (beginDate == null ? true : c.createdOn >= beginDate) &&
                            (endDate == null ? true : c.createdOn <= endDate)
                            select c);
                result.total = rows.Count();
                if (result.total > 0 && condtion.getRows)
                {
                    rows = rows.OrderByDescending(p => p.createdOn);
                    if (condtion.page > 0)
                    {
                        rows = rows.Skip(condtion.getSkip()).Take(condtion.pageSize);
                    }
                    result.rows = rows.AsEnumerable().Select(p => new BaseLog(p)).ToList();
                }
            }
            return(result);
        }
Exemple #10
0
        /// <summary>
        /// 检索基础文档列表
        /// </summary>
        /// <param name="condtion"></param>
        /// <returns></returns>
        public static BaseResponseList <BaseDocDetailList> SearchBaseDocList(BaseDocSerarchRequest condtion)
        {
            BaseResponseList <BaseDocDetailList> result = new BaseResponseList <BaseDocDetailList>();

            List <string> treeId = new List <string>();

            if (condtion.TreeId != null)
            {
                if (condtion.TreeId.Count > 0)
                {
                    var t = condtion.TreeId.Where(p => !string.IsNullOrEmpty(p)).ToList();
                    if (t.Count > 0)
                    {
                        treeId = t;
                    }
                }
            }

            using (var db = new DefaultContainer()) {
                var rows = (from c in db.Db_BaseDocSet
                            where c.IsDeleted == false &&
                            (treeId.Count == 0 ? true:treeId.Intersect(c.Db_BaseDocTree.Select(p => p.TreeId)).Count() > 0) &&
                            (string.IsNullOrEmpty(condtion.q) ? true : c.Caption.Contains(condtion.q))
                            orderby c.CreatedOn descending
                            select new
                {
                    row = c,
                    tree = (from t in db.Db_BaseTreeSet where c.Db_BaseDocTree.Select(p => p.TreeId).Contains(t.Id) select t)
                }
                            );
                result.total = rows.Count();
                if (result.total > 0 && condtion.getRows)
                {
                    var rowsList = rows.Skip(condtion.getSkip()).Take(condtion.pageSize).AsEnumerable().Select(p => new BaseDocDetailList(p.row, p.tree.ToList())).ToList();
                    result.rows = rowsList;
                }
            }

            return(result);
        }
Exemple #11
0
        /// <summary>
        /// 检索后台用户列表
        /// </summary>
        /// <param name="condtion"></param>
        /// <returns></returns>
        public static BaseResponseList <UserManager> searchList(UserManagerSearchRequest condtion)
        {
            BaseResponseList <UserManager> result = new BaseResponseList <UserManager>();

            List <string> wId = new List <string>();

            if (condtion.wId != null)
            {
                if (condtion.wId.rows != null)
                {
                    wId = condtion.wId.rows;
                }
            }

            using (var db = new DefaultContainer()) {
                var rows = (from c in db.Db_BaseUserSet.OfType <Db_ManagerUser>().AsEnumerable()
                            where (c.isDeleted == false) &&
                            (string.IsNullOrEmpty(condtion.q) ? true : (c.fullName.Contains(condtion.q) || (string.IsNullOrEmpty(c.mobilePhone) ? false : c.mobilePhone.Contains(condtion.q)) || (c.loginName.Contains(condtion.q)))) &&
                            (string.IsNullOrEmpty(condtion.role) ? true : (c.Db_BaseUserRole.Select(x => x.roleName).Contains(condtion.role))) &&
                            (condtion.cId.rows == null ? true : condtion.cId.rows.Contains(c.Id)) &&
                            (wId.Count == 0 ? true : !condtion.wId.rows.Contains(c.Id))
                            select c
                            );
                result.total = rows.Count();
                if (result.total > 0 && condtion.getRows)
                {
                    rows = rows.OrderByDescending(p => p.createdOn);
                    if (condtion.page > 0)
                    {
                        rows = rows.Skip(condtion.getSkip()).Take(condtion.pageSize);
                    }
                    result.rows = rows.Select(p => new UserManager(p)).ToList();
                }
            }

            return(result);
        }