/// <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); }
/// <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); }
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)); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }