yanjinhui
2025-06-12 69b4b758498b839aedbd82f7d4dee9d879ba65fe
修改开始检修和查看检修人员接口
已修改18个文件
已添加9个文件
1318 ■■■■■ 文件已修改
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IIPaddressServer .cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IMaintenanceService.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_CustomIPaddress.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Maintenance.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/IPaddressController .cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/MaintenanceController.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_UserFaceService.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_UserService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/IPaddressServer.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs 205 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceTeamService.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/人脸识别插件/FaceSdkX64/.vs/FaceSdkX64/v17/DocumentLayout.backup.json 224 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/人脸识别插件/FaceSdkX64/.vs/FaceSdkX64/v17/DocumentLayout.json 248 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/人脸识别插件/FaceSdkX64/FaceSdkX64.sln 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/人脸识别插件/FaceSdkX64/FaceSdkX64Register/FrmRegister.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/人脸识别插件/FaceSdkX64/UpgradeLog.htm 276 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/后台管理/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IIPaddressServer .cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/后台管理/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_CustomIPaddress.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/后台管理/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Maintenance.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/后台管理/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/IPaddressController .cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/后台管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/后台管理/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_UserService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/后台管理/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/IPaddressServer.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/后台管理/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IIPaddressServer .cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_DTO.Telescopic;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_ITaskInfoService
{
    public interface IIPaddressServer : IService<Dt_CustomIPaddress>
    {
        IRepository<Dt_CustomIPaddress> Repository { get; }
    }
}
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IMaintenanceService.cs
@@ -33,7 +33,7 @@
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        WebResponseContent RunOperation(int id, string LocalIP);
        WebResponseContent RunOperation(int id, string account, string LocalIP);
        WebResponseContent ChangeTasState(int id);
