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