Commit 5bbc5a35 by 799284587@qq.com

优化

parent d286df15
...@@ -156,8 +156,18 @@ public ApiResponse Generate([CustomizeValidator(RuleSet = "Delete"), FromBody]Al ...@@ -156,8 +156,18 @@ public ApiResponse Generate([CustomizeValidator(RuleSet = "Delete"), FromBody]Al
if (null == allot || string.IsNullOrEmpty(allot.Path)) if (null == allot || string.IsNullOrEmpty(allot.Path))
throw new PerformanceException("当前绩效记录不存在或没有上传数据文件"); throw new PerformanceException("当前绩效记录不存在或没有上传数据文件");
var email = _claim.GetUserClaim(JwtClaimTypes.Mail); var email = _claim.GetUserClaim(JwtClaimTypes.Mail);
_allotService.Generate(allot, email); if (allot.States == (int)AllotStates.Wait)
//BackgroundJob.Enqueue(() => _allotService.Generate(allot, email)); return new ApiResponse(ResponseType.OK, "当前绩效正在等待生成");
if (_evn.IsEnvironment("Localhost"))
_allotService.Generate(allot, email);
else
BackgroundJob.Enqueue(() => _allotService.Generate(allot, email));
_allotService.UpdateAllotStates(allot.ID, (int)AllotStates.Wait, EnumHelper.GetDescription(AllotStates.Wait));
//_allotService.Generate(allot, email);
////BackgroundJob.Enqueue(() => _allotService.Generate(allot, email));
return new ApiResponse(ResponseType.OK); return new ApiResponse(ResponseType.OK);
} }
......
...@@ -582,6 +582,8 @@ ...@@ -582,6 +582,8 @@
保存提取文件 保存提取文件
</summary> </summary>
<param name="form"></param> <param name="form"></param>
<param name="allotId"></param>
<param name="hospitalId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.ClaimService.GetUserId"> <member name="M:Performance.Api.ClaimService.GetUserId">
......
...@@ -4,54 +4,150 @@ ...@@ -4,54 +4,150 @@
<name>Performance.EntityModels</name> <name>Performance.EntityModels</name>
</assembly> </assembly>
<members> <members>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.ag_againsituation”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.ag_againsituation">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.ag_data”忽略有格式错误的 XML 注释 --> <summary> 二次分配概览 </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.ag_employee”忽略有格式错误的 XML 注释 --> </member>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.ag_header”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.ag_data">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.as_assess”忽略有格式错误的 XML 注释 --> <summary> 二次分配不固定数据 </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.as_columns”忽略有格式错误的 XML 注释 --> </member>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.as_data”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.ag_employee">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.as_tempassess”忽略有格式错误的 XML 注释 --> <summary> 二次分配人员名单 </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.as_tempcolumns”忽略有格式错误的 XML 注释 --> </member>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.cof_again”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.ag_header">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.cof_check”忽略有格式错误的 XML 注释 --> <summary> 二次分配不固定列头数据 </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.cof_director”忽略有格式错误的 XML 注释 --> </member>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.cof_drugprop”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.as_assess">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.cof_drugtype”忽略有格式错误的 XML 注释 --> <summary> 考核类别 </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.cof_income”忽略有格式错误的 XML 注释 --> </member>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.cof_singlefactor”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.as_columns">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.cof_workyear”忽略有格式错误的 XML 注释 --> <summary> 考核列头 </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.hos_personfee”忽略有格式错误的 XML 注释 --> </member>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.im_accountbasic”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.as_data">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.im_data”忽略有格式错误的 XML 注释 --> <summary> 考核数据 </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.im_employee”忽略有格式错误的 XML 注释 --> </member>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.im_header”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.as_tempassess">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.im_specialunit”忽略有格式错误的 XML 注释 --> <summary> 考核类别 </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.log_check”忽略有格式错误的 XML 注释 --> </member>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.log_dbug”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.as_tempcolumns">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.mod_extract”忽略有格式错误的 XML 注释 --> <summary> 考核列头 </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.mod_item”忽略有格式错误的 XML 注释 --> </member>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.mod_module”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.cof_again">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.mod_special”忽略有格式错误的 XML 注释 --> <summary> </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.per_againallot”忽略有格式错误的 XML 注释 --> </member>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.per_allot”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.cof_check">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.per_first”忽略有格式错误的 XML 注释 --> <summary> 上传excel文件校验配置 </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.per_sheet”忽略有格式错误的 XML 注释 --> </member>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.res_account”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.cof_director">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.res_baiscnorm”忽略有格式错误的 XML 注释 --> <summary> 规模绩效、效率绩效计算系数配置 </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.res_compute”忽略有格式错误的 XML 注释 --> </member>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.res_specialunit”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.cof_drugprop">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.sys_extract”忽略有格式错误的 XML 注释 --> <summary> 工作量门诊药占比系数 </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.sys_hospital”忽略有格式错误的 XML 注释 --> </member>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.sys_hospitalconfig”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.cof_drugtype">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.sys_menu”忽略有格式错误的 XML 注释 --> <summary> 药占比费用列头名称 </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.sys_role”忽略有格式错误的 XML 注释 --> </member>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.sys_role_menu”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.cof_income">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.sys_sms”忽略有格式错误的 XML 注释 --> <summary> ICU医生护士有效收入汇总计算系数 </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.sys_task”忽略有格式错误的 XML 注释 --> </member>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.sys_user”忽略有格式错误的 XML 注释 --> <member name="P:Performance.EntityModels.PerformanceDbContext.cof_singlefactor">
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.sys_user_hospital”忽略有格式错误的 XML 注释 --> <summary> 特殊绩效项指标 </summary>
<!-- 对于成员“P:Performance.EntityModels.PerformanceDbContext.sys_user_role”忽略有格式错误的 XML 注释 --> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_workyear">
<summary> 工龄对应绩效系数配置 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.hos_personfee">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.im_accountbasic">
<summary> 科室核算导入信息 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.im_data">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.im_employee">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.im_header">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.im_specialunit">
<summary> 特殊科室核算 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.log_check">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.log_dbug">
<summary> </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>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_allot">
<summary> 医院绩效分配 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_first">
<summary> 首次上传文件地址(当医院存在标准库时,首次上传用户提交固定格式的excel,开发人员配置SQL脚本) </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_sheet">
<summary> 上传数据解析 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.res_account">
<summary> 科室核算结果 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.res_baiscnorm">
<summary> 核算基础标准 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.res_compute">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.res_specialunit">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.sys_extract">
<summary> 医院数据提取脚本 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.sys_hospital">
<summary> 医院信息 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.sys_hospitalconfig">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.sys_menu">
<summary> 菜单表 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.sys_role">
<summary> 角色表 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.sys_role_menu">
<summary> 角色菜单关联表 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.sys_sms">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.sys_task">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.sys_user">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.sys_user_hospital">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.sys_user_role">
<summary> 用户角色关联表 </summary>
</member>
<member name="T:Performance.EntityModels.ag_againsituation"> <member name="T:Performance.EntityModels.ag_againsituation">
<summary> <summary>
二次分配概览 二次分配概览
......
...@@ -52,5 +52,8 @@ public enum AllotStates ...@@ -52,5 +52,8 @@ public enum AllotStates
/// <summary> 归档 </summary> /// <summary> 归档 </summary>
[Description("归档")] [Description("归档")]
Archive = 8, Archive = 8,
/// <summary> 归档 </summary>
[Description("等待")]
Wait = 9,
} }
} }
...@@ -193,6 +193,10 @@ public bool Update(per_allot allot) ...@@ -193,6 +193,10 @@ public bool Update(per_allot allot)
} }
#endregion #endregion
public void UpdateAllotStates(int allotId, int states, string remark)
{
_allotRepository.UpdateAllotStates(allotId, states, remark);
}
/// <summary> /// <summary>
/// 生成绩效 /// 生成绩效
/// </summary> /// </summary>
...@@ -205,17 +209,17 @@ public void Generate(per_allot allot, string mail) ...@@ -205,17 +209,17 @@ public void Generate(per_allot allot, string mail)
{ {
logdbug.Add(allot.ID, "绩效开始执行", JsonHelper.Serialize(allot)); logdbug.Add(allot.ID, "绩效开始执行", JsonHelper.Serialize(allot));
configService.Clear(allot.ID); configService.Clear(allot.ID);
_allotRepository.UpdateAllotStates(allot.ID, (int)AllotStates.InCheckData, EnumHelper.GetDescription(AllotStates.InCheckData)); UpdateAllotStates(allot.ID, (int)AllotStates.InCheckData, EnumHelper.GetDescription(AllotStates.InCheckData));
// 导出数据 // 导出数据
var excel = importDataService.ReadDataAndSave(allot); var excel = importDataService.ReadDataAndSave(allot);
if (!checkDataService.Check(excel, allot)) if (!checkDataService.Check(excel, allot))
{ {
_allotRepository.UpdateAllotStates(allot.ID, (int)AllotStates.CheckFail, EnumHelper.GetDescription(AllotStates.CheckFail)); UpdateAllotStates(allot.ID, (int)AllotStates.CheckFail, EnumHelper.GetDescription(AllotStates.CheckFail));
SendEmail(allot, mail, 3, time); SendEmail(allot, mail, 3, time);
logdbug.Add(allot.ID, "绩效数据校验失败", JsonHelper.Serialize(allot)); logdbug.Add(allot.ID, "绩效数据校验失败", JsonHelper.Serialize(allot));
return; return;
} }
_allotRepository.UpdateAllotStates(allot.ID, (int)AllotStates.InGenerate, EnumHelper.GetDescription(AllotStates.InGenerate)); UpdateAllotStates(allot.ID, (int)AllotStates.InGenerate, EnumHelper.GetDescription(AllotStates.InGenerate));
// 计算合并数据 // 计算合并数据
logdbug.Add(allot.ID, "计算合并数据", JsonHelper.Serialize(allot)); logdbug.Add(allot.ID, "计算合并数据", JsonHelper.Serialize(allot));
List<PerSheet> list = processComputService.MergeAndSave(excel, allot); List<PerSheet> list = processComputService.MergeAndSave(excel, allot);
...@@ -227,14 +231,14 @@ public void Generate(per_allot allot, string mail) ...@@ -227,14 +231,14 @@ public void Generate(per_allot allot, string mail)
var baiscnormList = resultComputeService.Compute(allot, excel, list); var baiscnormList = resultComputeService.Compute(allot, excel, list);
resultComputeService.SpecialUnitCompute(excel, allot, baiscnormList); resultComputeService.SpecialUnitCompute(excel, allot, baiscnormList);
_allotRepository.UpdateAllotStates(allot.ID, (int)AllotStates.GenerateSucceed, EnumHelper.GetDescription(AllotStates.GenerateSucceed)); UpdateAllotStates(allot.ID, (int)AllotStates.GenerateSucceed, EnumHelper.GetDescription(AllotStates.GenerateSucceed));
//发送邮件 //发送邮件
SendEmail(allot, mail, 1, time); SendEmail(allot, mail, 1, time);
logdbug.Add(allot.ID, "绩效开始执行", "绩效生成成功"); logdbug.Add(allot.ID, "绩效开始执行", "绩效生成成功");
} }
catch (Exception ex) catch (Exception ex)
{ {
_allotRepository.UpdateAllotStates(allot.ID, (int)AllotStates.GenerateFail, EnumHelper.GetDescription(AllotStates.GenerateFail)); UpdateAllotStates(allot.ID, (int)AllotStates.GenerateFail, EnumHelper.GetDescription(AllotStates.GenerateFail));
SendEmail(allot, mail, 2, time); SendEmail(allot, mail, 2, time);
logdbug.Add(allot.ID, "绩效开始执行", ex.ToString()); logdbug.Add(allot.ID, "绩效开始执行", ex.ToString());
//throw ex; //throw ex;
......
...@@ -301,7 +301,7 @@ public res_compute UpdateRealfee(ComputerRequest request, int userId, string rea ...@@ -301,7 +301,7 @@ public res_compute UpdateRealfee(ComputerRequest request, int userId, string rea
/// <returns></returns> /// <returns></returns>
public List<res_baiscnorm> GetBaiscnorm(int allotId) public List<res_baiscnorm> GetBaiscnorm(int allotId)
{ {
return perforResbaiscnormRepository.GetEntities(t => t.AllotID == allotId); return perforResbaiscnormRepository.GetEntities(t => t.AllotID == allotId).OrderBy(t => t.PositionName).ToList();
} }
} }
} }
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