@@ -59,10 +59,10 @@
        /// </summary>
        /// <param name="id">用户id</param>
        /// <returns></returns>
        WebResponseContent StopMaintenanceTask(string account);
        WebResponseContent StopMaintenanceTask(string account,string LocalIP);
        /// <summary>
        ///  å±•示开始检修人员
        ///  å±•示开始检修人员(前端没有使用到)
        /// </summary>
        /// <param name="status">检修状态</param>
        /// <returns></returns>
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_CustomIPaddress.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.DB.Models;
using WIDESEAWCS_Core.Tenants;
namespace WIDESEAWCS_Model.Models
{
    [SugarTable("Dt_CustomIPaddress", "自定义ip地址"), MultiTenant]
    public class Dt_CustomIPaddress:BaseEntity
    {
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "主键")]
        public  int  ID { get; set; }
        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "IP地址")]
        public string  IPaddress { get; set; }
        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "自定义ip地址的中文名字")]
        public string  Addressname { get; set; }
    }
}
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Maintenance.cs
@@ -56,6 +56,14 @@
        public int MaintenanceStatus{ get; set; }
        /// <summary>
        /// ip地址
        /// </summary>
        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "ip地址")]
        public string IPAddress {  get; set; }
        /// <summary>
        /// æ£€ä¿®å¼€å§‹æ—¶é—´
        /// </summary>
        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "检修开始时间")]
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln
@@ -54,130 +54,192 @@
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Debug|x64 = Debug|x64
        Debug|x86 = Debug|x86
        Release|Any CPU = Release|Any CPU
        Release|x64 = Release|x64
        Release|x86 = Release|x86
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Debug|x64.ActiveCfg = Debug|x64
        {487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Debug|x64.Build.0 = Debug|x64
        {487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Debug|x86.ActiveCfg = Debug|x86
        {487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Debug|x86.Build.0 = Debug|x86
        {487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Release|Any CPU.Build.0 = Release|Any CPU
        {487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Release|x64.ActiveCfg = Release|x64
        {487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Release|x64.Build.0 = Release|x64
        {487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Release|x86.ActiveCfg = Release|x86
        {487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Release|x86.Build.0 = Release|x86
        {294E4915-0241-4C8C-BA99-7588B945863A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {294E4915-0241-4C8C-BA99-7588B945863A}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {294E4915-0241-4C8C-BA99-7588B945863A}.Debug|x64.ActiveCfg = Debug|x64
        {294E4915-0241-4C8C-BA99-7588B945863A}.Debug|x64.Build.0 = Debug|x64
        {294E4915-0241-4C8C-BA99-7588B945863A}.Debug|x86.ActiveCfg = Debug|Any CPU
        {294E4915-0241-4C8C-BA99-7588B945863A}.Debug|x86.Build.0 = Debug|Any CPU
        {294E4915-0241-4C8C-BA99-7588B945863A}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {294E4915-0241-4C8C-BA99-7588B945863A}.Release|Any CPU.Build.0 = Release|Any CPU
        {294E4915-0241-4C8C-BA99-7588B945863A}.Release|x64.ActiveCfg = Release|x64
        {294E4915-0241-4C8C-BA99-7588B945863A}.Release|x64.Build.0 = Release|x64
        {294E4915-0241-4C8C-BA99-7588B945863A}.Release|x86.ActiveCfg = Release|Any CPU
        {294E4915-0241-4C8C-BA99-7588B945863A}.Release|x86.Build.0 = Release|Any CPU
        {7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Debug|x64.ActiveCfg = Debug|x64
        {7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Debug|x64.Build.0 = Debug|x64
        {7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Debug|x86.ActiveCfg = Debug|Any CPU
        {7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Debug|x86.Build.0 = Debug|Any CPU
        {7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Release|Any CPU.Build.0 = Release|Any CPU
        {7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Release|x64.ActiveCfg = Release|x64
        {7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Release|x64.Build.0 = Release|x64
        {7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Release|x86.ActiveCfg = Release|Any CPU
        {7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Release|x86.Build.0 = Release|Any CPU
        {C2D3D138-9109-481B-8BEB-A27597890B2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {C2D3D138-9109-481B-8BEB-A27597890B2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {C2D3D138-9109-481B-8BEB-A27597890B2C}.Debug|x64.ActiveCfg = Debug|x64
        {C2D3D138-9109-481B-8BEB-A27597890B2C}.Debug|x64.Build.0 = Debug|x64
        {C2D3D138-9109-481B-8BEB-A27597890B2C}.Debug|x86.ActiveCfg = Debug|Any CPU
        {C2D3D138-9109-481B-8BEB-A27597890B2C}.Debug|x86.Build.0 = Debug|Any CPU
        {C2D3D138-9109-481B-8BEB-A27597890B2C}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {C2D3D138-9109-481B-8BEB-A27597890B2C}.Release|Any CPU.Build.0 = Release|Any CPU
        {C2D3D138-9109-481B-8BEB-A27597890B2C}.Release|x64.ActiveCfg = Release|x64
        {C2D3D138-9109-481B-8BEB-A27597890B2C}.Release|x64.Build.0 = Release|x64
        {C2D3D138-9109-481B-8BEB-A27597890B2C}.Release|x86.ActiveCfg = Release|Any CPU
        {C2D3D138-9109-481B-8BEB-A27597890B2C}.Release|x86.Build.0 = Release|Any CPU
        {9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Debug|x64.ActiveCfg = Debug|x64
        {9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Debug|x64.Build.0 = Debug|x64
        {9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Debug|x86.ActiveCfg = Debug|Any CPU
        {9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Debug|x86.Build.0 = Debug|Any CPU
        {9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Release|Any CPU.Build.0 = Release|Any CPU
        {9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Release|x64.ActiveCfg = Release|x64
        {9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Release|x64.Build.0 = Release|x64
        {9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Release|x86.ActiveCfg = Release|Any CPU
        {9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Release|x86.Build.0 = Release|Any CPU
        {9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Debug|x64.ActiveCfg = Debug|x64
        {9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Debug|x64.Build.0 = Debug|x64
        {9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Debug|x86.ActiveCfg = Debug|Any CPU
        {9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Debug|x86.Build.0 = Debug|Any CPU
        {9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Release|Any CPU.Build.0 = Release|Any CPU
        {9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Release|x64.ActiveCfg = Release|x64
        {9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Release|x64.Build.0 = Release|x64
        {9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Release|x86.ActiveCfg = Release|Any CPU
        {9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Release|x86.Build.0 = Release|Any CPU
        {A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Debug|x64.ActiveCfg = Debug|x64
        {A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Debug|x64.Build.0 = Debug|x64
        {A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Debug|x86.ActiveCfg = Debug|Any CPU
        {A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Debug|x86.Build.0 = Debug|Any CPU
        {A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Release|Any CPU.Build.0 = Release|Any CPU
        {A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Release|x64.ActiveCfg = Release|x64
        {A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Release|x64.Build.0 = Release|x64
        {A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Release|x86.ActiveCfg = Release|Any CPU
        {A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Release|x86.Build.0 = Release|Any CPU
        {7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Debug|x64.ActiveCfg = Debug|x64
        {7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Debug|x64.Build.0 = Debug|x64
        {7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Debug|x86.ActiveCfg = Debug|Any CPU
        {7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Debug|x86.Build.0 = Debug|Any CPU
        {7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Release|Any CPU.Build.0 = Release|Any CPU
        {7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Release|x64.ActiveCfg = Release|x64
        {7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Release|x64.Build.0 = Release|x64
        {7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Release|x86.ActiveCfg = Release|Any CPU
        {7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Release|x86.Build.0 = Release|Any CPU
        {83F18A31-5983-4587-A0B2-414BF70E50B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {83F18A31-5983-4587-A0B2-414BF70E50B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {83F18A31-5983-4587-A0B2-414BF70E50B5}.Debug|x64.ActiveCfg = Debug|x64
        {83F18A31-5983-4587-A0B2-414BF70E50B5}.Debug|x64.Build.0 = Debug|x64
        {83F18A31-5983-4587-A0B2-414BF70E50B5}.Debug|x86.ActiveCfg = Debug|Any CPU
        {83F18A31-5983-4587-A0B2-414BF70E50B5}.Debug|x86.Build.0 = Debug|Any CPU
        {83F18A31-5983-4587-A0B2-414BF70E50B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {83F18A31-5983-4587-A0B2-414BF70E50B5}.Release|Any CPU.Build.0 = Release|Any CPU
        {83F18A31-5983-4587-A0B2-414BF70E50B5}.Release|x64.ActiveCfg = Release|x64
        {83F18A31-5983-4587-A0B2-414BF70E50B5}.Release|x64.Build.0 = Release|x64
        {83F18A31-5983-4587-A0B2-414BF70E50B5}.Release|x86.ActiveCfg = Release|Any CPU
        {83F18A31-5983-4587-A0B2-414BF70E50B5}.Release|x86.Build.0 = Release|Any CPU
        {8C2CC25B-DE5D-433E-A550-63864C7A716D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {8C2CC25B-DE5D-433E-A550-63864C7A716D}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {8C2CC25B-DE5D-433E-A550-63864C7A716D}.Debug|x64.ActiveCfg = Debug|x64
        {8C2CC25B-DE5D-433E-A550-63864C7A716D}.Debug|x64.Build.0 = Debug|x64
        {8C2CC25B-DE5D-433E-A550-63864C7A716D}.Debug|x86.ActiveCfg = Debug|Any CPU
        {8C2CC25B-DE5D-433E-A550-63864C7A716D}.Debug|x86.Build.0 = Debug|Any CPU
        {8C2CC25B-DE5D-433E-A550-63864C7A716D}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {8C2CC25B-DE5D-433E-A550-63864C7A716D}.Release|Any CPU.Build.0 = Release|Any CPU
        {8C2CC25B-DE5D-433E-A550-63864C7A716D}.Release|x64.ActiveCfg = Release|x64
        {8C2CC25B-DE5D-433E-A550-63864C7A716D}.Release|x64.Build.0 = Release|x64
        {8C2CC25B-DE5D-433E-A550-63864C7A716D}.Release|x86.ActiveCfg = Release|Any CPU
        {8C2CC25B-DE5D-433E-A550-63864C7A716D}.Release|x86.Build.0 = Release|Any CPU
        {FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Debug|x64.ActiveCfg = Debug|x64
        {FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Debug|x64.Build.0 = Debug|x64
        {FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Debug|x86.ActiveCfg = Debug|Any CPU
        {FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Debug|x86.Build.0 = Debug|Any CPU
        {FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Release|Any CPU.Build.0 = Release|Any CPU
        {FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Release|x64.ActiveCfg = Release|x64
        {FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Release|x64.Build.0 = Release|x64
        {FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Release|x86.ActiveCfg = Release|Any CPU
        {FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Release|x86.Build.0 = Release|Any CPU
        {ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Debug|x64.ActiveCfg = Debug|x64
        {ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Debug|x64.Build.0 = Debug|x64
        {ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Debug|x86.ActiveCfg = Debug|Any CPU
        {ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Debug|x86.Build.0 = Debug|Any CPU
        {ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Release|Any CPU.Build.0 = Release|Any CPU
        {ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Release|x64.ActiveCfg = Release|x64
        {ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Release|x64.Build.0 = Release|x64
        {ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Release|x86.ActiveCfg = Release|Any CPU
        {ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Release|x86.Build.0 = Release|Any CPU
        {B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Debug|x64.ActiveCfg = Debug|x64
        {B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Debug|x64.Build.0 = Debug|x64
        {B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Debug|x86.ActiveCfg = Debug|Any CPU
        {B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Debug|x86.Build.0 = Debug|Any CPU
        {B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Release|Any CPU.Build.0 = Release|Any CPU
        {B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Release|x64.ActiveCfg = Release|x64
        {B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Release|x64.Build.0 = Release|x64
        {B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Release|x86.ActiveCfg = Release|Any CPU
        {B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Release|x86.Build.0 = Release|Any CPU
        {4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Debug|x64.ActiveCfg = Debug|x64
        {4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Debug|x64.Build.0 = Debug|x64
        {4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Debug|x86.ActiveCfg = Debug|Any CPU
        {4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Debug|x86.Build.0 = Debug|Any CPU
        {4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Release|Any CPU.Build.0 = Release|Any CPU
        {4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Release|x64.ActiveCfg = Release|x64
        {4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Release|x64.Build.0 = Release|x64
        {4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Release|x86.ActiveCfg = Release|Any CPU
        {4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Release|x86.Build.0 = Release|Any CPU
        {1B1C16CA-8989-4590-BAF6-B55DCC330218}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {1B1C16CA-8989-4590-BAF6-B55DCC330218}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {1B1C16CA-8989-4590-BAF6-B55DCC330218}.Debug|x64.ActiveCfg = Debug|x64
        {1B1C16CA-8989-4590-BAF6-B55DCC330218}.Debug|x64.Build.0 = Debug|x64
        {1B1C16CA-8989-4590-BAF6-B55DCC330218}.Debug|x86.ActiveCfg = Debug|Any CPU
        {1B1C16CA-8989-4590-BAF6-B55DCC330218}.Debug|x86.Build.0 = Debug|Any CPU
        {1B1C16CA-8989-4590-BAF6-B55DCC330218}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {1B1C16CA-8989-4590-BAF6-B55DCC330218}.Release|Any CPU.Build.0 = Release|Any CPU
        {1B1C16CA-8989-4590-BAF6-B55DCC330218}.Release|x64.ActiveCfg = Release|x64
        {1B1C16CA-8989-4590-BAF6-B55DCC330218}.Release|x64.Build.0 = Release|x64
        {1B1C16CA-8989-4590-BAF6-B55DCC330218}.Release|x86.ActiveCfg = Release|Any CPU
        {1B1C16CA-8989-4590-BAF6-B55DCC330218}.Release|x86.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/IPaddressController .cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting.Server;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseController;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_DTO.Telescopic;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_TaskInfoService;
using WIDESEAWCS_TelescopicService;
namespace WIDESEAWCS_Server.Controllers.SerialPort
{
    [Route("api/[controller]")]
    [ApiController]
    public class IPaddressController : ApiBaseController<IIPaddressServer, Dt_CustomIPaddress>
    {
        public IPaddressController(IIPaddressServer service) : base(service)
        {
        }
    }
}
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/MaintenanceController.cs
@@ -49,11 +49,11 @@
        /// <param name="id"></param>
        /// <returns></returns>
        [HttpPost, Route("RunOperation"), AllowAnonymous]
        public WebResponseContent RunOperation(int id, string LocalIP)
        public WebResponseContent RunOperation(int id, string account, string LocalIP)
        {
            var userIp = HttpContext.GetUserIp();//用户电脑ip
            var reslut = userIp.Replace("::ffff:", " ");
            return Service.RunOperation(id, LocalIP);
            var reslut = userIp.Replace("::ffff:", "");
            return Service.RunOperation(id,account, LocalIP);
        }
        /// <summary>
@@ -103,8 +103,8 @@
        public WebResponseContent StartMaintenceTask(string account)
        {
            var userIp = HttpContext.GetUserIp();//用户电脑ip
            var reslut = userIp.Replace("::ffff:", " ");
            return Service.StartMaintenceTask(account, reslut);
            var reslut = userIp.Replace("::ffff:", "");
            return Service.StartMaintenceTask(account, userIp);
        }
@@ -116,7 +116,9 @@
        [HttpPost, Route("StopMaintenanceTask")]
        public WebResponseContent StopMaintenanceTask(string account)
        {
            return Service.StopMaintenanceTask(account);
            var userIp = HttpContext.GetUserIp();//用户电脑ip
            var reslut = userIp.Replace("::ffff:", "");
            return Service.StopMaintenanceTask(account, userIp);
        }
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj
@@ -5,7 +5,7 @@
        <Nullable>enable</Nullable>
        <ImplicitUsings>enable</ImplicitUsings>
        <GenerateDocumentationFile>False</GenerateDocumentationFile>
        <Platforms>AnyCPU;x64</Platforms>
        <Platforms>AnyCPU;x64;x86</Platforms>
        <PlatformTarget>x86</PlatformTarget>
    </PropertyGroup>
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
@@ -32,8 +32,8 @@
  },
  "ApiName": "WIDESEA",
  "ExpMinutes": 120,
  "QuartzJobAutoStart": true,
  "LogDeubgEnable": true, //是否记录调试日志
  "QuartzJobAutoStart": false,
  "LogDeubgEnable": false, //是否记录调试日志
  "PrintSql": false, //打印SQL语句
  "LogAOPEnable": false, //是否记录AOP日志
  "WebSocketEnable": true,
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_UserFaceService.cs
@@ -111,6 +111,8 @@
                    };
                }
                string str = Environment.CurrentDirectory;
                byte[] data = Convert.FromBase64String(model.Base64Image);
                string basePath = AppDomain.CurrentDomain.BaseDirectory + "Record\\";
                if (!Directory.Exists(basePath))
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_UserService.cs
@@ -227,6 +227,7 @@
                        ID = user.UserId,
                        RoleId = user.RoleId,
                        depid = disbled.Dept_Id,
                        IsLeader = disbled.IsLeader,
                    });
                }
                else
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/IPaddressServer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_TelescopicService
{
    public class IPaddressServer : ServiceBase<Dt_CustomIPaddress, IRepository<Dt_CustomIPaddress>>, IIPaddressServer
    {
        public IRepository<Dt_CustomIPaddress> Repository => BaseDal;
        public IPaddressServer(IRepository<Dt_CustomIPaddress> BaseDal) : base(BaseDal)
        {
        }
    }
}
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs
@@ -15,6 +15,7 @@
using WIDESEAWCS_DTO.Telescopic;
using SqlSugar.DistributedSystem.Snowflake;
using System.IO;
using System.Net;
namespace WIDESEAWCS_TelescopicService
{
@@ -22,14 +23,16 @@
    {
        public IRepository<Dt_Maintenance> Repository => BaseDal;
        public readonly IRepository<Dt_MaintenanceTeam> _team;
        private readonly IRepository<Dt_CustomIPaddress> _ipaddress;
        private readonly IRepository<Sys_User> _user;
       
        public MaintenanceService(IRepository<Dt_Maintenance> BaseDal, IRepository<Sys_User> user, IRepository<Dt_MaintenanceTeam> team) : base(BaseDal)
        public MaintenanceService(IRepository<Dt_CustomIPaddress>ipaddress,IRepository<Dt_Maintenance> BaseDal, IRepository<Sys_User> user, IRepository<Dt_MaintenanceTeam> team) : base(BaseDal)
        {
            _user = user;
            _team = team;
            _ipaddress = ipaddress;
        }
@@ -117,59 +120,101 @@
        /// <param name="pageSize"></param>
        /// <param name="searchKeyword"></param>
        /// <returns></returns>
        //public WebResponseContent PersonnelMonitoring(PaginationDTO pagination)
        //{
        //    try
        //    {
        //        int totalCount = 0;
        //        var sys = _user.Db.Queryable<Sys_User>();
        //        var query = sys.InnerJoin<Dt_Maintenance>((a, b) => a.UserName == b.UserAccount)
        //                        .RightJoin<Dt_CustomIPaddress>((a,b,c)=>b.IPAddress==c.IPaddress)
        //                      .Where((a, b) => b.MaintenanceStatus==1); // å±•示运行检修的
        //        // æœç´¢å…³é”®å­—
        //        if (!string.IsNullOrEmpty(pagination.searchKeyword))
        //        {
        //            query = query.Where((a, b) =>
        //                a.UserTrueName.Contains(pagination.searchKeyword) ||
        //                a.Userteam.Contains(pagination.searchKeyword));
        //        }
        //        var result = query
        //            .Select((a, b,c) => new
        //            {
        //                b.UserAccount,//账号
        //                a.UserTrueName,
        //                a.Userteam,//班组
        //                a.Unit,//单位
        //                a.RoleName,//角色名称
        //                //b.IPAddress,//站台
        //                IPAddress = c.Addressname ?? b.IPAddress, // ä¼˜å…ˆæ˜¾ç¤ºè‡ªå®šä¹‰åç§°
        //                b.ID,//id
        //                b.MaintenanceStatus,//检修状态
        //                b.CreateDate,//日期
        //                b.MaintenancStartTime,//开始时间
        //            })
        //            .ToPageList(pagination.pageIndex, pagination.pageSize, ref totalCount);
        //        return new WebResponseContent
        //        {
        //            Status = true,
        //            Data = new
        //            {
        //                TotalCount = totalCount,
        //                PageIndex = pagination.pageIndex,
        //                PageSize = pagination.pageSize,
        //                Items = result
        //            }
        //        };
        //    }
        //    catch (Exception ex)
        //    {
        //        return new WebResponseContent { Status = false, Data = ex.Message };
        //    }
        //}
        public WebResponseContent PersonnelMonitoring(PaginationDTO pagination)
        {
            try
            {
                int totalCount = 0;
                var sys = _user.Db.Queryable<Sys_User>();
                var query = _user.Db.Queryable<Dt_Maintenance>()
                    .Where(b => b.MaintenanceStatus == 1)
                    .InnerJoin<Sys_User>((b, a) => b.UserAccount == a.UserName)
                    .LeftJoin<Dt_CustomIPaddress>((b, a, c) => b.IPAddress == c.IPaddress);
                var query = sys.InnerJoin<Dt_Maintenance>((a, b) => a.UserName == b.UserAccount)
                              .Where((a, b) => b.MaintenanceStatus==1); // å±•示运行检修的
                // æœç´¢å…³é”®å­—
                if (!string.IsNullOrEmpty(pagination.searchKeyword))
                {
                    query = query.Where((a, b) =>
                    query = query.Where((b, a, c) =>
                        a.UserTrueName.Contains(pagination.searchKeyword) ||
                        a.Userteam.Contains(pagination.searchKeyword));
                }
                //// çŠ¶æ€å‚æ•°
                //if (pagination.status.HasValue) //多传一个状态
                //{
                //    query = query.Where((a, b) => b.MaintenanceStatus == pagination.status.Value);
                //}
                var result = query
                    .Select((a, b) => new
                    {
                        a.UserTrueName,
                        a.Userteam,//班组
                        a.Unit,//单位
                        b.ID,//id
                        b.MaintenanceStatus,//检修状态
                        b.CreateDate,//日期
                        b.MaintenancStartTime,//开始时间
                    })
                    .ToPageList(pagination.pageIndex, pagination.pageSize, ref totalCount);
                var result = query.Select((b, a, c) => new
                {
                    b.UserAccount,
                    a.UserTrueName,
                    a.Userteam,
                    a.Unit,
                    a.RoleName,
                    IPAddress = c.Addressname ?? b.IPAddress ?? "无IP",
                    b.ID,
                    b.MaintenanceStatus,
                    b.CreateDate,
                    b.MaintenancStartTime
                }).ToPageList(pagination.pageIndex, pagination.pageSize, ref totalCount);
                return new WebResponseContent
                {
                    Status = true,
                    Data = new
                    {
                        TotalCount = totalCount,
                        PageIndex = pagination.pageIndex,
                        PageSize = pagination.pageSize,
                        Items = result
                    }
                    Data = new { totalCount, pagination.pageIndex, pagination.pageSize, result }
                };
            }
            catch (Exception ex)
            {
                return new WebResponseContent { Status = false, Data = ex.Message };
                return new WebResponseContent { Status = false, Message = ex.Message };
            }
        }
@@ -178,43 +223,62 @@
        /// <summary>
        /// æ›´æ–°çŠ¶æ€å¼ºåˆ¶ä¸‹çº¿ï¼ˆæ·»åŠ äº†æ£€ä¿®è®°å½•ï¼‰
        /// æ›´æ–°çŠ¶æ€å¼ºåˆ¶ä¸‹çº¿ï¼ˆæ·»åŠ äº†æ£€ä¿®è®°å½•
        /// </summary>
        /// <param name="id"></param>
        /// <param name="ispossible"></param>
        /// <param name="id">要强制谁下线</param>
        /// <param name="account">登入人员账号</param>
        /// <param name="LocalIP">地址ip</param>
        /// <returns></returns>
        public WebResponseContent RunOperation(int id,string LocalIP)
        public WebResponseContent RunOperation(int id, string account, string LocalIP)
        {
            try
            {
                var user = BaseDal.QueryData();//检修表
                var maint = user.Where(x => x.ID == id).FirstOrDefault(); //在检修表中先找到该用户
                var sysuer = _user.QueryData(x => x.UserName == maint.UserAccount).FirstOrDefault();
                if (maint == null ||sysuer==null)
                // 1. æŸ¥æ‰¾ç›®æ ‡ç”¨æˆ·ï¼ˆè¦è¢«å¼ºåˆ¶ä¸‹çº¿çš„人)
                var maint = BaseDal.QueryData().FirstOrDefault(x => x.ID == id);
                var sysuer = _user.QueryData(x => x.UserName == maint.UserAccount).FirstOrDefault();//user表
                if (maint == null || sysuer==null)
                {
                    return new WebResponseContent { Status = false, Message = "没有找到该用户" };
                }
                 maint.MaintenanceStatus = 0;//改变状态强制下线
                // 2. æŸ¥æ‰¾å½“前登录用户(执行操作的人)
                var currentUser = _user.QueryData(x => x.UserName == account).FirstOrDefault();
                if (currentUser == null)
                {
                    return new WebResponseContent { Status = false, Message = "当前登录用户无效" };
                }
                // 3. æƒé™æ£€æŸ¥ï¼šå½“前用户是 admin æˆ– å½“前用户是组长(IsLeader == 1)
                bool isAdmin = account == "admin";
                bool isLeader = currentUser.IsLeader == 1;  // å‡è®¾ Sys_User è¡¨æœ‰ IsLeader å­—段
                if (!isAdmin && !isLeader)
                {
                    return new WebResponseContent { Status = false, Message = "你没有权限强制下线" };
                }
                // 4. æ‰§è¡Œå¼ºåˆ¶ä¸‹çº¿
                maint.MaintenanceStatus = 0;  // æ”¹å˜çŠ¶æ€ä¸ºä¸‹çº¿
                BaseDal.UpdateData(maint);
                                            //插入记录表
                var recording = new Dt_MaintenanceTeam  //添加记录
                // 5. è®°å½•操作日志
                var recording = new Dt_MaintenanceTeam
                {
                    Account = maint.UserAccount,
                    MaintenanceStatus = 0,
                    OperatorName = sysuer.UserTrueName,
                    TeamName = sysuer.RoleName,
                    OperatorName = sysuer.UserTrueName,  // æ“ä½œäººå§“名
                    TeamName = sysuer.RoleName,         // æ“ä½œäººè§’色
                    DistributionTime = DateTime.Now,
                    IPAddress = LocalIP,
                };
                _team.AddData(recording);
                return new WebResponseContent { Status = true,Message="强制下线成功", Data = recording };
                return new WebResponseContent { Status = true, Message = "强制下线成功" };
            }
            catch (Exception ex)
            {
                return new WebResponseContent { Status = false, Message = "失败:" + ex };
                return new WebResponseContent { Status = false, Message = "失败:" + ex.Message };
            }
        }
@@ -550,11 +614,12 @@
                var user = BaseDal.QueryData();//检修表
                var maint = user.Where(x => x.UserAccount == account).FirstOrDefault(); //在检修表中先找到该用户
                var sysuer = _user.QueryData(x => x.UserName == account).FirstOrDefault();//在用户表中找到用户
                if (maint == null || sysuer == null)
                {
                    return new WebResponseContent { Status = false, Message = "没有找到该用户" };
                }
                // æŸ¥æ‰¾è¯¥ç”¨æˆ·åœ¨ _team è¡¨ä¸­çš„æœ€æ–°ä¸€æ¡è®°å½•
                // æŸ¥æ‰¾è¯¥ç”¨æˆ·åœ¨ Dt_MaintenanceTeam è¡¨ä¸­çš„æœ€æ–°ä¸€æ¡è®°å½•
                var lastRecord = _team.QueryData(x => x.Account == account)
                                      .OrderByDescending(x => x.CreateDate)
                                      .FirstOrDefault();
@@ -570,18 +635,25 @@
                    bool leaderStarted = user.Any(x =>  x.IsLeader == 1 && x.MaintenanceStatus == 1); //否有满足条件 æ‰¾åˆ°ä¸€æ¡å°±è¿”回true MaintenanceStatus(0没有开始,1开始)
                    if (!leaderStarted)
                    {
                        return new WebResponseContent { Status = false, Message = "请等待组长开始检修" };
                        return new WebResponseContent { Status = false, Message = "请等待一级人员开始检修" };
                    }
                }
                if (true)
                {
                }
                //如果满足下面的条件就开始
                maint.MaintenancStartTime = DateTime.Now;//记录开始时间
                maint.MaintenanceStatus = 1;//更改状态
                maint.IPAddress = LocalIP;//更改ip地址
                BaseDal.UpdateData(maint);
                var address = _ipaddress.QueryData(x=>x.IPaddress== LocalIP).FirstOrDefault();
                var addressIp = "";
                if (address!=null) //找到了
                {
                     addressIp = address.Addressname;
                }
                else
                {
                    addressIp = LocalIP;
                }
                //插入记录表
                var recording = new Dt_MaintenanceTeam  //添加记录
                {
@@ -590,7 +662,7 @@
                    OperatorName = sysuer.UserTrueName,
                    TeamName = sysuer.RoleName,
                    DistributionTime = DateTime.Now,
                    IPAddress = LocalIP,
                    IPAddress = addressIp,
                };
                _team.AddData(recording);
@@ -607,7 +679,7 @@
        /// </summary>
        /// <param name="account"></param>
        /// <returns></returns>
        public WebResponseContent StopMaintenanceTask(string account)
        public WebResponseContent StopMaintenanceTask(string account,string LocalIP)
        {
            try
            {
@@ -651,6 +723,20 @@
                        }
                    }
                }
                //if (LocalIP!=maint.IPAddress)
                //{
                //    return new WebResponseContent { Status = false, Message = "操作设备不同,请回到原本设备再点击结束检修" };
                //}
                var address = _ipaddress.QueryData(x => x.IPaddress == LocalIP).FirstOrDefault();
                var addressIp = "";
                if (address != null) //找到了
                {
                    addressIp = address.Addressname;
                }
                else
                {
                    addressIp = LocalIP;
                }
                // æ›´æ–°å½“前用户的检修状态
                maint.MaintenancEendTime = DateTime.Now; // è®°å½•结束时间
@@ -664,6 +750,7 @@
                    MaintenanceStatus = 0,
                    OperatorName = sysuer.UserTrueName,
                    TeamName = sysuer.RoleName,
                    IPAddress = addressIp,
                    EndTime = DateTime.Now,
                };
                _team.AddData(recording);
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceTeamService.cs
@@ -16,6 +16,7 @@
    {
        public IRepository<Dt_MaintenanceTeam> Repository => BaseDal;
        private readonly IRepository<Sys_User> _user;
       
        public MaintenanceTeamService(IRepository<Dt_MaintenanceTeam> BaseDal,IRepository<Sys_User> user, IRepository<Dt_Maintenance> mainServer) : base(BaseDal)
@@ -40,8 +41,12 @@
                var main = Db.Queryable<Dt_MaintenanceTeam>();
                var query = sys.InnerJoin<Dt_MaintenanceTeam>((a, b) => a.UserTrueName == b.OperatorName)
                               ;
                //模糊查询
                var query = sys.InnerJoin<Dt_MaintenanceTeam>((a, b) => a.UserTrueName == b.OperatorName);
                if (!string .IsNullOrEmpty(pagination.searchKeyword))
                {
                   
@@ -105,11 +110,13 @@
                    a.User_Id,
                    a.Dept_Id,//轨道站
                    a.IsLeader,//是否是班长
                    a.RoleName,
                    a.Role_Id,
                    a.RoleName,//角色名称
                    a.Unit,//单位
                    b.IPAddress,//电脑ip地址
                    b.OperatorName,
                    b.TeamName,
                    b.TeamName,//班组
                    b.MaintenanceStatus,//检修状态
                    b.Creater,
                    a.HeadImageUrl,
                    b.DistributionTime,
project/ÈËÁ³Ê¶±ð²å¼þ/FaceSdkX64/.vs/FaceSdkX64/v17/DocumentLayout.backup.json
@@ -1,62 +1,22 @@
{
  "Version": 1,
  "WorkspaceRootPath": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\",
  "WorkspaceRootPath": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\facesdkx64register.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\facesdkx64register.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64service\\th_faces.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|solutionrelative:facesdkx64service\\th_faces.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|e:\\ssg\\shensuogankongzhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\facesdkx64\\facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64service\\httpserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "AbsoluteMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|e:\\ssg\\shensuogankongzhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\facesdkx64\\facesdkx64service\\httpserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|solutionrelative:facesdkx64service\\httpserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64service\\chs_capture.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|solutionrelative:facesdkx64service\\chs_capture.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|e:\\ssg\\shensuogankongzhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\facesdkx64\\facesdkx64register\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|solutionrelative:facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|F:\\\u6D4B\u8BD5\\FaceSdkX64\\facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\properties\\resources.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\properties\\resources.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\properties\\resources.resx||{81828910-B8B3-4D2B-99A3-067027C180C1}",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\properties\\resources.resx||{81828910-B8B3-4D2B-99A3-067027C180C1}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\myopaquelayer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\myopaquelayer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\opaquecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\opaquecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|F:\\\u6D4B\u8BD5\\FaceSdkX64\\facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
      "RelativeMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|solutionrelative:facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64\\facesdkx64.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
      "RelativeMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|solutionrelative:facesdkx64\\facesdkx64.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|e:\\ssg\\shensuogankongzhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\facesdkx64\\facesdkx64register\\facesdkx64register.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\facesdkx64register.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
    }
  ],
  "DocumentGroupContainers": [
@@ -66,175 +26,59 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 2,
          "SelectedChildIndex": 1,
          "Children": [
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "TH_Faces.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\TH_Faces.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Service\\TH_Faces.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\TH_Faces.cs",
              "RelativeToolTip": "FaceSdkX64Service\\TH_Faces.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB8AAABCAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-08T03:19:03.556Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "CHS_Capture.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\CHS_Capture.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Service\\CHS_Capture.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\CHS_Capture.cs",
              "RelativeToolTip": "FaceSdkX64Service\\CHS_Capture.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-08T03:18:57.128Z"
              "$type": "Bookmark",
              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "FaceSdkX64Register.csproj",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "RelativeToolTip": "FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAApAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2025-06-06T07:14:47.187Z",
              "Title": "FrmRegister.cs",
              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\FrmRegister.cs",
              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
              "RelativeToolTip": "FaceSdkX64Register\\FrmRegister.cs",
              "ViewState": "AgIAAAEAAACAYGZmZmYkwBsAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-11T02:21:45.53Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "DocumentIndex": 1,
              "Title": "HttpServer.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\HttpServer.cs",
              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Service\\HttpServer.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Service\\HttpServer.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\HttpServer.cs",
              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Service\\HttpServer.cs",
              "RelativeToolTip": "FaceSdkX64Service\\HttpServer.cs",
              "ViewState": "AgIAABwAAAAAAAAAAAAQwCIAAAANAAAAAAAAAA==",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwkAAAABAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-29T07:43:03.48Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "Resources.Designer.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.Designer.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\Properties\\Resources.Designer.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.Designer.cs",
              "RelativeToolTip": "FaceSdkX64Register\\Properties\\Resources.Designer.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAEYAAAAJAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-29T02:18:20.337Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "Resources.resx",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.resx",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\Properties\\Resources.resx",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.resx",
              "RelativeToolTip": "FaceSdkX64Register\\Properties\\Resources.resx",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001005|",
              "WhenOpened": "2025-05-29T02:16:24.157Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "MyOpaqueLayer.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\MyOpaqueLayer.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\MyOpaqueLayer.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\MyOpaqueLayer.cs",
              "RelativeToolTip": "FaceSdkX64Register\\MyOpaqueLayer.cs",
              "ViewState": "AgIAADsAAAAAAAAAAAAYwE0AAAA0AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-29T02:12:52.072Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "FaceSdkX64",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FaceSdkX64.csproj",
              "RelativeDocumentMoniker": "FaceSdkX64\\FaceSdkX64.csproj",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FaceSdkX64.csproj",
              "RelativeToolTip": "FaceSdkX64\\FaceSdkX64.csproj",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2025-05-28T08:39:06.348Z"
              "WhenOpened": "2025-06-11T02:10:18.119Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "FrmRegister.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\FrmRegister.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
              "RelativeToolTip": "FaceSdkX64Register\\FrmRegister.cs",
              "ViewState": "AgIAAAgAAAAAAAAAAAAxwCgAAABCAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-28T07:25:57.103Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "App.config",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\App.config",
              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Register\\App.config",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\App.config",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\App.config",
              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Register\\App.config",
              "RelativeToolTip": "FaceSdkX64Register\\App.config",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAA==",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwMAAAAdAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000601|",
              "WhenOpened": "2025-06-05T01:57:45.621Z"
              "WhenOpened": "2025-06-11T02:10:14.173Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "FrmRegister.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\FrmRegister.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "FaceSdkX64Register\\FrmRegister.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-28T08:36:25.753Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "FrmFaceCheck.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs",
              "RelativeDocumentMoniker": "FaceSdkX64\\FrmFaceCheck.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs",
              "RelativeToolTip": "FaceSdkX64\\FrmFaceCheck.cs",
              "ViewState": "AgIAAAoCAAAAAAAAAAAvwAkCAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-28T06:42:06.783Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "OpaqueCommand.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\OpaqueCommand.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\OpaqueCommand.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\OpaqueCommand.cs",
              "RelativeToolTip": "FaceSdkX64Register\\OpaqueCommand.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAuwBIAAAAUAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-29T02:23:19.143Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "FrmFaceCheck.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs",
              "RelativeDocumentMoniker": "FaceSdkX64\\FrmFaceCheck.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "FaceSdkX64\\FrmFaceCheck.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-28T06:42:03.078Z"
              "DocumentIndex": 3,
              "Title": "FaceSdkX64Register",
              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "RelativeToolTip": "FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2025-06-11T02:09:55.342Z"
            }
          ]
        }
project/ÈËÁ³Ê¶±ð²å¼þ/FaceSdkX64/.vs/FaceSdkX64/v17/DocumentLayout.json
@@ -1,66 +1,22 @@
{
  "Version": 1,
  "WorkspaceRootPath": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\",
  "WorkspaceRootPath": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\facesdkx64register.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\facesdkx64register.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\facesdkx64register.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\facesdkx64register.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64service\\th_faces.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|solutionrelative:facesdkx64service\\th_faces.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|e:\\ssg\\shensuogankongzhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\facesdkx64\\facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64service\\httpserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "AbsoluteMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|e:\\ssg\\shensuogankongzhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\facesdkx64\\facesdkx64service\\httpserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|solutionrelative:facesdkx64service\\httpserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64service\\chs_capture.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|solutionrelative:facesdkx64service\\chs_capture.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|e:\\ssg\\shensuogankongzhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\facesdkx64\\facesdkx64register\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|solutionrelative:facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|F:\\\u6D4B\u8BD5\\FaceSdkX64\\facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\properties\\resources.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\properties\\resources.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\properties\\resources.resx||{81828910-B8B3-4D2B-99A3-067027C180C1}",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\properties\\resources.resx||{81828910-B8B3-4D2B-99A3-067027C180C1}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\myopaquelayer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\myopaquelayer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\opaquecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\opaquecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|F:\\\u6D4B\u8BD5\\FaceSdkX64\\facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
      "RelativeMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|solutionrelative:facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64\\facesdkx64.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
      "RelativeMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|solutionrelative:facesdkx64\\facesdkx64.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|e:\\ssg\\shensuogankongzhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\facesdkx64\\facesdkx64register\\facesdkx64register.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\facesdkx64register.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
    }
  ],
  "DocumentGroupContainers": [
@@ -70,187 +26,59 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 0,
          "SelectedChildIndex": 1,
          "Children": [
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "FaceSdkX64Register",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "RelativeToolTip": "FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2025-06-09T06:11:55.423Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "TH_Faces.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\TH_Faces.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Service\\TH_Faces.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\TH_Faces.cs",
              "RelativeToolTip": "FaceSdkX64Service\\TH_Faces.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB8AAABCAAAAAAAAAA==",
              "Title": "FrmRegister.cs",
              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\FrmRegister.cs",
              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
              "RelativeToolTip": "FaceSdkX64Register\\FrmRegister.cs",
              "ViewState": "AgIAAAEAAACAYGZmZmYkwBsAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-08T03:19:03.556Z",
              "WhenOpened": "2025-06-11T02:21:45.53Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "CHS_Capture.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\CHS_Capture.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Service\\CHS_Capture.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\CHS_Capture.cs",
              "RelativeToolTip": "FaceSdkX64Service\\CHS_Capture.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-08T03:18:57.128Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "FaceSdkX64Register.csproj",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj*",
              "RelativeToolTip": "FaceSdkX64Register\\FaceSdkX64Register.csproj*",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAApAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2025-06-06T07:14:47.187Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "HttpServer.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\HttpServer.cs",
              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Service\\HttpServer.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Service\\HttpServer.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\HttpServer.cs",
              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Service\\HttpServer.cs",
              "RelativeToolTip": "FaceSdkX64Service\\HttpServer.cs",
              "ViewState": "AgIAABwAAAAAAAAAAAAQwCIAAAANAAAAAAAAAA==",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwkAAAABAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-29T07:43:03.48Z"
              "WhenOpened": "2025-06-11T02:10:18.119Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "Resources.Designer.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.Designer.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\Properties\\Resources.Designer.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.Designer.cs",
              "RelativeToolTip": "FaceSdkX64Register\\Properties\\Resources.Designer.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAEYAAAAJAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-29T02:18:20.337Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "Resources.resx",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.resx",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\Properties\\Resources.resx",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.resx",
              "RelativeToolTip": "FaceSdkX64Register\\Properties\\Resources.resx",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001005|",
              "WhenOpened": "2025-05-29T02:16:24.157Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "MyOpaqueLayer.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\MyOpaqueLayer.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\MyOpaqueLayer.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\MyOpaqueLayer.cs",
              "RelativeToolTip": "FaceSdkX64Register\\MyOpaqueLayer.cs",
              "ViewState": "AgIAADsAAAAAAAAAAAAYwE0AAAA0AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-29T02:12:52.072Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "Title": "FaceSdkX64",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FaceSdkX64.csproj",
              "RelativeDocumentMoniker": "FaceSdkX64\\FaceSdkX64.csproj",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FaceSdkX64.csproj",
              "RelativeToolTip": "FaceSdkX64\\FaceSdkX64.csproj",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2025-05-28T08:39:06.348Z"
              "DocumentIndex": 2,
              "Title": "App.config",
              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Register\\App.config",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\App.config",
              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Register\\App.config",
              "RelativeToolTip": "FaceSdkX64Register\\App.config",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwMAAAAdAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000601|",
              "WhenOpened": "2025-06-11T02:10:14.173Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "FrmRegister.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\FrmRegister.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
              "RelativeToolTip": "FaceSdkX64Register\\FrmRegister.cs",
              "ViewState": "AgIAAAgAAAAAAAAAAAAxwCgAAABCAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-28T07:25:57.103Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "App.config",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\App.config",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\App.config",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\App.config",
              "RelativeToolTip": "FaceSdkX64Register\\App.config",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000601|",
              "WhenOpened": "2025-06-05T01:57:45.621Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "FrmRegister.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\FrmRegister.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "FaceSdkX64Register\\FrmRegister.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-28T08:36:25.753Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "FrmFaceCheck.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs",
              "RelativeDocumentMoniker": "FaceSdkX64\\FrmFaceCheck.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs",
              "RelativeToolTip": "FaceSdkX64\\FrmFaceCheck.cs",
              "ViewState": "AgIAAAoCAAAAAAAAAAAvwAkCAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-28T06:42:06.783Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "OpaqueCommand.cs",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\OpaqueCommand.cs",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\OpaqueCommand.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\OpaqueCommand.cs",
              "RelativeToolTip": "FaceSdkX64Register\\OpaqueCommand.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAuwBIAAAAUAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-29T02:23:19.143Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "FrmFaceCheck.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs",
              "RelativeDocumentMoniker": "FaceSdkX64\\FrmFaceCheck.cs",
              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "FaceSdkX64\\FrmFaceCheck.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-28T06:42:03.078Z"
              "Title": "FaceSdkX64Register",
              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "RelativeDocumentMoniker": "FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\\u4EBA\u8138\u8BC6\u522B\u63D2\u4EF6\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "RelativeToolTip": "FaceSdkX64Register\\FaceSdkX64Register.csproj",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2025-06-11T02:09:55.342Z"
            }
          ]
        }
project/ÈËÁ³Ê¶±ð²å¼þ/FaceSdkX64/FaceSdkX64.sln
@@ -3,13 +3,9 @@
# Visual Studio Version 17
VisualStudioVersion = 17.14.36109.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FaceSdkX64", "FaceSdkX64\FaceSdkX64.csproj", "{A1CAC745-A3C3-42B5-9826-4358006B3CBD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FaceSdkX64Register", "FaceSdkX64Register\FaceSdkX64Register.csproj", "{EB4DDD28-77FA-427F-A757-8C7C98A6665F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FaceSdkX64Service", "FaceSdkX64Service\FaceSdkX64Service.csproj", "{6D18B477-E291-4014-B992-9266DA280C6B}"
EndProject
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "FacePlugin", "FacePlugin\FacePlugin.vdproj", "{967F0B76-B20B-D70C-BDE0-80E287558C7D}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -21,18 +17,6 @@
        Release|x86 = Release|x86
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Debug|x64.ActiveCfg = Debug|Any CPU
        {A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Debug|x64.Build.0 = Debug|Any CPU
        {A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Debug|x86.ActiveCfg = Debug|Any CPU
        {A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Debug|x86.Build.0 = Debug|Any CPU
        {A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Release|Any CPU.Build.0 = Release|Any CPU
        {A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Release|x64.ActiveCfg = Release|Any CPU
        {A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Release|x64.Build.0 = Release|Any CPU
        {A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Release|x86.ActiveCfg = Release|Any CPU
        {A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Release|x86.Build.0 = Release|Any CPU
        {EB4DDD28-77FA-427F-A757-8C7C98A6665F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {EB4DDD28-77FA-427F-A757-8C7C98A6665F}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {EB4DDD28-77FA-427F-A757-8C7C98A6665F}.Debug|x64.ActiveCfg = Debug|x64
@@ -57,16 +41,6 @@
        {6D18B477-E291-4014-B992-9266DA280C6B}.Release|x64.Build.0 = Release|Any CPU
        {6D18B477-E291-4014-B992-9266DA280C6B}.Release|x86.ActiveCfg = Release|Any CPU
        {6D18B477-E291-4014-B992-9266DA280C6B}.Release|x86.Build.0 = Release|Any CPU
        {967F0B76-B20B-D70C-BDE0-80E287558C7D}.Debug|Any CPU.ActiveCfg = Debug
        {967F0B76-B20B-D70C-BDE0-80E287558C7D}.Debug|x64.ActiveCfg = Debug
        {967F0B76-B20B-D70C-BDE0-80E287558C7D}.Debug|x64.Build.0 = Debug
        {967F0B76-B20B-D70C-BDE0-80E287558C7D}.Debug|x86.ActiveCfg = Debug
        {967F0B76-B20B-D70C-BDE0-80E287558C7D}.Debug|x86.Build.0 = Debug
        {967F0B76-B20B-D70C-BDE0-80E287558C7D}.Release|Any CPU.ActiveCfg = Release
        {967F0B76-B20B-D70C-BDE0-80E287558C7D}.Release|x64.ActiveCfg = Release
        {967F0B76-B20B-D70C-BDE0-80E287558C7D}.Release|x64.Build.0 = Release
        {967F0B76-B20B-D70C-BDE0-80E287558C7D}.Release|x86.ActiveCfg = Release
        {967F0B76-B20B-D70C-BDE0-80E287558C7D}.Release|x86.Build.0 = Release
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
project/ÈËÁ³Ê¶±ð²å¼þ/FaceSdkX64/FaceSdkX64Register/FrmRegister.cs
@@ -39,6 +39,8 @@
            InitializeComponent();
            oc = new OpaqueCommand();
            CheckForIllegalCrossThreadCalls = false; // å…è®¸è·¨çº¿ç¨‹è°ƒç”¨æŽ§ä»¶ã€
            //MessageBox.Show(Environment.CurrentDirectory);
        }
        private void FrmRegister_Load(object sender, EventArgs e)
@@ -328,8 +330,10 @@
                                string strTimeFlag = System.DateTime.Now.ToString("yyyyMMddHHmmss");
                                string strFolder = Environment.CurrentDirectory + "\\Record";
                                if (System.IO.Directory.Exists(strFolder) == false)
                                if (!System.IO.Directory.Exists(strFolder))
                                    System.IO.Directory.CreateDirectory(strFolder);
                                if(!System.IO.Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\Record"))
                                    System.IO.Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "\\Record");
                                string strFileName = strFolder + "\\" + strTimeFlag + "_" + nLiveFace.ToString() + "_1.jpg";
                                if (nNum1 > 0)
project/ÈËÁ³Ê¶±ð²å¼þ/FaceSdkX64/UpgradeLog.htm
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,276 @@
<!DOCTYPE html>
<!-- saved from url=(0014)about:internet -->
 <html xmlns:msxsl="urn:schemas-microsoft-com:xslt"><head><meta content="en-us" http-equiv="Content-Language" /><meta content="text/html; charset=utf-16" http-equiv="Content-Type" /><title _locID="ConversionReport0">
          è¿ç§»æŠ¥å‘Š
        </title><style>
                    /* Body style, for the entire document */
                    body
                    {
                        background: #F3F3F4;
                        color: #1E1E1F;
                        font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
                        padding: 0;
                        margin: 0;
                    }
                    /* Header1 style, used for the main title */
                    h1
                    {
                        padding: 10px 0px 10px 10px;
                        font-size: 21pt;
                        background-color: #E2E2E2;
                        border-bottom: 1px #C1C1C2 solid;
                        color: #201F20;
                        margin: 0;
                        font-weight: normal;
                    }
                    /* Header2 style, used for "Overview" and other sections */
                    h2
                    {
                        font-size: 18pt;
                        font-weight: normal;
                        padding: 15px 0 5px 0;
                        margin: 0;
                    }
                    /* Header3 style, used for sub-sections, such as project name */
                    h3
                    {
                        font-weight: normal;
                        font-size: 15pt;
                        margin: 0;
                        padding: 15px 0 5px 0;
                        background-color: transparent;
                    }
                    /* Color all hyperlinks one color */
                    a
                    {
                        color: #1382CE;
                    }
                    /* Table styles */
                    table
                    {
                        border-spacing: 0 0;
                        border-collapse: collapse;
                        font-size: 10pt;
                    }
                    table th
                    {
                        background: #E7E7E8;
                        text-align: left;
                        text-decoration: none;
                        font-weight: normal;
                        padding: 3px 6px 3px 6px;
                    }
                    table td
                    {
                        vertical-align: top;
                        padding: 3px 6px 5px 5px;
                        margin: 0px;
                        border: 1px solid #E7E7E8;
                        background: #F7F7F8;
                    }
                    /* Local link is a style for hyperlinks that link to file:/// content, there are lots so color them as 'normal' text until the user mouse overs */
                    .localLink
                    {
                        color: #1E1E1F;
                        background: #EEEEED;
                        text-decoration: none;
                    }
                    .localLink:hover
                    {
                        color: #1382CE;
                        background: #FFFF99;
                        text-decoration: none;
                    }
                    /* Center text, used in the over views cells that contain message level counts */
                    .textCentered
                    {
                        text-align: center;
                    }
                    /* The message cells in message tables should take up all avaliable space */
                    .messageCell
                    {
                        width: 100%;
                    }
                    /* Padding around the content after the h1 */
                    #content
                    {
                        padding: 0px 12px 12px 12px;
                    }
                    /* The overview table expands to width, with a max width of 97% */
                    #overview table
                    {
                        width: auto;
                        max-width: 75%;
                    }
                    /* The messages tables are always 97% width */
                    #messages table
                    {
                        width: 97%;
                    }
                    /* All Icons */
                    .IconSuccessEncoded, .IconInfoEncoded, .IconWarningEncoded, .IconErrorEncoded
                    {
                        min-width:18px;
                        min-height:18px;
                        background-repeat:no-repeat;
                        background-position:center;
                    }
                    /* Success icon encoded */
                    .IconSuccessEncoded
                    {
                        /* Note: Do not delete the comment below. It is used to verify the correctness of the encoded image resource below before the product is released */
                        /* [---XsltValidateInternal-Base64EncodedImage:IconSuccess#Begin#background-image: url(data:image/png;base64,#Separator#);#End#] */
                        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABcElEQVR4Xq2TsUsCURzHv15g8ZJcBWlyiYYgCIWcb9DFRRwMW5TA2c0/QEFwFkxxUQdxVlBwCYWOi6IhWgQhBLHJUCkhLr/BW8S7gvrAg+N+v8/v+x68Z8MGy+XSCyABQAXgBgHGALoASkIIDWSLeLBetdHryMjd5IxQPWT4rn1c/P7+xxp72Cs9m5SZ0Bq2vPnbPFafK2zDvmNHypdC0BPkLlQhxJsCAhQoZwdZU5mwxh720qGo8MzTxTTKZDPCx2HoVzp6lz0Q9tKhyx0kGs8Ny+TkWRKk8lCROwEduhyg9l/6lunOPSfmH3NUH6uQ0KHLAe7JYvJjevm+DAMGJHToKtigE+vwvIidxLamb8IBY9e+C5LiXREkfho3TSd06HJA13/oh6T51MTsfQbHrsMynQ5dDihFjiK8JJAU9AKIWTp76dCVN7HWHrajmUEGvyF9nkbAE6gLIS7kTUyuf2gscLoJrElZo/Mvj+nPz/kLTmfnEwP3tB0AAAAASUVORK5CYII=);
                    }
                    /* Information icon encoded */
                    .IconInfoEncoded
                    {
                        /* Note: Do not delete the comment below. It is used to verify the correctness of the encoded image resource below before the product is released */
                        /* [---XsltValidateInternal-Base64EncodedImage:IconInformation#Begin#background-image: url(data:image/png;base64,#Separator#);#End#] */
                        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR4Xs2TsUoDQRRF7wwoziokjZUKadInhdhukR9YP8DMX1hYW+QvdsXa/QHBbcXC7W0CamWTQnclFutceIQJwwaWNLlwm5k5d94M76mmaeCrrmsLYOocY12FcxZFUeozCqKqqgYA8uevv1H6VuPxcwlfk5N92KHBxfFeCSAxxswlYAW/Xr989x/mv9gkhtyMDhcAxgzRsp7flj8B/HF1RsMXq+NZMkopaHe7lbKxQUEIGbKsYNoGn969060hZBkQex/W8oRQwsQaW2o3Ago2SVcJUzAgY3N0lTCZZm+zPS8HB51gMmS1DEYyOz9acKO1D8JWTlafKIMxdhvlfdyT94Vv5h7P8Ky7nQzACmhvKq3zk3PjW9asz9D/1oigecsioooAAAAASUVORK5CYII=);
                    }
                    /* Warning icon encoded */
                    .IconWarningEncoded
                    {
                        /* Note: Do not delete the comment below. It is used to verify the correctness of the encoded image resource below before the product is released */
                        /* [---XsltValidateInternal-Base64EncodedImage:IconWarning#Begin#background-image: url(data:image/png;base64,#Separator#);#End#] */
                        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAx0lEQVR4XpWSMQ7CMAxFf4xAyBMLCxMrO8dhaBcuwdCJS3RJBw7SA/QGTCxdWJgiQYWKXJWKIXHIlyw5lqr34tQgEOdcBsCOx5yZK3hCCKdYXneQkh4pEfqzLfu+wVDSyyzFoJjfz9NB+pAF+eizx2Vruts0k15mPgvS6GYvpVtQhB61IB/dk6AF6fS4Ben0uIX5odtFe8Q/eW1KvFeH4e8khT6+gm5B+t3juyDt7n0jpe+CANTd+oTUjN/U3yVaABnSUjFz/gFq44JaVSCXeQAAAABJRU5ErkJggg==);
                    }
                    /* Error icon encoded */
                    .IconErrorEncoded
                    {
                        /* Note: Do not delete the comment below. It is used to verify the correctness of the encoded image resource below before the product is released */
                        /* [---XsltValidateInternal-Base64EncodedImage:IconError#Begin#background-image: url(data:image/png;base64,#Separator#);#End#] */
                        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABQElEQVR4XqWTvUoEQRCE6wYPZUA80AfwAQz23uCMjA7MDRQEIzPBVEyNTQUFIw00vcQTTMzuAh/AxEQQT8HF/3G/oGGnEUGuoNnd6qoZuqltyKEsyzVJq5I6rnUp6SjGeGhESikzzlc1eL7opfuVbrqbU1Zw9NCgtQMaZpY0eNnaaL2fHusvTK5vKu7sjSS1Y4y3QUA6K3e3Mau5UFDyMP7tYF9o8cAHZv68vipoIJg971PZIZ5HiwdvYGGvFVFHmGmZ2MxwmQYPXubPl9Up0tfoMQGetXd6mRbvhBw+boZ6WF7Mbv1+GsHRk0fQmPAH1GfmZirbCfDJ61tw3Px8/8pZsPAG4jlVhcPgZ7adwNWBB68lkRQWFiTgFlbnLY3DGGM7izIJIyT/jjIvEJw6fdJTc6krDzh6aMwMP9bvDH4ADSsa9uSWVJkAAAAASUVORK5CYII=);
                    }
                 </style><script type="text/javascript" language="javascript">
            // Startup
            // Hook up the the loaded event for the document/window, to linkify the document content
            var startupFunction = function() { linkifyElement("messages"); };
            if(window.attachEvent)
            {
              window.attachEvent('onload', startupFunction);
            }
            else if (window.addEventListener)
            {
              window.addEventListener('load', startupFunction, false);
            }
            else
            {
              document.addEventListener('load', startupFunction, false);
            }
            // Toggles the visibility of table rows with the specified name
            function toggleTableRowsByName(name)
            {
               var allRows = document.getElementsByTagName('tr');
               for (i=0; i < allRows.length; i++)
               {
                  var currentName = allRows[i].getAttribute('name');
                  if(!!currentName && currentName.indexOf(name) == 0)
                  {
                      var isVisible = allRows[i].style.display == '';
                      isVisible ? allRows[i].style.display = 'none' : allRows[i].style.display = '';
                  }
               }
            }
            function scrollToFirstVisibleRow(name)
            {
               var allRows = document.getElementsByTagName('tr');
               for (i=0; i < allRows.length; i++)
               {
                  var currentName = allRows[i].getAttribute('name');
                  var isVisible = allRows[i].style.display == '';
                  if(!!currentName && currentName.indexOf(name) == 0 && isVisible)
                  {
                     allRows[i].scrollIntoView(true);
                     return true;
                  }
               }
               return false;
            }
            // Linkifies the specified text content, replaces candidate links with html links
            function linkify(text)
            {
                 if(!text || 0 === text.length)
                 {
                     return text;
                 }
                 // Find http, https and ftp links and replace them with hyper links
                 var urlLink = /(http|https|ftp)\:\/\/[a-zA-Z0-9\-\.]+(:[a-zA-Z0-9]*)?\/?([a-zA-Z0-9\-\._\?\,\/\\\+&%\$#\=~;\{\}])*/gi;
                 return text.replace(urlLink, '<a href="$&">$&</a>') ;
            }
            // Linkifies the specified element by ID
            function linkifyElement(id)
            {
                var element = document.getElementById(id);
                if(!!element)
                {
                  element.innerHTML = linkify(element.innerHTML);
                }
            }
            function ToggleMessageVisibility(projectName)
            {
              if(!projectName || 0 === projectName.length)
              {
                return;
              }
              toggleTableRowsByName("MessageRowClass" + projectName);
              toggleTableRowsByName('MessageRowHeaderShow' + projectName);
              toggleTableRowsByName('MessageRowHeaderHide' + projectName);
            }
            function ScrollToFirstVisibleMessage(projectName)
            {
              if(!projectName || 0 === projectName.length)
              {
                return;
              }
              // First try the 'Show messages' row
              if(!scrollToFirstVisibleRow('MessageRowHeaderShow' + projectName))
              {
                // Failed to find a visible row for 'Show messages', try an actual message row
                scrollToFirstVisibleRow('MessageRowClass' + projectName);
              }
            }
           </script></head><body><h1 _locID="ConversionReport">
          è¿ç§»æŠ¥å‘Š - </h1><div id="content"><h2 _locID="OverviewTitle">概述</h2><div id="overview"><table><tr><th></th><th _locID="ProjectTableHeader">项目</th><th _locID="PathTableHeader">路径</th><th _locID="ErrorsTableHeader">错误</th><th _locID="WarningsTableHeader">警告</th><th _locID="MessagesTableHeader">消息</th></tr><tr><td class="IconErrorEncoded" /><td><strong><a href="#FacePlugin">FacePlugin</a></strong></td><td>FacePlugin\FacePlugin.vdproj</td><td class="textCentered"><a href="#FacePluginError">1</a></td><td class="textCentered"><a>0</a></td><td class="textCentered"><a href="#">0</a></td></tr><tr><td class="IconSuccessEncoded" /><td><strong><a href="#FaceSdkX64">FaceSdkX64</a></strong></td><td>FaceSdkX64\FaceSdkX64.csproj</td><td class="textCentered"><a>0</a></td><td class="textCentered"><a>0</a></td><td class="textCentered"><a href="#">0</a></td></tr><tr><td class="IconSuccessEncoded" /><td><strong><a href="#FaceSdkX64Register">FaceSdkX64Register</a></strong></td><td>FaceSdkX64Register\FaceSdkX64Register.csproj</td><td class="textCentered"><a>0</a></td><td class="textCentered"><a>0</a></td><td class="textCentered"><a href="#">0</a></td></tr><tr><td class="IconSuccessEncoded" /><td><strong><a href="#FaceSdkX64Service">FaceSdkX64Service</a></strong></td><td>FaceSdkX64Service\FaceSdkX64Service.csproj</td><td class="textCentered"><a>0</a></td><td class="textCentered"><a>0</a></td><td class="textCentered"><a href="#">0</a></td></tr><tr><td class="IconSuccessEncoded" /><td><strong><a href="#Solution"><span _locID="OverviewSolutionSpan">解决方案</span></a></strong></td><td>FaceSdkX64.sln</td><td class="textCentered"><a>0</a></td><td class="textCentered"><a>0</a></td><td class="textCentered"><a href="#" onclick="ScrollToFirstVisibleMessage('Solution'); return false;">1</a></td></tr></table></div><h2 _locID="SolutionAndProjectsTitle">解决方案和项目</h2><div id="messages"><a name="FacePlugin" /><h3>FacePlugin</h3><table><tr id="FacePluginHeaderRow"><th></th><th class="messageCell" _locID="MessageTableHeader">消息</th></tr><tr name="ErrorRowClassFacePlugin"><td class="IconErrorEncoded"><a name="FacePluginError" /></td><td class="messageCell"><strong>FacePlugin\FacePlugin.vdproj:
        </strong><span>找不到此项目类型所基于的应用程序。有关更多信息,请尝试此链接: 54435603-dbb4-11d2-8724-00a0c9a8b90c</span></td></tr></table><a name="FaceSdkX64" /><h3>FaceSdkX64</h3><table><tr id="FaceSdkX64HeaderRow"><th></th><th class="messageCell" _locID="MessageTableHeader">消息</th></tr><tr><td class="IconInfoEncoded" /><td class="messageCell" _locID="NoMessagesRow">FaceSdkX64 æœªè®°å½•任何消息。
                  </td></tr></table><a name="FaceSdkX64Register" /><h3>FaceSdkX64Register</h3><table><tr id="FaceSdkX64RegisterHeaderRow"><th></th><th class="messageCell" _locID="MessageTableHeader">消息</th></tr><tr><td class="IconInfoEncoded" /><td class="messageCell" _locID="NoMessagesRow">FaceSdkX64Register æœªè®°å½•任何消息。
                  </td></tr></table><a name="FaceSdkX64Service" /><h3>FaceSdkX64Service</h3><table><tr id="FaceSdkX64ServiceHeaderRow"><th></th><th class="messageCell" _locID="MessageTableHeader">消息</th></tr><tr><td class="IconInfoEncoded" /><td class="messageCell" _locID="NoMessagesRow">FaceSdkX64Service æœªè®°å½•任何消息。
                  </td></tr></table><a name="Solution" /><h3 _locID="ProjectDisplayNameHeader">解决方案</h3><table><tr id="SolutionHeaderRow"><th></th><th class="messageCell" _locID="MessageTableHeader">消息</th></tr><tr name="MessageRowHeaderShowSolution"><td class="IconInfoEncoded" /><td class="messageCell"><a _locID="ShowAdditionalMessages" href="#" name="SolutionMessage" onclick="ToggleMessageVisibility('Solution'); return false;">
          æ˜¾ç¤º 1 å…¶ä»–消息
        </a></td></tr><tr name="MessageRowClassSolution" style="display: none"><td class="IconInfoEncoded"><a name="SolutionMessage" /></td><td class="messageCell"><strong>FaceSdkX64.sln:
        </strong><span>解决方案文件不需要迁移。</span></td></tr><tr style="display: none" name="MessageRowHeaderHideSolution"><td class="IconInfoEncoded" /><td class="messageCell"><a _locID="HideAdditionalMessages" href="#" name="SolutionMessage" onclick="ToggleMessageVisibility('Solution'); return false;">
          éšè— 1 å…¶ä»–消息
        </a></td></tr></table></div></div></body></html>
project/ºǫ́¹ÜÀí/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IIPaddressServer .cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_DTO.Telescopic;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_ITaskInfoService
{
    public interface IIPaddressServer : IService<Dt_CustomIPaddress>
    {
        IRepository<Dt_CustomIPaddress> Repository { get; }
    }
}
project/ºǫ́¹ÜÀí/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_CustomIPaddress.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.DB.Models;
using WIDESEAWCS_Core.Tenants;
namespace WIDESEAWCS_Model.Models
{
    [SugarTable("Dt_CustomIPaddress", "自定义ip地址"), MultiTenant]
    public class Dt_CustomIPaddress:BaseEntity
    {
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "主键")]
        public  int  ID { get; set; }
        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "IP地址")]
        public string  IPaddress { get; set; }
        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "自定义ip地址的中文名字")]
        public string  Addressname { get; set; }
    }
}
project/ºǫ́¹ÜÀí/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Maintenance.cs
@@ -49,11 +49,17 @@
        /// <summary>
        /// ip地址
        /// </summary>
        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "ip地址")]
        public string IPAddress { get; set; }
            /// <summary>
            /// æ£€ä¿®çŠ¶æ€
            /// </summary>
            [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "检修状态")]
        /// <summary>
        /// æ£€ä¿®çŠ¶æ€
        /// </summary>
        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "检修状态")]
        public int MaintenanceStatus{ get; set; }
        /// <summary>
project/ºǫ́¹ÜÀí/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/IPaddressController .cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting.Server;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseController;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_DTO.Telescopic;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_TaskInfoService;
using WIDESEAWCS_TelescopicService;
namespace WIDESEAWCS_Server.Controllers.SerialPort
{
    [Route("api/[controller]")]
    [ApiController]
    public class IPaddressController : ApiBaseController<IPaddressServer, Dt_CustomIPaddress>
    {
        public IPaddressController(IPaddressServer service) : base(service)
        {
        }
    }
}
project/ºǫ́¹ÜÀí/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj
@@ -6,6 +6,7 @@
        <ImplicitUsings>enable</ImplicitUsings>
        <GenerateDocumentationFile>False</GenerateDocumentationFile>
        <Platforms>AnyCPU;x64</Platforms>
        <PlatformTarget>x86</PlatformTarget>
    </PropertyGroup>
    <ItemGroup>
project/ºǫ́¹ÜÀí/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_UserService.cs
@@ -224,6 +224,7 @@
                        img = user.HeadImageUrl,
                        ID = user.UserId,
                        RoleId = user.RoleId,
                        IsLeader= disbled.IsLeader,
                    });
                }
project/ºǫ́¹ÜÀí/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/IPaddressServer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_TelescopicService
{
    public class IPaddressServer : ServiceBase<Dt_CustomIPaddress, IRepository<Dt_CustomIPaddress>>, IIPaddressServer
    {
        public IRepository<Dt_CustomIPaddress> Repository => BaseDal;
        public IPaddressServer(IRepository<Dt_CustomIPaddress> BaseDal) : base(BaseDal)
        {
        }
    }
}
project/ºǫ́¹ÜÀí/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs
@@ -216,18 +216,15 @@
          {
            try
            {
                if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid))
                {
                    return new WebResponseContent { Status = false, Message = "配置项 DepartmentID æ— æ³•转换为整数" };
                }
                var devices = GetDevicesByDeptId(deid);
                var devices = GetDevicesByDeptId(DeptId);
                //俩个plc左右各一个
                //OtherDevice liftotherDevice = (OtherDevice)Storage.Devices.Find(x => x.DeviceCode == "SSG001");
                //OtherDevice rightotherDevice = (OtherDevice)Storage.Devices.Find(x => x.DeviceCode == "SSG002");
                //找到Dt_Parameters中的最新一条数据根据当前的deid
                var para = BaseDal.QueryData().Where(x => x.Deptid == deid).OrderByDescending(x => x.CreateDate).FirstOrDefault();
                var para = BaseDal.QueryData().Where(x => x.Deptid == DeptId).OrderByDescending(x => x.CreateDate).FirstOrDefault();
                int ext = (int)para.ManualExtend;//å·¦PLC手动伸出缩回速度
                int ret = (int)para.ManualRetraction;//右PLC手动伸出缩回速度
                int liftPosition = (int)para.LeftPosition;//左伸出位置