浏览代码

修改保存上传附件

tangjiang 9 月之前
父节点
当前提交
934c1fbd3a

+ 27 - 3
src/DataSharing.Host/Controllers/HotlineWebController.cs

@@ -1,5 +1,6 @@
 using DataSharing.FwDataExchange;
 using DataSharing.HotlineWeb;
+using DataSharing.Province;
 using DataSharing.Province.SendTask;
 using DataSharing.Province.SendTask.ProvinceOther;
 using DataSharing.Province.SendTask.SubmitCaseInfo;
@@ -72,6 +73,7 @@ namespace DataSharing.Host.Controllers
         private readonly ISharingConfigurationManager _sharingConfigurationManager;
         private readonly IRepository<UserOperationLog> _userOperationLogRepository;
         private readonly IRepository<SendFwErrorData> _sendFwErrorDataRepository;
+        private readonly IRepository<DsGetCaseMaterialInfo> _getCaseMaterialInfoRepository;
         private const string PublicKey = @"-----BEGIN PUBLIC KEY-----
 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgw+/x6IQPkH0A4eoF63j
 kLThsOXWyNBdcL9LATGy/G1yTHOr1RyKJB//iNug+V8DIoIHuFTlhgLHDbSqxvRW
@@ -145,6 +147,7 @@ jxrWXHbT1FB6DqkdOnBbQqS1Azqz5HxLlSyEK3F60e3SgB5iZsDZ
         /// <param name="sharingConfigurationManager"></param>
         /// <param name="userOperationLogRepository"></param>
         /// <param name="sendFwErrorDataRepository"></param>
+        /// <param name="getCaseMaterialInfoRepository"></param>
         public HotlineWebController(IMapper mapper,
             IMediator mediator,
             ICapPublisher capPublisher,
@@ -177,7 +180,8 @@ jxrWXHbT1FB6DqkdOnBbQqS1Azqz5HxLlSyEK3F60e3SgB5iZsDZ
            FwClient fwClient,
            ISharingConfigurationManager sharingConfigurationManager,
            IRepository<UserOperationLog> userOperationLogRepository,
-           IRepository<SendFwErrorData> sendFwErrorDataRepository)
+           IRepository<SendFwErrorData> sendFwErrorDataRepository,
+           IRepository<DsGetCaseMaterialInfo> getCaseMaterialInfoRepository)
         {
             _mapper = mapper;
             _mediator = mediator;
@@ -212,6 +216,7 @@ jxrWXHbT1FB6DqkdOnBbQqS1Azqz5HxLlSyEK3F60e3SgB5iZsDZ
             _sharingConfigurationManager = sharingConfigurationManager;
             _userOperationLogRepository = userOperationLogRepository;
             _sendFwErrorDataRepository = sendFwErrorDataRepository;
+            _getCaseMaterialInfoRepository = getCaseMaterialInfoRepository;
         }
         #endregion
 
@@ -618,7 +623,7 @@ jxrWXHbT1FB6DqkdOnBbQqS1Azqz5HxLlSyEK3F60e3SgB5iZsDZ
                     PathType = p.PathType,
                     GenerationTime = p.GenerationTime,
                     CreationTime = p.CreationTime,
-                    State=p.State
+                    State = p.State
                 })
                 .MergeTable();
             #endregion
@@ -1198,7 +1203,7 @@ jxrWXHbT1FB6DqkdOnBbQqS1Azqz5HxLlSyEK3F60e3SgB5iZsDZ
             //工单
             var orderRate = await _dsOrderSendRepository.Queryable()
                    .LeftJoin<DsTelCall>((p, o) => p.CallId == o.CallId)
-                    .Where((p, o) => p.CreationTime >=dto. StartTime && p.CreationTime <= dto.EndTime && p.FirstSendProvinceTime >= dto.StartTime && p.FirstSendProvinceTime <= dto.EndTime)
+                    .Where((p, o) => p.CreationTime >= dto.StartTime && p.CreationTime <= dto.EndTime && p.FirstSendProvinceTime >= dto.StartTime && p.FirstSendProvinceTime <= dto.EndTime)
                     .Where((p, o) => p.FirstSendProvinceTime.HasValue && p.StartTime.HasValue)
                     .Select((p, o) => new
                     {
@@ -1526,5 +1531,24 @@ jxrWXHbT1FB6DqkdOnBbQqS1Azqz5HxLlSyEK3F60e3SgB5iZsDZ
         }
 
         #endregion
+
+        /// <summary>
+        /// 查询附件信息
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpGet("getcasematerialinfolist")]
+        [AllowAnonymous]
+        public async Task<PagedDto<DsGetCaseMaterialInfo>> GetCaseMaterialInfoList([FromQuery] QueryCaseMaterialInfoDto dto)
+        {
+            RefAsync<int> total = 0;
+            var items = await _getCaseMaterialInfoRepository.Queryable()
+                .WhereIF(dto.StartTime.HasValue, p => p.CreationTime >= dto.StartTime.Value)
+                .WhereIF(dto.EndTime.HasValue, p => p.CreationTime >= dto.EndTime.Value)
+                .WhereIF(!string.IsNullOrEmpty(dto.CaseSerial), p => p.CaseSerial == dto.CaseSerial)
+                .OrderByDescending(p => p.CreationTime)
+                 .ToPageListAsync(dto.PageIndex, dto.PageSize, total, HttpContext.RequestAborted);
+            return new PagedDto<DsGetCaseMaterialInfo>(total, items);
+        }
     }
 }

+ 10 - 0
src/DataSharing.Share/Dtos/FileJson.cs

