Commit 48e666f9 by wyc

‘考勤下发’ 下载调整,下发添加搜索框,确认详情添加排序,预下发接口调整

parent ce05cc2f
...@@ -323,20 +323,19 @@ public IActionResult DownloadStatistics(int allotId) ...@@ -323,20 +323,19 @@ public IActionResult DownloadStatistics(int allotId)
{ {
List<ExcelDownloadHeads> excelDownloadHeads = new List<ExcelDownloadHeads>() List<ExcelDownloadHeads> excelDownloadHeads = new List<ExcelDownloadHeads>()
{ {
new ExcelDownloadHeads { Alias = "科室名称", Name = nameof(AttendanceStatistics.Department) }, new ExcelDownloadHeads { Alias = "核算组别", Name = nameof(AttendanceStatistics.UnitType) },
new ExcelDownloadHeads { Alias = "核算单元名称", Name = nameof(AttendanceStatistics.AccountingUnit) },
new ExcelDownloadHeads { Alias = "姓名", Name = nameof(AttendanceStatistics.PersonnelName) }, new ExcelDownloadHeads { Alias = "姓名", Name = nameof(AttendanceStatistics.PersonnelName) },
new ExcelDownloadHeads { Alias = "员工号", Name = nameof(AttendanceStatistics.PersonnelNumber) }, 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.AccountingUnit) }, new ExcelDownloadHeads { Alias = "在科结束时间", Name = nameof(AttendanceStatistics.EndDate) },
new ExcelDownloadHeads { Alias = "开始时问", Name = nameof(AttendanceStatistics.BeginDate) },
new ExcelDownloadHeads { Alias = "结束时间", Name = nameof(AttendanceStatistics.EndDate) },
}; };
var type = _attendanceService.GetAttendanceType(allotId); var type = _attendanceService.GetAttendanceType(allotId);
foreach (var item in type.Data) foreach (var item in type.Data)
{ {
excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = item.AttendanceName, Name = item.AttendanceName }); excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = item.AttendanceName, Name = item.AttendanceName });
} }
excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = "勤天数", Name = "AttendanceDays" }); excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = "勤天数", Name = "AttendanceDays" });
var userid = claim.GetUserId(); var userid = claim.GetUserId();
var result = _attendanceService.GetAttendanceStatistics(allotId, userid).Data; var result = _attendanceService.GetAttendanceStatistics(allotId, userid).Data;
...@@ -377,26 +376,25 @@ public IActionResult DownloadStatistics(int allotId) ...@@ -377,26 +376,25 @@ public IActionResult DownloadStatistics(int allotId)
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("download/auditDetail")] [Route("download/auditDetail")]
public IActionResult DownloadAuditDetail(int allotId,string unitType,string accountingUnit) public IActionResult DownloadAuditDetail(int allotId, string unitType, string accountingUnit, string searchTxet)
{ {
List<ExcelDownloadHeads> excelDownloadHeads = new List<ExcelDownloadHeads>() List<ExcelDownloadHeads> excelDownloadHeads = new List<ExcelDownloadHeads>()
{ {
new ExcelDownloadHeads { Alias = "科室名称", Name = nameof(AttendanceStatistics.Department) }, new ExcelDownloadHeads { Alias = "核算组别", Name = nameof(AttendanceStatistics.UnitType) },
new ExcelDownloadHeads { Alias = "核算单元名称", Name = nameof(AttendanceStatistics.AccountingUnit) },
new ExcelDownloadHeads { Alias = "姓名", Name = nameof(AttendanceStatistics.PersonnelName) }, new ExcelDownloadHeads { Alias = "姓名", Name = nameof(AttendanceStatistics.PersonnelName) },
new ExcelDownloadHeads { Alias = "员工号", Name = nameof(AttendanceStatistics.PersonnelNumber) }, 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.AccountingUnit) }, new ExcelDownloadHeads { Alias = "在科结束时间", Name = nameof(AttendanceStatistics.EndDate) },
new ExcelDownloadHeads { Alias = "开始时问", Name = nameof(AttendanceStatistics.BeginDate) },
new ExcelDownloadHeads { Alias = "结束时间", Name = nameof(AttendanceStatistics.EndDate) },
}; };
var type = _attendanceService.GetAttendanceType(allotId); var type = _attendanceService.GetAttendanceType(allotId);
foreach (var item in type.Data) foreach (var item in type.Data)
{ {
excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = item.AttendanceName, Name = item.AttendanceName }); excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = item.AttendanceName, Name = item.AttendanceName });
} }
excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = "勤天数", Name = "AttendanceDays" }); excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = "勤天数", Name = "AttendanceDays" });
var userid = claim.GetUserId(); var userid = claim.GetUserId();
var result = _attendanceService.AuditDetail(allotId, unitType, accountingUnit, userid).Data; var result = _attendanceService.AuditDetail(allotId, unitType, accountingUnit, searchTxet, userid).Data;
var ser = JsonConvert.SerializeObject(result); var ser = JsonConvert.SerializeObject(result);
var rows = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(ser); var rows = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(ser);
...@@ -445,10 +443,10 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId, string unit ...@@ -445,10 +443,10 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId, string unit
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[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, string searchTxet)
{ {
var userid = claim.GetUserId(); var userid = claim.GetUserId();
return _attendanceService.AuditDetail(allotId, unitType, accountingUnit, userid); return _attendanceService.AuditDetail(allotId, unitType, accountingUnit, searchTxet, userid);
} }
/// <summary> /// <summary>
......
...@@ -399,13 +399,13 @@ ...@@ -399,13 +399,13 @@
<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)"> <member name="M:Performance.Api.Controllers.AttendanceController.DownloadAuditDetail(System.Int32,System.String,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.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)">
...@@ -418,7 +418,7 @@ ...@@ -418,7 +418,7 @@
<param name="state"> 操作类型 全部=0,未确认 = 1,确认 = 2,驳回 = 3,</param> <param name="state"> 操作类型 全部=0,未确认 = 1,确认 = 2,驳回 = 3,</param>
<returns></returns> <returns></returns>
</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,System.String)">
<summary> <summary>
科室确认详情(已下发结果展示列表) 科室确认详情(已下发结果展示列表)
</summary> </summary>
......
...@@ -262,11 +262,6 @@ ...@@ -262,11 +262,6 @@
核算单元 核算单元
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.PerAttendanceIssueDto.Department">
<summary>
科室名称
</summary>
</member>
<member name="P:Performance.DtoModels.PerAttendanceIssueDto.PersonnelNumber"> <member name="P:Performance.DtoModels.PerAttendanceIssueDto.PersonnelNumber">
<summary> <summary>
工号 工号
...@@ -2928,11 +2923,6 @@ ...@@ -2928,11 +2923,6 @@
核算单元 核算单元
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.Department">
<summary>
科室名称
</summary>
</member>
<member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.PersonnelNumber"> <member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.PersonnelNumber">
<summary> <summary>
工号 工号
...@@ -3108,6 +3098,16 @@ ...@@ -3108,6 +3098,16 @@
是否附带上次绩效 0 不附带 1 附带 是否附带上次绩效 0 不附带 1 附带
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.AttendanceStatistics.Code">
<summary>
核算单元编码
</summary>
</member>
<member name="P:Performance.DtoModels.AttendanceStatistics.AllotID">
<summary>
</summary>
</member>
<member name="P:Performance.DtoModels.AttendanceStatistics.UnitType"> <member name="P:Performance.DtoModels.AttendanceStatistics.UnitType">
<summary> <summary>
核算组别 核算组别
......
...@@ -6138,11 +6138,6 @@ ...@@ -6138,11 +6138,6 @@
人员类别 人员类别
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.Entity.per_attendance_issue.Department">
<summary>
科室名称
</summary>
</member>
<member name="P:Performance.EntityModels.Entity.per_attendance_issue.AccountingUnit"> <member name="P:Performance.EntityModels.Entity.per_attendance_issue.AccountingUnit">
<summary> <summary>
核算单元 核算单元
......
...@@ -14,9 +14,9 @@ public PerAttendanceIssueDto() ...@@ -14,9 +14,9 @@ public PerAttendanceIssueDto()
{ } { }
public PerAttendanceIssueDto(AttendanceStatistics item) public PerAttendanceIssueDto(AttendanceStatistics item)
{ {
Code = item.Code;
UnitType = item.UnitType; UnitType = item.UnitType;
AccountingUnit = item.AccountingUnit; AccountingUnit = item.AccountingUnit;
Department = item.Department;
PersonnelNumber = item.PersonnelNumber; PersonnelNumber = item.PersonnelNumber;
PersonnelName = item.PersonnelName; PersonnelName = item.PersonnelName;
BeginDate = item.BeginDate; BeginDate = item.BeginDate;
...@@ -31,9 +31,9 @@ public PerAttendanceIssueDto(AttendanceStatistics item) ...@@ -31,9 +31,9 @@ public PerAttendanceIssueDto(AttendanceStatistics item)
public PerAttendanceIssueDto(per_attendance_issue item) public PerAttendanceIssueDto(per_attendance_issue item)
{ {
Code = item.Code;
UnitType = item.UnitType; UnitType = item.UnitType;
AccountingUnit = item.AccountingUnit; AccountingUnit = item.AccountingUnit;
Department = item.Department;
PersonnelNumber = item.PersonnelNumber; PersonnelNumber = item.PersonnelNumber;
PersonnelName = item.PersonnelName; PersonnelName = item.PersonnelName;
BeginDate = item.BeginDate; BeginDate = item.BeginDate;
...@@ -48,7 +48,7 @@ public PerAttendanceIssueDto(per_attendance_issue item) ...@@ -48,7 +48,7 @@ public PerAttendanceIssueDto(per_attendance_issue item)
//public int HospitalId { get; set; } //医院Id //public int HospitalId { get; set; } //医院Id
//public int AllotId { get; set; } //绩效Id //public int AllotId { get; set; } //绩效Id
//public string Code { get; set; } //核算单元编码 public string Code { get; set; } //核算单元编码
/// <summary> /// <summary>
/// 人员类别 /// 人员类别
/// </summary> /// </summary>
...@@ -58,10 +58,6 @@ public PerAttendanceIssueDto(per_attendance_issue item) ...@@ -58,10 +58,6 @@ public PerAttendanceIssueDto(per_attendance_issue item)
/// </summary> /// </summary>
public string AccountingUnit { get; set; } public string AccountingUnit { get; set; }
/// <summary> /// <summary>
/// 科室名称
/// </summary>
public string Department { get; set; }
/// <summary>
/// 工号 /// 工号
/// </summary> /// </summary>
public string PersonnelNumber { get; set; } public string PersonnelNumber { get; set; }
......
...@@ -30,10 +30,6 @@ public class AttendanceAuditDetail ...@@ -30,10 +30,6 @@ public class AttendanceAuditDetail
/// </summary> /// </summary>
public string AccountingUnit { get; set; } public string AccountingUnit { get; set; }
/// <summary> /// <summary>
/// 科室名称
/// </summary>
public string Department { get; set; }
/// <summary>
/// 工号 /// 工号
/// </summary> /// </summary>
public string PersonnelNumber { get; set; } public string PersonnelNumber { get; set; }
......
...@@ -5,6 +5,13 @@ namespace Performance.DtoModels ...@@ -5,6 +5,13 @@ namespace Performance.DtoModels
{ {
public class AttendanceStatistics public class AttendanceStatistics
{ {
/// <summary>
/// 核算单元编码
/// </summary>
public string Code { get; set; }
/// <summary>
///
/// </summary>
public int AllotID { get; set; } public int AllotID { get; set; }
/// <summary> /// <summary>
/// 核算组别 /// 核算组别
......
...@@ -29,10 +29,10 @@ public class per_attendance_issue ...@@ -29,10 +29,10 @@ public class per_attendance_issue
/// 人员类别 /// 人员类别
/// </summary> /// </summary>
public string UnitType { get; set; } public string UnitType { get; set; }
/// <summary> ///// <summary>
/// 科室名称 ///// 科室名称
/// </summary> ///// </summary>
public string Department { get; set; } //public string Department { get; set; }
/// <summary> /// <summary>
/// 核算单元 /// 核算单元
/// </summary> /// </summary>
......
...@@ -716,6 +716,7 @@ public ApiResponse<List<AttendanceStatistics>> GetAttendanceStatistics(int allot ...@@ -716,6 +716,7 @@ public ApiResponse<List<AttendanceStatistics>> GetAttendanceStatistics(int allot
BeginDate = begDate, BeginDate = begDate,
EndDate = endDate.AddDays(days), EndDate = endDate.AddDays(days),
//Detial = new List<AttendanceStatisticsDetial>() //Detial = new List<AttendanceStatisticsDetial>()
Code = "",
}; };
statistics.Add(stat); statistics.Add(stat);
} }
...@@ -760,6 +761,14 @@ public ApiResponse<List<AttendanceStatistics>> GetAttendanceStatistics(int allot ...@@ -760,6 +761,14 @@ public ApiResponse<List<AttendanceStatistics>> GetAttendanceStatistics(int allot
int vacationesDays = stat.Detial.Where(w => !w.Remark.Contains("不核减")).Sum(w => w.Value); int vacationesDays = stat.Detial.Where(w => !w.Remark.Contains("不核减")).Sum(w => w.Value);
stat.AttendanceDays = SplitEveryDay(stat.BeginDate, stat.EndDate).Where(date => date >= stat.BeginDate && date <= stat.EndDate).Count() - vacationesDays; stat.AttendanceDays = SplitEveryDay(stat.BeginDate, stat.EndDate).Where(date => date >= stat.BeginDate && date <= stat.EndDate).Count() - vacationesDays;
} }
var cofaccounting = cofaccountingRepository.GetEntities(g => g.AllotId == allotId);
foreach (var item in statistics)
{
var code = cofaccounting.FirstOrDefault(w => w.UnitType == item.UnitType && w.AccountingUnit == item.AccountingUnit);
item.Code = code == null ? "" : code.Code;
}
return new ApiResponse<List<AttendanceStatistics>>(ResponseType.OK, "", statistics); return new ApiResponse<List<AttendanceStatistics>>(ResponseType.OK, "", statistics);
} }
#region 考勤下发 #region 考勤下发
...@@ -784,7 +793,7 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId, string unit ...@@ -784,7 +793,7 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId, string unit
RejectCount = w.Count(p => p.State == (int)Attendance.State.驳回), RejectCount = w.Count(p => p.State == (int)Attendance.State.驳回),
OperationUser = w.OrderByDescending(o => o.ConfirmTime).Select(s => s.ConfirmUser).FirstOrDefault(), OperationUser = w.OrderByDescending(o => o.ConfirmTime).Select(s => s.ConfirmUser).FirstOrDefault(),
OperationTime = w.OrderByDescending(o => o.ConfirmTime).Select(s => s.ConfirmTime).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();
...@@ -800,15 +809,19 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId, string unit ...@@ -800,15 +809,19 @@ 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, string searchTxet, 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).ToList(); var issues = perforPerAttendanceIssueRepository.GetEntities(w => w.AllotId == allotId).OrderBy(w=>w.PersonnelNumber).ToList();
if (!string.IsNullOrEmpty(unitType)) if (!string.IsNullOrEmpty(unitType))
issues = issues.Where(w => w.UnitType.Contains(unitType)).ToList(); issues = issues.Where(w => w.UnitType.Contains(unitType)).ToList();
if (!string.IsNullOrEmpty(accountingUnit)) if (!string.IsNullOrEmpty(accountingUnit))
issues = issues.Where(w => w.AccountingUnit.Contains(accountingUnit)).ToList(); issues = issues.Where(w => w.AccountingUnit.Contains(accountingUnit)).ToList();
if (!string.IsNullOrEmpty(searchTxet))
issues = issues.Where(w => w.PersonnelName.Contains(searchTxet) || w.PersonnelNumber.Contains(searchTxet)).ToList();
var stateOrders = new int[] { (int)Attendance.State.未确认, (int)Attendance.State.驳回, (int)Attendance.State.确认 };
var items = issues.Select(w => new AttendanceAuditDetail var items = issues.Select(w => new AttendanceAuditDetail
{ {
AttendanceIsueId = w.Id, AttendanceIsueId = w.Id,
...@@ -816,7 +829,6 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string ...@@ -816,7 +829,6 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string
Code = w.Code, Code = w.Code,
UnitType = w.UnitType, UnitType = w.UnitType,
AccountingUnit = w.AccountingUnit, AccountingUnit = w.AccountingUnit,
Department = w.Department,
PersonnelName = w.PersonnelName, PersonnelName = w.PersonnelName,
PersonnelNumber = w.PersonnelNumber, PersonnelNumber = w.PersonnelNumber,
BeginDate = w.BeginDate, BeginDate = w.BeginDate,
...@@ -829,7 +841,8 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string ...@@ -829,7 +841,8 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string
ConfirmUser = w.ConfirmUser, ConfirmUser = w.ConfirmUser,
ConfirmTime = w.ConfirmTime, ConfirmTime = w.ConfirmTime,
Remarks = w.Remarks, Remarks = w.Remarks,
}).OrderBy(w => w.PersonnelNumber).ToList(); }).OrderBy(w => Array.IndexOf(stateOrders, w.State)).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("当前用户不存在");
...@@ -880,32 +893,16 @@ public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allot ...@@ -880,32 +893,16 @@ public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allot
{ {
var statistics = GetAttendanceStatistics(allotId, userid).Data; var statistics = GetAttendanceStatistics(allotId, userid).Data;
var issues = perforPerAttendanceIssueRepository.GetEntities(w => w.AllotId == allotId); var issues = perforPerAttendanceIssueRepository.GetEntities(w => w.AllotId == allotId);
var issuePersonnelNumber = issues.Select(s => s.PersonnelNumber);
var statisticPersonnelNumber = statistics.Select(s => s.PersonnelNumber);
//新增(查询页面有实表没有的数据)
var xzStatistics = statistics.Where(w => !issuePersonnelNumber.Contains(w.PersonnelNumber));
//修改(查询数据)
var xgStatistics = statistics.Where(w => issuePersonnelNumber.Contains(w.PersonnelNumber));
//删除(删除页面没有的数据) //删除(删除页面没有的数据)
var statisticPersonnelNumber = statistics.Select(s => s.PersonnelNumber);
var scStatistics = issues.Where(w => !statisticPersonnelNumber.Contains(w.PersonnelNumber)).ToList(); var scStatistics = issues.Where(w => !statisticPersonnelNumber.Contains(w.PersonnelNumber)).ToList();
var issuedates = new List<PerAttendanceIssueDto>(); var issuedates = new List<PerAttendanceIssueDto>();
if (xzStatistics.Any())
{
var issuedate = xzStatistics.Select(item =>
{
return new PerAttendanceIssueDto(item);
});
issuedates.AddRange(issuedate.ToArray());
}
if (xgStatistics.Any())
{
Func<per_attendance_issue, AttendanceStatistics, bool> func = (issue, statistic) => Func<per_attendance_issue, AttendanceStatistics, bool> func = (issue, statistic) =>
{ {
var result = true; var result = true;
result = result =
issue.UnitType == statistic.UnitType && issue.UnitType == statistic.UnitType &&
issue.AccountingUnit == statistic.AccountingUnit && issue.AccountingUnit == statistic.AccountingUnit &&
issue.Department == statistic.Department &&
issue.BeginDate == statistic.BeginDate && issue.BeginDate == statistic.BeginDate &&
issue.EndDate == statistic.EndDate && issue.EndDate == statistic.EndDate &&
issue.AttendanceDays == statistic.AttendanceDays && issue.AttendanceDays == statistic.AttendanceDays &&
...@@ -913,10 +910,18 @@ public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allot ...@@ -913,10 +910,18 @@ public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allot
issue.NoDeductionDays == statistic.Detial.Where(w => !w.Remark.Equals("核减")).Sum(w => w.Value); issue.NoDeductionDays == statistic.Detial.Where(w => !w.Remark.Equals("核减")).Sum(w => w.Value);
return result; return result;
}; };
foreach (var personnelNumber in xgStatistics.Select(w => w.PersonnelNumber)) foreach (var item in statistics.Select(w => new { PersonnelNumber = w.PersonnelNumber, Code = w.Code }))
{
var staticPersonnel = statistics.FirstOrDefault(w => w.PersonnelNumber == item.PersonnelNumber && w.Code == item.Code);
var issuePersonnel = issues.FirstOrDefault(w => w.PersonnelNumber == item.PersonnelNumber && w.Code == item.Code);
if (issuePersonnel == null)
{
issuedates.Add(new PerAttendanceIssueDto(staticPersonnel));
}
else if (staticPersonnel != null && issuePersonnel != null)
{ {
var staticPersonnel = statistics.FirstOrDefault(w => w.PersonnelNumber == personnelNumber);
var issuePersonnel = issues.FirstOrDefault(w => w.PersonnelNumber == personnelNumber);
if (func(issuePersonnel, staticPersonnel)) continue; if (func(issuePersonnel, staticPersonnel)) continue;
issuedates.Add(new PerAttendanceIssueDto(staticPersonnel) issuedates.Add(new PerAttendanceIssueDto(staticPersonnel)
{ {
...@@ -932,7 +937,6 @@ public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allot ...@@ -932,7 +937,6 @@ public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allot
foreach (var report in scStatistics) foreach (var report in scStatistics)
issuedates.Add(new PerAttendanceIssueDto(report)); issuedates.Add(new PerAttendanceIssueDto(report));
} }
if (!string.IsNullOrEmpty(unitType)) if (!string.IsNullOrEmpty(unitType))
issuedates = issuedates.Where(w => w.UnitType.Contains(unitType)).ToList(); issuedates = issuedates.Where(w => w.UnitType.Contains(unitType)).ToList();
if (!string.IsNullOrEmpty(accountingUnit)) if (!string.IsNullOrEmpty(accountingUnit))
...@@ -953,7 +957,7 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str ...@@ -953,7 +957,7 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str
if (preConfirmationDisplay == null) if (preConfirmationDisplay == null)
return new ApiResponse(ResponseType.NotFound, "暂无下发数据"); return new ApiResponse(ResponseType.NotFound, "暂无下发数据");
var issues = perforPerAttendanceIssueRepository.GetEntities(w => w.AllotId == allotId); var issues = perforPerAttendanceIssueRepository.GetEntities(w => w.AllotId == allotId);
var cofaccounting = cofaccountingRepository.GetEntities(g => g.AllotId == allotId);
var insertIssues = preConfirmationDisplay.Where(w => w.OperationType == (int)Attendance.OperationType.新增).ToList(); var insertIssues = preConfirmationDisplay.Where(w => w.OperationType == (int)Attendance.OperationType.新增).ToList();
var updateIssues = preConfirmationDisplay.Where(w => w.OperationType == (int)Attendance.OperationType.修改).ToList(); var updateIssues = preConfirmationDisplay.Where(w => w.OperationType == (int)Attendance.OperationType.修改).ToList();
var deleteIssues = preConfirmationDisplay.Where(w => w.OperationType == (int)Attendance.OperationType.删除).Select(s => s.PersonnelNumber).ToList(); var deleteIssues = preConfirmationDisplay.Where(w => w.OperationType == (int)Attendance.OperationType.删除).Select(s => s.PersonnelNumber).ToList();
...@@ -961,15 +965,14 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str ...@@ -961,15 +965,14 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str
{ {
var inserts = insertIssues.Select(item => var inserts = insertIssues.Select(item =>
{ {
var code = cofaccounting.FirstOrDefault(w => w.UnitType == item.UnitType && w.AccountingUnit == item.AccountingUnit);
return new per_attendance_issue() return new per_attendance_issue()
{ {
AllotId = allotId, AllotId = allotId,
HospitalId = allot.HospitalId, HospitalId = allot.HospitalId,
Code = code == null ? "" : code.Code, Code = item.Code,
UnitType = item.UnitType, UnitType = item.UnitType,
AccountingUnit = item.AccountingUnit, AccountingUnit = item.AccountingUnit,
Department = item.Department,
PersonnelNumber = item.PersonnelNumber, PersonnelNumber = item.PersonnelNumber,
PersonnelName = item.PersonnelName, PersonnelName = item.PersonnelName,
BeginDate = item.BeginDate, BeginDate = item.BeginDate,
...@@ -990,12 +993,10 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str ...@@ -990,12 +993,10 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str
List<per_attendance_issue> updateIssuedates = new List<per_attendance_issue>(); List<per_attendance_issue> updateIssuedates = new List<per_attendance_issue>();
foreach (var item in updateIssues) foreach (var item in updateIssues)
{ {
var code = cofaccounting.FirstOrDefault(w => w.UnitType == item.UnitType && w.AccountingUnit == item.AccountingUnit); var issuePersonnel = issues.FirstOrDefault(w => w.PersonnelNumber == item.PersonnelNumber&&w.Code==item.Code);
var issuePersonnel = issues.FirstOrDefault(w => w.PersonnelNumber == item.PersonnelNumber);
issuePersonnel.UnitType = item.UnitType; issuePersonnel.UnitType = item.UnitType;
issuePersonnel.AccountingUnit = item.AccountingUnit; issuePersonnel.AccountingUnit = item.AccountingUnit;
issuePersonnel.Department = item.Department; issuePersonnel.Code = item.Code;
issuePersonnel.Code = code == null ? "" : code.Code;
issuePersonnel.BeginDate = item.BeginDate; issuePersonnel.BeginDate = item.BeginDate;
issuePersonnel.EndDate = item.EndDate; issuePersonnel.EndDate = item.EndDate;
issuePersonnel.DeductionDays = item.DeductionDays; issuePersonnel.DeductionDays = item.DeductionDays;
......
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