Commit e6a1344d by wyc

'考勤下发' 科室确认详情和已下发结果展示列表合并,最终考勤结果驳回或确认添加 “备注”字段

parent c25e07b1
...@@ -382,7 +382,7 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId) ...@@ -382,7 +382,7 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId)
} }
/// <summary> /// <summary>
/// 科室确认详情 /// 科室确认详情(已下发结果展示列表)
/// </summary> /// </summary>
/// <param name="allotId"></param> /// <param name="allotId"></param>
/// <param name="unitType"></param> /// <param name="unitType"></param>
...@@ -392,19 +392,10 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId) ...@@ -392,19 +392,10 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId)
[Route("issue/audit/detail")] [Route("issue/audit/detail")]
public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string unitType, string accountingUnit) public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string unitType, string accountingUnit)
{ {
return _attendanceService.AuditDetail(allotId, unitType, accountingUnit);
}
/// <summary>
/// 已下发结果展示列表
/// </summary>
/// <param name="allotId"></param>
/// <returns></returns>
[HttpGet("issue/result/list")]
public ApiResponse<List<AttendanceAuditDetail>> IssAttendanceResult(int allotId)
{
var userid = claim.GetUserId(); var userid = claim.GetUserId();
return _attendanceService.IssAttendanceResult(allotId, userid); unitType = !string.IsNullOrEmpty(unitType) ? unitType : "";
accountingUnit = !string.IsNullOrEmpty(accountingUnit) ? accountingUnit : "";
return _attendanceService.AuditDetail(allotId, unitType, accountingUnit, userid);
} }
/// <summary> /// <summary>
...@@ -443,10 +434,10 @@ public ApiResponse IssueStatistics(int allotId) ...@@ -443,10 +434,10 @@ public ApiResponse IssueStatistics(int allotId)
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("issue/choose")] [Route("issue/choose")]
public ApiResponse ChooseStatistics(int allotId, int[] issueid, Attendance.State state) public ApiResponse ChooseStatistics(int allotId, int[] issueid, Attendance.State state,string remarks)
{ {
var realName = claim.GetUserClaim(JwtClaimTypes.RealName); var realName = claim.GetUserClaim(JwtClaimTypes.RealName);
return _attendanceService.ChooseStatistics(allotId, issueid, state, realName); return _attendanceService.ChooseStatistics(allotId, issueid, state, realName, remarks);
} }
#endregion #endregion
......
...@@ -422,20 +422,13 @@ ...@@ -422,20 +422,13 @@
</member> </member>
<member name="M:Performance.Api.Controllers.AttendanceController.AuditDetail(System.Int32,System.String,System.String)"> <member name="M:Performance.Api.Controllers.AttendanceController.AuditDetail(System.Int32,System.String,System.String)">
<summary> <summary>
科室确认详情 科室确认详情(已下发结果展示列表)
</summary> </summary>
<param name="allotId"></param> <param name="allotId"></param>
<param name="unitType"></param> <param name="unitType"></param>
<param name="accountingUnit"></param> <param name="accountingUnit"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AttendanceController.IssAttendanceResult(System.Int32)">
<summary>
已下发结果展示列表
</summary>
<param name="allotId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AttendanceController.PreConfirmationDisplay(System.Int32)"> <member name="M:Performance.Api.Controllers.AttendanceController.PreConfirmationDisplay(System.Int32)">
<summary> <summary>
最终考勤结果下发(预确认显示) 最终考勤结果下发(预确认显示)
...@@ -450,7 +443,7 @@ ...@@ -450,7 +443,7 @@
<param name="allotId"></param> <param name="allotId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AttendanceController.ChooseStatistics(System.Int32,System.Int32[],Performance.DtoModels.Attendance.State)"> <member name="M:Performance.Api.Controllers.AttendanceController.ChooseStatistics(System.Int32,System.Int32[],Performance.DtoModels.Attendance.State,System.String)">
<summary> <summary>
最终考勤结果驳回或确认无误((批量操作) 最终考勤结果驳回或确认无误((批量操作)
</summary> </summary>
......
...@@ -2973,6 +2973,11 @@ ...@@ -2973,6 +2973,11 @@
更新时间 更新时间
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.Remarks">
<summary>
备注
</summary>
</member>
<member name="P:Performance.DtoModels.Response.AttendanceAuditDetails.Value"> <member name="P:Performance.DtoModels.Response.AttendanceAuditDetails.Value">
<summary> <summary>
请假天数 请假天数
......
...@@ -6208,6 +6208,11 @@ ...@@ -6208,6 +6208,11 @@
更新时间 更新时间
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.Entity.per_attendance_issue.Remarks">
<summary>
备注
</summary>
</member>
<member name="P:Performance.EntityModels.Entity.per_attendance_type.IsDeduction"> <member name="P:Performance.EntityModels.Entity.per_attendance_type.IsDeduction">
<summary> <summary>
是否核减出勤 1 核减 2 不核减 是否核减出勤 1 核减 2 不核减
......
...@@ -70,6 +70,10 @@ public class AttendanceAuditDetail ...@@ -70,6 +70,10 @@ public class AttendanceAuditDetail
public DateTime? UpdateTime { get; set; } public DateTime? UpdateTime { get; set; }
public List<AttendanceAuditDetails> Detial { get; set; } public List<AttendanceAuditDetails> Detial { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remarks { get; set; }
} }
public class AttendanceAuditDetails public class AttendanceAuditDetails
{ {
......
...@@ -85,5 +85,9 @@ public class per_attendance_issue ...@@ -85,5 +85,9 @@ public class per_attendance_issue
/// 更新时间 /// 更新时间
/// </summary> /// </summary>
public DateTime? UpdateTime { get; set; } public DateTime? UpdateTime { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remarks { get; set; }
} }
} }
...@@ -793,58 +793,15 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId) ...@@ -793,58 +793,15 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId)
return new ApiResponse<List<AttendanceAuditList>>(ResponseType.OK, items); return new ApiResponse<List<AttendanceAuditList>>(ResponseType.OK, items);
} }
public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string unitType, string accountingUnit) public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string unitType, string accountingUnit,int userid)
{ {
var types = perfoPperAttendanceTypeRepository.GetEntities(t => t.AllotId == allotId) ?? new List<per_attendance_type>(); var types = perfoPperAttendanceTypeRepository.GetEntities(t => t.AllotId == allotId) ?? new List<per_attendance_type>();
var vacationeData = perfoPperAttendanceVacationeRepository.GetEntities(t => t.AllotId == allotId) ?? new List<per_attendance_vacation>(); var vacationeData = perfoPperAttendanceVacationeRepository.GetEntities(t => t.AllotId == allotId) ?? new List<per_attendance_vacation>();
var issues = perforPerAttendanceIssueRepository.GetEntities(w => w.AllotId == allotId && w.UnitType == unitType);
issues = issues.Where(w => w.AccountingUnit == accountingUnit).ToList();
var items = issues.Select(w => new AttendanceAuditDetail
{
UnitType = w.UnitType,
AccountingUnit = w.AccountingUnit,
PersonnelName = w.PersonnelName,
PersonnelNumber = w.PersonnelNumber,
BeginDate = w.BeginDate,
EndDate = w.EndDate,
WorkFullDays = w.WorkFullDays,
AttendanceDays = w.AttendanceDays,
DeductionDays = w.DeductionDays,
NoDeductionDays = w.NoDeductionDays,
State = w.State,
UpdateUser = w.UpdateUser,
UpdateTime = w.UpdateTime,
}).ToList();
var vacationes = vacationeData
.Where(w => w.BegDate > DateTime.MinValue && w.EndDate > DateTime.MinValue)
.Select(w => new
{
w.PersonnelNumber,
Type = types.FirstOrDefault(p => p.Id == w.TypeId)?.AttendanceName ?? "考勤类型缺失",
Dates = SplitEveryDay(w.BegDate.Value.Date, w.EndDate.Value.Date),
Remark = types.FirstOrDefault(p => p.Id == w.TypeId)?.IsDeduction == (int)Attendance.Deduction.核减 ? "核减" : "不核减",
});
foreach (var stat in items)
{
stat.Detial = vacationes
.Where(w => w.PersonnelNumber == stat.PersonnelNumber)
.Select(w => new AttendanceAuditDetails
{
Title = w.Type,
Value = w.Dates.Where(date => date >= stat.BeginDate && date <= stat.EndDate).Count(),
Remark = w.Remark,
})
.ToList();
}
return new ApiResponse<List<AttendanceAuditDetail>>(ResponseType.OK, items);
}
public ApiResponse<List<AttendanceAuditDetail>> IssAttendanceResult(int allotId, int userid)
{
var types = perfoPperAttendanceTypeRepository.GetEntities(t => t.AllotId == allotId) ?? new List<per_attendance_type>();
var vacationeData = perfoPperAttendanceVacationeRepository.GetEntities(t => t.AllotId == allotId) ?? new List<per_attendance_vacation>();
var issues = perforPerAttendanceIssueRepository.GetEntities(w => w.AllotId == allotId).ToList(); var issues = perforPerAttendanceIssueRepository.GetEntities(w => w.AllotId == allotId).ToList();
if (!string.IsNullOrEmpty(unitType))
issues = issues.Where(w=>w.UnitType==unitType).ToList();
if (!string.IsNullOrEmpty(accountingUnit))
issues = issues.Where(w => w.AccountingUnit == accountingUnit).ToList();
var items = issues.Select(w => new AttendanceAuditDetail var items = issues.Select(w => new AttendanceAuditDetail
{ {
AllotId = w.AllotId, AllotId = w.AllotId,
...@@ -862,6 +819,7 @@ public ApiResponse<List<AttendanceAuditDetail>> IssAttendanceResult(int allotId, ...@@ -862,6 +819,7 @@ public ApiResponse<List<AttendanceAuditDetail>> IssAttendanceResult(int allotId,
State = w.State, State = w.State,
UpdateUser = w.UpdateUser, UpdateUser = w.UpdateUser,
UpdateTime = w.UpdateTime, UpdateTime = w.UpdateTime,
Remarks = w.Remarks,
}).ToList(); }).ToList();
//当角色对应时过滤 //当角色对应时过滤
var userInfo = _userRepository.GetUser(userid); var userInfo = _userRepository.GetUser(userid);
...@@ -893,7 +851,6 @@ public ApiResponse<List<AttendanceAuditDetail>> IssAttendanceResult(int allotId, ...@@ -893,7 +851,6 @@ public ApiResponse<List<AttendanceAuditDetail>> IssAttendanceResult(int allotId,
}) })
.ToList(); .ToList();
} }
return new ApiResponse<List<AttendanceAuditDetail>>(ResponseType.OK, items); return new ApiResponse<List<AttendanceAuditDetail>>(ResponseType.OK, items);
} }
...@@ -1017,6 +974,7 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName) ...@@ -1017,6 +974,7 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName)
issuePersonnel.State = (int)Attendance.State.已下发未确认; issuePersonnel.State = (int)Attendance.State.已下发未确认;
issuePersonnel.UpdateUser = realName; issuePersonnel.UpdateUser = realName;
issuePersonnel.UpdateTime = DateTime.Now; issuePersonnel.UpdateTime = DateTime.Now;
issuePersonnel.Remarks = "";
updateIssuedates.Add(issuePersonnel); updateIssuedates.Add(issuePersonnel);
} }
perforPerAttendanceIssueRepository.UpdateRange(updateIssuedates.ToArray()); perforPerAttendanceIssueRepository.UpdateRange(updateIssuedates.ToArray());
...@@ -1031,7 +989,7 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName) ...@@ -1031,7 +989,7 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName)
return new ApiResponse(ResponseType.OK, "下发成功"); return new ApiResponse(ResponseType.OK, "下发成功");
} }
public ApiResponse ChooseStatistics(int allotId, int[] issueid, Attendance.State state, string realName) public ApiResponse ChooseStatistics(int allotId, int[] issueid, Attendance.State state, string realName,string remarks)
{ {
var issuedates = perforPerAttendanceIssueRepository.GetEntities(w => w.AllotId == allotId && issueid.Contains(w.Id)).ToList(); var issuedates = perforPerAttendanceIssueRepository.GetEntities(w => w.AllotId == allotId && issueid.Contains(w.Id)).ToList();
foreach (var item in issuedates) foreach (var item in issuedates)
...@@ -1039,6 +997,7 @@ public ApiResponse ChooseStatistics(int allotId, int[] issueid, Attendance.State ...@@ -1039,6 +997,7 @@ public ApiResponse ChooseStatistics(int allotId, int[] issueid, Attendance.State
item.State = (int)state; item.State = (int)state;
item.UpdateUser = realName; item.UpdateUser = realName;
item.UpdateTime = DateTime.Now; item.UpdateTime = DateTime.Now;
item.Remarks = remarks;
} }
perforPerAttendanceIssueRepository.UpdateRange(issuedates.ToArray()); perforPerAttendanceIssueRepository.UpdateRange(issuedates.ToArray());
return new ApiResponse(ResponseType.OK); return new ApiResponse(ResponseType.OK);
......
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