Browse Source

Merge branch 'dev' of http://110.188.24.182:10023/Fengwo/hotline into dev

田爽 9 months ago
parent
commit
9718455303

+ 81 - 15
src/Hotline.Api/Controllers/JudicialManagementOrdersController.cs

@@ -1,11 +1,9 @@
 using Hotline.Api.Filter;
-using Hotline.Application.FlowEngine;
 using Hotline.Caching.Interfaces;
 using Hotline.File;
 using Hotline.JudicialManagement;
 using Hotline.Orders;
 using Hotline.Repository.SqlSugar.Extensions;
-using Hotline.Repository.SqlSugar.Orders;
 using Hotline.Settings;
 using Hotline.Settings.TimeLimits;
 using Hotline.Share.Dtos;
@@ -19,7 +17,6 @@ using SqlSugar;
 using XF.Domain.Authentications;
 using XF.Domain.Exceptions;
 using XF.Domain.Repository;
-using XF.Utility.EnumExtensions;
 
 namespace Hotline.Api.Controllers
 {
@@ -28,25 +25,21 @@ namespace Hotline.Api.Controllers
         private readonly IRepository<JudicialComplaintsEventType> _judicialComplaintsEventTypeRepository;
         private readonly IRepository<EnforcementHotspot> _enforcementHotspotRepository;
         private readonly IMapper _mapper;
-        private readonly IWorkflowApplication _workflowApplication;
         private readonly ISystemDicDataCacheManager _sysDicDataCacheManager;
         private readonly IRepository<SystemOrganize> _systemOrganizeRepository;
         private readonly ISessionContext _sessionContext;
         private readonly IRepository<SystemArea> _systemAreaRepository;
-        //  private readonly IOrderRepository _orderRepository;
         private readonly IRepository<JudicialManagementOrders> _judicialManagementOrdersRepository;
         private readonly IFileRepository _fileRepository;
         private readonly IJudicialManagementOrdersService _judicialManagementOrdersService;
         private readonly IRepository<EnforcementOrdersHandler> _enforcementOrdersHandlerRepository;
 
         /// <summary>
-        ///
+        /// 
         /// </summary>
-        /// <param name="enforcementOrdersRepository"></param>
         /// <param name="judicialComplaintsEventTypeRepository"></param>
         /// <param name="enforcementHotspotRepository"></param>
         /// <param name="mapper"></param>
-        /// <param name="workflowApplication"></param>
         /// <param name="sysDicDataCacheManager"></param>
         /// <param name="systemOrganizeRepository"></param>
         /// <param name="sessionContext"></param>
@@ -59,7 +52,6 @@ namespace Hotline.Api.Controllers
          IRepository<JudicialComplaintsEventType> judicialComplaintsEventTypeRepository,
          IRepository<EnforcementHotspot> enforcementHotspotRepository,
          IMapper mapper,
-         IWorkflowApplication workflowApplication,
          ISystemDicDataCacheManager sysDicDataCacheManager,
          IRepository<SystemOrganize> systemOrganizeRepository,
          ISessionContext sessionContext,
@@ -73,7 +65,6 @@ namespace Hotline.Api.Controllers
             _judicialComplaintsEventTypeRepository = judicialComplaintsEventTypeRepository;
             _enforcementHotspotRepository = enforcementHotspotRepository;
             _mapper = mapper;
-            _workflowApplication = workflowApplication;
             _sysDicDataCacheManager = sysDicDataCacheManager;
             _systemOrganizeRepository = systemOrganizeRepository;
             _sessionContext = sessionContext;
@@ -95,13 +86,28 @@ namespace Hotline.Api.Controllers
         {
             dto.InitAddress();
             var order = _mapper.Map<JudicialManagementOrders>(dto);
-            order.SignerId = _sessionContext.UserId;
-            order.SignerName = _sessionContext.UserName;
             order.InitId();
             if (dto.Files.Any())
                 order.FileJson = await _fileRepository.AddFileAsync(dto.Files, order.Id, "", HttpContext.RequestAborted);
             await _judicialManagementOrdersService.AddAsync(order, true, HttpContext.RequestAborted);
-
+            //处理执法部门
+            if (dto.EnforcementOrdersHandler != null && dto.EnforcementOrdersHandler.Any())
+            {
+                List<EnforcementOrdersHandler> enforcementOrdersHandlers = new();
+                foreach (var item in dto.EnforcementOrdersHandler)
+                {
+                    enforcementOrdersHandlers.Add(new EnforcementOrdersHandler
+                    {
+                        OrderId = order.Id,
+                        OrderNo = order.No,
+                        OrderSoure = EOrderSoure.Enforcement,
+                        OrgCode = item.Value,
+                        OrgName = item.Key
+                    });
+                }
+                if (enforcementOrdersHandlers != null && enforcementOrdersHandlers.Any())
+                    await _enforcementOrdersHandlerRepository.AddRangeAsync(enforcementOrdersHandlers, HttpContext.RequestAborted);
+            }
             return order.Id;
         }
 
@@ -122,6 +128,30 @@ namespace Hotline.Api.Controllers
             _mapper.Map(dto, order);
             if (dto.Files.Any())
                 order.FileJson = await _fileRepository.AddFileAsync(dto.Files, order.Id, "", HttpContext.RequestAborted);
+            await _judicialManagementOrdersRepository.UpdateAsync(order, HttpContext.RequestAborted);
+
+            //处理执法部门
+            if (dto.EnforcementOrdersHandler != null && dto.EnforcementOrdersHandler.Any())
+            {
+                List<EnforcementOrdersHandler> enforcementOrdersHandlers = new();
+                foreach (var item in dto.EnforcementOrdersHandler)
+                {
+                    enforcementOrdersHandlers.Add(new EnforcementOrdersHandler
+                    {
+                        OrderId = order.Id,
+                        OrderNo = order.No,
+                        OrderSoure = EOrderSoure.Enforcement,
+                        OrgCode = item.Value,
+                        OrgName = item.Key
+                    });
+                    if (enforcementOrdersHandlers != null && enforcementOrdersHandlers.Any())
+                    {
+                        await _enforcementOrdersHandlerRepository.RemoveAsync(p => p.OrderId == order.Id, false, HttpContext.RequestAborted);
+                        await _enforcementOrdersHandlerRepository.AddRangeAsync(enforcementOrdersHandlers, HttpContext.RequestAborted);
+                    }
+
+                }
+            }
         }
 
         /// <summary>
