qwj
2023-08-16 836da9ffd7159fcf46442ec50af73f39def01706
Merge branch 'master' of http://47.108.235.38:8080/r/DocumentService

# Conflicts:
# DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml
8个文件已修改
13个文件已添加
3656 ■■■■■ 已修改文件
DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml 826 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/ProjectInfo/ProjectInfoController.cs 322 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/ProjectInfo/Services/Interfaces/IProjectInfoService.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/ProjectInfo/Services/ProjectInfoService.cs 1235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/ProjectInfo/ViewMode/DocumentProjectInfoDTO.cs 433 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/ProjectInfo/dto/Mapper.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/Repository/ProjectInfoRepository.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/Repository/WorkRemindRepository.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/UserAndLogin/Services/UserService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/WorkRemind/Services/Interfaces/IWorkRemindService.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/WorkRemind/Services/WorkRemindService.cs 284 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/WorkRemind/ViewMode/DocumentEmployeeInfoDTO.cs 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/WorkRemind/ViewMode/DocumentWorkRemindDTO.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/WorkRemind/WorkRemindController.cs 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/WorkRemind/dto/Mapper.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Core/DbContext.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Model/cyDocumentModel/Document_OtherCompanyTenderInfo.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Model/cyDocumentModel/Document_ProjectInfo.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Model/cyDocumentModel/Document_WinInfo.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Model/cyDocumentModel/Document_WorkRemind.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Services/DocumentServiceAPI.Services.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
            获取单个员工,根据employeeId
            <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>
            分类代码
@@ -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>
            证件正面
            </summary>
        </member>
        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.CardPositiveVersionNo">
            <summary>
            证件正面版本号
            </summary>
        </member>
        <member name="P:DocumentServiceAPI.Application.WorkRemind.ViewMode.DocumentEmployeeInfoDTO.CardPositiveSize">
            <summary>
            证件正面大小
            </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>
DocumentServiceAPI.Application/ProjectInfo/ProjectInfoController.cs
New file
@@ -0,0 +1,322 @@
using 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>
        /// 获取单个员工,根据employeeId
        /// <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);
        }
    }
}
DocumentServiceAPI.Application/ProjectInfo/Services/Interfaces/IProjectInfoService.cs
New file
@@ -0,0 +1,75 @@
using 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);
    }
}
DocumentServiceAPI.Application/ProjectInfo/Services/ProjectInfoService.cs
New file
@@ -0,0 +1,1235 @@
using 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("采购代理机构信息") >= 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("采购代理机构信息") >= 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("采购代理机构信息") >= 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))
                 //代理机构
                 .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;
        }
    }
}
DocumentServiceAPI.Application/ProjectInfo/ViewMode/DocumentProjectInfoDTO.cs
New file
@@ -0,0 +1,433 @@
using 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; }
    }
}
DocumentServiceAPI.Application/ProjectInfo/dto/Mapper.cs
New file
@@ -0,0 +1,20 @@
using 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>();
        }
    }
}
DocumentServiceAPI.Application/Repository/ProjectInfoRepository.cs
New file
@@ -0,0 +1,17 @@
using 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
    {
    }
}
DocumentServiceAPI.Application/Repository/WorkRemindRepository.cs
New file
@@ -0,0 +1,17 @@
using 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
    {
    }
}
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();
DocumentServiceAPI.Application/WorkRemind/Services/Interfaces/IWorkRemindService.cs
New file
@@ -0,0 +1,31 @@
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.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);
    }
}
DocumentServiceAPI.Application/WorkRemind/Services/WorkRemindService.cs
New file
@@ -0,0 +1,284 @@
using 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;
        }
    }
}
DocumentServiceAPI.Application/WorkRemind/ViewMode/DocumentEmployeeInfoDTO.cs
New file
@@ -0,0 +1,80 @@
using 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>
        /// 证件正面
        /// </summary>
        public string CardPositive { get; set; }
        /// <summary>
        /// 证件正面版本号
        /// </summary>
        public string CardPositiveVersionNo { get; set; }
        /// <summary>
        /// 证件正面大小
        /// </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; }
    }
}
DocumentServiceAPI.Application/WorkRemind/ViewMode/DocumentWorkRemindDTO.cs
New file
@@ -0,0 +1,89 @@
using 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; }
    }
}
DocumentServiceAPI.Application/WorkRemind/WorkRemindController.cs
New file
@@ -0,0 +1,121 @@
using 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);
        }
    }
}
DocumentServiceAPI.Application/WorkRemind/dto/Mapper.cs
New file
@@ -0,0 +1,19 @@
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.WorkRemind.dto
{
    public class Mapper : IRegister
    {
        public void Register(TypeAdapterConfig config)
        {
        }
    }
}
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()清理二级缓存
DocumentServiceAPI.Model/cyDocumentModel/Document_OtherCompanyTenderInfo.cs
@@ -15,6 +15,14 @@
           }
        /// <summary>
        /// Desc:
        /// Default:
        /// Nullable:False
        /// </summary>
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
        public int ID { get; set; }
           /// <summary>
           /// Desc:
           /// Default:
@@ -36,5 +44,12 @@
           /// </summary>           
           public decimal? TenderPrice {get;set;}
        /// <summary>
        /// Desc:
        /// Default:
        /// Nullable:True
        /// </summary>
        public int? TenantID { get; set; }
    }
}
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; }
    }
}
DocumentServiceAPI.Model/cyDocumentModel/Document_WinInfo.cs
@@ -15,6 +15,14 @@
           }
        /// <summary>
        /// Desc:
        /// Default:
        /// Nullable:False
        /// </summary>
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
        public int ID { get; set; }
           /// <summary>
           /// Desc:
           /// Default:
@@ -78,5 +86,12 @@
           /// </summary>           
           public decimal? ThirdPrice {get;set;}
        /// <summary>
        /// Desc:
        /// Default:
        /// Nullable:True
        /// </summary>
        public int UnitId { get; set; }
    }
}
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; }
    }
}
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>