Commit a7e5d5de by lcx

修改提取信息

parent f0d17395
......@@ -198,13 +198,13 @@ public ApiResponse TestConnectionCleared([FromRoute] int hospitalconfigId)
/// <summary>
/// 数据提取信息列表
/// </summary>
/// <param name="request"></param>
/// <param name="hospitalId"></param>
/// <returns></returns>
[HttpGet("type")]
public ApiResponse GetExtractTypeAndScript([FromBody] ExTypeRequest request)
[HttpGet("type/{hospitalId}")]
public ApiResponse GetExtractTypeAndScript([FromRoute] int hospitalId)
{
if (request == null) return new ApiResponse(ResponseType.ParameterError, "参数错误");
var list = _preConfigService.GetExtractTypeAndScript(request);
if (hospitalId == 0) return new ApiResponse(ResponseType.ParameterError, "参数错误");
var list = _preConfigService.GetExtractTypeAndScript(hospitalId);
return new ApiResponse(ResponseType.OK, list);
}
......@@ -239,7 +239,7 @@ public ApiResponse DeleteExtractTypeAndScript([FromRoute] int typeId, int script
}
/// <summary>
/// 修改提取信息
/// 保存数据
/// </summary>
/// <param name="typeId"></param>
/// <param name="request"></param>
......@@ -255,7 +255,7 @@ public ApiResponse EditExtractTypeAndScript([FromRoute] int typeId, [FromBody] E
}
/// <summary>
/// 检查Sql执行时间
/// 执行Sql
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
......@@ -294,18 +294,6 @@ public ApiResponse<List<TitleValue<int>>> GetSheettypes()
}
/// <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>
/// <param name="hospitalId"></param>
......
......@@ -1382,23 +1382,54 @@
<param name="hospitalconfigId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ExtractController.GetDatatypes">
<member name="M:Performance.Api.Controllers.ExtractController.GetExtractTypeAndScript(System.Int32)">
<summary>
数据库类型
数据提取信息列表
</summary>
<param name="hospitalId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ExtractController.GetSheettypes">
<member name="M:Performance.Api.Controllers.ExtractController.GetExtractTypeAndScriptById(System.Int32,System.Int32)">
<summary>
来源类型
数据提取详情
</summary>
<param name="typeId"></param>
<param name="scriptId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ExtractController.GetExTypes(System.Int32)">
<member name="M:Performance.Api.Controllers.ExtractController.DeleteExtractTypeAndScript(System.Int32,System.Int32)">
<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>
<param name="hospitalId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ExtractController.GetConfigs(System.Int32)">
......
......@@ -3634,6 +3634,11 @@
</summary>
</member>
<member name="P:Performance.EntityModels.ex_script.Name">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_script.ExecScript">
<summary>
执行sql
......
......@@ -255,10 +255,14 @@ public AutoMapperConfigs()
CreateMap<ex_type, ExtractConfigResponse>()
.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();
CreateMap<ex_script, ExtractConfigResponse>()
.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();
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
{
public class ExtractConfigResponse
{
#region Public
public string Title { get; set; }
public int Value { get; set; }
#endregion
#region Type
public int TypeId { get; set; }
public string EName { get; set; }
public int Source { get; set; }
public string SheetType { get; set; }
public string Description { get; set; }
public decimal TimeConsuming { get; set; }
#region Children
#endregion
#region Script
public int ExScriptId { get; set; }
public string Name { get; set; }
public string ExecScript { get; set; }
public int ConfigId { get; set; }
......
......@@ -21,6 +21,11 @@ public class ex_script
public int Id { get; set; }
/// <summary>
///
/// </summary>
public string Name { get; set; }
/// <summary>
/// 执行sql
/// </summary>
public string ExecScript { get; set; }
......
......@@ -151,40 +151,62 @@ public bool TestConnectionCleared(int hospitalconfigId)
#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("医院信息错误");
var data = extypeRepository.GetPagingData(request.HospitalId, request.SheetType, request.Search, request.PageNumber, request.PageSize);
if (data == null || !data.Any())
return new PageList<ExtractConfigResponse>(new List<ExtractConfigResponse>(), 0, request.PageNumber, request.PageSize);
var data = extypeRepository.GetEntities(w => w.HospitalId == hospitalId);
if (data == null || !data.Any()) return new List<ExtractConfigResponse>();
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 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 sheettypes = GetSheettypes();
var configs = hospitalconfigRepository.GetEntities(w => w.HospitalId == hospitalId) ?? new List<sys_hospitalconfig>();
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);
if (itemScripts == null || !itemScripts.Any()) continue;
foreach (var item in sourcelist)
{
var itemScripts = scripts.Where(w => w.TypeId == item.TypeId);
if (itemScripts == null || !itemScripts.Any()) continue;
item.TimeConsuming = itemScripts.Sum(t => t.TimeConsuming);
item.Children = mapper.Map<List<ExtractConfigResponse>>(itemScripts);
item.TimeConsuming = itemScripts.Sum(t => t.TimeConsuming);
item.Children = mapper.Map<List<ExtractConfigResponse>>(itemScripts);
item.Children.ForEach(x =>
{
var config = configs.FirstOrDefault(w => w.Id == x.ConfigId);
if (config != null)
x.ConfigName = string.IsNullOrEmpty(config.ConfigName) ? config.DbSource : config.ConfigName;
});
int index = 1;
item.Children.ForEach(x =>
{
var config = configs.FirstOrDefault(w => w.Id == x.ConfigId);
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 new PageList<ExtractConfigResponse>(list, data.TotalCount, request.PageNumber, request.PageSize);
return result;
}
public ExtractConfigResponse GetExtractTypeAndScriptById(int typeId, int scriptId)
......@@ -194,13 +216,11 @@ public ExtractConfigResponse GetExtractTypeAndScriptById(int typeId, int scriptI
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();
if (script != null)
{
data.ExScriptId = script.Id;
data.Name = script.Name;
data.ExecScript = script.ExecScript;
data.ConfigId = script.ConfigId;
data.ConfigName = hospitalconfigRepository.GetEntity(w => w.Id == script.ConfigId)?.ConfigName;
......@@ -240,6 +260,14 @@ public bool EditExtractTypeAndScript(int hospitalId, ExtractConfigResponse reque
{
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)
{
var entity = mapper.Map<ex_type>(request);
......@@ -250,6 +278,7 @@ public bool EditExtractTypeAndScript(int hospitalId, ExtractConfigResponse reque
{
var script = new ex_script
{
Name = request.Name,
ExecScript = request.ExecScript,
ConfigId = request.ConfigId,
IsEnable = request.IsEnable,
......@@ -271,6 +300,7 @@ public bool EditExtractTypeAndScript(int hospitalId, ExtractConfigResponse reque
var script = exscriptRepository.GetEntity(w => w.Id == request.ExScriptId);
if (script != null)
{
script.Name = request.Name;
script.ExecScript = request.ExecScript;
script.ConfigId = request.ConfigId;
script.IsEnable = request.IsEnable;
......@@ -281,6 +311,7 @@ public bool EditExtractTypeAndScript(int hospitalId, ExtractConfigResponse reque
{
var script = new ex_script
{
Name = request.Name,
ExecScript = request.ExecScript,
ConfigId = request.ConfigId,
IsEnable = request.IsEnable,
......@@ -392,8 +423,8 @@ public List<TitleValue<int>> GetSheettypes()
var showItems = new int[]
{
(int)SheetType.Employee,
(int)SheetType.OtherIncome,
(int)SheetType.Income,
(int)SheetType.OtherIncome,
(int)SheetType.Expend,
(int)SheetType.Workload,
(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