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