TANG JIANG 1 年之前
父節點
當前提交
96c1713997

+ 50 - 1
src/Sharing.Api/ProvinceService.cs

@@ -1,6 +1,8 @@
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Enums.Order;
 using MapsterMapper;
+using Sharing.DaoShu110;
+using Sharing.DaoShu110.Dtos;
 using Sharing.Province.HuiJu.Send;
 using XF.Domain.Cache;
 using XF.Domain.Dependency;
@@ -16,6 +18,7 @@ namespace Sharing.Api
         private readonly ITypedCache<CacheOrderNO> _cacheOrderNo;
         private readonly ISubmitCaseInfoRepository _submitCaseInfoRepository;
         private readonly IMapper _mapper;
+        private readonly IPoliceSendChainAlarmDsRepository _policeSendChainAlarmDsRepository;
 
         /// <summary>
         /// 
@@ -23,11 +26,13 @@ namespace Sharing.Api
         /// <param name="cacheOrderNo"></param>
         /// <param name="submitCaseInfoRepository"></param>
         /// <param name="mapper"></param>
-        public ProvinceService(ITypedCache<CacheOrderNO> cacheOrderNo, ISubmitCaseInfoRepository submitCaseInfoRepository, IMapper mapper)
+        /// <param name="policeSendChainAlarmDsRepository"></param>
+        public ProvinceService(ITypedCache<CacheOrderNO> cacheOrderNo, ISubmitCaseInfoRepository submitCaseInfoRepository, IMapper mapper, IPoliceSendChainAlarmDsRepository policeSendChainAlarmDsRepository)
         {
             _cacheOrderNo = cacheOrderNo;
             _submitCaseInfoRepository = submitCaseInfoRepository;
             _mapper = mapper;
+            _policeSendChainAlarmDsRepository = policeSendChainAlarmDsRepository;
         }
 
         /// <summary>
@@ -164,9 +169,53 @@ namespace Sharing.Api
             }
 
             submitCaseInfo.Id = await _submitCaseInfoRepository.AddAsync(submitCaseInfo);
+
+            //需要判断是否需要往110推送
+            //写入110本地数据库
+            await InitPoliceSendChainAlarmDs(dto, submitCaseInfo.CaseAddress);
             return submitCaseInfo;
         }
 
+        /// <summary>
+        /// 组装110数据
+        /// </summary>
+        /// <param name="orderDto"></param>
+        /// <param name="CaseAddress"></param>
+        /// <returns></returns>
+        private async Task InitPoliceSendChainAlarmDs(OrderDto orderDto, string CaseAddress)
+        {
+            string SerialNumber = $"{orderDto.AreaCode}{orderDto.No}{"12345"}{DateTime.Now.Millisecond.ToString("00000")}";
+            PoliceSendChainAlarmDs policeSend = new PoliceSendChainAlarmDs
+            {
+                SerialNumber = SerialNumber,
+                AlarmReceiptNumber = SerialNumber,
+                RegisterNo = orderDto.EmployeeStaffNo,
+                CallPoliceNumber = orderDto.FromPhone,
+                CallPoliceName = orderDto.FromName,
+                PhoneNumber = orderDto.Contact,
+                CallPoliceContent = orderDto.Content,
+                PoliceTypeCode = "",
+                PoliceTypeName = "",
+                JurisdictionalUnitCode = "511500000000",
+                JurisdictionalUnitName = "宜宾市公安局",
+                JurisdictionalUnitNumber = "0831110",
+                AlarmReceivingUnitCode = "",
+                AlarmReceivingUnitName = "",
+                CallPoliceTime = Convert.ToDateTime(orderDto.CreationTime),
+                PushTime = DateTime.Now,
+                AlarmReceptionType = "0",
+                AreaCode = orderDto.AreaCode,
+                CallPoliceAddress = CaseAddress,
+                OrderId = orderDto.Id
+            };
+            //查询是否有此工单,如果没有新增此工单
+            var data = await _policeSendChainAlarmDsRepository.GetAsync(p => p.OrderId == orderDto.Id);
+            if (data == null)
+            {
+                await _policeSendChainAlarmDsRepository.AddAsync(policeSend);
+            }
+        }
+
         #region 私有方法
 
         #region 生成省编号

+ 34 - 6
src/Sharing.DaoShu110/Controllers/PoliceDSController.cs

@@ -1,10 +1,12 @@
 using DotNetCore.CAP;
+using Hotline.Share.Dtos.Order;
 using MapsterMapper;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using Sharing.DaoShu110.Dtos;
 using Sharing.DaoShu110.Extensions;
+using Sharing.Province.HuiJu.Send;
 using Sharing.Province.XieTong.Knowledge;
 using Sharing.WebCore;
 using System.Net;
@@ -45,7 +47,7 @@ namespace Sharing.DaoShu110.Controllers
             _knowledgeRawDataRepository = knowledgeRawDataRepository;
         }
 
-        #region receive-工单受理
+        #region receive-工单受理-已完成
 
         /// <summary>
         /// 工单受理
