Jelajahi Sumber

init branch sharing

xf 1 tahun lalu
induk
melakukan
26a9051e42

+ 4 - 0
src/Hotline.Api/Hotline.Api.csproj

@@ -23,4 +23,8 @@
     <ProjectReference Include="..\Hotline.Application\Hotline.Application.csproj" />
   </ItemGroup>
 
+  <ItemGroup>
+    <Folder Include="Controllers\DataSharing\" />
+  </ItemGroup>
+
 </Project>

+ 95 - 1
src/Hotline.Api/config/appsettings.Development.json

@@ -97,6 +97,100 @@
     "Username": "root",
     "Password": "12345678aa",
     "Ip": "222.213.23.229"
-  }
+  },
+  "ChannelConfiguration": {
+    //省12345配置
+    "Province": {
+      "HuiJu": "http://103.203.219.157/cns-sccthj-job-test/rest/",
+      "XieTong": "http://103.203.219.157/cns-scxthj-rest-test/rest/",
+      "ClientId": "6384f475-2e1e-4985-9e34-51a3379452d0",
+      "ClientSecret": "3e92b698-d640-4056-be94-128710ac1a7e"
+    },
+    //企业服务
+    "Enterprise": {
+      "AddressUrl": "http://10.12.185.227:8834/",
+      "ClientId": "1462598736",
+      "ClientSecret": "6nZtVK4rKfnsncGymUHB",
+      "TenantId": "000000"
+    },
+    //市州数据交换
+    "CityHandOver": {
+      "SecretKey": "AA9FF92A-5040-442A-BDFF-A50AD536BF3D",
+      "SendCityName": "宜宾",
+      "ReceiveCityName": "泸州",
+      "BaseUrl": "http://localhost:6028/",
+      "UrlAddress": "CityHandOver.asmx/FlowWrite"
+    },
+    //融媒体
+    "MediaCode": {
+      "MediaCode": "FWYB0828"
+    },
+    //系统市州编码
+    "CityCode": {
+      "AreaCode": "511500"
+    },
+    //110对接
+    "PoliceDS": {
+      //1、非警情分流推送服务_宜宾市
+      //   receive-工单受理
+      //   http://10.12.185.168:8001/service/api/ds/110To12345/chainAlarm
+      "token1_token": "b8aae0a998f5b79c9a35aecb888e1a58",
+      "token1_dcsm": "c9bc4e718d1917a9a68add90fecbe5bb60920e5ab85d9ecb6a6167db4352f42b8ae21ac67a6e2aab48b4c99cd9f93ec5fb017e202df969a91f74456c14e8770a",
+      "token1_sm2_public": "BS/H9JVlRdo8vbsZYQLTkeGGZBVjdkX+VJ82CX7n6i4NubmynRIaxvzoSsEAhbbvTDGm2DS96l95nK6Dkd0UZg==",
+      "token1_sm2_private": "GbjU4GFk0yaa/wTdzxeh5BOh8VNlqvnTcb7EUtDVvOY=",
+      "token1_sm4": "BKrW/v4jeRgsFg3HSbxEKnDi6rPceW0AdRiaa1rhEwAnraf8MnHdXzUQoQ7+zyjfghaK5G+zDz+wW+Ob27Jgxt91HkVmyL6+SjqV9ZnqNeGFgTBkQrHDySGz6jHKa12Sv7PZs8pjc716he3NNHZAkCI=",
+      "token1_sm4_mw": "4034d80c19bbd01d",
+
+      //4、警务警情分流推送服务_宜宾市
+      //   receive-工单办结
+      //   http://10.12.185.168:8001/service/api/ds/110To12345/chainDeal
+      "token4_token": "8806bfba29b997853bdb059a9ba9a3ae",
+      "token4_dcsm": "f5dce079e0f4acd6b6627b89fb5e72af5fa5775d3ee3b8c7876f546c5ebe723888df4a70c09f9aa5e096bb342d73e0c4793c851a7a8035e8683b07430f132bd3",
+      "token4_sm2_public": "P2IVWpFx38GQTDV3hgrxjlOdfPhLQNW2LyvAKmYqMz9UYHCtm/l3K73UIouMXs4jcmZjXyItepvKFv44g3YnXA==",
+      "token4_sm2_private": "yxIkRALHoOTxpiZ/jrvCDQatcR7k11Xhps7c92peU9w=",
+      "token4_sm4": "BCD88AXnIfMxe8PrUcubSbFRr07cOuDDEPzy754W3CzhOqjcpAcu1B9B6U46jyM4hEFPqkx+SS1PUAfRlG5tzYD1Z8SKsJTBUDGR6bTMRvCc+C/aps+IcRBfzjjRchtT1c5iok4CfiT4LoK5cmOHKKU=",
+      "token4_sm4_mw": "d731ff1282dda792",
+
+      //3、警务警情分流查询服务_宜宾市
+      //   send-工单受理
+      //   http://10.12.185.168:8001/service/api/ds/12345To110/chainAlarm
+      "token3_token": "b76ba1896c4880998a86b829cf79888a",
+      "token3_dcsm": "3cccc86e021c0ff7827537053ec1b6e4a57cbb49b77c9492257123703c5a6b711000f0842c035fe6d33eb2a947915af53a1ef501916ec7128bff9514d6184e2c",
+      "token3_sm2_public": "qaao4Xh8/eyYGeVOj1K8D7p3+OriP55azWDAbYVoZelMdluNrJuQWM2qPn+hjTHTBnIMAVK2HlHBx4oGfCxGdA==",
+      "token3_sm2_private": "8bSYM8P3b4I94qGt3XVx3bQddNCy/xVKo7o1b5LI4/M=",
+      "token3_sm4": "BIDhFaEu5NILR7byg/JfaPlJEm4dYWC+u9J1IqhtYeYY1AktOxp7cZWqfk/mWjw72pYGT7YRENCULbjZ2bxVG6UUv2pYukZWtYog34Vicu5IgC8ti4VpED9eGzGgtKJ/CT0KtAnjQPQL0PsVbCjTY5M=",
+      "token3_sm4_mw": "bbeb56d247354360",
+
+      //2、非警情分流查询服务_宜宾市
+      //   send-工单办结
+      //   http://10.12.185.168:8001/service/api/ds/12345To110/chainDeal
+      "token2_token": "1fbbac1b09b89d11bc569168aabb3c8b",
+      "token2_dcsm": "3873c1b1ff0ce3b8120d63509d3b85169cda4856b0a0d89625a4744641a343951d8ced868bd5c7fc60826403bd6314a02e5a26ba8808dae5a9d9f851555338d0",
+      "token2_sm2_public": "VgjJ7FfA23vY3Hr1pVrdbi3MZt7X0k/nMf9kwEyyC32CXgT2ccWBlxf3kGPXLO56HSBoo9IA7sSEG3eJYVQmLw==",
+      "token2_sm2_private": "QNTPy2nPBe2JY308G0LHO4r42iomDWcdedf81FapkWA=",
+      "token2_sm4": "BKNpLwBCT2MvXwhLRcZ6FoMm4GaXs6LXqVmEa5hMJ3d9G+vC/5j7xtQh9HRKIfSfXkDQI0EQS7UR4inEXks/AnKsLYGhmhRjyzM7AGpEsujr2vJTwcwIWpBmpuc7k0uBQ34bN+kopafIo5UVyk7rIek=",
+      "token2_sm4_mw": "2938d7acb2754a09",
+
+      //5、从公安网侧获取12345政务服务热线平台知识库列表
+      //   send-知识库列表
+      //   http://10.12.185.168:8001/service/api/ds/get_knowledge_info
+      "token5_token": "1fbbac1b09b89d11bc569168aabb3c8b",
+      "token5_dcsm": "3873c1b1ff0ce3b8120d63509d3b85169cda4856b0a0d89625a4744641a343951d8ced868bd5c7fc60826403bd6314a02e5a26ba8808dae5a9d9f851555338d0",
+      "token5_sm2_public": "VgjJ7FfA23vY3Hr1pVrdbi3MZt7X0k/nMf9kwEyyC32CXgT2ccWBlxf3kGPXLO56HSBoo9IA7sSEG3eJYVQmLw==",
+      "token5_sm2_private": "QNTPy2nPBe2JY308G0LHO4r42iomDWcdedf81FapkWA=",
+      "token5_sm4": "BKNpLwBCT2MvXwhLRcZ6FoMm4GaXs6LXqVmEa5hMJ3d9G+vC/5j7xtQh9HRKIfSfXkDQI0EQS7UR4inEXks/AnKsLYGhmhRjyzM7AGpEsujr2vJTwcwIWpBmpuc7k0uBQ34bN+kopafIo5UVyk7rIek=",
+      "token5_sm4_mw": "2938d7acb2754a09",
+
+      //6、从公安网侧获取12345政务服务热线平台知识内容
+      //   send-知识库内容
+      //   http://10.12.185.168:8001/service/api/ds/get_knowledge_content
+      "token6_token": "1fbbac1b09b89d11bc569168aabb3c8b",
+      "token6_dcsm": "3873c1b1ff0ce3b8120d63509d3b85169cda4856b0a0d89625a4744641a343951d8ced868bd5c7fc60826403bd6314a02e5a26ba8808dae5a9d9f851555338d0",
+      "token6_sm2_public": "VgjJ7FfA23vY3Hr1pVrdbi3MZt7X0k/nMf9kwEyyC32CXgT2ccWBlxf3kGPXLO56HSBoo9IA7sSEG3eJYVQmLw==",
+      "token6_sm2_private": "QNTPy2nPBe2JY308G0LHO4r42iomDWcdedf81FapkWA=",
+      "token6_sm4": "BKNpLwBCT2MvXwhLRcZ6FoMm4GaXs6LXqVmEa5hMJ3d9G+vC/5j7xtQh9HRKIfSfXkDQI0EQS7UR4inEXks/AnKsLYGhmhRjyzM7AGpEsujr2vJTwcwIWpBmpuc7k0uBQ34bN+kopafIo5UVyk7rIek=",
+      "token6_sm4_mw": "2938d7acb2754a09"
+    }
+  },
 
 }

