From 836da9ffd7159fcf46442ec50af73f39def01706 Mon Sep 17 00:00:00 2001
From: qwj <qwjzorro@163.com>
Date: 星期三, 16 八月 2023 09:47:14 +0800
Subject: [PATCH] Merge branch 'master' of http://47.108.235.38:8080/r/DocumentService

---
 DocumentServiceAPI.Application/WorkRemind/ViewMode/DocumentWorkRemindDTO.cs           |   89 +
 DocumentServiceAPI.Application/ProjectInfo/ViewMode/DocumentProjectInfoDTO.cs         |  433 ++++++
 DocumentServiceAPI.Model/cyDocumentModel/Document_OtherCompanyTenderInfo.cs           |   27 
 DocumentServiceAPI.Application/WorkRemind/WorkRemindController.cs                     |  121 +
 DocumentServiceAPI.Application/WorkRemind/dto/Mapper.cs                               |   19 
 DocumentServiceAPI.Model/cyDocumentModel/Document_WorkRemind.cs                       |   19 
 DocumentServiceAPI.Model/cyDocumentModel/Document_ProjectInfo.cs                      |   22 
 DocumentServiceAPI.Application/Repository/ProjectInfoRepository.cs                    |   17 
 DocumentServiceAPI.Application/WorkRemind/Services/Interfaces/IWorkRemindService.cs   |   31 
 DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml                     |  826 +++++++++++++
 DocumentServiceAPI.Application/UserAndLogin/Services/UserService.cs                   |    2 
 DocumentServiceAPI.Application/WorkRemind/Services/WorkRemindService.cs               |  284 ++++
 DocumentServiceAPI.Application/WorkRemind/ViewMode/DocumentEmployeeInfoDTO.cs         |   80 +
 DocumentServiceAPI.Core/DbContext.cs                                                  |   13 
 DocumentServiceAPI.Services/DocumentServiceAPI.Services.csproj                        |    1 
 DocumentServiceAPI.Application/ProjectInfo/ProjectInfoController.cs                   |  322 +++++
 DocumentServiceAPI.Application/ProjectInfo/Services/ProjectInfoService.cs             | 1235 +++++++++++++++++++
 DocumentServiceAPI.Application/ProjectInfo/dto/Mapper.cs                              |   20 
 DocumentServiceAPI.Model/cyDocumentModel/Document_WinInfo.cs                          |   27 
 DocumentServiceAPI.Application/ProjectInfo/Services/Interfaces/IProjectInfoService.cs |   75 +
 DocumentServiceAPI.Application/Repository/WorkRemindRepository.cs                     |   17 
 21 files changed, 3,666 insertions(+), 14 deletions(-)

diff --git a/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml b/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml
index 7aed042..fbae4e8 100644
--- a/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml
+++ b/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml
@@ -1,9 +1,10 @@
-<?xml version="1.0"?>
+锘�<?xml version="1.0"?>
 <doc>
     <assembly>
         <name>DocumentServiceAPI.Application</name>
     </assembly>
     <members>
+
         <member name="T:DocumentServiceAPI.Application.DocManage.DocClassificationManageAppService">
             <summary>
             璧勬枡鍒嗙被绠$悊
@@ -229,6 +230,560 @@
             涓婁紶浜哄憳
             </summary>           
         </member>
+
+        <member name="T:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController">
+            <summary>
+            鐧诲綍鎺у埗鍣�
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.InProjectInfo(DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO)">
+            <summary>
+            鍒涘缓椤圭洰
+            </summary>
+            <param name="dw"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetIsExistProject(System.String,System.String)">
+            <summary>
+            椤圭洰鏄惁瀛樺湪
+            </summary>
+            <param name="ProjectName"></param>
+            <param name="ProjectCode"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.ProjectInfoByUrl(DocumentServiceAPI.Model.cyDocumentModel.Document_ProjectInfo)">
+            <summary>
+            鏍规嵁url鑾峰彇缃戦〉鍐呭
+            </summary>
+            <param name="dp"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.postProjectInfoList(DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoPageSearch)">
+            <summary>
+            鑾峰彇椤圭洰鍒楄〃
+            </summary>
+            <param name="page"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.DelProjectInfoByIds(System.Collections.Generic.List{System.Int32})">
+            <summary>
+            鍒犻櫎椤圭洰鍒楄〃
+            </summary>
+            <param name="projectIdList"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetProjectInfo(System.Int32,System.Int32)">
+            <summary>
+            鑾峰彇椤圭洰璇︽儏
+            <param name="ID"></param>
+            <param name="TenantID"></param>
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetProjectExpand(System.Int32,System.Int32)">
+            <summary>
+            鑾峰彇椤圭洰ProjectExpand
+            <param name="ID"></param>
+             <param name="UnitId"></param>
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetDocument_WinInfo(System.Int32,System.Int32)">
+            <summary>
+            鑾峰彇椤圭洰GetDocument_WinInfo
+            <param name="ID"></param>
+             <param name="UnitId"></param>
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetDocument_AdviseInfo(System.Int32,System.Int32)">
+            <summary>
+            鑾峰彇椤圭洰GetDocument_AdviseInfo
+            <param name="ID"></param>
+             <param name="UnitId"></param>
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetProjectOppugnInfo(System.Int32,System.Int32)">
+            <summary>
+            鑾峰彇椤圭洰GetProjectOppugnInfo
+            <param name="ID"></param>
+             <param name="UnitId"></param>
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetProjectComplainInfo(System.Int32,System.Int32)">
+            <summary>
+            鑾峰彇椤圭洰GetProjectComplainInfo
+            <param name="ID"></param>
+             <param name="UnitId"></param>
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetProjectReviewInfo(System.Int32,System.Int32)">
+            <summary>
+            鑾峰彇椤圭洰GetProjectReviewInfo
+            <param name="ID"></param>
+             <param name="UnitId"></param>
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetProjectLitigationInfo(System.Int32,System.Int32)">
+            <summary>
+            鑾峰彇椤圭洰GetProjectLitigationInfo
+            <param name="ID"></param>
+             <param name="UnitId"></param>
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetOtherCompanyTenderInfoList(System.Int32,System.Int32)">
+            <summary>
+            鑾峰彇椤圭洰GetOtherCompanyTenderInfoList
+            <param name="ID"></param>
+            <param name="TenantID"></param>
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.SaveProjectInfo(DocumentServiceAPI.Model.cyDocumentModel.Document_ProjectInfo)">
+            <summary>
+            淇敼椤圭洰
+            </summary>
+            <param name="dp"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.SaveDocumentWinInfo(DocumentServiceAPI.Model.cyDocumentModel.Document_WinInfo)">
+            <summary>
+            淇敼椤圭洰SaveDocumentWinInfo
+            </summary>
+            <param name="dp"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.SaveDocumentProjectExpand(DocumentServiceAPI.Model.cyDocumentModel.Document_ProjectExpand)">
+            <summary>
+            淇敼椤圭洰SaveDocumentProjectExpand
+            </summary>
+            <param name="dp"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetOtherCompanyTenderInfo(System.Int32,System.String)">
+            <summary>
+            鑾峰彇椤圭洰GetOtherCompanyTenderInfo
+            <param name="ID"></param>
+            <param name="companyName"></param>
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetDelOtherCompanyTenderInfo(System.Int32)">
+            <summary>
+            鍒犻櫎椤圭洰DelOtherCompanyTenderInfo
+            </summary>
+            <param name="Id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.SaveOtherCompanyTenderInfo(DocumentServiceAPI.Model.cyDocumentModel.Document_OtherCompanyTenderInfo)">
+            <summary>
+            淇敼椤圭洰SaveOtherCompanyTenderInfo
+            </summary>
+            <param name="dp"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetTenderUnit(System.Int32)">
+            <summary>
+            鑾峰彇椤圭洰GetTenderUnit
+            <param name="ID"></param>
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetDocument_EmployeeInfoByName(System.String)">
+            <summary>
+            鑾峰彇鍗曚釜鍛樺伐锛屾牴鎹甧mployeeId
+            <param name="EmployeeName"></param>
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetDocument_EmployeeInfoInfo(System.Int32)">
+            <summary>
+            鑾峰彇椤圭洰GetDocument_EmployeeInfoInfo
+            <param name="ID"></param>
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetAptitudeInfoByUnitId(System.Int32)">
+            <summary>
+            鑾峰彇椤圭洰GetAptitudeInfoByName
+            <param name="aptitudeName"></param>
+            <param name="UnitId"></param>
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetDeleteDocumentModel(System.Int32,System.Int32)">
+            <summary>
+            鍒犻櫎椤圭洰GetDeleteDocumentModel
+            </summary>
+            <param name="projectId"></param>
+            <param name="unitId"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.GetProjectDocumentInfo(System.Int32,System.Int32)">
+            <summary>
+            鑾峰彇椤圭洰GetProjectDocumentInfo
+            <param name="projectId"></param>
+            <param name="unitId"></param>
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.postDocumentList(DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoPageSearch)">
+            <summary>
+            鑾峰彇鏍囦功鍒楄〃postDocumentList
+            </summary>
+            <param name="page"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController.SaveDocumentProjectDocumentInfo(DocumentServiceAPI.Model.cyDocumentModel.Document_ProjectDocumentInfo)">
+            <summary>
+            淇敼椤圭洰SaveDocumentProjectDocumentInfo
+            </summary>
+            <param name="dp"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.ProjectInfo.Services.ProjectInfoService.GetJwtInfo">
+            <summary>
+            鑾峰彇Jwt鐩稿叧淇℃伅
+            </summary>
+        </member>
+        <member name="T:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoPageSearch">
+            <summary>
+            椤圭洰鎼滅储 鍙傛暟
+            </summary>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.ProjectId">
+            <summary>
+            Desc:
+            Default:
+            Nullable:False
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.ProjectName">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.ProjectCode">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.ProjectStatus">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.Province">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.City">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.County">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.NoticeType">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.PurchaseMethod">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.ReleaseTime">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.OpinionEndTime">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.FeedbackUnit">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.ReportUnit">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.SignupStartTime">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.DocumentUpdateTime">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.SignupEndTime">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.SignupMethod">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.SignupFee">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.TenderDeposit">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.PayMethod">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.TenderTime">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.AgencyUnit">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.AgencyManager">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.AgencyPhone">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.AgencyAddress">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.AgencyZipCode">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.AgencyFax">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.PurchaseUnit">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.PurchaseManager">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.PurchasePhone">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.PurchaseAddress">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.PurchaseZipCode">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.PurchaseFax">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.IntendanceUnit">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.IntendancePerson">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.IntendancePhone">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.IntendanceAddress">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.IntendanceZipCode">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.IntendanceFax">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.Bidbond">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.IsTenderDepositRemind">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.PackageNum">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.CgwjTime">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.TenantID">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.ProjectUrl">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.GongGaoTime">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.ProvinceId">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.CityId">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.ProjectInfo.ViewMode.DocumentProjectInfoDTO.CountyId">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+>>>>>>> 9c7ff006100d327b1b60615304de348f5ad36c63
         <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocClassificationPageSearch.Code">
             <summary>
             鍒嗙被浠g爜
@@ -299,12 +854,24 @@
             鍛樺伐璇诲彇 
             </summary>
         </member>
+
         <member name="M:DocumentServiceAPI.Application.System.OrganizationAppService.GetOrgItemList(System.Int32)">
             <summary>
             鏌ヨ鍏徃Item鏁版嵁
             </summary>
             <param name="code">绉熸埛id</param>
             <returns></returns>
+
+        <member name="T:DocumentServiceAPI.Application.Repository.ProjectInfoRepository">
+            <summary>
+            椤圭洰淇℃伅
+            </summary>
+        </member>
+        <member name="T:DocumentServiceAPI.Application.Repository.WorkRemindRepository">
+            <summary>
+            鍛樺伐鎻愰啋 
+            </summary>
+
         </member>
         <member name="T:DocumentServiceAPI.Application.System.Services.OrganizationService">
             <summary>
@@ -741,5 +1308,262 @@
             鍛樺伐淇℃伅
             </summary>
         </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.Services.WorkRemindService.GetWorkRemindInfo(System.Int32)">
+            <summary>
+            鎻愰啋璇︽儏
+            </summary>
+            <param name="ID"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.Services.WorkRemindService.postWorkRemindList(DocumentServiceAPI.Application.WorkRemind.ViewMode.WorkRemindPageSearch)">
+            <summary>
+            鑾峰彇鎻愰啋鍒楄〃
+            </summary>
+            <param name="page"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.Services.WorkRemindService.GetUEmployeeInfoList">
+            <summary>
+            鑾峰彇em鍒楄〃
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.Services.WorkRemindService.GetJwtInfo">
+            <summary>
+            鑾峰彇Jwt鐩稿叧淇℃伅
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.Services.WorkRemindService.GetDictionaryList">
+            <summary>
+            鏌ヨ鏁版嵁瀛楀吀
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.Services.WorkRemindService.GetCitySiteList(System.Int32)">
+            <summary>
+            鏌ヨ鐪佸競
+            </summary>
+            <param name="CityLevel"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.Services.WorkRemindService.GetEmployeeListByStatus(System.Int32,System.Int32)">
+            <summary>
+            鑾峰彇em鍒楄〃
+            </summary>
+            <param name="isWork"></param>
+            <param name="Role"></param>
+            <returns></returns>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.EmployeeId">
+            <summary>
+            鍛樺伐ID
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.EmployeeName">
+            <summary>
+            鍛樺伐鍚嶇О
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.Job">
+            <summary>
+            宸ヤ綔鑱屼綅
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.Phone">
+            <summary>
+            鐢佃瘽
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.IsWork">
+            <summary>
+            鏄惁鍦ㄥ伐浣�
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.LeaveTime">
+            <summary>
+            绂诲紑鏃堕棿
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.CardPositive">
+            <summary>
+            璇佷欢姝i潰
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.CardPositiveVersionNo">
+            <summary>
+            璇佷欢姝i潰鐗堟湰鍙�
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.CardPositiveSize">
+            <summary>
+            璇佷欢姝i潰澶у皬
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.LastUpdateTime">
+            <summary>
+            鏈�鍚庢洿鏂版椂闂�
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.LastUpdateName">
+            <summary>
+            鏈�鍚庢洿鏂颁汉
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.UserName">
+            <summary>
+            鐢ㄦ埛鍚�
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.UserPassWord">
+            <summary>
+            鐢ㄦ埛瀵嗙爜
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.LoginTime">
+            <summary>
+            鐧诲綍鏃堕棿
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.IsLogin">
+            <summary>
+            鏄惁鐧诲綍
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.AdviseFlag">
+            <summary>
+            寤鸿鏍囧織
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.UserId">
+            <summary>
+            鐢ㄦ埛ID
+            </summary>           
+        </member>
+        <member name="T:DocumentServiceAPI.Application.WorkRemind.ViewMode.WorkRemindPageSearch">
+            <summary>
+            鍛樺伐鎼滅储 鍙傛暟
+            </summary>
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentWorkRemindDTO.WorkRemindId">
+            <summary>
+            Desc:
+            Default:
+            Nullable:False
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentWorkRemindDTO.ProjectName">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentWorkRemindDTO.ProjectId">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentWorkRemindDTO.WorkRemindContent">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentWorkRemindDTO.WorkRemindTime">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentWorkRemindDTO.LastUpTime">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentWorkRemindDTO.ToEmployeeId">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentWorkRemindDTO.CreatEmployeeId">
+            <summary>
+            Desc:
+            Default:
+            Nullable:True
+            </summary>           
+        </member>
+        <member name="T:DocumentServiceAPI.Application.WorkRemind.WorkRemindController">
+            <summary>
+            鐧诲綍鎺у埗鍣�
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.WorkRemindController.GetWorkRemindInfo(System.Int32)">
+            <summary>
+            鑾峰彇鐢ㄦ埛璇︽儏
+            </summary>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.WorkRemindController.postWorkRemindList(DocumentServiceAPI.Application.WorkRemind.ViewMode.WorkRemindPageSearch)">
+            <summary>
+            鑾峰彇鍛樺伐鍒楄〃
+            </summary>
+            <param name="page"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.WorkRemindController.GetUEmployeeInfoList">
+            <summary>
+            鑾峰彇鍛樺伐鍒楄〃
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.WorkRemindController.CreateWorkRemind(DocumentServiceAPI.Model.cyDocumentModel.Document_WorkRemind)">
+            <summary>
+            鍒涘缓鎻愰啋
+            </summary>
+            <param name="dw"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.WorkRemindController.UpDataWorkRemind(DocumentServiceAPI.Model.cyDocumentModel.Document_WorkRemind)">
+            <summary>
+            鏇存柊鎻愰啋
+            </summary>
+            <param name="dw"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.WorkRemindController.GetDelDataWorkRemind(System.Int32)">
+            <summary>
+            鍒犻櫎鎻愰啋
+            </summary>
+            <param name="ID"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.WorkRemindController.GetDictionaryList">
+            <summary>
+            鑾峰彇鏁版嵁瀛楀吀
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.WorkRemindController.GetCitySiteList(System.Int32)">
+            <summary>
+            鑾峰彇鐪佸競鍘�
+            </summary>
+            <param name="CityLevel"></param>
+            <returns></returns>
+        </member>
+        <member name="M:DocumentServiceAPI.Application.WorkRemind.WorkRemindController.GetEmployeeListByStatus(System.Int32,System.Int32)">
+            <summary>
+            鑾峰彇鍛樺伐鍒楄〃
+            </summary>
+            <param name="isWork"></param>
+            <param name="Role"></param>
+            <returns></returns>
+        </member>
     </members>
 </doc>