@@ -183,6 +213,29 @@ namespace Hotline.Api.Controllers
             await _judicialManagementOrdersRepository.UpdateAsync(order, HttpContext.RequestAborted);
         }
 
+        /// <summary>
+        /// 查询工单详情
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpGet("{id}")]
+        public async Task<JudicialManagementOrderDto> Get(string id)
+        {
+            var order = await _judicialManagementOrdersRepository.Queryable().FirstAsync(d => d.Id == id);
+            if (order == null)
+                return new();
+            var dto = _mapper.Map<JudicialManagementOrderDto>(order);
+
+            if (dto.FileJson != null && dto.FileJson.Any())
+            {
+                var ids = order.FileJson.Select(x => x.Id).ToList();
+                var files = await _fileRepository.GetFilesAsync(ids, HttpContext.RequestAborted);
+                //x.Classify == "办理上传" &&
+                dto.Files = files.Where(x => string.IsNullOrEmpty(x.FlowKey)).ToList();
+            }
+            return dto;
+        }
+
         /// <summary>
         /// 删除工单
         /// </summary>
@@ -259,10 +312,23 @@ namespace Hotline.Api.Controllers
                 if (tempOrg != null)
                     OrgsOptions.Add(tempOrg);
             }
+            var listChannelOptions = _sysDicDataCacheManager.GetSysDicDataCache(TimeLimitBaseDataConsts.SourceChannel).ToList();
+            var ChannelOptions = new List<Kv>();
+            foreach (var item in listChannelOptions)
+            {
+                ChannelOptions.Add(new Kv { Key = item.DicDataName, Value = item.DicDataValue });
+            }
+            ChannelOptions.Add(new Kv { Key = "自定义", Value = "ZDY" });
+            var listAcceptTypeOptions = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.AcceptType).ToList();
+            var AcceptTypeOptions = new List<Kv>();
+            foreach (var item in listAcceptTypeOptions)
+            {
+                AcceptTypeOptions.Add(new Kv { Key = item.DicDataName, Value = item.DicDataValue });
+            }
             var rsp = new
             {
-                AcceptTypeOptions = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.AcceptType),
-                ChannelOptions = _sysDicDataCacheManager.GetSysDicDataCache(TimeLimitBaseDataConsts.SourceChannel),
+                AcceptTypeOptions,
+                ChannelOptions,
                 OrgsOptions,
                 EnforcementHotspot = await _enforcementHotspotRepository.Queryable().ToTreeAsync(it => it.Children, it => it.ParentId, null, it => it.Id)
             };

