模板选择BUG修复;科室改名调用存储过程矫正

parent 002f472e
......@@ -701,6 +701,7 @@ public bool IssuedChangeSecond(per_allot allot, List<ag_secondallot> secondList)
}
_service.FreezeAllotSync(allot.ID);
_service.SecondUseTempRestoreSync();
_service.RestoreSecondAllotAsync();
}
}
perforAgsecondallotRepository.UpdateRange(updSeconds.ToArray());
......
......@@ -454,6 +454,7 @@ public void Generate(per_allot allot)
resultComputeService.GenerateSecondAllot(allot);
_service.FreezeAllotSync(allot.ID);
_service.SecondUseTempRestoreSync();
_service.RestoreSecondAllotAsync();
_service.ClearAllotSync();
UpdateAllotStates(allot.ID, (int)AllotStates.绩效结果解析成功, EnumHelper.GetDescription(AllotStates.绩效结果解析成功), generate);
......
......@@ -224,5 +224,29 @@ Deptdic GetDeptdic(List<per_dept_dic> dics, string department, string hISDeptNam
}
#endregion
/// <summary>
/// 科室改名历史数据处理
/// </summary>
/// <param name="allotId"></param>
public Task RestoreSecondAllotAsync()
{
return Task.Factory.StartNew(() =>
{
using (var connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
{
if (connection.State != ConnectionState.Open) connection.Open();
try
{
string sql = $@"call proc_restore_secondallot()";
connection.Execute(sql, commandTimeout: 60 * 60);
}
catch (Exception)
{
throw;
}
}
});
}
}
}
......@@ -179,7 +179,10 @@ public List<SecondListResponse> GetSecondList(int userId)
// 查询过往科室的绩效
var histroys = agsecondallotRepository.GetEntities(t => allotListId.Contains(t.AllotId.Value) && unitType.Contains(t.NewUnitType) && t.NewAccountingUnit == userInfo.User.Department);
if (histroys != null && histroys.Any())
secondList.AddRange(histroys.ToArray());
{
var sids = secondList.Select(w => w.Id).ToArray();
secondList.AddRange(histroys.Where(w => !sids.Contains(w.Id)));
}
var list = _mapper.Map<List<SecondListResponse>>(secondList);
......@@ -917,8 +920,8 @@ public List<SecondTempResponse> GetTemp(int hospitalid, string department, int u
public bool UseTemp(UseTempRequest request)
{
var result = false;
var entity = agusetempRepository.GetEntity(t => t.HospitalId == request.HospitalId
&& t.Department == request.Department && t.UnitType == request.UnitType);
var entities = agusetempRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.Department == request.Department);
var entity = entities.FirstOrDefault(w => UnitTypeUtil.IsEqualsUnitType(w.UnitType, request.UnitType));
if (entity == null)
{
entity = _mapper.Map<ag_usetemp>(request);
......@@ -1737,6 +1740,7 @@ public bool ConfirmAudit(int userId, SecondAuditRequest request)
if (request.IsPass == 1)
_service.FreezeAllotSync(second.AllotId.Value);
_service.SecondUseTempRestoreSync();
_service.RestoreSecondAllotAsync();
return result;
}
......
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