Commit 47d6f28a by ruyun.zhang

添加考勤结果人员系数

parent 4882c1d5
...@@ -272,6 +272,11 @@ ...@@ -272,6 +272,11 @@
姓名 姓名
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.PerAttendanceIssueDto.PermanentStaff">
<summary>
人员系数
</summary>
</member>
<member name="P:Performance.DtoModels.PerAttendanceIssueDto.BeginDate"> <member name="P:Performance.DtoModels.PerAttendanceIssueDto.BeginDate">
<summary> <summary>
在科开始时间 在科开始时间
...@@ -2933,6 +2938,11 @@ ...@@ -2933,6 +2938,11 @@
姓名 姓名
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.PermanentStaff">
<summary>
人员系数
</summary>
</member>
<member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.BeginDate"> <member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.BeginDate">
<summary> <summary>
在科开始时间 在科开始时间
...@@ -3198,6 +3208,11 @@ ...@@ -3198,6 +3208,11 @@
姓名 姓名
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.AttendanceStatistics.PermanentStaff">
<summary>
人员系数
</summary>
</member>
<member name="P:Performance.DtoModels.AttendanceStatistics.BeginDate"> <member name="P:Performance.DtoModels.AttendanceStatistics.BeginDate">
<summary> <summary>
在科开始时间 在科开始时间
......
...@@ -6158,6 +6158,11 @@ ...@@ -6158,6 +6158,11 @@
姓名 姓名
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.Entity.per_attendance_issue.PermanentStaff">
<summary>
人员系数
</summary>
</member>
<member name="P:Performance.EntityModels.Entity.per_attendance_issue.BeginDate"> <member name="P:Performance.EntityModels.Entity.per_attendance_issue.BeginDate">
<summary> <summary>
在科开始时间 在科开始时间
...@@ -6995,7 +7000,7 @@ ...@@ -6995,7 +7000,7 @@
</member> </member>
<member name="P:Performance.EntityModels.per_employee.PermanentStaff"> <member name="P:Performance.EntityModels.per_employee.PermanentStaff">
<summary> <summary>
核算人 人员系
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.per_employee.EfficiencyNumber"> <member name="P:Performance.EntityModels.per_employee.EfficiencyNumber">
...@@ -9528,6 +9533,11 @@ ...@@ -9528,6 +9533,11 @@
姓名 姓名
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.Other.view_attendance.PermanentStaff">
<summary>
人员系数
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_attendance.AttendanceDate"> <member name="P:Performance.EntityModels.Other.view_attendance.AttendanceDate">
<summary> <summary>
考勤时间 考勤时间
......
...@@ -19,6 +19,7 @@ public PerAttendanceIssueDto(AttendanceStatistics item) ...@@ -19,6 +19,7 @@ public PerAttendanceIssueDto(AttendanceStatistics item)
AccountingUnit = item.AccountingUnit; AccountingUnit = item.AccountingUnit;
PersonnelNumber = item.PersonnelNumber; PersonnelNumber = item.PersonnelNumber;
PersonnelName = item.PersonnelName; PersonnelName = item.PersonnelName;
PermanentStaff = item.PermanentStaff;
BeginDate = item.BeginDate; BeginDate = item.BeginDate;
EndDate = item.EndDate; EndDate = item.EndDate;
DeductionDays = item.Detial.Where(w => !w.Remark.Contains("不核减")).Sum(w => w.Value); DeductionDays = item.Detial.Where(w => !w.Remark.Contains("不核减")).Sum(w => w.Value);
...@@ -36,6 +37,7 @@ public PerAttendanceIssueDto(per_attendance_issue item) ...@@ -36,6 +37,7 @@ public PerAttendanceIssueDto(per_attendance_issue item)
AccountingUnit = item.AccountingUnit; AccountingUnit = item.AccountingUnit;
PersonnelNumber = item.PersonnelNumber; PersonnelNumber = item.PersonnelNumber;
PersonnelName = item.PersonnelName; PersonnelName = item.PersonnelName;
PermanentStaff = item.PermanentStaff;
BeginDate = item.BeginDate; BeginDate = item.BeginDate;
EndDate = item.EndDate; EndDate = item.EndDate;
DeductionDays = item.DeductionDays; DeductionDays = item.DeductionDays;
...@@ -66,6 +68,10 @@ public PerAttendanceIssueDto(per_attendance_issue item) ...@@ -66,6 +68,10 @@ public PerAttendanceIssueDto(per_attendance_issue item)
/// </summary> /// </summary>
public string PersonnelName { get; set; } public string PersonnelName { get; set; }
/// <summary> /// <summary>
/// 人员系数
/// </summary>
public decimal? PermanentStaff { get; set; }
/// <summary>
/// 在科开始时间 /// 在科开始时间
/// </summary> /// </summary>
public DateTime? BeginDate { get; set; } public DateTime? BeginDate { get; set; }
......
...@@ -38,6 +38,10 @@ public class AttendanceAuditDetail ...@@ -38,6 +38,10 @@ public class AttendanceAuditDetail
/// </summary> /// </summary>
public string PersonnelName { get; set; } public string PersonnelName { get; set; }
/// <summary> /// <summary>
/// 人员系数
/// </summary>
public decimal PermanentStaff { get; set; }
/// <summary>
/// 在科开始时间 /// 在科开始时间
/// </summary> /// </summary>
public DateTime? BeginDate { get; set; } public DateTime? BeginDate { get; set; }
...@@ -85,7 +89,7 @@ public class AttendanceAuditDetails ...@@ -85,7 +89,7 @@ public class AttendanceAuditDetails
/// <summary> /// <summary>
/// 请假天数 /// 请假天数
/// </summary> /// </summary>
public int Value { get; set; } public object Value { get; set; }
/// <summary> /// <summary>
/// 考勤类型 /// 考勤类型
/// </summary> /// </summary>
......
...@@ -34,6 +34,10 @@ public class AttendanceStatistics ...@@ -34,6 +34,10 @@ public class AttendanceStatistics
/// </summary> /// </summary>
public string PersonnelName { get; set; } public string PersonnelName { get; set; }
/// <summary> /// <summary>
/// 人员系数
/// </summary>
public decimal? PermanentStaff { get; set; }
/// <summary>
/// 在科开始时间 /// 在科开始时间
/// </summary> /// </summary>
public DateTime BeginDate { get; set; } public DateTime BeginDate { get; set; }
......
...@@ -46,6 +46,10 @@ public class per_attendance_issue ...@@ -46,6 +46,10 @@ public class per_attendance_issue
/// </summary> /// </summary>
public string PersonnelName { get; set; } public string PersonnelName { get; set; }
/// <summary> /// <summary>
/// 人员系数
/// </summary>
public decimal? PermanentStaff { get; set; }
/// <summary>
/// 在科开始时间 /// 在科开始时间
/// </summary> /// </summary>
public DateTime? BeginDate { get; set; } public DateTime? BeginDate { get; set; }
......
...@@ -87,7 +87,7 @@ public class per_employee ...@@ -87,7 +87,7 @@ public class per_employee
public Nullable<int> AttendanceDay { get; set; } public Nullable<int> AttendanceDay { get; set; }
/// <summary> /// <summary>
/// 核算人 /// 人员系
/// </summary> /// </summary>
public Nullable<decimal> PermanentStaff { get; set; } public Nullable<decimal> PermanentStaff { get; set; }
......
...@@ -30,6 +30,10 @@ public class view_attendance ...@@ -30,6 +30,10 @@ public class view_attendance
/// </summary> /// </summary>
public string PersonnelName { get; set; } public string PersonnelName { get; set; }
/// <summary> /// <summary>
/// 人员系数
/// </summary>
public decimal? PermanentStaff { get; set; }
/// <summary>
/// 考勤时间 /// 考勤时间
/// </summary> /// </summary>
public DateTime AttendanceDate { get; set; } public DateTime AttendanceDate { get; set; }
......
using AutoMapper; using AutoMapper;
using GraphQL;
using MassTransit.Internals.Extensions;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Newtonsoft.Json; using Newtonsoft.Json;
using OfficeOpenXml; using OfficeOpenXml;
...@@ -12,6 +15,7 @@ ...@@ -12,6 +15,7 @@
using Performance.Repository.Repository; using Performance.Repository.Repository;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Dynamic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
...@@ -21,6 +25,7 @@ public class AttendanceService : IAutoInjection ...@@ -21,6 +25,7 @@ public class AttendanceService : IAutoInjection
{ {
private readonly IMapper mapper; private readonly IMapper mapper;
private readonly ILogger<AttendanceService> logger; private readonly ILogger<AttendanceService> logger;
private readonly DapperService _service;
private readonly PerforUserRepository _userRepository; private readonly PerforUserRepository _userRepository;
private readonly PerforPerallotRepository perforPerallotRepository; private readonly PerforPerallotRepository perforPerallotRepository;
private readonly PerforPerAttendanceRepository perforPerAttendanceRepository; private readonly PerforPerAttendanceRepository perforPerAttendanceRepository;
...@@ -35,6 +40,7 @@ public class AttendanceService : IAutoInjection ...@@ -35,6 +40,7 @@ public class AttendanceService : IAutoInjection
public AttendanceService( public AttendanceService(
IMapper mapper, IMapper mapper,
ILogger<AttendanceService> logger, ILogger<AttendanceService> logger,
DapperService service,
PerforUserRepository userRepository, PerforUserRepository userRepository,
PerforPerallotRepository perforPerallotRepository, PerforPerallotRepository perforPerallotRepository,
PerforPerAttendanceRepository perforPerAttendanceRepository, PerforPerAttendanceRepository perforPerAttendanceRepository,
...@@ -50,6 +56,7 @@ UserService userService ...@@ -50,6 +56,7 @@ UserService userService
{ {
this.mapper = mapper; this.mapper = mapper;
this.logger = logger; this.logger = logger;
_service = service;
_userRepository = userRepository; _userRepository = userRepository;
this.perforPerallotRepository = perforPerallotRepository; this.perforPerallotRepository = perforPerallotRepository;
this.perforPerAttendanceRepository = perforPerAttendanceRepository; this.perforPerAttendanceRepository = perforPerAttendanceRepository;
...@@ -784,6 +791,7 @@ public ApiResponse<List<AttendanceStatistics>> GetAttendanceStatistics(int allot ...@@ -784,6 +791,7 @@ public ApiResponse<List<AttendanceStatistics>> GetAttendanceStatistics(int allot
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,
PermanentStaff = attendances.ElementAt(i).PermanentStaff,
BeginDate = begDate, BeginDate = begDate,
EndDate = endDate.AddDays(days), EndDate = endDate.AddDays(days),
//Detial = new List<AttendanceStatisticsDetial>() //Detial = new List<AttendanceStatisticsDetial>()
...@@ -883,46 +891,45 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId, string unit ...@@ -883,46 +891,45 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId, string unit
// 科室确认详情(已下发结果展示列表) // 科室确认详情(已下发结果展示列表)
public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string unitType, string accountingUnit, string searchTxet, 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 vacationeData = perfoPperAttendanceVacationeRepository.GetEntities(t => t.AllotId == allotId) ?? new List<per_attendance_vacation>();
var issues = perforPerAttendanceIssueRepository.GetEntities(w => w.AllotId == allotId).OrderBy(w => w.PersonnelNumber).ToList();
if (!string.IsNullOrEmpty(unitType))
issues = issues.Where(w => w.UnitType.Contains(unitType)).ToList();
if (!string.IsNullOrEmpty(accountingUnit))
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
{
AttendanceIsueId = w.Id,
AllotId = w.AllotId,
Code = w.Code,
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,
ConfirmUser = w.ConfirmUser,
ConfirmTime = w.ConfirmTime,
Remarks = w.Remarks,
}).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("当前用户不存在");
if (userInfo?.URole == null) throw new NotImplementedException("当前用户暂未分配角色"); if (userInfo?.URole == null) throw new NotImplementedException("当前用户暂未分配角色");
var unitTypes = UnitTypeUtil.GetMaps(userInfo?.URole.Type ?? 0); var queryUnitTypes = new List<string>();
if (unitTypes?.Any() == true) string queryAccountingUnit = accountingUnit;
items = items.Where(w => w.AccountingUnit == userInfo.User.Department && UnitTypeUtil.Is(w.UnitType, unitTypes)).ToList(); string querySearchTxet = searchTxet;
var permissionUnitTypes = UnitTypeUtil.GetMaps(userInfo?.URole.Type ?? 0);
if (permissionUnitTypes?.Any() == true)
{
accountingUnit = userInfo.User.Department;
queryUnitTypes.AddRange(permissionUnitTypes);
}
else if (!string.IsNullOrEmpty(unitType))
{
queryUnitTypes.Add(unitType);
}
var names = typeof(per_attendance_issue).GetProperties().Select(w => w.Name);
var stateOrders = new int[] { (int)Attendance.State.未确认, (int)Attendance.State.驳回, (int)Attendance.State.确认 };
var issues = _service.QueryAttendanceIssue(allotId, queryUnitTypes, queryAccountingUnit, querySearchTxet);
List<AttendanceAuditDetail> items = new List<AttendanceAuditDetail>();
foreach (var isu in issues)
{
AttendanceAuditDetail item = JsonHelper.Deserialize<AttendanceAuditDetail>(JsonHelper.Serialize(isu));
item.Detial = new List<AttendanceAuditDetails>();
items.Add(item);
var dic = new RouteValueDictionary(isu);
foreach (var dicItem in dic.Where(w => !names.Any(name => name.Equals(w.Key, StringComparison.OrdinalIgnoreCase))))
{
item.Detial.Add(new AttendanceAuditDetails { Title = dicItem.Key, Remark = dicItem.Key, Value = dicItem.Value });
}
}
items = items.OrderBy(w => Array.IndexOf(stateOrders, w.State)).ToList();
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 vacationes = vacationeData var vacationes = vacationeData
.Where(w => w.BegDate > DateTime.MinValue && w.EndDate > DateTime.MinValue) .Where(w => w.BegDate > DateTime.MinValue && w.EndDate > DateTime.MinValue)
...@@ -935,7 +942,7 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string ...@@ -935,7 +942,7 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string
}); });
foreach (var stat in items) foreach (var stat in items)
{ {
stat.Detial = vacationes var detail = vacationes
.Where(w => w.PersonnelNumber == stat.PersonnelNumber) .Where(w => w.PersonnelNumber == stat.PersonnelNumber)
.Select(w => new AttendanceAuditDetails .Select(w => new AttendanceAuditDetails
{ {
...@@ -944,12 +951,11 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string ...@@ -944,12 +951,11 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string
Remark = w.Remark, Remark = w.Remark,
}) })
.ToList(); .ToList();
foreach (var item in types) foreach (var item in types)
{ {
if (!stat.Detial.Any(w => w.Title == item.AttendanceName)) if (!detail.Any(w => w.Title == item.AttendanceName))
{ {
stat.Detial.Add(new AttendanceAuditDetails detail.Add(new AttendanceAuditDetails
{ {
Title = item.AttendanceName, Title = item.AttendanceName,
Value = 0, Value = 0,
...@@ -957,6 +963,7 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string ...@@ -957,6 +963,7 @@ public ApiResponse<List<AttendanceAuditDetail>> AuditDetail(int allotId, string
}); });
} }
} }
stat.Detial.InsertRange(0, detail);
} }
return new ApiResponse<List<AttendanceAuditDetail>>(ResponseType.OK, items); return new ApiResponse<List<AttendanceAuditDetail>>(ResponseType.OK, items);
} }
...@@ -975,6 +982,7 @@ public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allot ...@@ -975,6 +982,7 @@ public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allot
result = result =
issue.UnitType == statistic.UnitType && issue.UnitType == statistic.UnitType &&
issue.AccountingUnit == statistic.AccountingUnit && issue.AccountingUnit == statistic.AccountingUnit &&
issue.PermanentStaff == statistic.PermanentStaff &&
issue.BeginDate == statistic.BeginDate && issue.BeginDate == statistic.BeginDate &&
issue.EndDate == statistic.EndDate && issue.EndDate == statistic.EndDate &&
issue.AttendanceDays == statistic.AttendanceDays && issue.AttendanceDays == statistic.AttendanceDays &&
...@@ -1037,7 +1045,6 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str ...@@ -1037,7 +1045,6 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str
{ {
var inserts = insertIssues.Select(item => var inserts = insertIssues.Select(item =>
{ {
return new per_attendance_issue() return new per_attendance_issue()
{ {
AllotId = allotId, AllotId = allotId,
...@@ -1047,6 +1054,7 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str ...@@ -1047,6 +1054,7 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str
AccountingUnit = item.AccountingUnit, AccountingUnit = item.AccountingUnit,
PersonnelNumber = item.PersonnelNumber, PersonnelNumber = item.PersonnelNumber,
PersonnelName = item.PersonnelName, PersonnelName = item.PersonnelName,
PermanentStaff = item.PermanentStaff,
BeginDate = item.BeginDate, BeginDate = item.BeginDate,
EndDate = item.EndDate, EndDate = item.EndDate,
DeductionDays = item.DeductionDays, DeductionDays = item.DeductionDays,
...@@ -1068,6 +1076,7 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str ...@@ -1068,6 +1076,7 @@ public ApiResponse IssueStatistics(int allotId, int userid, string realName, str
var issuePersonnel = issues.FirstOrDefault(w => w.PersonnelNumber == item.PersonnelNumber && w.Code == item.Code); var issuePersonnel = issues.FirstOrDefault(w => w.PersonnelNumber == item.PersonnelNumber && w.Code == item.Code);
issuePersonnel.UnitType = item.UnitType; issuePersonnel.UnitType = item.UnitType;
issuePersonnel.AccountingUnit = item.AccountingUnit; issuePersonnel.AccountingUnit = item.AccountingUnit;
issuePersonnel.PermanentStaff = item.PermanentStaff;
issuePersonnel.Code = item.Code; issuePersonnel.Code = item.Code;
issuePersonnel.BeginDate = item.BeginDate; issuePersonnel.BeginDate = item.BeginDate;
issuePersonnel.EndDate = item.EndDate; issuePersonnel.EndDate = item.EndDate;
......
...@@ -183,6 +183,7 @@ public static List<cof_alias> GetAllPersonnelTags(bool ownerQuery) ...@@ -183,6 +183,7 @@ public static List<cof_alias> GetAllPersonnelTags(bool ownerQuery)
new cof_alias{ Alias = "出勤天数", Name = nameof(per_employee.AttendanceDay), States = 1, SumStatus = 0, Sort = 14 }, new cof_alias{ Alias = "出勤天数", Name = nameof(per_employee.AttendanceDay), States = 1, SumStatus = 0, Sort = 14 },
new cof_alias{ Alias = "预留比例", Name = nameof(per_employee.ReservedRatio), States = 1, SumStatus = 0, Sort = 16 }, new cof_alias{ Alias = "预留比例", Name = nameof(per_employee.ReservedRatio), States = 1, SumStatus = 0, Sort = 16 },
new cof_alias{ Alias = "银行卡号", Name = nameof(per_employee.BankCard), States = 1, SumStatus = 0, Sort = 18 }, new cof_alias{ Alias = "银行卡号", Name = nameof(per_employee.BankCard), States = 1, SumStatus = 0, Sort = 18 },
new cof_alias{ Alias = "人员系数", Name = nameof(per_employee.PermanentStaff), States = 0, SumStatus = 0, Sort = 19 },
new cof_alias{ Alias = "备用01", Name = nameof(per_employee.Reserve01), States = 0, SumStatus = 0, Sort = 20 }, new cof_alias{ Alias = "备用01", Name = nameof(per_employee.Reserve01), States = 0, SumStatus = 0, Sort = 20 },
new cof_alias{ Alias = "备用02", Name = nameof(per_employee.Reserve02), States = 0, SumStatus = 0, Sort = 20 }, new cof_alias{ Alias = "备用02", Name = nameof(per_employee.Reserve02), States = 0, SumStatus = 0, Sort = 20 },
......
...@@ -434,5 +434,52 @@ public int UpdateAllotStates(int allotId, int states, string remark, int generat ...@@ -434,5 +434,52 @@ public int UpdateAllotStates(int allotId, int states, string remark, int generat
throw; throw;
} }
} }
/// <summary>
/// 查询考勤下发绩效视图(运行视图定义)
/// </summary>
/// <param name="allotId"></param>
/// <param name="unitType"></param>
/// <param name="accountingUnit"></param>
/// <param name="personnelName"></param>
/// <param name="personnelNumber"></param>
/// <returns></returns>
public IEnumerable<dynamic> QueryAttendanceIssue(int allotId, List<string> unitType, string accountingUnit, string personnelNameOrNumber)
{
try
{
using (var connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
{
if (connection.State != ConnectionState.Open) connection.Open();
string sql = $@"select * from view_attendance_issue where allotID = @allotId";
DynamicParameters parameters = new DynamicParameters();
parameters.Add("@allotId", allotId);
if (unitType?.Any() == true)
{
sql += " and unitType in @unitType";
parameters.Add("@unitType", unitType);
}
if (!string.IsNullOrEmpty(accountingUnit))
{
sql += " and accountingUnit like @accountingUnit";
parameters.Add("@accountingUnit", $"%{accountingUnit}%");
}
if (!string.IsNullOrEmpty(personnelNameOrNumber))
{
sql += " and (personnelNumber like @personnelNameOrNumber or personnelName like @personnelNameOrNumber)";
parameters.Add("@personnelNameOrNumber", $"%{personnelNameOrNumber}%");
}
return connection.Query(sql, parameters, commandTimeout: 60 * 60);
}
}
catch (Exception ex)
{
_logger.LogError($"SQL执行异常:{ex}");
throw;
}
}
} }
} }
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