+ 2 - 2
src/Hotline.Api/config/appsettings.Development.json

@@ -28,7 +28,7 @@
     }
   },
   "ConnectionStrings": {
-    "Hotline": "PORT=5432;DATABASE=hotline;HOST=110.188.24.182;PASSWORD=fengwo11!!;USER ID=dev;"
+    "Hotline": "PORT=5432;DATABASE=hotline_dev;HOST=110.188.24.182;PASSWORD=fengwo11!!;USER ID=dev;"
     //"Redis": "110.188.24.182:50179",
     //"MongoDB": "mongodb://192.168.100.121:27017",
     //"Wex": "server=222.212.82.225;Port=4509;Database=fs_kft;Uid=root;Pwd=Wex@12345;"
@@ -37,7 +37,7 @@
     "Host": "110.188.24.182",
     "Port": 50179,
     "Password": "fengwo123!$!$",
-    "Database": 3 //release:3, dev:5
+    "Database": 5 //release:3, dev:5
   },
   "Swagger": true,
   "Cors": {

+ 65 - 28
src/Hotline.Application/JudicialManagement/EnforcementApplication.cs

@@ -1,6 +1,10 @@
-using Hotline.Caching.Interfaces;
+using Consul;
+using Hotline.Caching.Interfaces;
 using Hotline.JudicialManagement;
 using Hotline.Settings;
+using Hotline.Share.Dtos;
+using Hotline.Share.Enums.JudicialManagement;
+using MapsterMapper;
 using SqlSugar;
 using XF.Domain.Constants;
 using XF.Domain.Dependency;
@@ -15,6 +19,9 @@ namespace Hotline.Application.JudicialManagement
         private readonly IRepository<EnforcementHotspot> _enforcementHotspotRepository;
         private readonly ISystemDicDataCacheManager _sysDicDataCacheManager;
         private readonly ISystemSettingCacheManager _systemSettingCacheManager;
+        private readonly IRepository<JudicialManagementOrders> _judicialManagementOrdersRepository;
+        private readonly IRepository<EnforcementOrdersHandler> _enforcementOrdersHandlerRepository;
+        private readonly IMapper _mapper;
 
 
         /// <summary>
@@ -25,17 +32,26 @@ namespace Hotline.Application.JudicialManagement
         /// <param name="enforcementHotspotRepository"></param>
         /// <param name="sysDicDataCacheManager"></param>
         /// <param name="systemSettingCacheManager"></param>
+        /// <param name="judicialManagementOrdersRepository"></param>
+        /// <param name="enforcementOrdersHandlerRepository"></param>
+        /// <param name="mapper"></param>
         public EnforcementApplication(IRepository<EnforcementOrderHander> enforcementOrderHanderRepository,
            IRepository<EnforcementOrders> enforcementOrdersRepository,
-          IRepository<EnforcementHotspot> enforcementHotspotRepository,
-        ISystemDicDataCacheManager sysDicDataCacheManager,
-       ISystemSettingCacheManager systemSettingCacheManager)
+           IRepository<EnforcementHotspot> enforcementHotspotRepository,
+           ISystemDicDataCacheManager sysDicDataCacheManager,
+           ISystemSettingCacheManager systemSettingCacheManager,
+           IRepository<JudicialManagementOrders> judicialManagementOrdersRepository,
+           IRepository<EnforcementOrdersHandler> enforcementOrdersHandlerRepository,
+           IMapper mapper)
         {
             _enforcementOrderHanderRepository = enforcementOrderHanderRepository;
             _enforcementOrdersRepository = enforcementOrdersRepository;
             _enforcementHotspotRepository = enforcementHotspotRepository;
             _sysDicDataCacheManager = sysDicDataCacheManager;
             _systemSettingCacheManager = systemSettingCacheManager;
+            _judicialManagementOrdersRepository = judicialManagementOrdersRepository;
+            _enforcementOrdersHandlerRepository = enforcementOrdersHandlerRepository;
+            _mapper = mapper;
         }
 
         /// <summary>
