Commit 0bcf471a by lcx

抽取相关修改

parent 04817020
......@@ -17,11 +17,11 @@ namespace Performance.Api.Controllers
[ApiController]
public class ExConfigController : Controller
{
private readonly ILogger<ModExtractController> logger;
private readonly ILogger<ExConfigController> logger;
private ExConfigService configService;
private WebapiUrl url;
public ExConfigController(
ILogger<ModExtractController> logger,
ILogger<ExConfigController> logger,
ExConfigService configService,
IOptions<WebapiUrl> url)
{
......
using FluentValidation.AspNetCore;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Performance.DtoModels;
using Performance.DtoModels.AppSettings;
using Performance.Infrastructure;
using Performance.Services;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Performance.Api.Controllers
{
[Route("api/[controller]")]
public class ModExtractController : Controller
{
private readonly ILogger<ModExtractController> logger;
private ModExtractService modExtractService;
private WebapiUrl url;
public ModExtractController(
ILogger<ModExtractController> logger,
ModExtractService modExtractService,
IOptions<WebapiUrl> url)
{
this.logger = logger;
this.modExtractService = modExtractService;
this.url = url.Value;
}
/// <summary>
/// 绩效数据抽取模板
/// </summary>
/// <returns></returns>
[Route("scheme")]
[HttpPost]
public ApiResponse Extract([CustomizeValidator(RuleSet = "Query"), FromBody] ModModuleRequest request)
{
if (request.HospitalId == null || request.HospitalId.Value == 0)
return new ApiResponse(ResponseType.ParameterError, "HospitalId 不存在,请重新选择!");
if (request.ExecuteType == null || !request.ExecuteType.Any())
return new ApiResponse(ResponseType.ParameterError, "ExecuteType 不存在,请重新选择!");
var list = modExtractService.ExtractScheme(request.HospitalId.Value, request.ExecuteType);
return new ApiResponse(ResponseType.OK, list);
}
/// <summary>
/// 费用类型
/// </summary>
/// <returns></returns>
[Route("type")]
[HttpPost]
public ApiResponse FeeType()
{
var list = modExtractService.FeeType();
return new ApiResponse(ResponseType.OK, list);
}
/// <summary>
/// 绩效考核项费用来源
/// </summary>
/// <returns></returns>
[Route("source")]
[HttpPost]
public ApiResponse FeeSource([FromBody] ModModuleRequest request)
{
if (request.HospitalId == null || request.HospitalId.Value == 0)
return new ApiResponse(ResponseType.ParameterError, "HospitalId 参数错误!");
string retJson = HttpHelper.HttpPost(url.HttpPost + "/modextract/source", JsonHelper.Serialize(request), true);
var ret = JsonHelper.Deserialize<ApiResponse>(retJson);
return new ApiResponse(ResponseType.OK, ret.Data);
}
/// <summary>
/// 费用字典新增
/// </summary>
/// <returns></returns>
[Route("addmodule")]
[HttpPost]
public ApiResponse AddModule([CustomizeValidator(RuleSet = "Add"), FromBody] ModModuleRequest request)
{
if (request.HospitalId == null || request.HospitalId.Value == 0)
return new ApiResponse(ResponseType.ParameterError, "HospitalId 参数错误!");
var entity = modExtractService.AddModule(request);
return new ApiResponse(ResponseType.OK, "添加成功!", entity);
}
/// <summary>
/// 费用字典(绩效模板)
/// </summary>
/// <returns></returns>
[Route("modules")]
[HttpPost]
public ApiResponse Module([CustomizeValidator(RuleSet = "Query"), FromBody] ModModuleRequest request)
{
if (request.HospitalId == null || request.HospitalId.Value == 0)
return new ApiResponse(ResponseType.ParameterError, "HospitalId 不存在,请重新选择!");
var list = modExtractService.Module(request.HospitalId.Value);
return new ApiResponse(ResponseType.OK, list);
}
/// <summary>
/// 绩效模板修改
/// </summary>
/// <returns></returns>
[Route("editmodule")]
[HttpPost]
public ApiResponse EditModule([FromBody] ModModuleRequest request)
{
if (request.ModuleId == null || request.ModuleId == 0)
return new ApiResponse(ResponseType.ParameterError, "ModuleId 参数错误!");
var entity = modExtractService.EditModule(request);
return new ApiResponse(ResponseType.OK, "修改成功!", entity);
}
/// <summary>
/// 绩效模板删除
/// </summary>
/// <returns></returns>
[Route("deletemodule")]
[HttpPost]
public ApiResponse DelModule([FromBody] ModModuleRequest request)
{
if (request.ModuleId == null || request.ModuleId == 0)
return new ApiResponse(ResponseType.ParameterError, "ModuleId 参数错误!");
modExtractService.DelModule(request.ModuleId.Value);
return new ApiResponse(ResponseType.OK, "删除成功!");
}
/// <summary>
/// 绩效收入模板配置项新增
/// </summary>
/// <returns></returns>
[Route("additem")]
[HttpPost]
public ApiResponse AddItem([FromBody] ItemListRequest request)
{
if (request.ModuleId == null && request.ModuleId == 0)
return new ApiResponse(ResponseType.ParameterError, "ModuleId 参数错误!");
if (request.Items == null && !request.Items.Any())
return new ApiResponse(ResponseType.ParameterError, "Items 未发现任添加何项!");
var list = modExtractService.AddItem(request);
return new ApiResponse(ResponseType.OK, "添加成功!", list);
}
/// <summary>
/// 绩效收入模板配置项列表
/// </summary>
/// <returns></returns>
[Route("items")]
[HttpPost]
public ApiResponse Items([FromBody] ModItemRequest request)
{
logger.LogInformation($"绩效收入模板配置项列表 : 请求地址 {url.HttpPost}/modextract/items");
HttpHelper.HttpPost(url.HttpPost + "/modextract/items", JsonHelper.Serialize(request), true);
logger.LogInformation($"绩效收入模板配置项列表在{DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss完成请求")}");
var list = modExtractService.Items(request.ModuleId.Value);
return new ApiResponse(ResponseType.OK, list);
}
/// <summary>
/// 绩效收入模板配置项修改
/// </summary>
/// <returns></returns>
[Route("edititem")]
[HttpPost]
public ApiResponse EditItem([FromBody] ItemListRequest request)
{
if (request.Items == null || !request.Items.Any())
return new ApiResponse(ResponseType.ParameterError, "请选择需要修改的数据!");
var entity = 0;//= modExtractService.EditItem(request.Items[0]);
return new ApiResponse(ResponseType.OK, "修改成功!", entity);
}
/// <summary>
/// 绩效收入模板配置项删除
/// </summary>
/// <returns></returns>
[Route("deleteitem")]
[HttpPost]
public ApiResponse DelItem([FromBody] ModItemRequest request)
{
if (request.ItemId == null && request.ItemId == 0)
return new ApiResponse(ResponseType.ParameterError, "ItemId 参数错误!");
modExtractService.DelItem(request.ItemId.Value);
return new ApiResponse(ResponseType.OK, "删除成功!");
}
#region 特殊科室模板
/// <summary>
/// 特殊科室模板配置项新增
/// </summary>
/// <returns></returns>
[Route("addspecial")]
[HttpPost]
public ApiResponse AddSpecial([FromBody] SpecialListRequest request)
{
if (request.HospitalId == 0)
return new ApiResponse(ResponseType.ParameterError, "HospitalId 参数错误!");
if (request.Items == null && !request.Items.Any())
return new ApiResponse(ResponseType.ParameterError, "Items 未发现任添加何项!");
var list = modExtractService.AddSpecial(request);
return new ApiResponse(ResponseType.OK, "添加成功!", list);
}
/// <summary>
/// 特殊科室模板配置项列表
/// </summary>
/// <returns></returns>
[Route("specials")]
[HttpPost]
public ApiResponse Specials([FromBody] ModSpecialRequest request)
{
var list = modExtractService.Special(request.HospitalId.Value);
return new ApiResponse(ResponseType.OK, list);
}
/// <summary>
/// 特殊科室模板配置项修改
/// </summary>
/// <returns></returns>
[Route("editspecial")]
[HttpPost]
public ApiResponse EditSpecial([FromBody] SpecialListRequest request)
{
if (request.Items == null || !request.Items.Any())
return new ApiResponse(ResponseType.ParameterError, "请选择需要修改的数据!");
var entity = modExtractService.EditSpecial(request.Items[0]);
return new ApiResponse(ResponseType.OK, "修改成功!", entity);
}
/// <summary>
/// 特殊科室模板配置项删除
/// </summary>
/// <returns></returns>
[Route("deletespecial")]
[HttpPost]
public ApiResponse DelSpecial([FromBody] ModSpecialRequest request)
{
if (request.SpecialId == null && request.SpecialId == 0)
return new ApiResponse(ResponseType.ParameterError, "SpecialId 参数错误!");
modExtractService.DelSpecial(request.SpecialId.Value);
return new ApiResponse(ResponseType.OK, "删除成功!");
}
/// <summary>
/// 特殊科室人均
/// </summary>
/// <returns></returns>
[Route("perfortype")]
[HttpPost]
public ApiResponse PerforType()
{
var list = modExtractService.PerforType();
return new ApiResponse(ResponseType.OK, list);
}
#endregion
/// <summary>
/// 数据配置项
/// </summary>
/// <returns></returns>
[Route("config")]
[HttpPost]
public ApiResponse Config([FromBody] ModModuleRequest request)
{
if (request.HospitalId == null || request.HospitalId.Value == 0)
return new ApiResponse(ResponseType.ParameterError, "HospitalId 不存在,请重新选择!");
var configs = modExtractService.GetHospitalconfigs(request.HospitalId.Value);
return new ApiResponse(ResponseType.OK, "绩效抽取数据地址!", configs);
}
}
}
\ No newline at end of file
//using FluentValidation.AspNetCore;
//using Microsoft.AspNetCore.Mvc;
//using Microsoft.Extensions.Logging;
//using Microsoft.Extensions.Options;
//using Performance.DtoModels;
//using Performance.DtoModels.AppSettings;
//using Performance.Infrastructure;
//using Performance.Services;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Threading.Tasks;
//namespace Performance.Api.Controllers
//{
// [Route("api/[controller]")]
// public class ModExtractController : Controller
// {
// private readonly ILogger<ModExtractController> logger;
// private ModExtractService modExtractService;
// private WebapiUrl url;
// public ModExtractController(
// ILogger<ModExtractController> logger,
// ModExtractService modExtractService,
// IOptions<WebapiUrl> url)
// {
// this.logger = logger;
// this.modExtractService = modExtractService;
// this.url = url.Value;
// }
// /// <summary>
// /// 绩效数据抽取模板
// /// </summary>
// /// <returns></returns>
// [Route("scheme")]
// [HttpPost]
// public ApiResponse Extract([CustomizeValidator(RuleSet = "Query"), FromBody] ModModuleRequest request)
// {
// if (request.HospitalId == null || request.HospitalId.Value == 0)
// return new ApiResponse(ResponseType.ParameterError, "HospitalId 不存在,请重新选择!");
// if (request.ExecuteType == null || !request.ExecuteType.Any())
// return new ApiResponse(ResponseType.ParameterError, "ExecuteType 不存在,请重新选择!");
// var list = modExtractService.ExtractScheme(request.HospitalId.Value, request.ExecuteType);
// return new ApiResponse(ResponseType.OK, list);
// }
// /// <summary>
// /// 费用类型
// /// </summary>
// /// <returns></returns>
// [Route("type")]
// [HttpPost]
// public ApiResponse FeeType()
// {
// var list = modExtractService.FeeType();
// return new ApiResponse(ResponseType.OK, list);
// }
// /// <summary>
// /// 绩效考核项费用来源
// /// </summary>
// /// <returns></returns>
// [Route("source")]
// [HttpPost]
// public ApiResponse FeeSource([FromBody] ModModuleRequest request)
// {
// if (request.HospitalId == null || request.HospitalId.Value == 0)
// return new ApiResponse(ResponseType.ParameterError, "HospitalId 参数错误!");
// string retJson = HttpHelper.HttpPost(url.HttpPost + "/modextract/source", JsonHelper.Serialize(request), true);
// var ret = JsonHelper.Deserialize<ApiResponse>(retJson);
// return new ApiResponse(ResponseType.OK, ret.Data);
// }
// /// <summary>
// /// 费用字典新增
// /// </summary>
// /// <returns></returns>
// [Route("addmodule")]
// [HttpPost]
// public ApiResponse AddModule([CustomizeValidator(RuleSet = "Add"), FromBody] ModModuleRequest request)
// {
// if (request.HospitalId == null || request.HospitalId.Value == 0)
// return new ApiResponse(ResponseType.ParameterError, "HospitalId 参数错误!");
// var entity = modExtractService.AddModule(request);
// return new ApiResponse(ResponseType.OK, "添加成功!", entity);
// }
// /// <summary>
// /// 费用字典(绩效模板)
// /// </summary>
// /// <returns></returns>
// [Route("modules")]
// [HttpPost]
// public ApiResponse Module([CustomizeValidator(RuleSet = "Query"), FromBody] ModModuleRequest request)
// {
// if (request.HospitalId == null || request.HospitalId.Value == 0)
// return new ApiResponse(ResponseType.ParameterError, "HospitalId 不存在,请重新选择!");
// var list = modExtractService.Module(request.HospitalId.Value);
// return new ApiResponse(ResponseType.OK, list);
// }
// /// <summary>
// /// 绩效模板修改
// /// </summary>
// /// <returns></returns>
// [Route("editmodule")]
// [HttpPost]
// public ApiResponse EditModule([FromBody] ModModuleRequest request)
// {
// if (request.ModuleId == null || request.ModuleId == 0)
// return new ApiResponse(ResponseType.ParameterError, "ModuleId 参数错误!");
// var entity = modExtractService.EditModule(request);
// return new ApiResponse(ResponseType.OK, "修改成功!", entity);
// }
// /// <summary>
// /// 绩效模板删除
// /// </summary>
// /// <returns></returns>
// [Route("deletemodule")]
// [HttpPost]
// public ApiResponse DelModule([FromBody] ModModuleRequest request)
// {
// if (request.ModuleId == null || request.ModuleId == 0)
// return new ApiResponse(ResponseType.ParameterError, "ModuleId 参数错误!");
// modExtractService.DelModule(request.ModuleId.Value);
// return new ApiResponse(ResponseType.OK, "删除成功!");
// }
// /// <summary>
// /// 绩效收入模板配置项新增
// /// </summary>
// /// <returns></returns>
// [Route("additem")]
// [HttpPost]
// public ApiResponse AddItem([FromBody] ItemListRequest request)
// {
// if (request.ModuleId == null && request.ModuleId == 0)
// return new ApiResponse(ResponseType.ParameterError, "ModuleId 参数错误!");
// if (request.Items == null && !request.Items.Any())
// return new ApiResponse(ResponseType.ParameterError, "Items 未发现任添加何项!");
// var list = modExtractService.AddItem(request);
// return new ApiResponse(ResponseType.OK, "添加成功!", list);
// }
// /// <summary>
// /// 绩效收入模板配置项列表
// /// </summary>
// /// <returns></returns>
// [Route("items")]
// [HttpPost]
// public ApiResponse Items([FromBody] ModItemRequest request)
// {
// logger.LogInformation($"绩效收入模板配置项列表 : 请求地址 {url.HttpPost}/modextract/items");
// HttpHelper.HttpPost(url.HttpPost + "/modextract/items", JsonHelper.Serialize(request), true);
// logger.LogInformation($"绩效收入模板配置项列表在{DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss完成请求")}");
// var list = modExtractService.Items(request.ModuleId.Value);
// return new ApiResponse(ResponseType.OK, list);
// }
// /// <summary>
// /// 绩效收入模板配置项修改
// /// </summary>
// /// <returns></returns>
// [Route("edititem")]
// [HttpPost]
// public ApiResponse EditItem([FromBody] ItemListRequest request)
// {
// if (request.Items == null || !request.Items.Any())
// return new ApiResponse(ResponseType.ParameterError, "请选择需要修改的数据!");
// var entity = 0;//= modExtractService.EditItem(request.Items[0]);
// return new ApiResponse(ResponseType.OK, "修改成功!", entity);
// }
// /// <summary>
// /// 绩效收入模板配置项删除
// /// </summary>
// /// <returns></returns>
// [Route("deleteitem")]
// [HttpPost]
// public ApiResponse DelItem([FromBody] ModItemRequest request)
// {
// if (request.ItemId == null && request.ItemId == 0)
// return new ApiResponse(ResponseType.ParameterError, "ItemId 参数错误!");
// modExtractService.DelItem(request.ItemId.Value);
// return new ApiResponse(ResponseType.OK, "删除成功!");
// }
// #region 特殊科室模板
// /// <summary>
// /// 特殊科室模板配置项新增
// /// </summary>
// /// <returns></returns>
// [Route("addspecial")]
// [HttpPost]
// public ApiResponse AddSpecial([FromBody] SpecialListRequest request)
// {
// if (request.HospitalId == 0)
// return new ApiResponse(ResponseType.ParameterError, "HospitalId 参数错误!");
// if (request.Items == null && !request.Items.Any())
// return new ApiResponse(ResponseType.ParameterError, "Items 未发现任添加何项!");
// var list = modExtractService.AddSpecial(request);
// return new ApiResponse(ResponseType.OK, "添加成功!", list);
// }
// /// <summary>
// /// 特殊科室模板配置项列表
// /// </summary>
// /// <returns></returns>
// [Route("specials")]
// [HttpPost]
// public ApiResponse Specials([FromBody] ModSpecialRequest request)
// {
// var list = modExtractService.Special(request.HospitalId.Value);
// return new ApiResponse(ResponseType.OK, list);
// }
// /// <summary>
// /// 特殊科室模板配置项修改
// /// </summary>
// /// <returns></returns>
// [Route("editspecial")]
// [HttpPost]
// public ApiResponse EditSpecial([FromBody] SpecialListRequest request)
// {
// if (request.Items == null || !request.Items.Any())
// return new ApiResponse(ResponseType.ParameterError, "请选择需要修改的数据!");
// var entity = modExtractService.EditSpecial(request.Items[0]);
// return new ApiResponse(ResponseType.OK, "修改成功!", entity);
// }
// /// <summary>
// /// 特殊科室模板配置项删除
// /// </summary>
// /// <returns></returns>
// [Route("deletespecial")]
// [HttpPost]
// public ApiResponse DelSpecial([FromBody] ModSpecialRequest request)
// {
// if (request.SpecialId == null && request.SpecialId == 0)
// return new ApiResponse(ResponseType.ParameterError, "SpecialId 参数错误!");
// modExtractService.DelSpecial(request.SpecialId.Value);
// return new ApiResponse(ResponseType.OK, "删除成功!");
// }
// /// <summary>
// /// 特殊科室人均
// /// </summary>
// /// <returns></returns>
// [Route("perfortype")]
// [HttpPost]
// public ApiResponse PerforType()
// {
// var list = modExtractService.PerforType();
// return new ApiResponse(ResponseType.OK, list);
// }
// #endregion
// /// <summary>
// /// 数据配置项
// /// </summary>
// /// <returns></returns>
// [Route("config")]
// [HttpPost]
// public ApiResponse Config([FromBody] ModModuleRequest request)
// {
// if (request.HospitalId == null || request.HospitalId.Value == 0)
// return new ApiResponse(ResponseType.ParameterError, "HospitalId 不存在,请重新选择!");
// var configs = modExtractService.GetHospitalconfigs(request.HospitalId.Value);
// return new ApiResponse(ResponseType.OK, "绩效抽取数据地址!", configs);
// }
// }
//}
\ No newline at end of file
......@@ -24,8 +24,7 @@ namespace Performance.Api.Controllers
public class TemplateController : Controller
{
private readonly TemplateService templateService;
private readonly ExtractService extractService;
private readonly NewExtractService newExtractService;
private readonly DFExtractService extractService;
private HospitalService hospitalService;
private IHostingEnvironment env;
private ClaimService claim;
......@@ -36,8 +35,7 @@ public class TemplateController : Controller
public TemplateController(TemplateService templateService,
HospitalService hospitalService,
ExtractService extractService,
NewExtractService newExtractService,
DFExtractService extractService,
IHostingEnvironment env,
ClaimService claim,
IOptions<Application> options,
......@@ -47,7 +45,6 @@ public class TemplateController : Controller
{
this.templateService = templateService;
this.extractService = extractService;
this.newExtractService = newExtractService;
this.hospitalService = hospitalService;
this.env = env;
this.claim = claim;
......@@ -145,66 +142,66 @@ public ApiResponse Import([FromForm] IFormCollection form)
}
#region 老版提取
/// <summary>
/// 提取绩效数据
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[Route("extractdata")]
[HttpPost]
public ApiResponse ExtractData([CustomizeValidator(RuleSet = "Template"), FromBody]AllotRequest request)
{
try
{
var allot = allotService.GetAllot(request.ID);
if (allot == null)
return new ApiResponse(ResponseType.Fail, "该绩效无效");
allot.IsExtracting = allot.IsExtracting ?? 0;
if (allot.IsExtracting == 1)
return new ApiResponse(ResponseType.Fail, "正在提取数据,请稍等。");
///// <summary>
///// 提取绩效数据
///// </summary>
///// <param name="request"></param>
///// <returns></returns>
//[Route("extractdata")]
//[HttpPost]
//public ApiResponse ExtractData([CustomizeValidator(RuleSet = "Template"), FromBody]AllotRequest request)
//{
// try
// {
// var allot = allotService.GetAllot(request.ID);
// if (allot == null)
// return new ApiResponse(ResponseType.Fail, "该绩效无效");
// allot.IsExtracting = allot.IsExtracting ?? 0;
// if (allot.IsExtracting == 1)
// return new ApiResponse(ResponseType.Fail, "正在提取数据,请稍等。");
var hospital = hospitalService.GetHopital(request.HospitalId.Value);
if (hospital == null)
return new ApiResponse(ResponseType.Fail, "医院无效");
// var hospital = hospitalService.GetHopital(request.HospitalId.Value);
// if (hospital == null)
// return new ApiResponse(ResponseType.Fail, "医院无效");
var email = claim.GetUserClaim(JwtClaimTypes.Mail);
allot.IsExtracting = 1;
allotService.Update(allot);
string path = extractService.GetFilepath(hospital.ID, out int type);
if (!string.IsNullOrEmpty(path) && type != 0)
{
//发送请求,返回路径
string retJson = HttpHelper.HttpClient(url.ImportFirst + $"?type={type}&hospitalId={hospital.ID}&year={allot.Year}&month={allot.Month}", path);
var ret = JsonHelper.Deserialize<ApiResponse>(retJson);
if ((int)ret.State != 1)
return new ApiResponse(ResponseType.Fail, "首次模板地址无效!");
path = ret.Message;
}
// var email = claim.GetUserClaim(JwtClaimTypes.Mail);
// allot.IsExtracting = 1;
// allotService.Update(allot);
// string path = extractService.GetFilepath(hospital.ID, out int type);
// if (!string.IsNullOrEmpty(path) && type != 0)
// {
// //发送请求,返回路径
// string retJson = HttpHelper.HttpClient(url.ImportFirst + $"?type={type}&hospitalId={hospital.ID}&year={allot.Year}&month={allot.Month}", path);
// var ret = JsonHelper.Deserialize<ApiResponse>(retJson);
// if ((int)ret.State != 1)
// return new ApiResponse(ResponseType.Fail, "首次模板地址无效!");
// path = ret.Message;
// }
string param = JsonHelper.Serialize(new
{
id = request.ID,
hospitalId = hospital.ID,
mail = email,
path = path
});
// string param = JsonHelper.Serialize(new
// {
// id = request.ID,
// hospitalId = hospital.ID,
// mail = email,
// path = path
// });
HttpHelper.HttpPostNoRequest(url.ExtractData, param, true);
//extractService.ExtractData(request.ID, user.Mail, hospital);
//BackgroundJob.Enqueue(() => extractService.ExtractData(request.ID, user.Mail, hospital));
return new ApiResponse(ResponseType.OK, "HIS绩效数据提取任务正在执行,稍后我们将以邮件的通知您!");
}
catch (Exception ex)
{
var allot = allotService.GetAllot(request.ID);
if (allot != null)
{
allot.IsExtracting = 3;
allotService.Update(allot);
}
throw ex;
}
}
// HttpHelper.HttpPostNoRequest(url.ExtractData, param, true);
// //extractService.ExtractData(request.ID, user.Mail, hospital);
// //BackgroundJob.Enqueue(() => extractService.ExtractData(request.ID, user.Mail, hospital));
// return new ApiResponse(ResponseType.OK, "HIS绩效数据提取任务正在执行,稍后我们将以邮件的通知您!");
// }
// catch (Exception ex)
// {
// var allot = allotService.GetAllot(request.ID);
// if (allot != null)
// {
// allot.IsExtracting = 3;
// allotService.Update(allot);
// }
// throw ex;
// }
//}
#endregion
#region 新版提取
......@@ -223,7 +220,7 @@ public ApiResponse NewExtractData([CustomizeValidator, FromBody]ExtractRequest r
// 判断是那种抽取
try
{
string message = newExtractService.Judge(request.AllotId, request.HospitalId, request.UseScheme, out string filePath);
string message = extractService.Judge(request.AllotId, request.HospitalId, request.UseScheme, out string filePath);
if (!string.IsNullOrEmpty(message))
return new ApiResponse(ResponseType.Fail, message);
......
......@@ -200,6 +200,13 @@
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AllotController.UpdateAllotShowFormula(Performance.DtoModels.AllotRequest)">
<summary>
绩效详情计算公式显示/隐藏
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.BudgetController.Query(Performance.DtoModels.Request.BudgetRequest)">
<summary>
预算管理查询(包含金额、占比)
......@@ -509,189 +516,196 @@
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.GuaranteeController.Guarantee(Performance.DtoModels.GuaranteeRequest)">
<member name="M:Performance.Api.Controllers.EmployeeController.Audit(System.Int32)">
<summary>
保底绩效配置列表
人事科修改参数后提交
</summary>
<param name="request"></param>
<param name="allotid"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.GuaranteeController.GuarantInsert(Performance.DtoModels.GuaranteeRequest)">
<member name="M:Performance.Api.Controllers.ExConfigController.Extract(Performance.DtoModels.ModModuleRequest)">
<summary>
新增保底绩效配置
绩效数据抽取模板
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.GuaranteeController.GuarantUpdate(Performance.DtoModels.GuaranteeRequest)">
<member name="M:Performance.Api.Controllers.ExConfigController.FeeType">
<summary>
修改保底绩效配置
费用类型
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.GuaranteeController.GuarantDelete(Performance.DtoModels.GuaranteeRequest)">
<member name="M:Performance.Api.Controllers.ExConfigController.FeeSource(Performance.DtoModels.ModModuleRequest)">
<summary>
删除保底绩效配置
绩效考核项费用来源
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.GuaranteeController.Accounting(Performance.DtoModels.GuaranteeRequest)">
<member name="M:Performance.Api.Controllers.ExConfigController.AddModule(Performance.DtoModels.ModModuleRequest)">
<summary>
医院核算单元
费用字典新增
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.GuaranteeController.UnitType">
<member name="M:Performance.Api.Controllers.ExConfigController.Module(Performance.DtoModels.ModModuleRequest)">
<summary>
医院核算单元
费用字典(绩效模板)
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.HospitalController.GetHospitalList">
<member name="M:Performance.Api.Controllers.ExConfigController.EditModule(Performance.DtoModels.ModModuleRequest)">
<summary>
获取当前登录用户管辖医院列表
绩效模板修改
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.HospitalController.Insert(Performance.DtoModels.HospitalRequest)">
<member name="M:Performance.Api.Controllers.ExConfigController.DelModule(Performance.DtoModels.ModModuleRequest)">
<summary>
新增医院
绩效模板删除
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.HospitalController.Update(Performance.DtoModels.HospitalRequest)">
<member name="M:Performance.Api.Controllers.ExConfigController.AddItem(Performance.DtoModels.ItemListRequest)">
<summary>
修改医院信息
绩效收入模板配置项新增
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.HospitalController.Delete(Performance.DtoModels.HospitalRequest)">
<member name="M:Performance.Api.Controllers.ExConfigController.Items(Performance.DtoModels.ModItemRequest)">
<summary>
删除医院
绩效收入模板配置项列表
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.HospitalController.Disabled(Performance.DtoModels.HospitalRequest)">
<member name="M:Performance.Api.Controllers.ExConfigController.EditItem(Performance.DtoModels.ItemListRequest)">
<summary>
启用/禁用医院
绩效收入模板配置项修改
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.MenuController.MenuList">
<member name="M:Performance.Api.Controllers.ExConfigController.DelItem(Performance.DtoModels.ModItemRequest)">
<summary>
设置用户管辖医院
绩效收入模板配置项删除
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.Extract(Performance.DtoModels.ModModuleRequest)">
<member name="M:Performance.Api.Controllers.ExConfigController.AddSpecial(Performance.DtoModels.SpecialListRequest)">
<summary>
绩效数据抽取模板
特殊科室模板配置项新增
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.FeeType">
<member name="M:Performance.Api.Controllers.ExConfigController.Specials(Performance.DtoModels.ModSpecialRequest)">
<summary>
费用类型
特殊科室模板配置项列表
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.FeeSource(Performance.DtoModels.ModModuleRequest)">
<member name="M:Performance.Api.Controllers.ExConfigController.EditSpecial(Performance.DtoModels.SpecialListRequest)">
<summary>
绩效考核项费用来源
特殊科室模板配置项修改
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.AddModule(Performance.DtoModels.ModModuleRequest)">
<member name="M:Performance.Api.Controllers.ExConfigController.DelSpecial(Performance.DtoModels.ModSpecialRequest)">
<summary>
费用字典新增
特殊科室模板配置项删除
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.Module(Performance.DtoModels.ModModuleRequest)">
<member name="M:Performance.Api.Controllers.ExConfigController.PerforType">
<summary>
费用字典(绩效模板)
特殊科室人均
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.EditModule(Performance.DtoModels.ModModuleRequest)">
<member name="M:Performance.Api.Controllers.ExConfigController.Config(Performance.DtoModels.ModModuleRequest)">
<summary>
绩效模板修改
数据配置项
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.DelModule(Performance.DtoModels.ModModuleRequest)">
<member name="M:Performance.Api.Controllers.GuaranteeController.Guarantee(Performance.DtoModels.GuaranteeRequest)">
<summary>
绩效模板删除
保底绩效配置列表
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.AddItem(Performance.DtoModels.ItemListRequest)">
<member name="M:Performance.Api.Controllers.GuaranteeController.GuarantInsert(Performance.DtoModels.GuaranteeRequest)">
<summary>
绩效收入模板配置项新增
新增保底绩效配置
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.Items(Performance.DtoModels.ModItemRequest)">
<member name="M:Performance.Api.Controllers.GuaranteeController.GuarantUpdate(Performance.DtoModels.GuaranteeRequest)">
<summary>
绩效收入模板配置项列表
修改保底绩效配置
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.EditItem(Performance.DtoModels.ItemListRequest)">
<member name="M:Performance.Api.Controllers.GuaranteeController.GuarantDelete(Performance.DtoModels.GuaranteeRequest)">
<summary>
绩效收入模板配置项修改
删除保底绩效配置
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.DelItem(Performance.DtoModels.ModItemRequest)">
<member name="M:Performance.Api.Controllers.GuaranteeController.Accounting(Performance.DtoModels.GuaranteeRequest)">
<summary>
绩效收入模板配置项删除
医院核算单元
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.AddSpecial(Performance.DtoModels.SpecialListRequest)">
<member name="M:Performance.Api.Controllers.GuaranteeController.UnitType">
<summary>
特殊科室模板配置项新增
医院核算单元
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.Specials(Performance.DtoModels.ModSpecialRequest)">
<member name="M:Performance.Api.Controllers.HospitalController.GetHospitalList">
<summary>
特殊科室模板配置项列表
获取当前登录用户管辖医院列表
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.EditSpecial(Performance.DtoModels.SpecialListRequest)">
<member name="M:Performance.Api.Controllers.HospitalController.Insert(Performance.DtoModels.HospitalRequest)">
<summary>
特殊科室模板配置项修改
新增医院
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.DelSpecial(Performance.DtoModels.ModSpecialRequest)">
<member name="M:Performance.Api.Controllers.HospitalController.Update(Performance.DtoModels.HospitalRequest)">
<summary>
特殊科室模板配置项删除
修改医院信息
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.PerforType">
<member name="M:Performance.Api.Controllers.HospitalController.Delete(Performance.DtoModels.HospitalRequest)">
<summary>
特殊科室人均
删除医院
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ModExtractController.Config(Performance.DtoModels.ModModuleRequest)">
<member name="M:Performance.Api.Controllers.HospitalController.Disabled(Performance.DtoModels.HospitalRequest)">
<summary>
数据配置项
启用/禁用医院
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.MenuController.MenuList">
<summary>
设置用户管辖医院
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="T:Performance.Api.Controllers.ReportController">
......@@ -942,13 +956,6 @@
<param name="form"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.TemplateController.ExtractData(Performance.DtoModels.AllotRequest)">
<summary>
提取绩效数据
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.TemplateController.NewExtractData(Performance.DtoModels.ExtractRequest)">
<summary>
提取绩效数据
......
......@@ -67,6 +67,9 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_check">
<summary> 上传excel文件校验配置 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_depttype">
<summary> 科室类型 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_director">
<summary> 规模绩效、效率绩效计算系数配置 </summary>
</member>
......@@ -103,6 +106,9 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.ex_script">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.ex_special">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.ex_type">
<summary> </summary>
</member>
......@@ -136,18 +142,6 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.mod_dic">
<summary> 部分公共数据抽取SQL </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.mod_extract">
<summary> 医院数据提取脚本 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.mod_item">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.mod_module">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.mod_special">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_againallot">
<summary> </summary>
</member>
......@@ -960,6 +954,16 @@
</summary>
</member>
<member name="P:Performance.EntityModels.ag_workload_type.Department">
<summary>
科室
</summary>
</member>
<member name="P:Performance.EntityModels.ag_workload_type.UnitType">
<summary>
科室类型
</summary>
</member>
<member name="T:Performance.EntityModels.as_assess">
<summary>
考核类别
......@@ -1145,6 +1149,31 @@
单元格列头名称
</summary>
</member>
<member name="T:Performance.EntityModels.cof_depttype">
<summary>
科室类型
</summary>
</member>
<member name="P:Performance.EntityModels.cof_depttype.ID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_depttype.AllotID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_depttype.Charge">
<summary>
科室
</summary>
</member>
<member name="P:Performance.EntityModels.cof_depttype.ChargeType">
<summary>
可是分类
</summary>
</member>
<member name="T:Performance.EntityModels.cof_director">
<summary>
规模绩效、效率绩效计算系数配置
......@@ -1490,6 +1519,11 @@
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.AllotId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.Department">
<summary>
科室
......@@ -1515,6 +1549,11 @@
数据库类型1、Sql Server 2、Orcale
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.ConfigId">
<summary>
数据库配置Id
</summary>
</member>
<member name="T:Performance.EntityModels.ex_script">
<summary>
......@@ -1545,6 +1584,51 @@
是否可用 1 可用 2 不可用
</summary>
</member>
<member name="T:Performance.EntityModels.ex_special">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_special.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_special.HospitalId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_special.Department">
<summary>
科室
</summary>
</member>
<member name="P:Performance.EntityModels.ex_special.Target">
<summary>
量化指标
</summary>
</member>
<member name="P:Performance.EntityModels.ex_special.TargetFactor">
<summary>
量化指标绩效分值
</summary>
</member>
<member name="P:Performance.EntityModels.ex_special.AdjustFactor">
<summary>
调节系数
</summary>
</member>
<member name="P:Performance.EntityModels.ex_special.TypeId">
<summary>
抽取绩效值SQL
</summary>
</member>
<member name="P:Performance.EntityModels.ex_special.ConfigId">
<summary>
数据库地址
</summary>
</member>
<member name="T:Performance.EntityModels.ex_type">
<summary>
......@@ -1820,6 +1904,16 @@
工作量倾斜系数
</summary>
</member>
<member name="P:Performance.EntityModels.im_accountbasic.UpdateDate">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.im_accountbasic.UpdateUser">
<summary>
</summary>
</member>
<member name="T:Performance.EntityModels.im_data">
<summary>
......@@ -1905,6 +1999,16 @@
</summary>
</member>
<member name="P:Performance.EntityModels.im_data.UpdateDate">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.im_data.UpdateUser">
<summary>
</summary>
</member>
<member name="T:Performance.EntityModels.im_employee">
<summary>
......@@ -2020,6 +2124,16 @@
发放系数
</summary>
</member>
<member name="P:Performance.EntityModels.im_employee.UpdateDate">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.im_employee.UpdateUser">
<summary>
</summary>
</member>
<member name="T:Performance.EntityModels.im_employee_clinic">
<summary>
......@@ -2140,6 +2254,16 @@
发放系数
</summary>
</member>
<member name="P:Performance.EntityModels.im_employee_clinic.UpdateDate">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.im_employee_clinic.UpdateUser">
<summary>
</summary>
</member>
<member name="T:Performance.EntityModels.im_header">
<summary>
......@@ -2205,6 +2329,16 @@
1 汇总 2原始数据
</summary>
</member>
<member name="P:Performance.EntityModels.im_header.UpdateDate">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.im_header.UpdateUser">
<summary>
</summary>
</member>
<member name="T:Performance.EntityModels.im_specialunit">
<summary>
特殊科室核算
......@@ -2275,6 +2409,16 @@
调节系数
</summary>
</member>
<member name="P:Performance.EntityModels.im_specialunit.UpdateDate">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.im_specialunit.UpdateUser">
<summary>
</summary>
</member>
<member name="T:Performance.EntityModels.log_check">
<summary>
......@@ -2385,201 +2529,6 @@
</summary>
</member>
<member name="T:Performance.EntityModels.mod_extract">
<summary>
医院数据提取脚本
</summary>
</member>
<member name="P:Performance.EntityModels.mod_extract.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.mod_extract.HospitalId">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.mod_extract.EName">
<summary>
当前脚本提取内容名称
</summary>
</member>
<member name="P:Performance.EntityModels.mod_extract.ExecuteScript">
<summary>
执行脚本
</summary>
</member>
<member name="P:Performance.EntityModels.mod_extract.ExecuteType">
<summary>
当前脚本类型 1 收入整表 2 单项数据提取
</summary>
</member>
<member name="P:Performance.EntityModels.mod_extract.SourceType">
<summary>
数据库来源类型 1 标准库 2 绩效库
</summary>
</member>
<member name="P:Performance.EntityModels.mod_extract.Description">
<summary>
描述
</summary>
</member>
<member name="P:Performance.EntityModels.mod_extract.IsEnable">
<summary>
是否可用 1 可用 2 不可用
</summary>
</member>
<member name="T:Performance.EntityModels.mod_item">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.mod_item.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.mod_item.ModuleId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.mod_item.ItemName">
<summary>
绩效考核项
</summary>
</member>
<member name="P:Performance.EntityModels.mod_item.FactorValue1">
<summary>
默认系数或医生系数
</summary>
</member>
<member name="P:Performance.EntityModels.mod_item.FactorValue2">
<summary>
护理系数
</summary>
</member>
<member name="P:Performance.EntityModels.mod_item.FactorValue3">
<summary>
医技系数
</summary>
</member>
<member name="P:Performance.EntityModels.mod_item.ExtractId">
<summary>
抽取绩效值SQL
</summary>
</member>
<member name="P:Performance.EntityModels.mod_item.ConfigId">
<summary>
数据库地址
</summary>
</member>
<member name="P:Performance.EntityModels.mod_item.SelectionRange">
<summary>
用户选定抽取范围
</summary>
</member>
<member name="P:Performance.EntityModels.mod_item.ReadOnly">
<summary>
只读 0、否 1、是
</summary>
</member>
<member name="T:Performance.EntityModels.mod_module">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.mod_module.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.mod_module.HospitalId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.mod_module.SheetType">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.mod_module.ModuleName">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.mod_module.Description">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.mod_module.ExtractId">
<summary>
提取脚本ID
</summary>
</member>
<member name="P:Performance.EntityModels.mod_module.ConfigId">
<summary>
数据库地址
</summary>
</member>
<member name="P:Performance.EntityModels.mod_module.ReadOnly">
<summary>
只读 0、否 1、是
</summary>
</member>
<member name="P:Performance.EntityModels.mod_module.IsGenerated">
<summary>
是否生成Item 0、否 1、是
</summary>
</member>
<member name="T:Performance.EntityModels.mod_special">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.mod_special.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.mod_special.HospitalId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.mod_special.Department">
<summary>
科室
</summary>
</member>
<member name="P:Performance.EntityModels.mod_special.Target">
<summary>
量化指标
</summary>
</member>
<member name="P:Performance.EntityModels.mod_special.TargetFactor">
<summary>
量化指标绩效分值
</summary>
</member>
<member name="P:Performance.EntityModels.mod_special.AdjustFactor">
<summary>
调节系数
</summary>
</member>
<member name="P:Performance.EntityModels.mod_special.ExtractId">
<summary>
抽取绩效值SQL
</summary>
</member>
<member name="P:Performance.EntityModels.mod_special.ConfigId">
<summary>
数据库地址
</summary>
</member>
<member name="T:Performance.EntityModels.per_againallot">
<summary>
......@@ -2702,7 +2651,7 @@
</member>
<member name="P:Performance.EntityModels.per_allot.Generate">
<summary>
1、人事科提交重新生成
1、人事科提交重新生成 2、生成成功 3、原始数据修改
</summary>
</member>
<member name="P:Performance.EntityModels.per_allot.ShowFormula">
......
......@@ -21,6 +21,6 @@ public class SpecialListRequest
public int HospitalId { get; set; }
/// <summary> 特殊考核项 </summary>
public List<mod_special> Items { get; set; }
public List<ex_special> Items { get; set; }
}
}
......@@ -12,159 +12,163 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
{
}
/// <summary> 二次分配概览 </summary>
/// <summary> 二次分配概览 </summary>
public virtual DbSet<ag_againsituation> ag_againsituation { get; set; }
/// <summary> 二次绩效结果表 </summary>
/// <summary> 二次绩效结果表 </summary>
public virtual DbSet<ag_compute> ag_compute { get; set; }
/// <summary> 二次分配不固定数据 </summary>
/// <summary> 二次分配不固定数据 </summary>
public virtual DbSet<ag_data> ag_data { get; set; }
/// <summary> 二次分配人员名单 </summary>
/// <summary> 二次分配人员名单 </summary>
public virtual DbSet<ag_employee> ag_employee { get; set; }
/// <summary> 二次绩效固定项 </summary>
/// <summary> 二次绩效固定项 </summary>
public virtual DbSet<ag_fixatitem> ag_fixatitem { get; set; }
/// <summary> 二次分配不固定列头数据 </summary>
/// <summary> 二次分配不固定列头数据 </summary>
public virtual DbSet<ag_header> ag_header { get; set; }
/// <summary> 科室二次绩效录入内容 </summary>
/// <summary> 科室二次绩效录入内容 </summary>
public virtual DbSet<ag_itemvalue> ag_itemvalue { get; set; }
/// <summary> 二次绩效其他绩效来源 </summary>
/// <summary> 二次绩效其他绩效来源 </summary>
public virtual DbSet<ag_othersource> ag_othersource { get; set; }
/// <summary> 二次绩效列表 </summary>
/// <summary> 二次绩效列表 </summary>
public virtual DbSet<ag_secondallot> ag_secondallot { get; set; }
/// <summary> 二次绩效模板 </summary>
/// <summary> 二次绩效模板 </summary>
public virtual DbSet<ag_temp> ag_temp { get; set; }
/// <summary> 二次绩效模板项 </summary>
/// <summary> 二次绩效模板项 </summary>
public virtual DbSet<ag_tempitem> ag_tempitem { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<ag_usetemp> ag_usetemp { get; set; }
/// <summary> 二次绩效工作量绩效 </summary>
/// <summary> 二次绩效工作量绩效 </summary>
public virtual DbSet<ag_workload> ag_workload { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<ag_workload_type> ag_workload_type { get; set; }
/// <summary> 考核类别 </summary>
/// <summary> 考核类别 </summary>
public virtual DbSet<as_assess> as_assess { get; set; }
/// <summary> 考核列头 </summary>
/// <summary> 考核列头 </summary>
public virtual DbSet<as_columns> as_columns { get; set; }
/// <summary> 考核数据 </summary>
/// <summary> 考核数据 </summary>
public virtual DbSet<as_data> as_data { get; set; }
/// <summary> 考核类别 </summary>
/// <summary> 考核类别 </summary>
public virtual DbSet<as_tempassess> as_tempassess { get; set; }
/// <summary> 考核列头 </summary>
/// <summary> 考核列头 </summary>
public virtual DbSet<as_tempcolumns> as_tempcolumns { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<cof_again> cof_again { get; set; }
/// <summary> 上传excel文件校验配置 </summary>
/// <summary> 上传excel文件校验配置 </summary>
public virtual DbSet<cof_check> cof_check { get; set; }
/// <summary> 规模绩效、效率绩效计算系数配置 </summary>
/// <summary> 科室类型 </summary>
public virtual DbSet<cof_depttype> cof_depttype { get; set; }
/// <summary> 规模绩效、效率绩效计算系数配置 </summary>
public virtual DbSet<cof_director> cof_director { get; set; }
/// <summary> 工作量门诊药占比系数 </summary>
/// <summary> 工作量门诊药占比系数 </summary>
public virtual DbSet<cof_drugprop> cof_drugprop { get; set; }
/// <summary> 药占比费用列头名称 </summary>
/// <summary> 药占比费用列头名称 </summary>
public virtual DbSet<cof_drugtype> cof_drugtype { get; set; }
/// <summary> 保底科室配置 </summary>
/// <summary> 保底科室配置 </summary>
public virtual DbSet<cof_guarantee> cof_guarantee { get; set; }
/// <summary> ICU医生护士有效收入汇总计算系数 </summary>
/// <summary> ICU医生护士有效收入汇总计算系数 </summary>
public virtual DbSet<cof_income> cof_income { get; set; }
/// <summary> 特殊绩效项指标 </summary>
/// <summary> 特殊绩效项指标 </summary>
public virtual DbSet<cof_singlefactor> cof_singlefactor { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<cof_workitem> cof_workitem { get; set; }
/// <summary> 工龄对应绩效系数配置 </summary>
/// <summary> 工龄对应绩效系数配置 </summary>
public virtual DbSet<cof_workyear> cof_workyear { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<ex_item> ex_item { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<ex_module> ex_module { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<ex_result> ex_result { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<ex_script> ex_script { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<ex_special> ex_special { get; set; }
/// <summary> </summary>
public virtual DbSet<ex_type> ex_type { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<hos_personfee> hos_personfee { get; set; }
/// <summary> 科室核算导入信息 </summary>
/// <summary> 科室核算导入信息 </summary>
public virtual DbSet<im_accountbasic> im_accountbasic { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<im_data> im_data { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<im_employee> im_employee { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<im_employee_clinic> im_employee_clinic { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<im_header> im_header { get; set; }
/// <summary> 特殊科室核算 </summary>
/// <summary> 特殊科室核算 </summary>
public virtual DbSet<im_specialunit> im_specialunit { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<log_check> log_check { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<log_dbug> log_dbug { get; set; }
/// <summary> 部分公共数据抽取SQL </summary>
/// <summary> 部分公共数据抽取SQL </summary>
public virtual DbSet<mod_dic> mod_dic { get; set; }
/// <summary> 医院数据提取脚本 </summary>
public virtual DbSet<mod_extract> mod_extract { get; set; }
/// <summary> </summary>
public virtual DbSet<mod_item> mod_item { get; set; }
/// <summary> </summary>
public virtual DbSet<mod_module> mod_module { get; set; }
/// <summary> </summary>
public virtual DbSet<mod_special> mod_special { get; set; }
/// <summary> </summary>
///// <summary> 医院数据提取脚本 </summary>
// public virtual DbSet<mod_extract> mod_extract { get; set; }
///// <summary> </summary>
// public virtual DbSet<mod_item> mod_item { get; set; }
///// <summary> </summary>
// public virtual DbSet<mod_module> mod_module { get; set; }
///// <summary> </summary>
// public virtual DbSet<mod_special> mod_special { get; set; }
/// <summary> </summary>
public virtual DbSet<per_againallot> per_againallot { get; set; }
/// <summary> 医院绩效分配 </summary>
/// <summary> 医院绩效分配 </summary>
public virtual DbSet<per_allot> per_allot { get; set; }
/// <summary> 预算管理金额 </summary>
/// <summary> 预算管理金额 </summary>
public virtual DbSet<per_budget_amount> per_budget_amount { get; set; }
/// <summary> 预算管理占比 </summary>
/// <summary> 预算管理占比 </summary>
public virtual DbSet<per_budget_ratio> per_budget_ratio { get; set; }
/// <summary> 预算控制年度合计 </summary>
/// <summary> 预算控制年度合计 </summary>
public virtual DbSet<per_budget_result> per_budget_result { get; set; }
/// <summary> 首次上传文件地址(当医院存在标准库时,首次上传用户提交固定格式的excel,开发人员配置SQL脚本) </summary>
/// <summary> 首次上传文件地址(当医院存在标准库时,首次上传用户提交固定格式的excel,开发人员配置SQL脚本) </summary>
public virtual DbSet<per_first> per_first { get; set; }
/// <summary> 上传数据解析 </summary>
/// <summary> 上传数据解析 </summary>
public virtual DbSet<per_sheet> per_sheet { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<rep_group> rep_group { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<rep_group_selection> rep_group_selection { get; set; }
/// <summary> 导入报表SQL配置 </summary>
/// <summary> 导入报表SQL配置 </summary>
public virtual DbSet<rep_importconfig> rep_importconfig { get; set; }
/// <summary> 报表配置表 </summary>
/// <summary> 报表配置表 </summary>
public virtual DbSet<rep_report> rep_report { get; set; }
/// <summary> 条件表 </summary>
/// <summary> 条件表 </summary>
public virtual DbSet<rep_selection> rep_selection { get; set; }
/// <summary> 科室核算结果 </summary>
/// <summary> 科室核算结果 </summary>
public virtual DbSet<res_account> res_account { get; set; }
/// <summary> 医生科室核算结果 </summary>
/// <summary> 医生科室核算结果 </summary>
public virtual DbSet<res_accountdoctor> res_accountdoctor { get; set; }
/// <summary> 护理科室核算结果 </summary>
/// <summary> 护理科室核算结果 </summary>
public virtual DbSet<res_accountnurse> res_accountnurse { get; set; }
/// <summary> 核算基础标准 </summary>
/// <summary> 核算基础标准 </summary>
public virtual DbSet<res_baiscnorm> res_baiscnorm { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<res_compute> res_compute { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<res_specialunit> res_specialunit { get; set; }
/// <summary> 医院数据提取脚本 </summary>
/// <summary> 医院数据提取脚本 </summary>
public virtual DbSet<sys_extract> sys_extract { get; set; }
/// <summary> 医院信息 </summary>
/// <summary> 医院信息 </summary>
public virtual DbSet<sys_hospital> sys_hospital { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<sys_hospitalconfig> sys_hospitalconfig { get; set; }
/// <summary> 菜单表 </summary>
/// <summary> 菜单表 </summary>
public virtual DbSet<sys_menu> sys_menu { get; set; }
/// <summary> 角色表 </summary>
/// <summary> 角色表 </summary>
public virtual DbSet<sys_role> sys_role { get; set; }
/// <summary> 角色菜单关联表 </summary>
/// <summary> 角色菜单关联表 </summary>
public virtual DbSet<sys_role_menu> sys_role_menu { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<sys_sms> sys_sms { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<sys_task> sys_task { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<sys_user> sys_user { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<sys_user_hospital> sys_user_hospital { get; set; }
/// <summary> 用户角色关联表 </summary>
/// <summary> 用户角色关联表 </summary>
public virtual DbSet<sys_user_role> sys_user_role { get; set; }
}
}
......@@ -30,5 +30,15 @@ public class ag_workload_type
///
/// </summary>
public string TypeName { get; set; }
/// <summary>
/// 科室
/// </summary>
public string Department { get; set; }
/// <summary>
/// 科室类型
/// </summary>
public string UnitType { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" cof_depttype.cs">
// * FileName: 科室类型.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// 科室类型
/// </summary>
[Table("cof_depttype")]
public class cof_depttype
{
/// <summary>
///
/// </summary>
[Key]
public int ID { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> AllotID { get; set; }
/// <summary>
/// 科室
/// </summary>
public string Charge { get; set; }
/// <summary>
/// 可是分类
/// </summary>
public string ChargeType { get; set; }
}
}
......@@ -7,43 +7,53 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("ex_result")]
public class ex_result
public class ex_result
{
/// <summary>
///
/// </summary>
[Key]
public int Id { get; set; }
public int Id { get; set; }
/// <summary>
///
/// </summary>
public int AllotId { get; set; }
/// <summary>
/// 科室
/// </summary>
public string Department { get; set; }
/// <summary>
/// 费用类型
/// </summary>
public string Category { get; set; }
/// <summary>
/// 费用
/// </summary>
public Nullable<decimal> Fee { get; set; }
/// <summary>
/// 来源
/// </summary>
public int Source { get; set; }
public string Source { get; set; }
/// <summary>
/// 数据库类型1、Sql Server 2、Orcale
/// </summary>
public int DatabaseType { get; set; }
/// <summary>
/// 数据库配置Id
/// </summary>
public int ConfigId { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" ex_special.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("ex_special")]
public class ex_special
{
/// <summary>
///
/// </summary>
[Key]
public int Id { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> HospitalId { get; set; }
/// <summary>
/// 科室
/// </summary>
public string Department { get; set; }
/// <summary>
/// 量化指标
/// </summary>
public string Target { get; set; }
/// <summary>
/// 量化指标绩效分值
/// </summary>
public Nullable<decimal> TargetFactor { get; set; }
/// <summary>
/// 调节系数
/// </summary>
public Nullable<decimal> AdjustFactor { get; set; }
/// <summary>
/// 抽取绩效值SQL
/// </summary>
public Nullable<int> TypeId { get; set; }
/// <summary>
/// 数据库地址
/// </summary>
public Nullable<int> ConfigId { get; set; }
}
}
......@@ -205,5 +205,15 @@ public class im_accountbasic
/// 工作量倾斜系数
/// </summary>
public Nullable<decimal> WorkSlopeFactor { get; set; }
/// <summary>
///
/// </summary>
public Nullable<DateTime> UpdateDate { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> UpdateUser { get; set; }
}
}
......@@ -95,5 +95,15 @@ public class im_data
///
/// </summary>
public string SignID { get; set; }
/// <summary>
///
/// </summary>
public Nullable<DateTime> UpdateDate { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> UpdateUser { get; set; }
}
}
......@@ -125,5 +125,15 @@ public class im_employee
/// 发放系数
/// </summary>
public Nullable<decimal> Grant { get; set; }
/// <summary>
///
/// </summary>
public Nullable<DateTime> UpdateDate { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> UpdateUser { get; set; }
}
}
......@@ -130,5 +130,15 @@ public class im_employee_clinic
/// 发放系数
/// </summary>
public Nullable<decimal> Grant { get; set; }
/// <summary>
///
/// </summary>
public Nullable<DateTime> UpdateDate { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> UpdateUser { get; set; }
}
}
......@@ -75,5 +75,15 @@ public class im_header
/// 1 汇总 2原始数据
/// </summary>
public Nullable<int> IsTotal { get; set; }
/// <summary>
///
/// </summary>
public Nullable<DateTime> UpdateDate { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> UpdateUser { get; set; }
}
}
......@@ -80,5 +80,15 @@ public class im_specialunit
/// 调节系数
/// </summary>
public Nullable<decimal> Adjust { get; set; }
/// <summary>
///
/// </summary>
public Nullable<DateTime> UpdateDate { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> UpdateUser { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" mod_extract.cs">
// * FileName: 医院数据提取脚本.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
////-----------------------------------------------------------------------
//// <copyright file=" mod_extract.cs">
//// * FileName: 医院数据提取脚本.cs
//// </copyright>
////-----------------------------------------------------------------------
//using System;
//using System.ComponentModel.DataAnnotations;
//using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// 医院数据提取脚本
/// </summary>
[Table("mod_extract")]
public class mod_extract
{
/// <summary>
///
/// </summary>
[Key]
public int Id { get; set; }
//namespace Performance.EntityModels
//{
// /// <summary>
// /// 医院数据提取脚本
// /// </summary>
// [Table("mod_extract")]
// public class mod_extract
// {
// /// <summary>
// ///
// /// </summary>
// [Key]
// public int Id { get; set; }
/// <summary>
/// 医院ID
/// </summary>
public Nullable<int> HospitalId { get; set; }
// /// <summary>
// /// 医院ID
// /// </summary>
// public Nullable<int> HospitalId { get; set; }
/// <summary>
/// 当前脚本提取内容名称
/// </summary>
public string EName { get; set; }
// /// <summary>
// /// 当前脚本提取内容名称
// /// </summary>
// public string EName { get; set; }
/// <summary>
/// 执行脚本
/// </summary>
public string ExecuteScript { get; set; }
// /// <summary>
// /// 执行脚本
// /// </summary>
// public string ExecuteScript { get; set; }
/// <summary>
/// 当前脚本类型 1 收入整表 2 单项数据提取
/// </summary>
public Nullable<int> ExecuteType { get; set; }
// /// <summary>
// /// 当前脚本类型 1 收入整表 2 单项数据提取
// /// </summary>
// public Nullable<int> ExecuteType { get; set; }
/// <summary>
/// 数据库来源类型 1 标准库 2 绩效库
/// </summary>
public Nullable<int> SourceType { get; set; }
// /// <summary>
// /// 数据库来源类型 1 标准库 2 绩效库
// /// </summary>
// public Nullable<int> SourceType { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Description { get; set; }
// /// <summary>
// /// 描述
// /// </summary>
// public string Description { get; set; }
/// <summary>
/// 是否可用 1 可用 2 不可用
/// </summary>
public Nullable<int> IsEnable { get; set; }
}
}
// /// <summary>
// /// 是否可用 1 可用 2 不可用
// /// </summary>
// public Nullable<int> IsEnable { get; set; }
// }
//}
//-----------------------------------------------------------------------
// <copyright file=" mod_item.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
////-----------------------------------------------------------------------
//// <copyright file=" mod_item.cs">
//// * FileName: .cs
//// </copyright>
////-----------------------------------------------------------------------
//using System;
//using System.ComponentModel.DataAnnotations;
//using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("mod_item")]
public class mod_item
{
/// <summary>
///
/// </summary>
[Key]
public int Id { get; set; }
//namespace Performance.EntityModels
//{
// /// <summary>
// ///
// /// </summary>
// [Table("mod_item")]
// public class mod_item
// {
// /// <summary>
// ///
// /// </summary>
// [Key]
// public int Id { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> ModuleId { get; set; }
// /// <summary>
// ///
// /// </summary>
// public Nullable<int> ModuleId { get; set; }
/// <summary>
/// 绩效考核项
/// </summary>
public string ItemName { get; set; }
// /// <summary>
// /// 绩效考核项
// /// </summary>
// public string ItemName { get; set; }
/// <summary>
/// 默认系数或医生系数
/// </summary>
public Nullable<decimal> FactorValue1 { get; set; }
// /// <summary>
// /// 默认系数或医生系数
// /// </summary>
// public Nullable<decimal> FactorValue1 { get; set; }
/// <summary>
/// 护理系数
/// </summary>
public Nullable<decimal> FactorValue2 { get; set; }
// /// <summary>
// /// 护理系数
// /// </summary>
// public Nullable<decimal> FactorValue2 { get; set; }
/// <summary>
/// 医技系数
/// </summary>
public Nullable<decimal> FactorValue3 { get; set; }
// /// <summary>
// /// 医技系数
// /// </summary>
// public Nullable<decimal> FactorValue3 { get; set; }
/// <summary>
/// 抽取绩效值SQL
/// </summary>
public Nullable<int> ExtractId { get; set; }
// /// <summary>
// /// 抽取绩效值SQL
// /// </summary>
// public Nullable<int> ExtractId { get; set; }
/// <summary>
/// 数据库地址
/// </summary>
public Nullable<int> ConfigId { get; set; }
// /// <summary>
// /// 数据库地址
// /// </summary>
// public Nullable<int> ConfigId { get; set; }
/// <summary>
/// 用户选定抽取范围
/// </summary>
public string SelectionRange { get; set; }
// /// <summary>
// /// 用户选定抽取范围
// /// </summary>
// public string SelectionRange { get; set; }
/// <summary>
/// 只读 0、否 1、是
/// </summary>
public Nullable<int> ReadOnly { get; set; }
}
}
// /// <summary>
// /// 只读 0、否 1、是
// /// </summary>
// public Nullable<int> ReadOnly { get; set; }
// }
//}
//-----------------------------------------------------------------------
// <copyright file=" mod_module.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
////-----------------------------------------------------------------------
//// <copyright file=" mod_module.cs">
//// * FileName: .cs
//// </copyright>
////-----------------------------------------------------------------------
//using System;
//using System.ComponentModel.DataAnnotations;
//using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("mod_module")]
public class mod_module
{
/// <summary>
///
/// </summary>
[Key]
public int Id { get; set; }
//namespace Performance.EntityModels
//{
// /// <summary>
// ///
// /// </summary>
// [Table("mod_module")]
// public class mod_module
// {
// /// <summary>
// ///
// /// </summary>
// [Key]
// public int Id { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> HospitalId { get; set; }
// /// <summary>
// ///
// /// </summary>
// public Nullable<int> HospitalId { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> SheetType { get; set; }
// /// <summary>
// ///
// /// </summary>
// public Nullable<int> SheetType { get; set; }
/// <summary>
///
/// </summary>
public string ModuleName { get; set; }
// /// <summary>
// ///
// /// </summary>
// public string ModuleName { get; set; }
/// <summary>
///
/// </summary>
public string Description { get; set; }
// /// <summary>
// ///
// /// </summary>
// public string Description { get; set; }
/// <summary>
/// 提取脚本ID
/// </summary>
public Nullable<int> ExtractId { get; set; }
// /// <summary>
// /// 提取脚本ID
// /// </summary>
// public Nullable<int> ExtractId { get; set; }
/// <summary>
/// 数据库地址
/// </summary>
public Nullable<int> ConfigId { get; set; }
// /// <summary>
// /// 数据库地址
// /// </summary>
// public Nullable<int> ConfigId { get; set; }
/// <summary>
/// 只读 0、否 1、是
/// </summary>
public Nullable<int> ReadOnly { get; set; }
// /// <summary>
// /// 只读 0、否 1、是
// /// </summary>
// public Nullable<int> ReadOnly { get; set; }
/// <summary>
/// 是否生成Item 0、否 1、是
/// </summary>
public Nullable<int> IsGenerated { get; set; }
}
}
// /// <summary>
// /// 是否生成Item 0、否 1、是
// /// </summary>
// public Nullable<int> IsGenerated { get; set; }
// }
//}
//-----------------------------------------------------------------------
// <copyright file=" mod_special.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
////-----------------------------------------------------------------------
//// <copyright file=" mod_special.cs">
//// * FileName: .cs
//// </copyright>
////-----------------------------------------------------------------------
//using System;
//using System.ComponentModel.DataAnnotations;
//using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("mod_special")]
public class mod_special
{
/// <summary>
///
/// </summary>
[Key]
public int Id { get; set; }
//namespace Performance.EntityModels
//{
// /// <summary>
// ///
// /// </summary>
// [Table("mod_special")]
// public class mod_special
// {
// /// <summary>
// ///
// /// </summary>
// [Key]
// public int Id { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> HospitalId { get; set; }
// /// <summary>
// ///
// /// </summary>
// public Nullable<int> HospitalId { get; set; }
/// <summary>
/// 科室
/// </summary>
public string Department { get; set; }
// /// <summary>
// /// 科室
// /// </summary>
// public string Department { get; set; }
/// <summary>
/// 量化指标
/// </summary>
public string Target { get; set; }
// /// <summary>
// /// 量化指标
// /// </summary>
// public string Target { get; set; }
/// <summary>
/// 量化指标绩效分值
/// </summary>
public Nullable<decimal> TargetFactor { get; set; }
// /// <summary>
// /// 量化指标绩效分值
// /// </summary>
// public Nullable<decimal> TargetFactor { get; set; }
/// <summary>
/// 调节系数
/// </summary>
public Nullable<decimal> AdjustFactor { get; set; }
// /// <summary>
// /// 调节系数
// /// </summary>
// public Nullable<decimal> AdjustFactor { get; set; }
/// <summary>
/// 抽取绩效值SQL
/// </summary>
public Nullable<int> ExtractId { get; set; }
// /// <summary>
// /// 抽取绩效值SQL
// /// </summary>
// public Nullable<int> ExtractId { get; set; }
/// <summary>
/// 数据库地址
/// </summary>
public Nullable<int> ConfigId { get; set; }
}
}
// /// <summary>
// /// 数据库地址
// /// </summary>
// public Nullable<int> ConfigId { get; set; }
// }
//}
......@@ -80,9 +80,9 @@ public class per_allot
/// 是否在抽取数据0 否、1 是、2 抽取成功、3 抽取失败
/// </summary>
public Nullable<int> IsExtracting { get; set; }
/// <summary>
/// 1、人事科提交重新生成
/// 1、人事科提交重新生成 2、生成成功 3、原始数据修改
/// </summary>
public int Generate { get; set; }
......
......@@ -80,7 +80,7 @@ public class sys_hospital
/// 是否开启规模/效率绩效 1 启用 2 禁用
/// </summary>
public Nullable<int> IsOpenDirector { get; set; }
/// <summary>
/// 是否显示绩效合计 1 显示绩效合计 2 显示管理绩效
/// </summary>
......
......@@ -21,24 +21,18 @@ namespace Performance.Extract.Api.Controllers
[Route("api/[controller]")]
public class ExtractController : Controller
{
private readonly ExtractService extractService;
private readonly NewExtractService newExtractService;
private readonly DFExtractService dfExtractService;
private readonly DFExtractService extractService;
private readonly HospitalService hospitalService;
private readonly WebapiUrl url;
private readonly ILogger<ExtractController> logger;
private readonly IHostingEnvironment evn;
public ExtractController(ExtractService extractService,
NewExtractService newExtractService,
DFExtractService dfExtractService,
public ExtractController(DFExtractService extractService,
HospitalService hospitalService,
IOptions<WebapiUrl> url,
ILogger<ExtractController> logger,
IHostingEnvironment evn)
{
this.extractService = extractService;
this.newExtractService = newExtractService;
this.dfExtractService = dfExtractService;
this.hospitalService = hospitalService;
this.url = url.Value;
this.logger = logger;
......@@ -80,34 +74,34 @@ public ApiResponse Import([FromForm] IFormCollection form, int type, int hospita
return new ApiResponse(ResponseType.Error, "获取首次文件失败!");
}
/// <summary>
/// 提取数据
/// </summary>
/// <param name="request"></param>
[HttpPost]
[Route("index")]
public void Index([FromBody]AllotRequest request)
{
var token = Guid.NewGuid().ToString("N");
logger.LogInformation(token + ",开始提取数据,请求参数:" + JsonHelper.Serialize(request));
var hospital = hospitalService.GetHopital(request.HospitalId.Value);
var filepath = extractService.ExtractData(request.ID, request.Mail, hospital, request.Path);
if (!string.IsNullOrEmpty(filepath) && FileHelper.IsExistFile(filepath))
{
int i = 1;
while (i <= 5)
{
string retJson = HttpHelper.HttpClient(url.ImportFile + $"?allotId={request.ID}&hospitalId={hospital.ID}", filepath);
logger.LogInformation(retJson);
var ret = JsonHelper.Deserialize<ApiResponse>(retJson);
if ((int)ret.State == 1)
break;
i++;
}
}
logger.LogInformation(token + ",提取结束,请求参数:" + JsonHelper.Serialize(request));
}
///// <summary>
///// 提取数据
///// </summary>
///// <param name="request"></param>
//[HttpPost]
//[Route("index")]
//public void Index([FromBody]AllotRequest request)
//{
// var token = Guid.NewGuid().ToString("N");
// logger.LogInformation(token + ",开始提取数据,请求参数:" + JsonHelper.Serialize(request));
// var hospital = hospitalService.GetHopital(request.HospitalId.Value);
// var filepath = extractService.ExtractData(request.ID, request.Mail, hospital, request.Path);
// if (!string.IsNullOrEmpty(filepath) && FileHelper.IsExistFile(filepath))
// {
// int i = 1;
// while (i <= 5)
// {
// string retJson = HttpHelper.HttpClient(url.ImportFile + $"?allotId={request.ID}&hospitalId={hospital.ID}", filepath);
// logger.LogInformation(retJson);
// var ret = JsonHelper.Deserialize<ApiResponse>(retJson);
// if ((int)ret.State == 1)
// break;
// i++;
// }
// }
// logger.LogInformation(token + ",提取结束,请求参数:" + JsonHelper.Serialize(request));
//}
#region 新版提取
......@@ -155,7 +149,7 @@ public void ExtractData([FromForm] IFormCollection form, int allotId, int hospit
#endregion
//string filePath = newExtractService.ExtractData(allotId, request.Email, hospitalId);
string filePath = dfExtractService.ExtractData(allotId, email, hospitalId, path); //抽取
string filePath = extractService.ExtractData(allotId, email, hospitalId, path); //抽取
#region 保存文件到网站下
......
......@@ -15,13 +15,13 @@ namespace Performance.Extract.Api.Controllers
public class ModExtractController : Controller
{
private readonly ILogger<ModExtractController> logger;
private ModExtractService modExtractService;
private ExConfigService service;
public ModExtractController(
ILogger<ModExtractController> logger,
ModExtractService modExtractService)
ExConfigService service)
{
this.logger = logger;
this.modExtractService = modExtractService;
this.service = service;
}
/// <summary>
......@@ -37,7 +37,7 @@ public ApiResponse Extract([CustomizeValidator(RuleSet = "Query"), FromBody]ModM
if (request.ExecuteType == null || !request.ExecuteType.Any())
return new ApiResponse(ResponseType.ParameterError, "ExecuteType 不存在,请重新选择!");
var list = modExtractService.ExtractScheme(request.HospitalId.Value, request.ExecuteType);
var list = service.ExtractScheme(request.HospitalId.Value, request.ExecuteType);
return new ApiResponse(ResponseType.OK, list);
}
......@@ -49,7 +49,7 @@ public ApiResponse Extract([CustomizeValidator(RuleSet = "Query"), FromBody]ModM
[HttpPost]
public ApiResponse FeeType()
{
var list = modExtractService.FeeType();
var list = service.FeeType();
return new ApiResponse(ResponseType.OK, list);
}
......@@ -65,7 +65,7 @@ public ApiResponse FeeSource([FromBody]ModModuleRequest request)
return new ApiResponse(ResponseType.ParameterError, "HospitalId 参数错误!");
logger.LogInformation($"请求参数绩效考核项费用来源:{JsonHelper.Serialize(request)}");
var list = modExtractService.FeeSource(request);
var list = service.FeeSource(request);
return new ApiResponse(ResponseType.OK, list);
}
......@@ -78,7 +78,7 @@ public ApiResponse FeeSource([FromBody]ModModuleRequest request)
public ApiResponse Items([FromBody]ModItemRequest request)
{
logger.LogInformation($"绩效收入模板配置项列表:{JsonHelper.Serialize(request)}");
modExtractService.AddItems(request.ModuleId.Value);
service.AddItems(request.ModuleId.Value);
return new ApiResponse(ResponseType.OK);
}
}
......
......@@ -6,6 +6,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="2.2.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.1" />
......
//-----------------------------------------------------------------------
// <copyright file=" cof_depttype.cs">
// * FileName: cof_depttype.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// cof_depttype Repository
/// </summary>
public partial class PerforCofdepttypeRepository : PerforRepository<cof_depttype>
{
public PerforCofdepttypeRepository(PerformanceDbContext context) : base(context)
{
}
}
}
//-----------------------------------------------------------------------
// <copyright file=" ex_special.cs">
// * FileName: ex_special.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// ex_special Repository
/// </summary>
public partial class PerforExspecialRepository : PerforRepository<ex_special>
{
public PerforExspecialRepository(PerformanceDbContext context) : base(context)
{
}
}
}
//-----------------------------------------------------------------------
// <copyright file=" mod_extract.cs">
// * FileName: mod_extract.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using Performance.EntityModels;
////-----------------------------------------------------------------------
//// <copyright file=" mod_extract.cs">
//// * FileName: mod_extract.cs
//// </copyright>
////-----------------------------------------------------------------------
//using System;
//using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// mod_extract Repository
/// </summary>
public partial class PerforModextractRepository : PerforRepository<mod_extract>
{
public PerforModextractRepository(PerformanceDbContext context) : base(context)
{
}
}
}
//namespace Performance.Repository
//{
// /// <summary>
// /// mod_extract Repository
// /// </summary>
// public partial class PerforModextractRepository : PerforRepository<mod_extract>
// {
// public PerforModextractRepository(PerformanceDbContext context) : base(context)
// {
// }
// }
//}
//-----------------------------------------------------------------------
// <copyright file=" mod_item.cs">
// * FileName: mod_item.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using Performance.EntityModels;
////-----------------------------------------------------------------------
//// <copyright file=" mod_item.cs">
//// * FileName: mod_item.cs
//// </copyright>
////-----------------------------------------------------------------------
//using System;
//using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// mod_item Repository
/// </summary>
public partial class PerforModitemRepository : PerforRepository<mod_item>
{
public PerforModitemRepository(PerformanceDbContext context) : base(context)
{
}
}
}
//namespace Performance.Repository
//{
// /// <summary>
// /// mod_item Repository
// /// </summary>
// public partial class PerforModitemRepository : PerforRepository<mod_item>
// {
// public PerforModitemRepository(PerformanceDbContext context) : base(context)
// {
// }
// }
//}
//-----------------------------------------------------------------------
// <copyright file=" mod_module.cs">
// * FileName: mod_module.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using Performance.EntityModels;
////-----------------------------------------------------------------------
//// <copyright file=" mod_module.cs">
//// * FileName: mod_module.cs
//// </copyright>
////-----------------------------------------------------------------------
//using System;
//using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// mod_module Repository
/// </summary>
public partial class PerforModmoduleRepository : PerforRepository<mod_module>
{
public PerforModmoduleRepository(PerformanceDbContext context) : base(context)
{
}
}
}
//namespace Performance.Repository
//{
// /// <summary>
// /// mod_module Repository
// /// </summary>
// public partial class PerforModmoduleRepository : PerforRepository<mod_module>
// {
// public PerforModmoduleRepository(PerformanceDbContext context) : base(context)
// {
// }
// }
//}
//-----------------------------------------------------------------------
// <copyright file=" mod_special.cs">
// * FileName: mod_special.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using Performance.EntityModels;
////-----------------------------------------------------------------------
//// <copyright file=" mod_special.cs">
//// * FileName: mod_special.cs
//// </copyright>
////-----------------------------------------------------------------------
//using System;
//using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// mod_special Repository
/// </summary>
public partial class PerforModspecialRepository : PerforRepository<mod_special>
{
public PerforModspecialRepository(PerformanceDbContext context) : base(context)
{
}
}
}
//namespace Performance.Repository
//{
// /// <summary>
// /// mod_special Repository
// /// </summary>
// public partial class PerforModspecialRepository : PerforRepository<mod_special>
// {
// public PerforModspecialRepository(PerformanceDbContext context) : base(context)
// {
// }
// }
//}
This source diff could not be displayed because it is too large. You can view the blob instead.
using Dapper;
using Dapper;
using FluentValidation.Validators;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Logging;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
......@@ -13,12 +11,11 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace Performance.Services
{
public class DFExtractService1 : IAutoInjection
public class DFExtractService : IAutoInjection
{
#region
private readonly ILogger<ExtractService> logger;
......@@ -26,57 +23,44 @@ public class DFExtractService1 : IAutoInjection
private readonly PerSheetService perSheetService;
private readonly PerforHospitalRepository perforHospitalRepository;
private readonly PerforHospitalconfigRepository perforHospitalconfigRepository;
private readonly PerforModmoduleRepository perforModmoduleRepository;
private readonly PerforModextractRepository perforModextractRepository;
private readonly PerforModitemRepository perforModitemRepository;
private readonly PerforModspecialRepository perforModspecialRepository;
private readonly PerforPerallotRepository perforPerallotRepository;
private readonly PerforImspecialunitRepository perforImspecialunitRepository;
private readonly PerforImdataRepository perforImdataRepository;
private readonly PerforRepimportconfigRepository repimportconfigRepository;
private readonly LogManageService logManageService;
private readonly PerforExitemRepository perforExitemRepository;
private readonly PerforExmoduleRepository perforExmoduleRepository;
private readonly PerforExspecialRepository perforExspecialRepository;
private readonly PerforExresultRepository perforExresultRepository;
private readonly PerforExscriptRepository perforExscriptRepository;
private readonly PerforExtypeRepository perforExtypeRepository;
private IWorkbook workbook = null;
private ICellStyle style;
private per_allot Allot;
public DFExtractService1(ILogger<ExtractService> logger,
public DFExtractService(ILogger<ExtractService> logger,
IEmailService emailService,
PerSheetService perSheetService,
PerforHospitalRepository perforHospitalRepository,
PerforHospitalconfigRepository perforHospitalconfigRepository,
PerforModmoduleRepository perforModmoduleRepository,
PerforModextractRepository perforModextractRepository,
PerforModitemRepository perforModitemRepository,
PerforModspecialRepository perforModspecialRepository,
PerforPerallotRepository perforPerallotRepository,
PerforImspecialunitRepository perforImspecialunitRepository,
PerforImdataRepository perforImdataRepository,
PerforRepimportconfigRepository repimportconfigRepository,
LogManageService logManageService,
PerforExitemRepository perforExitemRepository,
PerforExmoduleRepository perforExmoduleRepository,
PerforExspecialRepository perforExspecialRepository,
PerforExresultRepository perforExresultRepository,
PerforExscriptRepository perforExscriptRepository,
PerforExtypeRepository perforExtypeRepository)
PerforExscriptRepository perforExscriptRepository)
{
this.logger = logger;
this.emailService = emailService;
this.perSheetService = perSheetService;
this.perforHospitalRepository = perforHospitalRepository;
this.perforHospitalconfigRepository = perforHospitalconfigRepository;
this.perforModmoduleRepository = perforModmoduleRepository;
this.perforModextractRepository = perforModextractRepository;
this.perforModitemRepository = perforModitemRepository;
this.perforModspecialRepository = perforModspecialRepository;
this.perforPerallotRepository = perforPerallotRepository;
this.perforImspecialunitRepository = perforImspecialunitRepository;
this.perforImdataRepository = perforImdataRepository;
......@@ -85,9 +69,9 @@ public class DFExtractService1 : IAutoInjection
this.perforExitemRepository = perforExitemRepository;
this.perforExmoduleRepository = perforExmoduleRepository;
this.perforExspecialRepository = perforExspecialRepository;
this.perforExresultRepository = perforExresultRepository;
this.perforExscriptRepository = perforExscriptRepository;
this.perforExtypeRepository = perforExtypeRepository;
}
#endregion
......@@ -101,12 +85,12 @@ public string ExtractData(int allotId, string email, int hospitalId, string file
var allot = perforPerallotRepository.GetEntity(t => t.ID == allotId);
Allot = allot ?? throw new PerformanceException("");
var configs = perforHospitalconfigRepository.GetEntities(t => t.HospitalId == hospitalId);
var statesArray = new int[] { (int)AllotStates.GenerateSucceed, (int)AllotStates.Archive };
var allots = perforPerallotRepository.GetEntities(t => t.HospitalId == hospitalId && statesArray.Contains(t.States));
var lastAllot = allots?.OrderByDescending(t => t.Year).ThenByDescending(t => t.Month).First();
var configs = perforHospitalconfigRepository.GetEntities(t => t.HospitalId == hospitalId);
var typeIds = new List<int>();
var modules = perforExmoduleRepository.GetEntities(t => t.HospitalId == hospitalId);
var items = new List<ex_item>();
......@@ -118,15 +102,23 @@ public string ExtractData(int allotId, string email, int hospitalId, string file
typeIds.AddRange(items?.Select(t => t.TypeId ?? 0) ?? new List<int>());
}
var specials = perforModspecialRepository.GetEntities(t => t.HospitalId == hospitalId);
var specials = perforExspecialRepository.GetEntities(t => t.HospitalId == hospitalId);
if (specials != null && specials.Any())
typeIds.AddRange(specials.Select(t => t.ExtractId ?? 0));
typeIds.AddRange(specials.Select(t => t.TypeId ?? 0));
typeIds = typeIds.Distinct().ToList();
var extracts = perforModextractRepository.GetEntities(t => typeIds.Contains(t.Id));
var data = new List<ex_result>();
var scripts = perforExscriptRepository.GetEntities(t => typeIds.Contains(t.TypeId));
ClearHistData(allot);
if (scripts != null && scripts.Any())
{
data.AddRange(ExtractIncome(modules, scripts, configs, allot));
data.AddRange(ExtractItems(items, scripts, configs, allot, modules));
data.AddRange(ExtractSpcial(specials, scripts, configs, allot));
}
return lastAllot == null ? TemplateExecute(email, hospital, configs, modules, items, specials, extracts)
: AlllotExecute(email, hospital, configs, modules, items, specials, extracts, lastAllot, filePath);
return lastAllot == null ? TemplateExecute(email, hospital, configs, modules, items, specials, data)
: AlllotExecute(email, hospital, configs, modules, items, specials, data, lastAllot, filePath);
}
catch (Exception ex)
{
......@@ -145,41 +137,124 @@ public string ExtractData(int allotId, string email, int hospitalId, string file
}
}
private void ExtractData(List<int> typeIds, List<sys_hospitalconfig> configs, per_allot allot)
/// <summary>
/// 抽取收入费用
/// </summary>
/// <typeparam name="TEntity">ex_module</typeparam>
/// <param name="entities"></param>
/// <param name="scripts">抽取配置项</param>
/// <param name="configs">数据连接项</param>
/// <param name="allot">绩效</param>
/// <returns></returns>
private List<ex_result> ExtractIncome<TEntity>(List<TEntity> entities, List<ex_script> scripts, List<sys_hospitalconfig> configs, per_allot allot)
{
var type = perforExtypeRepository.GetEntities(t => typeIds.Contains(t.Id));
var scripts = perforExscriptRepository.GetEntities(t => typeIds.Contains(t.TypeId));
if (configs == null || !configs.Any()) return;
foreach (var item in scripts)
var data = new List<ex_result>();
var modules = entities?.Select(t => t as ex_module);
if (modules == null || !modules.Any(t => t.SheetType == (int)SheetType.Income && t.TypeId > 0))
return data;
foreach (var module in modules.Where(t => t.TypeId > 0))
{
foreach (var config in configs)
foreach (var item in scripts.Where(t => t.TypeId == module.TypeId))
{
string executeScript = item.ExecScript;
var parameters = GetParameters(allot);
using (var connection = ConnectionBuilder.Create((DatabaseType)config.DataBaseType, config.DbSource, config.DbName, config.DbUser, config.DbPassword))
//{
// foreach (var param in parameters)
// {
// executeScript = Regex.Replace(executeScript, param.Key, param.Value, RegexOptions.IgnoreCase);
// }
// logger.LogInformation($"提取绩效数据 {category ?? ""}SQL脚本{executeScript}");
// var result = connection.Query<ExtractDto>(executeScript, commandTimeout: 20000);
// logger.LogInformation($"提取绩效数据 {category ?? ""} 执行脚本获取数据{result?.Count() ?? 0}条记录");
// if (result != null && result.Count() > 0)
// {
// if (extract.ExecuteType == 2)
// {
// foreach (var item in result)
// {
// item.Category = category;
// }
// }
// return result.Where(t => !string.IsNullOrEmpty(t.Category)).ToList();
// }
//}
//return null;
foreach (var config in configs)
{
data.AddRange(QueryData(config, allot, item.ExecScript, module.ModuleName));
}
}
}
if (data != null && data.Any())
perforExresultRepository.AddRange(data.ToArray());
return data;
}
/// <summary>
/// 抽取支出、工作量等费用
/// </summary>
/// <typeparam name="TEntity"></typeparam>
/// <param name="entities"></param>
/// <param name="scripts"></param>
/// <param name="configs"></param>
/// <param name="allot"></param>
/// <param name="modules"></param>
/// <returns></returns>
private List<ex_result> ExtractItems<TEntity>(List<TEntity> entities, List<ex_script> scripts, List<sys_hospitalconfig> configs, per_allot allot, List<ex_module> modules)
{
var data = new List<ex_result>();
var items = entities?.Select(t => t as ex_item);
if (items == null || !items.Any(t => t.TypeId > 0))
return data;
foreach (var exitem in items.Where(t => t.TypeId > 0))
{
var model = modules.FirstOrDefault(t => t.Id == exitem.ModuleId);
foreach (var item in scripts.Where(t => t.TypeId == exitem.TypeId))
{
foreach (var config in configs)
{
var result = QueryData(config, allot, item.ExecScript, model.ModuleName);
result.ForEach(t => t.Category = exitem.ItemName);
data.AddRange(result);
}
}
}
if (data != null && data.Any())
perforExresultRepository.AddRange(data.ToArray());
return data;
}
/// <summary>
/// 抽取特殊科室数据
/// </summary>
/// <typeparam name="TEntity"></typeparam>
/// <param name="entities"></param>
/// <param name="scripts"></param>
/// <param name="configs"></param>
/// <param name="allot"></param>
/// <returns></returns>
private List<ex_result> ExtractSpcial<TEntity>(List<TEntity> entities, List<ex_script> scripts, List<sys_hospitalconfig> configs, per_allot allot)
{
var data = new List<ex_result>();
var specials = entities?.Select(t => t as ex_special);
if (specials == null || !specials.Any(t => t.TypeId > 0))
return data;
foreach (var special in specials.Where(t => t.TypeId > 0))
{
foreach (var item in scripts.Where(t => t.TypeId == special.TypeId))
{
foreach (var config in configs)
{
var result = QueryData(config, allot, item.ExecScript, "");
result.ForEach(t =>
{
t.Category = special.Target;
t.Department = special.Department;
});
data.AddRange(result);
}
}
}
if (data != null && data.Any())
perforExresultRepository.AddRange(data.ToArray());
return data;
}
/// <summary>
/// 清除历史抽取数据
/// </summary>
/// <param name="allot"></param>
private void ClearHistData(per_allot allot)
{
logger.LogInformation($"开始清除历史提取数据");
var data = perforExresultRepository.GetEntities(t => t.AllotId == allot.ID);
if (data == null || !data.Any(t => t.Id > 0))
return;
perforExresultRepository.RemoveRange(data.ToArray());
}
/// <summary>
......@@ -194,7 +269,7 @@ private void ExtractData(List<int> typeIds, List<sys_hospitalconfig> configs, pe
/// <param name="specials"></param>
/// <param name="extracts"></param>
/// <returns></returns>
public string TemplateExecute(string email, sys_hospital hospital, List<sys_hospitalconfig> configs, List<ex_module> modules, List<ex_item> items, List<mod_special> specials, List<mod_extract> extracts)
public string TemplateExecute(string email, sys_hospital hospital, List<sys_hospitalconfig> configs, List<ex_module> modules, List<ex_item> items, List<ex_special> specials, List<ex_result> data)
{
string originalPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Template", "东方医院绩效模板.xlsx");
var (tempPath, newPath) = CopyOriginalFile(hospital.ID, originalPath);
......@@ -216,19 +291,19 @@ public string TemplateExecute(string email, sys_hospital hospital, List<sys_hosp
switch (sheetType)
{
case SheetType.OtherIncome:
WriteOtherIncome(sheet, sheetRead, unitList, configs, modules, items, extracts);
WriteOtherIncome(sheet, sheetRead, unitList, configs, modules, items, data);
break;
case SheetType.Income:
WriteIncome(sheet, sheetRead, unitList, configs, modules, items, extracts);
WriteIncome(sheet, sheetRead, unitList, configs, modules, items, data);
break;
case SheetType.Expend:
WriteExpend(sheet, sheetRead, unitList, configs, modules, items, extracts);
WriteExpend(sheet, sheetRead, unitList, configs, modules, items, data);
break;
case SheetType.Workload:
WriteWorkload(sheet, sheetRead, unitList, configs, modules, items, extracts);
WriteWorkload(sheet, sheetRead, unitList, configs, modules, items, data);
break;
case SheetType.SpecialUnit:
WriteSpecialUnit(sheet, sheetRead, configs, specials, extracts);
WriteSpecialUnit(sheet, sheetRead, configs, specials, data);
break;
}
}
......@@ -255,7 +330,7 @@ public string TemplateExecute(string email, sys_hospital hospital, List<sys_hosp
/// <param name="specials"></param>
/// <param name="extracts"></param>
/// <returns></returns>
public string AlllotExecute(string email, sys_hospital hospital, List<sys_hospitalconfig> configs, List<ex_module> modules, List<ex_item> items, List<mod_special> specials, List<mod_extract> extracts, per_allot lastAllot, string path)
public string AlllotExecute(string email, sys_hospital hospital, List<sys_hospitalconfig> configs, List<ex_module> modules, List<ex_item> items, List<ex_special> specials, List<ex_result> extracts, per_allot lastAllot, string path)
{
if (string.IsNullOrEmpty(path)) throw new PerformanceException("历史绩效文件不存在!");
......@@ -316,6 +391,123 @@ public string AlllotExecute(string email, sys_hospital hospital, List<sys_hospit
#endregion
#region QueryData
/// <summary>
/// 查询数据
/// </summary>
/// <param name="config"></param>
/// <param name="allot"></param>
/// <param name="execsql"></param>
/// <param name="source"></param>
/// <param name="category"></param>
/// <returns></returns>
private List<ex_result> QueryData(sys_hospitalconfig config, per_allot allot, string execsql, string source, string category = "")
{
var data = new List<ex_result>();
var parameters = GetParameters(allot);
using (var connection = ConnectionBuilder.Create((DatabaseType)config.DataBaseType, config.DbSource, config.DbName, config.DbUser, config.DbPassword))
{
foreach (var item in parameters)
{
execsql = Regex.Replace(execsql, item.Key, item.Value, RegexOptions.IgnoreCase);
}
logger.LogInformation($"提取绩效数据 {category ?? ""}SQL脚本{execsql}");
var result = connection.Query<ExtractDto>(execsql, commandTimeout: 20000);
logger.LogInformation($"提取绩效数据 {category ?? ""} 执行脚本获取数据{result?.Count() ?? 0}条记录");
if (result != null && result.Count() > 0)
{
data = result.Select(t => new ex_result
{
Department = t.Department,
Category = t.Category,
Fee = t.Value,
Source = source,
DatabaseType = config.DataBaseType,
ConfigId = config.Id,
}).ToList();
}
return data;
}
}
/// <summary>
/// 获取参数
/// </summary>
/// <param name="allot"></param>
/// <returns></returns>
private Dictionary<string, string> GetParameters(per_allot allot)
{
DateTime beginTime = new DateTime(allot.Year, allot.Month, 1);
Dictionary<string, string> pairs = new Dictionary<string, string>
{
{ "@beginTime", $"'{beginTime.ToString("yyyy-MM-dd")}'" },
{ "@endTime", $"'{beginTime.AddMonths(1).ToString("yyyy-MM-dd")}'"},
};
return pairs;
}
/// <summary>
/// 从HIS抽取报表数据
/// </summary>
/// <param name="allot"></param>
/// <param name="configs"></param>
public void ImportData(per_allot allot, List<sys_hospitalconfig> configs)
{
Dictionary<string, object> pairs = new Dictionary<string, object>
{
{ "@allotid", allot.ID },
{ "@hospitalid", allot.HospitalId },
{ "@year", allot.Year },
{ "@month", allot.Month },
};
var imports = repimportconfigRepository.GetEntities(w => w.ScriptType == 1);
if (imports == null || !imports.Any()) return;
foreach (var import in imports)
{
var conf = configs.FirstOrDefault(w => w.HospitalId == allot.HospitalId && w.Id == import.ConfigId);
if (conf != null)
{
var timeRanges = import.TimeRange.SplitRemoveEmpty(",");
if (timeRanges == null || !timeRanges.Any()) continue;
foreach (var item in timeRanges)
{
if (item == "1")
{
pairs["@year"] = allot.Year;
pairs["@month"] = allot.Month;
}
else if (item == "2")
{
pairs["@year"] = allot.Year - 1;
pairs["@month"] = allot.Month;
}
else if (item == "3")
{
pairs["@year"] = allot.Year;
pairs["@month"] = allot.Month - 1;
}
try
{
DatabaseType type = (DatabaseType)conf.DataBaseType;
var connection = ConnectionBuilder.Create(type, conf.DbSource, conf.DbName, conf.DbUser, conf.DbPassword);
var data = connection.Query(import.ImportScript, new DynamicParameters(pairs), commandTimeout: 60 * 60);
perforPerallotRepository.ImportData(import, pairs, data);
}
catch (Exception ex)
{
logger.LogError(ex.ToString());
}
}
}
}
}
#endregion
#region Excel
private (string TempPath, string NewPath) CopyOriginalFile(int hospitalId, string originalPath)
......@@ -329,7 +521,7 @@ public string AlllotExecute(string email, sys_hospital hospital, List<sys_hospit
return (tempPath, newPath);
}
private static void CreateNotExistSheet(List<mod_module> modulesList, IWorkbook workbook)
private static void CreateNotExistSheet(List<ex_module> modulesList, IWorkbook workbook)
{
SortedDictionary<string, int> pairs = new SortedDictionary<string, int>();
for (int i = 0; i < workbook.NumberOfSheets; i++)
......@@ -408,7 +600,7 @@ private ICell GetOrCreate(IRow row, int index)
#region SheetData
private void WriteOtherIncome(ISheet sheet, IPerSheetDataRead sheetRead, List<AccountUnitEntity> unitList, List<sys_hospitalconfig> configs, List<mod_module> modules, List<mod_item> items, List<mod_extract> extracts, bool isNewTemp = true)
private void WriteOtherIncome(ISheet sheet, IPerSheetDataRead sheetRead, List<AccountUnitEntity> unitList, List<sys_hospitalconfig> configs, List<ex_module> modules, List<ex_item> items, List<ex_result> data, bool isNewTemp = true)
{
logger.LogInformation($"{sheet.SheetName}开始提取.");
var module = modules.FirstOrDefault(t => t.SheetType == (int)SheetType.OtherIncome);
......@@ -420,34 +612,23 @@ private void WriteOtherIncome(ISheet sheet, IPerSheetDataRead sheetRead, List<Ac
WriteHeaderAndFactor(sheet, sheetRead, itemList, isNewTemp);
//查询数据
var extractIdList = itemList.Select(t => t.ExtractId).Distinct().ToList();
var extractList = extracts.Where(t => extractIdList.Contains(t.Id)).ToList();
if (extractList == null || extractList.Count == 0) return;
var extractdata = data.Where(t => t.AllotId == Allot.ID && t.Source == module.ModuleName);
if (extractdata == null || !extractdata.Any())
return;
List<ExtractDto> allExtract = new List<ExtractDto>();
foreach (var item in extractList)
//查询数据
List<ExtractDto> allExtract = extractdata.Select(t => new ExtractDto
{
var category = itemList.Where(t => t.ExtractId == item.Id);
if (category == null || category.Count() == 0) continue;
foreach (var moditem in category)
{
logManageService.WriteMsg("提取绩效数据", $"执行SQL脚本获取数据 -- {module.ModuleName}", 1, Allot.ID, "ReceiveMessage");
logger.LogInformation($"提取绩效数据 执行SQL脚本获取数据 -- {module.ModuleName},");
var config = configs.FirstOrDefault(t => t.Id == moditem.ConfigId);
if (config == null) continue;
var result = QueryDatabase(config, item, Allot, moditem.ItemName);
if (result != null)
allExtract.AddRange(result);
}
}
Department = t.Department,
Category = t.Category,
Value = t.Fee ?? 0
}).ToList();
WriteSheetData(sheet, sheetRead, unitList, allExtract, itemList.Select(t => t.ItemName), isNewTemp);
logger.LogInformation($"{sheet.SheetName}提取结束.");
}
private void WriteIncome(ISheet sheet, IPerSheetDataRead sheetRead, List<AccountUnitEntity> unitList, List<sys_hospitalconfig> configs, List<mod_module> modules, List<mod_item> items, List<mod_extract> extracts, bool isNewTemp = true)
private void WriteIncome(ISheet sheet, IPerSheetDataRead sheetRead, List<AccountUnitEntity> unitList, List<sys_hospitalconfig> configs, List<ex_module> modules, List<ex_item> items, List<ex_result> data, bool isNewTemp = true)
{
logger.LogInformation($"{sheet.SheetName}开始提取.");
var module = modules.FirstOrDefault(t => t.ModuleName.Replace(" ", "") == sheet.SheetName.Replace(" ", ""));
......@@ -457,22 +638,17 @@ private void WriteIncome(ISheet sheet, IPerSheetDataRead sheetRead, List<Account
logger.LogInformation($"item有{itemList?.Count ?? 0}个.");
if (itemList == null || !itemList.Any()) return;
//查询数据
var extractList = extracts.Where(t => module.ExtractId == t.Id).ToList();
if (extractList == null || extractList.Count == 0) return;
var extractdata = data.Where(t => t.AllotId == Allot.ID && t.Source == module.ModuleName);
if (extractdata == null || !extractdata.Any())
return;
List<ExtractDto> allExtract = new List<ExtractDto>();
foreach (var item in extractList)
//查询数据
List<ExtractDto> allExtract = extractdata.Select(t => new ExtractDto
{
logManageService.WriteMsg("提取绩效数据", $"执行SQL脚本获取数据 -- {module.ModuleName}", 1, Allot.ID, "ReceiveMessage");
logger.LogInformation($"提取绩效数据 执行SQL脚本获取数据 -- {module.ModuleName}");
var config = configs.FirstOrDefault(t => t.Id == module.ConfigId);
if (config == null) continue;
var result = QueryDatabase(config, item, Allot);
if (result != null)
allExtract.AddRange(result);
}
Department = t.Department,
Category = t.Category,
Value = t.Fee ?? 0
}).ToList();
logger.LogInformation($"{sheet.SheetName}合计值为: " + allExtract.Sum(t => t.Value));
......@@ -482,7 +658,7 @@ private void WriteIncome(ISheet sheet, IPerSheetDataRead sheetRead, List<Account
logger.LogInformation($"{sheet.SheetName}提取结束.");
}
private void WriteExpend(ISheet sheet, IPerSheetDataRead sheetRead, List<AccountUnitEntity> unitList, List<sys_hospitalconfig> configs, List<mod_module> modules, List<mod_item> items, List<mod_extract> extracts, bool isNewTemp = true)
private void WriteExpend(ISheet sheet, IPerSheetDataRead sheetRead, List<AccountUnitEntity> unitList, List<sys_hospitalconfig> configs, List<ex_module> modules, List<ex_item> items, List<ex_result> data, bool isNewTemp = true)
{
logger.LogInformation($"{sheet.SheetName}开始提取.");
var module = modules.FirstOrDefault(t => t.SheetType == (int)SheetType.Expend);
......@@ -494,34 +670,23 @@ private void WriteExpend(ISheet sheet, IPerSheetDataRead sheetRead, List<Account
WriteHeaderAndFactor(sheet, sheetRead, itemList, isNewTemp);
//查询数据
var extractIdList = itemList.Select(t => t.ExtractId).Distinct().ToList();
var extractList = extracts.Where(t => extractIdList.Contains(t.Id)).ToList();
if (extractList == null || extractList.Count == 0) return;
var extractdata = data.Where(t => t.AllotId == Allot.ID && t.Source == module.ModuleName);
if (extractdata == null || !extractdata.Any())
return;
List<ExtractDto> allExtract = new List<ExtractDto>();
foreach (var item in extractList)
//查询数据
List<ExtractDto> allExtract = extractdata.Select(t => new ExtractDto
{
var category = itemList.Where(t => t.ExtractId == item.Id);
if (category == null || category.Count() == 0) continue;
foreach (var moditem in category)
{
logManageService.WriteMsg("提取绩效数据", $"执行SQL脚本获取数据 -- {module.ModuleName}", 1, Allot.ID, "ReceiveMessage");
logger.LogInformation($"提取绩效数据 执行SQL脚本获取数据 -- {module.ModuleName},");
var config = configs.FirstOrDefault(t => t.Id == moditem.ConfigId);
if (config == null) continue;
var result = QueryDatabase(config, item, Allot, moditem.ItemName);
if (result != null)
allExtract.AddRange(result);
}
}
Department = t.Department,
Category = t.Category,
Value = t.Fee ?? 0
}).ToList();
WriteSheetData(sheet, sheetRead, unitList, allExtract, itemList.Select(t => t.ItemName), isNewTemp);
logger.LogInformation($"{sheet.SheetName}提取结束.");
}
private void WriteWorkload(ISheet sheet, IPerSheetDataRead sheetRead, List<AccountUnitEntity> unitList, List<sys_hospitalconfig> configs, List<mod_module> modules, List<mod_item> items, List<mod_extract> extracts, bool isNewTemp = true)
private void WriteWorkload(ISheet sheet, IPerSheetDataRead sheetRead, List<AccountUnitEntity> unitList, List<sys_hospitalconfig> configs, List<ex_module> modules, List<ex_item> items, List<ex_result> data, bool isNewTemp = true)
{
logger.LogInformation($"{sheet.SheetName}开始提取.");
var module = modules.FirstOrDefault(t => t.ModuleName.Replace(" ", "") == sheet.SheetName.Replace(" ", ""));
......@@ -533,29 +698,17 @@ private void WriteWorkload(ISheet sheet, IPerSheetDataRead sheetRead, List<Accou
WriteWorkHeader(sheet, sheetRead, itemList, isNewTemp);
//查询数据
var extractIdList = itemList.Select(t => t.ExtractId).Distinct().ToList();
var extractList = extracts.Where(t => extractIdList.Contains(t.Id)).ToList();
if (extractList == null || extractList.Count == 0) return;
var extractdata = data.Where(t => t.AllotId == Allot.ID && t.Source == module.ModuleName);
if (extractdata == null || !extractdata.Any())
return;
List<ExtractDto> allExtract = new List<ExtractDto>();
foreach (var item in extractList)
//查询数据
List<ExtractDto> allExtract = extractdata.Select(t => new ExtractDto
{
var category = itemList.Where(t => t.ExtractId == item.Id);
if (category == null || category.Count() == 0) continue;
foreach (var moditem in category)
{
logManageService.WriteMsg("提取绩效数据", $"执行SQL脚本获取数据 -- {module.ModuleName}", 1, Allot.ID, "ReceiveMessage");
logger.LogInformation($"提取绩效数据 执行SQL脚本获取数据 -- {module.ModuleName}");
var config = configs.FirstOrDefault(t => t.Id == moditem.ConfigId);
if (config == null) continue;
var result = QueryDatabase(config, item, Allot, moditem.ItemName);
if (result != null)
allExtract.AddRange(result);
logger.LogInformation($"{module.ModuleName}提取{moditem.ItemName}的合计值为: " + allExtract.Sum(t => t.Value));
}
}
Department = t.Department,
Category = t.Category,
Value = t.Fee ?? 0
}).ToList();
var specialHead = new List<string>();
var extractHead = allExtract?.Select(t => t.Category);
......@@ -622,10 +775,10 @@ private void WriteWorkload(ISheet sheet, IPerSheetDataRead sheetRead, List<Accou
#endregion
private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<sys_hospitalconfig> configs, List<mod_special> specials, List<mod_extract> extracts, bool IsWriteHead = true, per_allot lastAllot = null)
private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<sys_hospitalconfig> configs, List<ex_special> specials, List<ex_result> data, bool IsWriteHead = true, per_allot lastAllot = null)
{
logger.LogInformation($"{sheet.SheetName}开始提取.");
var dictionary = new Dictionary<string, Func<mod_special, List<im_specialunit>, object>>
var dictionary = new Dictionary<string, Func<ex_special, List<im_specialunit>, object>>
{
{ "科室", (special,lastallot) => special.Department },
{ "人数", (special,lastallot) => lastallot.Where(t=>special.Department == t.Department).Max(t=>t.Number) },
......@@ -642,28 +795,6 @@ private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<sy
if (lastAllot != null)
allotDataList = perforImspecialunitRepository.GetEntities(t => t.AllotID == lastAllot.ID);
////查询数据
//var extractIdList = speaialList.Select(t => t.ExtractId).Distinct().ToList();
//var extractList = extracts.Where(t => extractIdList.Contains(t.Id)).ToList();
//List<ExtractDto> allExtract = new List<ExtractDto>();
//foreach (var item in extractList)
//{
// var category = speaialList.Where(t => t.ExtractId == item.Id);
// if (category == null || category.Count() == 0) continue;
// foreach (var specialitem in category)
// {
// logManageService.WriteMsg("提取绩效数据", $"执行SQL脚本获取数据 -- 特殊核算单元绩效测算表", 1, Allot.ID, "ReceiveMessage");
// logger.Information($"执行SQL脚本获取数据 -- 特殊核算单元绩效测算表,", "提取绩效数据");
// var config = configs.FirstOrDefault(t => t.Id == specialitem.ConfigId);
// if (config == null) continue;
// var result = QueryDatabase(config, item, Allot, specialitem.Target);
// if (result != null)
// allExtract.AddRange(result);
// }
//}
//取消合并单元格
int mergedCount = sheet.NumMergedRegions;
for (int i = mergedCount - 1; i >= 0; i--)
......@@ -682,6 +813,8 @@ private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<sy
int mergedBegin = sheetRead.Point.DataFirstRowNum.Value;
int mergedEnd = sheetRead.Point.DataFirstRowNum.Value;
var extractdata = data.Where(t => t.AllotId == Allot.ID && t.Source == "4.2 特殊核算单元绩效测算表");
logManageService.WriteMsg("提取绩效数据", $"填充数据 -- 特殊核算单元绩效测算表", 1, Allot.ID, "ReceiveMessage");
logger.LogInformation($"提取绩效数据 填充数据 -- 特殊核算单元绩效测算表");
for (int i = 0; i < speaialList.Count; i++)
......@@ -708,17 +841,9 @@ private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<sy
mergedEnd = mergedBegin + count - 1;
}
}
if (cell.StringCellValue == "数量" && speaialList[i]?.ExtractId > 0)
if (cell.StringCellValue == "数量" && speaialList[i]?.TypeId > 0)
{
logManageService.WriteMsg("提取绩效数据", $"执行SQL脚本获取数据 -- 特殊核算单元绩效测算表", 1, Allot.ID, "ReceiveMessage");
logger.LogInformation($"提取绩效数据 执行SQL脚本获取数据 -- 特殊核算单元绩效测算表 ");
var config = configs.FirstOrDefault(t => t.Id == speaialList[i].ConfigId);
if (config == null) continue;
var ext = extracts.FirstOrDefault(w => w.Id == speaialList[i]?.ExtractId);
var result = QueryDatabase(config, ext, Allot);
value = result?.FirstOrDefault()?.Value;
value = extractdata?.FirstOrDefault(t => t.Category == speaialList[i].Target)?.Fee;
}
if (!new List<string> { "量化指标", "数量", "量化指标绩效分值" }.Contains(cell.StringCellValue) && rowIndex == mergedBegin)
......@@ -748,7 +873,7 @@ private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<sy
/// <param name="sheetRead"></param>
/// <param name="items">列头数据(列名、系数)</param>
/// <param name="isNewTemp">是否为空白模板</param>
private void WriteHeaderAndFactor(ISheet sheet, IPerSheetDataRead sheetRead, List<mod_item> items, bool isNewTemp)
private void WriteHeaderAndFactor(ISheet sheet, IPerSheetDataRead sheetRead, List<ex_item> items, bool isNewTemp)
{
var nurseFactor = sheet.GetRow(sheetRead.Point.AccountingUnit.First(t => t.UnitType == "护理组").FactorRow.Value);
var doctorFactor = sheet.GetRow(sheetRead.Point.AccountingUnit.First(t => t.UnitType == "医生组").FactorRow.Value);
......@@ -758,7 +883,7 @@ private void WriteHeaderAndFactor(ISheet sheet, IPerSheetDataRead sheetRead, Lis
logManageService.WriteMsg("提取绩效数据", $"写入列头信息 -- {sheet.SheetName}", 1, Allot.ID, "ReceiveMessage");
logger.LogInformation($"提取绩效数据 提取绩效数据 写入列头信息 -- {sheet.SheetName}");
var cellItems = new List<mod_item>();
var cellItems = new List<ex_item>();
cellItems.AddRange(items);
if (!isNewTemp)
{
......@@ -986,12 +1111,12 @@ private void WriteSheetData(ISheet sheet, IPerSheetDataRead sheetRead, List<Acco
/// <param name="sheetRead"></param>
/// <param name="items"></param>
/// <param name="isNewTemp"></param>
private void WriteWorkHeader(ISheet sheet, IPerSheetDataRead sheetRead, List<mod_item> items, bool isNewTemp)
private void WriteWorkHeader(ISheet sheet, IPerSheetDataRead sheetRead, List<ex_item> items, bool isNewTemp)
{
var head = GetOrCreate(sheet, sheetRead.Point.HeaderFirstRowNum.Value + 0);
var factor = GetOrCreate(sheet, sheetRead.Point.HeaderFirstRowNum.Value + 1);
var cellItems = new List<mod_item>();
var cellItems = new List<ex_item>();
cellItems.AddRange(items);
if (!isNewTemp)
{
......@@ -1113,111 +1238,6 @@ private void WriteWorkData(ISheet sheet, IPerSheetDataRead sheetRead, List<Accou
#endregion
#region QueryData
private List<ExtractDto> QueryDatabase(sys_hospitalconfig config, mod_extract extract, per_allot allot, string category = null)
{
//var config = configs.FirstOrDefault(t => t.Id == extract.ConfigId);
//if (config == null) return null;
string executeScript = extract.ExecuteScript;
var parameters = GetParameters(allot);
using (var connection = ConnectionBuilder.Create((DatabaseType)config.DataBaseType, config.DbSource, config.DbName, config.DbUser, config.DbPassword))
{
foreach (var item in parameters)
{
executeScript = Regex.Replace(executeScript, item.Key, item.Value, RegexOptions.IgnoreCase);
}
//logManageService.WriteMsg("提取绩效数据", $"SQL脚本:{executeScript}", 1, AllotId, "ReceiveMessage");
logger.LogInformation($"提取绩效数据 {category ?? ""}SQL脚本{executeScript}");
var result = connection.Query<ExtractDto>(executeScript, commandTimeout: 20000);
logger.LogInformation($"提取绩效数据 {category ?? ""} 执行脚本获取数据{result?.Count() ?? 0}条记录");
if (result != null && result.Count() > 0)
{
if (extract.ExecuteType == 2)
{
foreach (var item in result)
{
item.Category = category;
}
}
return result.Where(t => !string.IsNullOrEmpty(t.Category)).ToList();
}
}
return null;
}
private Dictionary<string, string> GetParameters(per_allot allot)
{
DateTime beginTime = new DateTime(allot.Year, allot.Month, 1);
Dictionary<string, string> pairs = new Dictionary<string, string>
{
{ "@beginTime", $"'{beginTime.ToString("yyyy-MM-dd")}'" },
{ "@endTime", $"'{beginTime.AddMonths(1).ToString("yyyy-MM-dd")}'"},
};
return pairs;
}
/// <summary>
/// 从HIS抽取报表数据
/// </summary>
/// <param name="allot"></param>
/// <param name="configs"></param>
public void ImportData(per_allot allot, List<sys_hospitalconfig> configs)
{
Dictionary<string, object> pairs = new Dictionary<string, object>
{
{ "@allotid", allot.ID },
{ "@hospitalid", allot.HospitalId },
{ "@year", allot.Year },
{ "@month", allot.Month },
};
var imports = repimportconfigRepository.GetEntities(w => w.ScriptType == 1);
if (imports == null || !imports.Any()) return;
foreach (var import in imports)
{
var conf = configs.FirstOrDefault(w => w.HospitalId == allot.HospitalId && w.Id == import.ConfigId);
if (conf != null)
{
var timeRanges = import.TimeRange.SplitRemoveEmpty(",");
if (timeRanges == null || !timeRanges.Any()) continue;
foreach (var item in timeRanges)
{
if (item == "1")
{
pairs["@year"] = allot.Year;
pairs["@month"] = allot.Month;
}
else if (item == "2")
{
pairs["@year"] = allot.Year - 1;
pairs["@month"] = allot.Month;
}
else if (item == "3")
{
pairs["@year"] = allot.Year;
pairs["@month"] = allot.Month - 1;
}
try
{
DatabaseType type = (DatabaseType)conf.DataBaseType;
var connection = ConnectionBuilder.Create(type, conf.DbSource, conf.DbName, conf.DbUser, conf.DbPassword);
var data = connection.Query(import.ImportScript, new DynamicParameters(pairs), commandTimeout: 60 * 60);
perforPerallotRepository.ImportData(import, pairs, data);
}
catch (Exception ex)
{
logger.LogError(ex.ToString());
}
}
}
}
}
#endregion
#region Common
/// <summary>
......@@ -1298,5 +1318,65 @@ public void OutToExcelCell(ICell cell, object obj)
}
#endregion
#region 配置校验
/// <summary>
/// 配置校验
/// </summary>
/// <param name="allotId"></param>
/// <param name="hospitalId"></param>
/// <param name="useTemplate"></param>
public string Judge(int allotId, int hospitalId, int useTemplate, out string filePath)
{
string result = null;
filePath = "";
try
{
// 获取绩效信息
var allot = perforPerallotRepository.GetEntity(t => t.ID == allotId);
if (allot == null)
throw new PerformanceException("AllotID错误");
// 获取医院信息
var hospital = perforHospitalRepository.GetEntity(t => t.ID == hospitalId);
if (hospital == null)
throw new PerformanceException("医院ID错误");
// 获取医院配置信息
var hospitalConfigList = perforHospitalconfigRepository.GetEntities(t => t.HospitalId == hospitalId);
if (hospitalConfigList == null || hospitalConfigList.Count == 0)
throw new PerformanceException("当前医院暂不支持HIS数据抽取");
// 获取最近一次绩效
var statesArray = new int[] { (int)AllotStates.GenerateSucceed, (int)AllotStates.Archive };
var allotList = perforPerallotRepository.GetEntities(t => t.HospitalId == hospitalId && statesArray.Contains(t.States));
var allotLast = allotList?.OrderByDescending(t => t.Year).ThenByDescending(t => t.Month).First();
if (allotLast != null)
filePath = allotLast.Path;
// 获取当前医院模版信息
var modulesList = perforExmoduleRepository.GetEntities(t => t.HospitalId == hospitalId);
if (modulesList == null || modulesList.Count == 0)
throw new PerformanceException("当前医院还未配置模版");
// 获取模板项
var moduleIdList = modulesList.Select(t => t.Id).ToList();
var itemsList = perforExitemRepository.GetEntities(t => t.ModuleId.HasValue && moduleIdList.Contains(t.ModuleId.Value));
if (itemsList == null || itemsList.Count == 0)
throw new PerformanceException("当前医院还未配置模版项");
// 获取当前模板所有相关抽取SQL语句
var extypeIds = itemsList.Select(t => t.TypeId).Union(modulesList.Select(t => t.TypeId)).Distinct().ToList();
var extractList = perforExscriptRepository.GetEntities(t => extypeIds.Contains(t.TypeId));
if (extractList == null || extractList.Count == 0)
throw new PerformanceException("当前医院配置模板无需抽取");
}
catch (PerformanceException ex)
{
logger.LogError($"提取绩效数据异常 {ex.ToString()}");
result = ex.Message;
}
catch (Exception ex)
{
logger.LogError($"提取绩效数据异常 {ex.ToString()}");
throw new Exception(ex.Message);
}
return result;
}
#endregion
}
}
......@@ -19,7 +19,7 @@ public class ExConfigService : IAutoInjection
private readonly PerforExscriptRepository exscriptRepository;
private readonly PerforExmoduleRepository exmoduleRepository;
private readonly PerforExitemRepository exitemRepository;
private readonly PerforModspecialRepository modspecialRepository;
private readonly PerforExspecialRepository exspecialRepository;
private readonly PerforPerallotRepository perallotRepository;
private readonly PerforHospitalconfigRepository hospitalconfigRepository;
private readonly PerforExtractRepository extractRepository;
......@@ -30,7 +30,7 @@ public class ExConfigService : IAutoInjection
PerforExscriptRepository exscriptRepository,
PerforExmoduleRepository exmoduleRepository,
PerforExitemRepository exitemRepository,
PerforModspecialRepository modspecialRepository,
PerforExspecialRepository exspecialRepository,
PerforPerallotRepository perallotRepository,
PerforHospitalconfigRepository hospitalconfigRepository,
PerforExtractRepository extractRepository,
......@@ -41,7 +41,7 @@ public class ExConfigService : IAutoInjection
this.exscriptRepository = exscriptRepository;
this.exmoduleRepository = exmoduleRepository;
this.exitemRepository = exitemRepository;
this.modspecialRepository = modspecialRepository;
this.exspecialRepository = exspecialRepository;
this.perallotRepository = perallotRepository;
this.hospitalconfigRepository = hospitalconfigRepository;
this.extractRepository = extractRepository;
......@@ -185,9 +185,9 @@ public void DelModule(int moduleId)
}
else
{
var specialList = modspecialRepository.GetEntities(t => t.HospitalId == entity.HospitalId);
var specialList = exspecialRepository.GetEntities(t => t.HospitalId == entity.HospitalId);
if (specialList != null && specialList.Any())
modspecialRepository.RemoveRange(specialList.ToArray());
exspecialRepository.RemoveRange(specialList.ToArray());
}
}
......@@ -254,9 +254,9 @@ public void DelItem(int itemId)
/// 特殊科室模板配置项列表
/// </summary>
/// <returns></returns>
public List<mod_special> QuerySpecial(int hospitalId)
public List<ex_special> QuerySpecial(int hospitalId)
{
var list = modspecialRepository.GetEntities(t => t.HospitalId == hospitalId);
var list = exspecialRepository.GetEntities(t => t.HospitalId == hospitalId);
return list;
}
......@@ -264,11 +264,11 @@ public List<mod_special> QuerySpecial(int hospitalId)
/// 特殊科室模板配置项新增
/// </summary>
/// <returns></returns>
public List<mod_special> AddSpecial(SpecialListRequest request)
public List<ex_special> AddSpecial(SpecialListRequest request)
{
var list = request.Items;
list.ForEach(t => t.HospitalId = request.HospitalId);
if (!modspecialRepository.AddRange(list.ToArray()))
if (!exspecialRepository.AddRange(list.ToArray()))
throw new PerformanceException("添加失败!");
return list;
......@@ -278,9 +278,9 @@ public List<mod_special> AddSpecial(SpecialListRequest request)
/// 特殊科室模板配置项修改
/// </summary>
/// <returns></returns>
public mod_special EditSpecial(mod_special entity)
public ex_special EditSpecial(ex_special entity)
{
var special = modspecialRepository.GetEntity(t => t.Id == entity.Id);
var special = exspecialRepository.GetEntity(t => t.Id == entity.Id);
if (special == null)
throw new PerformanceException("选择修改的数据不存在!");
......@@ -288,9 +288,9 @@ public mod_special EditSpecial(mod_special entity)
special.Target = entity.Target;
special.TargetFactor = entity.TargetFactor;
special.AdjustFactor = entity.AdjustFactor;
special.ExtractId = entity.ExtractId;
special.TypeId = entity.TypeId;
special.ConfigId = entity.ConfigId;
if (!modspecialRepository.Update(special))
if (!exspecialRepository.Update(special))
throw new PerformanceException("修改失败!");
return special;
......@@ -302,11 +302,11 @@ public mod_special EditSpecial(mod_special entity)
/// <returns></returns>
public void DelSpecial(int specialId)
{
var special = modspecialRepository.GetEntity(t => t.Id == specialId);
var special = exspecialRepository.GetEntity(t => t.Id == specialId);
if (special == null)
throw new PerformanceException("需要删除的项不存在!");
modspecialRepository.Remove(special);
exspecialRepository.Remove(special);
}
#endregion
......@@ -472,26 +472,51 @@ public List<TitleValue> FeeType()
return titlevalue;
}
public enum ExtractResultClassify
/// <summary>
/// 绩效考核项费用来源
/// </summary>
/// <returns></returns>
public ModFeeResponse FeeSource(ModModuleRequest request)
{
[Description("门诊开单")]
OutIncome = 1,
[Description("门诊执行")]
OutExecIncome = 2,
[Description("住院开单")]
InpatIncome = 3,
[Description("住院执行")]
InpatExecIncome = 4,
[Description("额外收入")]
OtherIncome = 5,
[Description("支出")]
Expend = 6,
[Description("医生工作量")]
DoctorWorkload = 7,
[Description("护理工作量")]
NurseWorkload = 8,
[Description("特殊核算科室")]
SpecialUnit = 7,
var configList = hospitalconfigRepository.GetEntities(t => t.HospitalId == request.HospitalId);
if (configList != null && configList.Any())
{
var hospitalConfig = configList.First();
var connection = ConnectionBuilder.Create(DatabaseType.SqlServer, hospitalConfig.DbSource, hospitalConfig.DbName, hospitalConfig.DbUser, hospitalConfig.DbPassword);
int pagesize = 500, pagenum = 0;
if (request.PageNum != 0)
pagenum = request.PageNum - 1;
if (request.PageSize >= 500 && request.PageSize <= 10000)
pagesize = request.PageSize;
string sql = $"select top {pagesize} t1.* from (select row_number() over(order by charge_name) as rownumber,* from (select min(code) code,charge_name from dic_fee where charge_name is not null and charge_name != '' group by charge_name)t )t1 where rownumber> {pagenum} * {pagesize};";
var dataList = extractRepository.ExecuteScript(connection, sql, null);
if (dataList != null && dataList.Any())
{
var list = new List<TitleValue>();
foreach (var num in dataList.Select(t => t.RowNumber).Distinct())
{
var data = new TitleValue
{
Title = dataList.First(t => t.RowNumber == num && t.ColumnName.ToLower() == "charge_name").Value.ToString(),
Value = dataList.First(t => t.RowNumber == num && t.ColumnName.ToLower() == "code").Value.ToString(),
};
list.Add(data);
}
sql = $"select count(*) num from (select min(code) code,charge_name from dic_fee where charge_name is not null and charge_name != '' group by charge_name)t ;";
connection = ConnectionBuilder.Create(DatabaseType.SqlServer, hospitalConfig.DbSource, hospitalConfig.DbName, hospitalConfig.DbUser, hospitalConfig.DbPassword);
dataList = extractRepository.ExecuteScript(connection, sql, null);
return new ModFeeResponse
{
Total = (int)dataList.FirstOrDefault().Value,
PageNum = pagenum + 1,
PageSize = pagesize,
Data = list
};
}
}
return new ModFeeResponse();
}
}
}
using Microsoft.Extensions.Logging;
using Performance.DtoModels;
using Performance.EntityModels;
using Performance.Infrastructure;
using Performance.Repository;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace Performance.Services
{
public class ModExtractService : IAutoInjection
{
private readonly ILogger<ModExtractService> logger;
private PerforModextractRepository perforModextractRepository;
private PerforModitemRepository perforModitemRepository;
private PerforModmoduleRepository perforModmoduleRepository;
private PerforModspecialRepository perforModspecialRepository;
private PerforHospitalconfigRepository perforHospitalconfigRepository;
private PerforExtractRepository perforExtractRepository;
private PerforModdicRepository moddicRepository;
public ModExtractService(
ILogger<ModExtractService> logger,
PerforModextractRepository perforModextractRepository,
PerforModitemRepository perforModitemRepository,
PerforModmoduleRepository perforModmoduleRepository,
PerforModspecialRepository perforModspecialRepository,
PerforHospitalconfigRepository perforHospitalconfigRepository,
PerforExtractRepository perforExtractRepository,
PerforModdicRepository moddicRepository)
{
this.logger = logger;
this.perforModextractRepository = perforModextractRepository;
this.perforModitemRepository = perforModitemRepository;
this.perforModmoduleRepository = perforModmoduleRepository;
this.perforModspecialRepository = perforModspecialRepository;
this.perforHospitalconfigRepository = perforHospitalconfigRepository;
this.perforExtractRepository = perforExtractRepository;
this.moddicRepository = moddicRepository;
}
/// <summary>
/// 绩效数据抽取模板
/// </summary>
/// <returns></returns>
public List<TitleValue> ExtractScheme(int hospitalId, List<int> executeType)
{
var titlevalue = new List<TitleValue>();
var list = perforModextractRepository.GetEntities(t => (t.HospitalId == hospitalId || t.HospitalId == null) && executeType.Contains(t.ExecuteType.Value) && t.IsEnable == 1);
if (list != null && list.Any())
titlevalue = list.OrderBy(t => t.EName).Select(t => new TitleValue { Title = string.IsNullOrEmpty(t.Description) ? t.EName : $"{t.EName}({t.Description})", Value = t.Id.ToString() }).OrderBy(t => t.Title).ToList();
return titlevalue;
}
/// <summary>
/// 费用类型
/// </summary>
/// <returns></returns>
public List<TitleValue> FeeType()
{
var titlevalue = new List<TitleValue>();
var type = EnumHelper.GetItems<SheetType>().Where(t => new List<int> { (int)SheetType.Income, (int)SheetType.OtherIncome, (int)SheetType.Expend, (int)SheetType.Workload, (int)SheetType.SpecialUnit }.Contains(t.Value));
if (type != null && type.Any())
{
titlevalue = type.Select(t => new TitleValue
{
Title = t.Description,
Value = t.Value.ToString()
}).ToList();
}
return titlevalue;
}
/// <summary>
/// 费用字典新增
/// </summary>
/// <returns></returns>
public mod_module AddModule(ModModuleRequest request)
{
if (request.SheetType != (int)SheetType.Income)
throw new PerformanceException("模块类型错误,只支持收入模板配置");
string[] array = new string[] { "开单收入", "执行收入" };
if (request.ModuleName.IndexOf("开单收入") == -1 && request.ModuleName.IndexOf("执行收入") == -1)
throw new PerformanceException("模块名称规则错误");
//if (!Regex.IsMatch(request.ModuleName, @"^[\u4e00-\u9fa5]+$"))
// throw new PerformanceException("模块名称规则错误,请使用全中文命名");
var incomeList = perforModmoduleRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.SheetType == (int)SheetType.Income);
if (incomeList.Any(t => Regex.Replace(t.ModuleName, @"\d", "").Replace(".", "").Replace(" ", "") == request.ModuleName))
throw new PerformanceException("绩效模板已存在!");
string addname = "";
var moduleList = perforModmoduleRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.ModuleName.IndexOf("1.") != -1);
string name = request.ModuleName.Replace("开单收入", "").Replace("执行收入", "");
var exist = moduleList.Where(t => t.ModuleName.Contains(name));
if (exist != null && exist.Any())
{
string modulename = exist.OrderByDescending(t => t.ModuleName).First().ModuleName;
int[] sort = Array.ConvertAll(modulename.Split(' ')[0].Split(new string[] { "." }, StringSplitOptions.RemoveEmptyEntries), t => ConvertHelper.TryInt(t));
sort[2] += 1;
addname = string.Join(".", sort) + " " + request.ModuleName;
}
else
{
string modulename = moduleList.OrderByDescending(t => t.ModuleName).First().ModuleName;
int[] sort = Array.ConvertAll(modulename.Split(' ')[0].Split(new string[] { "." }, StringSplitOptions.RemoveEmptyEntries), t => ConvertHelper.TryInt(t));
sort[1] += 1;
addname = $"{sort[0]}.{sort[1]}.1 " + request.ModuleName;
}
mod_module entity = new mod_module
{
ModuleName = addname,
HospitalId = request.HospitalId,
Description = request.Description,
SheetType = request.SheetType,
ExtractId = request.ExtractId,
ReadOnly = 0,
IsGenerated = 0
};
if (!perforModmoduleRepository.Add(entity))
throw new PerformanceException("添加失败!");
return entity;
}
/// <summary>
/// 费用字典
/// </summary>
/// <returns></returns>
public List<mod_module> Module(int hospitalId)
{
//首次添加费用字典默认值
AddModule(hospitalId);
var list = perforModmoduleRepository.GetEntities(t => t.HospitalId == hospitalId).OrderBy(t => t.ModuleName).ToList();
return list;
}
/// <summary>
/// 首次添加费用字典默认值
/// </summary>
/// <param name="hospitalId"></param>
private void AddModule(int hospitalId)
{
var moduleList = new mod_module[]
{
new mod_module{ ModuleName = "1.0.1 额外收入", SheetType = (int)SheetType.OtherIncome },
new mod_module{ ModuleName = "1.1.1 门诊开单收入", SheetType = (int)SheetType.Income },
new mod_module{ ModuleName = "1.1.2 门诊执行收入", SheetType = (int)SheetType.Income },
new mod_module{ ModuleName = "1.2.1 住院开单收入", SheetType = (int)SheetType.Income },
new mod_module{ ModuleName = "1.2.2 住院执行收入", SheetType = (int)SheetType.Income },
new mod_module{ ModuleName = "2.1 成本支出统计表", SheetType = (int)SheetType.Expend },
new mod_module{ ModuleName = "3.1 医生组工作量绩效测算表", SheetType = (int)SheetType.Workload },
new mod_module{ ModuleName = "3.2 护理组工作量绩效测算表", SheetType = (int)SheetType.Workload },
};
var data = perforModmoduleRepository.GetEntities(t => t.HospitalId == hospitalId);
var inexistence = data == null ? moduleList : moduleList.Where(t => !data.Select(p => p.ModuleName).ToArray().Contains(t.ModuleName));
if (inexistence != null && inexistence.Any())
{
List<mod_module> modules = new List<mod_module>();
foreach (var item in inexistence)
{
var module = new mod_module
{
HospitalId = hospitalId,
ModuleName = item.ModuleName,
SheetType = (int)item.SheetType,
ReadOnly = 1,
ExtractId = null,
IsGenerated = 0
};
modules.Add(module);
}
if (modules.Any())
perforModmoduleRepository.AddRange(modules.ToArray());
}
}
/// <summary>
/// 绩效模板修改
/// </summary>
/// <returns></returns>
public mod_module EditModule(ModModuleRequest request)
{
var entity = perforModmoduleRepository.GetEntity(t => t.Id == request.ModuleId);
if (entity == null)
throw new PerformanceException("该绩效抽取方案不存在!");
//if (entity.ReadOnly == 1)
// throw new PerformanceException("该绩效抽取方案不可编辑!");
var list = perforModmoduleRepository.GetEntities(t => t.Id != entity.Id && t.HospitalId == entity.HospitalId && t.ModuleName == request.ModuleName);
if (list != null && list.Any())
throw new PerformanceException("绩效模板已存在!");
entity.ModuleName = request.ModuleName ?? entity.ModuleName;
entity.SheetType = request.SheetType;
entity.Description = request.Description;
entity.ExtractId = request.ExtractId;
entity.ConfigId = request.ConfigId;
if (!perforModmoduleRepository.Update(entity))
throw new PerformanceException("修改失败!");
return entity;
}
/// <summary>
/// 绩效模板删除
/// </summary>
/// <returns></returns>
public void DelModule(int moduleId)
{
var entity = perforModmoduleRepository.GetEntity(t => t.Id == moduleId);
if (entity == null)
throw new PerformanceException("该绩效抽取方案不存在!");
if (!perforModmoduleRepository.Remove(entity))
throw new PerformanceException("删除失败!");
if (entity.SheetType != (int)SheetType.SpecialUnit)
{
var itemList = perforModitemRepository.GetEntities(t => t.ModuleId == moduleId);
if (itemList != null && itemList.Any())
perforModitemRepository.RemoveRange(itemList.ToArray());
}
else
{
var specialList = perforModspecialRepository.GetEntities(t => t.HospitalId == entity.HospitalId);
if (specialList != null && specialList.Any())
perforModspecialRepository.RemoveRange(specialList.ToArray());
}
}
/// <summary>
/// 绩效收入模板配置项列表
/// </summary>
/// <returns></returns>
public List<mod_item> Items(int moduleId)
{
var list = perforModitemRepository.GetEntities(t => t.ModuleId == moduleId);
return list?.OrderBy(t => t.Id).ToList();
}
/// <summary>
/// 绩效收入模板配置项新增
/// </summary>
/// <returns></returns>
public List<mod_item> AddItem(ItemListRequest request)
{
var entity = perforModmoduleRepository.GetEntity(t => t.Id == request.ModuleId);
if (entity == null)
throw new PerformanceException("选择的绩效抽取方案不存在!");
var list = request.Items;
list.ForEach(t =>
{
t.ModuleId = entity.Id;
//t.ExtractId = entity.ExtractId;
t.ReadOnly = 0;
});
//if (!perforModitemRepository.AddRange(list.ToArray()))
// throw new PerformanceException("添加失败!");
return new List<mod_item>();
}
/// <summary>
/// 绩效收入模板配置项修改
/// </summary>
/// <returns></returns>
public mod_item EditItem(mod_item entity)
{
var item = perforModitemRepository.GetEntity(t => t.Id == entity.Id); if (item == null)
throw new PerformanceException("选择修改的项不存在!");
item.ItemName = entity.ItemName;
item.FactorValue1 = entity.FactorValue1;
item.FactorValue2 = entity.FactorValue2;
item.FactorValue3 = entity.FactorValue3;
item.ExtractId = entity.ExtractId;
item.SelectionRange = entity.SelectionRange;
item.ConfigId = entity.ConfigId;
if (!perforModitemRepository.Update(item))
throw new PerformanceException("修改失败!");
return item;
}
/// <summary>
/// 绩效收入模板配置项删除
/// </summary>
/// <returns></returns>
public void DelItem(int itemId)
{
var item = perforModitemRepository.GetEntity(t => t.Id == itemId);
if (item == null)
throw new PerformanceException("Item项不存在!");
perforModitemRepository.Remove(item);
}
/// <summary>
/// 特殊科室模板配置项列表
/// </summary>
/// <returns></returns>
public List<mod_special> Special(int hospitalId)
{
var list = perforModspecialRepository.GetEntities(t => t.HospitalId == hospitalId);
return list;
}
/// <summary>
/// 特殊科室模板配置项新增
/// </summary>
/// <returns></returns>
public List<mod_special> AddSpecial(SpecialListRequest request)
{
var list = request.Items;
list.ForEach(t => t.HospitalId = request.HospitalId);
if (!perforModspecialRepository.AddRange(list.ToArray()))
throw new PerformanceException("添加失败!");
return list;
}
/// <summary>
/// 特殊科室模板配置项修改
/// </summary>
/// <returns></returns>
public mod_special EditSpecial(mod_special entity)
{
var special = perforModspecialRepository.GetEntity(t => t.Id == entity.Id);
if (special == null)
throw new PerformanceException("选择修改的数据不存在!");
special.Department = entity.Department ?? special.Department;
special.Target = entity.Target;
special.TargetFactor = entity.TargetFactor;
special.AdjustFactor = entity.AdjustFactor;
special.ExtractId = entity.ExtractId;
special.ConfigId = entity.ConfigId;
if (!perforModspecialRepository.Update(special))
throw new PerformanceException("修改失败!");
return special;
}
/// <summary>
/// 特殊科室模板配置项删除
/// </summary>
/// <returns></returns>
public void DelSpecial(int specialId)
{
var special = perforModspecialRepository.GetEntity(t => t.Id == specialId);
if (special == null)
throw new PerformanceException("需要删除的项不存在!");
perforModspecialRepository.Remove(special);
}
/// <summary>
/// 绩效考核项费用来源
/// </summary>
/// <returns></returns>
public ModFeeResponse FeeSource(ModModuleRequest request)
{
var configList = perforHospitalconfigRepository.GetEntities(t => t.HospitalId == request.HospitalId);
if (configList != null && configList.Any())
{
var hospitalConfig = configList.First();
var connection = ConnectionBuilder.Create(DatabaseType.SqlServer, hospitalConfig.DbSource, hospitalConfig.DbName, hospitalConfig.DbUser, hospitalConfig.DbPassword);
int pagesize = 500, pagenum = 0;
if (request.PageNum != 0)
pagenum = request.PageNum - 1;
if (request.PageSize >= 500 && request.PageSize <= 10000)
pagesize = request.PageSize;
string sql = $"select top {pagesize} t1.* from (select row_number() over(order by charge_name) as rownumber,* from (select min(code) code,charge_name from dic_fee where charge_name is not null and charge_name != '' group by charge_name)t )t1 where rownumber> {pagenum} * {pagesize};";
var dataList = perforExtractRepository.ExecuteScript(connection, sql, null);
if (dataList != null && dataList.Any())
{
var list = new List<TitleValue>();
foreach (var num in dataList.Select(t => t.RowNumber).Distinct())
{
var data = new TitleValue
{
Title = dataList.First(t => t.RowNumber == num && t.ColumnName.ToLower() == "charge_name").Value.ToString(),
Value = dataList.First(t => t.RowNumber == num && t.ColumnName.ToLower() == "code").Value.ToString(),
};
list.Add(data);
}
sql = $"select count(*) num from (select min(code) code,charge_name from dic_fee where charge_name is not null and charge_name != '' group by charge_name)t ;";
connection = ConnectionBuilder.Create(DatabaseType.SqlServer, hospitalConfig.DbSource, hospitalConfig.DbName, hospitalConfig.DbUser, hospitalConfig.DbPassword);
dataList = perforExtractRepository.ExecuteScript(connection, sql, null);
return new ModFeeResponse
{
Total = (int)dataList.FirstOrDefault().Value,
PageNum = pagenum + 1,
PageSize = pagesize,
Data = list
};
}
}
return new ModFeeResponse();
}
/// <summary>
/// 添加默认绩效模板配置
/// </summary>
/// <param name="moduleId"></param>
public void AddItems(int moduleId)
{
var module = perforModmoduleRepository.GetEntity(t => t.Id == moduleId);
if (module == null)
throw new PerformanceException("绩效模板不存在,请重新选择!");
//收入 默认添加收费项
if ((int)SheetType.Income == module.SheetType && module.IsGenerated == 0)
{
var sqlconfig = moddicRepository.GetEntity(w => w.HospitalId == module.HospitalId && w.Type.Trim().ToLower() == "itemsql");
if (sqlconfig == null)
{
logger.LogInformation("{0} 医院配置信息未设置", "添加默认收费项");
throw new PerformanceException($"医院配置信息未设置");
}
var hospitalConfig = perforHospitalconfigRepository.GetEntity(t => t.HospitalId == module.HospitalId && t.Id == sqlconfig.ConfigId);
if (hospitalConfig == null)
{
logger.LogInformation("{0} 医院配置信息未设置", "添加默认收费项");
throw new PerformanceException($"医院配置信息未设置");
}
logger.LogInformation("创建数据库连接");
var connection = ConnectionBuilder.Create(DatabaseType.Oracle, hospitalConfig.DbSource, hospitalConfig.DbName, hospitalConfig.DbUser, hospitalConfig.DbPassword);
string sql = sqlconfig.Content;
logger.LogInformation($"执行sql:{sql}");
var dataList = perforExtractRepository.ExecuteScript(connection, sql, null);
logger.LogInformation($"获取数据{dataList?.Count ?? 0}条");
if (dataList != null && dataList.Any())
{
var itemList = dataList.Select(t => new mod_item
{
ItemName = t.Value.ToString(),
FactorValue1 = 0m,
FactorValue2 = 0m,
FactorValue3 = 0m,
ModuleId = module.Id,
ExtractId = module.ExtractId,
ReadOnly = 1
});
logger.LogInformation($"添加默认收费项 受影响行数{itemList.Count()}");
perforModitemRepository.AddRange(itemList.ToArray());
module.IsGenerated = 1;
perforModmoduleRepository.Update(module);
}
}
}
/// <summary>
/// 特殊科室人均
/// </summary>
/// <returns></returns>
public List<TitleValue> PerforType()
{
var list = EnumHelper.GetItems<PerforType>();
var result = list.Select(t => new TitleValue
{
Title = t.Description,
Value = t.Description
});
return result.ToList();
}
/// <summary>
/// 获取抽取的配置
/// </summary>
/// <param name="hospitalId"></param>
/// <returns></returns>
public List<sys_hospitalconfig> GetHospitalconfigs(int hospitalId)
{
var configs = perforHospitalconfigRepository.GetEntities(t => t.HospitalId == hospitalId);
return configs;
}
}
}
//using Microsoft.Extensions.Logging;
//using Performance.DtoModels;
//using Performance.EntityModels;
//using Performance.Infrastructure;
//using Performance.Repository;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Text.RegularExpressions;
//namespace Performance.Services
//{
// public class ModExtractService : IAutoInjection
// {
// private readonly ILogger<ModExtractService> logger;
// private PerforModextractRepository perforModextractRepository;
// private PerforModitemRepository perforModitemRepository;
// private PerforModmoduleRepository perforModmoduleRepository;
// private PerforModspecialRepository perforModspecialRepository;
// private PerforHospitalconfigRepository perforHospitalconfigRepository;
// private PerforExtractRepository perforExtractRepository;
// private PerforModdicRepository moddicRepository;
// public ModExtractService(
// ILogger<ModExtractService> logger,
// PerforModextractRepository perforModextractRepository,
// PerforModitemRepository perforModitemRepository,
// PerforModmoduleRepository perforModmoduleRepository,
// PerforModspecialRepository perforModspecialRepository,
// PerforHospitalconfigRepository perforHospitalconfigRepository,
// PerforExtractRepository perforExtractRepository,
// PerforModdicRepository moddicRepository)
// {
// this.logger = logger;
// this.perforModextractRepository = perforModextractRepository;
// this.perforModitemRepository = perforModitemRepository;
// this.perforModmoduleRepository = perforModmoduleRepository;
// this.perforModspecialRepository = perforModspecialRepository;
// this.perforHospitalconfigRepository = perforHospitalconfigRepository;
// this.perforExtractRepository = perforExtractRepository;
// this.moddicRepository = moddicRepository;
// }
// /// <summary>
// /// 绩效数据抽取模板
// /// </summary>
// /// <returns></returns>
// public List<TitleValue> ExtractScheme(int hospitalId, List<int> executeType)
// {
// var titlevalue = new List<TitleValue>();
// var list = perforModextractRepository.GetEntities(t => (t.HospitalId == hospitalId || t.HospitalId == null) && executeType.Contains(t.ExecuteType.Value) && t.IsEnable == 1);
// if (list != null && list.Any())
// titlevalue = list.OrderBy(t => t.EName).Select(t => new TitleValue { Title = string.IsNullOrEmpty(t.Description) ? t.EName : $"{t.EName}({t.Description})", Value = t.Id.ToString() }).OrderBy(t => t.Title).ToList();
// return titlevalue;
// }
// /// <summary>
// /// 费用类型
// /// </summary>
// /// <returns></returns>
// public List<TitleValue> FeeType()
// {
// var titlevalue = new List<TitleValue>();
// var type = EnumHelper.GetItems<SheetType>().Where(t => new List<int> { (int)SheetType.Income, (int)SheetType.OtherIncome, (int)SheetType.Expend, (int)SheetType.Workload, (int)SheetType.SpecialUnit }.Contains(t.Value));
// if (type != null && type.Any())
// {
// titlevalue = type.Select(t => new TitleValue
// {
// Title = t.Description,
// Value = t.Value.ToString()
// }).ToList();
// }
// return titlevalue;
// }
// /// <summary>
// /// 费用字典新增
// /// </summary>
// /// <returns></returns>
// public mod_module AddModule(ModModuleRequest request)
// {
// if (request.SheetType != (int)SheetType.Income)
// throw new PerformanceException("模块类型错误,只支持收入模板配置");
// string[] array = new string[] { "开单收入", "执行收入" };
// if (request.ModuleName.IndexOf("开单收入") == -1 && request.ModuleName.IndexOf("执行收入") == -1)
// throw new PerformanceException("模块名称规则错误");
// //if (!Regex.IsMatch(request.ModuleName, @"^[\u4e00-\u9fa5]+$"))
// // throw new PerformanceException("模块名称规则错误,请使用全中文命名");
// var incomeList = perforModmoduleRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.SheetType == (int)SheetType.Income);
// if (incomeList.Any(t => Regex.Replace(t.ModuleName, @"\d", "").Replace(".", "").Replace(" ", "") == request.ModuleName))
// throw new PerformanceException("绩效模板已存在!");
// string addname = "";
// var moduleList = perforModmoduleRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.ModuleName.IndexOf("1.") != -1);
// string name = request.ModuleName.Replace("开单收入", "").Replace("执行收入", "");
// var exist = moduleList.Where(t => t.ModuleName.Contains(name));
// if (exist != null && exist.Any())
// {
// string modulename = exist.OrderByDescending(t => t.ModuleName).First().ModuleName;
// int[] sort = Array.ConvertAll(modulename.Split(' ')[0].Split(new string[] { "." }, StringSplitOptions.RemoveEmptyEntries), t => ConvertHelper.TryInt(t));
// sort[2] += 1;
// addname = string.Join(".", sort) + " " + request.ModuleName;
// }
// else
// {
// string modulename = moduleList.OrderByDescending(t => t.ModuleName).First().ModuleName;
// int[] sort = Array.ConvertAll(modulename.Split(' ')[0].Split(new string[] { "." }, StringSplitOptions.RemoveEmptyEntries), t => ConvertHelper.TryInt(t));
// sort[1] += 1;
// addname = $"{sort[0]}.{sort[1]}.1 " + request.ModuleName;
// }
// mod_module entity = new mod_module
// {
// ModuleName = addname,
// HospitalId = request.HospitalId,
// Description = request.Description,
// SheetType = request.SheetType,
// ExtractId = request.ExtractId,
// ReadOnly = 0,
// IsGenerated = 0
// };
// if (!perforModmoduleRepository.Add(entity))
// throw new PerformanceException("添加失败!");
// return entity;
// }
// /// <summary>
// /// 费用字典
// /// </summary>
// /// <returns></returns>
// public List<mod_module> Module(int hospitalId)
// {
// //首次添加费用字典默认值
// AddModule(hospitalId);
// var list = perforModmoduleRepository.GetEntities(t => t.HospitalId == hospitalId).OrderBy(t => t.ModuleName).ToList();
// return list;
// }
// /// <summary>
// /// 首次添加费用字典默认值
// /// </summary>
// /// <param name="hospitalId"></param>
// private void AddModule(int hospitalId)
// {
// var moduleList = new mod_module[]
// {
// new mod_module{ ModuleName = "1.0.1 额外收入", SheetType = (int)SheetType.OtherIncome },
// new mod_module{ ModuleName = "1.1.1 门诊开单收入", SheetType = (int)SheetType.Income },
// new mod_module{ ModuleName = "1.1.2 门诊执行收入", SheetType = (int)SheetType.Income },
// new mod_module{ ModuleName = "1.2.1 住院开单收入", SheetType = (int)SheetType.Income },
// new mod_module{ ModuleName = "1.2.2 住院执行收入", SheetType = (int)SheetType.Income },
// new mod_module{ ModuleName = "2.1 成本支出统计表", SheetType = (int)SheetType.Expend },
// new mod_module{ ModuleName = "3.1 医生组工作量绩效测算表", SheetType = (int)SheetType.Workload },
// new mod_module{ ModuleName = "3.2 护理组工作量绩效测算表", SheetType = (int)SheetType.Workload },
// };
// var data = perforModmoduleRepository.GetEntities(t => t.HospitalId == hospitalId);
// var inexistence = data == null ? moduleList : moduleList.Where(t => !data.Select(p => p.ModuleName).ToArray().Contains(t.ModuleName));
// if (inexistence != null && inexistence.Any())
// {
// List<mod_module> modules = new List<mod_module>();
// foreach (var item in inexistence)
// {
// var module = new mod_module
// {
// HospitalId = hospitalId,
// ModuleName = item.ModuleName,
// SheetType = (int)item.SheetType,
// ReadOnly = 1,
// ExtractId = null,
// IsGenerated = 0
// };
// modules.Add(module);
// }
// if (modules.Any())
// perforModmoduleRepository.AddRange(modules.ToArray());
// }
// }
// /// <summary>
// /// 绩效模板修改
// /// </summary>
// /// <returns></returns>
// public mod_module EditModule(ModModuleRequest request)
// {
// var entity = perforModmoduleRepository.GetEntity(t => t.Id == request.ModuleId);
// if (entity == null)
// throw new PerformanceException("该绩效抽取方案不存在!");
// //if (entity.ReadOnly == 1)
// // throw new PerformanceException("该绩效抽取方案不可编辑!");
// var list = perforModmoduleRepository.GetEntities(t => t.Id != entity.Id && t.HospitalId == entity.HospitalId && t.ModuleName == request.ModuleName);
// if (list != null && list.Any())
// throw new PerformanceException("绩效模板已存在!");
// entity.ModuleName = request.ModuleName ?? entity.ModuleName;
// entity.SheetType = request.SheetType;
// entity.Description = request.Description;
// entity.ExtractId = request.ExtractId;
// entity.ConfigId = request.ConfigId;
// if (!perforModmoduleRepository.Update(entity))
// throw new PerformanceException("修改失败!");
// return entity;
// }
// /// <summary>
// /// 绩效模板删除
// /// </summary>
// /// <returns></returns>
// public void DelModule(int moduleId)
// {
// var entity = perforModmoduleRepository.GetEntity(t => t.Id == moduleId);
// if (entity == null)
// throw new PerformanceException("该绩效抽取方案不存在!");
// if (!perforModmoduleRepository.Remove(entity))
// throw new PerformanceException("删除失败!");
// if (entity.SheetType != (int)SheetType.SpecialUnit)
// {
// var itemList = perforModitemRepository.GetEntities(t => t.ModuleId == moduleId);
// if (itemList != null && itemList.Any())
// perforModitemRepository.RemoveRange(itemList.ToArray());
// }
// else
// {
// var specialList = perforModspecialRepository.GetEntities(t => t.HospitalId == entity.HospitalId);
// if (specialList != null && specialList.Any())
// perforModspecialRepository.RemoveRange(specialList.ToArray());
// }
// }
// /// <summary>
// /// 绩效收入模板配置项列表
// /// </summary>
// /// <returns></returns>
// public List<mod_item> Items(int moduleId)
// {
// var list = perforModitemRepository.GetEntities(t => t.ModuleId == moduleId);
// return list?.OrderBy(t => t.Id).ToList();
// }
// /// <summary>
// /// 绩效收入模板配置项新增
// /// </summary>
// /// <returns></returns>
// public List<mod_item> AddItem(ItemListRequest request)
// {
// var entity = perforModmoduleRepository.GetEntity(t => t.Id == request.ModuleId);
// if (entity == null)
// throw new PerformanceException("选择的绩效抽取方案不存在!");
// var list = request.Items;
// list.ForEach(t =>
// {
// t.ModuleId = entity.Id;
// //t.ExtractId = entity.ExtractId;
// t.ReadOnly = 0;
// });
// //if (!perforModitemRepository.AddRange(list.ToArray()))
// // throw new PerformanceException("添加失败!");
// return new List<mod_item>();
// }
// /// <summary>
// /// 绩效收入模板配置项修改
// /// </summary>
// /// <returns></returns>
// public mod_item EditItem(mod_item entity)
// {
// var item = perforModitemRepository.GetEntity(t => t.Id == entity.Id); if (item == null)
// throw new PerformanceException("选择修改的项不存在!");
// item.ItemName = entity.ItemName;
// item.FactorValue1 = entity.FactorValue1;
// item.FactorValue2 = entity.FactorValue2;
// item.FactorValue3 = entity.FactorValue3;
// item.ExtractId = entity.ExtractId;
// item.SelectionRange = entity.SelectionRange;
// item.ConfigId = entity.ConfigId;
// if (!perforModitemRepository.Update(item))
// throw new PerformanceException("修改失败!");
// return item;
// }
// /// <summary>
// /// 绩效收入模板配置项删除
// /// </summary>
// /// <returns></returns>
// public void DelItem(int itemId)
// {
// var item = perforModitemRepository.GetEntity(t => t.Id == itemId);
// if (item == null)
// throw new PerformanceException("Item项不存在!");
// perforModitemRepository.Remove(item);
// }
// /// <summary>
// /// 特殊科室模板配置项列表
// /// </summary>
// /// <returns></returns>
// public List<mod_special> Special(int hospitalId)
// {
// var list = perforModspecialRepository.GetEntities(t => t.HospitalId == hospitalId);
// return list;
// }
// /// <summary>
// /// 特殊科室模板配置项新增
// /// </summary>
// /// <returns></returns>
// public List<mod_special> AddSpecial(SpecialListRequest request)
// {
// var list = request.Items;
// list.ForEach(t => t.HospitalId = request.HospitalId);
// if (!perforModspecialRepository.AddRange(list.ToArray()))
// throw new PerformanceException("添加失败!");
// return list;
// }
// /// <summary>
// /// 特殊科室模板配置项修改
// /// </summary>
// /// <returns></returns>
// public mod_special EditSpecial(mod_special entity)
// {
// var special = perforModspecialRepository.GetEntity(t => t.Id == entity.Id);
// if (special == null)
// throw new PerformanceException("选择修改的数据不存在!");
// special.Department = entity.Department ?? special.Department;
// special.Target = entity.Target;
// special.TargetFactor = entity.TargetFactor;
// special.AdjustFactor = entity.AdjustFactor;
// special.ExtractId = entity.ExtractId;
// special.ConfigId = entity.ConfigId;
// if (!perforModspecialRepository.Update(special))
// throw new PerformanceException("修改失败!");
// return special;
// }
// /// <summary>
// /// 特殊科室模板配置项删除
// /// </summary>
// /// <returns></returns>
// public void DelSpecial(int specialId)
// {
// var special = perforModspecialRepository.GetEntity(t => t.Id == specialId);
// if (special == null)
// throw new PerformanceException("需要删除的项不存在!");
// perforModspecialRepository.Remove(special);
// }
// /// <summary>
// /// 绩效考核项费用来源
// /// </summary>
// /// <returns></returns>
// public ModFeeResponse FeeSource(ModModuleRequest request)
// {
// var configList = perforHospitalconfigRepository.GetEntities(t => t.HospitalId == request.HospitalId);
// if (configList != null && configList.Any())
// {
// var hospitalConfig = configList.First();
// var connection = ConnectionBuilder.Create(DatabaseType.SqlServer, hospitalConfig.DbSource, hospitalConfig.DbName, hospitalConfig.DbUser, hospitalConfig.DbPassword);
// int pagesize = 500, pagenum = 0;
// if (request.PageNum != 0)
// pagenum = request.PageNum - 1;
// if (request.PageSize >= 500 && request.PageSize <= 10000)
// pagesize = request.PageSize;
// string sql = $"select top {pagesize} t1.* from (select row_number() over(order by charge_name) as rownumber,* from (select min(code) code,charge_name from dic_fee where charge_name is not null and charge_name != '' group by charge_name)t )t1 where rownumber> {pagenum} * {pagesize};";
// var dataList = perforExtractRepository.ExecuteScript(connection, sql, null);
// if (dataList != null && dataList.Any())
// {
// var list = new List<TitleValue>();
// foreach (var num in dataList.Select(t => t.RowNumber).Distinct())
// {
// var data = new TitleValue
// {
// Title = dataList.First(t => t.RowNumber == num && t.ColumnName.ToLower() == "charge_name").Value.ToString(),
// Value = dataList.First(t => t.RowNumber == num && t.ColumnName.ToLower() == "code").Value.ToString(),
// };
// list.Add(data);
// }
// sql = $"select count(*) num from (select min(code) code,charge_name from dic_fee where charge_name is not null and charge_name != '' group by charge_name)t ;";
// connection = ConnectionBuilder.Create(DatabaseType.SqlServer, hospitalConfig.DbSource, hospitalConfig.DbName, hospitalConfig.DbUser, hospitalConfig.DbPassword);
// dataList = perforExtractRepository.ExecuteScript(connection, sql, null);
// return new ModFeeResponse
// {
// Total = (int)dataList.FirstOrDefault().Value,
// PageNum = pagenum + 1,
// PageSize = pagesize,
// Data = list
// };
// }
// }
// return new ModFeeResponse();
// }
// /// <summary>
// /// 添加默认绩效模板配置
// /// </summary>
// /// <param name="moduleId"></param>
// public void AddItems(int moduleId)
// {
// var module = perforModmoduleRepository.GetEntity(t => t.Id == moduleId);
// if (module == null)
// throw new PerformanceException("绩效模板不存在,请重新选择!");
// //收入 默认添加收费项
// if ((int)SheetType.Income == module.SheetType && module.IsGenerated == 0)
// {
// var sqlconfig = moddicRepository.GetEntity(w => w.HospitalId == module.HospitalId && w.Type.Trim().ToLower() == "itemsql");
// if (sqlconfig == null)
// {
// logger.LogInformation("{0} 医院配置信息未设置", "添加默认收费项");
// throw new PerformanceException($"医院配置信息未设置");
// }
// var hospitalConfig = perforHospitalconfigRepository.GetEntity(t => t.HospitalId == module.HospitalId && t.Id == sqlconfig.ConfigId);
// if (hospitalConfig == null)
// {
// logger.LogInformation("{0} 医院配置信息未设置", "添加默认收费项");
// throw new PerformanceException($"医院配置信息未设置");
// }
// logger.LogInformation("创建数据库连接");
// var connection = ConnectionBuilder.Create(DatabaseType.Oracle, hospitalConfig.DbSource, hospitalConfig.DbName, hospitalConfig.DbUser, hospitalConfig.DbPassword);
// string sql = sqlconfig.Content;
// logger.LogInformation($"执行sql:{sql}");
// var dataList = perforExtractRepository.ExecuteScript(connection, sql, null);
// logger.LogInformation($"获取数据{dataList?.Count ?? 0}条");
// if (dataList != null && dataList.Any())
// {
// var itemList = dataList.Select(t => new mod_item
// {
// ItemName = t.Value.ToString(),
// FactorValue1 = 0m,
// FactorValue2 = 0m,
// FactorValue3 = 0m,
// ModuleId = module.Id,
// ExtractId = module.ExtractId,
// ReadOnly = 1
// });
// logger.LogInformation($"添加默认收费项 受影响行数{itemList.Count()}");
// perforModitemRepository.AddRange(itemList.ToArray());
// module.IsGenerated = 1;
// perforModmoduleRepository.Update(module);
// }
// }
// }
// /// <summary>
// /// 特殊科室人均
// /// </summary>
// /// <returns></returns>
// public List<TitleValue> PerforType()
// {
// var list = EnumHelper.GetItems<PerforType>();
// var result = list.Select(t => new TitleValue
// {
// Title = t.Description,
// Value = t.Description
// });
// return result.ToList();
// }
// /// <summary>
// /// 获取抽取的配置
// /// </summary>
// /// <param name="hospitalId"></param>
// /// <returns></returns>
// public List<sys_hospitalconfig> GetHospitalconfigs(int hospitalId)
// {
// var configs = perforHospitalconfigRepository.GetEntities(t => t.HospitalId == hospitalId);
// return configs;
// }
// }
//}
This source diff could not be displayed because it is too large. You can view the blob instead.
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