Commit 5ff7ab55 by lcx

Merge branch 'develop' into feature/核算前单项

parents de7221ce 8dce0149
......@@ -238,7 +238,12 @@ public IEnumerable<view_second_workload_result> GetSecondWorkload(int allotid, s
if (connection.State != ConnectionState.Open) connection.Open();
try
{
string query = $@"SELECT * FROM view_second_workload_result WHERE AllotId = @allotid AND UnitType = @unittype AND AccountingUnit = @accountingunit";
string query = $@"
SELECT TAB1.HospitalId,AllotId,TAB1.UnitType,AccountingUnit,HISDeptName,ItemId,ItemName,FactorValue,DoctorName,PersonnelNumber,Category,SUM(Fee) Value
FROM view_second_workload TAB1
JOIN view_second_workload_his TAB2 ON TAB1.HospitalId = TAB2.HospitalId AND (TAB1.UnitType = TAB2.UnitType ) AND TAB1.HISDeptName = TAB2.Department AND TAB1.SourceCategory = TAB2.Category
WHERE AllotId = @allotid AND TAB1.UnitType = @unittype AND AccountingUnit = @accountingunit
GROUP BY TAB1.HospitalId,AllotId,TAB1.UnitType,AccountingUnit,HISDeptName,ItemId,ItemName,FactorValue,DoctorName,PersonnelNumber,Category";
return connection.Query<view_second_workload_result>(query, new { allotid, unittype, accountingunit }, commandTimeout: 60 * 60);
}
catch (Exception ex)
......
......@@ -69,9 +69,9 @@ public void Handler(int hospitalId, per_allot allot, string groupName, bool isSi
{
logService.ReturnTheLog(allot.ID, groupName, 2, "提取数据", $"提取人员信息数据", isSingle: isSingle);
var typeIds = types.Where(t => t.Source == (int)SheetType.Employee).Select(t => t.Id);
var script = scripts.FirstOrDefault(t => typeIds.Contains(t.TypeId));
var script = scripts.Where(t => typeIds.Contains(t.TypeId));
if (script != null)
Employee(allot, configs.FirstOrDefault(t => t.Id == script.ConfigId), script.ExecScript);
Employee(allot, configs, scripts);
}
if (types.Any(t => t.Source == (int)SheetType.OnlyExtract)) //不写入Excel的提取数据
{
......@@ -106,13 +106,17 @@ public void Handler(int hospitalId, per_allot allot, string groupName, bool isSi
}
}
private void Employee(per_allot allot, sys_hospitalconfig config, string sql)
private void Employee(per_allot allot, List<sys_hospitalconfig> configs, IEnumerable<ex_script> scripts)
{
try
{
foreach (var script in scripts)
{
var config = configs.FirstOrDefault(w => w.Id == script.ConfigId);
var sql = script.ExecScript;
if (config == null || string.IsNullOrEmpty(sql)) return;
var limitData = queryService.QueryData<dynamic>(config, allot, $"select * from ({sql}) t limit 1;");
var limitData = queryService.QueryData<dynamic>(config, allot, sql);
if (limitData == null || !limitData.Any()) return;
var columns = ((IDictionary<string, object>)limitData.ElementAt(0)).Select(t => t.Key.ToLower()).ToList();
......@@ -158,6 +162,7 @@ private void Employee(per_allot allot, sys_hospitalconfig config, string sql)
JudgeDataEqual(columns, needUpdateData.ToList(), data);
}
}
}
catch (Exception ex)
{
logger.LogError("获取人员名单时发生异常:" + ex.ToString());
......
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