@@ -47,7 +63,7 @@ namespace Hotline.Application.JudicialManagement
         public async Task AddEnforcementOrderAsync(Hotline.Orders.Order order, CancellationToken cancellationToken)
         {
             //排除咨询件
-            if (order.AcceptTypeCode == "10")
+            if (order.AcceptTypeCode != "35")
                 return;
 
             //如果没开启则不处理
@@ -73,23 +89,32 @@ namespace Hotline.Application.JudicialManagement
             //需要添加
             if (isAdd)
             {
-                var orderData = await _enforcementOrdersRepository.GetAsync(p => p.Id == order.Id, cancellationToken);
+
+                var orderData = await _judicialManagementOrdersRepository.GetAsync(p => p.Id == order.Id, cancellationToken);
                 if (orderData == null)
                 {
-                    EnforcementOrders enforcementOrders = new EnforcementOrders()
+                    //处理工单
+                    _mapper.Map(order, orderData);
+                    orderData.IsEnforcementOrder = order.IsEnforcementOrder.HasValue ? order.IsEnforcementOrder.Value : false;
+                    orderData.IsTheClueTrue = null;
+                    orderData.IsPassTheBuckOrder = false;
+                    List<Kv> kvs = new List<Kv>
                     {
-                        Id = order.Id,
-                        OrderNo = order.No,
-                        IsEnforcementOrder = order.IsEnforcementOrder.HasValue ? order.IsEnforcementOrder.Value : false,
-                        IsTheClueTrue = null,
-                        IsPassTheBuckOrder = false
+                        new Kv { Key = order.OrgLevelOneName, Value = order.OrgLevelOneCode }
                     };
+                    orderData.EnforcementOrdersHandler = kvs;
+                    await _judicialManagementOrdersRepository.AddAsync(orderData, cancellationToken);
 
-                    await _enforcementOrdersRepository.AddAsync(enforcementOrders, cancellationToken);
-                }
-                else
-                {
-                    //是否需要更新数据
+                    //处理部门
+                    EnforcementOrdersHandler enforcementOrdersHandler = new EnforcementOrdersHandler()
+                    {
+                        OrderId = order.Id,
+                        OrderNo = order.No,
+                        OrderSoure = EOrderSoure.Hotline,
+                        OrgCode = order.OrgLevelOneCode,
+                        OrgName = order.OrgLevelOneName
+                    };
+                    await _enforcementOrdersHandlerRepository.AddAsync(enforcementOrdersHandler, cancellationToken);
                 }
             }
 
@@ -109,7 +134,7 @@ namespace Hotline.Application.JudicialManagement
                 return;
 
             //排除咨询件
-            if (order.AcceptTypeCode == "10")
+            if (order.AcceptTypeCode != "35")
                 return;
 
             //如果没开启则不处理
@@ -153,19 +178,32 @@ namespace Hotline.Application.JudicialManagement
                 if (enforcementOrder.HandleNum >= CountNum)
                 {
                     //查找工单数据
-                    var orderData = await _enforcementOrdersRepository.GetAsync(p => p.Id == order.Id, cancellationToken);
+                    var orderData = await _judicialManagementOrdersRepository.GetAsync(p => p.Id == order.Id, cancellationToken);
                     if (orderData == null)
                     {
-                        //没有工单数据,直接写入
-                        EnforcementOrders enforcementOrders = new()
+                        //处理工单
+                        _mapper.Map(order, orderData);
+                        orderData.IsEnforcementOrder = order.IsEnforcementOrder.HasValue ? order.IsEnforcementOrder.Value : false;
+                        orderData.IsTheClueTrue = null;
+                        orderData.IsPassTheBuckOrder = true;
+                        List<Kv> kvs = new List<Kv>
                         {
-                            Id = order.Id,
+                            new Kv { Key = order.OrgLevelOneName, Value = order.OrgLevelOneCode }
+                        };
+                        orderData.EnforcementOrdersHandler = kvs;
+                        await _judicialManagementOrdersRepository.AddAsync(orderData, cancellationToken);
+
+                        //处理部门
+                        EnforcementOrdersHandler enforcementOrdersHandler = new EnforcementOrdersHandler()
+                        {
+                            OrderId = order.Id,
                             OrderNo = order.No,
-                            IsEnforcementOrder = order.IsEnforcementOrder.HasValue ? order.IsEnforcementOrder.Value : false,
-                            IsTheClueTrue = null,
-                            IsPassTheBuckOrder = true
+                            OrderSoure = EOrderSoure.Hotline,
+                            OrgCode = order.OrgLevelOneCode,
+                            OrgName = order.OrgLevelOneName
                         };
-                        await _enforcementOrdersRepository.AddAsync(orderData, cancellationToken);
+                        await _enforcementOrdersHandlerRepository.AddAsync(enforcementOrdersHandler, cancellationToken);
+
                     }
                     else
                     {
@@ -173,12 +211,11 @@ namespace Hotline.Application.JudicialManagement
                         if (orderData.IsPassTheBuckOrder != true)
                         {
                             orderData.IsPassTheBuckOrder = true;
-                            await _enforcementOrdersRepository.UpdateAsync(orderData, cancellationToken);
+                            await _judicialManagementOrdersRepository.UpdateAsync(orderData, cancellationToken);
                         }
                     }
                 }
             }
