TANG JIANG 2 年 前
コミット
6756fc3056

+ 153 - 4
src/Sharing.Api/Controllers/HotlineMessageReceiveController.cs

@@ -1,5 +1,6 @@
 using DotNetCore.CAP;
 using Hotline.Share.Dtos.Order;
+using Hotline.Share.Enums.Order;
 using MapsterMapper;
 using MediatR;
 using Microsoft.AspNetCore.Mvc;
@@ -8,6 +9,7 @@ using Sharing.Notifications.HuiJu;
 using Sharing.Notifications.XieTong;
 using Sharing.Orders;
 using Sharing.Province.Dtos.XieTong.Send;
+using Sharing.Province.HuiJu.Send;
 using Sharing.Province.XieTong.Send;
 
 namespace Sharing.Api.Controllers
@@ -29,6 +31,7 @@ namespace Sharing.Api.Controllers
         private readonly IDelayCaseInfoSendRepository _delayCaseInfoSendRepository;
         private readonly ISendSuperviseProcessInfoRepository _sendSuperviseProcessInfoRepository;
         private readonly ISendSuperviseResultInfoRepository _sendSuperviseResultInfoRepository;
+        private readonly ISubmitCaseInfoRepository _submitCaseInfoRepository;
 
         /// <summary>
         /// 
@@ -42,11 +45,14 @@ namespace Sharing.Api.Controllers
         /// <param name="getVisitInfoReceiveRepository"></param>
         /// <param name="getCaseBackApplyRepository"></param>
         /// <param name="delayCaseInfoSendRepository"></param>
+        /// <param name="sendSuperviseProcessInfoRepository"></param>
+        /// <param name="sendSuperviseResultInfoRepository"></param>
+        /// <param name="submitCaseInfoRepository"></param>
         public HotlineMessageReceiveController(IDataOrderRepository dataOrderRepository, IMediator mediator, ILogger<HotlineMsgReceiver> logger, IMapper mapper
             , IGetCaseResultReceiveRepository getCaseResultReceiveRepository, IGetCaseProcessReceiveRepository getCaseProcessReceiveRepository
             , IGetVisitInfoReceiveRepository getVisitInfoReceiveRepository, IGetCaseBackApplyRepository getCaseBackApplyRepository
             , IDelayCaseInfoSendRepository delayCaseInfoSendRepository, ISendSuperviseProcessInfoRepository sendSuperviseProcessInfoRepository
-            , ISendSuperviseResultInfoRepository sendSuperviseResultInfoRepository)
+            , ISendSuperviseResultInfoRepository sendSuperviseResultInfoRepository, ISubmitCaseInfoRepository submitCaseInfoRepository)
         {
             _dataOrderRepository = dataOrderRepository;
             _mediator = mediator;
@@ -59,6 +65,7 @@ namespace Sharing.Api.Controllers
             _delayCaseInfoSendRepository = delayCaseInfoSendRepository;
             _sendSuperviseProcessInfoRepository = sendSuperviseProcessInfoRepository;
             _sendSuperviseResultInfoRepository = sendSuperviseResultInfoRepository;
+            _submitCaseInfoRepository = submitCaseInfoRepository;
         }
         #endregion
 
@@ -200,7 +207,7 @@ namespace Sharing.Api.Controllers
         #endregion
 
         /// <summary>
