Commit a7e5d5de by lcx

修改提取信息

parent f0d17395
...@@ -198,13 +198,13 @@ public ApiResponse TestConnectionCleared([FromRoute] int hospitalconfigId) ...@@ -198,13 +198,13 @@ public ApiResponse TestConnectionCleared([FromRoute] int hospitalconfigId)
/// <summary> /// <summary>
/// 数据提取信息列表 /// 数据提取信息列表
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="hospitalId"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("type")] [HttpGet("type/{hospitalId}")]
public ApiResponse GetExtractTypeAndScript([FromBody] ExTypeRequest request) public ApiResponse GetExtractTypeAndScript([FromRoute] int hospitalId)
{ {
if (request == null) return new ApiResponse(ResponseType.ParameterError, "参数错误"); if (hospitalId == 0) return new ApiResponse(ResponseType.ParameterError, "参数错误");
var list = _preConfigService.GetExtractTypeAndScript(request); var list = _preConfigService.GetExtractTypeAndScript(hospitalId);
return new ApiResponse(ResponseType.OK, list); return new ApiResponse(ResponseType.OK, list);
} }
...@@ -239,7 +239,7 @@ public ApiResponse DeleteExtractTypeAndScript([FromRoute] int typeId, int script ...@@ -239,7 +239,7 @@ public ApiResponse DeleteExtractTypeAndScript([FromRoute] int typeId, int script
} }
/// <summary> /// <summary>
/// 修改提取信息 /// 保存数据
/// </summary> /// </summary>
/// <param name="typeId"></param> /// <param name="typeId"></param>
/// <param name="request"></param> /// <param name="request"></param>
...@@ -255,7 +255,7 @@ public ApiResponse EditExtractTypeAndScript([FromRoute] int typeId, [FromBody] E ...@@ -255,7 +255,7 @@ public ApiResponse EditExtractTypeAndScript([FromRoute] int typeId, [FromBody] E
} }
/// <summary> /// <summary>
/// 检查Sql执行时间 /// 执行Sql
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="request"></param>
/// <returns></returns> /// <returns></returns>
...@@ -294,18 +294,6 @@ public ApiResponse<List<TitleValue<int>>> GetSheettypes() ...@@ -294,18 +294,6 @@ public ApiResponse<List<TitleValue<int>>> GetSheettypes()
} }
/// <summary> /// <summary>
/// 绩效提取类型
/// </summary>
/// <param name="hospitalId"></param>
/// <returns></returns>
[HttpGet("type/{hospitalId}")]
public ApiResponse<List<TitleValue<int>>> GetExTypes([FromRoute] int hospitalId)
{
var list = _preConfigService.GetExTypes(hospitalId);
return new ApiResponse<List<TitleValue<int>>>(ResponseType.OK, list);
}
/// <summary>
/// 医院数据库连接配置 /// 医院数据库连接配置
/// </summary> /// </summary>
/// <param name="hospitalId"></param> /// <param name="hospitalId"></param>
......
...@@ -1382,23 +1382,54 @@ ...@@ -1382,23 +1382,54 @@
<param name="hospitalconfigId"></param> <param name="hospitalconfigId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ExtractController.GetDatatypes"> <member name="M:Performance.Api.Controllers.ExtractController.GetExtractTypeAndScript(System.Int32)">
<summary> <summary>
数据库类型 数据提取信息列表
</summary> </summary>
<param name="hospitalId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ExtractController.GetSheettypes"> <member name="M:Performance.Api.Controllers.ExtractController.GetExtractTypeAndScriptById(System.Int32,System.Int32)">
<summary> <summary>
来源类型 数据提取详情
</summary> </summary>
<param name="typeId"></param>
<param name="scriptId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ExtractController.GetExTypes(System.Int32)"> <member name="M:Performance.Api.Controllers.ExtractController.DeleteExtractTypeAndScript(System.Int32,System.Int32)">
<summary> <summary>
绩效提取类型 删除提取Sql
</summary>
<param name="typeId"></param>
<param name="scriptId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ExtractController.EditExtractTypeAndScript(System.Int32,Performance.DtoModels.ExtractConfigResponse)">
<summary>
修改提取信息
</summary>
<param name="typeId"></param>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ExtractController.CheckExecsqlConsumeTime(Performance.DtoModels.ConsumeTimeRequest)">
<summary>
检查Sql执行时间
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ExtractController.GetDatatypes">
<summary>
数据库类型
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ExtractController.GetSheettypes">
<summary>
来源类型
</summary> </summary>
<param name="hospitalId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ExtractController.GetConfigs(System.Int32)"> <member name="M:Performance.Api.Controllers.ExtractController.GetConfigs(System.Int32)">
......
...@@ -3634,6 +3634,11 @@ ...@@ -3634,6 +3634,11 @@
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.ex_script.Name">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_script.ExecScript"> <member name="P:Performance.EntityModels.ex_script.ExecScript">
<summary> <summary>
执行sql 执行sql
......
...@@ -255,10 +255,14 @@ public AutoMapperConfigs() ...@@ -255,10 +255,14 @@ public AutoMapperConfigs()
CreateMap<ex_type, ExtractConfigResponse>() CreateMap<ex_type, ExtractConfigResponse>()
.ForMember(dest => dest.TypeId, opt => opt.MapFrom(src => src.Id)) .ForMember(dest => dest.TypeId, opt => opt.MapFrom(src => src.Id))
.ForMember(dest => dest.Value, opt => opt.MapFrom(src => src.Id))
.ForMember(dest => dest.Title, opt => opt.MapFrom(src => src.EName))
.ReverseMap(); .ReverseMap();
CreateMap<ex_script, ExtractConfigResponse>() CreateMap<ex_script, ExtractConfigResponse>()
.ForMember(dest => dest.ExScriptId, opt => opt.MapFrom(src => src.Id)) .ForMember(dest => dest.ExScriptId, opt => opt.MapFrom(src => src.Id))
.ForMember(dest => dest.Value, opt => opt.MapFrom(src => src.Id))
.ForMember(dest => dest.Title, opt => opt.MapFrom(src => src.Name))
.ReverseMap(); .ReverseMap();
CreateMap<cof_workitem, WorkItemRequest>() CreateMap<cof_workitem, WorkItemRequest>()
......
namespace Performance.DtoModels
{
public class ExTypeRequest
{
public int HospitalId { get; set; }
public int? SheetType { get; set; }
public string Search { get; set; }
public int PageNumber { get; set; }
public int PageSize { get; set; }
}
}
...@@ -4,22 +4,34 @@ namespace Performance.DtoModels ...@@ -4,22 +4,34 @@ namespace Performance.DtoModels
{ {
public class ExtractConfigResponse public class ExtractConfigResponse
{ {
#region Public
public string Title { get; set; }
public int Value { get; set; }
#endregion
#region Type
public int TypeId { get; set; } public int TypeId { get; set; }
public string EName { get; set; } public string EName { get; set; }
public int Source { get; set; } public int Source { get; set; }
public string SheetType { get; set; }
public string Description { get; set; } public string Description { get; set; }
public decimal TimeConsuming { get; set; } public decimal TimeConsuming { get; set; }
#region Children #endregion
#region Script
public int ExScriptId { get; set; } public int ExScriptId { get; set; }
public string Name { get; set; }
public string ExecScript { get; set; } public string ExecScript { get; set; }
public int ConfigId { get; set; } public int ConfigId { get; set; }
......
...@@ -21,6 +21,11 @@ public class ex_script ...@@ -21,6 +21,11 @@ public class ex_script
public int Id { get; set; } public int Id { get; set; }
/// <summary> /// <summary>
///
/// </summary>
public string Name { get; set; }
/// <summary>
/// 执行sql /// 执行sql
/// </summary> /// </summary>
public string ExecScript { get; set; } public string ExecScript { get; set; }
......
...@@ -151,40 +151,62 @@ public bool TestConnectionCleared(int hospitalconfigId) ...@@ -151,40 +151,62 @@ public bool TestConnectionCleared(int hospitalconfigId)
#region Extract Scripts #region Extract Scripts
public PageList<ExtractConfigResponse> GetExtractTypeAndScript(ExTypeRequest request) public List<ExtractConfigResponse> GetExtractTypeAndScript(int hospitalId)
{ {
var hospital = hospitalRepository.GetEntity(w => w.ID == request.HospitalId); var sheettypes = GetSheettypes();
var hospital = hospitalRepository.GetEntity(w => w.ID == hospitalId);
if (hospital == null) throw new PerformanceException("医院信息错误"); if (hospital == null) throw new PerformanceException("医院信息错误");
var data = extypeRepository.GetPagingData(request.HospitalId, request.SheetType, request.Search, request.PageNumber, request.PageSize); var data = extypeRepository.GetEntities(w => w.HospitalId == hospitalId);
if (data == null || !data.Any()) if (data == null || !data.Any()) return new List<ExtractConfigResponse>();
return new PageList<ExtractConfigResponse>(new List<ExtractConfigResponse>(), 0, request.PageNumber, request.PageSize);
var result = sheettypes.Where(w => data.Select(t => t.Source).Contains(w.Value))?
.Select(t => new ExtractConfigResponse
{
Value = t.Value,
Title = t.Title,
Source = t.Value
}).OrderBy(t => t.Source).ToList();
if (result == null || !result.Any()) return new List<ExtractConfigResponse>();
if (result.Any(t => t.Value == (int)SheetType.Employee)) result.First(w => w.Value == (int)SheetType.Employee).Title = "HRP人员";
var list = mapper.Map<List<ExtractConfigResponse>>(data); var list = mapper.Map<List<ExtractConfigResponse>>(data);
var scripts = exscriptRepository.GetEntities(w => data.Select(x => x.Id).Contains(w.TypeId)) ?? new List<ex_script>(); var scripts = exscriptRepository.GetEntities(w => data.Select(x => x.Id).Contains(w.TypeId)) ?? new List<ex_script>();
var configs = hospitalconfigRepository.GetEntities(w => w.HospitalId == request.HospitalId) ?? new List<sys_hospitalconfig>(); var configs = hospitalconfigRepository.GetEntities(w => w.HospitalId == hospitalId) ?? new List<sys_hospitalconfig>();
var sheettypes = GetSheettypes();
foreach (var item in list) foreach (var source in result)
{ {
item.SheetType = sheettypes.FirstOrDefault(w => w.Value == item.Source)?.Title; var sourcelist = list.Where(w => w.Source == source.Source);
if (sourcelist == null || !sourcelist.Any()) continue;
var itemScripts = scripts.Where(w => w.TypeId == item.TypeId); foreach (var item in sourcelist)
if (itemScripts == null || !itemScripts.Any()) continue; {
var itemScripts = scripts.Where(w => w.TypeId == item.TypeId);
if (itemScripts == null || !itemScripts.Any()) continue;
item.TimeConsuming = itemScripts.Sum(t => t.TimeConsuming); item.TimeConsuming = itemScripts.Sum(t => t.TimeConsuming);
item.Children = mapper.Map<List<ExtractConfigResponse>>(itemScripts); item.Children = mapper.Map<List<ExtractConfigResponse>>(itemScripts);
item.Children.ForEach(x => int index = 1;
{ item.Children.ForEach(x =>
var config = configs.FirstOrDefault(w => w.Id == x.ConfigId); {
if (config != null) var config = configs.FirstOrDefault(w => w.Id == x.ConfigId);
x.ConfigName = string.IsNullOrEmpty(config.ConfigName) ? config.DbSource : config.ConfigName; if (config != null)
}); x.ConfigName = string.IsNullOrEmpty(config.ConfigName) ? config.DbSource : config.ConfigName;
if (string.IsNullOrEmpty(x.Name))
{
x.Title = item.EName + index;
x.Name = item.EName + index;
index++;
}
});
}
source.Children = sourcelist.OrderBy(t => t.Name).ToList();
} }
return result;
return new PageList<ExtractConfigResponse>(list, data.TotalCount, request.PageNumber, request.PageSize);
} }
public ExtractConfigResponse GetExtractTypeAndScriptById(int typeId, int scriptId) public ExtractConfigResponse GetExtractTypeAndScriptById(int typeId, int scriptId)
...@@ -194,13 +216,11 @@ public ExtractConfigResponse GetExtractTypeAndScriptById(int typeId, int scriptI ...@@ -194,13 +216,11 @@ public ExtractConfigResponse GetExtractTypeAndScriptById(int typeId, int scriptI
var data = mapper.Map<ExtractConfigResponse>(type); var data = mapper.Map<ExtractConfigResponse>(type);
var sheettypes = GetSheettypes();
data.SheetType = sheettypes.FirstOrDefault(w => w.Value == data.Source)?.Title;
var script = exscriptRepository.GetEntity(w => w.TypeId == typeId && w.Id == scriptId) ?? new ex_script(); var script = exscriptRepository.GetEntity(w => w.TypeId == typeId && w.Id == scriptId) ?? new ex_script();
if (script != null) if (script != null)
{ {
data.ExScriptId = script.Id; data.ExScriptId = script.Id;
data.Name = script.Name;
data.ExecScript = script.ExecScript; data.ExecScript = script.ExecScript;
data.ConfigId = script.ConfigId; data.ConfigId = script.ConfigId;
data.ConfigName = hospitalconfigRepository.GetEntity(w => w.Id == script.ConfigId)?.ConfigName; data.ConfigName = hospitalconfigRepository.GetEntity(w => w.Id == script.ConfigId)?.ConfigName;
...@@ -240,6 +260,14 @@ public bool EditExtractTypeAndScript(int hospitalId, ExtractConfigResponse reque ...@@ -240,6 +260,14 @@ public bool EditExtractTypeAndScript(int hospitalId, ExtractConfigResponse reque
{ {
if (request == null) throw new ArgumentNullException(nameof(request)); if (request == null) throw new ArgumentNullException(nameof(request));
if (string.IsNullOrEmpty(request.EName)) throw new PerformanceException("费用名称不可为空");
var sheettypes = GetSheettypes();
if (!sheettypes.Any(w => w.Value == request.Source)) throw new PerformanceException("暂不支持该类型");
var type = extypeRepository.GetEntity(w => w.EName == request.EName && w.Id != request.TypeId);
if (type != null) throw new PerformanceException("费用名称重复");
if (request.TypeId == 0) if (request.TypeId == 0)
{ {
var entity = mapper.Map<ex_type>(request); var entity = mapper.Map<ex_type>(request);
...@@ -250,6 +278,7 @@ public bool EditExtractTypeAndScript(int hospitalId, ExtractConfigResponse reque ...@@ -250,6 +278,7 @@ public bool EditExtractTypeAndScript(int hospitalId, ExtractConfigResponse reque
{ {
var script = new ex_script var script = new ex_script
{ {
Name = request.Name,
ExecScript = request.ExecScript, ExecScript = request.ExecScript,
ConfigId = request.ConfigId, ConfigId = request.ConfigId,
IsEnable = request.IsEnable, IsEnable = request.IsEnable,
...@@ -271,6 +300,7 @@ public bool EditExtractTypeAndScript(int hospitalId, ExtractConfigResponse reque ...@@ -271,6 +300,7 @@ public bool EditExtractTypeAndScript(int hospitalId, ExtractConfigResponse reque
var script = exscriptRepository.GetEntity(w => w.Id == request.ExScriptId); var script = exscriptRepository.GetEntity(w => w.Id == request.ExScriptId);
if (script != null) if (script != null)
{ {
script.Name = request.Name;
script.ExecScript = request.ExecScript; script.ExecScript = request.ExecScript;
script.ConfigId = request.ConfigId; script.ConfigId = request.ConfigId;
script.IsEnable = request.IsEnable; script.IsEnable = request.IsEnable;
...@@ -281,6 +311,7 @@ public bool EditExtractTypeAndScript(int hospitalId, ExtractConfigResponse reque ...@@ -281,6 +311,7 @@ public bool EditExtractTypeAndScript(int hospitalId, ExtractConfigResponse reque
{ {
var script = new ex_script var script = new ex_script
{ {
Name = request.Name,
ExecScript = request.ExecScript, ExecScript = request.ExecScript,
ConfigId = request.ConfigId, ConfigId = request.ConfigId,
IsEnable = request.IsEnable, IsEnable = request.IsEnable,
...@@ -392,8 +423,8 @@ public List<TitleValue<int>> GetSheettypes() ...@@ -392,8 +423,8 @@ public List<TitleValue<int>> GetSheettypes()
var showItems = new int[] var showItems = new int[]
{ {
(int)SheetType.Employee, (int)SheetType.Employee,
(int)SheetType.OtherIncome,
(int)SheetType.Income, (int)SheetType.Income,
(int)SheetType.OtherIncome,
(int)SheetType.Expend, (int)SheetType.Expend,
(int)SheetType.Workload, (int)SheetType.Workload,
(int)SheetType.SpecialUnit, (int)SheetType.SpecialUnit,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment