TemplatePro/BZPT.Domains/Services/Sys/ProjectInfoService.cs

808 lines
35 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/***********************************************************
**项目名称: BZPT.IServices
**功能描述: CountryServices 的摘要说明
**作 者: 此代码由CodeSmith生成。
**版 本 号: 1.0
**修改历史:
************************************************************/
namespace BZPT.Domains.Services.Sys
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Net;
using System.Security.Claims;
using System.Threading.Tasks;
using System.Xml.Linq;
using BZPT.Domains.Entity.Sys;
using BZPT.Domains.IRepositories;
using BZPT.Domains.IRepositories.Sys;
using BZPT.Domains.IService.Sys;
using BZPT.Dto.Sys;
using BZPT.Dto.VO;
using BZPT.DTO.Const;
using Consul;
using DevExtreme.AspNet.Data;
using Dm.util;
using IdentityServer4.Models;
using IdentityServer4.Test;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Caching.Memory;
using NPlatform;
using NPlatform.Domains.Entity;
using NPlatform.Dto;
using NPlatform.Infrastructure.Redis;
using NPlatform.Result;
using NPOI.POIFS.Properties;
using NPOI.SS.Formula.Functions;
using ServiceStack;
using SqlSugar;
using ZstdSharp.Unsafe;
/// <summary>
/// ProjectInfo 业务层
/// </summary>
public partial class ProjectInfoService : SugarServiceBase<ProjectInfo, ProjectInfoDto>, IProjectInfoService
{
public ILogger<ProjectInfoService> Loger { get; set; }
[Autowired]
public IProjectInfoRepository _ProjectInfoRepository { get; set; }
public IUnitOfWorkSugar unitOfOfWork { get; set; }
public Task CacheAllProjects()
{
throw new NotImplementedException();
}
public Task<INPResult> GetOrgProjectTree(string setOrg, int leve)
{
throw new NotImplementedException();
}
public Task<INPResult> GetProjectTree(string setOrg, int leve = 3)
{
throw new NotImplementedException();
}
//public Task<IListResult<UserVO>> GetProUserPage(string proId, DataSourceLoadOptions whereExp)
//{
// throw new NotImplementedException();
//}
public Task<INPResult> GetUserProjectTree(string setRole, int leve = 3)
{
throw new NotImplementedException();
}
public Task<INPResult> ProjectInfoAdd(ProjectInfoDto addCommand)
{
throw new NotImplementedException();
}
public Task<INPResult> ProjectInfoEdit(ProjectInfoDto editCommand)
{
throw new NotImplementedException();
}
//public Task<INPResult> ProjectUserAdd(ProjectUserDto proUser)
//{
// throw new NotImplementedException();
//}
//public Task<INPResult> UserProjectGrant(GrantProSectionInput grants)
//{
// throw new NotImplementedException();
//}
//[Autowired]
//public IUserService userService { get; set; }
//[Autowired]
//public IUserProjectRepository _userProjectRsp{ get; set; }
//[Autowired]
//public IOrganizationProjectRepository _OrgProjectRep { get; set; }
//public ProjectInfoService(
// ILogger<ProjectInfoService> loger, IUnitOfWorkSugar unitOf)
//{
// Loger = loger;
// this.unitOfOfWork = unitOf;
//}
//private static readonly SemaphoreSlim semaphore = new SemaphoreSlim(1, 1);
//[Autowired]
//private IRedisService _redisService { get; set; }
//public async Task CacheAllProjects()
//{
// var pros = await Repository.GetAllAsync();
// pros = pros.Where(t=> !t.IsDeleted);
// //删除该字典的缓存,让缓存重新加载。
// await this._redisService.GlobalHashDeleteAsync(CacheKeyBZPT.CACHE_PROJECT_ALL);
// foreach (var pro in pros)
// {
// await semaphore.WaitAsync();
// try
// {
// var dto = MapperService.Map<ProjectInfo, ProjectInfoDto>(pro);
// // 将查询结果存入缓存
// await _redisService.GlobalHashSetAsync<ProjectInfoDto>(CacheKeyBZPT.CACHE_PROJECT_ALL, pro.Id, dto);
// }
// finally
// {
// semaphore.Release();
// }
// }
//}
//private string[] hasRight = new string[]{ "1", "2" };
//public async new Task<IListResult<ProjectInfoDto>> GetPageAsync(DataSourceLoadOptions dataSourceLoadOptions)
//{
// if(dataSourceLoadOptions.Sort==null|| dataSourceLoadOptions.Sort.Length==0)
// {
// dataSourceLoadOptions.Sort = new SortingInfo[]
// {
// new SortingInfo
// {
// Desc=true,
// Selector="CreateTime"
// }
// };
// }
// dataSourceLoadOptions.And(new List<object>() { "IsDeleted", "=", false });
// var loginUser = this.Context.Account == "admin" ? "admin" : this.Context.UserID;
// var tmpPro = await _redisService.GlobalHashGetAllAsync<ProjectInfoDto>(CacheKeyBZPT.CACHE_PROJECT_ALL);
// var allProject = tmpPro.Values.ToList();
// if (loginUser != "admin")
// {
// var showPro = new string[] { "1", "2" };
// var rolePros = await this._userProjectRsp.GetListByExpAsync(t =>( loginUser== t.UserId&& showPro.Contains(t.Colum2) ));
// var allAuthIds = rolePros.Select(t => t.PId).ToList();
// allProject = allProject.Where(t => allAuthIds.Contains(t.Id) || t.CreateUserId == loginUser).ToList();
// }
// var rst = DataSourceLoader.Load(allProject, dataSourceLoadOptions);
// return new ListResult<ProjectInfoDto>(rst?.data?.Cast<ProjectInfoDto>(), rst.totalCount);
//}
//public async Task<INPResult> ProjectInfoAdd(ProjectInfoDto addCommand)
//{
// var vResult = addCommand.Validates();
// if (vResult.StatusCode == 200)
// {
// var ASId = StringObjectIdGenerator.Instance.GenerateId().ToString();
// // 检查是否已有相同名称
// var existingOrg = await _ProjectInfoRepository.GetByNameAsync(addCommand.AC002, null);
// if (existingOrg.Count() >= 1)
// {
// return Fail("名称已经存在,不能重复添加。", HttpStatusCode.BadRequest); // 返回中文错误信息
// }
// try
// {
// // 调用仓储的批量添加方法
// addCommand.Id = ASId;
// addCommand.CreateUser = Context.UserID;
// addCommand.CreateTime = DateTime.Now;
// addCommand.IsDeleted = false;
// var pro = MapperService.Map<ProjectInfo>(addCommand);
// pro.CreateUser = Context.UserID;
// var userRst = await Repository.AddsAsync(pro);
// await CacheAllProjects();
// return Success(userRst);
// }
// catch (Exception ex)
// {
// return Fail(ex);
// }
// }
// return vResult;
//}
//public async Task<INPResult> ProjectInfoEdit(ProjectInfoDto editCommand)
//{
// var vResult = editCommand.Validates();
// if (vResult.StatusCode == 200)
// {
// try
// {
// // 检查是否已有相同名称
// var existingOrg = await _ProjectInfoRepository.GetByNameAsync(editCommand.AC002, editCommand.Id);
// if (existingOrg.Count() >= 1)
// {
// return Fail("名称已经存在,不能修改为此项目名称。", HttpStatusCode.BadRequest); // 返回中文错误信息
// }
// try
// {
// // 调用仓储的批量修改方法
// var pro = MapperService.Map<ProjectInfo>(editCommand);
// var userRst = await Repository.UpdateAsync(pro);
// await CacheAllProjects();
// return Success(editCommand);
// }
// catch (Exception ex)
// {
// return Fail(ex);
// }
// }
// catch (ArgumentException ex)
// {
// return Fail(ex.Message);
// }
// }
// return vResult;
//}
//public async Task<INPResult> Delete(string id)
//{
// if (!string.IsNullOrEmpty(id))
// {
// var exitOrg=await this._OrgProjectRep.ExistsAsync(t=>t.ProjectID == id);
// var exitRole=await this._userProjectRsp.ExistsAsync(t=>t.PId == id);
// if(exitOrg||exitRole)
// {
// return Fail($"项目已被关联到相关{(exitOrg?"机构":"")}、{(exitRole ? "用户" : "")},无法禁用。");
// }
// var org = await this.Repository.GetFirstOrDefaultAsync(t => t.Id == id);
// org.IsDeleted = true;
// var rst = await this.Repository.UpdateAsync(org);
// await CacheAllProjects();
// return Success(rst);
// }
// return Fail("删除失败。");
//}
//public override string GetDomainShortName()
//{
// return "ProjectInfo";
//}
//List<SectionDto> allSectionDto = new List<SectionDto>();
//List<LaborTeamDto> alllaborTeamsDto = new List<LaborTeamDto>();
//List<WorkerGroupDto> allworkerGroupDtos = new List<WorkerGroupDto>();
//List<string> canSetPros = new List<string>();
//public async Task<INPResult> GetOrgProjectTree(string setOrg, int leve)
//{
// var loadAuth = (await this._OrgProjectRep.GetListByExpAsync(t => setOrg == t.OrganizationId)).Select(t => t.ProjectID).ToList();
// // 项目---》标段--》劳务队--》班组
// var tmpPro = await _redisService.GlobalHashGetAllAsync<ProjectInfoDto>(CacheKeyBZPT.CACHE_PROJECT_ALL);
// var allProject = tmpPro.Values.Where(t => t.IsDeleted == false).ToList();
// // 标段
// if (leve >= 1)
// {
// var tmp = await _redisService.GlobalHashGetAllAsync<SectionDto>(CacheKeyBZPT.CACHE_SECTION_ALL);
// allSectionDto = tmp.Values.Where(t => t.IsDeleted == false).ToList();
// }
// //获取劳务队
// if (leve >= 2)
// {
// var tmpTeam = await _redisService.GlobalHashGetAllAsync<LaborTeamDto>(CacheKeyBZPT.CACHE_LABORTEAM_ALL);
// alllaborTeamsDto = tmpTeam.Values.Where(t => t.IsDeleted == false).ToList();
// }
// // 获取班组
// if (leve >= 3)
// {
// var tmpgroups = await _redisService.GlobalHashGetAllAsync<WorkerGroupDto>(CacheKeyBZPT.CACHE_WORKERGROUP_ALL);
// allworkerGroupDtos = tmpgroups.Values.Where(t => t.IsDeleted == false).ToList();
// }
// var loginUser = this.Context.Account == "admin" ? "admin" : this.Context.UserID;
// if (loginUser != "admin")
// {
// var showPro = loadAuth;
// allProject = allProject.Where(t => showPro.Contains(t.Id) || t.CreateUser == loginUser).ToList();
// allSectionDto = allSectionDto.Where(t => showPro.Contains(t.Id) || t.CreateUser == loginUser).ToList();
// alllaborTeamsDto = alllaborTeamsDto.Where(t => showPro.Contains(t.Id) || t.CreateUser == loginUser).ToList();
// allworkerGroupDtos = allworkerGroupDtos.Where(t => showPro.Contains(t.Id) || t.CreateUser == loginUser).ToList();
// canSetPros = loadAuth;
// canSetPros.AddRange(allSectionDto.Where(t => t.CreateUser == loginUser).Select(t => t.Id).ToArray());
// canSetPros.AddRange(alllaborTeamsDto.Where(t => t.CreateUser == loginUser).Select(t => t.Id).ToArray());
// canSetPros.AddRange(allworkerGroupDtos.Where(t => t.CreateUser == loginUser).Select(t => t.Id).ToArray());
// }
// else
// {
// canSetPros.AddRange(allProject.Select(t => t.Id).ToArray());
// canSetPros.AddRange(allSectionDto.Select(t => t.Id).ToArray());
// canSetPros.AddRange(alllaborTeamsDto.Select(t => t.Id).ToArray());
// canSetPros.AddRange(allworkerGroupDtos.Select(t => t.Id).ToArray());
// }
// var listitems = await GetProjectTree(allProject, leve);
// return Success(new { TreeData = listitems, AuthIds = loadAuth });
//}
//public async Task<INPResult> GetUserProjectTree(string setUser, int leve = 3)
//{
// var loadAuth = (await this._userProjectRsp.GetListByExpAsync(t => setUser == t.UserId&& hasRight.Contains(t.Colum2))).Select(t => t.PId).ToList();
// // 项目---》标段--》劳务队--》班组
// var tmpPro = await _redisService.GlobalHashGetAllAsync<ProjectInfoDto>(CacheKeyBZPT.CACHE_PROJECT_ALL);
// var allProject = tmpPro.Values.Where(t => t.IsDeleted == false).ToList();
// // 标段
// if (leve >= 1)
// {
// var tmp = await _redisService.GlobalHashGetAllAsync<SectionDto>(CacheKeyBZPT.CACHE_SECTION_ALL);
// allSectionDto = tmp.Values.Where(t => t.IsDeleted == false).ToList();
// }
// //获取劳务队
// if (leve >= 2)
// {
// var tmpTeam = await _redisService.GlobalHashGetAllAsync<LaborTeamDto>(CacheKeyBZPT.CACHE_LABORTEAM_ALL);
// alllaborTeamsDto = tmpTeam.Values.Where(t => t.IsDeleted == false).ToList();
// }
// // 获取班组
// if (leve >= 3)
// {
// var tmpgroups = await _redisService.GlobalHashGetAllAsync<WorkerGroupDto>(CacheKeyBZPT.CACHE_WORKERGROUP_ALL);
// allworkerGroupDtos = tmpgroups.Values.Where(t => t.IsDeleted == false).ToList();
// }
// var loginUser = this.Context.Account == "admin" ? "admin" : this.Context.UserID;
// if (loginUser != "admin")
// {
// var showP =await this._userProjectRsp.GetListByExpAsync(t => loginUser == t.UserId);
// var showPro = showP.Select(t => t.PId).ToList();
// allProject = allProject.Where(t => showPro.Contains(t.Id) || t.CreateUser == loginUser).ToList();
// allSectionDto = allSectionDto.Where(t => showPro.Contains(t.Id) || t.CreateUser == loginUser).ToList();
// alllaborTeamsDto = alllaborTeamsDto.Where(t => showPro.Contains(t.Id) || t.CreateUser == loginUser).ToList();
// allworkerGroupDtos = allworkerGroupDtos.Where(t => showPro.Contains(t.Id) || t.CreateUser == loginUser).ToList();
// var canSetP = showP.Where(t => hasRight.Contains(t.Colum2));
// canSetPros = canSetP.Select(t => t.PId).ToList();
// canSetPros.AddRange(allSectionDto.Where(t => t.CreateUser == loginUser).Select(t => t.Id).ToArray());
// canSetPros.AddRange(alllaborTeamsDto.Where(t => t.CreateUser == loginUser).Select(t => t.Id).ToArray());
// canSetPros.AddRange(allworkerGroupDtos.Where(t => t.CreateUser == loginUser).Select(t => t.Id).ToArray());
// }
// else
// {
// canSetPros.AddRange(allProject.Select(t => t.Id).ToArray());
// canSetPros.AddRange(allSectionDto.Select(t => t.Id).ToArray());
// canSetPros.AddRange(alllaborTeamsDto.Select(t => t.Id).ToArray());
// canSetPros.AddRange(allworkerGroupDtos.Select(t => t.Id).ToArray());
// }
// var listitems = await GetProjectTree(allProject, leve);
// return Success(new { TreeData = listitems, AuthIds = loadAuth });
//}
////获取用户已授权的树,此树显示某个授权项目树,并返回节点是否有权限。
//public async Task<INPResult> GetProjectTree(string setUser, int leve)
//{
// // 项目---》标段--》劳务队--》班组
// var tmpPro = await _redisService.GlobalHashGetAllAsync<ProjectInfoDto>(CacheKeyBZPT.CACHE_PROJECT_ALL);
// var allProject = tmpPro.Values.Where(t => t.IsDeleted == false).ToList();
// // 标段
// if (leve >= 1)
// {
// var tmp = await _redisService.GlobalHashGetAllAsync<SectionDto>(CacheKeyBZPT.CACHE_SECTION_ALL);
// allSectionDto = tmp.Values.Where(t => t.IsDeleted == false).ToList();
// }
// //获取劳务队
// if (leve >= 2)
// {
// var tmpTeam = await _redisService.GlobalHashGetAllAsync<LaborTeamDto>(CacheKeyBZPT.CACHE_LABORTEAM_ALL);
// alllaborTeamsDto = tmpTeam.Values.Where(t => t.IsDeleted == false).ToList();
// }
// // 获取班组
// if (leve >= 3)
// {
// var tmpgroups = await _redisService.GlobalHashGetAllAsync<WorkerGroupDto>(CacheKeyBZPT.CACHE_WORKERGROUP_ALL);
// allworkerGroupDtos = tmpgroups.Values.Where(t => t.IsDeleted == false).ToList();
// }
// var loginUser = this.Context.Account == "admin" ? "admin" : this.Context.UserID;
// if (loginUser != "admin")
// {
// var showP = await this._userProjectRsp.GetListByExpAsync(t => loginUser == t.UserId);
// var showPro = showP.Select(t => t.PId).ToList();
// allProject = allProject.Where(t => showPro.Contains(t.Id) || t.CreateUser == loginUser).ToList();
// allSectionDto = allSectionDto.Where(t => showPro.Contains(t.Id) || t.CreateUser == loginUser).ToList();
// alllaborTeamsDto = alllaborTeamsDto.Where(t => showPro.Contains(t.Id) || t.CreateUser == loginUser).ToList();
// allworkerGroupDtos = allworkerGroupDtos.Where(t => showPro.Contains(t.Id) || t.CreateUser == loginUser).ToList();
// var canSetP = showP.Where(t => hasRight.Contains(t.Colum2));
// canSetPros = canSetP.Select(t => t.PId).ToList();
// canSetPros.AddRange(allSectionDto.Where(t => t.CreateUser == loginUser).Select(t => t.Id).ToArray());
// canSetPros.AddRange(alllaborTeamsDto.Where(t => t.CreateUser == loginUser).Select(t => t.Id).ToArray());
// canSetPros.AddRange(allworkerGroupDtos.Where(t => t.CreateUser == loginUser).Select(t => t.Id).ToArray());
// }
// else
// {
// canSetPros.AddRange(allProject.Select(t => t.Id).ToArray());
// canSetPros.AddRange(allSectionDto.Select(t => t.Id).ToArray());
// canSetPros.AddRange(alllaborTeamsDto.Select(t => t.Id).ToArray());
// canSetPros.AddRange(allworkerGroupDtos.Select(t => t.Id).ToArray());
// }
// var listitems= await GetProjectTree(allProject,leve);
// return Success(new { TreeData = listitems, AuthIds = canSetPros });
//}
///// <summary>
///// 加载项目树
///// </summary>
///// <param name="setRole">授权角色对象</param>
///// <param name="leve">显示层级0项目1标段2劳务队3班组</param>
///// <returns></returns>
//private async Task<List<TreeItem>> GetProjectTree(List<ProjectInfoDto> allProject,int leve=3)
//{
// var userPro = new List<TreeItem>();
// foreach (var pro in allProject)
// {
// var sections = GetSection(pro.Id, true); //显示总包
// var parentNode = new TreeItem()
// {
// Id = pro.Id,
// Name = pro.AC002,
// IsLeaf = sections.Count == 0,
// Children = sections.ToArray(),
// LevelCode= "0",
// CreateUser= pro.CreateUser,
// };
// userPro.Add(parentNode);
// SetCheckIds(sections, parentNode);
// }
// return userPro;
//}
//private void SetCheckIds(List<TreeItem> subItem,TreeItem parentNode)
//{
// parentNode.Status = canSetPros.Contains(parentNode.Id)? "checked" : "";
//}
//private List<TreeItem> GetSection(string proId,bool showZB)
//{
// var proSections= allSectionDto.Where(t=>t.AID==proId).ToList();
// List<TreeItem> result = new List<TreeItem>();
// List<string> zbIds = new List<string>();
// if (showZB)
// {
// var parentSections = proSections.Where(t => !string.IsNullOrEmpty(t.BZID)).GroupBy(t => t.BZID).Select(t => t.Key).ToList();
// if (parentSections.Count() > 0)// 总包
// {
// var parents = proSections.Where(t => parentSections.Contains(t.Id)).ToList();
// foreach (var section in parents)
// {
// var childs = proSections.Where(t => t.BZID == section.Id).ToList();
// var subSectionItem = new List<TreeItem>();
// foreach (var subSection in childs)
// {
// zbIds.Add(subSection.Id);
// var teams= GetLaborTeam(subSection.Id);
// var sctParent = new TreeItem()
// {
// Id = subSection.Id,
// Name = subSection.BC02,
// IsLeaf = teams.Count == 0,
// LevelCode = "1",
// //劳务队
// Children = teams.ToArray(),
// CreateUser = subSection.CreateUser,
// };
// subSectionItem.Add(sctParent);
// SetCheckIds(teams, sctParent);
// }
// var parentNode = new TreeItem()
// {
// Id = section.Id,
// Name = section.BC02,
// IsLeaf = subSectionItem.Count() == 0,
// LevelCode = "1",
// //分包
// Children = subSectionItem.ToArray(),
// CreateUser = section.CreateUser,
// };
// result.Add(parentNode);
// SetCheckIds(subSectionItem, parentNode);
// }
// }
// }
// var lastSections=proSections.Where(t=>!zbIds.Contains(t.Id)).ToList();
// foreach (var section in lastSections) {
// var teams = GetLaborTeam(section.Id);
// var parent = new TreeItem()
// {
// Id = section.Id,
// Name = section.BC02,
// IsLeaf = teams.Count == 0,
// Children = teams.ToArray(),
// LevelCode = "1",
// CreateUser = section.CreateUser,
// };
// result.Add(parent);
// SetCheckIds(teams, parent);
// }
// return result;
//}
//private List<TreeItem> GetLaborTeam(string sectionId)
//{
// var laborTeam = alllaborTeamsDto.Where(t => t.BID == sectionId).ToList();
// List<TreeItem> result = new List<TreeItem>();
// foreach (var section in laborTeam)
// {
// var groups = GetGroup(section.Id);
// var parent = new TreeItem()
// {
// Id = section.Id,
// Name = section.DC01,
// IsLeaf = groups.Count == 0,
// LevelCode = "2",
// //劳务队
// Children = groups.ToArray(),
// CreateUser = section.CreateUser,
// };
// result.Add(parent);
// SetCheckIds(groups, parent);
// }
// return result;
//}
//private List<TreeItem> GetGroup(string teamId)
//{
// var groups = allworkerGroupDtos.Where(t => t.DID == teamId).ToList();
// List<TreeItem> result = new List<TreeItem>();
// foreach (var group in groups)
// {
// var parent = new TreeItem()
// {
// Id = group.Id,
// Name = group.EC01,
// IsLeaf = true,
// LevelCode = "3",
// CreateUser = group.CreateUser,
// };
// result.Add(parent);
// SetCheckIds(new List<TreeItem>(), parent);
// }
// return result;
//}
//public async Task<INPResult> UserProjectGrant(GrantProSectionInput grants)
//{
// var listGrants = new List<UserProject>();
// foreach (var grant in grants.Cheacks)
// {
// listGrants.Add(new UserProject()
// {
// Id = StringObjectIdGenerator.Instance.GenerateId().ToString(),
// UserId = grants.GrantId,
// PId = grant.Id,
// PName=grant.Name,
// Colum1=grant.ProType,
// Colum2=grant.ProAuthorized,
// CreateUser = grant.CreateUser,
// CreateTime = DateTime.Now,
// });
// }
// //开始授权
// try
// {
// this.unitOfOfWork.BeginTran();
// var _OrganizationRepository = this.unitOfOfWork.GetRepository<IUserProjectRepository>();
// await _OrganizationRepository.RemoveAsync(t => t.UserId == grants.GrantId);
// if (listGrants.Any())
// await _OrganizationRepository.AddsAsync(listGrants.ToArray());
// this.unitOfOfWork.Commit();
// }
// catch (Exception ex)
// {
// this.unitOfOfWork.Rollback();
// return Fail(ex);
// }
// return Success("授权成功!");
//}
//private async Task<List<UserProject>> GetParent(string parentId, int leve)
//{
// // 项目---》标段--》劳务队--》班组
// var tmpPro = await _redisService.GlobalHashGetAllAsync<ProjectInfoDto>(CacheKeyBZPT.CACHE_PROJECT_ALL);
// var allProject = tmpPro.Values.Where(t => t.IsDeleted == false).ToList();
// List<SectionDto> allSections = new List<SectionDto>();
// List<LaborTeamDto> allLaborTeams = new List<LaborTeamDto>();
// List<UserProject> allParents = new List<UserProject>();
// // 标段
// if (leve >= 1)
// {
// var tmp = await _redisService.GlobalHashGetAllAsync<SectionDto>(CacheKeyBZPT.CACHE_SECTION_ALL);
// allSections = tmp.Values.Where(t => t.IsDeleted == false).ToList();
// }
// //获取劳务队
// if (leve >= 2)
// {
// var tmpTeam = await _redisService.GlobalHashGetAllAsync<LaborTeamDto>(CacheKeyBZPT.CACHE_LABORTEAM_ALL);
// allLaborTeams = tmpTeam.Values.Where(t => t.IsDeleted == false).ToList();
// }
// var laborTeams = allLaborTeams.Where(t => t.Id == parentId).ToList();
// var sectons = allSections.Where(t => t.Id == parentId).ToList();
// var projects = allProject.Where(t => t.Id == parentId).ToList();
// if (laborTeams.Count > 0)
// {
// var sectionIds = laborTeams.Select(t => t.BID).ToList();
// var sections = allSections.Where(t => sectionIds.Contains(t.Id));
// var zbids = sections.Select(t => t.BZID).ToList();
// var proids = sections.Select(t => t.AID).ToList();
// allParents.AddRange(laborTeams.Select(t => new UserProject()//劳务队
// {
// Id=StringObjectIdGenerator.Instance.GenerateId().ToString(),
// PId = t.Id,
// PName = t.DC01,
// Colum1 = "2",
// Colum2 = "0",
// }).ToList());
// allParents.AddRange(sections.Select(t => new UserProject()//标段
// {
// Id = StringObjectIdGenerator.Instance.GenerateId().ToString(),
// PId = t.Id,
// PName = t.BC02,
// Colum1 = "1",
// Colum2 = "0",
// }).ToList());
// allParents.AddRange(sections.Select(t => new UserProject()//总包
// {
// Id = StringObjectIdGenerator.Instance.GenerateId().ToString(),
// PId = t.BZID,
// PName = t.BC02,
// Colum1 = "1",
// Colum2 = "0",
// }).ToList());
// allParents.AddRange(sections.Select(t => new UserProject()//项目
// {
// Id = StringObjectIdGenerator.Instance.GenerateId().ToString(),
// PId = t.AID,
// Colum1 = "0",
// Colum2 = "0",
// }).ToList());
// }
// if (sectons.Count > 0)
// {
// var zbids = sectons.Select(t => t.BZID).ToList();
// var proids = sectons.Select(t => t.AID).ToList();
// allParents.AddRange(sectons.Select(t => new UserProject()//标段
// {
// Id = StringObjectIdGenerator.Instance.GenerateId().ToString(),
// PId = t.Id,
// PName = t.BC02,
// Colum1 = "1",
// Colum2 = "0",
// }).ToList());
// allParents.AddRange(sectons.Select(t => new UserProject()//总包
// {
// Id = StringObjectIdGenerator.Instance.GenerateId().ToString(),
// PId = t.BZID,
// PName = t.BC02,
// Colum1 = "1",
// Colum2 = "0",
// }).ToList());
// allParents.AddRange(sectons.Select(t => new UserProject()//项目
// {
// Id = StringObjectIdGenerator.Instance.GenerateId().ToString(),
// PId = t.AID,
// Colum1 = "0",
// Colum2 = "0",
// }).ToList());
// }
// if (projects.Count > 0)
// {
// allParents.AddRange(projects.Select(t => new UserProject()//项目
// {
// Id = StringObjectIdGenerator.Instance.GenerateId().ToString(),
// PId = t.Id,
// Colum1 = "0",
// Colum2 = "0",
// }).ToList());
// }
// return allParents;
//}
//public async Task<INPResult> ProjectUserAdd(ProjectUserDto puDto)
//{
// if (puDto == null) { return Fail("请提交数据"); }
// if (puDto.ProId.IsNullOrEmpty())
// {
// return Fail("缺少项目ID。");
// }
// if (puDto.ProLeve == null)
// {
// return Fail("缺少项目级别。");
// }
// if (puDto.Users == null || puDto.Users.Count() == 0)
// {
// return Fail("用户信息缺失。");
// }
// var allParents =await GetParent(puDto.ParentId, puDto.ProLeve.Value);
// foreach (var user in puDto.Users)
// {
// var uPro = new UserProject()
// {
// Id = StringObjectIdGenerator.Instance.GenerateId().ToString(),
// PId = puDto.ProId,
// UserId = user.Id,
// PName = puDto.ProName,
// Colum1 = puDto.ProLeve?.ToString(),
// Colum2 = "2",
// CreateUser = this.Context.UserID,
// CreateTime = DateTime.Now,
// };
// foreach(var up in allParents)
// {
// up.UserId = user.Id;
// up.CreateUser = this.Context.UserID;
// up.CreateTime = DateTime.Now;
// }
// allParents.Add(uPro);
// var rst = await userService.Add(user, allParents.ToArray());
// if (rst == null || !rst.Success)
// {
// return Fail($"{user.Name} 新增失败{rst?.Message}");
// }
// }
// return Success("保持成功。");
//}
///// <summary>
///// 获取用户列表
///// </summary>
///// <param name="whereExp">查询条件</param>
///// <returns></returns>
//public async Task<IListResult<UserVO>> GetProUserPage(string proId, DataSourceLoadOptions whereExp)
//{
// var projectUsers = await this._userProjectRsp.GetListByExpAsync(t => t.PId == proId && t.Colum2 == "2");
// if (!projectUsers.Any())
// {
// return ListData<UserVO>(new List<UserVO>(), 0); // 或者您特定的空结果构造方式
// }
// var userIds = projectUsers.Select(x => x.UserId).Distinct().ToList();
// if (!userIds.Any())
// {
// return ListData<UserVO>(new List<UserVO>(), 0);
// }
// var idInFilter = new List<object> { "Id", "in", userIds };
// whereExp.And(idInFilter);
// var userRst = await this.userService.GetPageAsync<UserVO>(whereExp);
// return userRst;
//}
}
}