-        /// 
+        /// 服务工单受理
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
@@ -208,9 +215,151 @@ namespace Sharing.Api.Controllers
         [CapSubscribe(Hotline.Share.Mq.EventNames.HotlineOrderCreated)]
         public async Task ReceiveOrderCreated(OrderDto dto)
         {
-            await _dataOrderRepository.AddAsync(new DataOrder(), HttpContext.RequestAborted);
+            //处理数据
+            SubmitCaseInfo submitCaseInfo = new SubmitCaseInfo
+            {
+                OrderID = dto.Id,
+                No = dto.No,
+                CaseTitle = dto.Title,
+                CaseRegister = dto.EmployeeName,
+                CaseRegisterNo = dto.EmployeeStaffNo,
+                CaseDate = Convert.ToDateTime(dto.CreationTime),
+                PhoneNumber = dto.Contact,
+                AppLicantName = dto.FromName,
+                AppLicantAge = dto.AgeRangeCode,
+                AppLicantId = dto.LicenceNo,
+                CaseAccord = "",
+                CaseContent = dto.Content,
+                CaseProcessType = "",
+                CaseIsPublic = "",
+                CaseIsSecrect = "",
+                CaseIsVisit = "",
+                CaseValid = "",
+                TSigntTmeBf = null,
+                TfdBackTimeBf = null,
+                TBackTimeBf = null,
+                RelateSerial = "",
+                CaseLngLat = "",
+                CaseEmotion = "",
+                CaseAddress = "",
+                EventDate = "",
+                CaseGoal = "",
+                ThemeSerial = "",
+                AdviseType = "",
+                AdviseDept = "",
+                ComplainType = "",
+                ComplainDept = "",
+                PushType = "",
+
+            };
+
+            //处理诉求渠道
+            switch (dto.Channel)
+            {
+                case EChannel.Phone:
+                    submitCaseInfo.CaseSource = "RGDH";
+                    break;
+                case EChannel.WxOfficial:
+                    submitCaseInfo.CaseSource = "WX";
+                    break;
+                case EChannel.Web:
+                    submitCaseInfo.CaseSource = "WZ";
+                    break;
+                case EChannel.App:
+                    submitCaseInfo.CaseSource = "Ap";
+                    break;
+                case EChannel.WxMiniProgram:
+                    submitCaseInfo.CaseSource = "XCX";
+                    break;
+                default:
+                    break;
+            }
+
+            //处理性别
+            switch (dto.FromGender)
+            {
+                case EGender.Female:
+                    submitCaseInfo.AppLicantSex = "0";
+                    break;
+                case EGender.Male:
+                    submitCaseInfo.AppLicantSex = "1";
+                    break;
+                case EGender.Unknown:
+                    submitCaseInfo.AppLicantSex = "2";
+                    break;
+                default:
+                    break;
+            }
+
+            //处理证件类型
+            switch (dto.LicenceTypeCode)
+            {
+                case "10":
+                    submitCaseInfo.CertifiCateType = "10";
+                    break;
+                case "40":
+                    submitCaseInfo.CertifiCateType = "20";
+                    break;
+                case "55":
+                    submitCaseInfo.CertifiCateType = "30";
+                    break;
+                case "57":
+                    submitCaseInfo.CertifiCateType = "40";
+                    break;
+                default:
+                    submitCaseInfo.CertifiCateType = "50";
+                    break;
+            }
+
+            //处理受理类型
+            switch (dto.AcceptType)
+            {
+                case EAcceptType.Consult:
+                    submitCaseInfo.CaseType = "10";
+                    break;
+                case EAcceptType.Suggest:
+                    submitCaseInfo.CaseType = "15";
+                    break;
+                case EAcceptType.SeekHelp:
+                    submitCaseInfo.CaseType = "20";
+                    break;
+                case EAcceptType.Praise:
+                    submitCaseInfo.CaseType = "25";
+                    break;
+                case EAcceptType.Report:
+                    submitCaseInfo.CaseType = "30";
+                    break;
+                case EAcceptType.Complain:
+                    submitCaseInfo.CaseType = "35";
+                    break;
+                case EAcceptType.Other:
+                    submitCaseInfo.CaseType = "40";
+                    break;
+                default:
+                    break;
+            }
+
+            //处理紧急程度
+            switch (dto.EmergencyLevel)
+            {
+                case EEmergencyLevel.QuiteEmergency:
+                    submitCaseInfo.CaseIsUrgent = "10";
+                    break;
+                case EEmergencyLevel.Emergency:
+                    submitCaseInfo.CaseIsUrgent = "20";
+                    break;
+                default:
+                    submitCaseInfo.CaseIsUrgent = "30";
+                    break;
+            }
+
+
+
+
+
+            submitCaseInfo.Id = await _submitCaseInfoRepository.AddAsync(submitCaseInfo, HttpContext.RequestAborted);
 
-            await _mediator.Publish(new OrderCreatedNotification(new Province.HuiJu.Send.SubmitCaseInfo()));
+            await _mediator.Publish(new OrderCreatedNotification(submitCaseInfo));
         }
 
     }

+ 1 - 1
src/Sharing.Province/Controllers/ReceiveController.cs

@@ -241,7 +241,7 @@ namespace Sharing.Province.Controllers
                     addOrderDto.AcceptType = EAcceptType.Report;
                     break;
                 case "35":
-                    addOrderDto.AcceptType = EAcceptType.Report;
+                    addOrderDto.AcceptType = EAcceptType.Complain;
                     break;
                 case "40":
                     addOrderDto.AcceptType = EAcceptType.Other;

+ 15 - 3
src/Sharing/Province/HuiJu/Send/SubmitCaseInfo.cs

@@ -10,6 +10,18 @@ namespace Sharing.Province.HuiJu.Send
     [Description("服务工单受理")]
     public class SubmitCaseInfo : BaseSendAllResult
     {
+        /// <summary>
+        /// 工单ID
+        /// </summary>
+        [SugarColumn(ColumnDescription = "工单ID", ColumnDataType = "varchar(50)")]
+        public string OrderID { get; set; }
+
+        /// <summary>
+        /// 工单编码(202201010001)
+        /// </summary>
+        [SugarColumn(ColumnDescription = "工单编码", ColumnDataType = "varchar(50)")]
+        public string No { get; set; }
+
         /// <summary>
         /// 服务工单标题
         /// </summary>
@@ -37,7 +49,7 @@ namespace Sharing.Province.HuiJu.Send
         /// <summary>
         /// 诉求渠道
         /// </summary>
-        [SugarColumn(ColumnDescription = "诉求渠道", ColumnDataType = "varchar(10)")]
+        [SugarColumn(ColumnDescription = "诉求渠道", ColumnDataType = "varchar(20)")]
         public string CaseSource { get; set; }
 
         /// <summary>
@@ -151,7 +163,7 @@ namespace Sharing.Province.HuiJu.Send
         /// <summary>
         /// 关联服务工单
         /// </summary>
-        [SugarColumn(ColumnDescription = "关联服务工单", ColumnDataType = "varchar(50)")]
+        [SugarColumn(ColumnDescription = "关联服务工单", ColumnDataType = "varchar(50)",IsNullable =true)]
         public string RelateSerial { get; set; }
 
         /// <summary>
@@ -187,7 +199,7 @@ namespace Sharing.Province.HuiJu.Send
         /// <summary>
         /// 主题工单类型
         /// </summary>
-        [SugarColumn(ColumnDescription = "主题工单类型", ColumnDataType = "varchar(50)", IsNullable = true)]
+        [SugarColumn(ColumnDescription = "主题工单类型", ColumnDataType = "varchar(50)")]
         public string ThemeSerial { get; set; }
 
         /// <summary>