From 90858c80d9921b555119f41060c1f883f6e6ffc5 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期四, 26 十二月 2024 12:49:35 +0800
Subject: [PATCH] 提交

---
 DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs                                  |   19 
 DocumentServiceAPI.Application/UserAndLogin/ViewMode/UserInfo.cs                      |    5 
 DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs            |   23 
 DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs                    |   35 +
 DocumentServiceAPI.Application/ProjectInfo/ViewMode/DocumentProjectInfoDTO.cs         |  116 ++++
 DocumentServiceAPI.Application/DocManage/Services/DocShebeinengliService.cs           |   14 
 DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs                  |  394 ++++++++++++++++
 DocumentFile.Service/ReturnMsg.cs                                                     |    5 
 DocumentServiceAPI.Application/UserAndLogin/Services/UserService.cs                   |   20 
 DocumentServiceAPI.Model/cyDocumentModel/Doc_Shebeinengli.cs                          |  101 ++++
 DocumentFile.Service/Controllers/DocumentController.cs                                |   37 +
 DocumentServiceAPI.Application/ProjectInfo/ProjectInfoController.cs                   |   54 ++
 DocumentServiceAPI.Application/ProjectInfo/Services/ProjectInfoService.cs             |  454 ++++++++++++++++++
 DocumentServiceAPI.Application/ProjectInfo/dto/Mapper.cs                              |    4 
 DocumentServiceAPI.Application/DocManage/Dtos/Achievement_Submit_Dto.cs               |   80 +++
 DocumentServiceAPI.Model/cyDocumentModel/Doc_Achievement.cs                           |    5 
 DocumentServiceAPI.Application/ProjectInfo/Services/Interfaces/IProjectInfoService.cs |   15 
 DocumentServiceAPI.Application/ProjectInfo/Services/SheZhiService.cs                  |   23 
 DocumentServiceAPI.Model/cyDocumentModel/Document_ProjectExpand.cs                    |    7 
 19 files changed, 1,392 insertions(+), 19 deletions(-)

diff --git a/DocumentFile.Service/Controllers/DocumentController.cs b/DocumentFile.Service/Controllers/DocumentController.cs
index ad042ab..3521756 100644
--- a/DocumentFile.Service/Controllers/DocumentController.cs
+++ b/DocumentFile.Service/Controllers/DocumentController.cs
@@ -135,6 +135,43 @@
             return new JsonResult(msg);
         }
 
+
+
+        /// <summary>
+        /// 鍒犻櫎鏂囦欢
+        /// </summary>
+        /// <param name="delurl"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public IActionResult FileLastWriteTime([FromForm] string delurl)
+        {
+            ReturnMsg msg = new ReturnMsg();
+            try
+            {
+                if (delurl != null && delurl.Length > 0)
+                {
+                    var dir = AppDomain.CurrentDomain.BaseDirectory;
+
+                    if (!string.IsNullOrEmpty(delurl))
+                    {
+                        var path = dir + delurl;
+                        if (System.IO.File.Exists(path))
+                        {
+                            var lastWriteTime = System.IO.File.GetLastWriteTime(path);
+                            msg.lastWriteTime = lastWriteTime.ToString();
+                        }
+                    }
+                    msg.code = 1;
+                }
+            }
+            catch (Exception ex)
+            {
+                NLogProvider.GetInstance().Error(ex);
+            }
+            return new JsonResult(msg);
+        }
+
+
         /// <summary>
         /// 涓嬭浇鏂囦欢
         /// </summary>
diff --git a/DocumentFile.Service/ReturnMsg.cs b/DocumentFile.Service/ReturnMsg.cs
index e8ee1e3..0e4445f 100644
--- a/DocumentFile.Service/ReturnMsg.cs
+++ b/DocumentFile.Service/ReturnMsg.cs
@@ -34,5 +34,10 @@
         /// 璁板綍鏁伴噺
         /// </summary>
         public int count { get; set; }
+
+        /// <summary>
+        /// 鏍囪瘑浠g爜
+        /// </summary>
+        public string lastWriteTime { get; set; }
     }
 }
diff --git a/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs b/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs
index d1486e9..d440eea 100644
--- a/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs
+++ b/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs
@@ -23,9 +23,11 @@
         private readonly ProjectManageService _projectService;
         private readonly DocAchievementService _achievementService;
         private readonly IRedisCacheService _redisCache;
+        private readonly DocShebeinengliService _shebeinengliService;
 
         public DocumentManageAppService(DocClassificationService classService, DocumentManageService docService, OrganizationService orgService,
-            FileManageService fileManageService, ProjectManageService projectService, DocAchievementService achievementService, IRedisCacheService redisCase)
+            FileManageService fileManageService, ProjectManageService projectService, DocAchievementService achievementService, IRedisCacheService redisCase
+            , DocShebeinengliService shebeinengliService)
         {
             _classificationService = classService;
             _docManageService = docService;
@@ -33,6 +35,7 @@
             _fileManageService = fileManageService;
             _projectService = projectService;
             _achievementService = achievementService;
+            _shebeinengliService = shebeinengliService;
 
             _redisCache = redisCase;
         }
@@ -105,6 +108,16 @@
                 }
 
                 return new JsonResult(data.OrderBy(x => x.sort).Select(c => new { name = c.achievement_name, idcode = c.id+ "/002" }).ToList());
+            }
+            else if (search.Code == "006")
+            {
+                var data = await _shebeinengliService.GetListAsync(c => c.status == 1 && 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.OrderBy(x => x.sort).Select(c => new { name = c.shebeinengli_name, idcode = c.id + "/006" }).ToList());
             }
             else
             {
@@ -204,6 +217,9 @@
                         project_name = c.DocProject?.ProjectName,                        
                         status = c.status,
                         sort = c.sort,
+                        zb_time = c.zb_time.HasValue ? c.zb_time.Value.ToString("yyyy/MM/dd") : "",
+                        zige_code = c.zige_code,
+                        zige_code_name = c.document_Dictionary?.Name
                     }).ToList();
 
                 }
@@ -256,6 +272,8 @@
             doc.status = info.status;
             doc.tenant_code = info.tenant_id;
             doc.sort = info.sort;
+            doc.zb_time = info.zb_time;
+            doc.zige_code = info.zige_code;
 
             var id =await _docManageService.InsertReturnIdentityAsync(doc);
             if (id > 0)
@@ -304,6 +322,8 @@
                 doc.org_id = info.org_id;
                 doc.status = info.status;
                 doc.sort = info.sort;
+                doc.zb_time = info.zb_time;
+                doc.zige_code = info.zige_code;
                 if (await _docManageService.UpdateAsync(doc))
                 {
                     //鏂版彁浜ょ殑鏂囦欢
@@ -464,6 +484,62 @@
 
                 return new JsonResult(list_Dtos);
             }
+            else if (code == "006")
+            {
+                var data = await _shebeinengliService.GetByIdAsync(id);
+                List<FileInfo_List_Dto> list_Dtos = new List<FileInfo_List_Dto>();
+                if (data != null)
+                {
+                    if (!string.IsNullOrEmpty(data.sbzp_url) && data.sbzp_fuhe > 0)
+                    {
+                        FileInfo_List_Dto fileInfo_List_Dto = new FileInfo_List_Dto();
+                        fileInfo_List_Dto.filePath = data.sbzp_url;
+                        fileInfo_List_Dto.fileNewName = "璁惧鐓х墖";
+                        fileInfo_List_Dto.suffix = Path.GetExtension(data.sbzp_url);
+                        list_Dtos.Add(fileInfo_List_Dto);
+                    }
+
+                    if (!string.IsNullOrEmpty(data.gmht_url) && data.gmht_fuhe > 0)
+                    {
+                        FileInfo_List_Dto fileInfo_List_Dto = new FileInfo_List_Dto();
+                        fileInfo_List_Dto.filePath = data.gmht_url;
+                        fileInfo_List_Dto.fileNewName = "璐拱鍚堝悓";
+                        fileInfo_List_Dto.suffix = Path.GetExtension(data.gmht_url);
+                        list_Dtos.Add(fileInfo_List_Dto);
+                    }
+
+                    if (!string.IsNullOrEmpty(data.fp_url) && data.fp_fuhe > 0)
+                    {
+                        FileInfo_List_Dto fileInfo_List_Dto = new FileInfo_List_Dto();
+                        fileInfo_List_Dto.filePath = data.fp_url;
+                        fileInfo_List_Dto.fileNewName = "鍙戠エ";
+                        fileInfo_List_Dto.suffix = Path.GetExtension(data.fp_url);
+                        list_Dtos.Add(fileInfo_List_Dto);
+                    }
+
+                    if (!string.IsNullOrEmpty(data.fkpz_url) && data.fkpz_fuhe > 0)
+                    {
+                        FileInfo_List_Dto fileInfo_List_Dto = new FileInfo_List_Dto();
+                        fileInfo_List_Dto.filePath = data.fkpz_url;
+                        fileInfo_List_Dto.fileNewName = "浠樻鍑瘉";
+                        fileInfo_List_Dto.suffix = Path.GetExtension(data.fkpz_url);
+                        list_Dtos.Add(fileInfo_List_Dto);
+                    }
+
+                    if (!string.IsNullOrEmpty(data.csmp_url) && data.csmp_fuhe > 0)
+                    {
+                        FileInfo_List_Dto fileInfo_List_Dto = new FileInfo_List_Dto();
+                        fileInfo_List_Dto.filePath = data.csmp_url;
+                        fileInfo_List_Dto.fileNewName = "鍙傛暟锛堥摥鐗岋級";
+                        fileInfo_List_Dto.suffix = Path.GetExtension(data.csmp_url);
+                        list_Dtos.Add(fileInfo_List_Dto);
+                    }
+                }
+
+
+
+                return new JsonResult(list_Dtos);
+            }
             else
             {
                 var data = await _fileManageService.GetListAsync(c => c.status == 1 && c.doc_id == id);
@@ -605,6 +681,7 @@
                               zbtzs=c.zbtzs_url,
                         status = c.status,
                         sort = c.sort,
+                        zb_time = c.zb_time.HasValue? c.zb_time.Value.ToString("yyyy/MM/dd") :"",
                     }).ToList();
 
                 }
