Эх сурвалжийг харах

第三方厂商数据推送记录

jeremy 8 сар өмнө
parent
commit
587886b5ca

+ 1 - 0
src/VitalMixtureService/DBService/DBAutoMapperProfile.cs

@@ -347,6 +347,7 @@ namespace VitalServer
             CreateMap<PopulationFinishStatisticsEntity, PopulationFinishStatisticsDTO>().ReverseMap();
 			
             CreateMap<FacturyUserDTO, FacturyUserEntity>().ReverseMap();
+            CreateMap<FacturyPostHistoryDTO, FacturyPostHistoryEntity>().ReverseMap();
 		}
 	}
 }

+ 67 - 0
src/VitalMixtureService/DBService/Entities/FacturyPostHistoryEntity.cs

@@ -0,0 +1,67 @@
+namespace VitalService.Entities
+{
+    public class FacturyPostHistoryEntity : BaseEntity
+    {
+        /// <summary>
+        /// 厂商标识
+        /// </summary>
+        /// <value></value>
+        public string FacturyUniqueCode { get; set; }
+
+        /// <summary>
+        /// 厂商接口地址
+        /// </summary>
+        /// <value></value>
+        public string FacturyUrl { get; set; }
+
+        /// <summary>
+        /// 病人身份证
+        /// </summary>
+        /// <value></value>
+        public string IDCardNo { get; set; }
+
+        /// <summary>
+        /// 病人姓名
+        /// </summary>
+        /// <value></value>
+        public string PatientName { get; set; }
+
+        /// <summary>
+        /// 接口类型
+        /// </summary>
+        /// <value></value>
+        public int ApiType { get; set; }
+
+        /// <summary>
+        /// 状态 1:待发送;2:发送成功;3:发送失败
+        /// </summary>
+        /// <value></value>
+        public int Status { get; set; }
+
+        /// <summary>
+        /// 发送时间
+        /// </summary>
+        /// <value></value>
+        public DateTime PostTime { get; set; }
+
+        /// <summary>
+        /// 请求头部信息
+        /// </summary>
+        /// <value></value>
+        public Dictionary<string, string> Headers { get; set; }
+
+        /// <summary>
+        /// 请求内容
+        /// </summary>
+        /// <value></value>
+        public string Content { get; set; }
+
+        /// <summary>
+        /// 响应内容
+        /// </summary>
+        /// <value></value>
+        public string Result { get; set; }
+
+
+    }
+}

+ 12 - 0
src/VitalMixtureService/DBService/Repositories/FacturyPostHistoryDBRepository.cs

@@ -0,0 +1,12 @@
+using VitalService.Entities;
+
+namespace VitalService.Repositories
+{
+    public class FacturyPostHistoryDBRepository : SimpleDBRepository<FacturyPostHistoryEntity>
+    {
+        public FacturyPostHistoryDBRepository() : base("FacturyPostHistory")
+        {
+           
+        }
+    }
+}

+ 115 - 0
src/VitalMixtureService/DBService/Service/FacturyPostHistoryDBService.cs

