Commit 038b01cd by ruyun.zhang@suvalue.com

Merge branch 'feature/二次分配固定金额' into develop

parents 5295ed43 c804db8e
......@@ -2,7 +2,7 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Performance.DtoModels.AppSettings;
using Performance.EntityModels;
using Performance.EntityModels;
using System;
namespace Performance.Api.Configurations
......@@ -17,14 +17,14 @@ public static void AddDatabaseConfiguration(this IServiceCollection services)
services.AddDbContext<PerformanceDbContext>(options =>
{
options.UseMySql(
connection.Value.PerformanceConnectionString,
ServerVersion.AutoDetect(connection.Value.PerformanceConnectionString),
optionBuilder =>
{
optionBuilder.EnableStringComparisonTranslations(true);
optionBuilder.EnableRetryOnFailure();
});
var connectionString = connection.Value.PerformanceConnectionString;
var serverVersion = ServerVersion.AutoDetect(connection.Value.PerformanceConnectionString);
var builder = options.UseMySql(connectionString, serverVersion, optionBuilder =>
{
optionBuilder.EnableStringComparisonTranslations(true);
optionBuilder.EnableRetryOnFailure();
});
builder.EnableSensitiveDataLogging().EnableDetailedErrors();
}, ServiceLifetime.Transient);
}
}
......
......@@ -321,7 +321,7 @@ public ApiResponse WorkloadMap(int secondId)
/// <returns></returns>
[Route("api/second/worktype/save/{secondId}")]
[HttpPost]
public ApiResponse SingleSave([FromBody] ag_workload_type request, int secondId)
public ApiResponse SingleSave([FromBody] SecondWorkloadTypeDto request, int secondId)
{
if (request.HospitalId == 0)
return new ApiResponse(ResponseType.ParameterError, "医院信息无效");
......
......@@ -369,7 +369,7 @@ private void Timeout(TaskService service, List<bg_task> tasks)
foreach (var task in tasks)
{
var sett = _settings.FirstOrDefault(w => (int)w.JobType == task.JobType);
if (task.Status == (int)Background.Status.执行中 && task.CreateTime.AddMinutes(sett.Timeout) < DateTime.Now)
if (task.Status == (int)Background.Status.执行中 && task.CreateTime.AddMinutes(sett?.Timeout ?? 20) < DateTime.Now)
service.Update(task.ID, Background.Status.超时);
}
}
......
......@@ -3,6 +3,7 @@
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<SatelliteResourceLanguages>zh-Hans</SatelliteResourceLanguages>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
......
using Microsoft.AspNetCore;
using System;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using NLog.Web;
using System;
namespace Performance.Api
{
......
......@@ -2891,7 +2891,7 @@
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.SecondAllotController.SingleSave(Performance.EntityModels.ag_workload_type,System.Int32)">
<member name="M:Performance.Api.Controllers.SecondAllotController.SingleSave(Performance.DtoModels.Second.SecondWorkloadTypeDto,System.Int32)">
<summary>
保存二次绩效工作量类型
</summary>
......
......@@ -150,6 +150,11 @@
工作量
</summary>
</member>
<member name="T:Performance.DtoModels.AgWorkPurpose">
<summary>
工作量金额计算规则
</summary>
</member>
<member name="F:Performance.DtoModels.DataFormat.普通格式">
<summary> 普通格式 </summary>
</member>
......@@ -5650,6 +5655,21 @@
纵向计算
</summary>
</member>
<member name="P:Performance.DtoModels.Second.SecondWorkloadTypeDto.TypeName">
<summary>
工作量类型名称
</summary>
</member>
<member name="P:Performance.DtoModels.Second.SecondWorkloadTypeDto.Purpose">
<summary>
工作量用途 0 工作量占比 1 固定金额
</summary>
</member>
<member name="P:Performance.DtoModels.Second.SecondWorkDto.Purpose">
<summary>
工作量用途 0 工作量占比 1 固定金额
</summary>
</member>
<member name="P:Performance.DtoModels.SecondBaseDto.ComputeMode">
<summary>
计算方式:11 不计算 12 横向计算 13 纵向计算
......@@ -5715,6 +5735,11 @@
数据加载方式:0 保存,1 上次,2 字典
</summary>
</member>
<member name="P:Performance.DtoModels.SecondWorkLoadDto.Purpose">
<summary>
工作量用途 0 工作量占比 1 固定金额
</summary>
</member>
<member name="P:Performance.DtoModels.SelectionOptions.SelectionID">
<summary>
ID
......
......@@ -1401,6 +1401,11 @@
工作量来源类型
</summary>
</member>
<member name="P:Performance.EntityModels.ag_workload.Purpose">
<summary>
工作量用途 0 工作量占比 1 固定金额
</summary>
</member>
<member name="T:Performance.EntityModels.ag_workload_source">
<summary>
......@@ -1451,6 +1456,11 @@
-1、单项奖励 0、工作量占比 ..(自定义占比)
</summary>
</member>
<member name="P:Performance.EntityModels.ag_workload_source.Purpose">
<summary>
工作量用途 0 工作量占比 1 固定金额
</summary>
</member>
<member name="T:Performance.EntityModels.ag_workload_type">
<summary>
二次绩效工作量绩效分类
......@@ -1481,6 +1491,11 @@
科室类型
</summary>
</member>
<member name="P:Performance.EntityModels.ag_workload_type.Purpose">
<summary>
工作量用途 0 工作量占比 1 固定金额
</summary>
</member>
<member name="T:Performance.EntityModels.ag_worktype_source">
<summary>
......@@ -1516,6 +1531,11 @@
</summary>
</member>
<member name="P:Performance.EntityModels.ag_worktype_source.Purpose">
<summary>
工作量用途 0 工作量占比 1 固定金额
</summary>
</member>
<member name="T:Performance.EntityModels.as_assess">
<summary>
考核类别
......
......@@ -62,6 +62,16 @@ public enum AgWorkloadType
/// </summary>
Workload = 0,
}
/// <summary>
/// 工作量金额计算规则
/// </summary>
public enum AgWorkPurpose
{
工作量系数 = 0,
工作量固定金额 = 1,
}
public enum DataFormat
{
/// <summary> 普通格式 </summary>
......
namespace Performance.DtoModels.Second
{
public class SecondWorkloadTypeDto
{
public int Id { get; set; }
public int HospitalId { get; set; }
/// <summary>
/// 工作量类型名称
/// </summary>
public string TypeName { get; set; }
/// <summary>
/// 工作量用途 0 工作量占比 1 固定金额
/// </summary>
public int Purpose { get; set; }
}
public class SecondWorkDto
{
public string Title { get; set; }
public string Value { get; set; }
public decimal? State { get; set; }
/// <summary>
/// 工作量用途 0 工作量占比 1 固定金额
/// </summary>
public int Purpose { get; set; }
}
}
......@@ -5,9 +5,10 @@ namespace Performance.DtoModels
{
public class SecondWorkLoadDto
{
public SecondWorkLoadDto(string name)
public SecondWorkLoadDto(string name, int purpose)
{
Name = name;
Purpose = purpose;
Unit_Price = 0m;
Items = new List<string>();
......@@ -22,6 +23,10 @@ public SecondWorkLoadDto(string name)
public decimal Unit_Price { get; set; }
public List<string> Items { get; set; }
public string Name { get; set; }
/// <summary>
/// 工作量用途 0 工作量占比 1 固定金额
/// </summary>
public int Purpose { get; set; }
public void AddItem(string name)
{
......
......@@ -65,5 +65,9 @@ public class ag_workload
/// 工作量来源类型
/// </summary>
public string SourceCategory { get; set; }
/// <summary>
/// 工作量用途 0 工作量占比 1 固定金额
/// </summary>
public int? Purpose { get; set; }
}
}
......@@ -60,5 +60,9 @@ public class ag_workload_source
/// -1、单项奖励 0、工作量占比 ..(自定义占比)
/// </summary>
public Nullable<int> WorkTypeId { get; set; }
/// <summary>
/// 工作量用途 0 工作量占比 1 固定金额
/// </summary>
public int? Purpose { get; set; }
}
}
......@@ -39,5 +39,9 @@ public class ag_workload_type
/// 科室类型
/// </summary>
public string UnitType { get; set; }
/// <summary>
/// 工作量用途 0 工作量占比 1 固定金额
/// </summary>
public int? Purpose { get; set; }
}
}
......@@ -45,5 +45,9 @@ public class ag_worktype_source
///
/// </summary>
public Nullable<decimal> Value { get; set; }
/// <summary>
/// 工作量用途 0 工作量占比 1 固定金额
/// </summary>
public int? Purpose { get; set; }
}
}
......@@ -522,8 +522,7 @@ public void SaveSecondAllotHeadData(int secondId, string json)
if (!Regex.IsMatch(value, @"^\d")) continue;
workValue.Add(Convert.ToInt32(value));
}
if (workValue == null || !workValue.Any())
return;
if (!workValue.Any()) return;
foreach (var value in workValue.Distinct())
{
......@@ -531,13 +530,15 @@ public void SaveSecondAllotHeadData(int secondId, string json)
{
var fieldId = prefix[i] + $"{value}";
var typeName = workTypes?.FirstOrDefault(t => t.Id == value)?.TypeName;
var purpose = workTypes?.FirstOrDefault(t => t.Id == value)?.Purpose ?? (int)AgWorkPurpose.工作量系数;
var source = new ag_worktype_source
{
WorkTypeId = value,
SecondId = secondId,
FieldId = fieldId,
FieldName = i == 0 ? typeName + "占比" : typeName + "金额",
Value = prefix[i].StartsWith(prefix[0]) ? ConvertHelper.ToDecimalOrNull(dict[fieldId.ToLower()]) : null,
Value = prefix[i].StartsWith(prefix[0]) && dict.ContainsKey(fieldId.ToLower()) ? ConvertHelper.ToDecimalOrNull(dict[fieldId.ToLower()]) : null,
Purpose = purpose,
};
insertData.Add(source);
......@@ -589,7 +590,7 @@ public void SaveSecondAllotBodyData(int hospitalId, ag_secondallot second, dynam
if (body == null || !((IEnumerable<dynamic>)body).Any()) return;
var temp = agworkloadRepository.GetEntities(t => t.HospitalId == hospitalId);
var workloads = temp?.Where(w => UnitTypeUtil.Is(w.UnitType, second.UnitType) && w.Department == second.Department)?.ToList() ?? new List<ag_workload>();
if (workloads.Count() == 0)
if (workloads.Count == 0)
workloads = temp?.Where(w => UnitTypeUtil.Is(w.UnitType, second.NewUnitType) && w.Department == second.NewAccountingUnit)?.ToList() ?? new List<ag_workload>();
string[] prefix = new string[] { "WorkloadScore_", "AssessmentScore_", "WorkPerformance_", $"{AgWorkloadType.SingleAwards}_", $"{AgWorkloadType.Workload}_", $"{AgWorkloadType.PreAccountingReward}_" };
......@@ -620,7 +621,8 @@ public void SaveSecondAllotBodyData(int hospitalId, ag_secondallot second, dynam
FactorValue = workload.FactorValue,
Sort = workload.Sort,
Value = ConvertHelper.To<decimal>(dict[key]),
WorkTypeId = workload.WorkTypeId
WorkTypeId = workload.WorkTypeId,
Purpose = workload.Purpose ?? (int)AgWorkPurpose.工作量系数,
});
}
}
......
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