@@ -629,10 +706,10 @@
         {
             var msg = false;
             var ck = await _achievementService.GetFirstAsync(c=>c.status==1 && c.tenant_code==model.tenant_id 
-            && c.achievement_name==model.name && c.classification_id==c.classification_id);
+            && c.achievement_name==model.name && c.classification_id== model.class_id);
             if (ck != null)
             {
-                if(model.id>0 && model.id != ck.id)
+                if (model.id <= 0 || (model.id > 0 && model.id != ck.id))
                 {
                     msg = true;
                 }
@@ -671,6 +748,7 @@
                 doc.status = 1;
                 doc.tenant_code = info.tenant_id;
                 doc.sort = info.sort;
+                doc.zb_time = info.zb_time;
                 return await _achievementService.UpdateAsync(doc);
             }
             else
@@ -691,6 +769,7 @@
                 doc.status = 1;
                 doc.tenant_code = info.tenant_id;
                 doc.sort = info.sort;
+                doc.zb_time = info.zb_time;
 
                 return await _achievementService.InsertAsync(doc);
             }
@@ -739,6 +818,7 @@
                 achievement_Submit_Dto.tenant_id = data.tenant_code;
                 achievement_Submit_Dto.status = data.status;
                 achievement_Submit_Dto.sort = data.sort;
+                achievement_Submit_Dto.zb_time = data.zb_time;
 
 
                 return new JsonResult(achievement_Submit_Dto);
@@ -748,5 +828,313 @@
         }
 
         #endregion
+
+
+
+        #region 璁惧鑳藉姏
+
+        /// <summary>
+        /// 鏍规嵁鍒嗛〉鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="page"></param>
+        /// <returns></returns>
+        public async Task<IActionResult> PostShebeinengliListPage(DocumentPageSearch page)
+        {
+            PageResult<Achievement_List_Dto> result = new PageResult<Achievement_List_Dto>();
+
+            try
+            {
+                Expression<Func<Doc_Shebeinengli, 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.shebeinengli_name.Contains(page.Name));
+                }
+                if (page.sbzp.HasValue)
+                {
+                    if (page.sbzp == 1)
+                    {
+                        expression = expression.And(t => t.sbzp_url != null);
+                    }
+                    else
+                    {
+                        expression = expression.And(t => t.sbzp_url == null);
+                    }
+
+                }
+                if (page.gmht.HasValue)
+                {
+                    if (page.gmht == 1)
+                    {
+                        expression = expression.And(t => t.gmht_url != null);
+                    }
+                    else
+                    {
+                        expression = expression.And(t => t.gmht_url == null);
+                    }
+
+                }
+
+                if (page.fp.HasValue)
+                {
+                    if (page.fp == 1)
+                    {
+                        expression = expression.And(t => t.fp_url != null);
+                    }
+                    else
+                    {
+                        expression = expression.And(t => t.fp_url == null);
+                    }
+
+                }
+
+                if (page.fkpz.HasValue)
+                {
+                    if (page.fkpz == 1)
+                    {
+                        expression = expression.And(t => t.fkpz_url != null);
+                    }
+                    else
+                    {
+                        expression = expression.And(t => t.fkpz_url == null);
+                    }
+
+                }
+
+                if (page.csmp.HasValue)
+                {
+                    if (page.csmp == 1)
+                    {
+                        expression = expression.And(t => t.csmp_url != null);
+                    }
+                    else
+                    {
+                        expression = expression.And(t => t.csmp_url == null);
+                    }
+
+                }
+
+                
+
+                RefAsync<int> total = 0;
+                var data = await _shebeinengliService.Context.Queryable<Doc_Shebeinengli>()
+                        .Includes(c => c.DocClassification)
+                        //.Includes(c => c.DocProject)
+                        .Where(expression)
+                        .OrderBy(c => c.sort)
+                        .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.shebeinengli_name,//c.DocProject?.ProjectName,
+                     
+                        sbzp = c.sbzp_url,
+                        gmht = c.gmht_url,
+                        fp = c.fp_url,
+                        fkpz = c.fkpz_url,
+                        csmp = c.csmp_url,
+                        status = c.status,
+                        sort = c.sort,
+                        zb_time = c.zb_time.HasValue ? c.zb_time.Value.ToString("yyyy/MM/dd") : "",
+                        zige_code = (c.sbzp_zige.HasValue&& c.sbzp_zige >0 )
+                        || (c.gmht_zige.HasValue && c.gmht_zige > 0)
+                        || (c.fp_zige.HasValue && c.fp_zige > 0)
+                        || (c.fkpz_zige.HasValue && c.fkpz_zige > 0)
+                        || (c.csmp_zige.HasValue && c.csmp_zige > 0) ? 1:null,
+                    }).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> CheckDocShebeinengliDuplicate(Document_Submit_Dto model)
+        {
+            var msg = false;
+            var ck = await _shebeinengliService.GetFirstAsync(c => c.status == 1 && c.tenant_code == model.tenant_id
+            && c.shebeinengli_name == model.name && c.classification_id == model.class_id);
+            if (ck != null)
+            {
+                if (model.id <= 0  || (model.id > 0 && model.id != ck.id))
+                {
+                    msg = true;
+                }
+                else
+                {
+                    msg = false;
+                }
+
+            }
+            return msg;
+        }
+
+        /// <summary>
+        /// 娣诲姞鏁版嵁
+        /// </summary>
+        /// <param name="info"></param>
+        /// <returns></returns>
+        public async Task<bool> PostAddDocShebeinengli(Achievement_Submit_Dto info)
+        {
+            if (info.id > 0)
+            {
+                Doc_Shebeinengli doc = new Doc_Shebeinengli();
+                doc.id = info.id;
+                doc.add_time = DateTime.Now;
+                doc.classification_id = info.class_id;
+                doc.project_id = info.project_id;
+                doc.shebeinengli_name = info.name;
+
+               
+                doc.sbzp_url = info.sbzp;
+                doc.gmht_url = info.gmht;
+                doc.fp_url = info.fp;
+                doc.fkpz_url = info.fkpz;
+                doc.csmp_url = info.csmp;
+
+                doc.status = 1;
+                doc.tenant_code = info.tenant_id;
+                doc.sort = info.sort;
+                doc.zb_time = info.zb_time;
+                doc.zige_code = info.zige_code;
+
+                doc.sbzp_zige = info.sbzp_zige;
+                doc.gmht_zige = info.gmht_zige;
+                doc.fp_zige = info.fp_zige;
+                doc.fkpz_zige = info.fkpz_zige;
+                doc.csmp_zige = info.csmp_zige;
+
+                doc.sbzp_fuhe = info.sbzp_fuhe;
+                doc.gmht_fuhe = info.gmht_fuhe;
+                doc.fp_fuhe = info.fp_fuhe;
+                doc.fkpz_fuhe = info.fkpz_fuhe;
+                doc.csmp_fuhe = info.csmp_fuhe;
+
+                return await _shebeinengliService.UpdateAsync(doc);
+            }
+            else
+            {
+                Doc_Shebeinengli doc = new Doc_Shebeinengli();
+                doc.add_time = DateTime.Now;
+                doc.classification_id = info.class_id;
+                doc.project_id = info.project_id;
+                doc.shebeinengli_name = info.name;
+
+                doc.sbzp_url = info.sbzp;
+                doc.gmht_url = info.gmht;
+                doc.fp_url = info.fp;
+                doc.fkpz_url = info.fkpz;
+                doc.csmp_url = info.csmp;
+
+                doc.status = 1;
+                doc.tenant_code = info.tenant_id;
+                doc.sort = info.sort;
+                doc.zb_time = info.zb_time;
+                doc.zige_code = info.zige_code;
+
+                doc.sbzp_zige = info.sbzp_zige;
+                doc.gmht_zige = info.gmht_zige;
+                doc.fp_zige = info.fp_zige;
+                doc.fkpz_zige = info.fkpz_zige;
+                doc.csmp_zige = info.csmp_zige;
+
+                doc.sbzp_fuhe = info.sbzp_fuhe;
+                doc.gmht_fuhe = info.gmht_fuhe;
+                doc.fp_fuhe = info.fp_fuhe;
+                doc.fkpz_fuhe = info.fkpz_fuhe;
+                doc.csmp_fuhe = info.csmp_fuhe;
+
+                return await _shebeinengliService.InsertAsync(doc);
+            }
+
+        }
+
+
+
+        /// <summary>
+        /// 鍒犻櫎鏂囨。鏁版嵁
+        /// </summary>
+        /// <param name="doc"></param>
+        /// <returns></returns>
+        public async Task<IActionResult> PostDelShebeinengli(Achievement_Submit_Dto doc)
+        {
+            bool msg = false;
+            var sss = new Doc_Shebeinengli();
+            sss.id = doc.id;
+
+            msg = await _shebeinengliService.DeleteAsync(sss);
+            return new JsonResult(msg);
+        }
+
+
+        /// <summary>
+        /// 鏍规嵁鏂囨。鍙锋煡璇�
+        /// </summary>
+        /// <param name="search"></param>
+        /// <returns></returns>
+        public async Task<IActionResult> PostShebeinengliInfo(DocumentSearch search)
+        {
+            var data = await _shebeinengliService.GetFirstAsync(c => c.id == search.ID && c.tenant_code == search.TenantID);
+            if (data != null)
+            {
+                Achievement_Submit_Dto achievement_Submit_Dto = new Achievement_Submit_Dto();
+                achievement_Submit_Dto.id = data.id;
+                achievement_Submit_Dto.class_id = data.classification_id.Value;
+                //achievement_Submit_Dto.project_id = data.project_id.Value;
+                achievement_Submit_Dto.name = data.shebeinengli_name;
+                achievement_Submit_Dto.sbzp = data.sbzp_url;
+                achievement_Submit_Dto.gmht = data.gmht_url;
+                achievement_Submit_Dto.fp = data.fp_url;
+                achievement_Submit_Dto.fkpz = data.fkpz_url;
+                achievement_Submit_Dto.csmp = data.csmp_url;
+                achievement_Submit_Dto.tenant_id = data.tenant_code;
+                achievement_Submit_Dto.status = data.status;
+                achievement_Submit_Dto.sort = data.sort;
+                achievement_Submit_Dto.zb_time = data.zb_time;
+                achievement_Submit_Dto.zige_code = data.zige_code;
+
+                achievement_Submit_Dto.sbzp_zige = data.sbzp_zige;
+                achievement_Submit_Dto.gmht_zige = data.gmht_zige;
+                achievement_Submit_Dto.fp_zige = data.fp_zige;
+                achievement_Submit_Dto.fkpz_zige = data.fkpz_zige;
+                achievement_Submit_Dto.csmp_zige = data.csmp_zige;
+
+                achievement_Submit_Dto.sbzp_fuhe = data.sbzp_fuhe;
+                achievement_Submit_Dto.gmht_fuhe = data.gmht_fuhe;
+                achievement_Submit_Dto.fp_fuhe = data.fp_fuhe;
+                achievement_Submit_Dto.fkpz_fuhe = data.fkpz_fuhe;
+                achievement_Submit_Dto.csmp_fuhe = data.csmp_fuhe;
+
+                return new JsonResult(achievement_Submit_Dto);
+            }
+
+            return null;
+        }
+
+        #endregion
     }
 }