@@ -88,9 +90,9 @@ namespace Sharing.DaoShu110.Controllers
                     #region 数据验证
                     //数据验证
                     string strResult = chainAlarm.Validate();
-                    if (CComm.IsDate(chainAlarm.CallPoliceTime.ToString()) == false)
+                    if (!CComm.IsDate(chainAlarm.CallPoliceTime.ToString()))
                         strResult = "【报警时间】不是日期格式 yyyy-MM-dd HH:mm:ss";
-                    if (CComm.IsDate(chainAlarm.PushTime.ToString()) == false)
+                    if (!CComm.IsDate(chainAlarm.PushTime.ToString()))
                         strResult = "【推送时间】不是日期格式 yyyy-MM-dd HH:mm:ss";
 
                     #endregion
@@ -102,6 +104,9 @@ namespace Sharing.DaoShu110.Controllers
                         var data = _mapper.Map<PoliceReceiveChainAlarmDs>(chainAlarm);
                         if (!string.IsNullOrEmpty(await _policeReceiveChainAlarmDsRepository.AddAsync(data)))
                         {
+                            //推送到本地业务系统
+                            await InitOrder(data);
+
                             result.rcode = 0;
                             result.rmsg = "调用成功";
                         }
@@ -247,7 +252,7 @@ namespace Sharing.DaoShu110.Controllers
 
         #endregion
 
-        #region send-工单受理
+        #region send-工单受理-已完成
 
         /// <summary>
         /// 工单受理
@@ -423,7 +428,7 @@ namespace Sharing.DaoShu110.Controllers
 
         #endregion
 
-        #region send-知识库列表
+        #region send-知识库列表-已完成
 
         /// <summary>
         /// 查询知识库列表
@@ -516,7 +521,7 @@ namespace Sharing.DaoShu110.Controllers
 
         #endregion
 
-        #region send-知识库内容
+        #region send-知识库内容-已完成
 
         /// <summary>
         /// 查询知识库内容
@@ -584,5 +589,28 @@ namespace Sharing.DaoShu110.Controllers
         }
 
         #endregion
+
+        /// <summary>
+        /// 组装业务系统工单数据
+        /// </summary>
+        /// <param name="policeReceive"></param>
+        /// <returns></returns>
+        private async Task InitOrder(PoliceReceiveChainAlarmDs policeReceive)
+        {
+            //组装业务系统工单数据
+            OrderDto orderDto = new OrderDto
+            {
+                // orderDto. SerialNumber = policeReceive.SerialNumber;
+                EmployeeStaffNo = policeReceive.RegisterNo,
+                FromPhone = policeReceive.CallPoliceNumber,
+                FromName = policeReceive.CallPoliceName,
+                Contact = policeReceive.PhoneNumber,
+                Content = policeReceive.CallPoliceContent,
+                CreationTime = policeReceive.CallPoliceTime.ToString(),
+                AreaCode = policeReceive.AreaCode,
+                Street = policeReceive.CallPoliceAddress
+            };
+            await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderReceiveCaseInfo, orderDto, cancellationToken: HttpContext.RequestAborted);
+        }
     }
 }

+ 12 - 0
src/Sharing/DaoShu110/IPoliceReceiveChainAlarmDsService.cs

@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Sharing.DaoShu110
+{
+    public interface IPoliceReceiveChainAlarmDsService
+    {
+    }
+}

+ 31 - 0
src/Sharing/DaoShu110/PoliceReceiveChainAlarmDsService.cs

@@ -0,0 +1,31 @@
+using MapsterMapper;
+using Sharing.DaoShu110.Dtos;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using XF.Domain.Dependency;
+
+namespace Sharing.DaoShu110
+{
+    public class PoliceReceiveChainAlarmDsService : IPoliceReceiveChainAlarmDsService, IScopeDependency
+    {
+
+        private readonly IPoliceReceiveChainAlarmDsRepository _policeReceiveChainAlarmDsRepository;
+        private readonly IMapper _mapper;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="mapper"></param>
+        /// <param name="policeReceiveChainAlarmDsRepository"></param>
+        public PoliceReceiveChainAlarmDsService(IMapper mapper,IPoliceReceiveChainAlarmDsRepository policeReceiveChainAlarmDsRepository)
+        {
+            _policeReceiveChainAlarmDsRepository = policeReceiveChainAlarmDsRepository;
+            _mapper = mapper;
+        }
+
+        
+    }
+}

+ 6 - 0
src/Sharing/DaoShu110/PoliceSendChainAlarmDs.cs

@@ -123,5 +123,11 @@ namespace Sharing.DaoShu110.Dtos
         /// </summary>
         [SugarColumn(ColumnDescription = "行政区划代码", ColumnDataType = "varchar(50)")]
         public string AreaCode { get; set; }
+
+        /// <summary>
+        /// 工单编号
+        /// </summary>
+        [SugarColumn(ColumnDescription = "工单编号", ColumnDataType = "varchar(50)")]
+        public string OrderId { get; set; }
     }
 }