using Tiger.Model; using SqlSugar; using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; using Rhea.Common; using System.Net; using System.Linq; using Newtonsoft.Json; namespace Tiger.Business { public partial class Biz { /// /// 获取所有组织机构列表 /// /// public async Task getOrgTreeList(string orgName, string status) { var data = new List(); SYS_ORGANIZATION func = null; if (!string.IsNullOrEmpty(orgName)) { func = Biz.Db.Queryable().Where(x=>x.ORG_NAME == orgName).First(); } var items = await Biz.Db.Queryable() .WhereIF(!string.IsNullOrEmpty(status),q=>q.STATUS == Convert.ToInt32(status)) .OrderBy(x => x.SEQ_NO) .Distinct().ToListAsync(); //没有查询的时候 if (func == null) { List entities = items.OrderBy(x => x.SEQ_NO).ToList().FindAll(t => t.PARENT.IsNullOrEmpty()); foreach (var item in entities) { OrgItem deptItem = new(); deptItem.id = item.ID; deptItem.deptCode = item.ORG_CODE; deptItem.deptName = item.ORG_NAME; deptItem.PARENT = item.PARENT; deptItem.createTime = item.CREATE_TIME.ToString("yyyy-MM-dd mm:dd:ss"); deptItem.status = item.STATUS; deptItem.remark = item.REMARK; deptItem.orderNo= item.SEQ_NO; deptItem.children = new(); deptItem.DefaultApi = item.DEFAULTAPI; GetOrgItem(items, item.ORG_CODE, ref deptItem); data.Add(deptItem); } } //有查询条件的时候 else { } //string where = page.sqlcmd; //action.Data = isAsync ? await Db.Queryable().Where(where).ToPageAsync(page.pageIndex, page.pageSize) : Db.Queryable().Where(where).ToPage(page.pageIndex, page.pageSize); //action.Data.draw = page.draw; //action.Message = $"Query {typeof(T).Name} entity page from database success"; //转换Json时,去除值为null的属性 var jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; var json = JsonConvert.SerializeObject(data, Formatting.Indented, jsonSetting); return json; } /// /// 递归返回组织机构 /// /// /// /// private static void GetOrgItem(List data, string parent, ref OrgItem pOrgItem) { List entities = data.OrderBy(x => x.SEQ_NO).ToList().FindAll(t => t.PARENT == parent).Distinct().ToList(); if (entities.Count > 0) { foreach (var item in entities) { OrgItem deptItem = new(); deptItem.id = item.ID; deptItem.deptCode = item.ORG_CODE; deptItem.deptName = item.ORG_NAME; deptItem.PARENT = item.PARENT; deptItem.createTime = item.CREATE_TIME.ToString("yyyy-MM-dd mm:dd:ss"); deptItem.status = item.STATUS; deptItem.remark = item.REMARK; deptItem.orderNo = item.SEQ_NO; deptItem.children = new(); deptItem.DefaultApi = item.DEFAULTAPI; GetOrgItem(data, item.ORG_CODE, ref deptItem); pOrgItem.children.Add(deptItem); } } } public async Task getProdTreeList(string prodName) { var data = new List(); MES_FACTORY func = null; if (!string.IsNullOrEmpty(prodName)) { func = Biz.Db.Queryable().Where(x => x.FTY_CODE == prodName).First(); } var items = await Biz.Db.Queryable() .Distinct().ToListAsync(); //没有查询的时候 if (func == null) { int i = 0; foreach (var item in items) { OrgItem deptItem = new(); deptItem.id = item.ID; deptItem.deptCode = item.FTY_CODE; deptItem.deptName = item.FTY_NAME; deptItem.PARENT = ""; deptItem.createTime = item.CREATE_TIME.ToString("yyyy-MM-dd mm:dd:ss"); deptItem.status = 0; deptItem.remark = item.REMARK; deptItem.orderNo = i++; deptItem.children = new(); deptItem.DefaultApi = ""; data.Add(deptItem); } } //有查询条件的时候 else { } //string where = page.sqlcmd; //action.Data = isAsync ? await Db.Queryable().Where(where).ToPageAsync(page.pageIndex, page.pageSize) : Db.Queryable().Where(where).ToPage(page.pageIndex, page.pageSize); //action.Data.draw = page.draw; //action.Message = $"Query {typeof(T).Name} entity page from database success"; //转换Json时,去除值为null的属性 var jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; var json = JsonConvert.SerializeObject(data, Formatting.Indented, jsonSetting); return json; } } /// /// 部门树形列表 /// public class OrgItem { public List children { get; set; } public int? status { get; set; } public string PARENT { get; set; } public string deptCode { get; set; } public string deptName { get; set; } public string createTime { get; set; } public int? orderNo { get; set; } public string remark { get; set; } public string id { get; set; } public string DefaultApi { get; set; } } }