From bc9e5c59961ce729e3c62d9cf26069da7dc7c39e Mon Sep 17 00:00:00 2001 From: qwj <qwjzorro@163.com> Date: 星期五, 25 八月 2023 15:39:55 +0800 Subject: [PATCH] 业绩管理 --- DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs | 5 DocumentServiceAPI.Application/DocManage/Services/DocAchievementService.cs | 9 + DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml | 73 ++++++++++ DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs | 130 ++++++++++++++++++ DocumentServiceAPI.Application/DocManage/Dtos/Achievement_Submit_Dto.cs | 81 +++++++++++ DocumentServiceAPI.Model/cyDocumentModel/Doc_Achievement.cs | 80 +++++++++++ 6 files changed, 377 insertions(+), 1 deletions(-) diff --git a/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs b/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs index 85aaef9..7a19cf5 100644 --- a/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs +++ b/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs @@ -21,16 +21,18 @@ private readonly OrganizationService _organizationService; private readonly FileManageService _fileManageService; private readonly ProjectManageService _projectService; + private readonly DocAchievementService _achievementService; private readonly IRedisCacheService _redisCache; public DocumentManageAppService(DocClassificationService classService, DocumentManageService docService, OrganizationService orgService, - FileManageService fileManageService, ProjectManageService projectService, IRedisCacheService redisCase) + FileManageService fileManageService, ProjectManageService projectService, DocAchievementService achievementService, IRedisCacheService redisCase) { _classificationService = classService; _docManageService = docService; _organizationService = orgService; _fileManageService = fileManageService; _projectService = projectService; + _achievementService = achievementService; _redisCache = redisCase; } @@ -85,6 +87,22 @@ } return null; + } + + /// <summary> + /// 鏍规嵁鏂囨。绫诲瀷鏌ヨ鏂囨。鍒楄〃 + /// </summary> + /// <param name="search"></param> + /// <returns></returns> + public async Task<IActionResult> PostDocumentItemList(DocumentSearch search) + { + var data = await _docManageService.GetListAsync(c => c.is_del == false && c.doc_code == search.Code && c.tenant_code == search.TenantID); + if (search.class_id > 0) + { + data = data.Where(c => c.classification_id == search.class_id).ToList(); + } + + return new JsonResult(data.Select(c => new { name= c.doc_name, c.id }).ToList()); } /// <summary> @@ -371,5 +389,115 @@ } #endregion + + #region 涓氱哗绠$悊 + + /// <summary> + /// 鏍规嵁鍒嗛〉鏉′欢鏌ヨ鍒嗛〉鏁版嵁 + /// </summary> + /// <param name="page"></param> + /// <returns></returns> + public async Task<IActionResult> PostAchievementListPage(DocumentPageSearch page) + { + PageResult<Achievement_List_Dto> result = new PageResult<Achievement_List_Dto>(); + + try + { + Expression<Func<Doc_Achievement, bool>> expression = t => true; + + expression = expression.And(t => t.tenant_code == page.TenantID && t.status == 1); + if (page.ClassCode.HasValue) + { + expression = expression.And(t => t.classification_id == page.ClassCode); + } + if (!string.IsNullOrEmpty(page.Name)) + { + expression = expression.And(t => t.achievement_name.Contains(page.Name)); + } + + RefAsync<int> total = 0; + var data = await _achievementService.Context.Queryable<Doc_Achievement>() + .Includes(c => c.DocClassification) + .Includes(c => c.DocProject) + .Where(expression) + .OrderByDescending(c => c.id) + .ToPageListAsync(page.PageIndex, page.PageSize, total); + + if (data != null && total > 0) + { + result.Items = data.Select(c => new Achievement_List_Dto() + { + add_time = c.add_time, + class_id=c.classification_id, + class_name = c.DocClassification?.doc_classification, + id = c.id, + project_id = c.project_id, + project_name = c.DocProject?.ProjectName, + fkpz=c.fkpz_url, + hjzs=c.hjzs_url, + ht=c.ht_url, + yhpj=c.yhpj_url, + ysbg=c.ysbg_url, + zbtzs=c.zbtzs_url, + status = c.status + }).ToList(); + + } + result.PageIndex = page.PageIndex; + result.PageSize = page.PageSize; + result.TotalCount = total; + } + catch (Exception er) + { + Log.Error(er.Message, er); + } + + return new JsonResult(result); + } + + /// <summary> + /// 妫�鏌ラ噸澶� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public async Task<bool> CheckDocAchievementDuplicate(Document_Submit_Dto model) + { + var msg = false; + var ck = await _achievementService.GetFirstAsync(c=>c.status==1 && c.tenant_code==model.tenant_id + && c.project_id==model.project_id && c.classification_id==c.classification_id); + if (ck != null) + { + msg = true; + } + return msg; + } + + /// <summary> + /// 娣诲姞鏁版嵁 + /// </summary> + /// <param name="info"></param> + /// <returns></returns> + public async Task<bool> PostAddDocAchievement(Achievement_Submit_Dto info) + { + Doc_Achievement doc = new Doc_Achievement(); + doc.add_time = DateTime.Now; + doc.classification_id = info.class_id; + doc.project_id = info.project_id; + doc.achievement_name = info.name; + + doc.fkpz_url = info.fkpz; + doc.hjzs_url = info.hjzs; + doc.ht_url = info.ht; + doc.yhpj_url = info.yhpj; + doc.ysbg_url = info.ysbg; + doc.zbtzs_url = info.zbtzs; + + doc.status = 1; + doc.tenant_code = info.tenant_id; + + return await _achievementService.InsertAsync(doc); + } + + #endregion } } diff --git a/DocumentServiceAPI.Application/DocManage/Dtos/Achievement_Submit_Dto.cs b/DocumentServiceAPI.Application/DocManage/Dtos/Achievement_Submit_Dto.cs new file mode 100644 index 0000000..8e955cd --- /dev/null +++ b/DocumentServiceAPI.Application/DocManage/Dtos/Achievement_Submit_Dto.cs @@ -0,0 +1,81 @@ +锘縩amespace DocumentServiceAPI.Application.DocManage.Dtos +{ + /// <summary> + /// 涓氱哗璧勬枡鎻愪氦 + /// </summary> + public class Achievement_Submit_Dto + { + public int id { get; set; } + + /// <summary> + /// 鍒嗙被id + /// </summary> + public int class_id { get; set; } + public string name { get; set; } + + public int tenant_id { get; set; } + + /// <summary> + /// 椤圭洰鍚嶇О + /// </summary> + public int project_id { get; set; } + + public string zbtzs { get; set; } + + public string ht { get; set; } + + public string ysbg { get; set; } + + public string fkpz { get; set; } + + public string yhpj { get; set; } + + public string hjzs { get; set; } + } + + public class Achievement_List_Dto + { + /// <summary> + /// 娣诲姞/鏇存柊鏃堕棿 + /// </summary> + public DateTime add_time { get; set; } + + /// <summary> + /// 鐘舵�� + /// </summary> + public int status { get; set; } + + public int id { get; set; } + + /// <summary> + /// 褰掑睘鍒嗙被锛堝瓙绫诲瀷锛� + /// </summary> + public int? class_id { get; set; } + + public string class_name { get; set; } + + /// <summary> + /// 鍚嶇О + /// </summary> + public string doc_name { get; set; } + + /// <summary> + /// 椤圭洰id + /// </summary> + public int? project_id { get; set; } + + public string project_name { get; set; } + + public string zbtzs { get; set; } + + public string ht { get; set; } + + public string ysbg { get; set; } + + public string fkpz { get; set; } + + public string yhpj { get; set; } + + public string hjzs { get; set; } + } +} diff --git a/DocumentServiceAPI.Application/DocManage/Services/DocAchievementService.cs b/DocumentServiceAPI.Application/DocManage/Services/DocAchievementService.cs new file mode 100644 index 0000000..ef557fa --- /dev/null +++ b/DocumentServiceAPI.Application/DocManage/Services/DocAchievementService.cs @@ -0,0 +1,9 @@ +锘縰sing DocumentServiceAPI.Core; +using DocumentServiceAPI.Model.cyDocumentModel; + +namespace DocumentServiceAPI.Application.DocManage.Services +{ + public class DocAchievementService : BaseRepository<Doc_Achievement>, ITransient + { + } +} diff --git a/DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs b/DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs index ba8e92f..22fc21f 100644 --- a/DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs +++ b/DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs @@ -43,6 +43,11 @@ /// </summary> public string Code { get; set; } + /// <summary> + /// 浜岀骇鍒嗙被 + /// </summary> + public int class_id { get; set; } + } /// <summary> diff --git a/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml b/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml index 1f3f55f..eedf828 100644 --- a/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml +++ b/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml @@ -73,6 +73,13 @@ <param name="search"></param> <returns></returns> </member> + <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostDocumentItemList(DocumentServiceAPI.Application.DocManage.Services.DocumentSearch)"> + <summary> + 鏍规嵁鏂囨。绫诲瀷鏌ヨ鏂囨。鍒楄〃 + </summary> + <param name="search"></param> + <returns></returns> + </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.CheckNameDuplicate(DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto)"> <summary> 妫�鏌ュ悕绉伴噸澶� @@ -121,6 +128,67 @@ </summary> <param name="id"></param> <returns></returns> + </member> + <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostAchievementListPage(DocumentServiceAPI.Application.DocManage.Services.DocumentPageSearch)"> + <summary> + 鏍规嵁鍒嗛〉鏉′欢鏌ヨ鍒嗛〉鏁版嵁 + </summary> + <param name="page"></param> + <returns></returns> + </member> + <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.CheckDocAchievementDuplicate(DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto)"> + <summary> + 妫�鏌ラ噸澶� + </summary> + <param name="model"></param> + <returns></returns> + </member> + <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostAddDocAchievement(DocumentServiceAPI.Application.DocManage.Dtos.Achievement_Submit_Dto)"> + <summary> + 娣诲姞鏁版嵁 + </summary> + <param name="info"></param> + <returns></returns> + </member> + <member name="T:DocumentServiceAPI.Application.DocManage.Dtos.Achievement_Submit_Dto"> + <summary> + 涓氱哗璧勬枡鎻愪氦 + </summary> + </member> + <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Achievement_Submit_Dto.class_id"> + <summary> + 鍒嗙被id + </summary> + </member> + <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Achievement_Submit_Dto.project_id"> + <summary> + 椤圭洰鍚嶇О + </summary> + </member> + <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Achievement_List_Dto.add_time"> + <summary> + 娣诲姞/鏇存柊鏃堕棿 + </summary> + </member> + <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Achievement_List_Dto.status"> + <summary> + 鐘舵�� + </summary> + </member> + <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Achievement_List_Dto.class_id"> + <summary> + 褰掑睘鍒嗙被锛堝瓙绫诲瀷锛� + </summary> + </member> + <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Achievement_List_Dto.doc_name"> + <summary> + 鍚嶇О + </summary> + </member> + <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Achievement_List_Dto.project_id"> + <summary> + 椤圭洰id + </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Classification_Submit_Dto.code"> <summary> @@ -362,6 +430,11 @@ 鍒嗙被浠g爜 </summary> </member> + <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocumentSearch.class_id"> + <summary> + 浜岀骇鍒嗙被 + </summary> + </member> <member name="T:DocumentServiceAPI.Application.DocManage.Services.DocumentManageService"> <summary> 鏂囨。绠$悊 diff --git a/DocumentServiceAPI.Model/cyDocumentModel/Doc_Achievement.cs b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Achievement.cs new file mode 100644 index 0000000..c749af9 --- /dev/null +++ b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Achievement.cs @@ -0,0 +1,80 @@ +锘縰sing SqlSugar; + +namespace DocumentServiceAPI.Model.cyDocumentModel +{ + ///<summary> + ///涓氱哗绠$悊 + ///</summary> + [SugarTable("t_doc_achievement")] + public class Doc_Achievement : Doc_Base + { + public Doc_Achievement() + { + } + + /// <summary> + /// id + /// </summary> + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int id { get; set; } + + /// <summary> + /// 褰掑睘鍒嗙被锛堝瓙绫诲瀷锛� + /// </summary> + public int? classification_id { get; set; } + + /// <summary> + /// 椤圭洰id + /// </summary> + public int? project_id { get; set; } + + /// <summary> + /// 鍚嶇О + /// </summary> + public string achievement_name { get; set; } + + /// <summary> + /// 涓爣閫氱煡涔� + /// </summary> + public string zbtzs_url { get; set; } + + /// <summary> + /// 鍚堝悓 + /// </summary> + public string ht_url { get; set; } + + /// <summary> + /// 楠屾敹鎶ュ憡 + /// </summary> + public string ysbg_url { get; set; } + + /// <summary> + /// 浠樻鍑瘉 + /// </summary> + public string fkpz_url { get; set; } + + /// <summary> + /// 鐢ㄦ埛璇勪环 + /// </summary> + public string yhpj_url { get; set; } + + /// <summary> + /// 鑾峰璇佷功 + /// </summary> + public string hjzs_url { get; set; } + + /// <summary> + /// 鍏宠仈鍒嗙被 + /// </summary> + [SugarColumn(IsIgnore = true)] + [Navigate(NavigateType.OneToOne, nameof(classification_id))] + public Doc_Classification? DocClassification { get; set; } + + /// <summary> + /// 鍏宠仈椤圭洰 + /// </summary> + [SugarColumn(IsIgnore = true)] + [Navigate(NavigateType.OneToOne, nameof(project_id))] + public Document_ProjectInfo? DocProject { get; set; } + } +} -- Gitblit v1.9.1