diff --git a/DocumentServiceAPI.Application/DocManage/Dtos/Achievement_Submit_Dto.cs b/DocumentServiceAPI.Application/DocManage/Dtos/Achievement_Submit_Dto.cs
index 6048213..2d67482 100644
--- a/DocumentServiceAPI.Application/DocManage/Dtos/Achievement_Submit_Dto.cs
+++ b/DocumentServiceAPI.Application/DocManage/Dtos/Achievement_Submit_Dto.cs
@@ -33,10 +33,54 @@
         public string hjzs { get; set; }
         public int status { get; set; }
 
+
+        /// <summary>
+        /// 璁惧鐓х墖
+        /// </summary>
+        public string sbzp { get; set; }
+
+        /// <summary>
+        /// 璐拱鍚堝悓
+        /// </summary>           
+        public string gmht { get; set; }
+
+        /// <summary>
+        /// 鍙戠エ
+        /// </summary>
+        public string fp { get; set; }
+
+
+        /// <summary>
+        /// 鍙傛暟锛堥摥鐗岋級
+        /// </summary>
+        public string csmp { get; set; }
+
         /// <summary>
         /// 鎺掑簭
         /// </summary>
         public int? sort { get; set; }
+
+        /// <summary>
+        /// 娣诲姞/鏇存柊鏃堕棿
+        /// </summary>           
+        public DateTime? zb_time { get; set; }
+
+        /// <summary>
+        /// 璧勬牸鏂囦欢绫诲瀷
+        /// </summary>
+        public int? zige_code { get; set; }
+
+        public int? sbzp_zige { get; set; }
+        public int? gmht_zige { get; set; }
+        public int? fp_zige { get; set; }
+        public int? fkpz_zige { get; set; }
+        public int? csmp_zige { get; set; }
+
+        public int? sbzp_fuhe { get; set; }
+        public int? gmht_fuhe { get; set; }
+        public int? fp_fuhe { get; set; }
+        public int? fkpz_fuhe { get; set; }
+        public int? csmp_fuhe { get; set; }
     }
 
     public class Achievement_List_Dto
@@ -88,5 +132,41 @@
         /// 鎺掑簭
         /// </summary>
         public int? sort { get; set; }
+
+
+        /// <summary>
+        /// 璁惧鐓х墖
+        /// </summary>
+        public string sbzp { get; set; }
+
+        /// <summary>
+        /// 璐拱鍚堝悓
+        /// </summary>           
+        public string gmht { get; set; }
+
+        /// <summary>
+        /// 鍙戠エ
+        /// </summary>
+        public string fp { get; set; }
+
+        /// <summary>
+        /// 鍙傛暟锛堥摥鐗岋級
+        /// </summary>
+        public string csmp { get; set; }
+
+
+        /// <summary>
+        /// 娣诲姞/鏇存柊鏃堕棿
+        /// </summary>           
+        public string zb_time { get; set; }
+
+        /// <summary>
+        /// 璧勬牸鏂囦欢绫诲瀷
+        /// </summary>
+        public int? zige_code { get; set; }
+
+
+       
+
     }
 }
diff --git a/DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs b/DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs
index 2e6cb9b..3665839 100644
--- a/DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs
+++ b/DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs
@@ -53,6 +53,18 @@
         /// 鎺掑簭
         /// </summary>
         public int? sort { get; set; }
+
+        /// <summary>
+        /// 璧勬牸鏂囦欢绫诲瀷
+        /// </summary>
+        public int? zige_code { get; set; }
+
+        public string zige_code_name { get; set; }
+
+        /// <summary>
+        /// 鑾峰鏃堕棿
+        /// </summary>           
+        public string zb_time { get; set; }
     }
 
     /// <summary>
@@ -92,6 +104,16 @@
         /// </summary>
         public int? sort { get; set; }
 
+        /// <summary>
+        /// 璧勬牸鏂囦欢绫诲瀷
+        /// </summary>
+        public int? zige_code { get; set; }
+
+        /// <summary>
+        /// 鑾峰鏃堕棿
+        /// </summary>           
+        public DateTime? zb_time { get; set; }
+
         public List<DocumentFile_Submit_Dto> newfiles { get; set; }
 
         public List<DocumentFile_Submit_Dto> editfiles { get; set; }
@@ -121,6 +143,9 @@
             this.status = doc.status;
             this.files = filelist;
             this.sort = doc.sort;
+            this.zb_time = doc.zb_time;
+            this.zige_code = doc.zige_code;
+
         }
 
         public int id { get; set; }
@@ -140,6 +165,16 @@
 
         public int? sort { get; set; }
 
+        /// <summary>
+        /// 璧勬牸鏂囦欢绫诲瀷
+        /// </summary>
+        public int? zige_code { get; set; }
+
+        /// <summary>
+        /// 鑾峰鏃堕棿
+        /// </summary>           
+        public DateTime? zb_time { get; set; }
+
         public List<FileInfo_List_Dto> files { get; set; }
     }
 
diff --git a/DocumentServiceAPI.Application/DocManage/Services/DocShebeinengliService.cs b/DocumentServiceAPI.Application/DocManage/Services/DocShebeinengliService.cs
new file mode 100644
index 0000000..b45fb9f
--- /dev/null
+++ b/DocumentServiceAPI.Application/DocManage/Services/DocShebeinengliService.cs
@@ -0,0 +1,14 @@
+锘縰sing DocumentServiceAPI.Core;
+using DocumentServiceAPI.Model.cyDocumentModel;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DocumentServiceAPI.Application.DocManage.Services
+{
+    public class DocShebeinengliService : BaseRepository<Doc_Shebeinengli>, ITransient
+    {
+    }
+}
diff --git a/DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs b/DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs
index c876905..9203517 100644
--- a/DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs
+++ b/DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs
@@ -45,6 +45,29 @@
         public int? yhpj { get; set; }
 
         public int? hjzs { get; set; }
