123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
- using Ropin.Inspection.Common;
- using Ropin.Inspection.Model.Entities;
- using Ropin.Inspection.Model.ViewModel;
- using Ropin.Inspection.Repository.Interface;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Ropin.Inspection.Repository
- {
- public class TsysOrganizeRepository : RepositoryBase<TSYS_Org, Guid>, ITsysOrganizeRepository
- {
- public TsysOrganizeRepository(InspectionDbContext dbContext) : base(dbContext)
- {
- }
- public int GetMaxKid()
- {
- //int iMax = from q in DbContext.TSYS_Org orderby q.K_ID descending select (q.K_ID); //DbContext.Database.SqlQuery("SELECT MAX(K_ID) From TSYS_Org");
- var table = DbContext.Database.SqlQuery("SELECT MAX(K_ID) From TSYS_Org");
- int iMax = Convert.ToInt32(table.Rows[0][0]) ;
- return iMax;
- }
- public async Task<List<TsysOrganizeTree>> GetListTreeAsync(string licenseTypeCode,string licenseCode, Guid? orgCode, string status)
- {
- //C_LicenseCode
- //MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("qRCode", "") };
- //string sql = "SELECT * From TSYS_Org";
- //List<TsysOrganizeViewModel> model = EntityFrameworkCoreExtensions.GetList<TsysOrganizeViewModel>(DbContext.Database, sql, parameters).ToList();
- //var v = DbContext.TSYS_Org.ToList();
- if (string.IsNullOrEmpty(licenseTypeCode))
- throw new Exception("没有许可证");
- IEnumerable<TSYS_Org> orgs = null;
- //if (licenseCode.StartsWith("SYSTEM"))
- if (licenseTypeCode == TsysLicenseType.SYSTEM)
- orgs = this.GetAll();
- else
- orgs = await this.GetByConditionAsync(a => a.C_LicenseCode == licenseCode);
- //IEnumerable<TSYS_Org> orgs = await this.GetByConditionAsync(a => a.C_LicenseCode == licenseCode); //.GetAll().ToList();
- List<TSYS_Org> list = null;
- var treeList = new List<TsysOrganizeTree>();
- if(status!=null)
- list = orgs.Where(i=>i.C_Status ==status).ToList();
- else
- list = orgs.ToList();
- if (Guid.Empty.Equals(orgCode) || orgCode == null|| licenseCode.StartsWith("SYSTEM"))
- {
- foreach (var item in list.Where(m => m.C_ParentCode == null).OrderBy(m => m.I_Sort)) //&& m.C_Status == "1"
- {
- //获得子级
- var children = RecursionOrganize(list, new List<TsysOrganizeTree>(), item.C_Code);
- treeList.Add(new TsysOrganizeTree()
- {
- K_ID = item.K_ID,
- C_LicenseCode = item.C_LicenseCode,
- //C_LicenseName = item.C_LicenseName,
- C_Code = item.C_Code,
- C_Name = item.C_Name,
- C_SName = item.C_SName,
- C_LName = item.C_LName,
- C_Level = item.C_Level,
- C_ParentCode = item.C_ParentCode,
- C_Type = item.C_Type,
- C_Phone = item.C_Phone,
- C_Linker = item.C_Linker,
- C_GIS = item.C_GIS,
- I_Sort = item.I_Sort,
- C_Remark = item.C_Remark,
- C_CreateBy = item.C_CreateBy,
- D_CreateOn = item.D_CreateOn,
- C_LastUpdatedBy = item.C_LastUpdatedBy,
- D_LastUpdatedOn = item.D_LastUpdatedOn,
- C_Status = item.C_Status,
- Open = children.Count > 0,
- Children = children.Count == 0 ? null : children
- });
- }
- }
- else
- {
- foreach (var item in list.Where(m => m.C_Code.Equals(orgCode) && m.C_Status == "1").OrderBy(m => m.I_Sort))
- {
- //获得子级
- var children = RecursionOrganize(list, new List<TsysOrganizeTree>(), orgCode);
- treeList.Add(new TsysOrganizeTree()
- {
- K_ID = item.K_ID,
- C_LicenseCode = item.C_LicenseCode,
- C_Code = item.C_Code,
- C_Name = item.C_Name,
- C_SName = item.C_SName,
- C_LName = item.C_LName,
- C_Level = item.C_Level,
- C_ParentCode = item.C_ParentCode,
- C_Type = item.C_Type,
- C_Phone = item.C_Phone,
- C_Linker = item.C_Linker,
- C_GIS = item.C_GIS,
- I_Sort = item.I_Sort,
- C_Remark = item.C_Remark,
- C_CreateBy = item.C_CreateBy,
- D_CreateOn = item.D_CreateOn,
- C_LastUpdatedBy = item.C_LastUpdatedBy,
- D_LastUpdatedOn = item.D_LastUpdatedOn,
- C_Status = item.C_Status,
- Open = children.Count > 0,
- Children = children.Count == 0 ? null : children
- });
- }
- }
- return await Task.Run(() => treeList);
- }
- public async Task<TsysOrg> GetOrgsByAsync(string licenseCode)
- {
- if (string.IsNullOrEmpty(licenseCode))
- throw new Exception("没有许可证");
- IEnumerable<TSYS_Org> orgs = null;
- if ("SYSTEM_001" == licenseCode)
- orgs = this.GetAll();
- else
- orgs = await this.GetByConditionAsync(a => a.C_LicenseCode == licenseCode); //.GetAll().ToList();
- List<TSYS_Org> list = orgs.ToList();
- TsysOrg tysOrg = new TsysOrg();
- tysOrg.OwnerOrgList = await GetOrganizeByTypeAsync(list, "PARTY_TYPE_001");
- tysOrg.PlatformOrgList = await GetOrganizeByTypeAsync(list, "PARTY_TYPE_004");
- tysOrg.SuperviseOrgList = await GetOrganizeByTypeAsync(list, "PARTY_TYPE_002");
- tysOrg.SupplierOrgList = await GetOrganizeByTypeAsync(list, "PARTY_TYPE_003");
- return await Task.Run(() => tysOrg);
- }
- async Task<List<TsysOrganizeTree>> GetOrganizeByTypeAsync(List<TSYS_Org> list,string type)
- {
- var treeList = new List<TsysOrganizeTree>();
- foreach (var item in list.Where(m => m.C_ParentCode == null && m.C_Type == type).OrderBy(m => m.I_Sort))
- {
- //获得子级
- var children = RecursionOrganize(list, new List<TsysOrganizeTree>(), item.C_Code);
- treeList.Add(new TsysOrganizeTree()
- {
- K_ID = item.K_ID,
- C_LicenseCode = item.C_LicenseCode,
- C_Code = item.C_Code,
- C_Name = item.C_Name,
- C_SName = item.C_SName,
- C_LName = item.C_LName,
- C_Level = item.C_Level,
- C_ParentCode = item.C_ParentCode,
- C_Type = item.C_Type,
- C_Phone = item.C_Phone,
- C_Linker = item.C_Linker,
- C_GIS = item.C_GIS,
- I_Sort = item.I_Sort,
- C_Remark = item.C_Remark,
- C_CreateBy = item.C_CreateBy,
- D_CreateOn = item.D_CreateOn,
- C_LastUpdatedBy = item.C_LastUpdatedBy,
- D_LastUpdatedOn = item.D_LastUpdatedOn,
- C_Status = item.C_Status,
- Open = children.Count > 0,
- Children = children.Count == 0 ? null : children
- });
- }
- return await Task.Run(() => treeList);
- }
- public async Task<List<TsysOrganizeTree>> GetByOrganizeCodeAsync(Guid id)
- {
- List<TSYS_Org> list = this.GetAll().ToList().OrderBy(m => m.I_Sort).ToList();
- var treeList = new List<TsysOrganizeTree>();
- var item = list.Where(m => m.C_ParentCode.Equals(id)).FirstOrDefault(); //&& m.C_Status == "1"
- if (item != null)
- {
- //获得子级
- var children = RecursionOrganize(list, new List<TsysOrganizeTree>(), item.C_Code);
- treeList.Add(new TsysOrganizeTree()
- {
- K_ID = item.K_ID,
- C_LicenseCode = item.C_LicenseCode,
- C_Code = item.C_Code,
- C_Name = item.C_Name,
- C_SName = item.C_SName,
- C_LName = item.C_LName,
- C_Level = item.C_Level,
- C_ParentCode = item.C_ParentCode,
- C_Type = item.C_Type,
- C_Phone = item.C_Phone,
- C_Linker = item.C_Linker,
- C_GIS = item.C_GIS,
- I_Sort = item.I_Sort,
- C_Remark = item.C_Remark,
- C_CreateBy = item.C_CreateBy,
- D_CreateOn = item.D_CreateOn,
- C_LastUpdatedBy = item.C_LastUpdatedBy,
- D_LastUpdatedOn = item.D_LastUpdatedOn,
- C_Status = item.C_Status,
- Open = children.Count > 0,
- Children = children.Count == 0 ? null : children
- });
- }
- return await Task.Run(() => treeList);
- }
- List<TsysOrganizeTree> RecursionOrganize(List<TSYS_Org> sourceList, List<TsysOrganizeTree> list, Guid? guid)
- {
- foreach (var row in sourceList.Where(m => m.C_ParentCode.Equals(guid) ).OrderBy(m => m.I_Sort))// && m.C_Status == "1"
- {
- var res = RecursionOrganize(sourceList, new List<TsysOrganizeTree>(), row.C_Code);
- list.Add(new TsysOrganizeTree()
- {
- K_ID = row.K_ID,
- C_LicenseCode = row.C_LicenseCode,
- C_Code = row.C_Code,
- C_Name = row.C_Name,
- C_SName = row.C_SName,
- C_LName = row.C_LName,
- C_Level = row.C_Level,
- C_ParentCode = row.C_ParentCode,
- C_Type = row.C_Type,
- C_Phone = row.C_Phone,
- C_Linker = row.C_Linker,
- C_GIS = row.C_GIS,
- I_Sort = row.I_Sort,
- C_Remark = row.C_Remark,
- C_CreateBy = row.C_CreateBy,
- D_CreateOn = row.D_CreateOn,
- C_LastUpdatedBy = row.C_LastUpdatedBy,
- D_LastUpdatedOn = row.D_LastUpdatedOn,
- C_Status = row.C_Status,
- Open = res.Count > 0,
- Children = res.Count > 0 ? res : null
- });
- }
- return list;
- }
- }
- }
|