Commit 01b058a9 by 李承祥

二次绩效workload修改

parent 9161b581
...@@ -178,6 +178,10 @@ public AutoMapperConfigs() ...@@ -178,6 +178,10 @@ public AutoMapperConfigs()
CreateMap<res_compute, ComputeResponse>(); CreateMap<res_compute, ComputeResponse>();
CreateMap<EmployeeRequest, im_employee>(); CreateMap<EmployeeRequest, im_employee>();
CreateMap<res_compute, ResComputeResponse>(); CreateMap<res_compute, ResComputeResponse>();
CreateMap<UseTempRequest, ag_usetemp>()
.ForMember(dest => dest.UseTempId, opt => opt.MapFrom(src => src.TempId))
.ReverseMap();
} }
} }
} }
using FluentValidation;
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.DtoModels
{
public class FixatItemRequest
{
public int AllotId { get; set; }
public int SecondId { get; set; }
public string UnitType { get; set; }
public List<FixatItem> FixatItems { get; set; }
public int RowNumber { get; set; }
}
public class FixatItemRequestValidator : AbstractValidator<FixatItemRequest>
{
public FixatItemRequestValidator()
{
RuleFor(x => x.AllotId).NotNull().GreaterThan(0);
RuleFor(x => x.SecondId).NotNull().GreaterThan(0);
RuleFor(x => x.UnitType).NotNull().NotEmpty();
}
}
public class FixatItem
{
public int FixatId { get; set; }
public string ItemName { get; set; }
public decimal ItemValue { get; set; }
public decimal FactorValue { get; set; }
public decimal Sort { get; set; }
public int Type { get; set; }
public int SourceType { get; set; }
}
}
...@@ -8,6 +8,12 @@ namespace Performance.DtoModels ...@@ -8,6 +8,12 @@ namespace Performance.DtoModels
public class UseTempRequest public class UseTempRequest
{ {
public int TempId { get; set; } public int TempId { get; set; }
public int HospitalId { get; set; }
public string Department { get; set; }
public string UnitType { get; set; }
} }
public class UseTempRequestValidator : AbstractValidator<UseTempRequest> public class UseTempRequestValidator : AbstractValidator<UseTempRequest>
{ {
......
...@@ -11,15 +11,21 @@ public class WorkloadRequest ...@@ -11,15 +11,21 @@ public class WorkloadRequest
/// 绩效ID /// 绩效ID
/// </summary> /// </summary>
public int Id { get; set; } public int Id { get; set; }
/// <summary> /// <summary>
/// 绩效ID /// 医院ID
/// </summary>
public Nullable<int> HospitalId { get; set; }
/// <summary>
/// 科室
/// </summary> /// </summary>
public int AllotId { get; set; } public string Department { get; set; }
/// <summary> /// <summary>
/// 二次绩效ID ///
/// </summary> /// </summary>
public int SecondId { get; set; } public string UnitType { get; set; }
/// <summary> /// <summary>
/// 工作量名称 /// 工作量名称
...@@ -42,16 +48,16 @@ public WorkloadRequestValidator() ...@@ -42,16 +48,16 @@ public WorkloadRequestValidator()
{ {
RuleSet("Add", () => RuleSet("Add", () =>
{ {
RuleFor(x => x.AllotId).NotNull().GreaterThan(0); RuleFor(x => x.HospitalId).NotNull().GreaterThan(0);
RuleFor(x => x.SecondId).NotNull().GreaterThan(0); RuleFor(x => x.Department).NotNull().NotEmpty();
RuleFor(x => x.UnitType).NotNull().NotEmpty();
RuleFor(x => x.ItemName).NotNull().NotEmpty(); RuleFor(x => x.ItemName).NotNull().NotEmpty();
}); });
RuleSet("Update", () => RuleSet("Update", () =>
{ {
RuleFor(x => x.Id).NotNull().GreaterThan(0); RuleFor(x => x.Id).NotNull().GreaterThan(0);
RuleFor(x => x.AllotId).NotNull().GreaterThan(0); RuleFor(x => x.HospitalId).NotNull().GreaterThan(0);
RuleFor(x => x.SecondId).NotNull().GreaterThan(0);
RuleFor(x => x.ItemName).NotNull().NotEmpty(); RuleFor(x => x.ItemName).NotNull().NotEmpty();
}); });
...@@ -61,7 +67,9 @@ public WorkloadRequestValidator() ...@@ -61,7 +67,9 @@ public WorkloadRequestValidator()
}); });
RuleSet("Query", () => RuleSet("Query", () =>
{ {
RuleFor(x => x.SecondId).NotNull().GreaterThan(0); RuleFor(x => x.HospitalId).NotNull().GreaterThan(0);
RuleFor(x => x.Department).NotNull().NotEmpty();
RuleFor(x => x.UnitType).NotNull().NotEmpty();
}); });
} }
} }
......
...@@ -37,6 +37,11 @@ public class ag_fixatitem ...@@ -37,6 +37,11 @@ public class ag_fixatitem
public string UnitType { get; set; } public string UnitType { get; set; }
/// <summary> /// <summary>
/// 行号
/// </summary>
public Nullable<int> RowNumber { get; set; }
/// <summary>
/// 项目名 /// 项目名
/// </summary> /// </summary>
public string ItemName { get; set; } public string ItemName { get; set; }
......
using Microsoft.Extensions.Options; using AutoMapper;
using Microsoft.Extensions.Options;
using Performance.DtoModels; using Performance.DtoModels;
using Performance.DtoModels.AppSettings; using Performance.DtoModels.AppSettings;
using Performance.EntityModels; using Performance.EntityModels;
...@@ -22,6 +23,8 @@ public class SecondAllotService : IAutoInjection ...@@ -22,6 +23,8 @@ public class SecondAllotService : IAutoInjection
private readonly PerforAgworkloadRepository perforAgworkloadRepository; private readonly PerforAgworkloadRepository perforAgworkloadRepository;
private readonly PerforAgtempRepository perforAgtempRepository; private readonly PerforAgtempRepository perforAgtempRepository;
private readonly PerforAgtempitemRepository perforAgtempitemRepository; private readonly PerforAgtempitemRepository perforAgtempitemRepository;
private readonly PerforAgfixatitemRepository perforAgfixatitemRepository;
private readonly PerforAgusetempRepository perforAgusetempRepository;
public SecondAllotService(IOptions<Application> application, public SecondAllotService(IOptions<Application> application,
PerforUserRepository perforUserRepository, PerforUserRepository perforUserRepository,
...@@ -32,7 +35,9 @@ public class SecondAllotService : IAutoInjection ...@@ -32,7 +35,9 @@ public class SecondAllotService : IAutoInjection
PerforUserroleRepository userroleRepository, PerforUserroleRepository userroleRepository,
PerforAgworkloadRepository perforAgworkloadRepository, PerforAgworkloadRepository perforAgworkloadRepository,
PerforAgtempRepository perforAgtempRepository, PerforAgtempRepository perforAgtempRepository,
PerforAgtempitemRepository perforAgtempitemRepository) PerforAgtempitemRepository perforAgtempitemRepository,
PerforAgfixatitemRepository perforAgfixatitemRepository,
PerforAgusetempRepository perforAgusetempRepository)
{ {
this.application = application.Value; this.application = application.Value;
this.perforUserRepository = perforUserRepository; this.perforUserRepository = perforUserRepository;
...@@ -44,6 +49,8 @@ public class SecondAllotService : IAutoInjection ...@@ -44,6 +49,8 @@ public class SecondAllotService : IAutoInjection
this.perforAgworkloadRepository = perforAgworkloadRepository; this.perforAgworkloadRepository = perforAgworkloadRepository;
this.perforAgtempRepository = perforAgtempRepository; this.perforAgtempRepository = perforAgtempRepository;
this.perforAgtempitemRepository = perforAgtempitemRepository; this.perforAgtempitemRepository = perforAgtempitemRepository;
this.perforAgfixatitemRepository = perforAgfixatitemRepository;
this.perforAgusetempRepository = perforAgusetempRepository;
} }
/// <summary> /// <summary>
...@@ -121,12 +128,32 @@ public List<ag_temp> GetTemp(int userId) ...@@ -121,12 +128,32 @@ public List<ag_temp> GetTemp(int userId)
return perforAgtempRepository.GetEntities(); return perforAgtempRepository.GetEntities();
} }
public bool UseTemp(int tempId) /// <summary>
/// 使用模板
/// </summary>
/// <param name="tempId"></param>
/// <returns></returns>
public bool UseTemp(UseTempRequest request)
{
var temp = perforAgtempRepository.GetEntity(t => t.Id == request.TempId);
if (temp == null)
throw new PerformanceException("参数tempId 无效");
var entity = Mapper.Map<ag_usetemp>(request);
return perforAgusetempRepository.Add(entity);
}
/// <summary>
/// 应用模板
/// </summary>
/// <returns></returns>
public void RefreshTemp(int secondId)
{ {
var temp = perforAgtempRepository.GetEntity(t => t.Id == tempId); var fixatList = perforAgfixatitemRepository.GetEntities(t => t.SecondId == secondId);
var tempItems = perforAgtempitemRepository.GetEntities(t => t.TempId == tempId); if (fixatList == null || fixatList.Count == 0)
throw new PerformanceException("参数secondId 无效");
return;
} }
/// <summary> /// <summary>
...@@ -134,9 +161,9 @@ public bool UseTemp(int tempId) ...@@ -134,9 +161,9 @@ public bool UseTemp(int tempId)
/// </summary> /// </summary>
/// <param name="secondId"></param> /// <param name="secondId"></param>
/// <returns></returns> /// <returns></returns>
public List<ag_workload> GetWorkloadList(int secondId) public List<ag_workload> GetWorkloadList(WorkloadRequest request)
{ {
return perforAgworkloadRepository.GetEntities(t => t.SecondId == secondId); return perforAgworkloadRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.Department == request.Department && t.UnitType == request.Department);
} }
/// <summary> /// <summary>
...@@ -146,15 +173,16 @@ public List<ag_workload> GetWorkloadList(int secondId) ...@@ -146,15 +173,16 @@ public List<ag_workload> GetWorkloadList(int secondId)
/// <returns></returns> /// <returns></returns>
public bool WorkloadAdd(WorkloadRequest request) public bool WorkloadAdd(WorkloadRequest request)
{ {
var workloadList = perforAgworkloadRepository.GetEntities(t => t.SecondId == request.SecondId); var workloadList = perforAgworkloadRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.Department == request.Department && t.UnitType == request.Department);
if (workloadList.Any(t => t.ItemName == request.ItemName)) if (workloadList.Any(t => t.ItemName == request.ItemName))
throw new PerformanceException("项目名称重复"); throw new PerformanceException("项目名称重复");
ag_workload workload = new ag_workload ag_workload workload = new ag_workload
{ {
AllotId = request.AllotId, HospitalId = request.HospitalId,
Department = request.Department,
UnitType = request.UnitType,
FactorValue = request.FactorValue ?? 1, FactorValue = request.FactorValue ?? 1,
ItemName = request.ItemName, ItemName = request.ItemName,
SecondId = request.SecondId,
Sort = request.Sort ?? 1, Sort = request.Sort ?? 1,
}; };
var result = perforAgworkloadRepository.Add(workload); var result = perforAgworkloadRepository.Add(workload);
...@@ -174,15 +202,16 @@ public bool WorkloadAdd(WorkloadRequest request) ...@@ -174,15 +202,16 @@ public bool WorkloadAdd(WorkloadRequest request)
/// <returns></returns> /// <returns></returns>
public bool WorkloadUpdate(WorkloadRequest request) public bool WorkloadUpdate(WorkloadRequest request)
{ {
var workloadList = perforAgworkloadRepository.GetEntities(t => t.SecondId == request.SecondId); var workloadList = perforAgworkloadRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.Department == request.Department && t.UnitType == request.Department);
if (workloadList.Any(t => t.Id != request.Id && t.ItemName == request.ItemName)) if (workloadList.Any(t => t.Id != request.Id && t.ItemName == request.ItemName))
throw new PerformanceException("项目名称重复"); throw new PerformanceException("项目名称重复");
var workload = workloadList.FirstOrDefault(t => t.Id == request.Id); var workload = workloadList.FirstOrDefault(t => t.Id == request.Id);
workload.AllotId = request.AllotId; workload.HospitalId = request.HospitalId;
workload.Department = request.Department;
workload.UnitType = request.UnitType;
workload.FactorValue = request.FactorValue; workload.FactorValue = request.FactorValue;
workload.ItemName = request.ItemName; workload.ItemName = request.ItemName;
workload.SecondId = request.SecondId;
workload.Sort = request.Sort; workload.Sort = request.Sort;
workload.ItemId = $"Feild{workload.Id}"; workload.ItemId = $"Feild{workload.Id}";
...@@ -200,5 +229,62 @@ public bool WorkloadDelete(int id) ...@@ -200,5 +229,62 @@ public bool WorkloadDelete(int id)
return perforAgworkloadRepository.Remove(workload); return perforAgworkloadRepository.Remove(workload);
} }
public void GetHeader()
{
}
public void SaveValue(FixatItemRequest request)
{
if (request.FixatItems == null || request.FixatItems.Count == 0)
throw new PerformanceException("保存的内容为空");
#region 添加新的值
var addItem = request.FixatItems.Where(t => t.FixatId == 0).ToList();
if (addItem != null && addItem.Count() > 0)
{
var newFixat = addItem.Select(t => new ag_fixatitem
{
AllotId = request.AllotId,
SecondId = request.SecondId,
UnitType = request.UnitType,
RowNumber = request.RowNumber,
ItemName = t.ItemName,
ItemValue = t.ItemValue,
FactorValue = t.FactorValue,
Sort = t.Sort,
Type = t.Type,
SourceType = t.SourceType
});
if (newFixat != null && newFixat.Count() > 0)
perforAgfixatitemRepository.AddRange(newFixat.ToArray());
}
#endregion
#region 更新原始值
var updateItme = request.FixatItems.Where(t => t.FixatId >= 0).ToList();
if (updateItme != null && updateItme.Count() > 0)
{
var fixatIds = updateItme.Select(t => t.FixatId);
var oldFixat = perforAgfixatitemRepository.GetEntities(t => fixatIds.Contains(t.Id));
if (oldFixat != null && oldFixat.Count > 0)
{
oldFixat.ForEach(t =>
{
var fixat = updateItme.Where(s => s.FixatId == t.Id).FirstOrDefault();
t.ItemName = fixat.ItemName;
t.ItemValue = fixat.ItemValue;
t.FactorValue = fixat.FactorValue;
t.Sort = fixat.Sort;
t.Type = fixat.Type;
t.SourceType = fixat.SourceType;
});
perforAgfixatitemRepository.AddRange(oldFixat.ToArray());
}
}
#endregion
}
} }
} }
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