+ 1 - 0
src/Hotline.Application.Contracts/Hotline.Application.Contracts.csproj

@@ -17,6 +17,7 @@
 
   <ItemGroup>
     <Folder Include="Configurations\" />
+    <Folder Include="Validators\DataSharing\" />
   </ItemGroup>
 
 </Project>

+ 4 - 0
src/Hotline.Application/Hotline.Application.csproj

@@ -20,4 +20,8 @@
     <ProjectReference Include="..\XF.EasyCaching\XF.EasyCaching.csproj" />
   </ItemGroup>
 
+  <ItemGroup>
+    <Folder Include="Mappers\DataSharing\" />
+  </ItemGroup>
+
 </Project>

+ 1 - 0
src/Hotline.Application/Mappers/OrderMapperConfigs.cs

@@ -28,6 +28,7 @@ public class OrderMapperConfigs : IRegister
             .Map(d => d.StartTime, s => s.CreationTime)
             .Ignore(d => d.Status)
             .Ignore(d => d.Title)
+            .Ignore(d => d.ExternalId)
             .AfterMapping((s, d) =>
             {
                 d.UpdateHandlingStatus(s.IsInCountersign);

+ 25 - 0
src/Hotline.Share/Enums/DataSharing/EDsPublishState.cs

@@ -0,0 +1,25 @@
+using System.ComponentModel;
+
+namespace Hotline.Share.Enums.DataSharing
+{
+    public enum EDsPublishState
+    {
+        /// <summary>
+        /// 未发布
+        /// </summary>
+        [Description("未发布")]
+        Unpublished = 0,
+
+        /// <summary>
+        /// 不公开
+        /// </summary>
+        [Description("不公开")]
+        NotPublic = 1,
+
+        /// <summary>
+        /// 公开
+        /// </summary>
+        [Description("公开")]
+        Open = 2,
+    }
+}

+ 4 - 0
src/Hotline.Share/Hotline.Share.csproj

@@ -21,4 +21,8 @@
     <PackageReference Include="XF.Utility.EnumExtensions" Version="1.0.3" />
   </ItemGroup>
 
+  <ItemGroup>
+    <Folder Include="Dtos\DataSharing\" />
+  </ItemGroup>
+
 </Project>

+ 192 - 0
src/Hotline/DataSharing/ChannelConfiguration.cs

@@ -0,0 +1,192 @@
+namespace Hotline.DataSharing;
+
+public class ChannelConfiguration
+{
+    /// <summary>
+    /// 省12345
+    /// </summary>
+    public ConfigurationProvince Province { get; set; }
+
+    /// <summary>
+    /// 企业服务
+    /// </summary>
+    public ConfigurationEnterprise Enterprise { get; set; }
+
+    /// <summary>
+    /// 市州数据交换
+    /// </summary>
+    public ConfigurationCityHandOver CityHandOver { get; set; }
+
+    /// <summary>
+    /// 系统市州编码
+    /// </summary>
+    public ConfigurationCityCode CityCode { get; set; }
+
+    /// <summary>
+    /// 融媒体
+    /// </summary>
+    public ConvergenceMediaCode MediaCode { get; set; }
+
+    /// <summary>
+    /// 道枢110
+    /// </summary>
+    public ConfigurationPoliceDS PoliceDS { get; set; }
+}
+
+/// <summary>
+/// 省12345
+/// </summary>
+public class ConfigurationProvince
+{
+    public string HuiJu { get; set; } = string.Empty;
+    public string XieTong { get; set; } = string.Empty;
+    public string ClientId { get; set; } = string.Empty;
+    public string ClientSecret { get; set; } = string.Empty;
+    //public string Scheme { get; set; } = ConfigurationConsts.SchemeDefault;
+}
+
+/// <summary>
+/// 企业服务
+/// </summary>
+public class ConfigurationEnterprise
+{
+    /// <summary>
+    /// 请求的址
+    /// </summary>
+    public string AddressUrl { get; set; } = string.Empty;
+
+    /// <summary>
+    /// id
+    /// </summary>
+    public string ClientId { get; set; } = string.Empty;
+
+    /// <summary>
+    /// 密钥
+    /// </summary>
+    public string ClientSecret { get; set; } = string.Empty;
+
+    /// <summary>
+    /// 
+    /// </summary>
+    public string TenantId { get; set; } = string.Empty;
+    
+}
+
+/// <summary>
+/// 市州数据交换
+/// </summary>
+public class ConfigurationCityHandOver
+{
+    /// <summary>
+    /// 密钥
+    /// </summary>
+    public string SecretKey { get; set; } = string.Empty;
+
+    /// <summary>
+    /// 请求市州名称
+    /// </summary>
+    public string SendCityName { get; set; } = string.Empty;
+
+    /// <summary>
+    /// 接收市州名称
+    /// </summary>
+    public string ReceiveCityName { get; set; } = string.Empty;
+
+    /// <summary>
+    /// 请求地址
+    /// </summary>
+    public string BaseUrl { get; set; } = string.Empty;
+
+    /// <summary>
+    /// 接口地址
+    /// </summary>
+    public string UrlAddress { get; set; } = string.Empty;
+}
+
+/// <summary>
+///融媒体
+/// </summary>
+public class ConvergenceMediaCode
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public string MediaCode { get; set; }
+}
+
+/// <summary>
+/// 系统市州编码
+/// </summary>
+public class ConfigurationCityCode
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public string AreaCode { get; set; } = string.Empty;
+}
+
+/// <summary>
+/// 道枢110
+/// </summary>
+public class ConfigurationPoliceDS
+{
+    //1、非警情分流推送服务_宜宾市
+    //   receive-工单受理
+    //   http://10.12.185.168:8001/service/api/ds/110To12345/chainAlarm
+    public string token1_token { get; set; }
+    public string token1_dcsm { get; set; }
+    public string token1_sm2_public { get; set; }
+    public string token1_sm2_private { get; set; }
+    public string token1_sm4 { get; set; }
+    public string token1_sm4_mw { get; set; }
+
+    //4、警务警情分流推送服务_宜宾市
+    //   receive-工单办结
+    //   http://10.12.185.168:8001/service/api/ds/110To12345/chainDeal
+    public string token4_token { get; set; }
+    public string token4_dcsm { get; set; }
+    public string token4_sm2_public { get; set; }
+    public string token4_sm2_private { get; set; }
+    public string token4_sm4 { get; set; }
+    public string token4_sm4_mw { get; set; }
+
+    //3、警务警情分流查询服务_宜宾市
+    //   send-工单受理
+    //   http://10.12.185.168:8001/service/api/ds/12345To110/chainAlarm
+    public string token3_token { get; set; }
+    public string token3_dcsm { get; set; }
+    public string token3_sm2_public { get; set; }
+    public string token3_sm2_private { get; set; }
+    public string token3_sm4 { get; set; }
+    public string token3_sm4_mw { get; set; }
+
+    //2、非警情分流查询服务_宜宾市
+    //   send-工单办结
+    //   http://10.12.185.168:8001/service/api/ds/12345To110/chainDeal
+    public string token2_token { get; set; }
+    public string token2_dcsm { get; set; }
+    public string token2_sm2_public { get; set; }
+    public string token2_sm2_private { get; set; }
+    public string token2_sm4 { get; set; }
+    public string token2_sm4_mw { get; set; }
+
+    //5、从公安网侧获取12345政务服务热线平台知识库列表
+    //   send-知识库列表
+    //   http://10.12.185.168:8001/service/api/ds/get_knowledge_info
+    public string token5_token { get; set; }
+    public string token5_dcsm { get; set; }
+    public string token5_sm2_public { get; set; }
+    public string token5_sm2_private { get; set; }
+    public string token5_sm4 { get; set; }
+    public string token5_sm4_mw { get; set; }
+
+    //6、从公安网侧获取12345政务服务热线平台知识内容
+    //   send-知识库内容
+    //   http://10.12.185.168:8001/service/api/ds/get_knowledge_content
+    public string token6_token { get; set; }
+    public string token6_dcsm { get; set; }
+    public string token6_sm2_public { get; set; }
+    public string token6_sm2_private { get; set; }
+    public string token6_sm4 { get; set; }
+    public string token6_sm4_mw { get; set; }
+}

