Commit cadb9048 by lcx

Merge branch 'sec_work' into 科室取值

# Conflicts:
#	performance/Performance.Services/SecondAllotService.cs
parents 468c038c a9fa0b60
...@@ -216,6 +216,59 @@ public ApiResponse WorkloadDelete([CustomizeValidator(RuleSet = "Delete"), FromB ...@@ -216,6 +216,59 @@ public ApiResponse WorkloadDelete([CustomizeValidator(RuleSet = "Delete"), FromB
var result = secondAllotService.WorkloadDelete(request.Id); var result = secondAllotService.WorkloadDelete(request.Id);
return new ApiResponse(result ? ResponseType.OK : ResponseType.Fail); return new ApiResponse(result ? ResponseType.OK : ResponseType.Fail);
} }
/// <summary>
/// 二次绩效单例奖励列表
/// </summary>
/// <returns></returns>
[Route("api/second/single/list")]
[HttpPost]
public ApiResponse SingleAwards([FromBody]WorkloadRequest request)
{
var result = secondAllotService.GetSingleList(request);
return new ApiResponse(ResponseType.OK, result);
}
/// <summary>
/// 二次绩效工作量类型列表
/// </summary>
/// <returns></returns>
[Route("api/second/worktype/list")]
[HttpPost]
public ApiResponse WorkTypeList([FromBody]WorkloadRequest request)
{
var result = secondAllotService.WorkTypeList(request);
return new ApiResponse(ResponseType.OK, result);
}
/// <summary>
/// 保存二次绩效工作量类型
/// </summary>
/// <returns></returns>
[Route("api/second/worktype/save")]
[HttpPost]
public ApiResponse SingleSave([FromBody]ag_workload_type request)
{
if (request.HospitalId == 0)
return new ApiResponse(ResponseType.ParameterError, "医院信息无效");
if (string.IsNullOrEmpty(request.TypeName))
return new ApiResponse(ResponseType.ParameterError, "填写参数无效");
var result = secondAllotService.SaveWorkType(request);
return new ApiResponse(ResponseType.OK, result);
}
/// <summary>
/// 删除二次绩效工作量类型
/// </summary>
/// <returns></returns>
[Route("api/second/single/delete")]
[HttpPost]
public ApiResponse SingleDelete([CustomizeValidator(RuleSet = "Delete"), FromBody]WorkloadRequest request)
{
var result = secondAllotService.DeleteWorkType(request);
return result ? new ApiResponse(ResponseType.OK, "删除成功") : new ApiResponse(ResponseType.Fail, "删除失败");
}
#endregion #endregion
#region 二次绩效审核 #region 二次绩效审核
......
...@@ -840,6 +840,30 @@ ...@@ -840,6 +840,30 @@
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.SecondAllotController.SingleAwards(Performance.DtoModels.WorkloadRequest)">
<summary>
二次绩效单例奖励列表
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.SecondAllotController.WorkTypeList(Performance.DtoModels.WorkloadRequest)">
<summary>
二次绩效工作量类型列表
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.SecondAllotController.SingleSave(Performance.EntityModels.ag_workload_type)">
<summary>
保存二次绩效工作量类型
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.SecondAllotController.SingleDelete(Performance.DtoModels.WorkloadRequest)">
<summary>
删除二次绩效工作量类型
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.SecondAllotController.SubmitAudit(Performance.DtoModels.SubmitAuditRequest)"> <member name="M:Performance.Api.Controllers.SecondAllotController.SubmitAudit(Performance.DtoModels.SubmitAuditRequest)">
<summary> <summary>
提交审核 提交审核
......
...@@ -143,6 +143,16 @@ ...@@ -143,6 +143,16 @@
<member name="F:Performance.DtoModels.AllotStates.GenerateAccomplish"> <member name="F:Performance.DtoModels.AllotStates.GenerateAccomplish">
<summary> 绩效结果解析成功 </summary> <summary> 绩效结果解析成功 </summary>
</member> </member>
<member name="F:Performance.DtoModels.AgWorkloadType.SingleAwards">
<summary>
单项奖励
</summary>
</member>
<member name="F:Performance.DtoModels.AgWorkloadType.Workload">
<summary>
工作量
</summary>
</member>
<member name="P:Performance.DtoModels.PerAgainData.RowNumber"> <member name="P:Performance.DtoModels.PerAgainData.RowNumber">
<summary> <summary>
行号 行号
...@@ -1955,6 +1965,11 @@ ...@@ -1955,6 +1965,11 @@
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.WorkloadRequest.WorkTypeId">
<summary>
1、工作量 2、其他
</summary>
</member>
<member name="P:Performance.DtoModels.WorkyearRequest.MaxRange"> <member name="P:Performance.DtoModels.WorkyearRequest.MaxRange">
<summary> <summary>
最大工龄范围(小于) 最大工龄范围(小于)
...@@ -2732,6 +2747,9 @@ ...@@ -2732,6 +2747,9 @@
<member name="P:Performance.DtoModels.HeadItem.IsBring"> <member name="P:Performance.DtoModels.HeadItem.IsBring">
<summary> 1 带出历史数据 2不带出 </summary> <summary> 1 带出历史数据 2不带出 </summary>
</member> </member>
<member name="P:Performance.DtoModels.HeadItem.SpecialAttr">
<summary> 1 value相加值为1 </summary>
</member>
<member name="P:Performance.DtoModels.SecondTempResponse.TempName"> <member name="P:Performance.DtoModels.SecondTempResponse.TempName">
<summary> <summary>
模板名称 模板名称
......
...@@ -43,6 +43,9 @@ ...@@ -43,6 +43,9 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.ag_workload"> <member name="P:Performance.EntityModels.PerformanceDbContext.ag_workload">
<summary> 二次绩效工作量绩效 </summary> <summary> 二次绩效工作量绩效 </summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.ag_workload_type">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.as_assess"> <member name="P:Performance.EntityModels.PerformanceDbContext.as_assess">
<summary> 考核类别 </summary> <summary> 考核类别 </summary>
</member> </member>
...@@ -557,6 +560,11 @@ ...@@ -557,6 +560,11 @@
1 自动带出 2 计算得出 1 自动带出 2 计算得出
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.ag_fixatitem.SpecialAttr">
<summary>
1 value相加值为1
</summary>
</member>
<member name="T:Performance.EntityModels.ag_header"> <member name="T:Performance.EntityModels.ag_header">
<summary> <summary>
二次分配不固定列头数据 二次分配不固定列头数据
...@@ -832,6 +840,11 @@ ...@@ -832,6 +840,11 @@
1 带出历史数据 2不带出 1 带出历史数据 2不带出
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.ag_tempitem.SpecialAttr">
<summary>
1 value相加值为1
</summary>
</member>
<member name="T:Performance.EntityModels.ag_usetemp"> <member name="T:Performance.EntityModels.ag_usetemp">
<summary> <summary>
...@@ -907,6 +920,31 @@ ...@@ -907,6 +920,31 @@
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.ag_workload.WorkTypeId">
<summary>
1、单项奖励 2、工作量占比 ..(自定义占比)
</summary>
</member>
<member name="T:Performance.EntityModels.ag_workload_type">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ag_workload_type.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ag_workload_type.HospitalId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ag_workload_type.TypeName">
<summary>
</summary>
</member>
<member name="T:Performance.EntityModels.as_assess"> <member name="T:Performance.EntityModels.as_assess">
<summary> <summary>
考核类别 考核类别
...@@ -2854,7 +2892,7 @@ ...@@ -2854,7 +2892,7 @@
</member> </member>
<member name="P:Performance.EntityModels.per_budget_result.States"> <member name="P:Performance.EntityModels.per_budget_result.States">
<summary> <summary>
1.初始 2.确认使用发放/调节系数 3.取消使用 1.初始 2. 确认使用发放/调节系数
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.per_budget_result.CreateDate"> <member name="P:Performance.EntityModels.per_budget_result.CreateDate">
......
...@@ -81,4 +81,16 @@ public enum AllotStates ...@@ -81,4 +81,16 @@ public enum AllotStates
[Description("数据验证通过")] [Description("数据验证通过")]
GenerateAccomplish = 10, GenerateAccomplish = 10,
} }
public enum AgWorkloadType
{
/// <summary>
/// 单项奖励
/// </summary>
SingleAwards = 1,
/// <summary>
/// 工作量
/// </summary>
Workload = 2,
}
} }
...@@ -41,6 +41,11 @@ public class WorkloadRequest ...@@ -41,6 +41,11 @@ public class WorkloadRequest
/// ///
/// </summary> /// </summary>
public Nullable<decimal> Sort { get; set; } public Nullable<decimal> Sort { get; set; }
/// <summary>
/// 1、工作量 2、其他
/// </summary>
public int WorkTypeId { get; set; }
} }
public class WorkloadRequestValidator : AbstractValidator<WorkloadRequest> public class WorkloadRequestValidator : AbstractValidator<WorkloadRequest>
{ {
...@@ -52,6 +57,7 @@ public WorkloadRequestValidator() ...@@ -52,6 +57,7 @@ public WorkloadRequestValidator()
RuleFor(x => x.Department).NotNull().NotEmpty(); RuleFor(x => x.Department).NotNull().NotEmpty();
RuleFor(x => x.UnitType).NotNull().NotEmpty(); RuleFor(x => x.UnitType).NotNull().NotEmpty();
RuleFor(x => x.ItemName).NotNull().NotEmpty(); RuleFor(x => x.ItemName).NotNull().NotEmpty();
RuleFor(x => x.WorkTypeId).NotNull().GreaterThan(0);
}); });
RuleSet("Update", () => RuleSet("Update", () =>
...@@ -59,6 +65,7 @@ public WorkloadRequestValidator() ...@@ -59,6 +65,7 @@ public WorkloadRequestValidator()
RuleFor(x => x.Id).NotNull().GreaterThan(0); RuleFor(x => x.Id).NotNull().GreaterThan(0);
RuleFor(x => x.HospitalId).NotNull().GreaterThan(0); RuleFor(x => x.HospitalId).NotNull().GreaterThan(0);
RuleFor(x => x.ItemName).NotNull().NotEmpty(); RuleFor(x => x.ItemName).NotNull().NotEmpty();
RuleFor(x => x.WorkTypeId).NotNull().GreaterThan(0);
}); });
RuleSet("Delete", () => RuleSet("Delete", () =>
......
...@@ -10,7 +10,7 @@ public class SecondResponse ...@@ -10,7 +10,7 @@ public class SecondResponse
public List<BodyItem> BodyItems { get; set; } public List<BodyItem> BodyItems { get; set; }
} }
public class HeadItem public class HeadItem : ICloneable
{ {
public string FiledId { get; set; } public string FiledId { get; set; }
public string FiledName { get; set; } public string FiledName { get; set; }
...@@ -20,6 +20,14 @@ public class HeadItem ...@@ -20,6 +20,14 @@ public class HeadItem
public int SourceType { get; set; } public int SourceType { get; set; }
/// <summary> 1 带出历史数据 2不带出 </summary> /// <summary> 1 带出历史数据 2不带出 </summary>
public Nullable<int> IsBring { get; set; } public Nullable<int> IsBring { get; set; }
/// <summary> 1 value相加值为1 </summary>
public Nullable<int> SpecialAttr { get; set; }
public Nullable<int> WorkType { get; set; }
public object Clone()
{
return MemberwiseClone();
}
} }
public class BodyItem : HeadItem public class BodyItem : HeadItem
......
...@@ -38,6 +38,8 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options) ...@@ -38,6 +38,8 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<ag_usetemp> ag_usetemp { get; set; } public virtual DbSet<ag_usetemp> ag_usetemp { get; set; }
/// <summary> 二次绩效工作量绩效 </summary> /// <summary> 二次绩效工作量绩效 </summary>
public virtual DbSet<ag_workload> ag_workload { get; set; } public virtual DbSet<ag_workload> ag_workload { get; set; }
/// <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; } public virtual DbSet<as_assess> as_assess { get; set; }
/// <summary> 考核列头 </summary> /// <summary> 考核列头 </summary>
......
...@@ -70,5 +70,10 @@ public class ag_fixatitem ...@@ -70,5 +70,10 @@ public class ag_fixatitem
/// 1 自动带出 2 计算得出 /// 1 自动带出 2 计算得出
/// </summary> /// </summary>
public Nullable<int> SourceType { get; set; } public Nullable<int> SourceType { get; set; }
/// <summary>
/// 1 value相加值为1
/// </summary>
public Nullable<int> SpecialAttr { get; set; }
} }
} }
...@@ -55,5 +55,10 @@ public class ag_tempitem ...@@ -55,5 +55,10 @@ public class ag_tempitem
/// 1 带出历史数据 2不带出 /// 1 带出历史数据 2不带出
/// </summary> /// </summary>
public Nullable<int> IsBring { get; set; } public Nullable<int> IsBring { get; set; }
/// <summary>
/// 1 value相加值为1
/// </summary>
public Nullable<int> SpecialAttr { get; set; }
} }
} }
...@@ -55,5 +55,10 @@ public class ag_workload ...@@ -55,5 +55,10 @@ public class ag_workload
/// ///
/// </summary> /// </summary>
public Nullable<decimal> Sort { get; set; } public Nullable<decimal> Sort { get; set; }
/// <summary>
/// 1、单项奖励 2、工作量占比 ..(自定义占比)
/// </summary>
public int WorkTypeId { get; set; }
} }
} }
//-----------------------------------------------------------------------
// <copyright file=" ag_workload_type.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("ag_workload_type")]
public class ag_workload_type
{
/// <summary>
///
/// </summary>
[Key]
public int Id { get; set; }
/// <summary>
///
/// </summary>
public int HospitalId { get; set; }
/// <summary>
///
/// </summary>
public string TypeName { get; set; }
}
}
...@@ -105,17 +105,17 @@ public class im_accountbasic ...@@ -105,17 +105,17 @@ public class im_accountbasic
/// 其他绩效2 /// 其他绩效2
/// </summary> /// </summary>
public Nullable<decimal> DoctorOtherPerfor2 { get; set; } public Nullable<decimal> DoctorOtherPerfor2 { get; set; }
/// <summary> /// <summary>
/// 药占比奖罚 /// 药占比奖罚
/// </summary> /// </summary>
public Nullable<decimal> MedicineExtra { get; set; } public Nullable<decimal> MedicineExtra { get; set; }
/// <summary> /// <summary>
/// 材料占比奖罚 /// 材料占比奖罚
/// </summary> /// </summary>
public Nullable<decimal> MaterialsExtra { get; set; } public Nullable<decimal> MaterialsExtra { get; set; }
/// <summary> /// <summary>
/// 医院奖罚 /// 医院奖罚
/// </summary> /// </summary>
......
...@@ -25,12 +25,12 @@ public class per_budget_amount ...@@ -25,12 +25,12 @@ public class per_budget_amount
/// ///
/// </summary> /// </summary>
public int HospitalId { get; set; } public int HospitalId { get; set; }
/// <summary> /// <summary>
/// 根据该年份测算下一年 /// 根据该年份测算下一年
/// </summary> /// </summary>
public int MainYear { get; set; } public int MainYear { get; set; }
/// <summary> /// <summary>
/// 实际年份、预算年份 /// 实际年份、预算年份
/// </summary> /// </summary>
......
...@@ -25,12 +25,12 @@ public class per_budget_ratio ...@@ -25,12 +25,12 @@ public class per_budget_ratio
/// ///
/// </summary> /// </summary>
public int HospitalId { get; set; } public int HospitalId { get; set; }
/// <summary> /// <summary>
/// 根据该年份测算下一年 /// 根据该年份测算下一年
/// </summary> /// </summary>
public int MainYear { get; set; } public int MainYear { get; set; }
/// <summary> /// <summary>
/// 实际年份、预算年份 /// 实际年份、预算年份
/// </summary> /// </summary>
......
...@@ -140,22 +140,22 @@ public class per_budget_result ...@@ -140,22 +140,22 @@ public class per_budget_result
/// 成本合计实际比例 /// 成本合计实际比例
/// </summary> /// </summary>
public Nullable<decimal> TheCostCombinedRatio { get; set; } public Nullable<decimal> TheCostCombinedRatio { get; set; }
/// <summary> /// <summary>
/// 人员经费(不含绩效) /// 人员经费(不含绩效)
/// </summary> /// </summary>
public Nullable<decimal> NoPerformanceExpenditure { get; set; } public Nullable<decimal> NoPerformanceExpenditure { get; set; }
/// <summary> /// <summary>
/// 人员经费(不含绩效)实际比例 /// 人员经费(不含绩效)实际比例
/// </summary> /// </summary>
public Nullable<decimal> NoPerformanceExpenditureRatio { get; set; } public Nullable<decimal> NoPerformanceExpenditureRatio { get; set; }
/// <summary> /// <summary>
/// 1.初始 2.确认使用发放/调节系数 3.取消使用 /// 1.初始 2. 确认使用发放/调节系数
/// </summary> /// </summary>
public int States { get; set; } public int States { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
......
...@@ -100,17 +100,17 @@ public class res_account ...@@ -100,17 +100,17 @@ public class res_account
/// 其他绩效2 /// 其他绩效2
/// </summary> /// </summary>
public Nullable<decimal> OtherPerfor2 { get; set; } public Nullable<decimal> OtherPerfor2 { get; set; }
/// <summary> /// <summary>
/// 药占比奖罚 /// 药占比奖罚
/// </summary> /// </summary>
public Nullable<decimal> MedicineExtra { get; set; } public Nullable<decimal> MedicineExtra { get; set; }
/// <summary> /// <summary>
/// 材料占比奖罚 /// 材料占比奖罚
/// </summary> /// </summary>
public Nullable<decimal> MaterialsExtra { get; set; } public Nullable<decimal> MaterialsExtra { get; set; }
/// <summary> /// <summary>
/// 医院奖罚 /// 医院奖罚
/// </summary> /// </summary>
......
//-----------------------------------------------------------------------
// <copyright file=" ag_workload_type.cs">
// * FileName: ag_workload_type.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// ag_workload_type Repository
/// </summary>
public partial class PerforAgworkloadtypeRepository : PerforRepository<ag_workload_type>
{
public PerforAgworkloadtypeRepository(PerformanceDbContext context) : base(context)
{
}
}
}
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
using Performance.Repository; using Performance.Repository;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq; using System.Linq;
using System.Linq.Expressions; using System.Linq.Expressions;
using System.Text; using System.Text;
...@@ -30,6 +31,7 @@ public class SecondAllotService : IAutoInjection ...@@ -30,6 +31,7 @@ public class SecondAllotService : IAutoInjection
private readonly PerforAgcomputeRepository perforAgcomputeRepository; private readonly PerforAgcomputeRepository perforAgcomputeRepository;
private readonly PerforCofagainRepository perforCofagainRepository; private readonly PerforCofagainRepository perforCofagainRepository;
private readonly PerforAgothersourceRepository perforAgothersourceRepository; private readonly PerforAgothersourceRepository perforAgothersourceRepository;
private readonly PerforAgworkloadtypeRepository perforAgworkloadtypeRepository;
private readonly PerforRoleRepository roleRepository; private readonly PerforRoleRepository roleRepository;
private readonly List<ag_tempitem> tempitems = new List<ag_tempitem>(); private readonly List<ag_tempitem> tempitems = new List<ag_tempitem>();
...@@ -48,6 +50,7 @@ public class SecondAllotService : IAutoInjection ...@@ -48,6 +50,7 @@ public class SecondAllotService : IAutoInjection
PerforAgcomputeRepository perforAgcomputeRepository, PerforAgcomputeRepository perforAgcomputeRepository,
PerforCofagainRepository perforCofagainRepository, PerforCofagainRepository perforCofagainRepository,
PerforAgothersourceRepository perforAgothersourceRepository, PerforAgothersourceRepository perforAgothersourceRepository,
PerforAgworkloadtypeRepository perforAgworkloadtypeRepository,
PerforRoleRepository roleRepository) PerforRoleRepository roleRepository)
{ {
this.application = application.Value; this.application = application.Value;
...@@ -65,6 +68,7 @@ public class SecondAllotService : IAutoInjection ...@@ -65,6 +68,7 @@ public class SecondAllotService : IAutoInjection
this.perforAgcomputeRepository = perforAgcomputeRepository; this.perforAgcomputeRepository = perforAgcomputeRepository;
this.perforCofagainRepository = perforCofagainRepository; this.perforCofagainRepository = perforCofagainRepository;
this.perforAgothersourceRepository = perforAgothersourceRepository; this.perforAgothersourceRepository = perforAgothersourceRepository;
this.perforAgworkloadtypeRepository = perforAgworkloadtypeRepository;
this.roleRepository = roleRepository; this.roleRepository = roleRepository;
this.tempitems = perforAgtempitemRepository.GetEntities(); this.tempitems = perforAgtempitemRepository.GetEntities();
} }
...@@ -303,6 +307,9 @@ public SecondResponse GetSecondDetail(UseTempRequest request) ...@@ -303,6 +307,9 @@ public SecondResponse GetSecondDetail(UseTempRequest request)
//检验 二次绩效配置 数据是否 有值,无则补充带出 //检验 二次绩效配置 数据是否 有值,无则补充带出
FillData(second, result.BodyItems); FillData(second, result.BodyItems);
SupplyHeaderByWorkItem(request, result);
return new SecondResponse return new SecondResponse
{ {
HeadItems = result.HeadItems.OrderBy(t => t.Type).ThenBy(t => t.Sort).ThenBy(t => t.FiledName).ToList(), HeadItems = result.HeadItems.OrderBy(t => t.Type).ThenBy(t => t.Sort).ThenBy(t => t.FiledName).ToList(),
...@@ -355,7 +362,8 @@ private List<BodyItem> GetBodyItems(List<ag_fixatitem> fixatitems, List<HeadItem ...@@ -355,7 +362,8 @@ private List<BodyItem> GetBodyItems(List<ag_fixatitem> fixatitems, List<HeadItem
SourceType = t.SourceType ?? 0, SourceType = t.SourceType ?? 0,
Type = t.Type ?? 0, Type = t.Type ?? 0,
Value = t.ItemValue, Value = t.ItemValue,
Sort = t.Sort ?? 0 Sort = t.Sort ?? 0,
SpecialAttr = t.SpecialAttr ?? headItems.FirstOrDefault(h => h.FiledName == t.ItemName && h.Type == t.Type)?.SpecialAttr,
}).ToList(); }).ToList();
} }
// 删除多余的headvalue // 删除多余的headvalue
...@@ -363,8 +371,6 @@ private List<BodyItem> GetBodyItems(List<ag_fixatitem> fixatitems, List<HeadItem ...@@ -363,8 +371,6 @@ private List<BodyItem> GetBodyItems(List<ag_fixatitem> fixatitems, List<HeadItem
return bodyItems; return bodyItems;
} }
/// <summary> /// <summary>
/// 补充须带出的历史数据,如姓名、职称等 /// 补充须带出的历史数据,如姓名、职称等
/// </summary> /// </summary>
...@@ -421,6 +427,85 @@ private void FillData(ag_secondallot second, List<BodyItem> bodyItems) ...@@ -421,6 +427,85 @@ private void FillData(ag_secondallot second, List<BodyItem> bodyItems)
bodyItems.FirstOrDefault(t => t.FiledName == item.Key).Value = item.Value; bodyItems.FirstOrDefault(t => t.FiledName == item.Key).Value = item.Value;
} }
} }
/// <summary>
/// 根绝添加工作量类型判断是否添加
/// </summary>
/// <param name="request"></param>
/// <param name="result"></param>
private void SupplyHeaderByWorkItem(UseTempRequest request, SecondResponse result)
{
var workitem = perforAgworkloadRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.Department == request.Department
&& t.UnitType == request.UnitType && !EnumHelper.GetItems<AgWorkloadType>().Select(type => type.Value).Contains(t.WorkTypeId));
if (workitem == null || !workitem.Any(t => t.Id > 0))
return;
var deptHeader = perforAgworkloadtypeRepository.GetEntities(t => new List<int> { request.HospitalId, 0 }.Contains(t.HospitalId));
if (deptHeader == null || !deptHeader.Any())
return;
//不包含工作量绩效
if (!result.HeadItems.Select(t => t.FiledId).Contains("PerformanceShareTheWorkload"))
return;
var maxSortValue = result.HeadItems.Where(t => t.Type == 1).Max(t => t.Sort);
var headers = new HeadItem[] {
new HeadItem
{
FiledId = "ThePerformanceOf",
Type = 1,
SourceType = 1,
IsBring = 2,
SpecialAttr = 1,
},
new HeadItem
{
FiledId = "ThePerformanceAmountOf",
Type = 1,
SourceType = 1,
IsBring = 2
}
};
var headerItems = new List<HeadItem>();
int sortindex = 1;
foreach (var item in deptHeader)
{
if (item.HospitalId == 0) continue;
for (int i = 0; i < headers.Length; i++)
{
var headItem = (HeadItem)headers[i].Clone();
headItem.FiledName = (i % 2 == 0) ? item.TypeName : item.TypeName.Replace("占比", "金额");
headItem.FiledId += item.Id;
headItem.Sort = maxSortValue + sortindex;
headItem.WorkType = item.Id;
headerItems.Add(headItem);
sortindex++;
}
}
foreach (var item in deptHeader.Where(t => t.HospitalId == 0))
{
result.HeadItems.Where(t => t.FiledName == item.TypeName).ToList()?.ForEach(t => t.WorkType = item.Id);
result.BodyItems.Where(t => t.FiledName == item.TypeName).ToList()?.ForEach(t => t.WorkType = item.Id);
}
var rownumber = result.BodyItems.Any(t => t.RowNumber == -1) ? -1 : 0;
foreach (var item in headerItems)
{
if (!result.HeadItems.Select(t => t.FiledId).Contains(item.FiledId))
{
result.HeadItems.Add(item);
var body = Mapper.Map<BodyItem>(item);
body.RowNumber = rownumber;
result.BodyItems.Add(body);
}
}
}
#endregion #endregion
/// <summary> /// <summary>
...@@ -445,6 +530,7 @@ public bool SaveValue(List<ag_fixatitem> request) ...@@ -445,6 +530,7 @@ public bool SaveValue(List<ag_fixatitem> request)
cellItem.SourceType = item.SourceType; cellItem.SourceType = item.SourceType;
cellItem.Type = item.Type; cellItem.Type = item.Type;
cellItem.UnitType = item.UnitType; cellItem.UnitType = item.UnitType;
cellItem.SpecialAttr = item.SpecialAttr;
perforAgfixatitemRepository.Update(cellItem); perforAgfixatitemRepository.Update(cellItem);
} }
else else
...@@ -693,7 +779,8 @@ public void RefreshTemp(UseTempRequest request) ...@@ -693,7 +779,8 @@ public void RefreshTemp(UseTempRequest request)
/// <returns></returns> /// <returns></returns>
public List<ag_workload> GetWorkloadList(WorkloadRequest request) public List<ag_workload> GetWorkloadList(WorkloadRequest request)
{ {
return perforAgworkloadRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.Department == request.Department && t.UnitType == request.UnitType); return perforAgworkloadRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.Department == request.Department
&& t.UnitType == request.UnitType && t.WorkTypeId != (int)AgWorkloadType.SingleAwards);
} }
/// <summary> /// <summary>
...@@ -714,6 +801,7 @@ public bool WorkloadAdd(WorkloadRequest request) ...@@ -714,6 +801,7 @@ public bool WorkloadAdd(WorkloadRequest request)
FactorValue = request.FactorValue ?? 1, FactorValue = request.FactorValue ?? 1,
ItemName = request.ItemName, ItemName = request.ItemName,
Sort = request.Sort ?? 1, Sort = request.Sort ?? 1,
WorkTypeId = request.WorkTypeId,
}; };
var result = perforAgworkloadRepository.Add(workload); var result = perforAgworkloadRepository.Add(workload);
if (result) if (result)
...@@ -744,6 +832,7 @@ public bool WorkloadUpdate(WorkloadRequest request) ...@@ -744,6 +832,7 @@ public bool WorkloadUpdate(WorkloadRequest request)
workload.ItemName = request.ItemName; workload.ItemName = request.ItemName;
workload.Sort = request.Sort; workload.Sort = request.Sort;
workload.ItemId = $"Feild{workload.Id}"; workload.ItemId = $"Feild{workload.Id}";
workload.WorkTypeId = request.WorkTypeId;
return perforAgworkloadRepository.Update(workload); return perforAgworkloadRepository.Update(workload);
} }
...@@ -759,6 +848,86 @@ public bool WorkloadDelete(int id) ...@@ -759,6 +848,86 @@ public bool WorkloadDelete(int id)
return perforAgworkloadRepository.Remove(workload); return perforAgworkloadRepository.Remove(workload);
} }
/// <summary>
/// 获取单行奖励列表
/// </summary>
/// <param name="secondId"></param>
/// <returns></returns>
public List<ag_workload> GetSingleList(WorkloadRequest request)
{
return perforAgworkloadRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.Department == request.Department
&& t.UnitType == request.UnitType && t.WorkTypeId == (int)AgWorkloadType.SingleAwards);
}
/// <summary>
/// 获取工作量类型列表
/// </summary>
/// <param name="secondId"></param>
/// <returns></returns>
public List<TitleValue<int>> WorkTypeList(WorkloadRequest request)
{
var worktypes = perforAgworkloadtypeRepository.GetEntities(t => new List<int> { 0, request.HospitalId.Value }.Contains(t.HospitalId));
if (worktypes != null && worktypes.Any())
{
return worktypes.Select(t => new TitleValue<int>
{
Title = t.TypeName,
Value = t.Id
}).ToList();
}
return null;
}
/// <summary>
/// 保存工作量类型
/// </summary>
/// <param name="secondId"></param>
/// <returns></returns>
public ag_workload_type SaveWorkType(ag_workload_type request)
{
var entity = perforAgworkloadtypeRepository.GetEntity(t => new List<int> { 0, request.HospitalId }.Contains(t.HospitalId) && t.TypeName == request.TypeName);
if (entity == null)
{
if (request.Id > 0)
{
entity = perforAgworkloadtypeRepository.GetEntity(t => t.Id == request.Id);
entity.HospitalId = request.HospitalId;
entity.TypeName = request.TypeName;
perforAgworkloadtypeRepository.Update(entity);
}
else
{
entity = new ag_workload_type
{
HospitalId = request.HospitalId,
TypeName = request.TypeName,
};
perforAgworkloadtypeRepository.Add(entity);
}
return entity;
}
else if (request.Id != entity.Id)
throw new PerformanceException("类型已存在");
else
return request;
}
/// <summary>
/// 获取工作量类型列表
/// </summary>
/// <param name="secondId"></param>
/// <returns></returns>
public bool DeleteWorkType(WorkloadRequest request)
{
var entity = perforAgworkloadtypeRepository.GetEntity(t => t.Id == request.Id);
if (entity != null)
{
return perforAgworkloadtypeRepository.Remove(entity);
}
else
return false;
}
#endregion #endregion
#region 二次绩效考核 #region 二次绩效考核
...@@ -951,9 +1120,13 @@ public List<HeadItem> GetHeadItems(int tempId, int hospitalId, string department ...@@ -951,9 +1120,13 @@ public List<HeadItem> GetHeadItems(int tempId, int hospitalId, string department
var workItem = perforAgworkloadRepository.GetEntities(t => t.HospitalId == hospitalId && t.Department == department && t.UnitType == unitType); var workItem = perforAgworkloadRepository.GetEntities(t => t.HospitalId == hospitalId && t.Department == department && t.UnitType == unitType);
if (workItem != null && workItem.Count > 0) if (workItem != null && workItem.Count > 0)
{ {
var workDtos = Mapper.Map<List<HeadItem>>(workItem); var workDtos = Mapper.Map<List<HeadItem>>(workItem.Where(t => t.WorkTypeId != (int)AgWorkloadType.SingleAwards));
workDtos.ForEach(t => { t.Type = 3; }); workDtos.ForEach(t => { t.Type = 3; });
headItems.AddRange(workDtos); headItems.AddRange(workDtos);
workDtos = Mapper.Map<List<HeadItem>>(workItem.Where(t => t.WorkTypeId == (int)AgWorkloadType.SingleAwards));
workDtos.ForEach(t => { t.Type = 4; });
headItems.AddRange(workDtos);
} }
return headItems; return headItems;
} }
......
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