@@ -0,0 +1,115 @@
+using MongoDB.Driver;
+using VitalService.Entities;
+using WingServerCommon.Mapper;
+using VitalService.Request;
+using WingInterfaceLibrary.Request.DBVitalRequest;
+using WingInterfaceLibrary.DTO.Vital;
+using WingInterfaceLibrary.Request;
+using WingInterfaceLibrary.Interface.DBVitalInterface;
+
+namespace VitalService.Service
+{
+    /// <summary>
+    /// 第三方厂商数据推送记录
+    /// </summary>
+    public partial class VitalDatabaseService : IVitalFacturyPostHistoryDBService
+    {
+        /// <summary>
+        /// 创建数据
+        /// </summary>
+        /// <param name="request">创建请求</param>
+        /// <returns></returns>
+        public async Task<string> CreateFacturyPostHistoryDBAsync(CreateFacturyPostHistoryDBRequest request)
+        {
+            var entity = new FacturyPostHistoryEntity
+            {
+                FacturyUniqueCode = request.FacturyUniqueCode,
+                FacturyType = request.FacturyType,
+                FacturyCode = request.FacturyCode,
+                FacturyName = request.FacturyName,
+                FatherCode = request.FatherCode ?? string.Empty,
+                FacturyData = request.FacturyData ?? new Dictionary<string, string>(),
+            };
+            return await _facturyPostHistoryDBRepository.InsertOneAsync(entity);
+        }
+
+        /// <summary>
+        /// 更新数据
+        /// </summary>
+        /// <param name="request">更新请求</param>
+        /// <returns></returns>
+        public async Task<bool> UpdateFacturyPostHistoryDBAsync(UpdateFacturyPostHistoryDBRequest request)
+        {
+            var code = request.Code;
+            if (!string.IsNullOrWhiteSpace(code))
+            {
+                var entity = await _facturyPostHistoryDBRepository.FindOneAsync(Builders<FacturyPostHistoryEntity>.Filter.Eq(f => f.Code, code));
+                if (entity != null && !entity.IsDelete)
+                {
+                    var filter = Builders<FacturyPostHistoryEntity>.Filter.Eq(f => f.Code, code);
+                    var update = Builders<FacturyPostHistoryEntity>.Update
+                        .Set(f => f.FacturyType, request.FacturyType)
+                        .Set(f => f.FacturyCode, request.FacturyCode)
+                        .Set(f => f.FacturyName, request.FacturyName)
+                        .Set(f => f.FatherCode, request.FatherCode ?? string.Empty)
+                        .Set(f => f.FacturyData, request.FacturyData)
+                        .Set(f => f.UpdateTime, DateTime.UtcNow);
+                    return await _facturyPostHistoryDBRepository.UpdateOneAsync(filter, update) > 0;
+                }
+            }
+            return false;
+        }
+
+        /// <summary>
+        /// 根据编码获取第三方厂商数据推送记录
+        /// </summary>
+        /// <param name="request">数据编码</param>
+        /// <returns></returns>
+        public async Task<FacturyPostHistoryDTO> GetFacturyPostHistoryDBAsync(GetFacturyPostHistoryDBRequest request)
+        {
+            var filter = Builders<FacturyPostHistoryEntity>.Filter.Eq(f => f.Code, request.Code);
+            var result = await _facturyPostHistoryDBRepository.FindOneAsync(filter);
+            return result.MappingTo<FacturyPostHistoryDTO>();
+        }
+
+        /// <summary>
+        /// 分页获取第三方厂商数据推送记录
+        /// </summary>
+        /// <param name="request">分页请求</param>
+        /// <returns></returns>
+        public async Task<PageCollection<FacturyPostHistoryDTO>> GetFacturyPostHistoryByPageDBAsync(GetFacturyPostHistoryByPageDBRequest request)
+        {
+            var filter = await _facturyPostHistoryDBRepository.GetPageFilter(request);
+            filter &= Builders<FacturyPostHistoryEntity>.Filter.Where(f => f.FacturyCode == "");
+            var pageFilter = new DBPageRequest<FacturyPostHistoryEntity>
+            {
+                PageIndex = request.PageIndex,
+                PageSize = request.PageSize,
+                Filter = filter,
+                Sort = Builders<FacturyPostHistoryEntity>.Sort.Descending(x => x.CreateTime)
+            };
+            var result = await _facturyPostHistoryDBRepository.GetPages(pageFilter);
+            return result.MappingTo<PageCollection<FacturyPostHistoryDTO>>();
+        }
+
+        /// <summary>
+        /// 获取所有未推送数据记录
+        /// </summary>
+        /// <param name="request">分页请求</param>
+        /// <returns></returns>
+        public async Task<List<FacturyPostHistoryDTO>> GetNonPostHistoryDBAsync(GetNonPostHistoryDBRequest request)
+        {
+            return null;
+        }
+
+        /// <summary>
+        /// 删除数据
+        /// </summary>
+        /// <param name="request">数据编码</param>
+        /// <returns></returns>
+        public async Task<bool> RemoveFacturyPostHistoryDBAsync(RemoveFacturyPostHistoryDBRequest request)
+        {
+            return await _facturyPostHistoryDBRepository.DeleteOneAsync("Code", request.Code);
+        }
+    }
+}

+ 2 - 0
src/VitalMixtureService/DBService/Service/VNoteDatabaseService.cs

@@ -80,6 +80,7 @@ namespace VitalService.Service
         private TownHealthPlatformStatisticsDBRepository _townHealthPlatformStatisticsDBRepository { get; set; }
         private VillageHealthPlatformStatisticsDBRepository _villageHealthPlatformStatisticsDBRepository { get; set; }
         private FacturyUserDBRepository _facturyUserDBRepository { get; set; }
+        private FacturyPostHistoryDBRepository _facturyPostHistoryDBRepository { get; set; }
         private JobQueue _jobQueueStatistic;
         private JobQueue _jobQueueReportSend;
         private JobQueue _jobQueueDataPulling;
@@ -134,6 +135,7 @@ namespace VitalService.Service
             _townHealthPlatformStatisticsDBRepository = new TownHealthPlatformStatisticsDBRepository();
             _villageHealthPlatformStatisticsDBRepository = new VillageHealthPlatformStatisticsDBRepository();
             _facturyUserDBRepository = new FacturyUserDBRepository();
+            _facturyPostHistoryDBRepository = new FacturyPostHistoryDBRepository();
             var initDBFlagFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "initDB.flag");
             var isInit = File.Exists(initDBFlagFile);
             if (!isInit)