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

808 lines
35 KiB
C#
Raw Permalink Normal View History

2025-07-17 22:41:38 +08:00
/***********************************************************
**: 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;
//}
}
}