Commit ce05cc2f by wyc

‘考勤下发’注释 初始考勤,添加 科室确认详情(已下发结果展示列表)下载,修改 更新字段

parent 3fbe8d32
...@@ -36,20 +36,21 @@ public class AttendanceController : ControllerBase ...@@ -36,20 +36,21 @@ public class AttendanceController : ControllerBase
view_attendance 考勤视图 view_attendance 考勤视图
*/ */
/// <summary>
/// 查询绩效考勤记录
/// </summary>
/// <param name="allotId"></param>
/// <returns></returns>
[HttpGet("GetAttendance/{allotId}")]
public ApiResponse<List<AttendanceStatistics>> GetAttendance(int allotId)
{
// 查询考勤视图,并按照设计图做格式转换 仅查询开始结束
var userid = claim.GetUserId();
var result = _attendanceService.GetAttendance(allotId, userid);
return result; ///// <summary>
} ///// 查询绩效考勤记录
///// </summary>
///// <param name="allotId"></param>
///// <returns></returns>
//[HttpGet("GetAttendance/{allotId}")]
//public ApiResponse<List<AttendanceStatistics>> GetAttendance(int allotId)
//{
// // 查询考勤视图,并按照设计图做格式转换 仅查询开始结束
// var userid = claim.GetUserId();
// var result = _attendanceService.GetAttendance(allotId, userid);
// return result;
//}
#region 调动记录 #region 调动记录
...@@ -194,47 +195,49 @@ public ApiResponse<List<AttendanceStatistics>> GetAttendanceStatistics(int allot ...@@ -194,47 +195,49 @@ public ApiResponse<List<AttendanceStatistics>> GetAttendanceStatistics(int allot
return _attendanceService.GetAttendanceStatistics(allotId, userid); return _attendanceService.GetAttendanceStatistics(allotId, userid);
} }
#region 下载
/// <summary>
/// 初始考勤记录下载
/// </summary>
/// <param name="allotId"></param>
/// <returns></returns>
[HttpPost]
[Route("download/attendance/{allotId}")]
public IActionResult DownloadAttendance(int allotId)
{
List<ExcelDownloadHeads> excelDownloadHeads = new List<ExcelDownloadHeads>()
{
new ExcelDownloadHeads { Alias = "核算单元名称", Name = nameof(AttendanceStatistics.AccountingUnit) },
new ExcelDownloadHeads { Alias = "科室名称", Name = nameof(AttendanceStatistics.Department) },
new ExcelDownloadHeads { Alias = "姓名", Name = nameof(AttendanceStatistics.PersonnelName) },
new ExcelDownloadHeads { Alias = "员工号", Name = nameof(AttendanceStatistics.PersonnelNumber) },
new ExcelDownloadHeads { Alias = "人员类别", Name = nameof(AttendanceStatistics.UnitType) },
new ExcelDownloadHeads { Alias = "在科开始时问", Name = nameof(AttendanceStatistics.BeginDate) },
new ExcelDownloadHeads { Alias = "在科结束时间", Name = nameof(AttendanceStatistics.EndDate) },
};
var userid = claim.GetUserId();
var result = _attendanceService.GetAttendance(allotId, userid).Data;
var ser = JsonConvert.SerializeObject(result);
var rows = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(ser);
var filepath = _attendanceService.ExcelDownload(rows, "初始考勤记录", allotId, excelDownloadHeads);
var memoryStream = new MemoryStream(); #region 初始考勤记录下载
using (var stream = new FileStream(filepath, FileMode.Open)) ///// <summary>
{ ///// 初始考勤记录下载
stream.CopyToAsync(memoryStream).Wait(); ///// </summary>
} ///// <param name="allotId"></param>
memoryStream.Seek(0, SeekOrigin.Begin); ///// <returns></returns>
var provider = new FileExtensionContentTypeProvider(); //[HttpPost]
FileInfo fileInfo = new FileInfo(filepath); //[Route("download/attendance/{allotId}")]
var memi = provider.Mappings[".xlsx"]; //public IActionResult DownloadAttendance(int allotId)
return File(memoryStream, memi, Path.GetFileName(fileInfo.Name)); //{
} // List<ExcelDownloadHeads> excelDownloadHeads = new List<ExcelDownloadHeads>()
// {
// new ExcelDownloadHeads { Alias = "核算单元名称", Name = nameof(AttendanceStatistics.AccountingUnit) },
// new ExcelDownloadHeads { Alias = "科室名称", Name = nameof(AttendanceStatistics.Department) },
// new ExcelDownloadHeads { Alias = "姓名", Name = nameof(AttendanceStatistics.PersonnelName) },
// new ExcelDownloadHeads { Alias = "员工号", Name = nameof(AttendanceStatistics.PersonnelNumber) },
// new ExcelDownloadHeads { Alias = "人员类别", Name = nameof(AttendanceStatistics.UnitType) },
// new ExcelDownloadHeads { Alias = "在科开始时问", Name = nameof(AttendanceStatistics.BeginDate) },
// new ExcelDownloadHeads { Alias = "在科结束时间", Name = nameof(AttendanceStatistics.EndDate) },
// };
// var userid = claim.GetUserId();
// var result = _attendanceService.GetAttendance(allotId, userid).Data;
// var ser = JsonConvert.SerializeObject(result);
// var rows = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(ser);
// var filepath = _attendanceService.ExcelDownload(rows, "初始考勤记录", allotId, excelDownloadHeads);
// var memoryStream = new MemoryStream();
// using (var stream = new FileStream(filepath, FileMode.Open))
// {
// stream.CopyToAsync(memoryStream).Wait();
// }
// memoryStream.Seek(0, SeekOrigin.Begin);
// var provider = new FileExtensionContentTypeProvider();
// FileInfo fileInfo = new FileInfo(filepath);
// var memi = provider.Mappings[".xlsx"];
// return File(memoryStream, memi, Path.GetFileName(fileInfo.Name));
//}
#endregion
#region 下载
/// <summary> /// <summary>
/// 考勤记录下载 /// 考勤记录下载
/// </summary> /// </summary>
...@@ -364,6 +367,53 @@ public IActionResult DownloadStatistics(int allotId) ...@@ -364,6 +367,53 @@ public IActionResult DownloadStatistics(int allotId)
return File(memoryStream, memi, Path.GetFileName(path));*/ return File(memoryStream, memi, Path.GetFileName(path));*/
} }
/// <summary>
/// 科室确认详情(已下发结果展示列表)下载
/// </summary>
/// <param name="allotId"></param>
/// <param name="unitType">人员类别</param>
/// <param name="accountingUnit">核算单元</param>
/// <returns></returns>
[HttpPost]
[Route("download/auditDetail")]
public IActionResult DownloadAuditDetail(int allotId,string unitType,string accountingUnit)
{
List<ExcelDownloadHeads> excelDownloadHeads = new List<ExcelDownloadHeads>()
{
new ExcelDownloadHeads { Alias = "科室名称", Name = nameof(AttendanceStatistics.Department) },
new ExcelDownloadHeads { Alias = "姓名", Name = nameof(AttendanceStatistics.PersonnelName) },
new ExcelDownloadHeads { Alias = "员工号", Name = nameof(AttendanceStatistics.PersonnelNumber) },
new ExcelDownloadHeads { Alias = "人员类别", Name = nameof(AttendanceStatistics.UnitType) },
new ExcelDownloadHeads { Alias = "核算单元", Name = nameof(AttendanceStatistics.AccountingUnit) },
new ExcelDownloadHeads { Alias = "开始时问", Name = nameof(AttendanceStatistics.BeginDate) },
new ExcelDownloadHeads { Alias = "结束时间", Name = nameof(AttendanceStatistics.EndDate) },
};
var type = _attendanceService.GetAttendanceType(allotId);
foreach (var item in type.Data)
{
excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = item.AttendanceName, Name = item.AttendanceName });
}
excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = "考勤天数", Name = "AttendanceDays" });
var userid = claim.GetUserId();
var result = _attendanceService.AuditDetail(allotId, unitType, accountingUnit, userid).Data;
var ser = JsonConvert.SerializeObject(result);
var rows = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(ser);
var filepath = _attendanceService.ExcelDownload(rows, "最终考勤结果", allotId, excelDownloadHeads);
var memoryStream = new MemoryStream();
using (var stream = new FileStream(filepath, FileMode.Open))
{
stream.CopyToAsync(memoryStream).Wait();
}
memoryStream.Seek(0, SeekOrigin.Begin);
var provider = new FileExtensionContentTypeProvider();
FileInfo fileInfo = new FileInfo(filepath);
var memi = provider.Mappings[".xlsx"];
return File(memoryStream, memi, Path.GetFileName(fileInfo.Name));
}
#endregion #endregion
#region 最终考勤结果 #region 最终考勤结果
...@@ -384,6 +434,8 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId, string unit ...@@ -384,6 +434,8 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId, string unit
return _attendanceService.AuditList(allotId, unitType, accountingUnit, state); return _attendanceService.AuditList(allotId, unitType, accountingUnit, state);
} }
/// <summary> /// <summary>
/// 科室确认详情(已下发结果展示列表) /// 科室确认详情(已下发结果展示列表)
/// </summary> /// </summary>
...@@ -429,12 +481,11 @@ public ApiResponse IssueStatistics(int allotId) ...@@ -429,12 +481,11 @@ public ApiResponse IssueStatistics(int allotId)
return _attendanceService.IssueStatistics(allotId, userid, realName); return _attendanceService.IssueStatistics(allotId, userid, realName);
} }
/// <summary> /// <summary>
/// 最终考勤结果驳回或确认无误((批量操作) /// 最终考勤结果驳回或确认无误((批量操作)
/// </summary> /// </summary>
/// <param name="allotId"></param> /// <param name="attendanceIssueChoose"></param>
/// <param name="issueid">选择id</param>
/// <param name="state">操作类型 确认 = 2,驳回 = 3,</param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("issue/choose")] [Route("issue/choose")]
......
...@@ -302,13 +302,6 @@ ...@@ -302,13 +302,6 @@
记录创建、下发、归档、上传绩效 记录创建、下发、归档、上传绩效
</summary> </summary>
</member> </member>
<member name="M:Performance.Api.Controllers.AttendanceController.GetAttendance(System.Int32)">
<summary>
查询绩效考勤记录
</summary>
<param name="allotId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AttendanceController.GetCallIn(System.Int32)"> <member name="M:Performance.Api.Controllers.AttendanceController.GetCallIn(System.Int32)">
<summary> <summary>
查询绩效调动记录 查询绩效调动记录
...@@ -385,13 +378,6 @@ ...@@ -385,13 +378,6 @@
<param name="allotId"></param> <param name="allotId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AttendanceController.DownloadAttendance(System.Int32)">
<summary>
初始考勤记录下载
</summary>
<param name="allotId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AttendanceController.DownloadVacation(System.Int32)"> <member name="M:Performance.Api.Controllers.AttendanceController.DownloadVacation(System.Int32)">
<summary> <summary>
考勤记录下载 考勤记录下载
...@@ -413,6 +399,15 @@ ...@@ -413,6 +399,15 @@
<param name="allotId"></param> <param name="allotId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AttendanceController.DownloadAuditDetail(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.AuditList(System.Int32,System.String,System.String,Performance.DtoModels.Attendance.State)"> <member name="M:Performance.Api.Controllers.AttendanceController.AuditList(System.Int32,System.String,System.String,Performance.DtoModels.Attendance.State)">
<summary> <summary>
科室确认列表 科室确认列表
...@@ -453,9 +448,7 @@ ...@@ -453,9 +448,7 @@
<summary> <summary>
最终考勤结果驳回或确认无误((批量操作) 最终考勤结果驳回或确认无误((批量操作)
</summary> </summary>
<param name="allotId"></param> <param name="attendanceIssueChoose"></param>
<param name="issueid">选择id</param>
<param name="state">操作类型 确认 = 2,驳回 = 3,</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.BudgetController.Query(Performance.DtoModels.Request.BudgetRequest)"> <member name="M:Performance.Api.Controllers.BudgetController.Query(Performance.DtoModels.Request.BudgetRequest)">
......
...@@ -2978,14 +2978,14 @@ ...@@ -2978,14 +2978,14 @@
状态 未确认 = 1,确认 = 2,驳回 = 3 状态 未确认 = 1,确认 = 2,驳回 = 3
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.UpdateUser"> <member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.ConfirmUser">
<summary> <summary>
更新人 确定用户
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.UpdateTime"> <member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.ConfirmTime">
<summary> <summary>
更新时间 确定时间
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.Remarks"> <member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.Remarks">
......
...@@ -6195,7 +6195,7 @@ ...@@ -6195,7 +6195,7 @@
</member> </member>
<member name="P:Performance.EntityModels.Entity.per_attendance_issue.CreateUser"> <member name="P:Performance.EntityModels.Entity.per_attendance_issue.CreateUser">
<summary> <summary>
创建 创建用户
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.Entity.per_attendance_issue.CreateTime"> <member name="P:Performance.EntityModels.Entity.per_attendance_issue.CreateTime">
...@@ -6203,14 +6203,14 @@ ...@@ -6203,14 +6203,14 @@
创建时间 创建时间
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.Entity.per_attendance_issue.UpdateUser"> <member name="P:Performance.EntityModels.Entity.per_attendance_issue.ConfirmUser">
<summary> <summary>
更新人 确定用户
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.Entity.per_attendance_issue.UpdateTime"> <member name="P:Performance.EntityModels.Entity.per_attendance_issue.ConfirmTime">
<summary> <summary>
更新时间 确定时间
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.Entity.per_attendance_issue.Remarks"> <member name="P:Performance.EntityModels.Entity.per_attendance_issue.Remarks">
......
...@@ -70,13 +70,13 @@ public class AttendanceAuditDetail ...@@ -70,13 +70,13 @@ public class AttendanceAuditDetail
/// </summary> /// </summary>
public int State { get; set; } public int State { get; set; }
/// <summary> /// <summary>
/// 更新人 /// 确定用户
/// </summary> /// </summary>
public string UpdateUser { get; set; } public string ConfirmUser { get; set; }
/// <summary> /// <summary>
/// 更新时间 /// 确定时间
/// </summary> /// </summary>
public DateTime? UpdateTime { get; set; } public DateTime? ConfirmTime { get; set; }
public List<AttendanceAuditDetails> Detial { get; set; } public List<AttendanceAuditDetails> Detial { get; set; }
/// <summary> /// <summary>
......
...@@ -74,7 +74,7 @@ public class per_attendance_issue ...@@ -74,7 +74,7 @@ public class per_attendance_issue
/// </summary> /// </summary>
public int State { get; set; } public int State { get; set; }
/// <summary> /// <summary>
/// 创建 /// 创建用户
/// </summary> /// </summary>
public string CreateUser { get; set; } public string CreateUser { get; set; }
/// <summary> /// <summary>
...@@ -82,13 +82,13 @@ public class per_attendance_issue ...@@ -82,13 +82,13 @@ public class per_attendance_issue
/// </summary> /// </summary>
public DateTime? CreateTime { get; set; } public DateTime? CreateTime { get; set; }
/// <summary> /// <summary>
/// 更新人 /// 确定用户
/// </summary> /// </summary>
public string UpdateUser { get; set; } public string ConfirmUser { get; set; }
/// <summary> /// <summary>
/// 更新时间 /// 确定时间
/// </summary> /// </summary>
public DateTime? UpdateTime { get; set; } public DateTime? ConfirmTime { get; set; }
/// <summary> /// <summary>
/// 备注 /// 备注
/// </summary> /// </summary>
......
...@@ -65,56 +65,56 @@ UserService userService ...@@ -65,56 +65,56 @@ UserService userService
#region 初始考勤页面 #region 初始考勤页面
public ApiResponse<List<AttendanceStatistics>> GetAttendance(int allotId, int userid) //public ApiResponse<List<AttendanceStatistics>> GetAttendance(int allotId, int userid)
{ //{
var allot = perforPerallotRepository.GetEntity(w => w.ID == allotId); // var allot = perforPerallotRepository.GetEntity(w => w.ID == allotId);
if (allot == null) // if (allot == null)
throw new PerformanceException("当前绩效记录不存在"); // throw new PerformanceException("当前绩效记录不存在");
var attendanceData = perforPerallotRepository.GetAttendance(allotId); // var attendanceData = perforPerallotRepository.GetAttendance(allotId);
var roleType = new[] { (int)Role.护士长, (int)Role.科主任, (int)Role.特殊科室, (int)Role.行政科室, }; // var roleType = new[] { (int)Role.护士长, (int)Role.科主任, (int)Role.特殊科室, (int)Role.行政科室, };
var user = userService.GetUser(userid); // var user = userService.GetUser(userid);
var role = roleService.GetUserRole(user.UserID); // var role = roleService.GetUserRole(user.UserID);
if (role.Any(t => roleType.Contains(t.Type.Value))) // if (role.Any(t => roleType.Contains(t.Type.Value)))
attendanceData = attendanceData.Where(w => w.AccountingUnit == user.Department && w.UnitType == user.UnitType).ToList(); // attendanceData = attendanceData.Where(w => w.AccountingUnit == user.Department && w.UnitType == user.UnitType).ToList();
List<AttendanceStatistics> statistics = new List<AttendanceStatistics>(); // List<AttendanceStatistics> statistics = new List<AttendanceStatistics>();
// 交叉补全科室结束时间 // // 交叉补全科室结束时间
foreach (var personnelNumber in attendanceData.Select(w => w.PersonnelNumber).Distinct()) // foreach (var personnelNumber in attendanceData.Select(w => w.PersonnelNumber).Distinct())
{ // {
var attendances = attendanceData.Where(w => w.PersonnelNumber == personnelNumber).OrderBy(w => w.AttendanceDate); // var attendances = attendanceData.Where(w => w.PersonnelNumber == personnelNumber).OrderBy(w => w.AttendanceDate);
for (int i = 0; i < attendances.Count() - 1; i++) // for (int i = 0; i < attendances.Count() - 1; i++)
{ // {
var begDate = attendances.ElementAt(i).AttendanceDate.Date; // var begDate = attendances.ElementAt(i).AttendanceDate.Date;
var endDate = attendances.ElementAt(i + 1).AttendanceDate.Date; // var endDate = attendances.ElementAt(i + 1).AttendanceDate.Date;
// 调入科室需要额外减去1天作为上一个科室结束时间 // // 调入科室需要额外减去1天作为上一个科室结束时间
var days = attendances.ElementAt(i + 1).Source == Attendance.Type.调入.ToString() ? -1 : 0; // var days = attendances.ElementAt(i + 1).Source == Attendance.Type.调入.ToString() ? -1 : 0;
if (endDate > begDate) // if (endDate > begDate)
{ // {
var stat = new AttendanceStatistics // var stat = new AttendanceStatistics
{ // {
AllotID = attendances.ElementAt(i).ALLOTID, // AllotID = attendances.ElementAt(i).ALLOTID,
UnitType = attendances.ElementAt(i).UnitType, // UnitType = attendances.ElementAt(i).UnitType,
AccountingUnit = attendances.ElementAt(i).AccountingUnit, // AccountingUnit = attendances.ElementAt(i).AccountingUnit,
Department = attendances.ElementAt(i).Department, // Department = attendances.ElementAt(i).Department,
PersonnelNumber = attendances.ElementAt(i).PersonnelNumber, // PersonnelNumber = attendances.ElementAt(i).PersonnelNumber,
PersonnelName = attendances.ElementAt(i).PersonnelName, // PersonnelName = attendances.ElementAt(i).PersonnelName,
BeginDate = begDate, // BeginDate = begDate,
EndDate = endDate.AddDays(days), // EndDate = endDate.AddDays(days),
//Detial = new List<AttendanceStatisticsDetial>() // //Detial = new List<AttendanceStatisticsDetial>()
}; // };
statistics.Add(stat); // statistics.Add(stat);
} // }
} // }
} // }
if (statistics != null) // if (statistics != null)
return new ApiResponse<List<AttendanceStatistics>>(ResponseType.OK, statistics); // return new ApiResponse<List<AttendanceStatistics>>(ResponseType.OK, statistics);
else // else
{ // {
return new ApiResponse<List<AttendanceStatistics>>(ResponseType.Fail); // return new ApiResponse<List<AttendanceStatistics>>(ResponseType.Fail);
} // }
} //}
#endregion #endregion
...@@ -763,7 +763,7 @@ public ApiResponse<List<AttendanceStatistics>> GetAttendanceStatistics(int allot ...@@ -763,7 +763,7 @@ public ApiResponse<List<AttendanceStatistics>> GetAttendanceStatistics(int allot
return new ApiResponse<List<AttendanceStatistics>>(ResponseType.OK, "", statistics); return new ApiResponse<List<AttendanceStatistics>>(ResponseType.OK, "", statistics);
} }
#region 考勤下发 #region 考勤下发
// 科室确认列表
public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId, string unitType, string accountingUnit, Attendance.State state) public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId, string unitType, string accountingUnit, Attendance.State state)
{ {
var issues = perforPerAttendanceIssueRepository.GetEntities(w => w.AllotId == allotId); var issues = perforPerAttendanceIssueRepository.GetEntities(w => w.AllotId == allotId);
...@@ -782,8 +782,8 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId, string unit ...@@ -782,8 +782,8 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId, string unit
Count = w.Count(), Count = w.Count(),
ConfirmCount = w.Count(p => p.State == (int)Attendance.State.确认), ConfirmCount = w.Count(p => p.State == (int)Attendance.State.确认),
RejectCount = w.Count(p => p.State == (int)Attendance.State.驳回), RejectCount = w.Count(p => p.State == (int)Attendance.State.驳回),
OperationUser = w.OrderByDescending(o => o.UpdateTime).Select(s => s.UpdateUser).FirstOrDefault(), OperationUser = w.OrderByDescending(o => o.ConfirmTime).Select(s => s.ConfirmUser).FirstOrDefault(),
OperationTime = w.OrderByDescending(o => o.UpdateTime).Select(s => s.UpdateTime).FirstOrDefault(), OperationTime = w.OrderByDescending(o => o.ConfirmTime).Select(s => s.ConfirmTime).FirstOrDefault(),
Remarks = string.Join(';', w.Select(p => p.Remarks).Distinct()), Remarks = string.Join(';', w.Select(p => p.Remarks).Distinct()),
}).ToList(); }).ToList();
...@@ -799,7 +799,7 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId, string unit ...@@ -799,7 +799,7 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId, string unit
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, int userid) 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>();
...@@ -811,7 +811,7 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string ...@@ -811,7 +811,7 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string
issues = issues.Where(w => w.AccountingUnit.Contains(accountingUnit)).ToList(); issues = issues.Where(w => w.AccountingUnit.Contains(accountingUnit)).ToList();
var items = issues.Select(w => new AttendanceAuditDetail var items = issues.Select(w => new AttendanceAuditDetail
{ {
AttendanceIsueId=w.Id, AttendanceIsueId = w.Id,
AllotId = w.AllotId, AllotId = w.AllotId,
Code = w.Code, Code = w.Code,
UnitType = w.UnitType, UnitType = w.UnitType,
...@@ -826,10 +826,10 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string ...@@ -826,10 +826,10 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string
DeductionDays = w.DeductionDays, DeductionDays = w.DeductionDays,
NoDeductionDays = w.NoDeductionDays, NoDeductionDays = w.NoDeductionDays,
State = w.State, State = w.State,
UpdateUser = w.UpdateUser, ConfirmUser = w.ConfirmUser,
UpdateTime = w.UpdateTime, ConfirmTime = w.ConfirmTime,
Remarks = w.Remarks, Remarks = w.Remarks,
}).ToList(); }).OrderBy(w => w.PersonnelNumber).ToList();
//当角色对应时过滤 //当角色对应时过滤
var userInfo = _userRepository.GetUser(userid); var userInfo = _userRepository.GetUser(userid);
if (userInfo?.User == null) throw new NotImplementedException("当前用户不存在"); if (userInfo?.User == null) throw new NotImplementedException("当前用户不存在");
...@@ -859,10 +859,23 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string ...@@ -859,10 +859,23 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string
Remark = w.Remark, Remark = w.Remark,
}) })
.ToList(); .ToList();
foreach (var item in types)
{
if (!stat.Detial.Any(w => w.Title == item.AttendanceName))
{
stat.Detial.Add(new AttendanceAuditDetails
{
Title = item.AttendanceName,
Value = 0,
Remark = item.IsDeduction == (int)Attendance.Deduction.核减 ? "核减" : "不核减",
});
}
}
} }
return new ApiResponse<List<AttendanceAuditDetail>>(ResponseType.OK, items); return new ApiResponse<List<AttendanceAuditDetail>>(ResponseType.OK, items);
} }
// 最终考勤结果下发(预确认显示)
public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allotId, int userid, string unitType, string accountingUnit, Attendance.OperationType state) public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allotId, int userid, string unitType, string accountingUnit, Attendance.OperationType state)
{ {
var statistics = GetAttendanceStatistics(allotId, userid).Data; var statistics = GetAttendanceStatistics(allotId, userid).Data;
...@@ -929,8 +942,7 @@ public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allot ...@@ -929,8 +942,7 @@ public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allot
return new ApiResponse<List<PerAttendanceIssueDto>>(ResponseType.OK, issuedates); return new ApiResponse<List<PerAttendanceIssueDto>>(ResponseType.OK, issuedates);
} }
// 最终考勤结果下发
//下发
public ApiResponse IssueStatistics(int allotId, int userid, string realName, string unitType = "", string accountingUnit = "", Attendance.OperationType state = 0) public ApiResponse IssueStatistics(int allotId, int userid, string realName, string unitType = "", string accountingUnit = "", Attendance.OperationType state = 0)
{ {
var allot = perforPerallotRepository.GetEntity(w => w.ID == allotId); var allot = perforPerallotRepository.GetEntity(w => w.ID == allotId);
...@@ -968,8 +980,6 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str ...@@ -968,8 +980,6 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str
WorkFullDays = item.AttendanceDays + item.DeductionDays, WorkFullDays = item.AttendanceDays + item.DeductionDays,
CreateUser = realName, CreateUser = realName,
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
UpdateUser = realName,
UpdateTime = DateTime.Now,
State = (int)Attendance.State.未确认, State = (int)Attendance.State.未确认,
}; };
}); });
...@@ -993,8 +1003,10 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str ...@@ -993,8 +1003,10 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str
issuePersonnel.AttendanceDays = item.AttendanceDays; issuePersonnel.AttendanceDays = item.AttendanceDays;
issuePersonnel.WorkFullDays = item.AttendanceDays + item.DeductionDays; issuePersonnel.WorkFullDays = item.AttendanceDays + item.DeductionDays;
issuePersonnel.State = (int)Attendance.State.未确认; issuePersonnel.State = (int)Attendance.State.未确认;
issuePersonnel.UpdateUser = realName; issuePersonnel.CreateUser = realName;
issuePersonnel.UpdateTime = DateTime.Now; issuePersonnel.CreateTime = DateTime.Now;
issuePersonnel.ConfirmUser = "";
issuePersonnel.ConfirmTime = null;
issuePersonnel.Remarks = ""; issuePersonnel.Remarks = "";
updateIssuedates.Add(issuePersonnel); updateIssuedates.Add(issuePersonnel);
} }
...@@ -1009,15 +1021,15 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str ...@@ -1009,15 +1021,15 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str
perforPerallotRepository.PerAttendanceIssueBackup(allotId); perforPerallotRepository.PerAttendanceIssueBackup(allotId);
return new ApiResponse(ResponseType.OK, "下发成功"); return new ApiResponse(ResponseType.OK, "下发成功");
} }
// 最终考勤结果驳回或确认无误((批量操作)
public ApiResponse ChooseStatistics(AttendanceIssueChoose attendanceIssueChoose,string realName) public ApiResponse ChooseStatistics(AttendanceIssueChoose attendanceIssueChoose, string realName)
{ {
var issuedates = perforPerAttendanceIssueRepository.GetEntities(w => w.AllotId == attendanceIssueChoose.AllotId && attendanceIssueChoose.Issueid.Contains(w.Id)).ToList(); var issuedates = perforPerAttendanceIssueRepository.GetEntities(w => w.AllotId == attendanceIssueChoose.AllotId && attendanceIssueChoose.Issueid.Contains(w.Id)).ToList();
foreach (var item in issuedates) foreach (var item in issuedates)
{ {
item.State = (int)attendanceIssueChoose.state; item.State = (int)attendanceIssueChoose.state;
item.UpdateUser = realName; item.ConfirmUser = realName;
item.UpdateTime = DateTime.Now; item.ConfirmTime = DateTime.Now;
item.Remarks = attendanceIssueChoose.Remarks; item.Remarks = attendanceIssueChoose.Remarks;
} }
perforPerAttendanceIssueRepository.UpdateRange(issuedates.ToArray()); perforPerAttendanceIssueRepository.UpdateRange(issuedates.ToArray());
......
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