tangjiang 4 месяцев назад
Родитель
Сommit
8b5dd20f87

+ 8 - 3
src/DataSharing.Application/Receivers/ProvinceReceiver.cs

@@ -421,11 +421,16 @@ namespace DataSharing.Application.Receivers
             await _provinceService.SubmitVisitInfoDataAsync(dto, cancellationToken);
 
             //组装处理110数据
-            if (dto.Order.Source == ESource.Police110)
-            {
+            if (_sharingConfigurationManager.IsCity(ConfigurationConsts.YiBin) && dto.Order.Source == ESource.Police110)
                 await _policeService.Visit(dto, cancellationToken);
-            }
 
+            //
+            if (_sharingConfigurationManager.IsCity(ConfigurationConsts.ZiGong))
+            {
+                if (dto.Order.ActualHandleOrgCode == _sharingConfigurationManager.GetPoliceOrgCode()
+                    || dto.Order.OrgLevelOneCode == _sharingConfigurationManager.GetPoliceOrgCode() || dto.Order.Source == ESource.Police110)
+                    await _policeService.Visit(dto, cancellationToken);
+            }
         }
 
         /// <summary>

+ 27 - 12
src/DataSharing.Police110/DCJT110/DcjtService.cs

@@ -212,7 +212,18 @@ namespace DataSharing.Police110.DCJT110
                 "4" or "5" => "1",
                 _ => "2",
             };
-            var checkData = await _policeSendChainDealDcjtRepository.GetAsync(p => p.AlarmReceiptNumber == dto.Order.ExternalId && p.DisposalType == "3", cancellationToken);
+            //如果来源是110,直接取工单里面的编号
+            var alarmReceiptNumber = dto.Order.ExternalId;
+            if ( string.IsNullOrEmpty(alarmReceiptNumber))
+            {
+                var checkDataAlarm = await _policeSendChainAlarmDcjtRepository.GetAsync(p => p.OrderId == dto.Order.Id && p.AlarmReceptionType == "0", cancellationToken);
+                if (checkDataAlarm!=null)
+                {
+                    alarmReceiptNumber = checkDataAlarm.AlarmReceiptNumber;
+                }
+            }
+
+            var checkData = await _policeSendChainDealDcjtRepository.GetAsync(p => p.AlarmReceiptNumber == alarmReceiptNumber && p.DisposalType == "3", cancellationToken);
             string visitRemark = "默认评价";
             if (!string.IsNullOrEmpty(dto.VisitRemark))
             {
@@ -223,7 +234,7 @@ namespace DataSharing.Police110.DCJT110
                 checkData = new()
                 {
                     OrderId = dto.Order.Id,
-                    AlarmReceiptNumber = dto?.Order?.ExternalId,
+                    AlarmReceiptNumber = alarmReceiptNumber,
                     RevisitTime = dto.VisitTime,
                     CheckingContent = visitRemark,
                     VisitContent = visitRemark,
@@ -235,7 +246,7 @@ namespace DataSharing.Police110.DCJT110
             }
             else
             {
-                checkData.AlarmReceiptNumber = dto?.Order?.ExternalId;
+                checkData.AlarmReceiptNumber = alarmReceiptNumber;
                 checkData.RevisitTime = dto.VisitTime;
                 checkData.CheckingContent = visitRemark;
                 checkData.VisitContent = visitRemark;
@@ -275,17 +286,21 @@ namespace DataSharing.Police110.DCJT110
         /// <returns></returns>
         public async Task FileEndPoliceAsync(Hotline.Share.Dtos.Order.OrderDto orderDto, CancellationToken cancellationToken)
         {
-            var checkData = await _policeSendChainDealDcjtRepository.AnyAsync(p => p.AlarmReceiptNumber == orderDto.ExternalId && p.DisposalType == "5", cancellationToken);
-            if (!checkData)
+            var checkData = await _policeSendChainAlarmDcjtRepository.GetAsync(p => p.OrderId == orderDto.Id && p.AlarmReceptionType == "0", cancellationToken);
+            if (checkData != null)
             {
-                var dataPolice = new DsPoliceSendChainDealDcjt()
+                var checkDataDeal = await _policeSendChainDealDcjtRepository.AnyAsync(p => p.AlarmReceiptNumber == checkData.AlarmReceiptNumber && p.DisposalType == "5", cancellationToken);
+                if (!checkDataDeal)
                 {
-                    OrderId = orderDto.Id,
-                    AlarmReceiptNumber = orderDto.ExternalId,
-                    DisposalType = "5",
-                    WarehousingTime = DateTime.Now,
-                };
-                await _policeSendChainDealDcjtRepository.AddAsync(dataPolice, cancellationToken);
+                    var dataPolice = new DsPoliceSendChainDealDcjt()
+                    {
+                        OrderId = orderDto.Id,
+                        AlarmReceiptNumber = checkData.AlarmReceiptNumber,
+                        DisposalType = "5",
+                        WarehousingTime = DateTime.Now,
+                    };
+                    await _policeSendChainDealDcjtRepository.AddAsync(dataPolice, cancellationToken);
+                }
             }
         }