tangjiang 4 meses atrás
pai
commit
36865f2fec

+ 38 - 11
src/DataSharing.Police110/DCJT110/DcjtService.cs

@@ -1,5 +1,6 @@
 using DataSharing.RawData;
 using Hotline.Share.Dtos.Order;
+using Hotline.Share.Dtos.Snapshot;
 using Hotline.Share.Enums.DataSharing;
 using MapsterMapper;
 using Microsoft.Extensions.Logging;
@@ -44,11 +45,19 @@ namespace DataSharing.Police110.DCJT110
         /// </summary>
         /// <param name="orderDto"></param>
         /// <returns></returns>
-        public async Task InitPoliceSendChainAlarmAsync(OrderDto orderDto, CancellationToken cancellationToken)
+        public async Task InitPoliceSendChainAlarmAsync(Hotline.Share.Dtos.Order.OrderDto orderDto, CancellationToken cancellationToken)
         {
             var areaCodeDefu = _sharingConfigurationManager.GetCityCode();
             var config = _sharingConfigurationManager.GetZiGongConfig().PoliceDCJT;
-            var registerNo = string.IsNullOrEmpty(orderDto.AcceptorId) == true ? "1001" : orderDto.AcceptorId.Substring(orderDto.AcceptorId.Length - 12);
+            var registerNo = "10001";
+            if (!string.IsNullOrEmpty(orderDto.AcceptorStaffNo))
+                registerNo = orderDto.AcceptorStaffNo;
+            else
+            {
+                if (!string.IsNullOrEmpty(orderDto.AcceptorId))
+                    registerNo = orderDto.AcceptorId.Substring(orderDto.AcceptorId.Length - 12);
+            }
+            //  var registerNo = string.IsNullOrEmpty(orderDto.AcceptorId) == true ? "1001" : orderDto.AcceptorId.Substring(orderDto.AcceptorId.Length - 12);
             var Content = orderDto.Content.Length > 1900 ? orderDto.Content.Substring(0, 1900) : orderDto.Content;
             DsPoliceSendChainAlarmDcjt policeSend = new()
             {
@@ -112,7 +121,19 @@ namespace DataSharing.Police110.DCJT110
         {
             var data = await _policeSendChainDealDcjtRepository.GetAsync(p => p.OrderId == dto.Order.Id && p.DisposalType == (int)EDsDisposalType.OrderFiled, cancellationToken);
             var actualOpinion = dto.Order.ActualOpinion.Length > 1500 ? dto.Order.ActualOpinion.Substring(0, 1500) : dto.Order.ActualOpinion;
-            var feedbackPersonNumber = string.IsNullOrEmpty(dto.Order.AcceptorId) == true ? "1001" : dto.Order.AcceptorId.Substring(dto.Order.AcceptorId.Length - 12);
+            var feedbackPersonNumber = "10001";
+            if (!string.IsNullOrEmpty(dto.Order.AcceptorStaffNo))
+                feedbackPersonNumber = dto.Order.AcceptorStaffNo;
+            else
+            {
+                if (!string.IsNullOrEmpty(dto.Order.AcceptorId))
+                    feedbackPersonNumber = dto.Order.AcceptorId.Substring(dto.Order.AcceptorId.Length - 12);
+            }
+            //var feedbackPersonNumber = string.IsNullOrEmpty(dto.Order.AcceptorId) == true ? "1001" : dto.Order.AcceptorId.Substring(dto.Order.AcceptorId.Length - 12);
+            var actualHandleOrgCode = "001";
+            if (!string.IsNullOrEmpty(dto.Order.ActualHandleOrgCode))
+                actualHandleOrgCode = dto.Order.ActualHandleOrgCode.Length > 12 ? dto.Order.ActualHandleOrgCode.Substring(0, 12) : dto.Order.ActualHandleOrgCode;
+
             if (data == null)
             {
                 data = new()
@@ -123,7 +144,7 @@ namespace DataSharing.Police110.DCJT110
                     ResultDescription = actualOpinion,
                     FeedbackPersonNumber = feedbackPersonNumber,
                     FeedbackPersonName = dto.Order.ActualHandlerName,
-                    FeedbackUnitCode = dto.Order.ActualHandleOrgCode,
+                    FeedbackUnitCode = actualHandleOrgCode,
                     FeedbackUnitName = dto.Order.ActualHandleOrgName,
                     WarehousingTime = DateTime.Now,
                     DisposalType = 1,
@@ -139,7 +160,7 @@ namespace DataSharing.Police110.DCJT110
                 data.ResultDescription = actualOpinion;
                 data.FeedbackPersonNumber = feedbackPersonNumber;
                 data.FeedbackPersonName = dto.Order.ActualHandlerName;
-                data.FeedbackUnitCode = dto.Order.ActualHandleOrgCode;
+                data.FeedbackUnitCode = actualHandleOrgCode;
                 data.FeedbackUnitName = dto.Order.ActualHandleOrgName;
                 data.WarehousingTime = DateTime.Now;
                 await _policeSendChainDealDcjtRepository.UpdateAsync(data, cancellationToken);
@@ -152,18 +173,19 @@ namespace DataSharing.Police110.DCJT110
         /// <param name="orderDto"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
-        public async Task ReturnPoliceAsync(OrderDto orderDto, CancellationToken cancellationToken)
+        public async Task ReturnPoliceAsync(Hotline.Share.Dtos.Order.OrderDto orderDto, CancellationToken cancellationToken)
         {
             var checkData = await _policeSendChainDealDcjtRepository.AnyAsync(p => p.AlarmReceiptNumber == orderDto.ExternalId && p.DisposalType == (int)EDsDisposalType.Return, cancellationToken);
             if (!checkData)
             {
+                var actualOpinion = orderDto.ActualOpinion.Length > 100 ? orderDto.ActualOpinion.Substring(0, 80) : orderDto.ActualOpinion;
                 var dataPolice = new DsPoliceSendChainDealDcjt()
                 {
                     OrderId = orderDto.Id,
                     AlarmReceiptNumber = orderDto.ExternalId,
                     ReturnName = orderDto.ActualHandlerName,
                     ReturnUnit = orderDto.ActualHandleOrgName,
-                    ReturnOpinion = orderDto.ActualOpinion,
+                    ReturnOpinion = actualOpinion,
                     ReturnTime = orderDto.ActualHandleTime,
                     WarehousingTime = DateTime.Now,
                     DisposalType = 2
@@ -187,14 +209,19 @@ namespace DataSharing.Police110.DCJT110
                 _ => "2",
             };
             var checkData = await _policeSendChainDealDcjtRepository.GetAsync(p => p.AlarmReceiptNumber == dto.Order.ExternalId && p.DisposalType == (int)EDsDisposalType.Visit, cancellationToken);
+            string visitRemark = "默认评价";
+            if (!string.IsNullOrEmpty(dto.VisitRemark))
+            {
+                visitRemark = visitRemark.Length > 140 ? dto.VisitRemark.Substring(0, 140) : dto.VisitRemark;
+            }
             if (checkData == null)
             {
                 checkData = new()
                 {
                     AlarmReceiptNumber = dto?.Order?.ExternalId,
                     RevisitTime = dto.VisitTime,
-                    CheckingContent = dto.VisitRemark,
-                    VisitContent = dto.VisitRemark,
+                    CheckingContent = visitRemark,
+                    VisitContent = visitRemark,
                     VisitResult = VisitResult,
                     DisposalType = 3
                 };
@@ -204,8 +231,8 @@ namespace DataSharing.Police110.DCJT110
             {
                 checkData.AlarmReceiptNumber = dto?.Order?.ExternalId;
                 checkData.RevisitTime = dto.VisitTime;
-                checkData.CheckingContent = dto.VisitRemark;
-                checkData.VisitContent = dto.VisitRemark;
+                checkData.CheckingContent = visitRemark;
+                checkData.VisitContent = visitRemark;
                 checkData.VisitResult = VisitResult;
                 await _policeSendChainDealDcjtRepository.UpdateAsync(checkData, cancellationToken);
             }

+ 23 - 5
src/DataSharing.Police110/DaoShu110/DaoShuService.cs

@@ -54,8 +54,15 @@ namespace DataSharing.Police110.DaoShu110
             ConfigurationPoliceDS config = new();
             if (_sharingConfigurationManager.IsCity(ConfigurationConsts.YiBin))
                 config = _sharingConfigurationManager.GetYiBinConfig().PoliceDS;
-
-            var registerNo = string.IsNullOrEmpty(orderDto.AcceptorId) == true ? "1001" : orderDto.AcceptorId.Substring(orderDto.AcceptorId.Length - 6);
+            var registerNo = "10001";
+            if (!string.IsNullOrEmpty(orderDto.AcceptorStaffNo))
+                registerNo = orderDto.AcceptorStaffNo;
+            else
+            {
+                if (!string.IsNullOrEmpty(orderDto.AcceptorId))
+                    registerNo = orderDto.AcceptorId.Substring(orderDto.AcceptorId.Length - 6);
+            }
+            //  var registerNo = string.IsNullOrEmpty(orderDto.AcceptorId) == true ? "1001" : orderDto.AcceptorId.Substring(orderDto.AcceptorId.Length - 6);
             var Content = orderDto.Content.Length > 290 ? orderDto.Content.Substring(0, 290) : orderDto.Content;
             DsPoliceSendChainAlarmDs policeSend = new()
             {
@@ -111,7 +118,18 @@ namespace DataSharing.Police110.DaoShu110
         {
             var data = await _policeSendChainDealDsRepository.GetAsync(p => p.OrderId == dto.Order.Id && p.DisposalType == (int)EDsDisposalType.OrderFiled, cancellationToken);
             var actualOpinion = dto.Order.ActualOpinion.Length > 300 ? dto.Order.ActualOpinion.Substring(0, 280) : dto.Order.ActualOpinion;
-            var feedbackPersonNumber = string.IsNullOrEmpty(dto.Order.AcceptorId) == true ? "1001" : dto.Order.AcceptorId.Substring(dto.Order.AcceptorId.Length - 6);
+            var feedbackPersonNumber = "10001";
+            if (!string.IsNullOrEmpty(dto.Order.AcceptorStaffNo))
+                feedbackPersonNumber = dto.Order.AcceptorStaffNo;
+            else
+            {
+                if (!string.IsNullOrEmpty(dto.Order.AcceptorId))
+                    feedbackPersonNumber = dto.Order.AcceptorId.Substring(dto.Order.AcceptorId.Length - 12);
+            }
+            //var feedbackPersonNumber = string.IsNullOrEmpty(dto.Order.AcceptorId) == true ? "1001" : dto.Order.AcceptorId.Substring(dto.Order.AcceptorId.Length - 12);
+            var actualHandleOrgCode = "001";
+            if (!string.IsNullOrEmpty(dto.Order.ActualHandleOrgCode))
+                actualHandleOrgCode = dto.Order.ActualHandleOrgCode.Length > 12 ? dto.Order.ActualHandleOrgCode.Substring(0, 12) : dto.Order.ActualHandleOrgCode;
             if (data == null)
             {
                 data = new()
@@ -122,7 +140,7 @@ namespace DataSharing.Police110.DaoShu110
                     ResultDescription = actualOpinion,
                     FeedbackPersonNumber = feedbackPersonNumber,
                     FeedbackPersonName = dto.Order.ActualHandlerName,
-                    FeedbackUnitCode = dto.Order.ActualHandleOrgCode,
+                    FeedbackUnitCode = actualHandleOrgCode,
                     FeedbackUnitName = dto.Order.ActualHandleOrgName,
                     WarehousingTime = DateTime.Now,
                     DisposalType = 1,
@@ -138,7 +156,7 @@ namespace DataSharing.Police110.DaoShu110
                 data.ResultDescription = actualOpinion;
                 data.FeedbackPersonNumber = feedbackPersonNumber;
                 data.FeedbackPersonName = dto.Order.ActualHandlerName;
-                data.FeedbackUnitCode = dto.Order.ActualHandleOrgCode;
+                data.FeedbackUnitCode = actualHandleOrgCode;
                 data.FeedbackUnitName = dto.Order.ActualHandleOrgName;
                 data.WarehousingTime = DateTime.Now;
                 await _policeSendChainDealDsRepository.UpdateAsync(data, cancellationToken);