FlexJobApi.Core/FlexJobApi.Core.xml
@@ -3828,6 +3828,11 @@ 任务Id </summary> </member> <member name="P:FlexJobApi.Core.ExportTaskCheckReceiveTaskUsersCommandModel.UserId"> <summary> Id </summary> </member> <member name="P:FlexJobApi.Core.ExportTaskCheckReceiveTaskUsersCommandModel.Name"> <summary> 姓名 @@ -7778,6 +7783,11 @@ 用户Id </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumeQuery.EnterpriseEmployeeId"> <summary> 灵工Id </summary> </member> <member name="T:FlexJobApi.Core.GetUserResumeQueryResult"> <summary> 查询用户简历-结果 FlexJobApi.Core/Models/FlexJobServer/TaskCheckReceive/Commands/ExportTaskCheckReceiveTaskUsersCommand.cs
@@ -1,4 +1,6 @@ using MediatR; using Newtonsoft.Json; using Swashbuckle.AspNetCore.Annotations; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -23,6 +25,12 @@ public class ExportTaskCheckReceiveTaskUsersCommandModel { /// <summary> /// Id /// </summary> [JsonIgnore, SwaggerIgnore] public Guid UserId { get; set; } /// <summary> /// 姓名 /// </summary> public string Name { get; set; } FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumeQuery.cs
@@ -21,6 +21,11 @@ /// 用户Id /// </summary> public Guid? UserId { get; set; } /// <summary> /// 灵工Id /// </summary> public Guid? EnterpriseEmployeeId { get; set; } } /// <summary> @@ -39,7 +44,7 @@ /// <summary> /// 用户Id /// </summary> public Guid Id { get; set; } public Guid? Id { get; set; } /// <summary> /// 完善度 FlexJobApi.Core/Utils/ExcelUtils/ExcelUtils.cs
@@ -47,6 +47,14 @@ var config = new OpenXmlConfiguration(); config.TableStyles = TableStyles.None; config.AutoFilter = false; config.FastMode = true; config.EnableAutoWidth = true; config.StyleOptions = new OpenXmlStyleOptions { WrapCellContents = false }; config.FreezeRowCount = 0; config.DynamicColumns = typeof(T).GetProperties().Select(it => { var propertyType = it.PropertyType; @@ -68,8 +76,12 @@ return model?.Description; } return v; } }, }; if (propertyType == typeof(DateTime)) { column.Format = "yyyy-MM-dd HH:mm:ss"; } return column; }).ToArray(); var stream = new MemoryStream(); FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Commands/TaskCheckReceiveCommandHandler.cs
@@ -168,6 +168,7 @@ .Where(it => it.TaskInfoUser.TaskInfoId == request.Id) .Select(it => new ExportTaskCheckReceiveTaskUsersCommandModel { UserId = it.TaskInfoUser.EnterpriseEmployee.UserId!.Value, Name = it.TaskInfoUser.EnterpriseEmployee.User.Name, Identity = it.TaskInfoUser.EnterpriseEmployee.User.Identity, ContactPhoneNumber = it.TaskInfoUser.EnterpriseEmployee.User.ContactPhoneNumber, @@ -177,6 +178,26 @@ Code = "456" }) .ToListAsync(cancellationToken); if (models.IsNotNull()) { var userIds = models.DistinctSelect(it => it.UserId); var bankCards = await repTaskInfoUserSubmit.Change<UserBankCard>().AsQueryable().AsNoTracking() .Where(it => userIds.Contains(it.UserId)) .Select(it => new { it.UserId, it.Bank, it.Code }) .ToListAsync(cancellationToken); foreach (var model in models) { var bankCard = bankCards.FirstOrDefault(it => it.UserId == model.UserId); model.Bank = bankCard?.Bank; model.Code = bankCard?.Code; } } var url = await models.ExportExcelToOSS("TaskCheckReceive/Export", "验收记录.xlsx"); url = AliyunOSSUtils.GetUrl(url); return url; FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs
@@ -115,20 +115,49 @@ { request.UserId = logier.Id; } if (request.UserId == null) throw Oops.Oh(EnumErrorCodeType.s400, "请选择用户"); var model = await rep.AsQueryable().AsNoTracking() .Where(it => it.Id == request.UserId) .GetDetail<User, GetUserResumeQueryResult>(cancellationToken); model.TaskInfoUsers = model.TaskInfoUsers.Where(it => it.SignContractTime.HasValue).ToList(); model.TaskCount = await rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking() .Where(it => it.EnterpriseEmployee.UserId == model.Id && it.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass) .CountAsync(); if (logier.Type == EnumUserType.Enterprise) EnterpriseEmployee? enterpriseEmployee = null; if (logier.Type == EnumUserType.Enterprise && request.UserId == null && request.EnterpriseEmployeeId.HasValue) { model.IsCollected = await rep.Change<EnterpriseUserCollect>().AsQueryable().AsNoTracking() .Where(it => it.EnterpriseId == logier.EnterpriseId && it.UserId == model.Id) .Select(it => it.IsCollected) .FirstOrDefaultAsync(); enterpriseEmployee = await rep.Change<EnterpriseEmployee>().AsQueryable().AsNoTracking() .Where(it => it.EnterpriseId == logier.EnterpriseId && it.Id == request.EnterpriseEmployeeId) .FirstOrDefaultAsync(cancellationToken); if (enterpriseEmployee == null) throw Oops.Oh(EnumErrorCodeType.s404, "该灵工"); request.UserId = enterpriseEmployee.UserId; } else if (request.UserId == null) throw Oops.Oh(EnumErrorCodeType.s400, "请选择用户"); GetUserResumeQueryResult? model = null; if (request.UserId.HasValue) { model = await rep.AsQueryable().AsNoTracking() .Where(it => it.Id == request.UserId) .GetDetail<User, GetUserResumeQueryResult>(cancellationToken); } else if (enterpriseEmployee != null) { model = new GetUserResumeQueryResult { Name = enterpriseEmployee.Name, ContactPhoneNumber = enterpriseEmployee.ContactPhoneNumber, Identity = enterpriseEmployee.Identity, Gender = enterpriseEmployee.Gender, Age = enterpriseEmployee.Age, }; } if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "该信息"); model.TaskInfoUsers = model.TaskInfoUsers.Where(it => it.SignContractTime.HasValue).ToList(); if (model.Id.HasValue) { model.TaskCount = await rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking() .Where(it => it.EnterpriseEmployee.UserId == model.Id && it.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass) .CountAsync(); if (logier.Type == EnumUserType.Enterprise) { model.IsCollected = await rep.Change<EnterpriseUserCollect>().AsQueryable().AsNoTracking() .Where(it => it.EnterpriseId == logier.EnterpriseId && it.UserId == model.Id) .Select(it => it.IsCollected) .FirstOrDefaultAsync(); } } if (model.CityCode.IsNotNull()) {