Commit e6a1344d by wyc

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

parent c25e07b1
......@@ -382,7 +382,7 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId)
}
/// <summary>
/// 科室确认详情
/// 科室确认详情(已下发结果展示列表)
/// </summary>
/// <param name="allotId"></param>
/// <param name="unitType"></param>
......@@ -392,19 +392,10 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId)
[Route("issue/audit/detail")]
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();
return _attendanceService.IssAttendanceResult(allotId, userid);
unitType = !string.IsNullOrEmpty(unitType) ? unitType : "";
accountingUnit = !string.IsNullOrEmpty(accountingUnit) ? accountingUnit : "";
return _attendanceService.AuditDetail(allotId, unitType, accountingUnit, userid);
}
/// <summary>
......@@ -443,10 +434,10 @@ public ApiResponse IssueStatistics(int allotId)
/// <returns></returns>
[HttpPost]
[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);
return _attendanceService.ChooseStatistics(allotId, issueid, state, realName);
return _attendanceService.ChooseStatistics(allotId, issueid, state, realName, remarks);
}
#endregion
......
......@@ -422,20 +422,13 @@
</member>
<member name="M:Performance.Api.Controllers.AttendanceController.AuditDetail(System.Int32,System.String,System.String)">
<summary>
科室确认详情
科室确认详情(已下发结果展示列表)
</summary>
<param name="allotId"></param>
<param name="unitType"></param>
<param name="accountingUnit"></param>
<returns></returns>
</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)">
<summary>
最终考勤结果下发(预确认显示)
......@@ -450,7 +443,7 @@
<param name="allotId"></param>
<returns></returns>
</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>
......
......@@ -2973,6 +2973,11 @@
更新时间
</summary>
</member>
<member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.Remarks">
<summary>
备注
</summary>
</member>
<member name="P:Performance.DtoModels.Response.AttendanceAuditDetails.Value">
<summary>
请假天数
......
......@@ -6208,6 +6208,11 @@
更新时间
</summary>
</member>
<member name="P:Performance.EntityModels.Entity.per_attendance_issue.Remarks">
<summary>
备注
</summary>
</member>
<member name="P:Performance.EntityModels.Entity.per_attendance_type.IsDeduction">
<summary>
是否核减出勤 1 核减 2 不核减
......
......@@ -70,6 +70,10 @@ public class AttendanceAuditDetail
public DateTime? UpdateTime { get; set; }
public List<AttendanceAuditDetails> Detial { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remarks { get; set; }
}
public class AttendanceAuditDetails
{
......
......@@ -85,5 +85,9 @@ public class per_attendance_issue
/// 更新时间
/// </summary>
public DateTime? UpdateTime { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remarks { get; set; }
}
}
......@@ -793,58 +793,15 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId)
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 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();
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
{
AllotId = w.AllotId,
......@@ -862,6 +819,7 @@ public ApiResponse<List<AttendanceAuditDetail>> IssAttendanceResult(int allotId,
State = w.State,
UpdateUser = w.UpdateUser,
UpdateTime = w.UpdateTime,
Remarks = w.Remarks,
}).ToList();
//当角色对应时过滤
var userInfo = _userRepository.GetUser(userid);
......@@ -893,7 +851,6 @@ public ApiResponse<List<AttendanceAuditDetail>> IssAttendanceResult(int allotId,
})
.ToList();
}
return new ApiResponse<List<AttendanceAuditDetail>>(ResponseType.OK, items);
}
......@@ -1017,6 +974,7 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName)
issuePersonnel.State = (int)Attendance.State.已下发未确认;
issuePersonnel.UpdateUser = realName;
issuePersonnel.UpdateTime = DateTime.Now;
issuePersonnel.Remarks = "";
updateIssuedates.Add(issuePersonnel);
}
perforPerAttendanceIssueRepository.UpdateRange(updateIssuedates.ToArray());
......@@ -1031,7 +989,7 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName)
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();
foreach (var item in issuedates)
......@@ -1039,6 +997,7 @@ public ApiResponse ChooseStatistics(int allotId, int[] issueid, Attendance.State
item.State = (int)state;
item.UpdateUser = realName;
item.UpdateTime = DateTime.Now;
item.Remarks = remarks;
}
perforPerAttendanceIssueRepository.UpdateRange(issuedates.ToArray());
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