From 65d00bdb20608516fe2c6ed880162aa3d314cea9 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期三, 16 八月 2023 10:19:45 +0800
Subject: [PATCH] Merge branch 'master' of http://47.108.235.38:8080/r/DocumentService

---
 DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs                          |  149 ++++++++
 DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs    |   10 
 DocumentServiceAPI.Application/System/OrganizationAppService.cs               |   21 
 DocumentServiceAPI.Web.Entry/appsettings.json                                 |    2 
 DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs    |   40 ++
 DocumentServiceAPI.Model/cyDocumentModel/Doc_Classification.cs                |   13 
 DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs            |  137 +++++++
 DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs          |  282 +++++++++++++++
 DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml             |  249 +++++++++++++
 DocumentServiceAPI.Application/DocManage/Services/DocClassificationService.cs |   35 +
 DocumentServiceAPI.Utility/UtilitySearch.cs                                   |   90 +++++
 DocumentServiceAPI.Utility/PageBaseSearch.cs                                  |   29 +
 DocumentServiceAPI.Application/DocManage/DocClassificationManageAppService.cs |   17 
 13 files changed, 1,034 insertions(+), 40 deletions(-)

diff --git a/DocumentServiceAPI.Application/DocManage/DocManageAppService.cs b/DocumentServiceAPI.Application/DocManage/DocClassificationManageAppService.cs
similarity index 84%
rename from DocumentServiceAPI.Application/DocManage/DocManageAppService.cs
rename to DocumentServiceAPI.Application/DocManage/DocClassificationManageAppService.cs
index f09fa68..de9221f 100644
--- a/DocumentServiceAPI.Application/DocManage/DocManageAppService.cs
+++ b/DocumentServiceAPI.Application/DocManage/DocClassificationManageAppService.cs
@@ -8,11 +8,11 @@
     /// <summary>
     /// 璧勬枡鍒嗙被绠$悊
     /// </summary>
-    public class DocManageAppService : IDynamicApiController
+    public class DocClassificationManageAppService : IDynamicApiController
     {
         private readonly DocClassificationService _classificationService;
 
-        public DocManageAppService(DocClassificationService classificationService)
+        public DocClassificationManageAppService(DocClassificationService classificationService)
         {
             _classificationService = classificationService;
         }
@@ -55,6 +55,17 @@
         }
 
         /// <summary>
+        /// 鏍规嵁绫诲瀷鏌ヨ鏁版嵁
+        /// </summary>
+        /// <param name="page"></param>
+        /// <returns></returns>
+        public async Task<IActionResult> PostItemList(DocClassificationSearch page)
+        {
+            var data = await _classificationService.GetListAsync(c => c.status == 1 && c.parent_code == page.Code);
+            return new JsonResult(data);
+        }
+
+        /// <summary>
         /// 娣诲姞鏁版嵁
         /// </summary>
         /// <param name="info"></param>
@@ -69,7 +80,7 @@
             doc.parent_code = info.code;
             doc.sort_id = 99;
             doc.status = info.status;
-            doc.tenant_code = "";
+            doc.tenant_code = info.tenant_id;
             
             var msg =await _classificationService.InsertAsync(doc);
             return new JsonResult(msg);
