H5查询个人绩效

parent 983e5dac
...@@ -556,5 +556,116 @@ public ApiResponse GetOwnerPerformance() ...@@ -556,5 +556,116 @@ public ApiResponse GetOwnerPerformance()
var res = _allotService.GetOwnerPerformance(userid); var res = _allotService.GetOwnerPerformance(userid);
return new ApiResponse(ResponseType.OK, res); return new ApiResponse(ResponseType.OK, res);
} }
/// <summary>
/// H5查询个人绩效
/// </summary>
/// <param name="begin">开始月份:2021-03</param>
/// <param name="end">结束月份:2021-04</param>
/// <returns></returns>
[Route("owner/query/mobile")]
[HttpGet]
public ApiResponse GetOwnerMobilePerformance(string begin = "", string end = "")
{
var userid = _claim.GetUserId();
var beginDate = begin.ToTryDateTime();
var endDate = end.ToTryDateTime();
if (beginDate == DateTime.MinValue || endDate == DateTime.MinValue)
throw new PerformanceException("您选择的时间范围无效");
endDate = endDate.AddMonths(1);
List<OwnerMobilePerformanceDto> dtos = new List<OwnerMobilePerformanceDto>();
var datas = _allotService.GetOwnerPerformance(userid);
var groupDatas = datas
.Where(w => (new DateTime(w.Year, w.Month, 1)) >= beginDate && (new DateTime(w.Year, w.Month, 1)) < endDate)
.GroupBy(w => w.JobNumber);
foreach (var item in groupDatas)
{
var perforSumFee = new OwnerMobileItemDto
{
Title = "业绩绩效",
Amount = item.Sum(w => w.PerforSumFee) ?? 0,
Details = item.SelectMany(w => w.Detail)
.Where(w => (w.PerforSumFee ?? 0) != 0)
.Select(w => new OwnerMobileItemDetailDto
{
Title = w.AccountingUnit,
Amount = w.PerforSumFee ?? 0,
}).ToList()
};
var perforManagementFee = new OwnerMobileItemDto
{
Title = "管理绩效",
Amount = item.Sum(w => w.PerforManagementFee) ?? 0,
Details = item.SelectMany(w => w.Detail)
.Where(w => (w.PerforManagementFee ?? 0) != 0)
.Select(w => new OwnerMobileItemDetailDto
{
Title = w.AccountingUnit,
Amount = w.PerforManagementFee ?? 0,
}).ToList()
};
var nightWorkPerfor = new OwnerMobileItemDto
{
Title = "夜班绩效",
Amount = item.Sum(w => w.NightWorkPerfor) ?? 0,
Details = item.SelectMany(w => w.Detail)
.Where(w => (w.NightWorkPerfor ?? 0) != 0)
.Select(w => new OwnerMobileItemDetailDto
{
Title = w.AccountingUnit,
Amount = w.NightWorkPerfor ?? 0,
}).ToList()
};
var otherPerfor = new OwnerMobileItemDto
{
Title = "医院其他绩效",
Amount = item.Sum(w => w.OtherPerfor) ?? 0,
Details = item.SelectMany(w => w.Detail)
.Where(w => (w.OtherPerfor ?? 0) != 0)
.Select(w => new OwnerMobileItemDetailDto
{
Title = w.SourceItem,
Amount = w.OtherPerfor ?? 0,
}).ToList()
};
var hideOtherPerfor = new OwnerMobileItemDto
{
Title = "不公示其他绩效",
Amount = item.Sum(w => w.HideOtherPerfor) ?? 0,
Details = item.SelectMany(w => w.Detail)
.Where(w => (w.HideOtherPerfor ?? 0) != 0)
.Select(w => new OwnerMobileItemDetailDto
{
Title = w.SourceItem,
Amount = w.HideOtherPerfor ?? 0,
}).ToList()
};
var reservedRatioFee = new OwnerMobileItemDto
{
Title = "预留绩效",
Amount = item.Sum(w => w.ReservedRatioFee) ?? 0,
Details = new List<OwnerMobileItemDetailDto>()
};
var dto = new OwnerMobilePerformanceDto { Total = item.Sum(w => w.RealGiveFee), Items = new List<OwnerMobileItemDto>() };
if (perforSumFee.Amount != 0) dto.Items.Add(perforSumFee);
if (perforManagementFee.Amount != 0) dto.Items.Add(perforManagementFee);
if (nightWorkPerfor.Amount != 0) dto.Items.Add(nightWorkPerfor);
if (otherPerfor.Amount != 0) dto.Items.Add(otherPerfor);
if (hideOtherPerfor.Amount != 0) dto.Items.Add(hideOtherPerfor);
if (reservedRatioFee.Amount != 0) dto.Items.Add(reservedRatioFee);
dtos.Add(dto);
}
return new ApiResponse(ResponseType.OK, dtos);
}
} }
} }
...@@ -312,6 +312,14 @@ ...@@ -312,6 +312,14 @@
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AllotController.GetOwnerMobilePerformance(System.String,System.String)">
<summary>
H5查询个人绩效
</summary>
<param name="begin">开始月份:2021-03</param>
<param name="end">结束月份:2021-04</param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AttendanceController.GetAttendance(System.Int32)"> <member name="M:Performance.Api.Controllers.AttendanceController.GetAttendance(System.Int32)">
<summary> <summary>
查询绩效考勤记录 查询绩效考勤记录
......
...@@ -3594,6 +3594,46 @@ ...@@ -3594,6 +3594,46 @@
实发绩效 实发绩效
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.OwnerMobilePerformanceDto.Total">
<summary>
绩效发放总额
</summary>
</member>
<member name="P:Performance.DtoModels.OwnerMobilePerformanceDto.Items">
<summary>
绩效明细
</summary>
</member>
<member name="P:Performance.DtoModels.OwnerMobileItemDto.Title">
<summary>
类型名称
</summary>
</member>
<member name="P:Performance.DtoModels.OwnerMobileItemDto.Amount">
<summary>
金额
</summary>
</member>
<member name="P:Performance.DtoModels.OwnerMobileItemDto.Details">
<summary>
明细项
</summary>
</member>
<member name="P:Performance.DtoModels.OwnerMobileItemDetailDto.Title">
<summary>
类型名称
</summary>
</member>
<member name="P:Performance.DtoModels.OwnerMobileItemDetailDto.Amount">
<summary>
金额
</summary>
</member>
<member name="P:Performance.DtoModels.OwnerMobileItemDetailDto.Date">
<summary>
发放时间,空则不显示
</summary>
</member>
<member name="P:Performance.DtoModels.PerEmployeeResponse.WorkTime"> <member name="P:Performance.DtoModels.PerEmployeeResponse.WorkTime">
<summary> <summary>
参加工作时间 参加工作时间
......
...@@ -16,4 +16,47 @@ public class OwnerPerformanceDto : view_allot_result ...@@ -16,4 +16,47 @@ public class OwnerPerformanceDto : view_allot_result
/// </summary> /// </summary>
public decimal RealGiveFee { get; set; } public decimal RealGiveFee { get; set; }
} }
public class OwnerMobilePerformanceDto
{
/// <summary>
/// 绩效发放总额
/// </summary>
public decimal Total { get; set; }
/// <summary>
/// 绩效明细
/// </summary>
public List<OwnerMobileItemDto> Items { get; set; }
}
public class OwnerMobileItemDto
{
/// <summary>
/// 类型名称
/// </summary>
public string Title { get; set; }
/// <summary>
/// 金额
/// </summary>
public decimal Amount { get; set; }
/// <summary>
/// 明细项
/// </summary>
public List<OwnerMobileItemDetailDto> Details { get; set; }
}
public class OwnerMobileItemDetailDto
{
/// <summary>
/// 类型名称
/// </summary>
public string Title { get; set; }
/// <summary>
/// 金额
/// </summary>
public decimal Amount { get; set; }
/// <summary>
/// 发放时间,空则不显示
/// </summary>
public string Date { get; set; }
}
} }
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Globalization;
using System.Text;
namespace Performance.Infrastructure
{
public static partial class UtilExtensions
{
public static DateTime ToTryDateTime(this string value, params string[] formats)
{
return string.IsNullOrEmpty(value) ? DateTime.MinValue : ToDateTime(value, formats);
}
public static DateTime ToDateTime(this string value, params string[] formats)
{
if (formats.Length == 0)
{
formats = new string[]
{
"yyyyMMddHHmmss",
"yyyyMMddHHmmss",
"yyyy-MM-dd HH:mm:ss",
"yyyy年MM月dd日 HH时mm分ss秒" ,
"yyyyMdHHmmss",
"yyyy年M月d日 H时mm分ss秒",
"yyyy.M.d H:mm:ss",
"yyyy.MM.dd HH:mm:ss",
"yyyy-MM-dd",
"yyyyMMdd",
"yyyy/MM/dd",
"yyyy/M/d",
"yyyy-MM",
"yyyy/MM",
"yyyy/M",
};
}
if (DateTime.TryParseExact(value, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime now))
return now;
return DateTime.MinValue;
}
}
}
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