From ca12247dbc0728c7900db4188565d4c4f7d907c4 Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期二, 29 八月 2023 09:25:54 +0800 Subject: [PATCH] Merge branch 'master' of http://47.108.235.38:8080/r/DocumentService --- DocumentServiceAPI.Application/ProjectInfo/Services/SheZhiService.cs | 613 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 613 insertions(+), 0 deletions(-) diff --git a/DocumentServiceAPI.Application/ProjectInfo/Services/SheZhiService.cs b/DocumentServiceAPI.Application/ProjectInfo/Services/SheZhiService.cs new file mode 100644 index 0000000..8b3df48 --- /dev/null +++ b/DocumentServiceAPI.Application/ProjectInfo/Services/SheZhiService.cs @@ -0,0 +1,613 @@ +锘縰sing DocumentServiceAPI.Application.ProjectInfo.Services.Interfaces; +using DocumentServiceAPI.Application.ProjectInfo.ViewMode; +using DocumentServiceAPI.Application.Repository; +using DocumentServiceAPI.Model.cyDocumentModel; +using DocumentServiceAPI.Model.UserInfoModel; +using DocumentServiceAPI.Utility; +using MapsterMapper; +using Microsoft.AspNetCore.Mvc.RazorPages; +using NetTaste; +using SqlSugar.Extensions; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Runtime.Intrinsics.Arm; +using System.Security.Claims; +using System.Text; +using System.Threading.Tasks; + +namespace DocumentServiceAPI.Application.ProjectInfo.Services +{ + public class SheZhiService : ISheZhiService, IScoped + { + + private ISqlSugarClient _db { get; set; } + private ProjectInfoRepository _projectInfoRepository { get; set; } + private IMapper _mapper { get; set; } + public SheZhiService(ISqlSugarClient db, ProjectInfoRepository projectInfoRepository, IMapper mapper) + { + _db = db; + _projectInfoRepository = projectInfoRepository; + _mapper = mapper; + } + + public PageResult<Document_DelegatePersonInfo> postDelegatePersonList(DocumentProjectInfoPageSearch page) + { + var aaa = GetJwtInfo(); + + SqlSugar.PageModel pg = new SqlSugar.PageModel(); + pg.PageSize = page.PageSize; + pg.PageIndex = page.PageIndex; + //page.ToEmployeeId = a.EID; + int total = 0; + PageResult<Document_DelegatePersonInfo> result = new PageResult<Document_DelegatePersonInfo>(); + + + + result.Items = _db.Queryable<Document_DelegatePersonInfo>() + .Where(a => a.TenantID == aaa.TEID) + //鏂囦欢鍚嶇О + .WhereIF(!string.IsNullOrEmpty(page.delegateName), a => a.DelegateName.Contains(page.delegateName)) + .WhereIF(page.isUse > 0, a => a.IsUse == page.isUse) + + + .OrderByDescending(a => a.DelegateId).ToPageList(page.PageIndex, page.PageSize, ref total); + + + result.TotalCount = total; + result.TotalPage = total % page.PageSize == 0 ? total / page.PageSize : total / page.PageSize + 1; + + + + return result; + } + + + public bool GetDelDocumentDelegatePersonInfo(int ID) + { + _db.Deleteable<Document_DelegatePersonInfo>().Where(x => x.DelegateId == ID).ExecuteCommand(); + + return true; + } + + public bool SaveDocumentDelegatePersonInfo(Document_DelegatePersonInfo dp) + { + if (dp.DelegateId > 0) + { + _db.Updateable<Document_DelegatePersonInfo>(dp).ExecuteCommand(); + } + else + { + _db.Insertable<Document_DelegatePersonInfo>(dp).ExecuteCommand(); + } + + return true; + } + + public Document_DelegatePersonInfo GetDocumentDelegatePersonInfo(int ID) + { + var result = _db.Queryable<Document_DelegatePersonInfo>().Where(x => x.DelegateId == ID).First();//鎵ц鏌ヨ + return result; + } + + + + + + public PageResult<Document_TenderUnit> postDocumentTenderUnitList(DocumentProjectInfoPageSearch page) + { + var aaa = GetJwtInfo(); + + SqlSugar.PageModel pg = new SqlSugar.PageModel(); + pg.PageSize = page.PageSize; + pg.PageIndex = page.PageIndex; + //page.ToEmployeeId = a.EID; + int total = 0; + PageResult<Document_TenderUnit> result = new PageResult<Document_TenderUnit>(); + + + + result.Items = _db.Queryable<Document_TenderUnit>() + .Where(a => a.TenantId == aaa.TEID) + //鏂囦欢鍚嶇О + .WhereIF(!string.IsNullOrEmpty(page.delegateName), a => a.UnitName.Contains(page.delegateName)) + .WhereIF(page.isUse > 0, a => a.IsUsed == page.isUse) + + + .OrderByDescending(a => a.UnitId).ToPageList(page.PageIndex, page.PageSize, ref total); + + + result.TotalCount = total; + result.TotalPage = total % page.PageSize == 0 ? total / page.PageSize : total / page.PageSize + 1; + + + + return result; + } + + + + + public bool SaveDocumentTenderUnitInfo(Document_TenderUnit dp) + { + if (dp.UnitId > 0) + { + _db.Updateable<Document_TenderUnit>(dp).ExecuteCommand(); + } + else + { + _db.Insertable<Document_TenderUnit>(dp).ExecuteCommand(); + } + + return true; + } + + public Document_TenderUnit GetDocumentTenderUnitInfo(int ID) + { + var result = _db.Queryable<Document_TenderUnit>().Where(x => x.UnitId == ID).First();//鎵ц鏌ヨ + return result; + } + + + + public PageResult<DocumentEmployeeInfoDTO> postDocumentEmployeeInfoList(DocumentProjectInfoPageSearch page) + { + var aaa = GetJwtInfo(); + + SqlSugar.PageModel pg = new SqlSugar.PageModel(); + pg.PageSize = page.PageSize; + pg.PageIndex = page.PageIndex; + //page.ToEmployeeId = a.EID; + int total = 0; + PageResult<DocumentEmployeeInfoDTO> result = new PageResult<DocumentEmployeeInfoDTO>(); + + + + var document_EmployeeInfos = _db.Queryable<Document_EmployeeInfo, EmployeeAtTenant>((a, b) => + new JoinQueryInfos + ( + JoinType.Inner, a.EmployeeId == b.EmployeeID && b.TenantID == aaa.TEID + + ) + ) + //鏂囦欢鍚嶇О + .WhereIF(!string.IsNullOrEmpty(page.txtName), (a, b) => a.EmployeeName.Contains(page.txtName)) + + + .OrderByDescending((a, b) => a.EmployeeId).ToPageList(page.PageIndex, page.PageSize, ref total); + + + + + + var documentEmployeeInfoDTOs = _mapper.Map<List<DocumentEmployeeInfoDTO>>(document_EmployeeInfos); + + + + if (documentEmployeeInfoDTOs != null && documentEmployeeInfoDTOs.Count > 0) + { + var ret = _db.Queryable<Document_EmployeeRole>().ToList(); + foreach (var documentEmployeeInfoDTO in documentEmployeeInfoDTOs) + { + if (documentEmployeeInfoDTO.IsWork.HasValue && documentEmployeeInfoDTO.IsWork.Value>0) + { + documentEmployeeInfoDTO.IsWorkName = "鍦ㄨ亴"; + } + else + { + documentEmployeeInfoDTO.IsWorkName = "绂昏亴"; + } + + if (documentEmployeeInfoDTO.IsWork.HasValue && documentEmployeeInfoDTO.IsWork.Value == 1) + { + documentEmployeeInfoDTO.LeaveTimeName = ""; + } + else + { + if (documentEmployeeInfoDTO.LeaveTime.HasValue) + { + documentEmployeeInfoDTO.LeaveTimeName = documentEmployeeInfoDTO.LeaveTime.Value.ToString("yyyy-MM-dd"); + } + else + { + documentEmployeeInfoDTO.LeaveTimeName = ""; + } + } + + var document_EmployeeRole = ret.Where(x => x.EmployeeId == documentEmployeeInfoDTO.EmployeeId && x.RoleType == 1).FirstOrDefault(); + if(document_EmployeeRole != null) + { + documentEmployeeInfoDTO.BMRID = "鏄�"; + } + else + { + documentEmployeeInfoDTO.BMRID = "鍚�"; + } + + var document_EmployeeRole1 = ret.Where(x => x.EmployeeId == documentEmployeeInfoDTO.EmployeeId && x.RoleType == 2).FirstOrDefault(); + if (document_EmployeeRole1 != null) + { + documentEmployeeInfoDTO.BSZZRID = "鏄�"; + } + else + { + documentEmployeeInfoDTO.BSZZRID = "鍚�"; + } + + var document_EmployeeRole2 = ret.Where(x => x.EmployeeId == documentEmployeeInfoDTO.EmployeeId && x.RoleType == 3).FirstOrDefault(); + if (document_EmployeeRole2 != null) + { + documentEmployeeInfoDTO.TBRID = "鏄�"; + } + else + { + documentEmployeeInfoDTO.TBRID = "鍚�"; + } + + + } + } + + result.Items = documentEmployeeInfoDTOs; + result.TotalCount = total; + result.TotalPage = total % page.PageSize == 0 ? total / page.PageSize : total / page.PageSize + 1; + + + return result; + } + + public bool GetDelDocumentEmployeeInfoInfo(int ID) + { + _db.Deleteable<EmployeeAtTenant>().Where(x => x.EmployeeID == ID).ExecuteCommand(); + _db.Deleteable<Document_EmployeeRole>().Where(x => x.EmployeeId == ID).ExecuteCommand(); + _db.Deleteable<Document_EmployeeInfo>().Where(x => x.EmployeeId == ID).ExecuteCommand(); + + + + return true; + } + + public bool SaveDocumentEmployeeInfoInfo(DocumentEmployeeInfoDTO dp) + { + var document_EmployeeInfo = _mapper.Map<Document_EmployeeInfo>(dp); + + if (dp.EmployeeId > 0) + { + _db.Updateable<Document_EmployeeInfo>(document_EmployeeInfo).ExecuteCommand(); + + } + else + { + var aaa = GetJwtInfo(); + + + + dp.EmployeeId = _db.Insertable<Document_EmployeeInfo>(document_EmployeeInfo).ExecuteReturnIdentity(); + + EmployeeAtTenant employeeAtTenant = new EmployeeAtTenant(); + employeeAtTenant.EmployeeID = dp.EmployeeId; + employeeAtTenant.TenantID = aaa.TEID.Value; + _db.Insertable<EmployeeAtTenant>(employeeAtTenant).ExecuteCommand(); + } + + + if (!string.IsNullOrEmpty(dp.BMRID) && !string.IsNullOrEmpty(dp.BSZZRID) && !string.IsNullOrEmpty(dp.TBRID)) + { + _db.Deleteable<Document_EmployeeRole>().Where(x => x.EmployeeId == dp.EmployeeId).ExecuteCommand(); + if (dp.BMRID == "鏄�") + { + Document_EmployeeRole document_EmployeeRole = new Document_EmployeeRole(); + document_EmployeeRole.EmployeeId = dp.EmployeeId; + document_EmployeeRole.RoleType = 1; + _db.Insertable<Document_EmployeeRole>(document_EmployeeRole).ExecuteCommand(); + } + if (dp.BSZZRID == "鏄�") + { + Document_EmployeeRole document_EmployeeRole = new Document_EmployeeRole(); + document_EmployeeRole.EmployeeId = dp.EmployeeId; + document_EmployeeRole.RoleType = 2; + _db.Insertable<Document_EmployeeRole>(document_EmployeeRole).ExecuteCommand(); + } + if (dp.TBRID == "鏄�") + { + Document_EmployeeRole document_EmployeeRole = new Document_EmployeeRole(); + document_EmployeeRole.EmployeeId = dp.EmployeeId; + document_EmployeeRole.RoleType = 3; + _db.Insertable<Document_EmployeeRole>(document_EmployeeRole).ExecuteCommand(); + } + } + + return true; + } + + public DocumentEmployeeInfoDTO GetDocumentEmployeeInfoInfo(int ID) + { + var result = _db.Queryable<Document_EmployeeInfo>().Where(x => x.EmployeeId == ID).First();//鎵ц鏌ヨ + + var documentEmployeeInfoDTO = _mapper.Map<DocumentEmployeeInfoDTO>(result); + + + + if (documentEmployeeInfoDTO != null ) + { + var ret = _db.Queryable<Document_EmployeeRole>().ToList(); + + if (documentEmployeeInfoDTO.IsWork.HasValue && documentEmployeeInfoDTO.IsWork.Value > 0) + { + documentEmployeeInfoDTO.IsWorkName = "鍦ㄨ亴"; + } + else + { + documentEmployeeInfoDTO.IsWorkName = "绂昏亴"; + } + + if (documentEmployeeInfoDTO.IsWork.HasValue && documentEmployeeInfoDTO.IsWork.Value == 1) + { + documentEmployeeInfoDTO.LeaveTimeName = ""; + } + else + { + if (documentEmployeeInfoDTO.LeaveTime.HasValue) + { + documentEmployeeInfoDTO.LeaveTimeName = documentEmployeeInfoDTO.LeaveTime.Value.ToString("yyyy-MM-dd"); + } + else + { + documentEmployeeInfoDTO.LeaveTimeName = ""; + } + } + + var document_EmployeeRole = ret.Where(x => x.EmployeeId == documentEmployeeInfoDTO.EmployeeId && x.RoleType == 1).FirstOrDefault(); + if (document_EmployeeRole != null) + { + documentEmployeeInfoDTO.BMRID = "鏄�"; + } + else + { + documentEmployeeInfoDTO.BMRID = "鍚�"; + } + + var document_EmployeeRole1 = ret.Where(x => x.EmployeeId == documentEmployeeInfoDTO.EmployeeId && x.RoleType == 2).FirstOrDefault(); + if (document_EmployeeRole1 != null) + { + documentEmployeeInfoDTO.BSZZRID = "鏄�"; + } + else + { + documentEmployeeInfoDTO.BSZZRID = "鍚�"; + } + + var document_EmployeeRole2 = ret.Where(x => x.EmployeeId == documentEmployeeInfoDTO.EmployeeId && x.RoleType == 3).FirstOrDefault(); + if (document_EmployeeRole2 != null) + { + documentEmployeeInfoDTO.TBRID = "鏄�"; + } + else + { + documentEmployeeInfoDTO.TBRID = "鍚�"; + } + + + + } + + return documentEmployeeInfoDTO; + } + + public Document_EmployeeInfo GetDocumentEmployeeInfoByName(string EmployeeName) + { + var aaa = GetJwtInfo(); + var documentEmployeeInfoDTO = _db.Queryable<Document_EmployeeInfo, EmployeeAtTenant>((a, b) => + new JoinQueryInfos + ( + JoinType.Inner, a.EmployeeId == b.EmployeeID && b.TenantID == aaa.TEID + ) + ) + //鏂囦欢鍚嶇О + .Where((a, b) => a.EmployeeName == EmployeeName).First(); + + + + + + return documentEmployeeInfoDTO; + } + + + public Document_EmployeeInfo GetDocumentEmployeeInfoByLoginName(string textUserName) + { + var aaa = GetJwtInfo(); + var documentEmployeeInfoDTO = _db.Queryable<Document_EmployeeInfo, EmployeeAtTenant>((a, b) => + new JoinQueryInfos + ( + JoinType.Inner, a.EmployeeId == b.EmployeeID && b.TenantID == aaa.TEID + ) + ) + //鏂囦欢鍚嶇О + .Where((a, b) => a.UserName == textUserName).First(); + + + + + + return documentEmployeeInfoDTO; + } + + + public PageResult<Document_PerformanceInfo> GetDocumentPerformanceInfoListByPaper(DocumentProjectInfoPageSearch page) + { + var aaa = GetJwtInfo(); + List<Document_PerformanceInfo> m_Document_PerformanceInfoList = new List<Document_PerformanceInfo>(); + SqlSugar.PageModel pg = new SqlSugar.PageModel(); + pg.PageSize = page.PageSize; + pg.PageIndex = page.PageIndex; + //page.ToEmployeeId = a.EID; + int total = 0; + PageResult<Document_PerformanceInfo> result = new PageResult<Document_PerformanceInfo>(); + + DateTime txtWorkStartTime = string.IsNullOrEmpty(page.txtWorkStartTime) ? DateTime.MinValue : DateTime.Parse(page.txtWorkStartTime); + DateTime txtWorkEndTime = string.IsNullOrEmpty(page.txtWorkEndTime) ? DateTime.MaxValue : DateTime.Parse(page.txtWorkEndTime); + + var dt_Signup = _db.Queryable<Document_ProjectExpand, Document_ProjectInfo>((a, b) => + new JoinQueryInfos + ( + JoinType.Inner, a.ProjectId == b.ProjectId && b.TenantID == aaa.TEID + + ) + ) + .Where((a, b) => a.IsSignup == 1) + //鏂囦欢鍚嶇О + .WhereIF(!string.IsNullOrEmpty(page.txtWorkStartTime), (a, b) => a.SignupTime >= txtWorkStartTime) + .WhereIF(!string.IsNullOrEmpty(page.txtWorkEndTime), (a, b) => a.SignupTime <= txtWorkEndTime) + .WhereIF(!string.IsNullOrEmpty(page.txtEmployeeId) && page.txtEmployeeId != "璇烽�夋嫨" , (a, b) => a.SignupPerson == page.txtEmployeeId) + .WhereIF(!string.IsNullOrEmpty(page.projectName), (a, b) => b.ProjectName.Contains(page.projectName)) + .WhereIF(!string.IsNullOrEmpty(page.txtWorkItem), (a, b) => "鎶ュ悕" == page.txtWorkItem) + .Select((a, b) =>new Document_PerformanceInfo + { + WorkTime = a.SignupTime, + EmployeeName = a.SignupPerson, + Price = a.SignupAllowance, + ProjectName = b.ProjectName, + WorkItem = "鎶ュ悕", + }).ToList() + ; + + + var dt_Document = _db.Queryable<Document_ProjectExpand, Document_ProjectInfo, Document_ProjectDocumentInfo>((a, b,c) => + new JoinQueryInfos + ( + JoinType.Inner, a.ProjectId == b.ProjectId && b.TenantID == aaa.TEID, + JoinType.Left, a.ProjectId == c.ProjectId + ) + ) + .Where((a, b, c) => a.DocumentStatus == 17) + //鏂囦欢鍚嶇О + .WhereIF(!string.IsNullOrEmpty(page.txtWorkStartTime), (a, b, c) => c.LastUpdateTime >= txtWorkStartTime) + .WhereIF(!string.IsNullOrEmpty(page.txtWorkEndTime), (a, b, c) => c.LastUpdateTime <= txtWorkEndTime) + .WhereIF(!string.IsNullOrEmpty(page.txtEmployeeId) && page.txtEmployeeId != "璇烽�夋嫨", (a, b) => a.DocumentManager == page.txtEmployeeId) + .WhereIF(!string.IsNullOrEmpty(page.projectName), (a, b, c) => b.ProjectName.Contains(page.projectName)) + .WhereIF(!string.IsNullOrEmpty(page.txtWorkItem), (a, b, c) => "鏍囦功鍒朵綔" == page.txtWorkItem) + .Select((a, b, c) => new Document_PerformanceInfo + { + WorkTime = c.LastUpdateTime, + EmployeeName = a.DocumentManager, + Price = a.DocumentPrice, + ProjectName = b.ProjectName, + WorkItem = "鏍囦功鍒朵綔", + }).ToList() + ; + + var dt_Tender = _db.Queryable<Document_ProjectExpand, Document_ProjectInfo>((a, b) => + new JoinQueryInfos + ( + JoinType.Inner, a.ProjectId == b.ProjectId && b.TenantID == aaa.TEID + ) + ) + .Where((a, b) => a.TenderStatus == 1) + //鏂囦欢鍚嶇О + .WhereIF(!string.IsNullOrEmpty(page.txtWorkStartTime), (a, b) => b.TenderTime >= txtWorkStartTime) + .WhereIF(!string.IsNullOrEmpty(page.txtWorkEndTime), (a, b) => b.TenderTime <= txtWorkEndTime) + .WhereIF(!string.IsNullOrEmpty(page.txtEmployeeId) && page.txtEmployeeId != "璇烽�夋嫨", (a, b) => a.TenderPerson == page.txtEmployeeId) + .WhereIF(!string.IsNullOrEmpty(page.projectName), (a, b) => b.ProjectName.Contains(page.projectName)) + .WhereIF(!string.IsNullOrEmpty(page.txtWorkItem), (a, b) => "鎶曟爣" == page.txtWorkItem) + .Select((a, b) => new Document_PerformanceInfo + { + WorkTime = b.TenderTime, + EmployeeName = a.DocumentManager, + Price = a.DocumentPrice, + ProjectName = b.ProjectName, + WorkItem = "鎶曟爣", + }).ToList(); + var newDataTable = new List<Document_PerformanceInfo>(); + object[] obj = new object[newDataTable.Count]; + + for (int i = 0; i < dt_Signup.Count; i++) + { + + newDataTable.Add(dt_Signup[i]); + } + for (int i = 0; i < dt_Document.Count; i++) + { + + newDataTable.Add(dt_Document[i]); + } + + for (int i = 0; i < dt_Tender.Count; i++) + { + + newDataTable.Add(dt_Tender[i]); + } + + for (int i = 0; i < newDataTable.Count; i++) + { + Document_PerformanceInfo m_Document_PerformanceInfo = new Document_PerformanceInfo(); + m_Document_PerformanceInfo.EmployeeId = 0; + m_Document_PerformanceInfo.Id = 0; + m_Document_PerformanceInfo.ProjectName = newDataTable[i].ProjectName; + m_Document_PerformanceInfo.WorkItem = newDataTable[i].WorkItem; + if (newDataTable[i].Price.HasValue) + { + m_Document_PerformanceInfo.Price = newDataTable[i].Price; + } + else + { + m_Document_PerformanceInfo.Price = 0; + } + m_Document_PerformanceInfo.EmployeeName = newDataTable[i].EmployeeName; + m_Document_PerformanceInfo.WorkTime = newDataTable[i].WorkTime; + + + + if (m_Document_PerformanceInfo.Price.HasValue && m_Document_PerformanceInfo.Price.Value>0) + { + m_Document_PerformanceInfoList.Add(m_Document_PerformanceInfo); + result.AllPageMoney += m_Document_PerformanceInfo.Price.Value; + } + } + ; + + + + + + + + //.ToPageList(page.PageIndex, page.PageSize, ref total); + + + + + var document_PerformanceInfos = m_Document_PerformanceInfoList.Skip(page.PageIndex - 1).Take(page.PageSize).ToList(); + + foreach (var item in document_PerformanceInfos) + { + result.NowPageMoney += item.Price.Value; + } + + + result.Items = document_PerformanceInfos; + result.TotalCount = total; + result.TotalPage = total % page.PageSize == 0 ? total / page.PageSize : total / page.PageSize + 1; + + + return result; + } + + /// <summary> + /// 鑾峰彇Jwt鐩稿叧淇℃伅 + /// </summary> + public Model.JwtInfo GetJwtInfo() + { + Model.JwtInfo jwtInfo = new Model.JwtInfo(); + jwtInfo.LogInSource = (Model.LogInFrom)(App.User?.FindFirstValue("loginfrom")?.ObjToInt() ?? 0); + jwtInfo.EID = App.User?.FindFirstValue("eid")?.ObjToInt(); + jwtInfo.UID = App.User?.FindFirstValue("uid")?.ObjToInt(); + jwtInfo.TEID = App.User?.FindFirstValue("teid")?.ObjToInt(); + var guid = App.User?.FindFirstValue("jid"); + jwtInfo.JID = string.IsNullOrEmpty(guid) ? null : new Guid(guid); + return jwtInfo; + } + + } +} -- Gitblit v1.9.1