+ 272 - 0
src/Hotline/DataSharing/Order/DsOrder.cs

@@ -0,0 +1,272 @@
+using Hotline.Share.Enums.DataSharing;
+using SqlSugar;
+using XF.Domain.Repository;
+
+namespace Sharing.Orders;
+
+/// <summary>
+/// / 工单数据,推送省平台记录
+/// </summary>
+public class DsOrder : CreationModificationEntity
+{
+    /*
+     工单id	工单编号	上传省工单编号	省编号	受理时间	第一次工单同步省平台时间	工单上传间隔(s)	工单是否及时上传	同步诉求渠道	最新应办结时间	最新工单同步省平台时间	第一次结果同步时间	
+    最新同步答复时间	最新结果同步时间	第一次评价同步时间	最新同步评价时间	最新评价同步时间	第一次工单满意度	最新满意度	同步诉求类型	办理时长	是否为省工单
+     */
+    /// <summary>
+    /// 工单id
+    /// </summary>
+    [SugarColumn(ColumnDescription = "工单ID", ColumnDataType = "varchar(50)")]
+    public string OrderId { get; set; }
+
+    /// <summary>
+    /// 工单编号
+    /// </summary>
+    [SugarColumn(ColumnDescription = "工单编号", ColumnDataType = "varchar(50)")]
+    public string OrderNo { get; set; }
+
+    /// <summary>
+    /// 流程ID
+    /// </summary>
+    [SugarColumn(ColumnDescription = "流程ID", ColumnDataType = "varchar(50)")]
+    public string? WorkflowId { get; set; }
+
+    /// <summary>
+    /// 信件查询密码
+    /// </summary>
+    [SugarColumn(ColumnDescription = "信件查询密码", ColumnDataType = "varchar(20)")]
+    public string Password { get; set; }
+
+    /// <summary>
+    /// 工单标题
+    /// </summary>
+    [SugarColumn(ColumnDescription = "工单标题", ColumnDataType = "varchar(500)")]
+    public string Title { get; set; }
+
+    /// <summary>
+    /// 来电/信人姓名
+    /// </summary>
+    [SugarColumn(ColumnDescription = "来电/信人姓名", ColumnDataType = "varchar(20)")]
+    public string FromName { get; set; }
+
+    /// <summary>
+    /// 联系电话
+    /// </summary>
+    [SugarColumn(ColumnDescription = "联系电话", ColumnDataType = "varchar(30)")]
+    public string? Contact { get; set; }
+
+    /// <summary>
+    /// 诉求内容
+    /// </summary>
+    [SugarColumn(ColumnDescription = "诉求内容", ColumnDataType = "text")]
+    public string Content { get; set; }
+
+    /// <summary>
+    /// 上传省工单编号
+    /// </summary>
+    [SugarColumn(ColumnDescription = "上传省工单编号", ColumnDataType = "varchar(50)")]
+    public string? ProvinceNo { get; set; }
+
+    /// <summary>
+    /// 受理时间
+    /// </summary>
+    [SugarColumn(ColumnDescription = "受理时间", IsNullable = true)]
+    public DateTime? CaseDate { get; set; }
+
+    /// <summary>
+    ///   来源,区分省平台或110等其他平台同步过来的工单
+    /// </summary>
+    public string? Source { get; set; }
+
+    /// <summary>
+    /// 第一次工单同步省平台时间
+    /// </summary>
+    [SugarColumn(ColumnDescription = "第一次工单同步省平台时间", IsNullable = true)]
+    public DateTime? FirstSyncProvinceTime { get; set; }
+
+    /// <summary>
+    /// 工单上传间隔(s)
+    /// </summary>
+    [SugarColumn(ColumnDescription = "工单上传间隔(s)", IsNullable = true)]
+    public double SyncInterval { get; set; } = 0;
+
+    /// <summary>
+    /// 工单是否及时上传
+    /// </summary>
+    [SugarColumn(ColumnDescription = "工单是否及时上传")]
+    public bool? IsTimelyUpload { get; set; } = false;
+
+    /// <summary>
+    /// 同步诉求渠道
+    /// </summary>
+    [SugarColumn(ColumnDescription = "同步诉求渠道")]
+    public string? CaseSource { get; set; }
+
+    /// <summary>
+    /// 同步诉求渠道编码
+    /// </summary>
+    [SugarColumn(ColumnDescription = "同步诉求渠道编码")]
+    public string? CaseSourceCode { get; set; }
+
+    /// <summary>
+    /// 热点Id
+    /// </summary>
+    [SugarColumn(ColumnDescription = "热点Id")]
+    public string? HotspotId { get; set; }
+
+    /// <summary>
+    /// 热点名称
+    /// </summary>
+    [SugarColumn(ColumnDescription = "热点名称")]
+    public string? HotspotName { get; set; }
+
+    /// <summary>
+    /// 热点全称
+    /// </summary>
+    [SugarColumn(ColumnDescription = "热点全称")]
+    public string? HotspotSpliceName { get; set; }
+
+    /// <summary>
+    /// 最新应办结时间
+    /// </summary>
+    [SugarColumn(ColumnDescription = "最新应办结时间", IsNullable = true)]
+    public DateTime? ExpiredTime { get; set; }
+
+    /// <summary>
+    /// 最新工单同步省平台时间
+    /// </summary>
+    [SugarColumn(ColumnDescription = "最新工单同步省平台时间", IsNullable = true)]
+    public DateTime? NewSyncProvinceTime { get; set; }
+
+    /// <summary>
+    /// 第一次结果同步时间	
+    /// </summary>
+    [SugarColumn(ColumnDescription = "第一次结果同步时间", IsNullable = true)]
+    public DateTime? FirstSyncResultTime { get; set; }
+
+    /// <summary>
+    /// 最新结果同步时间	
+    /// </summary>
+    [SugarColumn(ColumnDescription = "最新结果同步时间", IsNullable = true)]
+    public DateTime? NewSyncResultTime { get; set; }
+
+    /// <summary>
+    /// 最新同步答复时间	
+    /// </summary>
+    [SugarColumn(ColumnDescription = "最新同步答复时间", IsNullable = true)]
+    public DateTime? NewSyncResultReplyTime { get; set; }
+
+    /// <summary>
+    /// 第一次评价同步时间	
+    /// </summary>
+    [SugarColumn(ColumnDescription = "第一次评价同步时间", IsNullable = true)]
+    public DateTime? FirstSyncVisitTime { get; set; }
+
+    /// <summary>
+    /// 最新同步评价时间	
+    /// </summary>
+    [SugarColumn(ColumnDescription = "最新同步评价时间", IsNullable = true)]
+    public DateTime? NewSyncVisitTime { get; set; }
+
+    /// <summary>
+    /// 最新评价同步时间	
+    /// </summary>
+    [SugarColumn(ColumnDescription = "最新评价同步时间", IsNullable = true)]
+    public DateTime? NewSyncVisitReplyTime { get; set; }
+
+    /// <summary>
+    /// 第一次工单满意度
+    /// </summary>
+    [SugarColumn(ColumnDescription = "第一次工单满意度", IsNullable = true)]
+    public string? FirstSatisfaction { get; set; }
+
+    /// <summary>
+    /// 最新满意度
+    /// </summary>
+    [SugarColumn(ColumnDescription = "最新满意度", IsNullable = true)]
+    public string? NewSatisfaction { get; set; }
+
+    /// <summary>
+    /// 受理类型名称
+    /// </summary>
+    [SugarColumn(ColumnDescription = "受理类型名称", IsNullable = true)]
+    public string? CaseType { get; set; }
+
+    /// <summary>
+    /// 受理类型Code
+    /// </summary>
+    [SugarColumn(ColumnDescription = "受理类型Code", IsNullable = true)]
+    public string? CaseTypeCode { get; set; }
+
+    /// <summary>
+    /// 办理时长
+    /// </summary>
+    [SugarColumn(ColumnDescription = "办理时长", IsNullable = true)]
+    public double? AllDuration { get; set; } = 0;
+
+    /// <summary>
+    /// 是否为省工单
+    /// </summary>
+    [SugarColumn(ColumnDescription = "是否为省工单")]
+    public bool IsProvince { get; set; } = false;
+
+    /// <summary>
+    /// 是否公开---工单发布的时候选择是否公开
+    /// </summary>
+    [SugarColumn(ColumnDescription = "是否公开---工单发布的时候选择是否公开", IsNullable = true)]
+    public EDsPublishState IsPublish { get; set; } = EDsPublishState.Unpublished;
+
+    /// <summary>
+    ///发布时间
+    /// </summary>
+    [SugarColumn(ColumnDescription = "发布时间", IsNullable = true)]
+    public DateTime? PublishDate { get; set; }
+
+    /// <summary>
+    /// 办理状态--默认办理中,归档的时候更新为办理完成
+    /// </summary>
+    [SugarColumn(ColumnDescription = "办理状态--默认办理中,归档的时候更新为办理完成", IsNullable = true)]
+    public string? HandleState { get; set; } = "办理中";
+
+    /// <summary>
+    /// 实际办理部门名称
+    /// </summary>
+    [SugarColumn(ColumnDescription = "实际办理部门名称", IsNullable = true)]
+    public string? ActualHandleOrgName { get; set; }
+
+    /// <summary>
+    /// 实际办理部门编码
+    /// </summary>
+    [SugarColumn(ColumnDescription = "实际办理部门编码", IsNullable = true)]
+    public string? ActualHandleOrgCode { get; set; }
+
+    /// <summary>
+    /// 实际办理意见
+    /// </summary>
+    [SugarColumn(ColumnDescription = "实际办理意见", IsNullable = true)]
+    public string? ActualOpinion { get; set; }
+
+    /// <summary>
+    /// 办结时间--归档的时间
+    /// </summary>
+    [SugarColumn(ColumnDescription = "办结时间--归档的时间", IsNullable = true)]
+    public DateTime? ActualHandleTime { get; set; }
+
+    /// <summary>
+    /// 整理标题
+    /// </summary>
+    [SugarColumn(ColumnDescription = "整理标题", IsNullable = true)]
+    public string? ArrangeTitle { get; set; }
+
+    /// <summary>
+    /// 整理内容
+    /// </summary>
+    [SugarColumn(ColumnDescription = "整理内容", IsNullable = true, ColumnDataType = "varchar(2000)")]
+    public string? ArrangeContent { get; set; }
+
+    /// <summary>
+    /// 整理结果
+    /// </summary>
+    [SugarColumn(ColumnDescription = "整理结果", IsNullable = true, ColumnDataType = "varchar(2000)")]
+    public string? ArrangeOpinion { get; set; }
+}