diff --git a/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs b/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs
new file mode 100644
index 0000000..fd87b88
--- /dev/null
+++ b/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs
@@ -0,0 +1,282 @@
+锘縰sing DocumentServiceAPI.Application.DocManage.Dtos;
+using DocumentServiceAPI.Application.DocManage.Services;
+using DocumentServiceAPI.Application.System.Services;
+using DocumentServiceAPI.Model.cyDocumentModel;
+using DocumentServiceAPI.Utility;
+using System.Linq.Expressions;
+
+namespace DocumentServiceAPI.Application.DocManage
+{
+    /// <summary>
+    /// 璧勬枡绠$悊
+    /// </summary>
+    public class DocumentManageAppService : IDynamicApiController
+    {
+        private readonly DocClassificationService _classificationService;
+        private readonly DocumentManageService _docManageService;
+        private readonly OrganizationService _organizationService;
+        private readonly FileManageService _fileManageService;
+
+
+
+        public DocumentManageAppService(DocClassificationService classService, DocumentManageService docService, OrganizationService orgService,FileManageService fileManageService)
+        {
+            _classificationService = classService;
+            _docManageService = docService;
+            _organizationService = orgService;
+            _fileManageService = fileManageService;
+        }
+
+        /// <summary>
+        /// 妫�鏌ュ悕绉伴噸澶�
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        public async Task<bool> CheckNameDuplicate(Document_Submit_Dto model)
+        {
+            var msg = false;
+            var ck =await _docManageService.GetFirstAsync(c=>c.doc_name==model.name && c.doc_code==model.code && c.classification_id==model.class_id && c.id!=model.id);
+            if (ck != null)
+            {
+                msg = true;
+            }
+            return msg;
+        }
+
+        /// <summary>
+        /// 鏍规嵁鍒嗛〉鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="page"></param>
+        /// <returns></returns>
+        public async Task<IActionResult> PostListPage(DocumentPageSearch page)
+        {
+            PageResult<Document_List_Dto> result = new PageResult<Document_List_Dto>();
+
+            try
+            {
+                Expression<Func<Doc_Info, bool>> expression = t => true;
+
+                expression = expression.And(t => t.doc_code == page.Code && t.is_del==false);
+                if (page.ClassCode.HasValue)
+                {
+                    expression = expression.And(t => t.classification_id == page.ClassCode);
+                }
+                if (!string.IsNullOrEmpty(page.Name))
+                {
+                    expression = expression.And(t => t.doc_name.Contains(page.Name));
+                }
+                if (page.Status.HasValue)
+                {
+                    expression = expression.And(t => t.status == page.Status);
+                }
+                if (page.OrganizationCode.HasValue)
+                {
+                    expression = expression.And(t => t.org_id == page.OrganizationCode);
+                }
+                RefAsync<int> total = 0;
+                var data = await _docManageService.Context.Queryable<Doc_Info>()
+                        .Includes(c => c.DocClassification)
+                        .Includes(c=>c.DocOrganization)
+                        .Where(expression)
+                        .ToPageListAsync(page.PageIndex, page.PageSize, total);
+
+                if (data != null && total > 0)
+                {
+                    result.Items = data.Select(c => new Document_List_Dto()
+                    {
+                        add_time = c.add_time,
+                        class_id = c.classification_id,
+                        class_name = c.DocClassification?.doc_classification,
+                        doc_name = c.doc_name,
+                        id = c.id,
+                        org_id = c.org_id,
+                        org_name = c.DocOrganization.UnitName,
+                        project_id = c.project_id,
+                        project_name = "",
+                        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="info"></param>
+        /// <returns></returns>
+        public async Task<bool> PostAddDocumentInfo(Document_Submit_Dto info)
+        {
+            bool msg = false;
+
+            Doc_Info doc = new Doc_Info();            
+            doc.add_time = DateTime.Now;
+            doc.classification_id = info.class_id;
+            doc.doc_code = info.code;
+            doc.doc_name = info.name;
+            doc.is_del = false;
+            doc.org_id = info.org_id;
+            doc.status = info.status;
+            doc.tenant_code = info.tenant_id;
+            
+            var id =await _docManageService.InsertReturnIdentityAsync(doc);
+            if (id > 0)
+            {
+                if(info.files!=null&& info.files.Count > 0)
+                {
+                    foreach (var item in info.files)
+                    {
+                        File_Info file = new File_Info();
+                        file.doc_id = id;                        
+                        file.filenewname = item.filenewname.Length > 40 ? item.filenewname.Substring(item.filenewname.Length - 40) : item.filenewname;
+                        file.fileoldname = item.fileoldname.Length > 40 ? item.fileoldname.Substring(item.fileoldname.Length - 40) : item.fileoldname;
+                        file.filepath = item.filepath;
+                        file.fileservername = item.fileservername;
+                        file.filesize = item.filesize;
+                        file.filetype = item.filetype;
+                        file.status = 1;
+                        file.suffix = item.suffix;
+                        file.uptime = DateTime.Now;
+                        file.up_userid = item.up_userid;
+                        file.up_username = item.up_username;
+                        await _fileManageService.InsertAsync(file);
+                    }
+                }
+                msg = true;
+            }
+            return msg;
+        }
+
+
+
+
+
+        /// <summary>
+        /// 鏍规嵁绫诲瀷鏌ヨ鏁版嵁
+        /// </summary>
+        /// <param name="page"></param>
+        /// <returns></returns>
+        public async Task<IActionResult> PostItemList(DocClassificationSearch page)
+        {
+            var data = await _classificationService.GetListAsync(c => c.status == 1 && c.parent_code == page.Code);
+            return new JsonResult(data);
+        }
+
+
+        /// <summary>
+        /// 淇敼鏁版嵁
+        /// </summary>
+        /// <param name="info"></param>
+        /// <returns></returns>
+        public async Task<IActionResult> PostEdtInfo(Classification_Submit_Dto info)
+        {
+            var msg = false;
+            var model = await _classificationService.GetByIdAsync(info.id);
+            if (model != null)
+            {
+                model.add_time = DateTime.Now;
+                model.doc_classification = info.name;
+                model.status = info.status;
+
+                msg = await _classificationService.UpdateAsync(model);
+            }
+            
+            return new JsonResult(msg);
+        }
+
+        /// <summary>
+        /// 鍒犻櫎鏁版嵁
+        /// </summary>
+        /// <param name="doc"></param>
+        /// <returns></returns>
+        public async Task<IActionResult> PostDelInfo(Document_Submit_Dto doc)
+        {
+            bool msg = false;
+            //鍋囧垹闄�
+            var model = await _docManageService.GetByIdAsync(doc.id);
+            if (model != null)
+            {
+                if(model.tenant_code==doc.tenant_id && !model.is_del)
+                {
+                    model.is_del = true;
+                    msg = await _docManageService.UpdateAsync(model);
+                }                
+            }
+            return new JsonResult(msg);
+        }
+
+
+
+        /// <summary>
+        /// 娣诲姞鏁版嵁
+        /// </summary>
+        /// <param name="info"></param>
+        /// <returns></returns>
+        public async Task<IActionResult> PostAddFilesInfo(Classification_Submit_Dto info)
+        {
+            Doc_Classification doc = new Doc_Classification();
+            doc.add_time = DateTime.Now;
+            doc.doc_classification = info.name;
+            doc.doc_classification_code = "";
+            doc.is_system = false;
+            doc.parent_code = info.code;
+            doc.sort_id = 99;
+            doc.status = info.status;
+            doc.tenant_code = info.tenant_id;
+
+            var msg = await _classificationService.InsertAsync(doc);
+            return new JsonResult(msg);
+        }
+
+        /// <summary>
+        /// 淇敼鏁版嵁
+        /// </summary>
+        /// <param name="info"></param>
+        /// <returns></returns>
+        public async Task<IActionResult> PostEdtFileInfo(Classification_Submit_Dto info)
+        {
+            var msg = false;
+            var model = await _classificationService.GetByIdAsync(info.id);
+            if (model != null)
+            {
+                model.add_time = DateTime.Now;
+                model.doc_classification = info.name;
+                model.status = info.status;
+
+                msg = await _classificationService.UpdateAsync(model);
+            }
+
+            return new JsonResult(msg);
+        }
+
+        /// <summary>
+        /// 鍒犻櫎鏁版嵁
+        /// </summary>
+        /// <param name="doc"></param>
+        /// <returns></returns>
+        public async Task<IActionResult> PostDelFileInfo(Document_Submit_Dto doc)
+        {
+            bool msg = false;
+            //鍋囧垹闄�
+            var model = await _docManageService.GetByIdAsync(doc.id);
+            if (model != null)
+            {
+                if (model.tenant_code == doc.tenant_id && !model.is_del)
+                {
+                    model.is_del = true;
+                    msg = await _docManageService.UpdateAsync(model);
+                }
+            }
+            return new JsonResult(msg);
+        }
+    }
+}
diff --git a/DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs b/DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs
index cfd30fd..28b486c 100644
--- a/DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs
+++ b/DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs
@@ -1,15 +1,11 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace DocumentServiceAPI.Application.DocManage.Dtos
+锘縩amespace DocumentServiceAPI.Application.DocManage.Dtos
 {
     public class Classification_Submit_Dto
     {
         public int id { get; set; }
 
+        public int tenant_id { get; set; }
+
         public string name { get; set; }
 
         /// <summary>
diff --git a/DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs b/DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs
new file mode 100644
index 0000000..4d84e43
--- /dev/null
+++ b/DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs
@@ -0,0 +1,137 @@
+锘縰sing DocumentServiceAPI.Model.cyDocumentModel;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DocumentServiceAPI.Application.DocManage.Dtos
+{
+    /// <summary>
+    /// 鏂囨。淇℃伅
+    /// </summary>
+    public class Document_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? org_id { get; set; }
+
+        public string org_name { get; set; }
+
+        /// <summary>
+        /// 椤圭洰id
+        /// </summary>
+        public int? project_id { get; set; }
+
+        public string project_name { get; set; }
+    }
+
+    /// <summary>
+    /// 鎻愪氦鏂囨。淇℃伅
+    /// </summary>
+    public class Document_Submit_Dto
+    {
+        public int id { get; set; }
+
+        public int tenant_id { get; set; }
+
+        /// <summary>
+        /// 鍒嗙被id
+        /// </summary>
+        public int class_id { get; set; }
+        public string name { get; set; }
+
+        /// <summary>
+        /// 鏂囨。缂栫爜
+        /// </summary>           
+        public string code { get; set; }
+
+        /// <summary>
+        /// 鎶曟爣鍗曚綅
+        /// </summary>
+        public int org_id { get; set; }
+
+        public int status { get; set; }
+
+        public List<DocumentFile_Submit_Dto> files { get; set; }
+    }
+
+    /// <summary>
+    /// 鎻愪氦鏂囦欢淇℃伅
+    /// </summary>
+    public class DocumentFile_Submit_Dto
+    {
+        /// <summary>
+        /// 鍘熸枃浠跺悕绉�
+        /// </summary>           
+        public string fileoldname { get; set; }
+
+        /// <summary>
+        /// 鏂板悕绉�
+        /// </summary>           
+        public string filenewname { get; set; }
+
+        /// <summary>
+        /// 淇濆瓨鏂囦欢鍚嶇О
+        /// </summary>           
+        public string fileservername { get; set; }
+
+        /// <summary>
+        /// 鏂囦欢澶у皬锛堝瓧鑺傦級
+        /// </summary>           
+        public int filesize { get; set; }
+
+        /// <summary>
+        /// 鍚庣紑鍚�
+        /// </summary>           
+        public string suffix { get; set; }
+
+        /// <summary>
+        /// 鏂囨。ID
+        /// </summary>
+        public int doc_id { get; set; }
+
+        /// <summary>
+        /// 鏂囦欢绫诲瀷
+        /// </summary>
+        public string filetype { get; set; }
+
+        /// <summary>
+        /// 涓婁紶浜哄憳
+        /// </summary>           
+        public int up_userid { get; set; }
+
+        /// <summary>
+        /// 涓婁紶浜哄憳
+        /// </summary>           
+        public string up_username { get; set; }
+
+        public string filepath { get; set; }
+
+    }
+}
diff --git a/DocumentServiceAPI.Application/DocManage/Services/DocClassificationService.cs b/DocumentServiceAPI.Application/DocManage/Services/DocClassificationService.cs
new file mode 100644
index 0000000..83a206b
--- /dev/null
+++ b/DocumentServiceAPI.Application/DocManage/Services/DocClassificationService.cs
@@ -0,0 +1,35 @@
+锘縰sing DocumentServiceAPI.Core;
+using DocumentServiceAPI.Model.cyDocumentModel;
+using DocumentServiceAPI.Utility;
+
+namespace DocumentServiceAPI.Application.DocManage.Services
+{
+    public class DocClassificationPageSearch : PageBaseSearch
+    {
+        /// <summary>
+        /// 鍒嗙被浠g爜
+        /// </summary>
+        public string Code { get; set; }
+
+        /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        public int? Status { get; set; }
+    }
+
+    public class DocClassificationSearch : BaseSearch
+    {
+        /// <summary>
+        /// 鍒嗙被浠g爜
+        /// </summary>
+        public string Code { get; set; }
+
+    }
+
+    /// <summary>
+    /// 鏂囨。鍒嗙被
+    /// </summary>
+    public class DocClassificationService : BaseRepository<Doc_Classification>, ITransient
+    {
+    }
+}
diff --git a/DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs b/DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs
index 675d4d3..e7cacd4 100644
--- a/DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs
+++ b/DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs
@@ -4,7 +4,10 @@
 
 namespace DocumentServiceAPI.Application.DocManage.Services
 {
-    public class DocClassificationPageSearch : PageBaseSearch
+    /// <summary>
+    /// 鏂囨。鍒嗛〉鏌ヨ鏉′欢
+    /// </summary>
+    public class DocumentPageSearch : PageBaseSearch
     {
         /// <summary>
         /// 鍒嗙被浠g爜
@@ -12,15 +15,46 @@
         public string Code { get; set; }
 
         /// <summary>
+        /// 绫诲埆ID
+        /// </summary>
+        public int? ClassCode { get; set; }
+
+        /// <summary>
+        /// 鏂囨。鍚嶇О
+        /// </summary>
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 鍗曚綅ID
+        /// </summary>
+        public int? OrganizationCode { get; set; }
+
+        /// <summary>
         /// 鐘舵��
         /// </summary>
         public int? Status { get; set; }
     }
 
+    public class DocumentSearch : BaseSearch
+    {
+        /// <summary>
+        /// 鍒嗙被浠g爜
+        /// </summary>
+        public string Code { get; set; }
+
+    }
+
     /// <summary>
-    /// 鏂囨。鍒嗙被
+    /// 鏂囨。绠$悊
     /// </summary>
-    public class DocClassificationService : BaseRepository<Doc_Classification>, ITransient
+    public class DocumentManageService : BaseRepository<Doc_Info>, ITransient
+    {
+    }
+
+    /// <summary>
+    /// 鏂囦欢绠$悊
+    /// </summary>
+    public class FileManageService : BaseRepository<File_Info>, ITransient
     {
     }
 }
diff --git a/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml b/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml
index 74d4491..982fdf5 100644
--- a/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml
+++ b/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml
@@ -4,49 +4,229 @@
         <name>DocumentServiceAPI.Application</name>
     </assembly>
     <members>
-        <member name="T:DocumentServiceAPI.Application.DocManage.DocManageAppService">
+        <member name="T:DocumentServiceAPI.Application.DocManage.DocClassificationManageAppService">
             <summary>
             璧勬枡鍒嗙被绠$悊
             </summary>
         </member>
-        <member name="M:DocumentServiceAPI.Application.DocManage.DocManageAppService.GetInfo(System.Int32)">
+        <member name="M:DocumentServiceAPI.Application.DocManage.DocClassificationManageAppService.GetInfo(System.Int32)">
             <summary>
             鏍规嵁ID鏌ヨ瀵硅薄
             </summary>
             <param name="id"></param>
             <returns></returns>
         </member>
-        <member name="M:DocumentServiceAPI.Application.DocManage.DocManageAppService.PostListPage(DocumentServiceAPI.Application.DocManage.Services.DocClassificationPageSearch)">
+        <member name="M:DocumentServiceAPI.Application.DocManage.DocClassificationManageAppService.PostListPage(DocumentServiceAPI.Application.DocManage.Services.DocClassificationPageSearch)">
             <summary>
             鏍规嵁鍒嗛〉鏉′欢鏌ヨ鍒嗛〉鏁版嵁
             </summary>
             <param name="page"></param>
             <returns></returns>
         </member>
-        <member name="M:DocumentServiceAPI.Application.DocManage.DocManageAppService.PostAddInfo(DocumentServiceAPI.Application.DocManage.Dtos.Classification_Submit_Dto)">
+        <member name="M:DocumentServiceAPI.Application.DocManage.DocClassificationManageAppService.PostItemList(DocumentServiceAPI.Application.DocManage.Services.DocClassificationSearch)">
+            <summary>
+            鏍规嵁绫诲瀷鏌ヨ鏁版嵁
+            </summary>
+            <param name="page"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.DocManage.DocClassificationManageAppService.PostAddInfo(DocumentServiceAPI.Application.DocManage.Dtos.Classification_Submit_Dto)">
             <summary>
             娣诲姞鏁版嵁
             </summary>
             <param name="info"></param>
             <returns></returns>
         </member>
-        <member name="M:DocumentServiceAPI.Application.DocManage.DocManageAppService.PostEdtInfo(DocumentServiceAPI.Application.DocManage.Dtos.Classification_Submit_Dto)">
+        <member name="M:DocumentServiceAPI.Application.DocManage.DocClassificationManageAppService.PostEdtInfo(DocumentServiceAPI.Application.DocManage.Dtos.Classification_Submit_Dto)">
             <summary>
             淇敼鏁版嵁
             </summary>
             <param name="info"></param>
             <returns></returns>
         </member>
-        <member name="M:DocumentServiceAPI.Application.DocManage.DocManageAppService.PostDelInfo(System.Int32)">
+        <member name="M:DocumentServiceAPI.Application.DocManage.DocClassificationManageAppService.PostDelInfo(System.Int32)">
             <summary>
             鍒犻櫎鏁版嵁
             </summary>
             <param name="id"></param>
             <returns></returns>
         </member>
+        <member name="T:DocumentServiceAPI.Application.DocManage.DocumentManageAppService">
+            <summary>
+            璧勬枡绠$悊
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.CheckNameDuplicate(DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto)">
+            <summary>
+            妫�鏌ュ悕绉伴噸澶�
+            </summary>
+            <param name="model"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostListPage(DocumentServiceAPI.Application.DocManage.Services.DocumentPageSearch)">
+            <summary>
+            鏍规嵁鍒嗛〉鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+            </summary>
+            <param name="page"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostAddDocumentInfo(DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto)">
+            <summary>
+            娣诲姞鏁版嵁
+            </summary>
+            <param name="info"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostItemList(DocumentServiceAPI.Application.DocManage.Services.DocClassificationSearch)">
+            <summary>
+            鏍规嵁绫诲瀷鏌ヨ鏁版嵁
+            </summary>
+            <param name="page"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostEdtInfo(DocumentServiceAPI.Application.DocManage.Dtos.Classification_Submit_Dto)">
+            <summary>
+            淇敼鏁版嵁
+            </summary>
+            <param name="info"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostDelInfo(DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto)">
+            <summary>
+            鍒犻櫎鏁版嵁
+            </summary>
+            <param name="doc"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostAddFilesInfo(DocumentServiceAPI.Application.DocManage.Dtos.Classification_Submit_Dto)">
+            <summary>
+            娣诲姞鏁版嵁
+            </summary>
+            <param name="info"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostEdtFileInfo(DocumentServiceAPI.Application.DocManage.Dtos.Classification_Submit_Dto)">
+            <summary>
+            淇敼鏁版嵁
+            </summary>
+            <param name="info"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostDelFileInfo(DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto)">
+            <summary>
+            鍒犻櫎鏁版嵁
+            </summary>
+            <param name="doc"></param>
+            <returns></returns>
+        </member>
         <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Classification_Submit_Dto.code">
             <summary>
             鐖剁骇缂栫爜
+            </summary>           
+        </member>
+        <member name="T:DocumentServiceAPI.Application.DocManage.Dtos.Document_List_Dto">
+            <summary>
+            鏂囨。淇℃伅
+            </summary>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_List_Dto.add_time">
+            <summary>
+            娣诲姞/鏇存柊鏃堕棿
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_List_Dto.status">
+            <summary>
+            鐘舵��
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_List_Dto.class_id">
+            <summary>
+            褰掑睘鍒嗙被锛堝瓙绫诲瀷锛�
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_List_Dto.doc_name">
+            <summary>
+            鍚嶇О
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_List_Dto.org_id">
+            <summary>
+            鍗曚綅ID
+            </summary>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_List_Dto.project_id">
+            <summary>
+            椤圭洰id
+            </summary>
+        </member>
+        <member name="T:DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto">
+            <summary>
+            鎻愪氦鏂囨。淇℃伅
+            </summary>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto.class_id">
+            <summary>
+            鍒嗙被id
+            </summary>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto.code">
+            <summary>
+            鏂囨。缂栫爜
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto.org_id">
+            <summary>
+            鎶曟爣鍗曚綅
+            </summary>
+        </member>
+        <member name="T:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto">
+            <summary>
+            鎻愪氦鏂囦欢淇℃伅
+            </summary>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.fileoldname">
+            <summary>
+            鍘熸枃浠跺悕绉�
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.filenewname">
+            <summary>
+            鏂板悕绉�
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.fileservername">
+            <summary>
+            淇濆瓨鏂囦欢鍚嶇О
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.filesize">
+            <summary>
+            鏂囦欢澶у皬锛堝瓧鑺傦級
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.suffix">
+            <summary>
+            鍚庣紑鍚�
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.doc_id">
+            <summary>
+            鏂囨。ID
+            </summary>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.filetype">
+            <summary>
+            鏂囦欢绫诲瀷
+            </summary>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.up_userid">
+            <summary>
+            涓婁紶浜哄憳
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.up_username">
+            <summary>
+            涓婁紶浜哄憳
             </summary>           
         </member>
         <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocClassificationPageSearch.Code">
@@ -59,9 +239,59 @@
             鐘舵��
             </summary>
         </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocClassificationSearch.Code">
+            <summary>
+            鍒嗙被浠g爜
+            </summary>
+        </member>
         <member name="T:DocumentServiceAPI.Application.DocManage.Services.DocClassificationService">
             <summary>
             鏂囨。鍒嗙被
+            </summary>
+        </member>
+        <member name="T:DocumentServiceAPI.Application.DocManage.Services.DocumentPageSearch">
+            <summary>
+            鏂囨。鍒嗛〉鏌ヨ鏉′欢
+            </summary>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocumentPageSearch.Code">
+            <summary>
+            鍒嗙被浠g爜
+            </summary>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocumentPageSearch.ClassCode">
+            <summary>
+            绫诲埆ID
+            </summary>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocumentPageSearch.Name">
+            <summary>
+            鏂囨。鍚嶇О
+            </summary>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocumentPageSearch.OrganizationCode">
+            <summary>
+            鍗曚綅ID
+            </summary>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocumentPageSearch.Status">
+            <summary>
+            鐘舵��
+            </summary>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocumentSearch.Code">
+            <summary>
+            鍒嗙被浠g爜
+            </summary>
+        </member>
+        <member name="T:DocumentServiceAPI.Application.DocManage.Services.DocumentManageService">
+            <summary>
+            鏂囨。绠$悊
+            </summary>
+        </member>
+        <member name="T:DocumentServiceAPI.Application.DocManage.Services.FileManageService">
+            <summary>
+            鏂囦欢绠$悊
             </summary>
         </member>
         <member name="T:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController">
@@ -632,6 +862,13 @@
             鍛樺伐鎻愰啋 
             </summary>
         </member>
+        <member name="M:DocumentServiceAPI.Application.System.OrganizationAppService.GetOrgItemList(System.Int32)">
+            <summary>
+            鏌ヨ鍏徃Item鏁版嵁
+            </summary>
+            <param name="code">绉熸埛id</param>
+            <returns></returns>
+        </member>
         <member name="T:DocumentServiceAPI.Application.System.Services.OrganizationService">
             <summary>
             鎶曟爣鍗曚綅鎿嶄綔绫�
diff --git a/DocumentServiceAPI.Application/System/OrganizationAppService.cs b/DocumentServiceAPI.Application/System/OrganizationAppService.cs
index 1f27467..7a5fd24 100644
--- a/DocumentServiceAPI.Application/System/OrganizationAppService.cs
+++ b/DocumentServiceAPI.Application/System/OrganizationAppService.cs
@@ -1,11 +1,7 @@
 锘縰sing DocumentServiceAPI.Application.System.Services;
+using DocumentServiceAPI.Application.UserAndLogin.Services;
 using DocumentServiceAPI.Model;
 using DocumentServiceAPI.Utility;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 
 namespace DocumentServiceAPI.Application.System
 {
@@ -17,10 +13,23 @@
     public class OrganizationAppService : IDynamicApiController
     {
         private readonly OrganizationService _businessService;
+        private readonly UserService _userServer;
 
-        public OrganizationAppService(OrganizationService businessService)
+        public OrganizationAppService(OrganizationService businessService, UserService userService)
         {
             _businessService = businessService;
+            _userServer = userService;
+        }
+
+        /// <summary>
+        /// 鏌ヨ鍏徃Item鏁版嵁
+        /// </summary>
+        /// <param name="code">绉熸埛id</param>
+        /// <returns></returns>
+        public async Task<IActionResult> GetOrgItemList(int code)
+        {
+            var data = await _userServer.GetUserUnitList(code);
+            return new JsonResult(data);
         }
 
         public IActionResult GetInfo()
diff --git a/DocumentServiceAPI.Model/cyDocumentModel/Doc_Classification.cs b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Classification.cs
index 2e1fb59..d772545 100644
--- a/DocumentServiceAPI.Model/cyDocumentModel/Doc_Classification.cs
+++ b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Classification.cs
@@ -44,6 +44,11 @@
         /// </summary>
         public bool is_system { get; set; }
 
+        /// <summary>
+        /// 鎺掑簭
+        /// </summary>
+        public int sort_id { get; set; }
+
     }
 
     public abstract class Doc_Base
@@ -51,7 +56,7 @@
         /// <summary>
         /// 绉熸埛鏍囪瘑
         /// </summary>           
-        public string tenant_code { get; set; }
+        public int tenant_code { get; set; }
 
         /// <summary>
         /// 娣诲姞/鏇存柊鏃堕棿
@@ -62,10 +67,6 @@
         /// 鐘舵��
         /// </summary>           
         public int status { get; set; }
-
-        /// <summary>
-        /// 鎺掑簭
-        /// </summary>
-        public int sort_id { get; set; }
+        
     }
 }
diff --git a/DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs
new file mode 100644
index 0000000..5b494ca
--- /dev/null
+++ b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs
@@ -0,0 +1,149 @@
+锘縰sing SqlSugar;
+
+namespace DocumentServiceAPI.Model.cyDocumentModel
+{
+    ///<summary>
+    ///鏂囨。绠$悊绫�
+    ///</summary>
+    [SugarTable("t_document")]
+    public class Doc_Info : Doc_Base
+    {
+        public Doc_Info()
+        {
+        }
+
+        /// <summary>
+        /// id
+        /// </summary>           
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+        public int id { get; set; }
+
+        /// <summary>
+        /// 鏂囨。鍒嗙被缂栫爜
+        /// </summary>           
+        public string doc_code { get; set; }
+
+        /// <summary>
+        /// 褰掑睘鍒嗙被锛堝瓙绫诲瀷锛�
+        /// </summary>           
+        public int? classification_id { get; set; }
+
+        /// <summary>
+        /// 鍚嶇О
+        /// </summary>           
+        public string doc_name { get; set; }
+
+        /// <summary>
+        /// 鍗曚綅ID
+        /// </summary>
+        public int? org_id { get; set; }
+
+        /// <summary>
+        /// 椤圭洰id
+        /// </summary>
+        public int? project_id { get; set; }
+
+        /// <summary>
+        /// 鍒犻櫎鏍囪
+        /// </summary>
+        public bool is_del { 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(org_id))]
+        public Document_TenderUnit? DocOrganization { get; set; }
+    }
+
+
+    ///<summary>
+    ///鏂囦欢淇℃伅绫�
+    ///</summary>
+    [SugarTable("t_doc_file")]
+    public class File_Info
+    {
+        /// <summary>
+        /// id
+        /// </summary>           
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+        public int id { get; set; }
+
+        /// <summary>
+        /// 鍘熸枃浠跺悕绉�
+        /// </summary>           
+        public string fileoldname { get; set; }
+
+        /// <summary>
+        /// 鏂板悕绉�
+        /// </summary>           
+        public string filenewname { get; set; }
+
+        /// <summary>
+        /// 淇濆瓨鏂囦欢鍚嶇О
+        /// </summary>           
+        public string fileservername { get; set; }
+        
+        /// <summary>
+        /// 鏂囦欢澶у皬锛堝瓧鑺傦級
+        /// </summary>           
+        public int filesize { get; set; }
+
+        /// <summary>
+        /// 鍚庣紑鍚�
+        /// </summary>           
+        public string suffix { get; set; }
+
+        /// <summary>
+        /// 鏇存柊鏃堕棿
+        /// </summary>           
+        public DateTime uptime { get; set; }
+
+        /// <summary>
+        /// 鏂囨。ID
+        /// </summary>
+        public int doc_id { get; set; }
+
+        /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        public int status { get; set; }
+
+        /// <summary>
+        /// 鏂囦欢绫诲瀷
+        /// 001-璧勮川鏂囨。
+        /// 002-涓氱哗鏂囨。
+        /// 003-鏂规鏂囨。
+        /// 004-璐㈠姟鏂囨。
+        /// 005-鎶�鏈枃妗�
+        /// 006-璁惧鏂囨。
+        /// 007-璐ㄦ鏂囨。
+        /// 008-鍒跺害娴佺▼鏂囨。
+        /// </summary>
+        public string filetype { get; set; }
+
+        /// <summary>
+        /// 涓婁紶浜哄憳
+        /// </summary>           
+        public int up_userid { get; set; }
+
+        /// <summary>
+        /// 涓婁紶浜哄憳
+        /// </summary>           
+        public string up_username { get; set; }
+        
+        /// <summary>
+        /// 璺緞
+        /// </summary>           
+        public string filepath { get; set; }
+    }
+
+
+}
diff --git a/DocumentServiceAPI.Utility/PageBaseSearch.cs b/DocumentServiceAPI.Utility/PageBaseSearch.cs
index a4a5aa8..598b1dd 100644
--- a/DocumentServiceAPI.Utility/PageBaseSearch.cs
+++ b/DocumentServiceAPI.Utility/PageBaseSearch.cs
@@ -1,15 +1,9 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace DocumentServiceAPI.Utility
+锘縩amespace DocumentServiceAPI.Utility
 {
     /// <summary>
     /// 鍒嗛〉鏌ヨ鏉′欢鍩虹被
     /// </summary>
-    public abstract class PageBaseSearch
+    public abstract class PageBaseSearch: BaseSearch
     {
         /// <summary>
         /// 椤电爜
@@ -20,6 +14,25 @@
         /// 鍒嗛〉澶у皬
         /// </summary>
         public int PageSize { get; set; } = 20;
+        
+    }
+
+    public abstract class BaseSearch
+    {
+        /// <summary>
+        /// 鍏徃ID
+        /// </summary>
+        public string CompanyID { get; set; }
+
+        /// <summary>
+        /// 绉熸埛ID
+        /// </summary>
+        public string TenantID { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛ID
+        /// </summary>
+        public string UserID { get; set; }
 
         /// <summary>
         /// 寮�濮嬫棩鏈�
diff --git a/DocumentServiceAPI.Utility/UtilitySearch.cs b/DocumentServiceAPI.Utility/UtilitySearch.cs
new file mode 100644
index 0000000..180b982
--- /dev/null
+++ b/DocumentServiceAPI.Utility/UtilitySearch.cs
@@ -0,0 +1,90 @@
+锘縰sing System.Linq.Expressions;
+
+namespace DocumentServiceAPI.Utility
+{
+    /// <summary>
+    /// Lambda琛ㄨ揪寮忔嫾鎺ユ墿灞曠被
+    /// </summary>
+    public static class UtilitySearch
+    {
+        /// <summary>
+        /// Lambda琛ㄨ揪寮忔嫾鎺�
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="first"></param>
+        /// <param name="second"></param>
+        /// <param name="merge"></param>
+        /// <returns></returns>
+        public static Expression<T> Compose<T>(this Expression<T> first, Expression<T> second, Func<Expression, Expression, Expression> merge)
+        {
+            // 鏋勫缓鍙傛暟鏄犲皠锛堜粠绗簩涓弬鏁板埌绗竴涓弬鏁帮級
+            var map = first.Parameters.Select((f, i) => new { f, s = second.Parameters[i] }).ToDictionary(p => p.s, p => p.f);
+            // 灏嗙浜屼釜lambda琛ㄨ揪寮忎腑鐨勫弬鏁版浛鎹负绗竴涓猯ambda琛ㄨ揪寮忕殑鍙傛暟
+            var secondBody = ParameterRebinder.ReplaceParameters(map, second.Body);
+            // 灏唋ambda琛ㄨ揪寮忎綋鐨勭粍鍚堝簲鐢ㄤ簬绗竴涓〃杈惧紡涓殑鍙傛暟
+            return Expression.Lambda<T>(merge(first.Body, secondBody), first.Parameters);
+        }
+        /// <summary>
+        /// and鎵╁睍
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="first"></param>
+        /// <param name="second"></param>
+        /// <returns></returns>
+        public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> first, Expression<Func<T, bool>> second)
+        {
+            return first.Compose(second, Expression.AndAlso);
+        }
+        /// <summary>
+        /// or鎵╁睍
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="first"></param>
+        /// <param name="second"></param>
+        /// <returns></returns>
+        public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> first, Expression<Func<T, bool>> second)
+        {
+            return first.Compose(second, Expression.OrElse);
+        }
+    }
+    /// <summary>
+    /// 
+    /// </summary>
+    public class ParameterRebinder : ExpressionVisitor
+    {
+        private readonly Dictionary<ParameterExpression, ParameterExpression> map;
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="map"></param>
+        public ParameterRebinder(Dictionary<ParameterExpression, ParameterExpression> map)
+        {
+            this.map = map ?? new Dictionary<ParameterExpression, ParameterExpression>();
+        }
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="map"></param>
+        /// <param name="exp"></param>
+        /// <returns></returns>
+        public static Expression ReplaceParameters(Dictionary<ParameterExpression, ParameterExpression> map, Expression exp)
+        {
+            return new ParameterRebinder(map).Visit(exp);
+        }
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="p"></param>
+        /// <returns></returns>
+        protected override Expression VisitParameter(ParameterExpression p)
+        {
+            ParameterExpression replacement;
+            if (map.TryGetValue(p, out replacement))
+            {
+                p = replacement;
+            }
+            return base.VisitParameter(p);
+        }
+
+    }
+}
diff --git a/DocumentServiceAPI.Web.Entry/appsettings.json b/DocumentServiceAPI.Web.Entry/appsettings.json
index 78d8527..550e6de 100644
--- a/DocumentServiceAPI.Web.Entry/appsettings.json
+++ b/DocumentServiceAPI.Web.Entry/appsettings.json
@@ -12,7 +12,7 @@
     {
 
       "ConfigId": "default", //澶氬簱閰嶇疆ID
-      "ConnectionString": "Server=localhost\\SQLEXPRESS;Database=CY_DocumentSystemOnline;User ID=sa;Password=123456;",
+      "ConnectionString": "Server=.;Database=doc_new;User ID=sa;Password=123456;",
       "DbType": "SqlServer",
       "IsAutoCloseConnection": true
 

--
Gitblit v1.9.1