diff --git a/DocumentServiceAPI.Application/ProjectInfo/ProjectInfoController.cs b/DocumentServiceAPI.Application/ProjectInfo/ProjectInfoController.cs
new file mode 100644
index 0000000..87c4d97
--- /dev/null
+++ b/DocumentServiceAPI.Application/ProjectInfo/ProjectInfoController.cs
@@ -0,0 +1,322 @@
+锘縰sing DocumentServiceAPI.Application.ProjectInfo.Services;
+using DocumentServiceAPI.Application.ProjectInfo.Services.Interfaces;
+using DocumentServiceAPI.Application.ProjectInfo.ViewMode;
+using DocumentServiceAPI.Application.WorkRemind.Services;
+using DocumentServiceAPI.Application.WorkRemind.Services.Interfaces;
+using DocumentServiceAPI.Application.WorkRemind.ViewMode;
+using DocumentServiceAPI.Model.cyDocumentModel;
+using DocumentServiceAPI.Utility;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DocumentServiceAPI.Application.ProjectInfo
+{
+    /// <summary>
+    /// 鐧诲綍鎺у埗鍣�
+    /// </summary>
+    [ApiDescriptionSettings("ProjectInfo")]
+    [DynamicApiController]
+    [Authorize]
+    public class ProjectInfoController
+    {
+
+        private readonly IProjectInfoService _projectInfoService;
+        public ProjectInfoController(IProjectInfoService projectInfoService)
+        {
+            _projectInfoService = projectInfoService;
+        }
+
+        /// <summary>
+        /// 鍒涘缓椤圭洰
+        /// </summary>
+        /// <param name="dw"></param>
+        /// <returns></returns>
+        public bool InProjectInfo(DocumentProjectInfoDTO dw)
+        {
+            return _projectInfoService.InProjectInfo(dw);
+        }
+
+
+        /// <summary>
+        /// 椤圭洰鏄惁瀛樺湪
+        /// </summary>
+        /// <param name="ProjectName"></param>
+        /// <param name="ProjectCode"></param>
+        /// <returns></returns>
+        public bool GetIsExistProject(string ProjectName, string ProjectCode)
+        {
+            return _projectInfoService.IsExistProject(ProjectName, ProjectCode);
+        }
+
+
+
+        /// <summary>
+        /// 鏍规嵁url鑾峰彇缃戦〉鍐呭
+        /// </summary>
+        /// <param name="dp"></param>
+        /// <returns></returns>
+        [AllowAnonymous]
+        public Document_ProjectInfo ProjectInfoByUrl(Document_ProjectInfo dp)
+        {
+            return _projectInfoService.ProjectInfoByUrl(dp);
+        }
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰鍒楄〃
+        /// </summary>
+        /// <param name="page"></param>
+        /// <returns></returns>
+        public PageResult<DocumentProjectInfoDTO> postProjectInfoList(DocumentProjectInfoPageSearch page)
+        {
+            return _projectInfoService.postProjectInfoList(page);
+        }
+
+        /// <summary>
+        /// 鍒犻櫎椤圭洰鍒楄〃
+        /// </summary>
+        /// <param name="projectIdList"></param>
+        /// <returns></returns>
+        public bool DelProjectInfoByIds(List<int> projectIdList)
+        {
+            return _projectInfoService.DelProjectInfoByIds(projectIdList);
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰璇︽儏
+        /// <param name="ID"></param>
+        /// <param name="TenantID"></param>
+        /// </summary>
+        public DocumentProjectInfoDTO GetProjectInfo(int ID, int TenantID)
+        {
+            return _projectInfoService.GetProjectInfo(ID, TenantID);
+        }
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰ProjectExpand
+        /// <param name="ID"></param>
+        ///  <param name="UnitId"></param>
+        /// </summary>
+        public Document_ProjectExpand GetProjectExpand(int ID, int UnitId)
+        {
+            return _projectInfoService.GetProjectExpand(ID , UnitId);
+        }
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰GetDocument_WinInfo
+        /// <param name="ID"></param>
+        ///  <param name="UnitId"></param>
+        /// </summary>
+        public Document_WinInfo GetDocument_WinInfo(int ID, int UnitId)
+        {
+            return _projectInfoService.GetDocument_WinInfo(ID, UnitId);
+        }
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰GetDocument_AdviseInfo
+        /// <param name="ID"></param>
+        ///  <param name="UnitId"></param>
+        /// </summary>
+        public Document_AdviseInfo GetDocument_AdviseInfo(int ID, int UnitId)
+        {
+            return _projectInfoService.GetDocument_AdviseInfo(ID, UnitId);
+        }
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰GetProjectOppugnInfo
+        /// <param name="ID"></param>
+        ///  <param name="UnitId"></param>
+        /// </summary>
+        public Document_ProjectOppugnInfo GetProjectOppugnInfo(int ID, int UnitId)
+        {
+            return _projectInfoService.GetProjectOppugnInfo(ID, UnitId);
+        }
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰GetProjectComplainInfo
+        /// <param name="ID"></param>
+        ///  <param name="UnitId"></param>
+        /// </summary>
+        public Document_ProjectComplainInfo GetProjectComplainInfo(int ID, int UnitId)
+        {
+            return _projectInfoService.GetProjectComplainInfo(ID, UnitId);
+        }
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰GetProjectReviewInfo
+        /// <param name="ID"></param>
+        ///  <param name="UnitId"></param>
+        /// </summary>
+        public Document_ProjectReviewInfo GetProjectReviewInfo(int ID, int UnitId)
+        {
+            return _projectInfoService.GetProjectReviewInfo(ID, UnitId);
+        }
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰GetProjectLitigationInfo
+        /// <param name="ID"></param>
+        ///  <param name="UnitId"></param>
+        /// </summary>
+        public Document_ProjectLitigationInfo GetProjectLitigationInfo(int ID, int UnitId)
+        {
+            return _projectInfoService.GetProjectLitigationInfo(ID, UnitId);
+        }
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰GetOtherCompanyTenderInfoList
+        /// <param name="ID"></param>
+        /// <param name="TenantID"></param>
+        /// </summary>
+        public List<Document_OtherCompanyTenderInfo> GetOtherCompanyTenderInfoList(int ID, int TenantID)
+        {
+            return _projectInfoService.GetOtherCompanyTenderInfoList( ID , TenantID);
+        }
+
+        /// <summary>
+        /// 淇敼椤圭洰
+        /// </summary>
+        /// <param name="dp"></param>
+        /// <returns></returns>
+        public bool SaveProjectInfo(Document_ProjectInfo dp)
+        {
+            return _projectInfoService.UpdateProjectInfo(dp);
+        }
+
+        /// <summary>
+        /// 淇敼椤圭洰SaveDocumentWinInfo
+        /// </summary>
+        /// <param name="dp"></param>
+        /// <returns></returns>
+        public bool SaveDocumentWinInfo(Document_WinInfo dp)
+        {
+            return _projectInfoService.SaveDocumentWinInfo(dp);
+        }
+
+        /// <summary>
+        /// 淇敼椤圭洰SaveDocumentProjectExpand
+        /// </summary>
+        /// <param name="dp"></param>
+        /// <returns></returns>
+        public bool SaveDocumentProjectExpand(Document_ProjectExpand dp)
+        {
+            return _projectInfoService.SaveDocumentProjectExpand(dp);
+        }
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰GetOtherCompanyTenderInfo
+        /// <param name="ID"></param>
+        /// <param name="companyName"></param>
+        /// </summary>
+        public Document_OtherCompanyTenderInfo GetOtherCompanyTenderInfo(int ID, string companyName)
+        {
+            return _projectInfoService.GetOtherCompanyTenderInfo(ID, companyName);
+        }
+
+
+
+        /// <summary>
+        /// 鍒犻櫎椤圭洰DelOtherCompanyTenderInfo
+        /// </summary>
+        /// <param name="Id"></param>
+        /// <returns></returns>
+        public bool GetDelOtherCompanyTenderInfo(int Id)
+        {
+            return _projectInfoService.DelOtherCompanyTenderInfo(Id);
+        }
+
+        /// <summary>
+        /// 淇敼椤圭洰SaveOtherCompanyTenderInfo
+        /// </summary>
+        /// <param name="dp"></param>
+        /// <returns></returns>
+        public bool SaveOtherCompanyTenderInfo(Document_OtherCompanyTenderInfo dp)
+        {
+            return _projectInfoService.SaveOtherCompanyTenderInfo(dp);
+        }
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰GetTenderUnit
+        /// <param name="ID"></param>
+        /// </summary>
+        public Document_TenderUnit GetTenderUnit(int ID)
+        {
+            return _projectInfoService.GetTenderUnit(ID );
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍗曚釜鍛樺伐锛屾牴鎹甧mployeeId
+        /// <param name="EmployeeName"></param>
+        /// </summary>
+        public Document_EmployeeInfo GetDocument_EmployeeInfoByName(string EmployeeName)
+        {
+            return _projectInfoService.GetDocument_EmployeeInfoByName(EmployeeName);
+        }
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰GetDocument_EmployeeInfoInfo
+        /// <param name="ID"></param>
+        /// </summary>
+        public Model.cyDocumentModel.Document_EmployeeInfo GetDocument_EmployeeInfoInfo(int ID)
+        {
+            return _projectInfoService.GetDocument_EmployeeInfoInfo(ID);
+        }
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰GetAptitudeInfoByName
+        /// <param name="aptitudeName"></param>
+        /// <param name="UnitId"></param>
+        /// </summary>
+        public List<Document_AptitudeInfo> GetAptitudeInfoByUnitId(int UnitId)
+        {
+            return _projectInfoService.GetAptitudeInfoByUnitId(UnitId);
+        }
+
+
+        /// <summary>
+        /// 鍒犻櫎椤圭洰GetDeleteDocumentModel
+        /// </summary>
+        /// <param name="projectId"></param>
+        /// <param name="unitId"></param>
+        /// <returns></returns>
+        public bool GetDeleteDocumentModel(int projectId, int unitId)
+        {
+            return _projectInfoService.GetDeleteDocumentModel(projectId, unitId);
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇椤圭洰GetProjectDocumentInfo
+        /// <param name="projectId"></param>
+        /// <param name="unitId"></param>
+        /// </summary>
+        public Document_ProjectDocumentInfo GetProjectDocumentInfo(int projectId, int unitId)
+        {
+            return _projectInfoService.GetProjectDocumentInfo(projectId, unitId);
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇鏍囦功鍒楄〃postDocumentList
+        /// </summary>
+        /// <param name="page"></param>
+        /// <returns></returns>
+        public PageResult<DocumentProjectInfoDTO> postDocumentList(DocumentProjectInfoPageSearch page)
+        {
+            return _projectInfoService.postDocumentList(page);
+        }
+
+
+        /// <summary>
+        /// 淇敼椤圭洰SaveDocumentProjectDocumentInfo
+        /// </summary>
+        /// <param name="dp"></param>
+        /// <returns></returns>
+        public bool SaveDocumentProjectDocumentInfo(Document_ProjectDocumentInfo dp)
+        {
+            return _projectInfoService.SaveDocumentProjectDocumentInfo(dp);
+        }
+    }
+}
diff --git a/DocumentServiceAPI.Application/ProjectInfo/Services/Interfaces/IProjectInfoService.cs b/DocumentServiceAPI.Application/ProjectInfo/Services/Interfaces/IProjectInfoService.cs
new file mode 100644
index 0000000..953871a
--- /dev/null
+++ b/DocumentServiceAPI.Application/ProjectInfo/Services/Interfaces/IProjectInfoService.cs
@@ -0,0 +1,75 @@
+锘縰sing DocumentServiceAPI.Application.ProjectInfo.ViewMode;
+using DocumentServiceAPI.Application.WorkRemind.ViewMode;
+using DocumentServiceAPI.Model.cyDocumentModel;
+using DocumentServiceAPI.Utility;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DocumentServiceAPI.Application.ProjectInfo.Services.Interfaces
+{
+    public interface IProjectInfoService
+    {
+        public bool InProjectInfo(DocumentProjectInfoDTO dp);
+
+        public bool IsExistProject(string ProjectName, string ProjectCode);
+
+        public Document_ProjectInfo ProjectInfoByUrl(Document_ProjectInfo dp);
+
+        public PageResult<DocumentProjectInfoDTO> postProjectInfoList(DocumentProjectInfoPageSearch page);
+
+        public bool DelProjectInfoByIds(List<int> projectIdList);
+
+        public DocumentProjectInfoDTO GetProjectInfo(int ID, int TenantID);
+
+        public Document_ProjectExpand GetProjectExpand(int ID,int UnitId);
+
+        public Document_WinInfo GetDocument_WinInfo(int ID, int UnitId);
+
+        public Document_AdviseInfo GetDocument_AdviseInfo(int ID, int UnitId);
+
+        public Document_ProjectOppugnInfo GetProjectOppugnInfo(int ID, int UnitId);
+
+        public Document_ProjectComplainInfo GetProjectComplainInfo(int ID, int UnitId);
+
+        public Document_ProjectReviewInfo GetProjectReviewInfo(int ID, int UnitId);
+
+        public Document_ProjectLitigationInfo GetProjectLitigationInfo(int ID, int UnitId);
+
+        public List<Document_OtherCompanyTenderInfo> GetOtherCompanyTenderInfoList(int ID, int TenantID);
+        public Document_OtherCompanyTenderInfo GetOtherCompanyTenderInfo(int ID, string companyName);
+
+        public bool DelOtherCompanyTenderInfo(int Id);
+
+        public bool SaveOtherCompanyTenderInfo(Document_OtherCompanyTenderInfo dp);
+
+        public bool UpdateProjectInfo(Document_ProjectInfo dp);
+
+        public bool SaveDocumentWinInfo(Document_WinInfo dp);
+
+        public bool SaveDocumentProjectExpand(Document_ProjectExpand dp);
+
+        public Document_TenderUnit GetTenderUnit(int ID);
+
+        public Document_EmployeeInfo GetDocument_EmployeeInfoByName(string EmployeeName);
+
+        public Model.cyDocumentModel.Document_EmployeeInfo GetDocument_EmployeeInfoInfo(int ID);
+
+        public List<Document_AptitudeInfo> GetAptitudeInfoByUnitId(int UnitId);
+
+
+        public bool GetDeleteDocumentModel(int projectId, int unitId);
+
+        public Document_ProjectDocumentInfo GetProjectDocumentInfo(int projectId, int unitId);
+
+
+        public PageResult<DocumentProjectInfoDTO> postDocumentList(DocumentProjectInfoPageSearch page);
+
+
+        public bool SaveDocumentProjectDocumentInfo(Document_ProjectDocumentInfo dp);
+
+
+    }
+}
diff --git a/DocumentServiceAPI.Application/ProjectInfo/Services/ProjectInfoService.cs b/DocumentServiceAPI.Application/ProjectInfo/Services/ProjectInfoService.cs
new file mode 100644
index 0000000..6badc72
--- /dev/null
+++ b/DocumentServiceAPI.Application/ProjectInfo/Services/ProjectInfoService.cs
@@ -0,0 +1,1235 @@
+锘縰sing AngleSharp.Dom;
+using AngleSharp.Html.Parser;
+using DocumentServiceAPI.Application.ProjectInfo.Services.Interfaces;
+using DocumentServiceAPI.Application.ProjectInfo.ViewMode;
+using DocumentServiceAPI.Application.Repository;
+using DocumentServiceAPI.Application.UserAndLogin.ViewMode;
+using DocumentServiceAPI.Application.WorkRemind.Services.Interfaces;
+using DocumentServiceAPI.Application.WorkRemind.ViewMode;
+using DocumentServiceAPI.Core;
+using DocumentServiceAPI.Model;
+using DocumentServiceAPI.Model.cyDocumentModel;
+using DocumentServiceAPI.Model.UserInfoModel;
+using DocumentServiceAPI.Utility;
+using Furion.LinqBuilder;
+using Furion.Logging;
+using Furion.Logging.Extensions;
+using Furion.Schedule;
+using MapsterMapper;
+using Microsoft.AspNetCore.Mvc.RazorPages;
+using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http;
+using NetTaste;
+using Newtonsoft.Json;
+using SqlSugar;
+using SqlSugar.Extensions;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.Metrics;
+using System.Linq;
+using System.Reflection.Metadata;
+using System.Runtime.Intrinsics.Arm;
+using System.Runtime.Intrinsics.X86;
+using System.Security.Claims;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DocumentServiceAPI.Application.ProjectInfo.Services
+{
+    public class ProjectInfoService : IProjectInfoService, IScoped
+    {
+
+        private ISqlSugarClient _db { get; set; }
+        private ProjectInfoRepository _projectInfoRepository { get; set; }
+        private IMapper _mapper { get; set; }
+        public ProjectInfoService(ISqlSugarClient db, ProjectInfoRepository projectInfoRepository, IMapper mapper)
+        {
+            _db = db;
+            _projectInfoRepository = projectInfoRepository;
+            _mapper = mapper;
+        }
+
+
+        public bool InProjectInfo(DocumentProjectInfoDTO dp)
+        {
+
+            //var a = GetJwtInfo();
+            //dp.LastUpTime = DateTime.Now;
+            //dp.CreatEmployeeId = a.EID;
+
+            //var tentlist = _db.Queryable<Document_EmployeeInfo>()
+            //  .Where(x => x.EmployeeId == a.EID
+
+            //).First();
+            //if (tentlist != null)
+            //{
+            //    dw.CreatEmployeeName = tentlist.EmployeeName;
+
+            //}
+            var  documentProjectInfo = _mapper.Map<Document_ProjectInfo>(dp);
+            return _projectInfoRepository.Insert(documentProjectInfo);
+
+        }
+
+        public bool IsExistProject(string ProjectName, string ProjectCode)
+        {
+            var a = GetJwtInfo();
+
+            var ret = _db.Queryable<Document_ProjectInfo>().Count(x => x.ProjectCode == ProjectCode && x.ProjectName == ProjectName && x.TenantID == a.TEID);
+
+            if(ret > 0)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+           
+        }
+
+        
+
+
+
+
+        /// <summary>
+        /// 鑾峰彇Jwt鐩稿叧淇℃伅
+        /// </summary>
+        public JwtInfo GetJwtInfo()
+        {
+            JwtInfo jwtInfo = new JwtInfo();
+            jwtInfo.LogInSource = (LogInFrom)(App.User?.FindFirstValue("loginfrom")?.ObjToInt() ?? 0);
+            jwtInfo.EID = App.User?.FindFirstValue("eid")?.ObjToInt();
+            jwtInfo.UID = App.User?.FindFirstValue("uid")?.ObjToInt();
+            jwtInfo.TEID = App.User?.FindFirstValue("teid")?.ObjToInt();
+            var guid = App.User?.FindFirstValue("jid");
+            jwtInfo.JID = string.IsNullOrEmpty(guid) ? null : new Guid(guid);
+            return jwtInfo;
+        }
+
+
+        public Document_ProjectInfo ProjectInfoByUrl(Document_ProjectInfo dp)
+        {
+            Document_ProjectInfo document_ProjectInfo = new Document_ProjectInfo();
+            string url = dp.ProjectUrl;
+            document_ProjectInfo.ProjectUrl = dp.ProjectUrl;
+            var parser = new HtmlParser();
+            var list11 = new List<AngleSharp.Dom.IElement>();
+            if (url.StartsWith("http://www.ccgp.gov.cn"))
+            {
+                using (HttpClient client = new HttpClient())
+                {
+                    client.Timeout = TimeSpan.FromSeconds(60);
+                    //List<sichuanjieshoudtl> data = new List<sichuanjieshoudtl>();
+                    HttpResponseMessage response = client.GetAsync(url).Result;
+                    var res = response.Content.ReadAsStringAsync().Result;
+                    var document = parser.ParseDocument(res);
+                    var sssdfsdfsd = document.All.Where(m => m.ClassName == "vF_detail_header").FirstOrDefault();
+                   var  tc =  sssdfsdfsd.QuerySelectorAll(".tc");
+                    document_ProjectInfo.ProjectName = tc[0].TextContent;
+                    var  aaa  = sssdfsdfsd.QuerySelectorAll("span");
+                    foreach (var element  in aaa)
+                    {
+                        if(element.GetAttribute("id").StartsWith("pubTime"))
+                        {
+                            DateTime a;
+                            if (DateTime.TryParse(element.TextContent, out a))
+                            {
+                                document_ProjectInfo.GongGaoTime = a;
+                            }
+                            
+                        }
+                    }
+                    document_ProjectInfo.PurchaseMethod = 0;
+                    if (document_ProjectInfo.ProjectName.IndexOf("鍏紑鎷涙爣")>=0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 3;
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("绔炰簤鎬ц皥鍒�") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 4;
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("鍗曚竴鏉ユ簮") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 5;
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("璇环") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 6;
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("閭�璇�") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 31;
+                    }
+
+
+                    
+
+                    var vF_detail_content = document.All.Where(m => m.ClassName == "vF_detail_content").FirstOrDefault();
+                    var td = vF_detail_content.QuerySelectorAll("p");
+                    if (td != null && td.Length > 0)
+                    {
+
+
+                        for (int i = 0; i < td.Length; i++)
+                        {
+                            if (td[i].TextContent.IndexOf("椤圭洰缂栧彿锛�") >= 0 && td[i].TextContent.IndexOf("銆�") < 0)
+                            {
+                                if (string.IsNullOrEmpty(document_ProjectInfo.ProjectCode))
+                                {
+                                    document_ProjectInfo.ProjectCode = td[i].TextContent.Replace("椤圭洰缂栧彿锛�", "").Replace("1锛�", "").Replace("/", "").Trim();
+                                }
+
+
+
+                            }
+                            if (td[i].TextContent.IndexOf("棰勭畻閲戦锛�") >= 0)
+                            {
+
+                                if (td[i].TextContent.IndexOf("涓囧厓") >= 0)
+                                {
+                                    var yusuan = td[i].TextContent.Replace("棰勭畻閲戦锛�", "").Replace("3锛�", "").Replace("锛�", "").Replace("锛�", "").Replace("涓囧厓", "").Replace("浜烘皯甯�", "").Trim();
+                                    decimal a = 0;
+                                    if (decimal.TryParse(yusuan, out a))
+                                    {
+                                        //document_ProjectInfo.ys = a * 10000;
+                                    }
+
+
+                                }
+                                else
+                                {
+                                    var yusuan = td[i].TextContent.Replace("棰勭畻閲戦锛�", "").Replace("3锛�", "").Replace("锛�", "").Replace("锛�", "").Replace("鍏�", "").Replace("浜烘皯甯�", "").Trim();
+                                    decimal a = 0;
+                                    if (decimal.TryParse(yusuan, out a))
+                                    {
+                                        //Budget = a;
+                                    }
+                                }
+                            }
+
+
+                            if (td[i].TextContent.IndexOf("寮�鏍囨椂闂达細") >= 0)
+                            {
+
+
+                                DateTime a;
+                                var sss = td[i].TextContent.Replace("寮�鏍囨椂闂达細", "").Replace("鍖椾含鏃堕棿锛�", "").Replace("骞�", "-").Replace("鏈�", "-").Replace("鏃�", " ").Replace("鐐�", ":").Replace("鏃�", ":").Replace("鍒嗭紙", "").Replace("鍒�", ":").Replace("绉�", "").Replace("锛�", "").Trim();
+                                if (DateTime.TryParse(sss, out a))
+                                {
+                                    document_ProjectInfo.TenderTime = a;
+                                    document_ProjectInfo.SignupStartTime = a;
+                                    document_ProjectInfo.SignupEndTime = a;
+                                }
+
+
+                            }
+                            if (td[i].TextContent.IndexOf("1.鏃堕棿锛�") >= 0)
+                            {
+                                if (!document_ProjectInfo.TenderTime.HasValue)
+                                {
+                                    DateTime a;
+                                    var sss = td[i].TextContent.Replace("1.鏃堕棿锛�", "").Replace("鍖椾含鏃堕棿锛�", "").Replace("骞�", "-").Replace("鏈�", "-").Replace("鏃�", " ").Replace("鐐�", ":").Replace("鏃�", ":").Replace("鍒嗭紙", "").Replace("鍒�", ":").Replace("绉�", "").Replace("锛�", "").Trim();
+                                    if (DateTime.TryParse(sss, out a))
+                                    {
+                                        document_ProjectInfo.TenderTime = a;
+                                        document_ProjectInfo.SignupStartTime = a;
+                                        document_ProjectInfo.SignupEndTime = a;
+                                    }
+                                }
+
+
+
+
+                            }
+
+                            if (td[i].TextContent.StartsWith("鏃堕棿锛�"))
+                            {
+                                if (!document_ProjectInfo.TenderTime.HasValue)
+                                {
+                                    DateTime a;
+                                    var sss = td[i].TextContent.Replace("鏃堕棿锛�", "").Replace("鍖椾含鏃堕棿锛�", "").Replace("骞�", "-").Replace("鏈�", "-").Replace("鏃�", " ").Replace("鐐�", ":").Replace("鏃�", ":").Replace("鍒嗭紙", "").Replace("鍒�", ":").Replace("绉�", "").Replace("锛�", "").Trim();
+                                    if (DateTime.TryParse(sss, out a))
+                                    {
+                                        document_ProjectInfo.TenderTime = a;
+                                        document_ProjectInfo.SignupStartTime = a;
+                                        document_ProjectInfo.SignupEndTime = a;
+                                    }
+                                }
+
+
+
+
+                            }
+
+
+                            if (td[i].TextContent.IndexOf("閲囪喘浜轰俊鎭�")>=0)
+                            {
+                                if(td[i+1]!=null)
+                                {
+                                    document_ProjectInfo.PurchaseUnit = td[i + 1].TextContent.Replace("鍚� 绉帮細", "").Replace("鍚嶇О锛�", "").Trim();
+                                }
+                                if (td[i + 2] != null)
+                                {
+                                    document_ProjectInfo.PurchaseAddress = td[i + 2].TextContent.Replace("鍦板潃锛�", "").Replace("鍦� 鍧�锛�", "").Replace("鍦般��鍧�锛�", "").Trim();
+                                }
+                                if (td[i + 3] != null)
+                                {
+                                    document_ProjectInfo.PurchasePhone = td[i + 3].TextContent.Replace("鑱旂郴鏂瑰紡锛�", "").Trim();
+                                }
+
+                            }
+
+                            if (td[i].TextContent.IndexOf("閲囪喘浠g悊鏈烘瀯淇℃伅") >= 0)
+                            {
+                                if (td[i + 1] != null)
+                                {
+                                    document_ProjectInfo.AgencyUnit = td[i + 1].TextContent.Replace("鍚� 绉帮細", "").Replace("鍚嶇О锛�", "").Trim();
+                                }
+                                if (td[i + 2] != null)
+                                {
+                                    document_ProjectInfo.AgencyAddress = td[i + 2].TextContent.Replace("鍦板潃锛�", "").Replace("鍦� 鍧�锛�", "").Replace("鍦般��鍧�锛�", "").Trim();
+                                }
+                                if (td[i + 3] != null)
+                                {
+                                    document_ProjectInfo.AgencyPhone = td[i + 3].TextContent.Replace("鑱旂郴鏂瑰紡锛�", "").Trim();
+                                }
+
+                            }
+
+                        }
+                    }
+                }
+            }
+            else if (url.StartsWith("https://zfcg.scsczt.cn"))
+            {
+                using (HttpClient client = new HttpClient())
+                {
+                    client.Timeout = TimeSpan.FromSeconds(60);
+                    
+                    HttpResponseMessage response = client.GetAsync(url).Result;
+                    var res = response.Content.ReadAsStringAsync().Result;
+                    var document = parser.ParseDocument(res);
+
+                   
+
+
+
+                    var sssdfsdfsd = document.All.Where(m => m.LocalName == "h1" && m.ClassName == "info-title").FirstOrDefault();
+                    document_ProjectInfo.ProjectName = sssdfsdfsd.TextContent.Replace("\n", "").Trim();
+                    var AllDiv = document.All.Where(m => m.LocalName == "span" &&
+                                      m.HasAttribute("id") &&
+                                      m.GetAttribute("id").StartsWith("noticeTime")).FirstOrDefault();
+
+                    string ssssss = AllDiv.QuerySelector("i").TextContent.Replace("鍖椾含鏃堕棿锛�", "").Replace("骞�", "-").Replace("鏈�", "-").Replace("鏃�", " ").Replace("鐐�", ":").Replace("鏃�", ":").Replace("鍒嗭紙", "").Replace("鍒�", ":").Replace("绉�", "").Replace("锛�", "").Trim();
+                    DateTime b;
+                    if (DateTime.TryParse(ssssss, out b))
+                    {
+                        document_ProjectInfo.GongGaoTime = b;
+                    }
+
+
+                    var TenderTime = document.All.Where(m => m.LocalName == "span" && m.ClassName == "noticePurchaseTime-noticePurchaseTime _notice_content_noticePurchaseTime-noticePurchaseTime bidFileSubmitTime dynamic-form-editor").FirstOrDefault();
+
+                    string TenderTimes = TenderTime.TextContent.Replace("鍖椾含鏃堕棿锛�", "").Replace("骞�", "-").Replace("鏈�", "-").Replace("鏃�", " ").Replace("鐐�", ":").Replace("鏃�", ":").Replace("鍒嗭紙", "").Replace("鍒�", "").Replace("绉�", "").Replace("锛�", "").Trim();
+                    if (DateTime.TryParse(TenderTimes, out b))
+                    {
+                        document_ProjectInfo.TenderTime = b;
+                        document_ProjectInfo.SignupStartTime = b;
+                        document_ProjectInfo.SignupEndTime = b;
+                    }
+
+
+
+                    document_ProjectInfo.PurchaseMethod = 0;
+                    if (document_ProjectInfo.ProjectName.IndexOf("鍏紑鎷涙爣") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 3;
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("绔炰簤鎬ц皥鍒�") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 4;
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("鍗曚竴鏉ユ簮") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 5;
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("璇环") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 6;
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("閭�璇�") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 31;
+                    }
+
+
+
+
+                    var vF_detail_content = document.All.Where(m => m.LocalName == "div" &&
+                                      m.HasAttribute("id") &&
+                                      m.GetAttribute("id").StartsWith("print-content")).FirstOrDefault();
+                    var td = vF_detail_content.QuerySelectorAll("p");
+                    if (td != null && td.Length > 0)
+                    {
+
+
+                        for (int i = 0; i < td.Length; i++)
+                        {
+                            if (td[i].TextContent.IndexOf("椤圭洰缂栧彿锛�") >= 0 && td[i].TextContent.IndexOf("銆�") < 0)
+                            {
+                                if (string.IsNullOrEmpty(document_ProjectInfo.ProjectCode))
+                                {
+                                    document_ProjectInfo.ProjectCode = td[i].TextContent.Replace("椤圭洰缂栧彿锛�", "").Replace("1锛�", "").Replace("/", "").Trim();
+                                }
+
+
+
+                            }
+        
+                        }
+                    }
+                    var lianxiren = document.All.Where(m => m.LocalName == "div" && m.ClassName == "innercontent").ToList();
+                    foreach (var element  in lianxiren)
+                    {
+                        if(element.TextContent.IndexOf("閲囪喘浜轰俊鎭�")>=0 && element.TextContent.IndexOf("閲囪喘浠g悊鏈烘瀯淇℃伅") >= 0)
+                        {
+                            var lianxirentd = element.QuerySelectorAll("p");
+                            if (lianxirentd != null && lianxirentd.Length > 0)
+                            {
+                                if (lianxirentd[0] != null)
+                                {
+                                    document_ProjectInfo.PurchaseUnit = lianxirentd[0].TextContent.Replace("鍚� 绉帮細", "").Replace("鍚嶇О锛�", "").Trim();
+                                }
+                                if (lianxirentd[1] != null)
+                                {
+                                    document_ProjectInfo.PurchaseAddress = lianxirentd[1].TextContent.Replace("鍦板潃锛�", "").Replace("鍦� 鍧�锛�", "").Replace("鍦般��鍧�锛�", "").Trim();
+                                }
+                                if (lianxirentd[2] != null)
+                                {
+                                    document_ProjectInfo.PurchasePhone = lianxirentd[2].TextContent.Replace("鑱旂郴鏂瑰紡锛�", "").Trim();
+                                }
+                                if (lianxirentd[3] != null)
+                                {
+                                    document_ProjectInfo.AgencyUnit = lianxirentd[3].TextContent.Replace("鍚� 绉帮細", "").Replace("鍚嶇О锛�", "").Trim();
+                                }
+                                if (lianxirentd[4] != null)
+                                {
+                                    document_ProjectInfo.AgencyAddress = lianxirentd[4].TextContent.Replace("鍦板潃锛�", "").Replace("鍦� 鍧�锛�", "").Replace("鍦般��鍧�锛�", "").Trim();
+                                }
+                                if (lianxirentd[5] != null)
+                                {
+                                    document_ProjectInfo.AgencyPhone = lianxirentd[5].TextContent.Replace("鑱旂郴鏂瑰紡锛�", "").Trim();
+                                }
+
+                            }
+                        }
+                    }
+
+                  
+                
+                }
+            }
+            else if (url.StartsWith("http://202.61.88.152:9080"))
+            {
+                using (HttpClient client = new HttpClient())
+                {
+                    client.Timeout = TimeSpan.FromSeconds(60);
+
+                    HttpResponseMessage response = client.GetAsync(url).Result;
+                    var res = response.Content.ReadAsStringAsync().Result;
+                    var document = parser.ParseDocument(res);
+
+
+
+
+
+                    var sssdfsdfsd = document.All.Where(m => m.LocalName == "div" && m.ClassName == "cont-info").FirstOrDefault();
+                   var ProjectName = sssdfsdfsd.QuerySelectorAll("h1").FirstOrDefault();
+                    document_ProjectInfo.ProjectName = ProjectName.TextContent.Replace("\n", "").Trim();
+                    var AllDiv = document.All.Where(m => m.LocalName == "p" && m.ClassName == "time").FirstOrDefault();
+
+                    string ssssss = AllDiv.TextContent.Replace("绯荤粺鍙戝竷鏃堕棿锛�", "").Trim();
+                    DateTime b;
+                    if (DateTime.TryParse(ssssss, out b))
+                    {
+                        document_ProjectInfo.GongGaoTime = b;
+                    }
+
+
+                    //var TenderTime = document.All.Where(m => m.LocalName == "span" && m.ClassName == "noticePurchaseTime-noticePurchaseTime _notice_content_noticePurchaseTime-noticePurchaseTime bidFileSubmitTime dynamic-form-editor").FirstOrDefault();
+
+                    //string TenderTimes = TenderTime.TextContent.Replace("鍖椾含鏃堕棿锛�", "").Replace("骞�", "-").Replace("鏈�", "-").Replace("鏃�", " ").Replace("鐐�", ":").Replace("鏃�", ":").Replace("鍒嗭紙", "").Replace("鍒�", "").Replace("绉�", "").Replace("锛�", "").Trim();
+                    //if (DateTime.TryParse(TenderTimes, out b))
+                    //{
+                    //    document_ProjectInfo.TenderTime = b;
+                    //    document_ProjectInfo.SignupStartTime = b;
+                    //    document_ProjectInfo.SignupEndTime = b;
+                    //}
+
+
+
+                    document_ProjectInfo.PurchaseMethod = 0;
+                    if (document_ProjectInfo.ProjectName.IndexOf("鍏紑鎷涙爣") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 3;
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("绔炰簤鎬ц皥鍒�") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 4;
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("鍗曚竴鏉ユ簮") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 5;
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("璇环") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 6;
+                    }
+                    else if (document_ProjectInfo.ProjectName.IndexOf("閭�璇�") >= 0)
+                    {
+                        document_ProjectInfo.PurchaseMethod = 31;
+                    }
+
+
+
+
+                    var vF_detail_content = document.All.Where(m => m.LocalName == "div" &&
+                                      m.HasAttribute("id") &&
+                                      m.GetAttribute("id").StartsWith("myPrintArea")).FirstOrDefault();
+                    var td = vF_detail_content.QuerySelectorAll("td");
+                    if (td != null && td.Length > 0)
+                    {
+
+
+                        for (int i = 0; i < td.Length; i++)
+                        {
+                            if (td[i].TextContent.IndexOf("椤圭洰缂栧彿") >= 0)
+                            {
+                                if (string.IsNullOrEmpty(document_ProjectInfo.ProjectCode))
+                                {
+                                    document_ProjectInfo.ProjectCode = td[i+1].TextContent.Trim();
+                                }
+                            }
+                            if (td[i].TextContent.IndexOf("鎻愪氦鎶曟爣鏂囦欢鎴鏃堕棿") >= 0)
+                            {
+                                if (string.IsNullOrEmpty(document_ProjectInfo.ProjectCode))
+                                {
+
+                                    string TenderTimes = td[i + 1].TextContent.Replace("鍖椾含鏃堕棿", "").Replace("骞�", "-").Replace("鏈�", "-").Replace("鏃�", " ").Replace("鐐�", ":").Replace("鏃�", ":").Replace("鍒嗭紙", "").Replace("鍒�", ":").Replace("绉�", "").Replace("锛�", "").Replace("锛�", "").Replace("(", "").Replace(")", "").Trim();
+                                    DateTime a;
+                                    if (DateTime.TryParse(TenderTimes, out a))
+                                    {
+                                        document_ProjectInfo.TenderTime = a;
+                                        document_ProjectInfo.SignupStartTime = a;
+                                        document_ProjectInfo.SignupEndTime = a;
+                                    }
+                                }
+                            }
+                            if (td[i].TextContent.IndexOf("閲囪喘浜轰俊鎭�") >= 0)
+                            {
+                                if (string.IsNullOrEmpty(document_ProjectInfo.PurchaseUnit))
+                                {
+                                    if(td[i + 1].TextContent.IndexOf("鍚嶇О") >= 0)
+                                    {
+                                        document_ProjectInfo.PurchaseUnit = td[i + 2].TextContent.Trim();                                    }
+                                    
+                                }
+                                if (string.IsNullOrEmpty(document_ProjectInfo.PurchaseAddress))
+                                {
+                                    if (td[i + 3].TextContent.IndexOf("鍦板潃") >= 0)
+                                    {
+                                        document_ProjectInfo.PurchaseAddress = td[i + 4].TextContent.Trim();
+                                    }
+
+                                }
+                                if (string.IsNullOrEmpty(document_ProjectInfo.PurchasePhone))
+                                {
+                                    if (td[i + 5].TextContent.IndexOf("鑱旂郴鏂瑰紡") >= 0)
+                                    {
+                                        document_ProjectInfo.PurchasePhone = td[i + 6].TextContent.Trim();
+                                    }
+
+                                }
+                            }
+
+                            if (td[i].TextContent.IndexOf("閲囪喘浠g悊鏈烘瀯淇℃伅") >= 0)
+                            {
+                                if (string.IsNullOrEmpty(document_ProjectInfo.AgencyUnit))
+                                {
+                                    if (td[i + 1].TextContent.IndexOf("鍚嶇О") >= 0)
+                                    {
+                                        document_ProjectInfo.AgencyUnit = td[i + 2].TextContent.Trim();
+                                    }
+
+                                }
+                                if (string.IsNullOrEmpty(document_ProjectInfo.AgencyAddress))
+                                {
+                                    if (td[i + 3].TextContent.IndexOf("鍦板潃") >= 0)
+                                    {
+                                        document_ProjectInfo.AgencyAddress = td[i + 4].TextContent.Trim();
+                                    }
+
+                                }
+                                if (string.IsNullOrEmpty(document_ProjectInfo.AgencyPhone))
+                                {
+                                    if (td[i + 5].TextContent.IndexOf("鑱旂郴鏂瑰紡") >= 0)
+                                    {
+                                        document_ProjectInfo.AgencyPhone = td[i + 6].TextContent.Trim();
+                                    }
+
+                                }
+                            }
+                        }
+                    }
+                    
+                 
+
+
+
+                }
+
+                string ssss = "234234234";
+            }
+            else
+            {
+
+            }
+            return document_ProjectInfo;
+
+
+
+
+        }
+
+
+        public PageResult<DocumentProjectInfoDTO> postProjectInfoList(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<DocumentProjectInfoDTO> result = new PageResult<DocumentProjectInfoDTO>();
+             
+
+
+            result.Items = _db.Queryable<Document_ProjectInfo, Document_ProjectExpand, Document_ProjectOppugnInfo, Document_ProjectComplainInfo, Document_ProjectReviewInfo, Document_ProjectLitigationInfo, Document_AdviseInfo, Document_ProjectComplainInfo, Document_ProjectOppugnInfo, Document_ProjectLitigationInfo, Document_ProjectReviewInfo, Document_WinInfo>((a, d, e,f,g,h,i,j,k,l,m,n) =>
+              new JoinQueryInfos
+              (
+             JoinType.Left, a.ProjectId == d.ProjectId && d.UnitId == page.UnitId,
+              JoinType.Left, a.ProjectId == e.ProjectId && e.UnitId == page.UnitId,
+                JoinType.Left, a.ProjectId == f.ProjectId && f.UnitId == page.UnitId,
+                  JoinType.Left, a.ProjectId == g.ProjectId && g.UnitId == page.UnitId,
+                    JoinType.Left, a.ProjectId == h.ProjectId && h.UnitId == page.UnitId,
+                      JoinType.Left, a.ProjectId == i.ProjectId && i.UnitId == page.UnitId,
+                        JoinType.Left, a.ProjectId == j.ProjectId && j.UnitId == page.UnitId,
+                          JoinType.Left, a.ProjectId == k.ProjectId && k.UnitId == page.UnitId,
+                            JoinType.Left, a.ProjectId == l.ProjectId && l.UnitId == page.UnitId,
+                              JoinType.Left, a.ProjectId == m.ProjectId && m.UnitId == page.UnitId,
+                               JoinType.Left, a.ProjectId == n.ProjectId && n.UnitId == page.UnitId
+                  ))
+                .Where((a, d, e, f, g, h, i, j, k, l, m, n) =>a.TenantID == aaa.TEID)
+                //鐪�
+                .WhereIF(!string.IsNullOrEmpty(page.Province) && page.Province!= "璇烽�夋嫨", (a, d, e, f, g, h, i, j, k, l, m, n) => (a.Province == page.Province))
+                //甯�
+                .WhereIF(!string.IsNullOrEmpty(page.City) && page.City != "璇烽�夋嫨", (a, d, e, f, g, h, i, j, k, l, m, n) => (a.City == page.City))
+                //鍖哄幙
+                .WhereIF(!string.IsNullOrEmpty(page.County) && page.County != "璇烽�夋嫨", (a, d, e, f, g, h, i, j, k, l, m, n) => (a.County == page.County))
+            //鎶ュ悕鏃堕棿
+                .WhereIF(!string.IsNullOrEmpty(page.ddlSignupStartTime), (a, d, e, f, g, h, i, j, k, l, m, n) => a.SignupStartTime >= DateTime.Parse(page.ddlSignupStartTime))
+                //鎶ュ悕鏃堕棿
+                .WhereIF(!string.IsNullOrEmpty(page.ddlSignupEndTime), (a, d, e, f, g, h, i, j, k, l, m, n) => a.SignupEndTime <= DateTime.Parse(page.ddlSignupEndTime))
+            //寮�鏍囨椂闂�
+            .WhereIF(!string.IsNullOrEmpty(page.ddlTenderStartTime), (a, d, e, f, g, h, i, j, k, l, m, n) => a.TenderTime >= DateTime.Parse(page.ddlTenderStartTime))
+            //寮�鏍囨椂闂�
+            .WhereIF(!string.IsNullOrEmpty(page.ddlTenderEndTime), (a, d, e, f, g, h, i, j, k, l, m, n) => a.TenderTime <= DateTime.Parse(page.ddlTenderEndTime))
+             //閲囪喘鏂瑰紡
+             .WhereIF(page.ddlPurchaseMethod>0, (a, d, e, f, g, h, i, j, k, l, m, n) => a.PurchaseMethod == page.ddlPurchaseMethod)
+             //椤圭洰鍚嶇О
+             .WhereIF(!string.IsNullOrEmpty(page.txtProjectName), (a, d, e, f, g, h, i, j, k, l, m, n) => a.ProjectName.Contains(page.txtProjectName))
+              //椤圭洰缂栧彿
+              .WhereIF(!string.IsNullOrEmpty(page.txtProjectCode), (a, d, e, f, g, h, i, j, k, l, m, n) => a.ProjectCode.Contains(page.txtProjectCode))
+                //閲囪喘鍗曚綅
+                .WhereIF(!string.IsNullOrEmpty(page.txtPurchaseUnit), (a, d, e, f, g, h, i, j, k, l, m, n) => a.PurchaseUnit.Contains(page.txtPurchaseUnit))
+                 //浠g悊鏈烘瀯
+                 .WhereIF(!string.IsNullOrEmpty(page.txtAgencyUnit), (a, d, e, f, g, h, i, j, k, l, m, n) => a.AgencyUnit.Contains(page.txtAgencyUnit))
+                   //鎶曟爣浜�
+                   .WhereIF(!string.IsNullOrEmpty(page.txtTenderPerson), (a, d, e, f, g, h, i, j, k, l, m, n) => d.TenderPerson.Contains(page.txtTenderPerson))
+                    //涓撳
+                    .WhereIF(!string.IsNullOrEmpty(page.Experts), (a, d, e, f, g, h, i, j, k, l, m, n) => d.Experts.Contains(page.Experts))
+                     //鎶ュ悕鐘舵��
+                     .WhereIF(page.ddlSignUp > 0 && page.ddlSignUp == 1, (a, d, e, f, g, h, i, j, k, l, m, n) => (d.IsSignup == 0 || d.IsSignup == null))
+                      .WhereIF(page.ddlSignUp > 0 && page.ddlSignUp != 1, (a, d, e, f, g, h, i, j, k, l, m, n) => d.IsSignup == 1 )
+                       //淇濊瘉閲戠姸鎬�
+                       .WhereIF(page.ddlTenderDeposit > 0 && page.ddlTenderDeposit == 12, (a, d, e, f, g, h, i, j, k, l, m, n) => d.TenderDepositStatus == null)
+                        .WhereIF(page.ddlTenderDeposit > 0 && page.ddlTenderDeposit == 36, (a, d, e, f, g, h, i, j, k, l, m, n) => a.TenderTime < DateTime.Now.AddDays(15) && d.TenderDepositStatus == 13 )
+                      .WhereIF(page.ddlTenderDeposit > 0 && page.ddlTenderDeposit != 12 && page.ddlTenderDeposit != 36, (a, d, e, f, g, h, i, j, k, l, m, n) => d.TenderDepositStatus == page.ddlTenderDeposit)
+              //灞ョ害閲戠姸鎬�
+              .WhereIF(page.ddlBidbond > 0 && page.ddlBidbond == 32, (a, d, e, f, g, h, i, j, k, l, m, n) => (d.BidbondStatus == null))
+                      .WhereIF(page.ddlBidbond > 0 && page.ddlBidbond != 32, (a, d, e, f, g, h, i, j, k, l, m, n) => d.BidbondStatus == page.ddlBidbond )
+               //鏍囦功鐘舵��
+               .WhereIF(page.ddlDocumentStatus > 0 && page.ddlDocumentStatus == 15, (a, d, e, f, g, h, i, j, k, l, m, n) => (d.DocumentStatus == null || d.DocumentStatus == 0 || d.DocumentStatus == 15))
+                      .WhereIF(page.ddlDocumentStatus > 0 && page.ddlDocumentStatus != 15, (a, d, e, f, g, h, i, j, k, l, m, n) => d.DocumentStatus == page.ddlDocumentStatus)
+                     //鎶曟爣鐘舵��
+                     .WhereIF(page.ddlTenderStatus > 0 && page.ddlTenderStatus == 1, (a, d, e, f, g, h, i, j, k, l, m, n) => (d.TenderStatus == null || d.TenderStatus == 0 ))
+                      .WhereIF(page.ddlTenderStatus > 0 && page.ddlTenderStatus != 1, (a, d, e, f, g, h, i, j, k, l, m, n) => d.TenderStatus == 1)
+              //涓爣鎯呭喌
+              .WhereIF(page.ddlWinStatus > 0 && page.ddlWinStatus == 1, (a, d, e, f, g, h, i, j, k, l, m, n) => n.IsWin == null )
+                      .WhereIF(page.ddlWinStatus > 0 && page.ddlWinStatus != 1, (a, d, e, f, g, h, i, j, k, l, m, n) => n.IsWin == (page.ddlWinStatus -1) )
+              //璐ㄧ枒鎯呭喌
+              .WhereIF(page.ddlOppugnStatus > 0 && page.ddlOppugnStatus == 1, (a, d, e, f, g, h, i, j, k, l, m, n) => (e.FilePath == null || e.FilePath =="" ))
+                      .WhereIF(page.ddlOppugnStatus > 0 && page.ddlOppugnStatus != 1, (a, d, e, f, g, h, i, j, k, l, m, n) => (e.FilePath != null && e.FilePath != ""))
+              //鎶曡瘔鎯呭喌
+              .WhereIF(page.ddlComplainStatus > 0 && page.ddlComplainStatus == 1, (a, d, e, f, g, h, i, j, k, l, m, n) => (f.FilePath == null || f.FilePath == ""))
+                      .WhereIF(page.ddlComplainStatus > 0 && page.ddlComplainStatus != 1, (a, d, e, f, g, h, i, j, k, l, m, n) => (f.FilePath != null && f.FilePath != ""))
+                           //澶嶈鎯呭喌
+                           .WhereIF(page.ddlReviewStatus > 0 && page.ddlReviewStatus == 1, (a, d, e, f, g, h, i, j, k, l, m, n) => (g.FilePath == null || g.FilePath == ""))
+                      .WhereIF(page.ddlReviewStatus > 0 && page.ddlReviewStatus != 1, (a, d, e, f, g, h, i, j, k, l, m, n) => (g.FilePath != null && g.FilePath != ""))
+               //璇夎鎯呭喌
+               .WhereIF(page.ddlLitigationStatus > 0 && page.ddlLitigationStatus == 1, (a, d, e, f, g, h, i, j, k, l, m, n) => (h.FilePath == null || h.FilePath == ""))
+                      .WhereIF(page.ddlLitigationStatus > 0 && page.ddlLitigationStatus != 1, (a, d, e, f, g, h, i, j, k, l, m, n) => (h.FilePath != null && h.FilePath != ""))
+             .Select((a, d, e, f, g, h, i, j, k, l, m, n) => new DocumentProjectInfoDTO
+             {
+                 ProjectId = a.ProjectId,
+                 SignupStartTime = a.SignupStartTime,
+                 Province = a.Province,
+                 City = a.City,
+                 County = a.County,
+                 ProjectName = a.ProjectName,
+                 PurchaseUnit = a.PurchaseUnit,
+                 AgencyUnit = a.AgencyUnit,
+                 TenderTime = a.TenderTime,
+                 TenderPerson = d.TenderPerson,
+                 IsSignup = d.IsSignup,
+                 TenderDepositStatus = d.TenderDepositStatus,
+                 BidbondStatus = d.BidbondStatus,
+                 TenderStatus = d.TenderStatus,
+                 IsWin = n.IsWin,
+                 IsAdvise = i.IsAdvise,
+                 FilePathzy = k.FilePath,
+                 FilePathts = j.FilePath,
+                 FilePathfy = m.FilePath,
+                 FilePathss = l.FilePath,
+                 tbqk = "鎶曟爣鎯呭喌",
+                 wj = "",
+                 NoticeTypeName = "鎷涙爣鍏憡",
+                 NoticeType = a.NoticeType,
+                 PurchaseMethod = a.PurchaseMethod,
+                 DocumentStatus = d.DocumentStatus
+             }
+              )
+             .OrderByDescending(a => a.ProjectId).ToPageList(page.PageIndex, page.PageSize, ref total);
+
+
+            result.TotalCount = total;
+            result.TotalPage = total % page.PageSize == 0 ? total / page.PageSize : total / page.PageSize + 1;
+
+            if(result.Items!=null && result.Items.Count > 0)
+            {
+                var ret = _db.Queryable<Document_Dictionary>().ToList();
+                foreach (var documentProjectInfoDTO in result.Items)
+                {
+                    if(documentProjectInfoDTO.City == "璇烽�夋嫨" && documentProjectInfoDTO.County == "璇烽�夋嫨")
+                    {
+                        documentProjectInfoDTO.xmqy = documentProjectInfoDTO.Province;
+                    }
+                    else if (documentProjectInfoDTO.City == "璇烽�夋嫨" && documentProjectInfoDTO.County == "鍏朵粬")
+                    {
+                        documentProjectInfoDTO.xmqy = documentProjectInfoDTO.City;
+                    }
+                    else
+                    {
+                        documentProjectInfoDTO.xmqy = documentProjectInfoDTO.City+ documentProjectInfoDTO.County;
+                    }
+
+                    if(documentProjectInfoDTO.IsSignup == 1)
+                    {
+                        documentProjectInfoDTO.bm = "鈭�";
+                    }
+                    else
+                    {
+                        documentProjectInfoDTO.bm = "鎶ュ悕";
+                    }
+
+                    if (!documentProjectInfoDTO.TenderDepositStatus.HasValue || documentProjectInfoDTO.TenderDepositStatus == 0 )
+                    {
+                        documentProjectInfoDTO.bzj = "缂磋垂";
+                    }
+                    else if(documentProjectInfoDTO.TenderDepositStatus == 13)
+                    {
+                        documentProjectInfoDTO.bzj = "閫�娆�";
+                    }
+                    else
+                    {
+                        documentProjectInfoDTO.bzj = "鈭�";
+                    }
+
+                    if (!documentProjectInfoDTO.BidbondStatus.HasValue || documentProjectInfoDTO.BidbondStatus == 0)
+                    {
+                        documentProjectInfoDTO.lybzj = "缂磋垂";
+                    }
+                    else if (documentProjectInfoDTO.BidbondStatus == 33)
+                    {
+                        documentProjectInfoDTO.lybzj = "閫�娆�";
+                    }
+                    else
+                    {
+                        documentProjectInfoDTO.lybzj = "鈭�";
+                    }
+
+                    if (documentProjectInfoDTO.TenderStatus == 1)
+                    {
+                        documentProjectInfoDTO.tb = "鈭�";
+                    }
+                    else
+                    {
+                        documentProjectInfoDTO.tb = "鎶曟爣";
+                    }
+
+                    if (documentProjectInfoDTO.DocumentStatus == 17)
+                    {
+                        documentProjectInfoDTO.bs = "鈭�";
+                    }
+                    else if (documentProjectInfoDTO.DocumentStatus == 16)
+                    {
+                        documentProjectInfoDTO.bs = "鍒朵綔涓�";
+                    }
+                    else
+                    {
+                        documentProjectInfoDTO.bs = "鏈埗浣�";
+                    }
+                    
+
+                    if (!documentProjectInfoDTO.IsWin.HasValue || documentProjectInfoDTO.IsWin <= 0)
+                    {
+                        documentProjectInfoDTO.zb = "涓爣";
+                    }
+                    else if (documentProjectInfoDTO.IsWin == 2)
+                    {
+                        documentProjectInfoDTO.zb = "鈭�";
+                    }
+                    else
+                    {
+                        documentProjectInfoDTO.zb = "脳";
+                    }
+
+                    if (documentProjectInfoDTO.IsAdvise == 1)
+                    {
+                        documentProjectInfoDTO.Advise = "鈭�";
+                    }
+                    else
+                    {
+                        documentProjectInfoDTO.Advise = "";
+                    }
+
+                    if (!string.IsNullOrEmpty(documentProjectInfoDTO.FilePathzy))
+                    {
+                        documentProjectInfoDTO.zy = "鈭�";
+                    }
+                    else
+                    {
+                        documentProjectInfoDTO.zy = "";
+                    }
+
+                    if (!string.IsNullOrEmpty(documentProjectInfoDTO.FilePathts))
+                    {
+                        documentProjectInfoDTO.ts = "鈭�";
+                    }
+                    else
+                    {
+                        documentProjectInfoDTO.ts = "";
+                    }
+
+
+                    if (!string.IsNullOrEmpty(documentProjectInfoDTO.FilePathfy))
+                    {
+                        documentProjectInfoDTO.fy = "鈭�";
+                    }
+                    else
+                    {
+                        documentProjectInfoDTO.fy = "";
+                    }
+
+
+                    if (!string.IsNullOrEmpty(documentProjectInfoDTO.FilePathss))
+                    {
+                        documentProjectInfoDTO.ss = "鈭�";
+                    }
+                    else
+                    {
+                        documentProjectInfoDTO.ss = "";
+                    }
+                    if(documentProjectInfoDTO.PurchaseMethod.HasValue && documentProjectInfoDTO.PurchaseMethod.Value > 0)
+                    {
+                        var document_Dictionary = ret.Where(x => x.Id == documentProjectInfoDTO.PurchaseMethod).FirstOrDefault();
+                        if (document_Dictionary != null)
+                        {
+                            documentProjectInfoDTO.PurchaseMethodName = document_Dictionary.Name;
+                        }
+                    }
+                   
+                }
+            }
+
+            return result;
+        }
+
+        public bool DelProjectInfoByIds(List<int> projectIdList)
+        {
+            try
+            {
+                _db.Ado.BeginTran();
+                foreach (int item in projectIdList)
+                {
+                    _db.Deleteable<Document_ProjectInfo>().Where(new Document_ProjectInfo() { ProjectId = item }).ExecuteCommand();
+                    _db.Deleteable<Document_ProjectDocumentInfo>().Where(new Document_ProjectDocumentInfo() { ProjectId = item }).ExecuteCommand();
+                    _db.Deleteable<Document_ProjectExpand>().Where(new Document_ProjectExpand() { ProjectId = item }).ExecuteCommand();
+                    _db.Deleteable<Document_ProjectLitigationInfo>().Where(new Document_ProjectLitigationInfo() { ProjectId = item }).ExecuteCommand();
+                    _db.Deleteable<Document_ProjectOppugnInfo>().Where(new Document_ProjectOppugnInfo() { ProjectId = item }).ExecuteCommand();
+                    _db.Deleteable<Document_ProjectReviewInfo>().Where(new Document_ProjectReviewInfo() { ProjectId = item }).ExecuteCommand();
+                    _db.Deleteable<Document_WinInfo>().Where(x=>x.ProjectId == item).ExecuteCommand();
+                    _db.Deleteable<Document_ProjectComplainInfo>().Where(new Document_ProjectComplainInfo() { ProjectId = item }).ExecuteCommand();
+                    _db.Deleteable<Document_ProjectDocumentInfo>().Where(new Document_ProjectDocumentInfo() { ProjectId = item }).ExecuteCommand();
+                }
+                _db.Ado.CommitTran();
+            }
+            catch (Exception ex)
+            {
+                _db.Ado.RollbackTran();
+                return false;
+            }
+
+            
+            return true;
+        }
+
+
+        public DocumentProjectInfoDTO GetProjectInfo(int ID , int TenantID)
+        {
+            var ret = _db.Queryable<Document_ProjectInfo>().Where(x => x.ProjectId == ID && x.TenantID == TenantID).First();
+            if (ret == null)
+            {
+                ret = new Document_ProjectInfo();
+            }
+            var documentProjectInfo = _mapper.Map<DocumentProjectInfoDTO>(ret);
+            var sys_CitySites  = _db.Queryable<Sys_CitySite>().ToList();
+
+            if (!string.IsNullOrEmpty(documentProjectInfo.Province))
+            {
+                var provice = sys_CitySites.Where(x => x.Name == documentProjectInfo.Province && x.ProvinceId == 0 && x.CityId == 0).FirstOrDefault();
+                if (provice != null)
+                {
+                    documentProjectInfo.ProvinceId = provice.Keyid.Value;
+                }
+            }
+
+            if (!string.IsNullOrEmpty(documentProjectInfo.City))
+            {
+                var city = sys_CitySites.Where(x => x.Name == documentProjectInfo.City && x.ProvinceId == documentProjectInfo.ProvinceId && x.CityId == 0).FirstOrDefault();
+                if (city != null)
+                {
+                    documentProjectInfo.CityId = city.Keyid.Value;
+                }
+            }
+
+            if (!string.IsNullOrEmpty(documentProjectInfo.County))
+            {
+                var county = sys_CitySites.Where(x => x.Name == documentProjectInfo.County && x.ProvinceId == documentProjectInfo.ProvinceId && x.CityId == documentProjectInfo.CityId).FirstOrDefault();
+                if (county != null)
+                {
+                    documentProjectInfo.CountyId = county.Keyid.Value;
+                }
+            }
+
+            return documentProjectInfo;
+
+        }
+
+
+        public Document_ProjectExpand GetProjectExpand(int ID, int UnitId)
+        {
+            var ret = _db.Queryable<Document_ProjectExpand>().Where(x => x.ProjectId == ID && x.UnitId == UnitId ).First();
+            return ret;
+        }
+
+        public Document_WinInfo GetDocument_WinInfo(int ID, int UnitId)
+        {
+            var ret = _db.Queryable<Document_WinInfo>().Where(x => x.ProjectId == ID && x.UnitId == UnitId ).First();
+            return ret;
+        }
+
+        public Document_AdviseInfo GetDocument_AdviseInfo(int ID, int UnitId)
+        {
+            var ret = _db.Queryable<Document_AdviseInfo>().Where(x => x.ProjectId == ID && x.UnitId == UnitId).First();
+            return ret;
+        }
+
+        public Document_ProjectOppugnInfo GetProjectOppugnInfo(int ID, int UnitId)
+        {
+            var ret = _db.Queryable<Document_ProjectOppugnInfo>().Where(x => x.ProjectId == ID && x.UnitId == UnitId).First();
+            return ret;
+        }
+
+        public Document_ProjectComplainInfo GetProjectComplainInfo(int ID, int UnitId)
+        {
+            var ret = _db.Queryable<Document_ProjectComplainInfo>().Where(x => x.ProjectId == ID && x.UnitId == UnitId).First();
+            return ret;
+        }
+
+        public Document_ProjectReviewInfo GetProjectReviewInfo(int ID, int UnitId)
+        {
+            var ret = _db.Queryable<Document_ProjectReviewInfo>().Where(x => x.ProjectId == ID && x.UnitId == UnitId).First();
+            return ret;
+        }
+
+        public Document_ProjectLitigationInfo GetProjectLitigationInfo(int ID, int UnitId)
+        {
+            var ret = _db.Queryable<Document_ProjectLitigationInfo>().Where(x => x.ProjectId == ID && x.UnitId == UnitId).First();
+            return ret;
+        }
+
+        public List<Document_OtherCompanyTenderInfo> GetOtherCompanyTenderInfoList(int ID, int TenantID)
+        {
+            var ret = _db.Queryable<Document_OtherCompanyTenderInfo>().Where(x => x.ProjectId == ID && x.TenantID == TenantID).ToList();
+            return ret;
+        }
+        public Document_OtherCompanyTenderInfo GetOtherCompanyTenderInfo(int ID, string companyName)
+        {
+            var a = GetJwtInfo();
+
+            var ret = _db.Queryable<Document_OtherCompanyTenderInfo>().Where(x => x.TenantID == a.TEID && x.ProjectId == ID && x.CompanyName == companyName).First();
+            return ret;
+        }
+
+        public bool DelOtherCompanyTenderInfo(int Id)
+        {
+            
+               
+
+                    _db.Deleteable<Document_OtherCompanyTenderInfo>().Where(new Document_OtherCompanyTenderInfo() { ID = Id }).ExecuteCommand();
+                   
+               
+           
+
+
+            return true;
+        }
+
+        public bool SaveOtherCompanyTenderInfo(Document_OtherCompanyTenderInfo dp)
+        {
+            if (dp.ID > 0)
+            {
+                _db.Updateable<Document_OtherCompanyTenderInfo>(dp).ExecuteCommand();
+            }
+            else
+            {
+                _db.Insertable<Document_OtherCompanyTenderInfo>(dp).ExecuteCommand();
+            }
+
+            return true;
+        }
+
+        public bool UpdateProjectInfo(Document_ProjectInfo dp)
+        {
+
+            //var a = GetJwtInfo();
+            //dp.LastUpTime = DateTime.Now;
+            //dp.CreatEmployeeId = a.EID;
+
+            //var tentlist = _db.Queryable<Document_EmployeeInfo>()
+            //  .Where(x => x.EmployeeId == a.EID
+
+            //).First();
+            //if (tentlist != null)
+            //{
+            //    dw.CreatEmployeeName = tentlist.EmployeeName;
+
+            //}
+            return _projectInfoRepository.Update(dp);
+
+        }
+
+        public bool SaveDocumentWinInfo(Document_WinInfo dp)
+        {
+            if (dp.ID > 0)
+            {
+                _db.Updateable<Document_WinInfo>(dp).ExecuteCommand();
+            }
+            else
+            {
+                _db.Insertable<Document_WinInfo>(dp).ExecuteCommand();
+            }
+
+            return true;
+        }
+
+
+        public bool SaveDocumentProjectExpand(Document_ProjectExpand dp)
+        {
+            if (dp.ID > 0)
+            {
+                _db.Updateable<Document_ProjectExpand>(dp).ExecuteCommand();
+            }
+            else
+            {
+                _db.Insertable<Document_ProjectExpand>(dp).ExecuteCommand();
+            }
+
+            return true;
+        }
+
+
+        public Model.cyDocumentModel.Document_TenderUnit GetTenderUnit(int ID)
+        {
+            var ret = _db.Queryable<Model.cyDocumentModel.Document_TenderUnit>().Where(x => x.UnitId == ID).First();
+            return ret;
+        }
+
+        public Document_EmployeeInfo GetDocument_EmployeeInfoByName(string EmployeeName)
+        {
+            var a = GetJwtInfo();
+            var ret1 = _db.Queryable<EmployeeAtTenant>().Where(x => x.TenantID == a.TEID).Select(x=>x.EmployeeID).ToList();
+
+            var ret = _db.Queryable<Model.cyDocumentModel.Document_EmployeeInfo>().Where(x => x.EmployeeName == EmployeeName && ret1.Contains(x.EmployeeId)).First();
+
+           
+
+            return ret;
+        }
+
+        public Model.cyDocumentModel.Document_EmployeeInfo GetDocument_EmployeeInfoInfo(int ID)
+        {
+            var ret = _db.Queryable<Model.cyDocumentModel.Document_EmployeeInfo>().Where(x => x.EmployeeId == ID).First();
+            return ret;
+        }
+
+        public List<Document_AptitudeInfo> GetAptitudeInfoByUnitId(int UnitId)
+        { 
+
+                var result = _db.Queryable<Document_AptitudeInfo>().Where( x=> x.UnitId == UnitId).ToList() ;//鎵ц鏌ヨ
+
+            return result;
+        }
+
+
+        public bool GetDeleteDocumentModel(int projectId, int unitId)
+        {
+            _db.Deleteable<Document_ProjectDocumentInfo>().Where(x=>x.ProjectId == projectId && x.UnitId == unitId).ExecuteCommand();
+
+            return true;
+        }
+
+        public Document_ProjectDocumentInfo GetProjectDocumentInfo(int projectId, int unitId)
+        {
+            var ret = _db.Queryable<Document_ProjectDocumentInfo>().Where(x => x.ProjectId == projectId && x.UnitId == unitId).First();
+            return ret;
+        }
+
+
+        public PageResult<DocumentProjectInfoDTO> postDocumentList(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<DocumentProjectInfoDTO> result = new PageResult<DocumentProjectInfoDTO>();
+
+
+
+            result.Items = _db.Queryable<Document_ProjectDocumentInfo, Document_ProjectInfo,  Document_ProjectExpand>((a,b, d) =>
+              new JoinQueryInfos
+              (
+             JoinType.Inner, a.ProjectId == b.ProjectId && b.TenantID == aaa.TEID,
+              JoinType.Left, a.ProjectId == d.ProjectId && d.UnitId == page.UnitId
+                
+                  ))
+                .Where((a, b, d) => a.UnitId == page.UnitId)
+                //鐪�
+                .WhereIF(!string.IsNullOrEmpty(page.Province) && page.Province != "璇烽�夋嫨", (a, b, d) => (b.Province == page.Province))
+                //甯�
+                .WhereIF(!string.IsNullOrEmpty(page.City) && page.City != "璇烽�夋嫨", (a, b, d) => (b.City == page.City))
+                //鍖哄幙
+                .WhereIF(!string.IsNullOrEmpty(page.County) && page.County != "璇烽�夋嫨", (a, b, d) => (b.County == page.County))
+            //寮�鏍囨椂闂�
+            .WhereIF(!string.IsNullOrEmpty(page.ddlTenderStartTime), (a, b, d) => b.TenderTime >= DateTime.Parse(page.ddlTenderStartTime))
+            //寮�鏍囨椂闂�
+            .WhereIF(!string.IsNullOrEmpty(page.ddlTenderEndTime), (a, b, d) => b.TenderTime <= DateTime.Parse(page.ddlTenderEndTime))
+             //閲囪喘鏂瑰紡
+             .WhereIF(page.ddlPurchaseMethod > 0, (a, b, d) => b.PurchaseMethod == page.ddlPurchaseMethod)
+             //椤圭洰鍚嶇О
+             .WhereIF(!string.IsNullOrEmpty(page.txtProjectName), (a, b, d) => b.ProjectName.Contains(page.txtProjectName))
+              
+             .Select((a, b, d) => new DocumentProjectInfoDTO
+             {
+                 ProjectId = b.ProjectId,
+                 DocumentId = a.ID,
+                 TenderTime = b.TenderTime,
+                 Province = b.Province,
+                 City = b.City,
+                 County = b.County,
+                 ProjectName = b.ProjectName,
+                 PurchaseMethod = b.PurchaseMethod,
+                 LastUpdateTime = a.LastUpdateTime,
+
+             }
+              )
+             .OrderByDescending(a => a.LastUpdateTime).ToPageList(page.PageIndex, page.PageSize, ref total);
+
+
+            result.TotalCount = total;
+            result.TotalPage = total % page.PageSize == 0 ? total / page.PageSize : total / page.PageSize + 1;
+
+            if (result.Items != null && result.Items.Count > 0)
+            {
+                var ret = _db.Queryable<Document_Dictionary>().ToList();
+                foreach (var documentProjectInfoDTO in result.Items)
+                {
+                    if (documentProjectInfoDTO.City == "璇烽�夋嫨" && documentProjectInfoDTO.County == "璇烽�夋嫨")
+                    {
+                        documentProjectInfoDTO.xmqy = documentProjectInfoDTO.Province;
+                    }
+                    else if (documentProjectInfoDTO.City == "璇烽�夋嫨" && documentProjectInfoDTO.County == "鍏朵粬")
+                    {
+                        documentProjectInfoDTO.xmqy = documentProjectInfoDTO.City;
+                    }
+                    else
+                    {
+                        documentProjectInfoDTO.xmqy = documentProjectInfoDTO.City + documentProjectInfoDTO.County;
+                    }
+
+                    if (documentProjectInfoDTO.PurchaseMethod.HasValue && documentProjectInfoDTO.PurchaseMethod.Value > 0)
+                    {
+                        var document_Dictionary = ret.Where(x => x.Id == documentProjectInfoDTO.PurchaseMethod).FirstOrDefault();
+                        if (document_Dictionary != null)
+                        {
+                            documentProjectInfoDTO.PurchaseMethodName = document_Dictionary.Name;
+                        }
+                    }
+
+                }
+            }
+
+            return result;
+        }
+
+        public bool SaveDocumentProjectDocumentInfo(Document_ProjectDocumentInfo dp)
+        {
+            if (dp.ID > 0)
+            {
+                _db.Updateable<Document_ProjectDocumentInfo>(dp).ExecuteCommand();
+            }
+            else
+            {
+                _db.Insertable<Document_ProjectDocumentInfo>(dp).ExecuteCommand();
+            }
+
+            return true;
+        }
+    }
+}
diff --git a/DocumentServiceAPI.Application/ProjectInfo/ViewMode/DocumentProjectInfoDTO.cs b/DocumentServiceAPI.Application/ProjectInfo/ViewMode/DocumentProjectInfoDTO.cs
new file mode 100644
index 0000000..7f54305
--- /dev/null
+++ b/DocumentServiceAPI.Application/ProjectInfo/ViewMode/DocumentProjectInfoDTO.cs
@@ -0,0 +1,433 @@
+锘縰sing DocumentServiceAPI.Utility;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DocumentServiceAPI.Application.ProjectInfo.ViewMode
+{
+    /// <summary>
+    /// 椤圭洰鎼滅储 鍙傛暟
+    /// </summary>
+    public class DocumentProjectInfoPageSearch : PageBaseSearch
+    {
+        public string Province { get; set; }
+        public string City { get; set; }
+        public string County { get; set; }
+        public string ddlSignupStartTime { get; set; }
+        public string ddlSignupEndTime { get; set; }
+        public string ddlTenderStartTime { get; set; }
+        public string ddlTenderEndTime { get; set; }
+        public int ddlPurchaseMethod { get; set; }
+        public string txtProjectName { get; set; }
+        public string txtProjectCode { get; set; }
+        public string txtPurchaseUnit { get; set; }
+        public string txtAgencyUnit { get; set; }
+        public string txtTenderPerson { get; set; }
+        public string txtCompanyName { get; set; }
+        public int ddlSignUp { get; set; }
+        public int ddlTenderDeposit { get; set; }
+        public int ddlBidbond { get; set; }
+        public int ddlDocumentStatus { get; set; }
+        public int ddlTenderStatus { get; set; }
+        public int ddlWinStatus { get; set; }
+        public int ddlOppugnStatus { get; set; }
+        public int ddlComplainStatus { get; set; }
+        public int ddlReviewStatus { get; set; }
+        public int ddlLitigationStatus { get; set; }
+        public int UnitId { get; set; }
+        public string Experts { get; set; }
+    }
+    public class DocumentProjectInfoDTO
+    {
+        public DocumentProjectInfoDTO()
+        {
+
+
+        }
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        public int ProjectId { get; set; }
+
+        public int DocumentId { get; set; }
+        
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string ProjectName { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string ProjectCode { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? ProjectStatus { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string Province { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string City { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string County { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? NoticeType { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? PurchaseMethod { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? ReleaseTime { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? OpinionEndTime { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string FeedbackUnit { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string ReportUnit { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? SignupStartTime { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? DocumentUpdateTime { get; set; }
+        public DateTime? LastUpdateTime { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? SignupEndTime { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? SignupMethod { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public decimal? SignupFee { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public decimal? TenderDeposit { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? PayMethod { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? TenderTime { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string AgencyUnit { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string AgencyManager { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string AgencyPhone { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string AgencyAddress { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string AgencyZipCode { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string AgencyFax { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string PurchaseUnit { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string PurchaseManager { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string PurchasePhone { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string PurchaseAddress { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string PurchaseZipCode { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string PurchaseFax { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string IntendanceUnit { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string IntendancePerson { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string IntendancePhone { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string IntendanceAddress { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string IntendanceZipCode { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string IntendanceFax { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public decimal? Bidbond { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? IsTenderDepositRemind { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string PackageNum { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? CgwjTime { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? TenantID { get; set; }
+
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string ProjectUrl { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? GongGaoTime { get; set; }
+
+        public string xmqy { get; set; }
+
+        public string PurchaseMethodName { get; set; }
+        public string NoticeTypeName { get; set; }
+
+        public string TenderPerson { get; set; }
+
+        public string bm { get; set; }
+        public string bzj { get; set; }
+        public string lybzj { get; set; }
+        public string tb { get; set; }
+        public string zb { get; set; }
+        public string bs { get; set; }
+
+        public string Advise { get; set; }
+        public string zy { get; set; }
+        public string ts { get; set; }
+        public string fy { get; set; }
+        public string ss { get; set; }
+
+        public int? IsSignup { get; set; }
+        public int? TenderDepositStatus { get; set; }
+        public int? BidbondStatus { get; set; }
+        public int? TenderStatus { get; set; }
+        public int? IsWin { get; set; }
+        public int? IsAdvise { get; set; }
+        public string FilePathzy { get; set; }
+        public string FilePathts { get; set; }
+        public string FilePathfy { get; set; }
+        public string FilePathss { get; set; }
+        public string wj { get; set; }
+        public string tbqk { get; set; }
+        public int? DocumentStatus { get; set; }
+
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int ProvinceId { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int CityId { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int CountyId { get; set; }
+
+    }
+}
diff --git a/DocumentServiceAPI.Application/ProjectInfo/dto/Mapper.cs b/DocumentServiceAPI.Application/ProjectInfo/dto/Mapper.cs
new file mode 100644
index 0000000..2a463ee
--- /dev/null
+++ b/DocumentServiceAPI.Application/ProjectInfo/dto/Mapper.cs
@@ -0,0 +1,20 @@
+锘縰sing DocumentServiceAPI.Application.ProjectInfo.ViewMode;
+using DocumentServiceAPI.Application.UserAndLogin.ViewMode;
+using DocumentServiceAPI.Model.cyDocumentModel;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DocumentServiceAPI.Application.ProjectInfo.dto
+{
+    public class Mapper : IRegister
+    {
+        public void Register(TypeAdapterConfig config)
+        {
+            config.ForType<Document_ProjectInfo, DocumentProjectInfoDTO>();
+            config.ForType<DocumentProjectInfoDTO, Document_ProjectInfo>();
+        }
+    }
+}
diff --git a/DocumentServiceAPI.Application/Repository/ProjectInfoRepository.cs b/DocumentServiceAPI.Application/Repository/ProjectInfoRepository.cs
new file mode 100644
index 0000000..c25c69d
--- /dev/null
+++ b/DocumentServiceAPI.Application/Repository/ProjectInfoRepository.cs
@@ -0,0 +1,17 @@
+锘縰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.Repository
+{
+    /// <summary>
+    /// 椤圭洰淇℃伅
+    /// </summary>
+    public class ProjectInfoRepository : BaseRepository<Document_ProjectInfo>, ITransient
+    {
+    }
+}
diff --git a/DocumentServiceAPI.Application/Repository/WorkRemindRepository.cs b/DocumentServiceAPI.Application/Repository/WorkRemindRepository.cs
new file mode 100644
index 0000000..3edc6c4
--- /dev/null
+++ b/DocumentServiceAPI.Application/Repository/WorkRemindRepository.cs
@@ -0,0 +1,17 @@
+锘縰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.Repository
+{
+    /// <summary>
+    /// 鍛樺伐鎻愰啋 
+    /// </summary>
+    public class WorkRemindRepository : BaseRepository<Document_WorkRemind>, ITransient
+    {
+    }
+}
diff --git a/DocumentServiceAPI.Application/UserAndLogin/Services/UserService.cs b/DocumentServiceAPI.Application/UserAndLogin/Services/UserService.cs
index 6c0236b..728bcd2 100644
--- a/DocumentServiceAPI.Application/UserAndLogin/Services/UserService.cs
+++ b/DocumentServiceAPI.Application/UserAndLogin/Services/UserService.cs
@@ -209,7 +209,7 @@
                      Job = x.Job,
                       LastUpdateName = x.LastUpdateName,
                        UserName = x.UserName,
-                        
+                        IsLogin = x.IsLogin,
                       
                    
                 }).WithCache(20).FirstAsync();
diff --git a/DocumentServiceAPI.Application/WorkRemind/Services/Interfaces/IWorkRemindService.cs b/DocumentServiceAPI.Application/WorkRemind/Services/Interfaces/IWorkRemindService.cs
new file mode 100644
index 0000000..720f40c
--- /dev/null
+++ b/DocumentServiceAPI.Application/WorkRemind/Services/Interfaces/IWorkRemindService.cs
@@ -0,0 +1,31 @@
+锘縰sing DocumentServiceAPI.Application.WorkRemind.ViewMode;
+using DocumentServiceAPI.Model.cyDocumentModel;
+using DocumentServiceAPI.Utility;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DocumentServiceAPI.Application.WorkRemind.Services.Interfaces
+{
+    public interface IWorkRemindService
+    {
+        public Document_WorkRemind GetWorkRemindInfo(int ID);
+
+        public bool UpEmployee(Document_WorkRemind dw);
+
+        public bool InEmployee(Document_WorkRemind dw);
+        public List<Document_EmployeeInfo> GetUEmployeeInfoList();
+
+        public PageResult<Document_WorkRemind> postWorkRemindList(WorkRemindPageSearch page);
+
+        public bool DelEmployee(int ID);
+
+        public List<Document_Dictionary> GetDictionaryList();
+
+        public List<Sys_CitySite> GetCitySiteList(int CityLevel);
+
+        public List<DocumentEmployeeInfoDTO> GetEmployeeListByStatus(int isWork, int Role);
+    }
+}
diff --git a/DocumentServiceAPI.Application/WorkRemind/Services/WorkRemindService.cs b/DocumentServiceAPI.Application/WorkRemind/Services/WorkRemindService.cs
new file mode 100644
index 0000000..280ff00
--- /dev/null
+++ b/DocumentServiceAPI.Application/WorkRemind/Services/WorkRemindService.cs
@@ -0,0 +1,284 @@
+锘縰sing DocumentServiceAPI.Application.Repository;
+using DocumentServiceAPI.Application.UserAndLogin.Services.Interfaces;
+using DocumentServiceAPI.Application.UserAndLogin.ViewMode;
+using DocumentServiceAPI.Application.WorkRemind.Services.Interfaces;
+using DocumentServiceAPI.Application.WorkRemind.ViewMode;
+using DocumentServiceAPI.Model;
+using DocumentServiceAPI.Model.cyDocumentModel;
+using DocumentServiceAPI.Model.UserInfoModel;
+using DocumentServiceAPI.Utility;
+using Furion.Logging.Extensions;
+using Furion.Schedule;
+using MapsterMapper;
+using SqlSugar.Extensions;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Security.Claims;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DocumentServiceAPI.Application.WorkRemind.Services
+{
+    public class WorkRemindService : IWorkRemindService, IScoped
+    {
+        private ISqlSugarClient _db { get; set; }
+        private WorkRemindRepository _workRemindRepository { get; set; }
+        private IMapper _mapper { get; set; }
+        public WorkRemindService(ISqlSugarClient db, WorkRemindRepository workRemindRepository, IMapper mapper)
+        {
+            _db = db;
+            _workRemindRepository = workRemindRepository;
+            _mapper = mapper;
+        }
+
+
+        /// <summary>
+        /// 鎻愰啋璇︽儏
+        /// </summary>
+        /// <param name="ID"></param>
+        /// <returns></returns>
+        public Document_WorkRemind GetWorkRemindInfo(int ID)
+        {
+            var ret = _db.Queryable<Document_WorkRemind>().Where(x => x.WorkRemindId == ID).First();
+
+            return ret;
+        }
+
+        public bool UpEmployee(Document_WorkRemind dw)
+        {
+
+
+
+            dw.LastUpTime = DateTime.Now;
+
+            return _workRemindRepository.Update(dw);
+
+        }
+
+        public bool InEmployee(Document_WorkRemind dw)
+        {
+            var a = GetJwtInfo();
+            dw.LastUpTime = DateTime.Now;
+            dw.CreatEmployeeId = a.EID;
+
+            var tentlist = _db.Queryable<Document_EmployeeInfo>()
+              .Where(x => x.EmployeeId == a.EID
+
+            ).First();
+            if (tentlist != null)
+            {
+                dw.CreatEmployeeName = tentlist.EmployeeName;
+
+            }
+            return  _workRemindRepository.Insert(dw);
+
+
+
+
+
+        }
+
+        public bool DelEmployee(int ID)
+        {
+
+          var workRemind  =  _workRemindRepository.GetById(ID);
+
+
+            return _workRemindRepository.Delete(workRemind);
+
+
+
+
+
+        }
+
+        /// <summary>
+        /// 鑾峰彇鎻愰啋鍒楄〃
+        /// </summary>
+        /// <param name="page"></param>
+        /// <returns></returns>
+        public PageResult<Document_WorkRemind> postWorkRemindList(WorkRemindPageSearch page)
+        {
+            var a = GetJwtInfo();
+
+            SqlSugar.PageModel pg = new SqlSugar.PageModel();
+            pg.PageSize = page.PageSize;
+            pg.PageIndex = page.PageIndex;
+            page.ToEmployeeId = a.EID;
+            int total = 0;
+            PageResult<Document_WorkRemind> result = new PageResult<Document_WorkRemind>();
+            //result.Items =  _db.Queryable<Document_WorkRemind>().Where(x => ((page.ToEmployeeId ==null || page.ToEmployeeId>0 ) || x.ToEmployeeId == page.ToEmployeeId) 
+            //&& (!page.WorkRemindTimeStart.HasValue || x.WorkRemindTime >= page.WorkRemindTimeStart.Value)
+            // && (!page.WorkRemindTimeEnd.HasValue || x.WorkRemindTime <= page.WorkRemindTimeEnd.Value)
+            //)
+            //   .OrderByDescending(x => x.WorkRemindTime).ToPageList(page.PageIndex, page.PageSize, ref total);
+
+
+            result.Items  = _db.Queryable<Document_WorkRemind>()
+
+            .WhereIF(page.ToEmployeeId != null && page.ToEmployeeId > 0 , x => (x.ToEmployeeId == page.ToEmployeeId) )
+            .WhereIF(page.WorkRemindTimeStart.HasValue, x => x.WorkRemindTime >= page.WorkRemindTimeStart.Value)
+            .WhereIF(page.WorkRemindTimeEnd.HasValue, x=>x.WorkRemindTime <= page.WorkRemindTimeEnd.Value)
+             .WhereIF(!string.IsNullOrEmpty(page.ProjectName), x => x.ProjectName.Contains(page.ProjectName))
+              .WhereIF(!string.IsNullOrEmpty(page.WorkRemindContent), x => x.WorkRemindContent.Contains(page.WorkRemindContent))
+             .OrderByDescending(x => x.WorkRemindTime).ToPageList(page.PageIndex, page.PageSize, ref total);
+
+
+            result.TotalCount = total;
+            result.TotalPage = total%page.PageSize==0 ? total / page.PageSize : total / page.PageSize + 1;
+            return result;
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇em鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public List<Document_EmployeeInfo> GetUEmployeeInfoList()
+
+        {
+            var a = GetJwtInfo();
+            //if (a.EID != null)
+            //    throw Oops.Oh($"娌℃湁鏉冮檺");
+
+
+
+            var tentlist =  _db.Queryable<EmployeeAtTenant, Document_EmployeeInfo>((et, ei) =>
+
+              new JoinQueryInfos
+              (
+             JoinType.Right, ei.EmployeeId == et.EmployeeID
+                  )
+             )
+                .Where((et, ei) =>
+              (et.TenantID == a.TEID) && (ei.IsWork == null || ei.IsWork == 1))
+
+             .Select((et, ei) => new Document_EmployeeInfo
+             {
+                 EmployeeId = ei.EmployeeId,
+                 EmployeeName = ei.EmployeeName,
+                 Job = ei.Job,
+                 Phone = ei.Phone,
+                 IsWork = ei.IsWork,
+                 LeaveTime = ei.LeaveTime,
+                 CardPositive = ei.CardPositive,
+                 CardPositiveVersionNo = ei.CardPositiveVersionNo,
+                 CardPositiveSize = ei.CardPositiveSize,
+                 LastUpdateTime = ei.LastUpdateTime,
+                 LastUpdateName = ei.LastUpdateName,
+                 UserName = ei.UserName,
+                 UserPassWord = ei.UserPassWord,
+                 LoginTime = ei.LoginTime,
+                 IsLogin = ei.IsLogin,
+                 AdviseFlag = ei.AdviseFlag,
+                 UserId = ei.UserId,
+
+             }
+              ).ToList();
+
+          
+            return tentlist;
+
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇Jwt鐩稿叧淇℃伅
+        /// </summary>
+        public JwtInfo GetJwtInfo()
+        {
+            JwtInfo jwtInfo = new JwtInfo();
+            jwtInfo.LogInSource = (LogInFrom)(App.User?.FindFirstValue("loginfrom")?.ObjToInt() ?? 0);
+            jwtInfo.EID = App.User?.FindFirstValue("eid")?.ObjToInt();
+            jwtInfo.UID = App.User?.FindFirstValue("uid")?.ObjToInt();
+            jwtInfo.TEID = App.User?.FindFirstValue("teid")?.ObjToInt();
+            var guid = App.User?.FindFirstValue("jid");
+            jwtInfo.JID = string.IsNullOrEmpty(guid) ? null : new Guid(guid);
+            return jwtInfo;
+        }
+
+
+
+        /// <summary>
+        /// 鏌ヨ鏁版嵁瀛楀吀
+        /// </summary>
+        /// <returns></returns>
+        public List<Document_Dictionary> GetDictionaryList()
+        {
+            var ret = _db.Queryable<Document_Dictionary>().ToList();
+
+            return ret;
+        }
+
+        /// <summary>
+        /// 鏌ヨ鐪佸競
+        /// </summary>
+        /// <param name="CityLevel"></param>
+        /// <returns></returns>
+        public List<Sys_CitySite> GetCitySiteList(int CityLevel)
+        {
+            var ret = _db.Queryable<Sys_CitySite>().WhereIF(CityLevel>0,x=>x.CityLevel == CityLevel).ToList();
+
+            return ret;
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇em鍒楄〃
+        /// </summary>
+        /// <param name="isWork"></param>
+        /// <param name="Role"></param>
+        /// <returns></returns>
+        public List<DocumentEmployeeInfoDTO> GetEmployeeListByStatus(int isWork, int Role)
+
+        {
+            var a = GetJwtInfo();
+            //if (a.EID != null)
+            //    throw Oops.Oh($"娌℃湁鏉冮檺");
+
+
+
+            var tentlist = _db.Queryable<Document_EmployeeInfo, EmployeeAtTenant,  Document_EmployeeRole>((ei, et,  er) =>
+
+              new JoinQueryInfos
+              (
+             JoinType.Left, ei.EmployeeId == et.EmployeeID,
+              JoinType.Left, ei.EmployeeId == er.EmployeeId
+                  )
+             )
+                .Where((ei, et, er) =>
+              et.TenantID == a.TEID)
+                  .WhereIF(isWork >0,(ei, et, er) =>
+              ei.IsWork == isWork)
+                      .WhereIF(Role > 0, (ei, et, er) =>
+              er.RoleType == Role)
+             .Select(expression: (ei, et, er) => new DocumentEmployeeInfoDTO
+             {
+                 EmployeeId = ei.EmployeeId,
+                 EmployeeName = ei.EmployeeName,
+                 Job = ei.Job,
+                 Phone = ei.Phone,
+                 IsWork = ei.IsWork,
+                 LeaveTime = ei.LeaveTime,
+                 CardPositive = ei.CardPositive,
+                 CardPositiveVersionNo = ei.CardPositiveVersionNo,
+                 CardPositiveSize = ei.CardPositiveSize,
+                 LastUpdateTime = ei.LastUpdateTime,
+                 LastUpdateName = ei.LastUpdateName,
+                 UserName = ei.UserName,
+                 UserPassWord = ei.UserPassWord,
+                 LoginTime = ei.LoginTime,
+                 IsLogin = ei.IsLogin,
+                 AdviseFlag = ei.AdviseFlag,
+                 UserId = ei.UserId,
+
+             }
+              ).ToList();
+
+
+            return tentlist;
+
+        }
+    }
+}
diff --git a/DocumentServiceAPI.Application/WorkRemind/ViewMode/DocumentEmployeeInfoDTO.cs b/DocumentServiceAPI.Application/WorkRemind/ViewMode/DocumentEmployeeInfoDTO.cs
new file mode 100644
index 0000000..8035ecc
--- /dev/null
+++ b/DocumentServiceAPI.Application/WorkRemind/ViewMode/DocumentEmployeeInfoDTO.cs
@@ -0,0 +1,80 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DocumentServiceAPI.Application.WorkRemind.ViewMode
+{
+    public class DocumentEmployeeInfoDTO
+    {
+        /// <summary>
+        /// 鍛樺伐ID
+        /// </summary>           
+        public int EmployeeId { get; set; }
+        /// <summary>
+        /// 鍛樺伐鍚嶇О
+        /// </summary>           
+        public string EmployeeName { get; set; }
+        /// <summary>
+        /// 宸ヤ綔鑱屼綅
+        /// </summary>           
+        public string Job { get; set; }
+        /// <summary>
+        /// 鐢佃瘽
+        /// </summary>           
+        public string Phone { get; set; }
+        /// <summary>
+        /// 鏄惁鍦ㄥ伐浣�
+        /// </summary>           
+        public int? IsWork { get; set; }
+        /// <summary>
+        /// 绂诲紑鏃堕棿
+        /// </summary>           
+        public DateTime? LeaveTime { get; set; }
+        /// <summary>
+        /// 璇佷欢姝i潰
+        /// </summary>           
+        public string CardPositive { get; set; }
+        /// <summary>
+        /// 璇佷欢姝i潰鐗堟湰鍙�
+        /// </summary>           
+        public string CardPositiveVersionNo { get; set; }
+        /// <summary>
+        /// 璇佷欢姝i潰澶у皬
+        /// </summary>           
+        public int? CardPositiveSize { get; set; }
+        /// <summary>
+        /// 鏈�鍚庢洿鏂版椂闂�
+        /// </summary>           
+        public DateTime? LastUpdateTime { get; set; }
+        /// <summary>
+        /// 鏈�鍚庢洿鏂颁汉
+        /// </summary>           
+        public string LastUpdateName { get; set; }
+        /// <summary>
+        /// 鐢ㄦ埛鍚�
+        /// </summary>           
+        public string UserName { get; set; }
+        /// <summary>
+        /// 鐢ㄦ埛瀵嗙爜
+        /// </summary>           
+        public string UserPassWord { get; set; }
+        /// <summary>
+        /// 鐧诲綍鏃堕棿
+        /// </summary>           
+        public DateTime? LoginTime { get; set; }
+        /// <summary>
+        /// 鏄惁鐧诲綍
+        /// </summary>           
+        public bool? IsLogin { get; set; }
+        /// <summary>
+        /// 寤鸿鏍囧織
+        /// </summary>           
+        public int? AdviseFlag { get; set; }
+        /// <summary>
+        /// 鐢ㄦ埛ID
+        /// </summary>           
+        public int? UserId { get; set; }
+    }
+}
diff --git a/DocumentServiceAPI.Application/WorkRemind/ViewMode/DocumentWorkRemindDTO.cs b/DocumentServiceAPI.Application/WorkRemind/ViewMode/DocumentWorkRemindDTO.cs
new file mode 100644
index 0000000..69fd73b
--- /dev/null
+++ b/DocumentServiceAPI.Application/WorkRemind/ViewMode/DocumentWorkRemindDTO.cs
@@ -0,0 +1,89 @@
+锘縰sing DocumentServiceAPI.Utility;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DocumentServiceAPI.Application.WorkRemind.ViewMode
+{
+
+    /// <summary>
+    /// 鍛樺伐鎼滅储 鍙傛暟
+    /// </summary>
+    public class WorkRemindPageSearch : PageBaseSearch
+    {
+        public string ProjectName { get; set; }
+        public string WorkRemindContent { get; set; }
+        public DateTime? WorkRemindTimeStart { get; set; }
+        public DateTime? WorkRemindTimeEnd { get; set; }
+
+        public int? ToEmployeeId { get; set; }
+    }
+
+    public class DocumentWorkRemindDTO
+    {
+        public DocumentWorkRemindDTO()
+        {
+
+
+        }
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        public int WorkRemindId { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string ProjectName { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? ProjectId { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string WorkRemindContent { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? WorkRemindTime { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? LastUpTime { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? ToEmployeeId { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? CreatEmployeeId { get; set; }
+
+        public string CreatEmployeeName { get; set; }
+    }
+}
diff --git a/DocumentServiceAPI.Application/WorkRemind/WorkRemindController.cs b/DocumentServiceAPI.Application/WorkRemind/WorkRemindController.cs
new file mode 100644
index 0000000..ca97d62
--- /dev/null
+++ b/DocumentServiceAPI.Application/WorkRemind/WorkRemindController.cs
@@ -0,0 +1,121 @@
+锘縰sing DocumentServiceAPI.Application.UserAndLogin.Services;
+using DocumentServiceAPI.Application.UserAndLogin.Services.Interfaces;
+using DocumentServiceAPI.Application.UserAndLogin.ViewMode;
+using DocumentServiceAPI.Application.WorkRemind.Services.Interfaces;
+using DocumentServiceAPI.Application.WorkRemind.ViewMode;
+using DocumentServiceAPI.Model.cyDocumentModel;
+using DocumentServiceAPI.Utility;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DocumentServiceAPI.Application.WorkRemind
+{
+    /// <summary>
+    /// 鐧诲綍鎺у埗鍣�
+    /// </summary>
+    [ApiDescriptionSettings("WorkRemind")]
+    [DynamicApiController]
+    [Authorize]
+    public class WorkRemindController
+    {
+        private readonly IWorkRemindService _workRemindService;
+        public WorkRemindController(IWorkRemindService workRemindService)
+        {
+            _workRemindService = workRemindService;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鐢ㄦ埛璇︽儏
+        /// </summary>
+        public Document_WorkRemind GetWorkRemindInfo(int ID)
+        {
+            return   _workRemindService.GetWorkRemindInfo( ID);
+        }
+        /// <summary>
+        /// 鑾峰彇鍛樺伐鍒楄〃
+        /// </summary>
+        /// <param name="page"></param>
+        /// <returns></returns>
+        public PageResult<Document_WorkRemind> postWorkRemindList(WorkRemindPageSearch page)
+        {
+            return   _workRemindService.postWorkRemindList(page);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍛樺伐鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public List<Document_EmployeeInfo> GetUEmployeeInfoList()
+        {
+            return _workRemindService.GetUEmployeeInfoList();
+        }
+
+        /// <summary>
+        /// 鍒涘缓鎻愰啋
+        /// </summary>
+        /// <param name="dw"></param>
+        /// <returns></returns>
+        public bool CreateWorkRemind(Document_WorkRemind dw)
+        {
+            return   _workRemindService.InEmployee(dw);
+        }
+
+
+        /// <summary>
+        /// 鏇存柊鎻愰啋
+        /// </summary>
+        /// <param name="dw"></param>
+        /// <returns></returns>
+        public bool UpDataWorkRemind(Document_WorkRemind dw)
+        {
+            return   _workRemindService.UpEmployee(dw);
+        }
+
+        /// <summary>
+        /// 鍒犻櫎鎻愰啋
+        /// </summary>
+        /// <param name="ID"></param>
+        /// <returns></returns>
+        public bool GetDelDataWorkRemind(int ID)
+        {
+            return _workRemindService.DelEmployee(ID);
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇鏁版嵁瀛楀吀
+        /// </summary>
+        /// <returns></returns>
+        [AllowAnonymous]
+        public List<Document_Dictionary> GetDictionaryList()
+        {
+            return _workRemindService.GetDictionaryList();
+        }
+
+        /// <summary>
+        /// 鑾峰彇鐪佸競鍘�
+        /// </summary>
+        /// <param name="CityLevel"></param>
+        /// <returns></returns>
+        [AllowAnonymous]
+        public List<Sys_CitySite> GetCitySiteList(int CityLevel)
+        {
+            return _workRemindService.GetCitySiteList(CityLevel);
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇鍛樺伐鍒楄〃
+        /// </summary>
+        /// <param name="isWork"></param>
+        /// <param name="Role"></param>
+        /// <returns></returns>
+        public List<DocumentEmployeeInfoDTO> GetEmployeeListByStatus(int isWork, int Role)
+        {
+            return _workRemindService.GetEmployeeListByStatus(isWork, Role);
+        }
+    }
+}
diff --git a/DocumentServiceAPI.Application/WorkRemind/dto/Mapper.cs b/DocumentServiceAPI.Application/WorkRemind/dto/Mapper.cs
new file mode 100644
index 0000000..7b7ed12
--- /dev/null
+++ b/DocumentServiceAPI.Application/WorkRemind/dto/Mapper.cs
@@ -0,0 +1,19 @@
+锘縰sing DocumentServiceAPI.Application.UserAndLogin.ViewMode;
+using DocumentServiceAPI.Model.cyDocumentModel;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DocumentServiceAPI.Application.WorkRemind.dto
+{
+    public class Mapper : IRegister
+    {
+        public void Register(TypeAdapterConfig config)
+        {
+
+
+        }
+    }
+}
diff --git a/DocumentServiceAPI.Core/DbContext.cs b/DocumentServiceAPI.Core/DbContext.cs
index 3dd2e23..9c98cfa 100644
--- a/DocumentServiceAPI.Core/DbContext.cs
+++ b/DocumentServiceAPI.Core/DbContext.cs
@@ -59,6 +59,19 @@
                    }
 
                };
+               db.Aop.OnLogExecuting = (sql, pars) =>
+               {
+                   Console.WriteLine(sql);//杈撳嚭sql,鏌ョ湅鎵цsql聽鎬ц兘鏃犲奖鍝�
+
+
+                   //鑾峰彇鍘熺敓SQL鎺ㄨ崘聽5.1.4.63聽聽鎬ц兘OK
+                   //UtilMethods.GetNativeSql(sql,pars)
+
+                   //鑾峰彇鏃犲弬鏁板寲SQL聽瀵规�ц兘鏈夊奖鍝嶏紝鐗瑰埆澶х殑SQL鍙傛暟澶氱殑锛岃皟璇曚娇鐢�
+                   //UtilMethods.GetSqlString(DbType.SqlServer,sql,pars)
+
+
+               };
                db.CurrentConnectionConfig.MoreSettings = new ConnMoreSettings()
                {
                    //鎵�鏈� 澧炪�佸垹 銆佹敼 浼氳嚜鍔ㄨ皟鐢�.RemoveDataCache()娓呯悊浜岀骇缂撳瓨
diff --git a/DocumentServiceAPI.Model/cyDocumentModel/Document_OtherCompanyTenderInfo.cs b/DocumentServiceAPI.Model/cyDocumentModel/Document_OtherCompanyTenderInfo.cs
index 240c2cc..38566f8 100644
--- a/DocumentServiceAPI.Model/cyDocumentModel/Document_OtherCompanyTenderInfo.cs
+++ b/DocumentServiceAPI.Model/cyDocumentModel/Document_OtherCompanyTenderInfo.cs
@@ -15,12 +15,20 @@
 
 
            }
-           /// <summary>
-           /// Desc:
-           /// Default:
-           /// Nullable:False
-           /// </summary>           
-           public int ProjectId {get;set;}
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+        public int ID { get; set; }
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        public int ProjectId {get;set;}
 
            /// <summary>
            /// Desc:
@@ -36,5 +44,12 @@
            /// </summary>           
            public decimal? TenderPrice {get;set;}
 
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? TenantID { get; set; }
+
     }
 }
diff --git a/DocumentServiceAPI.Model/cyDocumentModel/Document_ProjectInfo.cs b/DocumentServiceAPI.Model/cyDocumentModel/Document_ProjectInfo.cs
index 29aed90..6661041 100644
--- a/DocumentServiceAPI.Model/cyDocumentModel/Document_ProjectInfo.cs
+++ b/DocumentServiceAPI.Model/cyDocumentModel/Document_ProjectInfo.cs
@@ -310,5 +310,27 @@
            /// </summary>           
            public DateTime? CgwjTime {get;set;}
 
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? TenantID { get; set; }
+
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string ProjectUrl { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? GongGaoTime { get; set; }
+
     }
 }
diff --git a/DocumentServiceAPI.Model/cyDocumentModel/Document_WinInfo.cs b/DocumentServiceAPI.Model/cyDocumentModel/Document_WinInfo.cs
index 7301ebe..375d9b2 100644
--- a/DocumentServiceAPI.Model/cyDocumentModel/Document_WinInfo.cs
+++ b/DocumentServiceAPI.Model/cyDocumentModel/Document_WinInfo.cs
@@ -15,12 +15,20 @@
 
 
            }
-           /// <summary>
-           /// Desc:
-           /// Default:
-           /// Nullable:False
-           /// </summary>           
-           public int ProjectId {get;set;}
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+        public int ID { get; set; }
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        public int ProjectId {get;set;}
 
            /// <summary>
            /// Desc:
@@ -78,5 +86,12 @@
            /// </summary>           
            public decimal? ThirdPrice {get;set;}
 
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int UnitId { get; set; }
+
     }
 }
diff --git a/DocumentServiceAPI.Model/cyDocumentModel/Document_WorkRemind.cs b/DocumentServiceAPI.Model/cyDocumentModel/Document_WorkRemind.cs
index c0bc59f..1e5e585 100644
--- a/DocumentServiceAPI.Model/cyDocumentModel/Document_WorkRemind.cs
+++ b/DocumentServiceAPI.Model/cyDocumentModel/Document_WorkRemind.cs
@@ -58,5 +58,24 @@
            /// </summary>           
            public DateTime? LastUpTime {get;set;}
 
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? ToEmployeeId { get; set; }
+
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? CreatEmployeeId { get; set; }
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:True
+        public string CreatEmployeeName { get; set; }
+
     }
 }
diff --git a/DocumentServiceAPI.Services/DocumentServiceAPI.Services.csproj b/DocumentServiceAPI.Services/DocumentServiceAPI.Services.csproj
index d56c0b4..731a818 100644
--- a/DocumentServiceAPI.Services/DocumentServiceAPI.Services.csproj
+++ b/DocumentServiceAPI.Services/DocumentServiceAPI.Services.csproj
@@ -7,6 +7,7 @@
   </PropertyGroup>
 
   <ItemGroup>
+    <PackageReference Include="AngleSharp" Version="1.0.4" />
     <PackageReference Include="CSRedisCore" Version="3.8.670" />
   </ItemGroup>
 

--
Gitblit v1.9.1