+
+
+
+
+        /// <summary>
+        /// 璁惧鐓х墖
+        /// </summary>
+        public int? sbzp { get; set; }
+
+        /// <summary>
+        /// 璐拱鍚堝悓
+        /// </summary>           
+        public int? gmht { get; set; }
+
+        /// <summary>
+        /// 鍙戠エ
+        /// </summary>
+        public int? fp { get; set; }
+
+        /// <summary>
+        /// 鍙傛暟锛堥摥鐗岋級
+        /// </summary>
+        public int? csmp { get; set; }
     }
 
     public class DocumentSearch : BaseSearch
diff --git a/DocumentServiceAPI.Application/ProjectInfo/ProjectInfoController.cs b/DocumentServiceAPI.Application/ProjectInfo/ProjectInfoController.cs
index b43624d..1202f16 100644
--- a/DocumentServiceAPI.Application/ProjectInfo/ProjectInfoController.cs
+++ b/DocumentServiceAPI.Application/ProjectInfo/ProjectInfoController.cs
@@ -700,5 +700,59 @@
             return _projectInfoService.GetAchievementInfoMaxSortId(unitId);
 
         }
+
+        /// <summary>
+        /// 鑾峰彇鏈�澶ф帓搴�
+        /// </summary>
+        /// <param name="unitId"></param>
+        /// <returns></returns>
+        public Doc_Classification GetShebeinengliInfoMaxSortId(int unitId)
+        {
+            return _projectInfoService.GetShebeinengliInfoMaxSortId(unitId);
+
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍒嗙被鍒楄〃postDocumentTempletList
+        /// </summary>
+        /// <param name="page"></param>
+        /// <returns></returns>
+        public PageResult<Document_DocumentTempletInfoDTO> postDocumentTempletList(DocumentProjectInfoPageSearch page)
+        {
+            return _projectInfoService.postDocumentTempletList(page);
+        }
+
+
+        /// <summary>
+        ///鍒犻櫎鍒嗙被GetDeleteDocumentTempletInfo
+        /// </summary>
+        /// <param name="ID"></param>
+        /// <returns></returns>
+        public bool GetDeleteDocumentTempletInfo(int ID)
+        {
+            return _projectInfoService.GetDeleteDocumentTempletInfo(ID);
+        }
+
+
+
+        /// <summary>
+        /// 淇濆瓨Document_DocumentTempletInfo
+        /// </summary>
+        /// <param name="dp"></param>
+        /// <returns></returns>
+        public bool SaveDocumentTempletInfo(Document_DocumentTempletInfo dp)
+        {
+            return _projectInfoService.SaveDocumentTempletInfo(dp);
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰GetTempletModelByProjectId
+        /// <param name="projiectid"></param>
+        /// </summary>
+        public Document_DocumentTempletInfo GetTempletModelByProjectId(int projiectid)
+        {
+            return _projectInfoService.GetTempletModelByProjectId(projiectid);
+        }
     }
 }
diff --git a/DocumentServiceAPI.Application/ProjectInfo/Services/Interfaces/IProjectInfoService.cs b/DocumentServiceAPI.Application/ProjectInfo/Services/Interfaces/IProjectInfoService.cs
index 454d504..6933e99 100644
--- a/DocumentServiceAPI.Application/ProjectInfo/Services/Interfaces/IProjectInfoService.cs
+++ b/DocumentServiceAPI.Application/ProjectInfo/Services/Interfaces/IProjectInfoService.cs
@@ -153,5 +153,20 @@
         public Doc_Classification GetDocumentInfoMaxSortId(int unitId, string doccode);
 
         public Doc_Classification GetAchievementInfoMaxSortId(int unitId);
+
+        public Doc_Classification GetShebeinengliInfoMaxSortId(int unitId);
+
+
+
+        public PageResult<Document_DocumentTempletInfoDTO> postDocumentTempletList(DocumentProjectInfoPageSearch page);
+
+
+        public bool GetDeleteDocumentTempletInfo(int ID);
+
+        public bool SaveDocumentTempletInfo(Document_DocumentTempletInfo dp);
+
+
+        public Document_DocumentTempletInfo GetTempletModelByProjectId(int projiectid);
+
     }
 }
diff --git a/DocumentServiceAPI.Application/ProjectInfo/Services/ProjectInfoService.cs b/DocumentServiceAPI.Application/ProjectInfo/Services/ProjectInfoService.cs
index f1ddd59..b54d682 100644
--- a/DocumentServiceAPI.Application/ProjectInfo/Services/ProjectInfoService.cs
+++ b/DocumentServiceAPI.Application/ProjectInfo/Services/ProjectInfoService.cs
@@ -1,5 +1,6 @@
 锘縰sing AngleSharp.Dom;
 using AngleSharp.Html.Parser;
+using DocumentServiceAPI.Application.DocManage.Dtos;
 using DocumentServiceAPI.Application.ProjectInfo.Services.Interfaces;
 using DocumentServiceAPI.Application.ProjectInfo.ViewMode;
 using DocumentServiceAPI.Application.Repository;
@@ -117,7 +118,7 @@
             document_ProjectInfo.ProjectUrl = dp.ProjectUrl;
             var parser = new HtmlParser();
             var list11 = new List<AngleSharp.Dom.IElement>();
-            if (url.StartsWith("http://www.ccgp.gov.cn"))
+            if (url.StartsWith("http://www.ccgp.gov.cn")|| url.StartsWith("https://www.ccgp.gov.cn"))
             {
                 using (HttpClient client = new HttpClient())
                 {
@@ -143,29 +144,49 @@
                         }
                     }
                     document_ProjectInfo.PurchaseMethod = 0;
-                    if (document_ProjectInfo.ProjectName.IndexOf("鍏紑鎷涙爣")>=0)
+                    if (document_ProjectInfo.ProjectName.IndexOf("鍏紑鎷涙爣") >= 0)
                     {
                         document_ProjectInfo.PurchaseMethod = 3;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("鍏紑鎷涙爣", "").Replace("鍏憡", "");
                     }
                     else if (document_ProjectInfo.ProjectName.IndexOf("绔炰簤鎬ц皥鍒�") >= 0)
                     {
                         document_ProjectInfo.PurchaseMethod = 4;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("绔炰簤鎬ц皥鍒�", "").Replace("鍏憡", "");
                     }
                     else if (document_ProjectInfo.ProjectName.IndexOf("鍗曚竴鏉ユ簮") >= 0)
                     {
                         document_ProjectInfo.PurchaseMethod = 5;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("鍗曚竴鏉ユ簮", "").Replace("鍏憡", "");
                     }
                     else if (document_ProjectInfo.ProjectName.IndexOf("璇环") >= 0)
                     {
                         document_ProjectInfo.PurchaseMethod = 6;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("璇环", "").Replace("鍏憡", "");
                     }
                     else if (document_ProjectInfo.ProjectName.IndexOf("閭�璇�") >= 0)
                     {
                         document_ProjectInfo.PurchaseMethod = 31;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("閭�璇锋嫑鏍�", "").Replace("鍏憡", "");
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("绔炰簤鎬х鍟�") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 37;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("绔炰簤鎬х鍟�", "").Replace("鍏憡", "");
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("妗嗘灦鍗忚") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 38;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("妗嗘灦鍗忚", "").Replace("鍏憡", "");
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("姣旈��") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 39;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("姣旈��", "").Replace("鍏憡", "");
                     }
 
 
-                    
+
 
                     var vF_detail_content = document.All.Where(m => m.ClassName == "vF_detail_content").FirstOrDefault();
                     var td = vF_detail_content.QuerySelectorAll("p");
@@ -337,9 +358,35 @@
                     if (DateTime.TryParse(TenderTimes, out b))
                     {
                         document_ProjectInfo.TenderTime = b;
-                        document_ProjectInfo.SignupStartTime = b;
-                        document_ProjectInfo.SignupEndTime = b;
+                      
                     }
+
+
+                    var jiezhishijian = document.All.Where(m => m.HasAttribute("id") &&
+                                      m.GetAttribute("id").StartsWith("_notice_content_noticePurchaseTime-noticePurchaseTime")).FirstOrDefault();
+
+                    var jiezhishijians = jiezhishijian.QuerySelectorAll("span");
+                    if (jiezhishijians != null && jiezhishijians.Length > 0)
+                    {
+                        //for (int i = 0; i < jiezhishijians.Length; i++)
+                        //{
+                        //    if (jiezhishijians[i].TextContent.IndexOf("骞�") >= 0 && jiezhishijians[i].TextContent.IndexOf("銆�") < 0)
+                        //    {
+
+                        //    }
+                        //}
+                        if (DateTime.TryParse(jiezhishijians[0].TextContent.Trim(), out b))
+                        {
+                            document_ProjectInfo.SignupStartTime = b;
+                            
+                        }
+
+                        if (DateTime.TryParse(jiezhishijians[1].TextContent.Trim(), out b))
+                        {
+                            document_ProjectInfo.SignupEndTime = b;
+                        }
+                    }
+                       
 
 
 