-
         }
     }
 }

+ 1 - 2
src/Hotline.Share/Dtos/JudicialManagement/EnforcementOrderListDto.cs

@@ -1,5 +1,4 @@
 using Hotline.Share.Enums.Order;
-using XF.Utility.EnumExtensions;
 
 namespace Hotline.Share.Dtos.JudicialManagement
 {
@@ -11,7 +10,7 @@ namespace Hotline.Share.Dtos.JudicialManagement
         public bool IsItCounted { get; set; } = true;
 
         public string Id { get; set; }
-     
+
         /// <summary>
         /// 工单编码(20220101000001)
         /// </summary>

+ 159 - 2
src/Hotline.Share/Dtos/JudicialManagement/JudicialManagementAddOrderDto.cs

@@ -1,12 +1,96 @@
-using Hotline.Share.Dtos.Order;
+using Hotline.Share.Dtos.File;
+using Hotline.Share.Enums.JudicialManagement;
+using Hotline.Share.Enums.Order;
 
 namespace Hotline.Share.Dtos.JudicialManagement
 {
     /// <summary>
     /// 修改
     /// </summary>
-    public class JudicialManagementAddOrderDto : AddOrderDto
+    public class JudicialManagementAddOrderDto: Position
     {
+        /// <summary>
+        /// 来源渠道(电话、网站、APP等)
+        /// </summary>
+        public string? SourceChannel { get; set; }
+
+        public string? SourceChannelCode { get; set; }
+
+        /// <summary>
+        /// 来电号码
+        /// </summary>
+        public string? FromPhone { get; set; }
+
+        /// <summary>
+        /// 转接号码(转接来源)
+        /// </summary>
+        public string? TransferPhone { get; set; }
+
+        /// <summary>
+        /// 来电/信人姓名
+        /// </summary>
+        public string? FromName { get; set; }
+
+        /// <summary>
+        /// 来电/信人性别
+        /// </summary>
+        public EGender FromGender { get; set; }
+
+        /// <summary>
+        /// 来电/信人身份
+        /// </summary>
+        public EIdentityType? IdentityType { get; set; }
+
+        /// <summary>
+        /// 联系电话
+        /// </summary>
+        public string? Contact { get; set; }
+
+        public string? ContactMask { get; set; }
+
+        /// <summary>
+        /// 受理类型
+        /// </summary>
+        public string? AcceptType { get; set; }
+
+        public string? AcceptTypeCode { get; set; }
+
+        public string Title { get; set; }
+
+        /// <summary>
+        /// 热点
+        /// </summary>
+        public string? HotspotId { get; set; }
+
+        public string? HotspotName { get; set; }
+
+        public string? HotspotSpliceName { get; set; }
+
+        /// <summary>
+        /// 外部数据(为前端提供级联功能)
+        /// </summary>
+        public string? HotspotExternal { get; set; }
+
+        /// <summary>
+        /// 附件列表
+        /// </summary>
+        public List<FileDto> Files { get; set; } = new();
+
+        /// <summary>
+        /// 诉求内容
+        /// </summary>
+        public string Content { get; set; }
+
+        /// <summary>
+        /// 工单来源
+        /// </summary>
+        public EOrderSoure? OrderSoure { get; set; }
+
+        /// <summary>
+        /// 是否行政执法类
+        /// </summary>
+        public bool? IsEnforcementOrder { get; set; }
+
         /// <summary>
         /// 执法部门
         /// </summary>
@@ -20,4 +104,77 @@ namespace Hotline.Share.Dtos.JudicialManagement
     {
         public string Id { get; set; }
     }
+
+    public class JudicialManagementOrderDto : JudicialManagementUpdateOrderDto
+    {
+        /// <summary>
+        /// 是否推诿
+        /// </summary>
+        public bool IsPassTheBuckOrder { get; set; }
+
+        /// <summary>
+        /// 线索是否属实
+        /// </summary>
+        public bool? IsTheClueTrue { get; set; }
+
+        /// <summary>
+        /// 诉事项类型ID
+        /// </summary>
+        public string? EventTypeId { get; set; }
+
+        /// <summary>
+        /// 诉事项类型名称
+        /// </summary>
+        public string? EventTypeName { get; set; }
+
+        /// <summary>
+        /// 诉事项类型名称
+        /// </summary>
+        public string? EventTypeSpliceName { get; set; }
+
+        /// <summary>
+        /// 诉事项类型一级Id
+        /// </summary>
+        public string? EventTypeOneLevelId { get; set; }
+
+        /// <summary>
+        /// 同步省工单编号和省上传下来的工单都用这个字段
+        /// </summary>
+        public string? ProvinceNo { get; set; }
+        /// <summary>
+        /// 市民查询密码
+        /// </summary>
+        public string? Password { get; set; }
+
+        /// <summary>
+        /// 受理人id
+        /// </summary>
+        public string? AcceptorId { get; set; }
+
+        /// <summary>
+        /// 受理人名称
+        /// </summary>
+        public string? AcceptorName { get; set; }
+
+        /// <summary>
+        /// 受理人工号
+        /// </summary>
+        public string? AcceptorStaffNo { get; set; }
+
+        /// <summary>
+        /// 受理人部门编码
+        /// </summary>
+        public string? AcceptorOrgCode { get; set; }
+
+        /// <summary>
+        /// 受理人部门名称
+        /// </summary>
+        public string? AcceptorOrgName { get; set; }
+
+        /// <summary>
+        /// 附件
+        /// </summary>
+        public List<FileDto>? Additions { get; set; } = new();
+        public List<FileJson>? FileJson { get; set; }
+    }
 }

+ 198 - 3
src/Hotline/JudicialManagement/JudicialManagementOrders.cs

@@ -1,12 +1,129 @@
-using Hotline.Orders;
-using Hotline.Share.Dtos;
+using Hotline.Share.Dtos;
+using Hotline.Share.Dtos.File;
 using Hotline.Share.Enums.JudicialManagement;
+using Hotline.Share.Enums.Order;
 using SqlSugar;
+using XF.Domain.Extensions;
+using XF.Domain.Repository;
 
 namespace Hotline.JudicialManagement
 {
-    public class JudicialManagementOrders : Order
+    public class JudicialManagementOrders : PositionEntity
     {
+        /// <summary>
+        /// 来源渠道(电话、网站、APP等)
+        /// </summary>
+        public string? SourceChannel { get; set; }
+
+        public string? SourceChannelCode { get; set; }
+
+        /// <summary>
+        /// 来电号码
+        /// </summary>
+        public string? FromPhone { get; set; }
+
+        /// <summary>
+        /// 转接号码(转接来源)
+        /// </summary>
+        public string? TransferPhone { get; set; }
+
+        /// <summary>
+        /// 来电/信人姓名
+        /// </summary>
+        public string? FromName { get; set; }
+
+        /// <summary>
+        /// 来电/信人性别
+        /// </summary>
+        public EGender FromGender { get; set; }
+
+        /// <summary>
+        /// 来电/信人身份
+        /// </summary>
+        public EIdentityType? IdentityType { get; set; }
+
+        /// <summary>
+        /// 联系电话
+        /// </summary>
+        [SugarColumn(ColumnDescription = "联系电话", IsNullable = true)]
+        public string? Contact { get; set; }
+
+        [SugarColumn(ColumnDescription = "联系电话脱敏", IsNullable = true)]
+        public string? ContactMask { get; set; }
+
+        /// <summary>
+        /// 受理类型
+        /// </summary>
+        public string? AcceptType { get; set; }
+
+        public string? AcceptTypeCode { get; set; }
+
+        public string Title { get; set; }
+
+        /// <summary>
+        /// 热点
+        /// </summary>
+        public string? HotspotId { get; set; }
+
+        public string? HotspotName { get; set; }
+
+        public string? HotspotSpliceName { get; set; }
+
+        /// <summary>
+        /// 外部数据(为前端提供级联功能)
+        /// </summary>
+        public string? HotspotExternal { get; set; }
+
+        /// <summary>
+        /// 附件
+        /// </summary>
+        [SugarColumn(ColumnDataType = "json", IsJson = true)]
+        public List<FileDto>? Additions { get; set; } = new();
+
+        /// <summary>
+        /// 诉求内容
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(8000)")]
+        public string Content { get; set; }
+
+        /// <summary>
+        /// 工单编码(20220101000001)
+        /// </summary>
+        public string? No { get; set; }
+
+        /// <summary>
+        /// 市民查询密码
+        /// </summary>
+        public string? Password { get; set; }
+
+        /// <summary>
+        /// 受理人id
+        /// </summary>
+        public string? AcceptorId { get; set; }
+
+        /// <summary>
+        /// 受理人名称
+        /// </summary>
+        public string? AcceptorName { get; set; }
+
+        /// <summary>
+        /// 受理人工号
+        /// </summary>
+        public string? AcceptorStaffNo { get; set; }
+
+        /// <summary>
+        /// 受理人部门编码
+        /// </summary>
+        public string? AcceptorOrgCode { get; set; }
+
+        /// <summary>
+        /// 受理人部门名称
+        /// </summary>
+        public string? AcceptorOrgName { get; set; }
+
+        [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
+        public List<FileJson>? FileJson { get; set; }
+
         /// <summary>
         /// 是否统计
         /// </summary>
@@ -53,6 +170,84 @@ namespace Hotline.JudicialManagement
         /// </summary>
         public string? EventTypeOneLevelId { get; set; }
 
+        /// <summary>
+        /// 是否行政执法类
+        /// </summary>
+        public bool? IsEnforcementOrder { get; set; }
+
+        /// <summary>
+        /// 同步省工单编号和省上传下来的工单都用这个字段
+        /// </summary>
+        public string? ProvinceNo { get; set; }
+
+        public void Init()
+        {
+            if (!string.IsNullOrEmpty(Contact))
+                ContactMask = Contact.MaskPhoneNumber();
+        }
+
+        public void AutoAccept(string userId, string? userName, string? staffNo)
+        {
+            AcceptorId = userId;
+            AcceptorName = userName;
+            AcceptorStaffNo = staffNo;
+        }
+
+    }
+    public abstract class PositionEntity : FullStateEntity
+    {
+        /// <summary>
+        /// 经度
+        /// </summary>
+        [SugarColumn(ColumnDescription = "经度")]
+        public double? Longitude { get; set; }
+
+        /// <summary>
+        /// 维度
+        /// </summary>
+        [SugarColumn(ColumnDescription = "纬度")]
+        public double? Latitude { get; set; }
+
+        /// <summary>
+        /// 行政区划编码
+        /// </summary>
+        [SugarColumn(ColumnDescription = "行政区划编码")]
+        public string? AreaCode { get; set; }
+
+        /// <summary>
+        /// 省
+        /// </summary>
+        public string? Province { get; set; }
+
+        /// <summary>
+        /// 市
+        /// </summary>
+        public string? City { get; set; }
+
+        /// <summary>
+        /// 区/县
+        /// </summary>
+        public string? County { get; set; }
+
+        /// <summary>
+        /// 乡镇(4级行政区划)
+        /// </summary>
+        public string? Town { get; set; }
+
+        /// <summary>
+        /// 详细街道
+        /// </summary>
+        public string? Street { get; set; }
+
+        /// <summary>
+        /// 行政区划地址
+        /// </summary>
+        public string? Address { get; set; }
+
+        /// <summary>
+        /// 完整地址
+        /// </summary>
+        public string? FullAddress { get; set; }
     }
 
 }

+ 3 - 3
src/Hotline/JudicialManagement/JudicialManagementOrdersService.cs

@@ -5,11 +5,12 @@ using MapsterMapper;
 using Microsoft.Extensions.Logging;
 using XF.Domain.Authentications;
 using XF.Domain.Cache;
+using XF.Domain.Dependency;
 using XF.Domain.Repository;
 
 namespace Hotline.JudicialManagement
 {
-    public class JudicialManagementOrdersService : IJudicialManagementOrdersService
+    public class JudicialManagementOrdersService : IJudicialManagementOrdersService, IScopeDependency
     {
         private readonly ISessionContext _sessionContext;
         private readonly ICapPublisher _capPublisher;
@@ -41,7 +42,6 @@ namespace Hotline.JudicialManagement
             if (autoAccept)
             {
                 order.AutoAccept(_sessionContext.RequiredUserId, _sessionContext.UserName, _sessionContext.StaffNo);
-                order.Sign(_sessionContext.RequiredUserId, _sessionContext.UserName);
             }
             order.Init();
             order.No = GenerateNewOrderNoSF();
@@ -91,7 +91,7 @@ namespace Hotline.JudicialManagement
 
         private string GenerateOrderNo(DateTime today, int count)
         {
-            return $"{today:yyyyMMdd}{count:000000}";
+            return $"{today:yyyyMMdd}{count:000000}SF";
         }
 
     }