@@ -10,6 +10,16 @@
         /// </summary>
         public string Id { get; set; }
 
+        /// <summary>
+        /// 附件名称
+        /// </summary>
+        public string FileName { get; set; }
+
+        /// <summary>
+        /// 附件后缀
+        /// </summary>
+        public string FileType { get; set; }
+
         /// <summary>
         /// 附件Id
         /// </summary>

+ 18 - 0
src/DataSharing.Share/Dtos/HotlineWeb/QuerySendTaskDto.cs

@@ -29,4 +29,22 @@ namespace DataSharing.Share.Dtos.HotlineWeb
         /// </summary>
         public string SelectType { get; set; } = "1";
     }
+
+    public record QueryCaseMaterialInfoDto : PagedKeywordRequest
+    {
+        /// <summary>
+        /// 开始时间
+        /// </summary>
+        public DateTime? StartTime { get; set; }
+
+        /// <summary>
+        /// 结束时间
+        /// </summary>
+        public DateTime? EndTime { get; set; }
+
+        /// <summary>
+        /// 省工单编号
+        /// </summary>
+       public string? CaseSerial { get; set; }
+    }
 }

+ 1 - 1
src/DataSharing/DataSharing.csproj

@@ -8,7 +8,7 @@
 
   <ItemGroup>
     <PackageReference Include="FluentValidation" Version="11.6.0" />
-    <PackageReference Include="Hotline.Share" Version="1.0.85" />
+    <PackageReference Include="Hotline.Share" Version="1.0.86" />
     <PackageReference Include="Portable.BouncyCastle" Version="1.9.0" />
     <PackageReference Include="Quartz.Jobs" Version="3.8.0" />
     <PackageReference Include="RestSharp" Version="110.2.0" />

+ 22 - 5
src/DataSharing/Province/ProvinceService.cs

@@ -52,6 +52,7 @@ namespace DataSharing.Province
         private readonly IRepository<DsOrderVisitSend> _dsOrderVisitSendRepository;
         private readonly ISharingConfigurationManager _sharingConfigurationManager;
         private readonly IInitPushDataService _initPushDataService;
+        private readonly IRepository<DsGetCaseMaterialInfo> _getCaseMaterialInfoRepository;
 
         /// <summary>
         /// 
@@ -72,6 +73,7 @@ namespace DataSharing.Province
         /// <param name="dsOrderVisitSendRepository"></param>
         /// <param name="sharingConfigurationManager"></param>
         /// <param name="initPushDataService"></param>
+        /// <param name="getCaseMaterialInfoRepository"></param>
         public ProvinceService(IMapper mapper,
             ILogger<ProvinceService> logger,
              IRepository<DsOrder> dsOrderRepository,
@@ -87,7 +89,8 @@ namespace DataSharing.Province
              ITypedCache<ConfigurationInformationDto> configurationInformationCache,
              IRepository<DsOrderVisitSend> dsOrderVisitSendRepository,
              ISharingConfigurationManager sharingConfigurationManager,
-             IInitPushDataService initPushDataService)
+             IInitPushDataService initPushDataService,
+             IRepository<DsGetCaseMaterialInfo> getCaseMaterialInfoRepository)
         {
             _mapper = mapper;
             _logger = logger;
@@ -105,6 +108,7 @@ namespace DataSharing.Province
             _dsOrderVisitSendRepository = dsOrderVisitSendRepository;
             _sharingConfigurationManager = sharingConfigurationManager;
             _initPushDataService = initPushDataService;
+            _getCaseMaterialInfoRepository = getCaseMaterialInfoRepository;
         }
         #endregion
 
@@ -1022,7 +1026,7 @@ namespace DataSharing.Province
                     ERealCommunicationMode.Locale => "20",
                     _ => "40",
                 };
-                data.CliengGuid =dto.Id;
+                data.CliengGuid = dto.Id;
 
                 //中国政府网的数据处理
                 if (dto.Order.ProvinceNo.Contains("ZGZFW"))
@@ -1814,11 +1818,24 @@ namespace DataSharing.Province
 
                 foreach (var item in fileJson)
                 {
-                    List<FileJson> fileJsons = new() { _mapper.Map<FileJson>(item) };
+                    // 新增文件到列表
+                    var fileData = new DsGetCaseMaterialInfo()
+                    {
+                        CaseSerial = caseSerial,
+                        MaterialType = materialInfo.MaterialType,
+                        CliengGuid = materialInfo.CliengGuid,
+                        AreaCode = materialInfo.AreaCode,
+                        FileName = item.FileName,
+                        Type = item.FileType,
+                        Additions = item.Id,
+                        Path = item.Path,
+                        Direction = "1",
+                        SyncState = "1"
+                    };
+                    await _getCaseMaterialInfoRepository.AddAsync(fileData, cancellationToken);
 
+                    List<FileJson> fileJsons = new() { _mapper.Map<FileJson>(item) };
                     //待推送数据写入待推送表
-                    // await _initPushDataService.InitPushDataAsync("GetCaseMaterialInfo", "get_case_material_info", jsonData, materialInfo.CaseSerial, pathType: EPathType.File, fileJson: fileJsons, cancellationToken: cancellationToken);
-
                     await _initPushDataService.InitDsSendTaskProvinceOther("GetCaseMaterialInfo", "get_case_material_info", materialInfo.CaseSerial,
                          jsonData, JsonSerializer.Serialize(materialInfo, ProvinceJsonSerializerOptions.UnStandardDatetimeJsonOptions), pathType: EPathType.File,
                         fileJson: fileJsons, cancellationToken: cancellationToken);