@@ -347,25 +394,43 @@
                     if (document_ProjectInfo.ProjectName.IndexOf("鍏紑鎷涙爣") >= 0)
                     {
                         document_ProjectInfo.PurchaseMethod = 3;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("鍏紑鎷涙爣", "").Replace("鍏憡","");
                     }
                     else if (document_ProjectInfo.ProjectName.IndexOf("绔炰簤鎬ц皥鍒�") >= 0)
                     {
                         document_ProjectInfo.PurchaseMethod = 4;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("绔炰簤鎬ц皥鍒�", "").Replace("鍏憡", "");
                     }
                     else if (document_ProjectInfo.ProjectName.IndexOf("鍗曚竴鏉ユ簮") >= 0)
                     {
                         document_ProjectInfo.PurchaseMethod = 5;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("鍗曚竴鏉ユ簮", "").Replace("鍏憡", "");
                     }
                     else if (document_ProjectInfo.ProjectName.IndexOf("璇环") >= 0)
                     {
                         document_ProjectInfo.PurchaseMethod = 6;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("璇环", "").Replace("鍏憡", "");
                     }
                     else if (document_ProjectInfo.ProjectName.IndexOf("閭�璇�") >= 0)
                     {
                         document_ProjectInfo.PurchaseMethod = 31;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("閭�璇锋嫑鏍�", "").Replace("鍏憡", "");
                     }
-
-
+                    else if (document_ProjectInfo.ProjectName.IndexOf("绔炰簤鎬х鍟�") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 37;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("绔炰簤鎬х鍟�", "").Replace("鍏憡", "");
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("妗嗘灦鍗忚") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 38;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("妗嗘灦鍗忚", "").Replace("鍏憡", "");
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("姣旈��") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 39;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("姣旈��", "").Replace("鍏憡", "");
+                    }
 
 
                     var vF_detail_content = document.All.Where(m => m.LocalName == "div" &&
@@ -388,9 +453,77 @@
 
 
                             }
-        
+
+                            if (td[i].TextContent.IndexOf("椤圭洰鍚嶇О锛�") >= 0 && td[i].TextContent.IndexOf("銆�") < 0)
+                            {
+                                if (string.IsNullOrEmpty(document_ProjectInfo.ProjectName))
+                                {
+                                    document_ProjectInfo.ProjectName = td[i].TextContent.Replace("椤圭洰鍚嶇О锛�", "").Replace("1锛�", "").Replace("/", "").Trim();
+                                }
+
+
+
+                            }
+
+                            if (td[i].TextContent.IndexOf("閲囪喘鏂瑰紡锛�") >= 0 && td[i].TextContent.IndexOf("銆�") < 0)
+                            {
+                                if (td[i].TextContent.IndexOf("鍏紑鎷涙爣") >= 0)
+                                {
+                                    document_ProjectInfo.PurchaseMethod = 3;
+                                    document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("鍏紑鎷涙爣", "").Replace("鍏憡", "");
+                                }
+                                else if (td[i].TextContent.IndexOf("绔炰簤鎬ц皥鍒�") >= 0)
+                                {
+                                    document_ProjectInfo.PurchaseMethod = 4;
+                                    document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("绔炰簤鎬ц皥鍒�", "").Replace("鍏憡", "");
+                                }
+                                else if (td[i].TextContent.IndexOf("鍗曚竴鏉ユ簮") >= 0)
+                                {
+                                    document_ProjectInfo.PurchaseMethod = 5;
+                                    document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("鍗曚竴鏉ユ簮", "").Replace("鍏憡", "");
+                                }
+                                else if (td[i].TextContent.IndexOf("璇环") >= 0)
+                                {
+                                    document_ProjectInfo.PurchaseMethod = 6;
+                                    document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("璇环", "").Replace("鍏憡", "");
+                                }
+                                else if (td[i].TextContent.IndexOf("閭�璇�") >= 0)
+                                {
+                                    document_ProjectInfo.PurchaseMethod = 31;
+                                    document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("閭�璇锋嫑鏍�", "").Replace("鍏憡", "");
+                                }
+                                else if (td[i].TextContent.IndexOf("绔炰簤鎬х鍟�") >= 0)
+                                {
+                                    document_ProjectInfo.PurchaseMethod = 37;
+                                    document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("绔炰簤鎬х鍟�", "").Replace("鍏憡", "");
+                                }
+                                else if (td[i].TextContent.IndexOf("妗嗘灦鍗忚") >= 0)
+                                {
+                                    document_ProjectInfo.PurchaseMethod = 38;
+                                    document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("妗嗘灦鍗忚", "").Replace("鍏憡", "");
+                                }
+                                else if (td[i].TextContent.IndexOf("姣旈��") >= 0)
+                                {
+                                    document_ProjectInfo.PurchaseMethod = 39;
+                                    document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("姣旈��", "").Replace("鍏憡", "");
+                                }
+
+
+
+                            }
+
                         }
                     }
