Commit a46c75de by lcx

新增数据

parent 06d34934
...@@ -453,6 +453,34 @@ ...@@ -453,6 +453,34 @@
<param name="request"></param> <param name="request"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ConfigController.GetDepttypeList(Performance.DtoModels.DrugpropRequest)">
<summary>
获取 药占比类型信息列表
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.DepttypeInsert(Performance.DtoModels.DrugpropRequest)">
<summary>
新增药占比类型
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.DepttypeUpdate(Performance.DtoModels.DrugpropRequest)">
<summary>
修改药占比类型
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.DepttypeDelete(Performance.DtoModels.DrugpropRequest)">
<summary>
删除药占比类型
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.WorkHeader(Performance.DtoModels.WorkItemRequest)"> <member name="M:Performance.Api.Controllers.ConfigController.WorkHeader(Performance.DtoModels.WorkItemRequest)">
<summary> <summary>
获取工作量绩效列头 获取工作量绩效列头
......
...@@ -67,6 +67,9 @@ ...@@ -67,6 +67,9 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_check"> <member name="P:Performance.EntityModels.PerformanceDbContext.cof_check">
<summary> 上传excel文件校验配置 </summary> <summary> 上传excel文件校验配置 </summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_depttype">
<summary> 科室类型 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_director"> <member name="P:Performance.EntityModels.PerformanceDbContext.cof_director">
<summary> 规模绩效、效率绩效计算系数配置 </summary> <summary> 规模绩效、效率绩效计算系数配置 </summary>
</member> </member>
...@@ -1130,6 +1133,31 @@ ...@@ -1130,6 +1133,31 @@
单元格列头名称 单元格列头名称
</summary> </summary>
</member> </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"> <member name="T:Performance.EntityModels.cof_director">
<summary> <summary>
规模绩效、效率绩效计算系数配置 规模绩效、效率绩效计算系数配置
...@@ -1615,6 +1643,16 @@ ...@@ -1615,6 +1643,16 @@
工作量倾斜系数 工作量倾斜系数
</summary> </summary>
</member> </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"> <member name="T:Performance.EntityModels.im_data">
<summary> <summary>
...@@ -1700,6 +1738,16 @@ ...@@ -1700,6 +1738,16 @@
</summary> </summary>
</member> </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"> <member name="T:Performance.EntityModels.im_employee">
<summary> <summary>
...@@ -1815,6 +1863,16 @@ ...@@ -1815,6 +1863,16 @@
发放系数 发放系数
</summary> </summary>
</member> </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"> <member name="T:Performance.EntityModels.im_employee_clinic">
<summary> <summary>
...@@ -1935,6 +1993,16 @@ ...@@ -1935,6 +1993,16 @@
发放系数 发放系数
</summary> </summary>
</member> </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"> <member name="T:Performance.EntityModels.im_header">
<summary> <summary>
...@@ -2000,6 +2068,16 @@ ...@@ -2000,6 +2068,16 @@
1 汇总 2原始数据 1 汇总 2原始数据
</summary> </summary>
</member> </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"> <member name="T:Performance.EntityModels.im_specialunit">
<summary> <summary>
特殊科室核算 特殊科室核算
...@@ -2070,6 +2148,16 @@ ...@@ -2070,6 +2148,16 @@
调节系数 调节系数
</summary> </summary>
</member> </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"> <member name="T:Performance.EntityModels.log_check">
<summary> <summary>
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
using Performance.EntityModels; using Performance.EntityModels;
using Performance.Infrastructure; using Performance.Infrastructure;
using Performance.Repository; using Performance.Repository;
using Remotion.Linq.Clauses.ResultOperators;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
...@@ -146,99 +147,111 @@ private void SetValue<TEntity>(TEntity entity, Cell cell) ...@@ -146,99 +147,111 @@ private void SetValue<TEntity>(TEntity entity, Cell cell)
private bool EditFeeData(int userId, OriginalRequest request) private bool EditFeeData(int userId, OriginalRequest request)
{ {
var result = false; var result = false;
var allData = imdataRepository.GetEntities(t => t.SheetID == request.SheetId); var header = imheaderRepository.GetEntity(t => t.SheetID == request.SheetId && t.PointCell == request.Cell.PointCell);
if (allData == null || !allData.Any(t => t.RowNumber == request.RowNumber)) if (string.IsNullOrEmpty(request.Cell.FieldName))
throw new PerformanceException("提交数据无效");
var updateData = request.Cell;
if (updateData != null)
{ {
var data = allData.Where(t => t.RowNumber == request.RowNumber).ToList(); if (header == null)
ImDataPublic(request.Cell, data); throw new PerformanceException("提交数据无效");
var publicTypes = new string[] { "核算单元(医技组)", "核算单元(医生组)", "核算单元(护理组)", "科室名称", "核算单元", "核算单元类型" }; else
if (!publicTypes.Contains(updateData.FieldName)) request.Cell.FieldName = header.CellValue;
}
var publicTypes = new string[] { "核算单元(医技组)", "核算单元(医生组)", "核算单元(护理组)", "科室名称" };
if (publicTypes.Contains(request.Cell.FieldName))
result = ImDataPublic(request);
else
{
if (request.Cell.Id > 0)
{ {
var type = updateData.CellValue.GetType(); var type = request.Cell.CellValue.GetType();
if (type.Name != "String") if (type.Name != "String")
{ {
var entity = data.FirstOrDefault(w => w.ID == updateData.Id); var entity = imdataRepository.GetEntity(w => w.ID == request.Cell.Id);
entity.CellValue = ConvertHelper.To<decimal?>(updateData.CellValue); entity.CellValue = ConvertHelper.To<decimal?>(request.Cell.CellValue);
entity.UpdateDate = DateTime.Now; entity.UpdateDate = DateTime.Now;
entity.UpdateUser = userId; entity.UpdateUser = userId;
result = imdataRepository.Update(entity);
} }
} }
result = imdataRepository.UpdateRange(data.ToArray()); else
result = ImDataInsert(userId, request, header);
} }
result = ImDataInsert(userId, request, allData);
return result; return result;
} }
private void ImDataPublic(Cell cell, List<im_data> allData) private bool ImDataPublic(OriginalRequest request)
{ {
Dictionary<int, string> publicTypes = new Dictionary<int, string> var allData = imdataRepository.GetEntities(t => t.SheetID == request.SheetId && t.RowNumber == request.RowNumber);
{ if (request.Cell == null || allData == null || !allData.Any())
{ (int)UnitType.医技组, "核算单元(医技组)" }, throw new PerformanceException("提交数据无效");
{ (int)UnitType.医生组, "核算单元(医生组)" },
{ (int)UnitType.护理组, "核算单元(护理组)" },
};
foreach (var item in publicTypes)
{
if (cell.FieldName != item.Value)
continue;
var cellvalue = cell.CellValue.ToString(); if (request.Cell.FieldName == "科室名称")
var unitType = allData.FirstOrDefault(t => t.UnitType == item.Key).AccountingUnit; {
if (cellvalue != unitType) var department = allData.FirstOrDefault().Department;
if (request.Cell.CellValue.ToString() != department)
{ {
allData.Where(t => t.UnitType == item.Key).ToList().ForEach(t => allData.ForEach(t =>
{ {
t.AccountingUnit = cellvalue; t.Department = request.Cell.CellValue.ToString();
}); });
} }
} }
if (cell.FieldName == "科室名称") else
{ {
var department = allData.FirstOrDefault().Department; Dictionary<string, int> publicTypes = new Dictionary<string, int>
if (cell.CellValue.ToString() != department)
{ {
allData.ForEach(t => { "核算单元(医技组)", (int)UnitType.医技组 },
{ "核算单元(医生组)", (int)UnitType.医生组 },
{ "核算单元(护理组)", (int)UnitType.护理组 },
};
var cellvalue = request.Cell.CellValue.ToString();
var accountingUnit = allData.FirstOrDefault(t => t.UnitType == publicTypes[request.Cell.FieldName]).AccountingUnit;
if (cellvalue != accountingUnit)
{
allData.Where(t => t.UnitType == publicTypes[request.Cell.FieldName]).ToList().ForEach(t =>
{ {
t.Department = cell.CellValue.ToString(); t.AccountingUnit = cellvalue;
}); });
} }
} }
return imdataRepository.UpdateRange(allData.ToArray());
} }
private bool ImDataInsert(int userId, OriginalRequest request, List<im_data> allData) private bool ImDataInsert(int userId, OriginalRequest request, im_header header)
{ {
if (request.Cell.Id == 0) var allData = imdataRepository.GetEntities(t => t.SheetID == request.SheetId);
return true; if (request.Cell == null || allData == null || !allData.Any())
throw new PerformanceException("提交数据无效");
// 列
var header = imheaderRepository.GetEntity(t => t.SheetID == request.SheetId && t.CellValue == request.Cell.FieldName);
// 核算单元、科室 // 核算单元、科室
var publicData = allData.First(); var publicData = allData.Where(t => t.RowNumber == request.RowNumber).GroupBy(t => t.UnitType).Select(t => new
// rownumber含有的核算类型
var unittype = allData.Where(t => t.RowNumber == request.RowNumber).Select(t => t.UnitType).Distinct();
var factor = allData.Where(t => unittype.Contains(t.UnitType)).GroupBy(t => new { t.UnitType, t.TypeName }).Select(t => new
{ {
UnitType = t.Key.UnitType, UnitType = t.Key,
TypeName = t.Key.TypeName, AccountingUnit = t.Max(group => group.AccountingUnit),
FactorValue = t.Max(group => group.FactorValue) Department = t.Max(group => group.Department),
}); });
// rownumber含有的核算类型
var unittype = allData.Where(t => t.RowNumber == request.RowNumber).Select(t => t.UnitType).Distinct();
var factor = allData.Where(t => unittype.Contains(t.UnitType) && t.TypeName == request.Cell.FieldName)
.GroupBy(t => new { t.UnitType, t.TypeName }).Select(t => new
{
t.Key.UnitType,
t.Key.TypeName,
FactorValue = t.Max(group => group.FactorValue)
});
var allotid = allData.First().AllotID;
var newData = factor.Select(t => new im_data var newData = factor.Select(t => new im_data
{ {
RowNumber = request.RowNumber, RowNumber = request.RowNumber,
AccountingUnit = publicData.AccountingUnit, AccountingUnit = publicData.FirstOrDefault(w => w.UnitType == t.UnitType)?.AccountingUnit,
Department = publicData.Department, Department = publicData.FirstOrDefault(w => w.UnitType == t.UnitType)?.Department,
UnitType = t.UnitType, UnitType = t.UnitType,
TypeName = request.Cell.FieldName, TypeName = request.Cell.FieldName,
CellValue = ConvertHelper.To<decimal>(request.Cell.CellValue), CellValue = ConvertHelper.To<decimal>(request.Cell.CellValue),
IsFactor = 1, IsFactor = 1,
FactorValue = t.FactorValue, FactorValue = t.FactorValue,
SignID = header.SignID, SignID = header.SignID,
SheetID = request.SheetId,
AllotID = allotid,
UpdateDate = DateTime.Now, UpdateDate = DateTime.Now,
UpdateUser = userId, UpdateUser = userId,
}); });
......
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