Commit 784696c4 by Licx

医院其他绩效8.23问题修改

parent 4d55acf9
......@@ -268,12 +268,12 @@ public ApiResponse Audit(int allotid)
/// <returns></returns>
[Route("apr/getlist")]
[HttpPost]
public ApiResponse GetAprList([FromBody] per_apr_amount request)
public ApiResponse GetAprList([FromBody] AprAmountAuditRequest request)
{
if (request.AllotId == 0)
return new ApiResponse(ResponseType.ParameterError, "参数AllotId无效!");
var employee = employeeService.GetAprByTypeInDepartment(request.AllotId, request.TypeInDepartment);
var employee = employeeService.GetAprByTypeInDepartment(request.AllotId, request.TypeInDepartment, request.CreateDate);
return new ApiResponse(ResponseType.OK, "ok", employee);
}
......@@ -293,10 +293,11 @@ public ApiResponse GetAprGroupList([FromBody] AllotIdRequest request)
if (employee == null || !employee.Any())
return new ApiResponse(ResponseType.OK, "ok", employee);
var result = employee.GroupBy(t => new { TypeInDepartment = t.TypeInDepartment ?? "" })
var result = employee.GroupBy(t => new { TypeInDepartment = t.TypeInDepartment ?? "", t.CreateDate })
.Select(t => new OhterAmountAuditResponse
{
TypeInDepartment = t.Key.TypeInDepartment,
CreateDate = t.Key.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
Amount = t.Sum(s => s.Amount ?? 0),
Status = t.Any(s => s.Status == 2) ? 2 : t.Any(s => s.Status == 4) ? 4 : t.FirstOrDefault().Status,
AuditTime = t.Any(s => s.Status == 2) ? "" : t.Max(w => w.AuditTime)?.ToString("yyyy-MM-dd HH:mm:ss"),
......@@ -312,12 +313,12 @@ public ApiResponse GetAprGroupList([FromBody] AllotIdRequest request)
/// <returns></returns>
[Route("apr/getdeptdetail")]
[HttpPost]
public ApiResponse GetAprDetail([FromBody] per_apr_amount request)
public ApiResponse GetAprDetail([FromBody] AprAmountAuditRequest request)
{
if (request.AllotId == 0)
return new ApiResponse(ResponseType.ParameterError, "参数AllotId无效!");
var employee = employeeService.GetAprList(request.AllotId, request.TypeInDepartment);
var employee = employeeService.GetAprList(request.AllotId, request.TypeInDepartment, date: request.CreateDate);
if (employee == null || !employee.Any())
return new ApiResponse(ResponseType.OK, "ok", employee);
......@@ -398,12 +399,12 @@ public ApiResponse DeleteApr([FromBody] IdRequest request)
/// <returns></returns>
[HttpPost]
[Route("apr/commit")]
public ApiResponse CommitResult([FromBody] per_apr_amount request)
public ApiResponse CommitResult([FromBody] AprAmountAuditRequest request)
{
if (request.AllotId == 0)
return new ApiResponse(ResponseType.ParameterError, "参数AllotId无效!");
var result = employeeService.CommitApr(request.AllotId, request.TypeInDepartment, request.Status ?? 1);
var result = employeeService.CommitApr(request.AllotId, request.TypeInDepartment, request.Status, request.CreateDate);
return new ApiResponse(ResponseType.OK);
}
......@@ -547,10 +548,11 @@ public ApiResponse AprOverview(int allotId)
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("apr/clear")]
public ApiResponse<List<TitleValue>> ClearAprData([FromBody] per_apr_amount request)
public ApiResponse<List<TitleValue>> ClearAprData([FromBody] AprAmountAuditRequest request)
{
var result = employeeService.ClearAprData(request);
return new ApiResponse<List<TitleValue>>(ResponseType.OK, "删除成功");
return result ? new ApiResponse<List<TitleValue>>(ResponseType.OK, "删除成功")
: new ApiResponse<List<TitleValue>>(ResponseType.OK, "删除失败");
}
#endregion
......@@ -599,12 +601,12 @@ public ApiResponse GetDeptAssessment(int allotId)
/// <returns></returns>
[Route("apr/hide/getlist")]
[HttpPost]
public ApiResponse GetAprHideList([FromBody] per_apr_amount request)
public ApiResponse GetAprHideList([FromBody] AprAmountAuditRequest request)
{
if (request.AllotId == 0)
return new ApiResponse(ResponseType.ParameterError, "参数AllotId无效!");
var employee = employeeService.GetAprHideByTypeInDepartment(request.AllotId, request.TypeInDepartment);
var employee = employeeService.GetAprHideByTypeInDepartment(request.AllotId, request.TypeInDepartment, request.CreateDate);
return new ApiResponse(ResponseType.OK, "ok", employee);
}
......@@ -624,10 +626,11 @@ public ApiResponse GetAprHideGroupList([FromBody] AllotIdRequest request)
if (employee == null || !employee.Any())
return new ApiResponse(ResponseType.OK, "ok", employee);
var result = employee.GroupBy(t => new { TypeInDepartment = t.TypeInDepartment ?? "" })
var result = employee.GroupBy(t => new { TypeInDepartment = t.TypeInDepartment ?? "", t.CreateDate })
.Select(t => new OhterAmountAuditResponse
{
TypeInDepartment = t.Key.TypeInDepartment,
CreateDate = t.Key.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
Amount = t.Sum(s => s.Amount ?? 0),
Status = t.Any(s => s.Status == 2) ? 2 : t.Any(s => s.Status == 4) ? 4 : t.FirstOrDefault().Status,
AuditTime = t.Any(s => s.Status == 2) ? "" : t.Max(w => w.AuditTime)?.ToString("yyyy-MM-dd HH:mm:ss"),
......@@ -729,12 +732,12 @@ public ApiResponse DeleteAprHide([FromBody] IdRequest request)
/// <returns></returns>
[HttpPost]
[Route("apr/hide/commit")]
public ApiResponse CommitResultHide([FromBody] per_apr_amount request)
public ApiResponse CommitResultHide([FromBody] AprAmountAuditRequest request)
{
if (request.AllotId == 0)
return new ApiResponse(ResponseType.ParameterError, "参数AllotId无效!");
var result = employeeService.CommitAprHide(request.AllotId, request.TypeInDepartment, request.Status ?? 1);
var result = employeeService.CommitAprHide(request.AllotId, request.TypeInDepartment, request.Status, request.CreateDate);
return new ApiResponse(ResponseType.OK);
}
......@@ -867,10 +870,11 @@ public ApiResponse AprHideOverview(int allotId)
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("apr/hide/clear")]
public ApiResponse<List<TitleValue>> ClearAprHideData([FromBody] per_apr_amount request)
public ApiResponse<List<TitleValue>> ClearAprHideData([FromBody] AprAmountAuditRequest request)
{
var result = employeeService.ClearAprHideData(request);
return new ApiResponse<List<TitleValue>>(ResponseType.OK, "删除成功");
return result ? new ApiResponse<List<TitleValue>>(ResponseType.OK, "删除成功")
: new ApiResponse<List<TitleValue>>(ResponseType.OK, "删除失败");
}
#endregion
......
......@@ -1136,7 +1136,7 @@
<param name="allotid"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.GetAprList(Performance.DtoModels.AllotIdRequest)">
<member name="M:Performance.Api.Controllers.EmployeeController.GetAprList(Performance.DtoModels.AprAmountAuditRequest)">
<summary>
获取医院其他绩效列表
</summary>
......@@ -1150,7 +1150,7 @@
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.GetAprDetail(Performance.EntityModels.per_apr_amount)">
<member name="M:Performance.Api.Controllers.EmployeeController.GetAprDetail(Performance.DtoModels.AprAmountAuditRequest)">
<summary>
医院其他绩效审核详情
</summary>
......@@ -1217,6 +1217,13 @@
<param name="allotId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.ClearAprData(Performance.DtoModels.AprAmountAuditRequest)">
<summary>
清理该科室录入数据
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.GetEmployeeMessage(Performance.EntityModels.per_apr_amount)">
<summary>
自动获取人员信息
......@@ -1240,7 +1247,7 @@
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.GetAprHideList(Performance.DtoModels.AllotIdRequest)">
<member name="M:Performance.Api.Controllers.EmployeeController.GetAprHideList(Performance.DtoModels.AprAmountAuditRequest)">
<summary>
获取不公示其他绩效列表
</summary>
......@@ -1321,6 +1328,13 @@
<param name="allotId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.ClearAprHideData(Performance.DtoModels.AprAmountAuditRequest)">
<summary>
清理该科室录入不公示数据
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.GetDeptComparison(Performance.DtoModels.ComparisonPagingRequest)">
<summary>
实发绩效比对
......
......@@ -1909,6 +1909,15 @@
<member name="P:Performance.DtoModels.AprAmountAuditRequest.AllotId">
<summary> 绩效ID </summary>
</member>
<member name="P:Performance.DtoModels.AprAmountAuditRequest.TypeInDepartment">
<summary> 录入科室 </summary>
</member>
<member name="P:Performance.DtoModels.AprAmountAuditRequest.CreateDate">
<summary> 创建时间 </summary>
</member>
<member name="P:Performance.DtoModels.AprAmountAuditRequest.Status">
<summary> 提交 1、撤销 2、提交 </summary>
</member>
<member name="P:Performance.DtoModels.AprAmountAuditRequest.IsPass">
<summary> 审核结果 1、审核通过 2、驳回 </summary>
</member>
......
......@@ -7,24 +7,30 @@ namespace Performance.DtoModels
{
public class AprAmountAuditRequest
{
public class Member
{
public string PersonnelNumber { get; set; }
public string DoctorName { get; set; }
}
/// <summary> 绩效ID </summary>
public int AllotId { get; set; }
public List<Member> Members { get; set; }
/// <summary> 录入科室 </summary>
public string TypeInDepartment { get; set; }
/// <summary> 创建时间 </summary>
public DateTime CreateDate { get; set; }
/// <summary> 提交 1、撤销 2、提交 </summary>
public int Status { get; set; }
/// <summary> 审核结果 1、审核通过 2、驳回 </summary>
public int IsPass { get; set; }
/// <summary> 备注 </summary>
public string Remark { get; set; }
public List<Member> Members { get; set; }
}
public class AprAmountAuditRequestValidator : AbstractValidator<AprAmountAuditRequest>
public class Member
{
public AprAmountAuditRequestValidator()
{
RuleFor(x => x.IsPass).NotNull().NotEmpty().InclusiveBetween(1, 2);
}
public string PersonnelNumber { get; set; }
public string DoctorName { get; set; }
}
}
......@@ -11,6 +11,7 @@ public class OhterAmountAuditResponse
public string TypeInDepartment { get; set; }
public decimal Amount { get; set; }
public int? Status { get; set; }
public string CreateDate { get; set; }
public string AuditTime { get; set; }
public string Remark { get; set; }
}
......
......@@ -74,7 +74,7 @@ public class per_apr_amount
/// <summary>
///
/// </summary>
public Nullable<DateTime> CreateDate { get; set; }
public DateTime CreateDate { get; set; }
/// <summary>
///
......
......@@ -69,7 +69,7 @@ public class per_apr_amount_hide
/// <summary>
///
/// </summary>
public Nullable<DateTime> CreateDate { get; set; }
public DateTime CreateDate { get; set; }
/// <summary>
///
......
......@@ -452,8 +452,10 @@ public List<per_apr_amount> GetAprList(int allotId, int userId)
/// </summary>
/// <param name="allotId"></param>
/// <param name="department"></param>
/// <param name="status"></param>
/// <param name="date"></param>
/// <returns></returns>
public List<view_per_apr_amount> GetAprList(int allotId, string department, int? status = null)
public List<view_per_apr_amount> GetAprList(int allotId, string department, int? status = null, DateTime? date = null)
{
Expression<Func<per_apr_amount, bool>> predicate = w => w.AllotId == allotId && w.Amount.HasValue && w.Amount != 0;
if (!string.IsNullOrEmpty(department))
......@@ -462,6 +464,9 @@ public List<view_per_apr_amount> GetAprList(int allotId, string department, int?
if (status.HasValue)
predicate = predicate.And(w => w.Status == status);
if (date != null)
predicate = predicate.And((w) => w.CreateDate == date);
var list = perapramountRepository.GetFullAmount(predicate);
if (list != null && list.Any())
list = list.OrderBy(t => t.DoctorName).ToList();
......@@ -490,7 +495,6 @@ public bool InsertApr(per_apr_amount request, int userId)
request.TypeInDepartment = GetTypeInDepartment(userId);
request.Status = 1;
request.CreateDate = DateTime.Now;
request.CreateUser = userId;
return perapramountRepository.Add(request);
}
......@@ -543,11 +547,13 @@ public bool DeleteApr(int id)
/// </summary>
/// <param name="allotId"></param>
/// <param name="department">录入科室</param>
/// <param name="department"></param>
/// <param name="status">1.撤销 2.提交</param>
/// <returns></returns>
public bool CommitApr(int allotId, string department, int status)
public bool CommitApr(int allotId, string department, int status, DateTime date)
{
var list = GetAprByTypeInDepartment(allotId, department);
var list = status == 1
? GetAprByTypeInDepartment(allotId, department, date, 2) // 撤销操作,获取已提交等待审核的数据
: GetAprByTypeInDepartment(allotId, department, date, 1, 4); // 提交操作,获取未提交、驳回的数据
if (list == null) return true;
list.ForEach(t => t.Status = status);
......@@ -586,7 +592,7 @@ public ApiResponse ConfirmAudit(int userid, AprAmountAuditRequest request)
if (error.Count > 0)
return new ApiResponse(ResponseType.WarningTable, "验证不通过,当前操作已拒绝", error);
var allApramounts = perapramountRepository.GetEntities(t => t.AllotId == request.AllotId);
var allApramounts = GetAprByTypeInDepartment(request.AllotId, request.TypeInDepartment, request.CreateDate, 2); // 获取等待审核的数据
foreach (var member in request.Members)
{
var apramounts = allApramounts?.Where(t => (t.PersonnelNumber ?? "") == member.PersonnelNumber);
......@@ -638,13 +644,6 @@ public string ImpoerAprEmployees(int allotid, string path, int userid)
if (userrole == null) throw new PerformanceException("用户未绑定角色");
var typeIn = GetTypeInDepartment(userid);
var data = perapramountRepository.GetEntities(t => t.AllotId == allotid && t.TypeInDepartment == typeIn);
if (data != null && data.Any())
{
data.ForEach(t => t.Status = 1);
perapramountRepository.UpdateRange(data.ToArray());
}
try
{
IWorkbook workbook = null;
......@@ -652,9 +651,7 @@ public string ImpoerAprEmployees(int allotid, string path, int userid)
var version = FileHelper.GetExtension(path) == ".xlsx" ? ExcelVersion.xlsx : ExcelVersion.xls;
using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate))
{
workbook = (version == ExcelVersion.xlsx)
? (IWorkbook)(new XSSFWorkbook(fs))
: (IWorkbook)(new HSSFWorkbook(fs));
workbook = version == ExcelVersion.xlsx ? new XSSFWorkbook(fs) : new HSSFWorkbook(fs);
}
if (workbook == null) return "";
var sheet = workbook.GetSheetAt(0);
......@@ -921,7 +918,7 @@ public List<per_apr_amount_hide> GetAprHideList(int allotId, int userId)
/// <param name="allotId"></param>
/// <param name="department"></param>
/// <returns></returns>
public List<view_per_apr_amount> GetAprHideList(int allotId, string department, int? status = null)
public List<view_per_apr_amount> GetAprHideList(int allotId, string department, int? status = null, string date = null)
{
Expression<Func<per_apr_amount_hide, bool>> predicate = w => w.AllotId == allotId && w.Amount.HasValue && w.Amount != 0;
if (!string.IsNullOrEmpty(department))
......@@ -930,6 +927,9 @@ public List<view_per_apr_amount> GetAprHideList(int allotId, string department,
if (status.HasValue)
predicate = predicate.And(w => w.Status == status);
if (!string.IsNullOrEmpty(date))
predicate = predicate.And(w => w.CreateDate.ToString("yyyy-MM-dd HH:mm:ss") == date);
var list = _hideRepository.GetFullAmount(predicate);
if (list != null && list.Any())
list = list.OrderBy(t => t.DoctorName).ToList();
......@@ -958,7 +958,6 @@ public bool InsertAprHide(per_apr_amount_hide request, int userId)
request.TypeInDepartment = GetTypeInDepartment(userId);
request.Status = 1;
request.CreateDate = DateTime.Now;
request.CreateUser = userId;
return _hideRepository.Add(request);
}
......@@ -1010,12 +1009,14 @@ public bool DeleteAprHide(int id)
/// 提交、撤销医院不公示其他绩效
/// </summary>
/// <param name="allotId"></param>
/// <param name="userId"></param>
/// <param name="status"></param>
/// <param name="department">录入科室</param>
/// <param name="status">1.撤销 2.提交</param>
/// <returns></returns>
public bool CommitAprHide(int allotId, string department, int status)
public bool CommitAprHide(int allotId, string department, int status, DateTime date)
{
var list = GetAprHideByTypeInDepartment(allotId, department);
var list = status == 1
? GetAprHideByTypeInDepartment(allotId, department, date, 2) // 撤销操作,获取已提交等待审核的数据
: GetAprHideByTypeInDepartment(allotId, department, date, 1, 4); // 提交操作,获取未提交、驳回的数据
if (list == null) return true;
list.ForEach(t => t.Status = status);
......@@ -1055,7 +1056,7 @@ public ApiResponse ConfirmAuditHide(int userid, AprAmountAuditRequest request)
if (error.Count > 0)
return new ApiResponse(ResponseType.WarningTable, "验证不通过,当前操作已拒绝", error);
var allApramounts = _hideRepository.GetEntities(t => t.AllotId == request.AllotId);
var allApramounts = GetAprHideByTypeInDepartment(request.AllotId, request.TypeInDepartment, request.CreateDate, 2); // 获取等待审核的数据
foreach (var member in request.Members)
{
var apramounts = allApramounts?.Where(t => (t.PersonnelNumber ?? "") == member.PersonnelNumber);
......@@ -1106,13 +1107,6 @@ public void ImpoerAprHideEmployees(int allotid, string path, int userid)
if (userrole == null) throw new PerformanceException("用户未绑定角色");
var typeIn = GetTypeInDepartment(userid);
var data = _hideRepository.GetEntities(t => t.AllotId == allotid && t.TypeInDepartment == typeIn);
if (data != null && data.Any())
{
data.ForEach(t => t.Status = 1);
_hideRepository.UpdateRange(data.ToArray());
}
try
{
IWorkbook workbook = null;
......@@ -1120,9 +1114,7 @@ public void ImpoerAprHideEmployees(int allotid, string path, int userid)
var version = FileHelper.GetExtension(path) == ".xlsx" ? ExcelVersion.xlsx : ExcelVersion.xls;
using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate))
{
workbook = (version == ExcelVersion.xlsx)
? (IWorkbook)(new XSSFWorkbook(fs))
: (IWorkbook)(new HSSFWorkbook(fs));
workbook = version == ExcelVersion.xlsx ? new XSSFWorkbook(fs) : new HSSFWorkbook(fs);
}
if (workbook == null) return;
var sheet = workbook.GetSheetAt(0);
......@@ -1880,9 +1872,10 @@ public void AuditGather(List<Gather> gather)
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public bool ClearAprData(per_apr_amount request)
public bool ClearAprData(AprAmountAuditRequest request)
{
var data = perapramountRepository.GetEntities(t => t.AllotId == request.AllotId && t.TypeInDepartment == request.TypeInDepartment);
var data = perapramountRepository.GetEntities(t => t.AllotId == request.AllotId
&& t.TypeInDepartment == request.TypeInDepartment && t.CreateDate == request.CreateDate);
if (data == null || !data.Any()) return true;
return perapramountRepository.RemoveRange(data.ToArray());
......@@ -1893,9 +1886,10 @@ public bool ClearAprData(per_apr_amount request)
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public bool ClearAprHideData(per_apr_amount request)
public bool ClearAprHideData(AprAmountAuditRequest request)
{
var data = _hideRepository.GetEntities(t => t.AllotId == request.AllotId && t.TypeInDepartment == request.TypeInDepartment);
var data = _hideRepository.GetEntities(t => t.AllotId == request.AllotId
&& t.TypeInDepartment == request.TypeInDepartment && t.CreateDate == request.CreateDate);
if (data == null || !data.Any()) return true;
return _hideRepository.RemoveRange(data.ToArray());
......@@ -1906,10 +1900,20 @@ public bool ClearAprHideData(per_apr_amount request)
/// </summary>
/// <param name="allotId"></param>
/// <param name="department">录入科室</param>
/// <param name="date"></param>
/// <param name="status">1.未提交 2.等待审核 3.审核通过 4.驳回</param>
/// <returns></returns>
public List<per_apr_amount> GetAprByTypeInDepartment(int allotId, string department)
public List<per_apr_amount> GetAprByTypeInDepartment(int allotId, string department, DateTime date, params int[] status)
{
var data = perapramountRepository.GetEntities(t => t.AllotId == allotId && t.TypeInDepartment == department);
Expression<Func<per_apr_amount, bool>> exp = (w) => w.AllotId == allotId && w.TypeInDepartment == department && w.CreateDate == date;
//if (!string.IsNullOrEmpty(date))
// exp = exp.And((w) => w.CreateDate.ToString("yyyy-MM-dd HH:mm:ss") == date);
if (status != null && status.Any())
exp = exp.And((w) => status.Contains(w.Status ?? 1));
var data = perapramountRepository.GetEntities(exp);
return data;
}
......@@ -1918,10 +1922,20 @@ public List<per_apr_amount> GetAprByTypeInDepartment(int allotId, string departm
/// </summary>
/// <param name="allotId"></param>
/// <param name="department">录入科室</param>
/// <param name="date"></param>
/// <param name="status">1.未提交 2.等待审核 3.审核通过 4.驳回</param>
/// <returns></returns>
public List<per_apr_amount_hide> GetAprHideByTypeInDepartment(int allotId, string department)
public List<per_apr_amount_hide> GetAprHideByTypeInDepartment(int allotId, string department, DateTime date, params int[] status)
{
var data = _hideRepository.GetEntities(t => t.AllotId == allotId && t.TypeInDepartment == department);
Expression<Func<per_apr_amount_hide, bool>> exp = (w) => w.AllotId == allotId && w.TypeInDepartment == department && w.CreateDate == date;
//if (!string.IsNullOrEmpty(date))
// exp = exp.And((w) => w.CreateDate.ToString("yyyy-MM-dd HH:mm:ss") == date);
if (status != null && status.Any())
exp = exp.And((w) => status.Contains(w.Status ?? 1));
var data = _hideRepository.GetEntities(exp);
return data;
}
}
......
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