+
+                    var txtAgencyManager = document.All.Where(m => m.LocalName == "span" &&
+                                     m.HasAttribute("id") &&
+                                     m.GetAttribute("id").StartsWith("_notice_content_projectContact-managerName")).FirstOrDefault();
+                    if (txtAgencyManager != null)
+                    {
+                        document_ProjectInfo.AgencyManager = txtAgencyManager.TextContent;
+                    }
+                     
+
                     var lianxiren = document.All.Where(m => m.LocalName == "div" && m.ClassName == "innercontent").ToList();
                     foreach (var element  in lianxiren)
                     {
@@ -475,22 +608,42 @@
                     if (document_ProjectInfo.ProjectName.IndexOf("鍏紑鎷涙爣") >= 0)
                     {
                         document_ProjectInfo.PurchaseMethod = 3;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("鍏紑鎷涙爣", "").Replace("鍏憡", "");
                     }
                     else if (document_ProjectInfo.ProjectName.IndexOf("绔炰簤鎬ц皥鍒�") >= 0)
                     {
                         document_ProjectInfo.PurchaseMethod = 4;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("绔炰簤鎬ц皥鍒�", "").Replace("鍏憡", "");
                     }
                     else if (document_ProjectInfo.ProjectName.IndexOf("鍗曚竴鏉ユ簮") >= 0)
                     {
                         document_ProjectInfo.PurchaseMethod = 5;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("鍗曚竴鏉ユ簮", "").Replace("鍏憡", "");
                     }
                     else if (document_ProjectInfo.ProjectName.IndexOf("璇环") >= 0)
                     {
                         document_ProjectInfo.PurchaseMethod = 6;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("璇环", "").Replace("鍏憡", "");
                     }
                     else if (document_ProjectInfo.ProjectName.IndexOf("閭�璇�") >= 0)
                     {
                         document_ProjectInfo.PurchaseMethod = 31;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("閭�璇锋嫑鏍�", "").Replace("鍏憡", "");
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("绔炰簤鎬х鍟�") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 37;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("绔炰簤鎬х鍟�", "").Replace("鍏憡", "");
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("妗嗘灦鍗忚") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 38;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("妗嗘灦鍗忚", "").Replace("鍏憡", "");
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("姣旈��") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 39;
+                        document_ProjectInfo.ProjectName = document_ProjectInfo.ProjectName.Replace("姣旈��", "").Replace("鍏憡", "");
                     }
 
 
@@ -1282,16 +1435,16 @@
         public List<Document_AptitudeInfo> GetAptitudeInfoByUnitId(int UnitId)
         { 
 
-                var result = _db.Queryable<Doc_Info>().Where( x=>x.is_del == false && x.org_id == UnitId).ToList() ;//鎵ц鏌ヨ
+                var result = _db.Queryable<Doc_Info>().Where( x=>x.is_del == false && x.org_id == UnitId && x.zige_code > 0).OrderBy(x=>x.doc_code).OrderBy(x=>x.sort).ToList() ;//鎵ц鏌ヨ
 
             var ids = result.Select(x => x.id).ToArray();
-            var file = _db.Queryable<File_Info>().Where(x => ids.Contains(x.doc_id)).ToList();//鎵ц鏌ヨ
+            var file = _db.Queryable<File_Info>().Where(x => ids.Contains(x.doc_id) && x.status ==1 ).ToList();//鎵ц鏌ヨ
             var document_AptitudeInfos = new List<Document_AptitudeInfo>();
 
             foreach (var doc_Info  in result)
             {
                 var document_AptitudeInfo = new Document_AptitudeInfo();
-                var filesss = file.Where(x => x.doc_id == doc_Info.id).ToList();
+                var filesss = file.Where(x => x.doc_id == doc_Info.id).OrderBy(x => x.sort).ToList();
 
                 if(filesss!=null && filesss.Count > 0)
                 {
@@ -1322,8 +1475,174 @@
                 document_AptitudeInfo.UnitId = doc_Info.org_id.HasValue ? doc_Info.org_id.Value : 0; ;
                 document_AptitudeInfo.LastUpdateTime = doc_Info.add_time;
                 document_AptitudeInfo.LastUpdateName = "";
-                document_AptitudeInfo.AdviseFlag = 1;
+                document_AptitudeInfo.AdviseFlag = doc_Info.zige_code; ;
                 document_AptitudeInfo.UserId = doc_Info.tenant_code;
+
+                document_AptitudeInfos.Add(document_AptitudeInfo);
+            }
+
+            //var resultAchievement = _db.Queryable<Doc_Achievement>().Where(x => x.status == 1 && x.tenant_code == UnitId).OrderBy(x=>x.sort).ToList();//鎵ц鏌ヨ
+
+
+            //foreach (var achievement in resultAchievement)
+            //{
+            //    var document_AptitudeInfo = new Document_AptitudeInfo();
+            //    document_AptitudeInfo.FilePath = "";
+            //    document_AptitudeInfo.FileName = "";
+            //    document_AptitudeInfo.FileSize = 0;
+            //    if (!string.IsNullOrEmpty(achievement.zbtzs_url))
+            //    {
+            //        document_AptitudeInfo.FilePath += achievement.zbtzs_url;
+            //        document_AptitudeInfo.FileName += "涓爣閫氱煡涔�";
+            //        document_AptitudeInfo.FileSize += 0 ;
+            //        document_AptitudeInfo.FilePath += ";";
+            //        document_AptitudeInfo.FileName += ";";
+            //    }
+            //    if (!string.IsNullOrEmpty(achievement.ht_url))
+            //    {
+            //        document_AptitudeInfo.FilePath += achievement.ht_url;
+            //        document_AptitudeInfo.FileName += "鍚堝悓";
+            //        document_AptitudeInfo.FileSize += 0;
+            //        document_AptitudeInfo.FilePath += ";";
+            //        document_AptitudeInfo.FileName += ";";
+            //    }
+            //    if (!string.IsNullOrEmpty(achievement.ysbg_url))
+            //    {
+            //        document_AptitudeInfo.FilePath += achievement.ysbg_url;
+            //        document_AptitudeInfo.FileName += "楠屾敹鎶ュ憡";
+            //        document_AptitudeInfo.FileSize += 0;
+            //        document_AptitudeInfo.FilePath += ";";
+            //        document_AptitudeInfo.FileName += ";";
+            //    }
+            //    if (!string.IsNullOrEmpty(achievement.fkpz_url))
+            //    {
+            //        document_AptitudeInfo.FilePath += achievement.fkpz_url;
+            //        document_AptitudeInfo.FileName += "浠樻鍑瘉";
+            //        document_AptitudeInfo.FileSize += 0;
+            //        document_AptitudeInfo.FilePath += ";";
+            //        document_AptitudeInfo.FileName += ";";
+            //    }
+            //    if (!string.IsNullOrEmpty(achievement.yhpj_url))
+            //    {
+            //        document_AptitudeInfo.FilePath += achievement.yhpj_url;
+            //        document_AptitudeInfo.FileName += "鐢ㄦ埛璇勪环";
+            //        document_AptitudeInfo.FileSize += 0;
+            //        document_AptitudeInfo.FilePath += ";";
+            //        document_AptitudeInfo.FileName += ";";
+            //    }
+            //    if (!string.IsNullOrEmpty(achievement.hjzs_url))
+            //    {
+            //        document_AptitudeInfo.FilePath += achievement.hjzs_url;
+            //        document_AptitudeInfo.FileName += "鑾峰璇佷功";
+            //        document_AptitudeInfo.FileSize += 0;
+            //        document_AptitudeInfo.FilePath += ";";
+            //        document_AptitudeInfo.FileName += ";";
+            //    }
+
+            //    if (document_AptitudeInfo.FilePath.EndsWith(";"))
+            //    {
+            //        document_AptitudeInfo.FilePath = document_AptitudeInfo.FilePath.Substring(0, document_AptitudeInfo.FilePath.Length - 1);
+            //    }
+
+            //    if (document_AptitudeInfo.FileName.EndsWith(";"))
+            //    {
+            //        document_AptitudeInfo.FileName = document_AptitudeInfo.FileName.Substring(0, document_AptitudeInfo.FileName.Length - 1);
+            //    }
+
+
+            //    document_AptitudeInfo.AptitudeId = achievement.id;
+            //    document_AptitudeInfo.AptitudeName = achievement.achievement_name;
+            //    document_AptitudeInfo.AptitudeType = achievement.classification_id;
+            //    document_AptitudeInfo.IsUsed = achievement.status;
+
+
+            //    document_AptitudeInfo.FileVersionNo = "";
+            //    document_AptitudeInfo.SendTime = achievement.add_time.ToShortDateString();
+            //    document_AptitudeInfo.UnitId = achievement.tenant_code ;
+            //    document_AptitudeInfo.LastUpdateTime = achievement.add_time;
+            //    document_AptitudeInfo.LastUpdateName = "";
+            //    document_AptitudeInfo.AdviseFlag = 1;
+            //    document_AptitudeInfo.UserId = achievement.tenant_code;
+
+            //    document_AptitudeInfos.Add(document_AptitudeInfo);
+            //}
+
+
+            var resultShebeinengli = _db.Queryable<Doc_Shebeinengli>().Where(x => x.status == 1 && x.tenant_code == UnitId && (x.sbzp_zige > 0 || x.gmht_zige > 0 || x.fp_zige > 0 || x.fkpz_zige > 0 || x.csmp_zige > 0)).OrderBy(x => x.sort).ToList();//鎵ц鏌ヨ
+
+
+            foreach (var achievement in resultShebeinengli)
+            {
+                var document_AptitudeInfo = new Document_AptitudeInfo();
+                document_AptitudeInfo.FilePath = "";
+                document_AptitudeInfo.FileName = "";
+                document_AptitudeInfo.FileSize = 0;
+                if (!string.IsNullOrEmpty(achievement.sbzp_url) && achievement.sbzp_zige > 0)
+                {
+                    document_AptitudeInfo.FilePath += achievement.sbzp_url;
+                    document_AptitudeInfo.FileName += "璁惧鐓х墖";
+                    document_AptitudeInfo.FileSize += 0;
+                    document_AptitudeInfo.FilePath += ";";
+                    document_AptitudeInfo.FileName += ";";
+                }
+                if (!string.IsNullOrEmpty(achievement.gmht_url) && achievement.gmht_zige > 0)
+                {
+                    document_AptitudeInfo.FilePath += achievement.gmht_url;
+                    document_AptitudeInfo.FileName += "璐拱鍚堝悓";
+                    document_AptitudeInfo.FileSize += 0;
+                    document_AptitudeInfo.FilePath += ";";
+                    document_AptitudeInfo.FileName += ";";
+                }
+                if (!string.IsNullOrEmpty(achievement.fp_url) && achievement.fp_zige > 0)
+                {
+                    document_AptitudeInfo.FilePath += achievement.fp_url;
+                    document_AptitudeInfo.FileName += "鍙戠エ";
+                    document_AptitudeInfo.FileSize += 0;
+                    document_AptitudeInfo.FilePath += ";";
+                    document_AptitudeInfo.FileName += ";";
+                }
+                if (!string.IsNullOrEmpty(achievement.fkpz_url) && achievement.fkpz_zige > 0)
+                {
+                    document_AptitudeInfo.FilePath += achievement.fkpz_url;
+                    document_AptitudeInfo.FileName += "浠樻鍑瘉";
+                    document_AptitudeInfo.FileSize += 0;
+                    document_AptitudeInfo.FilePath += ";";
+                    document_AptitudeInfo.FileName += ";";
+                }
+                if (!string.IsNullOrEmpty(achievement.csmp_url) && achievement.csmp_zige > 0)
+                {
+                    document_AptitudeInfo.FilePath += achievement.csmp_url;
+                    document_AptitudeInfo.FileName += "鍙傛暟锛堥摥鐗岋級";
+                    document_AptitudeInfo.FileSize += 0;
+                    document_AptitudeInfo.FilePath += ";";
+                    document_AptitudeInfo.FileName += ";";
+                }
+                
+
+                if (document_AptitudeInfo.FilePath.EndsWith(";"))
+                {
+                    document_AptitudeInfo.FilePath = document_AptitudeInfo.FilePath.Substring(0, document_AptitudeInfo.FilePath.Length - 1);
+                }
+
+                if (document_AptitudeInfo.FileName.EndsWith(";"))
+                {
+                    document_AptitudeInfo.FileName = document_AptitudeInfo.FileName.Substring(0, document_AptitudeInfo.FileName.Length - 1);
+                }
+
+
+                document_AptitudeInfo.AptitudeId = achievement.id;
+                document_AptitudeInfo.AptitudeName = achievement.shebeinengli_name;
+                document_AptitudeInfo.AptitudeType = achievement.classification_id;
+                document_AptitudeInfo.IsUsed = achievement.status;
+
+
+                document_AptitudeInfo.FileVersionNo = "";
+                document_AptitudeInfo.SendTime = achievement.add_time.ToShortDateString();
+                document_AptitudeInfo.UnitId = achievement.tenant_code;
+                document_AptitudeInfo.LastUpdateTime = achievement.add_time;
+                document_AptitudeInfo.LastUpdateName = "";
+                document_AptitudeInfo.AdviseFlag = achievement.zige_code;
+                document_AptitudeInfo.UserId = achievement.tenant_code;
 
                 document_AptitudeInfos.Add(document_AptitudeInfo);
             }
@@ -1577,7 +1896,8 @@
 
         public List<Document_DocumentTempletInfo> GetDocumentTempletList()
         {
-            var result = _db.Queryable<Document_DocumentTempletInfo>().Where(x => x.IsUsed == 1).ToList();//鎵ц鏌ヨ
+            var aaa = GetJwtInfo();
+            var result = _db.Queryable<Document_DocumentTempletInfo>().Where(x => x.IsUsed == 1 && x.UnitId == aaa.UID).OrderByDescending(x=>x.LastUpdateTime).ToList();//鎵ц鏌ヨ
             return result;
         }
 
@@ -1700,7 +2020,7 @@
 
             if(result.Items !=null&& result.Items.Count > 0)
             {
-                var doc_Classifications = _db.Queryable<Doc_Classification>().Where(x => x.parent_code == "003").ToList();//鎵ц鏌ヨ
+                var doc_Classifications = _db.Queryable<Doc_Classification>().Where(x => x.parent_code == "000").ToList();//鎵ц鏌ヨ
                 foreach (var item in result.Items)
                 {
                     var doc_Classification = doc_Classifications.Where(x => x.id == item.Classification).FirstOrDefault();
@@ -1820,7 +2140,7 @@
 
         public List<Doc_Classification> GetDocClassificationList()
         {
-            var ret = _db.Queryable<Doc_Classification>().Where(x => x.parent_code =="003"  && x.is_system == true).ToList();
+            var ret = _db.Queryable<Doc_Classification>().Where(x => x.parent_code =="000"  && x.is_system == true).ToList();
             return ret;
         }
 
@@ -2109,5 +2429,109 @@
             doc_Classification.sort_id = ret ?? 0;
             return doc_Classification;
         }
+
+
+        public Doc_Classification GetShebeinengliInfoMaxSortId(int unitId)
+        {
+            var ret = _db.Queryable<Doc_Shebeinengli>()
+              .Where(x => x.tenant_code == unitId)
+            //.WhereIF(!string.IsNullOrEmpty(doccode), x => x.doc_code == doccode)
+            .Max(x => x.sort);
+
+            Doc_Classification doc_Classification = new Doc_Classification();
+            doc_Classification.sort_id = ret ?? 0;
+            return doc_Classification;
+        }
+
+
+        public PageResult<Document_DocumentTempletInfoDTO> postDocumentTempletList(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_DocumentTempletInfoDTO> result = new PageResult<Document_DocumentTempletInfoDTO>();
+
+
+
+            var document_DocumentTempletInfos = _db.Queryable<Document_DocumentTempletInfo> ()
+             .Where(x=>x.UnitId == aaa.UID)
+             //鏂囦欢鍚嶇О
+             .WhereIF(!string.IsNullOrEmpty(page.templetName), a => a.TempletName.Contains(page.templetName))
+               .WhereIF(page.purchaseMethod !=0, a => a.PurchaseMethod == page.purchaseMethod)
+                  .WhereIF(page.IsUsed>0, a => (page.IsUsed == 1 &&  a.IsUsed == 1  ) || (page.IsUsed != 1 && a.IsUsed == 2))
+
+             
+              
+             .OrderByDescending(a => a.TempletId).ToPageList(page.PageIndex, page.PageSize, ref total);
+
+
+            result.Items = _mapper.Map<List<Document_DocumentTempletInfoDTO>>(document_DocumentTempletInfos);
+
+            if (result.Items != null && result.Items.Count > 0)
+            {
+
+                foreach (var item in result.Items)
+                {
+                    if (item.IsUsed == 1)
+                    {
+                        
+                        
+                          
+                            item.isUseName = "鍚敤";
+
+                        item.isUseOp = "鍋滅敤";
+
+                    }
+                    else
+                    { 
+                            item.isUseName = "鍋滅敤";
+                        item.isUseOp = "鍚敤";
+                    }
+
+                }
+            }
+
+            result.TotalCount = total;
+            result.TotalPage = total % page.PageSize == 0 ? total / page.PageSize : total / page.PageSize + 1;
+
+
+
+            return result;
+        }
+
+
+        public bool GetDeleteDocumentTempletInfo(int ID)
+        {
+            _db.Deleteable<Document_DocumentTempletInfo>().Where(x => x.TempletId == ID ).ExecuteCommand();
+
+            return true;
+        }
+
+
+        public bool SaveDocumentTempletInfo(Document_DocumentTempletInfo dp)
+        {
+            if (dp.TempletId > 0)
+            {
+                _db.Updateable<Document_DocumentTempletInfo>(dp).ExecuteCommand();
+            }
+            else
+            {
+                _db.Insertable<Document_DocumentTempletInfo>(dp).ExecuteCommand();
+            }
+            return true;
+        }
+
+
+        public Document_DocumentTempletInfo GetTempletModelByProjectId(int projiectid)
+        {
+
+            var aaa = GetJwtInfo();
+            var ret = _db.Queryable<Document_DocumentTempletInfo>().Where(x => x.ProjectId == projiectid && x.UnitId == aaa.UID ).First();
+            return ret;
+        }
     }
 }
diff --git a/DocumentServiceAPI.Application/ProjectInfo/Services/SheZhiService.cs b/DocumentServiceAPI.Application/ProjectInfo/Services/SheZhiService.cs
index 97564cf..ab053ae 100644
--- a/DocumentServiceAPI.Application/ProjectInfo/Services/SheZhiService.cs
+++ b/DocumentServiceAPI.Application/ProjectInfo/Services/SheZhiService.cs
@@ -2,6 +2,7 @@
 using DocumentServiceAPI.Application.ProjectInfo.ViewMode;
 using DocumentServiceAPI.Application.Repository;
 using DocumentServiceAPI.Model.cyDocumentModel;
+using DocumentServiceAPI.Model.Permissions;
 using DocumentServiceAPI.Model.UserInfoModel;
 using DocumentServiceAPI.Utility;
 using MapsterMapper;
@@ -137,6 +138,18 @@
             }
             else
             {
+                var aaa = GetJwtInfo();
+                var tenantPermissions = _db.Queryable<TenantPermissions>().Where(x => x.IsDel == false && x.IsEn == true && x.TenantId == aaa.TEID.Value && x.PermissionsType == TenantPermissionsType.Manage).First();
+                if (tenantPermissions != null)
+                {
+                    var times = _db.Queryable<Document_TenderUnit>().Count(x => x.IsDeled == false && x.IsEn == true && x.TenantId == aaa.TEID.Value);
+                    if (tenantPermissions.UnitMaxCount > 0 && tenantPermissions.UnitMaxCount <= times)
+                    {
+                        throw new Exception("鎶曟爣鍗曚綅鏁伴噺瓒呭嚭鏈�澶у�硷紒鏃犳硶鏂板");
+                    }
+                }
+                dp.IsEn = true;
+                dp.IsDeled = false;
                 _db.Insertable<Document_TenderUnit>(dp).ExecuteCommand();
             }
 
@@ -281,7 +294,15 @@
             {
                 var aaa = GetJwtInfo();
 
-
+              var tenantPermissions =  _db.Queryable<TenantPermissions>().Where(x => x.IsDel == false && x.IsEn == true && x.TenantId == aaa.TEID.Value && x.PermissionsType == TenantPermissionsType.Manage).First();
+                if (tenantPermissions != null)
+                {
+                  var times  =  _db.Queryable<EmployeeAtTenant>().Count(x => x.IsDel == false && x.IsEn == true && x.TenantID == aaa.TEID.Value );
+                    if(tenantPermissions.EmployeeMaxCount>0 && tenantPermissions.EmployeeMaxCount<= times)
+                    {
+                        throw new Exception("鍛樺伐鏁伴噺瓒呭嚭鏈�澶у�硷紒鏃犳硶鏂板");
+                    }
+                }
 
                 dp.EmployeeId =  _db.Insertable<Document_EmployeeInfo>(document_EmployeeInfo).ExecuteReturnIdentity();
 
diff --git a/DocumentServiceAPI.Application/ProjectInfo/ViewMode/DocumentProjectInfoDTO.cs b/DocumentServiceAPI.Application/ProjectInfo/ViewMode/DocumentProjectInfoDTO.cs
index 0546696..96d8b88 100644
--- a/DocumentServiceAPI.Application/ProjectInfo/ViewMode/DocumentProjectInfoDTO.cs
+++ b/DocumentServiceAPI.Application/ProjectInfo/ViewMode/DocumentProjectInfoDTO.cs
@@ -2,6 +2,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Runtime.Serialization;
 using System.Text;
 using System.Threading.Tasks;
 
@@ -70,6 +71,121 @@
 
         public string LayProvince { get; set; }
 
+        public int purchaseMethod { get; set; }
+        public string templetName { get; set; }
+        //public int isUsed { get; set; }
+
+
+    }
+
+    public class Document_DocumentTempletInfoDTO
+    {
+        public Document_DocumentTempletInfoDTO()
+        {
+
+
+        }
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        public int TempletId { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? PurchaseMethod { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string TempletName { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string TempletPath { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string TempleVersionNo { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? TempleSize { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:1
+        /// Nullable:True
+        /// </summary>           
+        public int? IsUsed { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? ProjectId { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? UnitId { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? LastUpdateTime { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string LastUpdateName { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? TempletFlag { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? UserId { get; set; }
+
+        public string isUseName
+        {
+            get;
+            set;
+        }
+        public string isUseOp
+        {
+            get;
+            set;
+        }
 
     }
     public class DocumentProjectInfoDTO
diff --git a/DocumentServiceAPI.Application/ProjectInfo/dto/Mapper.cs b/DocumentServiceAPI.Application/ProjectInfo/dto/Mapper.cs
index b488ede..20d5f26 100644
--- a/DocumentServiceAPI.Application/ProjectInfo/dto/Mapper.cs
+++ b/DocumentServiceAPI.Application/ProjectInfo/dto/Mapper.cs
@@ -20,6 +20,10 @@
 
             config.ForType<Document_EmployeeInfo, DocumentEmployeeInfoDTO>();
             config.ForType<DocumentEmployeeInfoDTO, Document_EmployeeInfo>();
+
+
+            config.ForType<Document_DocumentTempletInfo, Document_DocumentTempletInfoDTO>();
+            config.ForType<Document_DocumentTempletInfoDTO, Document_DocumentTempletInfo>();
         }
     }
 }
diff --git a/DocumentServiceAPI.Application/UserAndLogin/Services/UserService.cs b/DocumentServiceAPI.Application/UserAndLogin/Services/UserService.cs
index be334f5..6584d27 100644
--- a/DocumentServiceAPI.Application/UserAndLogin/Services/UserService.cs
+++ b/DocumentServiceAPI.Application/UserAndLogin/Services/UserService.cs
@@ -271,6 +271,26 @@
 
               }).WithCache(20).FirstAsync();
 
+            if (TenantID != null)
+            {
+                //add by zyyao 2023-10-17   绉熸埛淇℃伅澧炲姞
+                var permissions = _db.Queryable<TenantPermissions>().Where(x => x.IsDel == false && x.IsEn == true && x.TenantId == TenantID).ToList();
+                var permissions1 = permissions.Where(x => x.PermissionsType == TenantPermissionsType.Manage).FirstOrDefault();
+                if (permissions1 != null && Tenant!=null)
+                {
+                    Tenant.UnitMaxCount = permissions1.UnitMaxCount;
+                    Tenant.EmployeeMaxCount = permissions1.EmployeeMaxCount;
+                    Tenant.WendangOverTimeCount =  permissions1.OverTime.Subtract(DateTime.Now).Days+1;
+
+                }
+                var permissions2 = permissions.Where(x => x.PermissionsType == TenantPermissionsType.Document).FirstOrDefault();
+                if (permissions2 != null && Tenant != null)
+                {
+                    Tenant.BiaoshuOverTimeCount = permissions2.OverTime.Subtract(DateTime.Now).Days + 1;
+                }
+
+            }
+              
 
             return new RetUserInfo
             {
diff --git a/DocumentServiceAPI.Application/UserAndLogin/ViewMode/UserInfo.cs b/DocumentServiceAPI.Application/UserAndLogin/ViewMode/UserInfo.cs
index c765b3e..d6c13c2 100644
--- a/DocumentServiceAPI.Application/UserAndLogin/ViewMode/UserInfo.cs
+++ b/DocumentServiceAPI.Application/UserAndLogin/ViewMode/UserInfo.cs
@@ -81,6 +81,11 @@
         ///// </summary>
         //[SugarColumn(Length = 30)]
         //public string? PsW { get; set; }
+
+        public int UnitMaxCount { get; set; }
+        public int EmployeeMaxCount { get; set; }
+        public int BiaoshuOverTimeCount { get; set; }
+        public int WendangOverTimeCount { get; set; }
     }
     
     public class EmployeeInfoVM /*:Document_EmployeeInfo*/
diff --git a/DocumentServiceAPI.Model/cyDocumentModel/Doc_Achievement.cs b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Achievement.cs
index ebce805..6430b52 100644
--- a/DocumentServiceAPI.Model/cyDocumentModel/Doc_Achievement.cs
+++ b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Achievement.cs
@@ -69,6 +69,11 @@
         public int? sort { get; set; }
 
         /// <summary>
+        /// 涓爣鏃堕棿
+        /// </summary>           
+        public DateTime? zb_time { get; set; }
+
+        /// <summary>
         /// 鍏宠仈鍒嗙被
         /// </summary>
         [SugarColumn(IsIgnore = true)]
diff --git a/DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs
index de8c962..884bc5e 100644
--- a/DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs
+++ b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs
@@ -54,6 +54,25 @@
         public int? sort { get; set; }
 
         /// <summary>
+        /// 璧勬牸鏂囦欢绫诲瀷
+        /// </summary>
+        public int? zige_code { get; set; }
+
+        /// <summary>
+        /// 鑾峰鏃堕棿
+        /// </summary>           
+        public DateTime? zb_time { get; set; }
+
+
+        /// <summary>
+        /// 鍏宠仈鍒嗙被
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        [Navigate(NavigateType.OneToOne, nameof(zige_code))]
+        public Document_Dictionary? document_Dictionary { get; set; }
+
+
+        /// <summary>
         /// 鍏宠仈鍒嗙被
         /// </summary>
         [SugarColumn(IsIgnore = true)]
diff --git a/DocumentServiceAPI.Model/cyDocumentModel/Doc_Shebeinengli.cs b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Shebeinengli.cs
new file mode 100644
index 0000000..7e0faeb
--- /dev/null
+++ b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Shebeinengli.cs
@@ -0,0 +1,101 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DocumentServiceAPI.Model.cyDocumentModel
+{
+    ///<summary>
+    ///涓氱哗绠$悊
+    ///</summary>
+    [SugarTable("t_doc_shebeinengli")]
+    public class Doc_Shebeinengli : Doc_Base
+    {
+        public Doc_Shebeinengli()
+        {
+        }
+
+        /// <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 shebeinengli_name { get; set; }
+
+        /// <summary>
+        /// 璁惧鐓х墖
+        /// </summary>
+        public string sbzp_url { get; set; }
+
+        /// <summary>
+        /// 璐拱鍚堝悓
+        /// </summary>           
+        public string gmht_url { get; set; }
+
+        /// <summary>
+        /// 鍙戠エ
+        /// </summary>
+        public string fp_url { get; set; }
+
+        /// <summary>
+        /// 浠樻鍑瘉
+        /// </summary>
+        public string fkpz_url { get; set; }
+
+        /// <summary>
+        /// 鍙傛暟锛堥摥鐗岋級
+        /// </summary>
+        public string csmp_url { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭
+        /// </summary>
+        public int? sort { get; set; }
+
+        /// <summary>
+        /// 涓爣鏃堕棿
+        /// </summary>           
+        public DateTime? zb_time { get; set; }
+
+        /// <summary>
+        /// 璧勬牸鏂囦欢绫诲瀷
+        /// </summary>
+        public int? zige_code { get; set; }
+
+        public int? sbzp_zige { get; set; }
+        public int? gmht_zige { get; set; }
+        public int? fp_zige { get; set; }
+        public int? fkpz_zige { get; set; }
+        public int? csmp_zige { get; set; }
+
+        public int? sbzp_fuhe { get; set; }
+        public int? gmht_fuhe { get; set; }
+        public int? fp_fuhe { get; set; }
+        public int? fkpz_fuhe { get; set; }
+        public int? csmp_fuhe { get; set; }
+
+        /// <summary>
+        /// 鍏宠仈鍒嗙被
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        [Navigate(NavigateType.OneToOne, nameof(classification_id))]
+        public Doc_Classification? DocClassification { get; set; }
+
+    }
+}
diff --git a/DocumentServiceAPI.Model/cyDocumentModel/Document_ProjectExpand.cs b/DocumentServiceAPI.Model/cyDocumentModel/Document_ProjectExpand.cs
index 12f1f68..234a5ae 100644
--- a/DocumentServiceAPI.Model/cyDocumentModel/Document_ProjectExpand.cs
+++ b/DocumentServiceAPI.Model/cyDocumentModel/Document_ProjectExpand.cs
@@ -247,5 +247,12 @@
            /// </summary>           
            public string Experts {get;set;}
 
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string Remark { get; set; }
+
     }
 }

--
Gitblit v1.9.1