sunpengfei
2025-08-13 d4f337f31e614fa3ed90d6a0fad10831b4e91a49
feat:开发
4个文件已添加
1 文件已重命名
7个文件已修改
758 ■■■■ 已修改文件
FlexJobApi.Core/Enums/Common/EnumResourceController.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Enums/Tasks/EnumTaskUserSubmitCheckReceiveStatus.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/FlexJobApi.Core.xml 298 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/FlexJobServer/TaskCheckReceive/Queries/GetCheckReceiveTaskQuery.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/FlexJobServer/TaskCheckReceive/Queries/GetCheckReceiveTaskUserQuery.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/FlexJobServer/TaskCheckReceive/Queries/GetCheckReceiveTaskUserSubmitsQuery.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Utils/PasswordUtils/PasswordUtils.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskUserSubmitQueryHandler.cs 184 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/Enterprises/Commands/EnterpriseCommandHandler.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Enums/Common/EnumResourceController.cs
@@ -26,6 +26,11 @@
        /// </summary>
        [ResourceController(Service = EnumResourceService.FlexJobServer)]
        TaskUser,
        /// <summary>
        /// 任务验收
        /// </summary>
        [ResourceController(Service = EnumResourceService.FlexJobServer)]
        TaskCheckReceive,
        /// <summary>
        /// 用户认证
FlexJobApi.Core/Enums/Tasks/EnumTaskUserSubmitCheckReceiveStatus.cs
@@ -14,11 +14,11 @@
        /// <summary>
        /// 待提交
        /// </summary>
        Submit = 10,
        WaitSubmit = 10,
        /// <summary>
        /// 待验收
        /// </summary>
        Wait = 20,
        WaitCheckReceive = 20,
        /// <summary>
        /// 验收通过
        /// </summary>
FlexJobApi.Core/FlexJobApi.Core.xml
@@ -2362,6 +2362,11 @@
            任务人员
            </summary>
        </member>
        <member name="F:FlexJobApi.Core.EnumResourceController.TaskCheckReceive">
            <summary>
            任务验收
            </summary>
        </member>
        <member name="F:FlexJobApi.Core.EnumResourceController.Auth">
            <summary>
            用户认证
@@ -2762,12 +2767,12 @@
            任务验收状态
            </summary>
        </member>
        <member name="F:FlexJobApi.Core.EnumTaskUserSubmitCheckReceiveStatus.Submit">
        <member name="F:FlexJobApi.Core.EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit">
            <summary>
            待提交
            </summary>
        </member>
        <member name="F:FlexJobApi.Core.EnumTaskUserSubmitCheckReceiveStatus.Wait">
        <member name="F:FlexJobApi.Core.EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive">
            <summary>
            待验收
            </summary>
@@ -3716,6 +3721,182 @@
        <member name="P:FlexJobApi.Core.SaveScheduleJobDetailCommand.Cron">
            <summary>
            Cron表达式
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetCheckReceiveTaskQuery">
            <summary>
            查询验收任务分页列表
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQuery.DateBegin">
            <summary>
            验收日期-最早时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQuery.DateEnd">
            <summary>
            验收日期-最晚时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQuery.CheckReceiveStatus">
            <summary>
            验收状态
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetCheckReceiveTaskQueryResult">
            <summary>
            查询验收任务分页列表-结果
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetCheckReceiveTaskQueryResultItem">
            <summary>
            查询验收任务分页列表-结果-项
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQueryResultItem.Id">
            <summary>
            任务Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQueryResultItem.Name">
            <summary>
            任务名称
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQueryResultItem.BeginTime">
            <summary>
            任务开始时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQueryResultItem.EndTime">
            <summary>
            任务结束时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQueryResultItem.AddressName">
            <summary>
            任务地点名称
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserQuery">
            <summary>
            查询验收分页列表
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQuery.TaskInfoId">
            <summary>
            任务Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQuery.Keywords">
            <summary>
            关键字
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQuery.DateBegin">
            <summary>
            验收日期-最早时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQuery.DateEnd">
            <summary>
            验收日期-最晚时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQuery.CheckReceiveStatus">
            <summary>
            验收状态
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResult">
            <summary>
            查询验收任务分页列表-结果
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem">
            <summary>
            查询验收任务分页列表-结果-项
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.Id">
            <summary>
            任务Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.TaskName">
            <summary>
            任务名称
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.BeginTime">
            <summary>
            任务开始时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.EndTime">
            <summary>
            任务结束时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.AddressName">
            <summary>
            任务地点名称
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.Name">
            <summary>
            姓名
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.Identity">
            <summary>
            身份证号
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.Gender">
            <summary>
            性别
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.Age">
            <summary>
            年龄
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.ContactPhoneNumber">
            <summary>
            手机号
            </summary>
            <remarks>联系电话</remarks>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.LastSubmitTime">
            <summary>
            提交时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.CheckReceiveStatus">
            <summary>
            验收状态
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserSubmitsQuery">
            <summary>
            查询验收详情
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserSubmitsQuery.Id">
            <summary>
            任务Id
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserSubmitsQueryResult">
            <summary>
            查询验收详情-结果
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserSubmitsQueryResultItem">
            <summary>
            查询验收详情-结果
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.DeleteTaskInfoCommand">
@@ -4716,107 +4897,6 @@
        <member name="P:FlexJobApi.Core.GetArrangeTaskUsersQueryResultItem.ArrangeStatus">
            <summary>
            安排状态
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQuery">
            <summary>
            查询验收分页列表
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQuery.TaskInfoId">
            <summary>
            任务Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQuery.Keywords">
            <summary>
            关键字
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQuery.DateBegin">
            <summary>
            验收日期-最早时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQuery.DateEnd">
            <summary>
            验收日期-最晚时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQuery.CheckReceiveStatus">
            <summary>
            验收状态
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResult">
            <summary>
            查询验收任务分页列表-结果
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem">
            <summary>
            查询验收任务分页列表-结果-项
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.Id">
            <summary>
            任务Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.TaskName">
            <summary>
            任务名称
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.BeginTime">
            <summary>
            任务开始时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.EndTime">
            <summary>
            任务结束时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.AddressName">
            <summary>
            任务地点名称
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.Name">
            <summary>
            姓名
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.Identity">
            <summary>
            身份证号
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.Gender">
            <summary>
            性别
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.Age">
            <summary>
            年龄
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.ContactPhoneNumber">
            <summary>
            手机号
            </summary>
            <remarks>联系电话</remarks>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.LastSubmitTime">
            <summary>
            提交时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.CheckReceiveStatus">
            <summary>
            验收状态
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetTaskUsersQuery">
@@ -8514,6 +8594,18 @@
            </summary>
            <returns></returns>
        </member>
        <member name="T:FlexJobApi.Core.PasswordUtils">
            <summary>
            密码工具
            </summary>
        </member>
        <member name="M:FlexJobApi.Core.PasswordUtils.EncryptPassword(System.String)">
            <summary>
            加密
            </summary>
            <param name="password"></param>
            <returns></returns>
        </member>
        <member name="P:FlexJobApi.Core.TokenDataModel.AccessToken">
            <summary>
            用户访问令牌
FlexJobApi.Core/Models/FlexJobServer/TaskCheckReceive/Queries/GetCheckReceiveTaskQuery.cs
New file
@@ -0,0 +1,70 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.Core
{
    /// <summary>
    /// 查询验收任务分页列表
    /// </summary>
    [Resource([EnumResourceController.TaskCheckReceive])]
    public class GetCheckReceiveTaskQuery : PagedListQuery<GetCheckReceiveTaskQueryResult, GetCheckReceiveTaskQueryResultItem>
    {
        /// <summary>
        /// 验收日期-最早时间
        /// </summary>
        public DateTime? DateBegin { get; set; }
        /// <summary>
        /// 验收日期-最晚时间
        /// </summary>
        public DateTime? DateEnd { get; set; }
        /// <summary>
        /// 验收状态
        /// </summary>
        public EnumTaskCheckReceiveStatus? CheckReceiveStatus { get; set; }
    }
    /// <summary>
    /// 查询验收任务分页列表-结果
    /// </summary>
    public class GetCheckReceiveTaskQueryResult : PagedListQueryResult<GetCheckReceiveTaskQueryResultItem>
    {
    }
    /// <summary>
    /// 查询验收任务分页列表-结果-项
    /// </summary>
    public class GetCheckReceiveTaskQueryResultItem
    {
        /// <summary>
        /// 任务Id
        /// </summary>
        public Guid Id { get; set; }
        /// <summary>
        /// 任务名称
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 任务开始时间
        /// </summary>
        public DateTime BeginTime { get; set; }
        /// <summary>
        /// 任务结束时间
        /// </summary>
        public DateTime EndTime { get; set; }
        /// <summary>
        /// 任务地点名称
        /// </summary>
        public string AddressName { get; set; }
    }
}
FlexJobApi.Core/Models/FlexJobServer/TaskCheckReceive/Queries/GetCheckReceiveTaskUserQuery.cs
File was renamed from FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetCheckReceiveTaskUserInfosQuery.cs
@@ -10,8 +10,8 @@
    /// <summary>
    /// 查询验收分页列表
    /// </summary>
    [Resource([EnumResourceController.TaskUser])]
    public class GetCheckReceiveTaskUserInfosQuery : PagedListQuery<GetCheckReceiveTaskUserInfosQueryResult, GetCheckReceiveTaskUserInfosQueryResultItem>
    [Resource([EnumResourceController.TaskCheckReceive])]
    public class GetCheckReceiveTaskUserQuery : PagedListQuery<GetCheckReceiveTaskUserQueryResult, GetCheckReceiveTaskUserQueryResultItem>
    {
        /// <summary>
        /// 任务Id
@@ -42,7 +42,7 @@
    /// <summary>
    /// 查询验收任务分页列表-结果
    /// </summary>
    public class GetCheckReceiveTaskUserInfosQueryResult : PagedListQueryResult<GetCheckReceiveTaskUserInfosQueryResultItem>
    public class GetCheckReceiveTaskUserQueryResult : PagedListQueryResult<GetCheckReceiveTaskUserQueryResultItem>
    {
    }
@@ -50,7 +50,7 @@
    /// <summary>
    /// 查询验收任务分页列表-结果-项
    /// </summary>
    public class GetCheckReceiveTaskUserInfosQueryResultItem
    public class GetCheckReceiveTaskUserQueryResultItem
    {
        /// <summary>
        /// 任务Id
FlexJobApi.Core/Models/FlexJobServer/TaskCheckReceive/Queries/GetCheckReceiveTaskUserSubmitsQuery.cs
New file
@@ -0,0 +1,37 @@
using MediatR;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.Core
{
    /// <summary>
    /// 查询验收详情
    /// </summary>
    [Resource([EnumResourceController.TaskCheckReceive])]
    public class GetCheckReceiveTaskUserSubmitsQuery : PagedListQuery<GetCheckReceiveTaskUserSubmitsQueryResult, GetCheckReceiveTaskUserSubmitsQueryResultItem>
    {
        /// <summary>
        /// 任务Id
        /// </summary>
        public Guid Id { get; set; }
    }
    /// <summary>
    /// 查询验收详情-结果
    /// </summary>
    public class GetCheckReceiveTaskUserSubmitsQueryResult : PagedListQueryResult<GetCheckReceiveTaskUserSubmitsQueryResultItem>
    {
    }
    /// <summary>
    /// 查询验收详情-结果
    /// </summary>
    public class GetCheckReceiveTaskUserSubmitsQueryResultItem
    {
    }
}
FlexJobApi.Core/Utils/PasswordUtils/PasswordUtils.cs
New file
@@ -0,0 +1,26 @@
using Azure.Core;
using Furion.DataEncryption;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.Core
{
    /// <summary>
    /// 密码工具
    /// </summary>
    public static class PasswordUtils
    {
        /// <summary>
        /// 加密
        /// </summary>
        /// <param name="password"></param>
        /// <returns></returns>
        public static string EncryptPassword(this string password)
        {
            return PBKDF2Encryption.Encrypt(MD5Encryption.Encrypt(password));
        }
    }
}
FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml
@@ -4,6 +4,32 @@
        <name>FlexJobApi.FlexJobServer.Application</name>
    </assembly>
    <members>
        <member name="T:FlexJobApi.FlexJobServer.Application.TaskUserSubmitQueryHandler">
            <summary>
            任务人员查询处理器
            </summary>
        </member>
        <member name="M:FlexJobApi.FlexJobServer.Application.TaskUserSubmitQueryHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.TaskInfo},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.TaskInfoUser})">
            <summary>
            任务人员查询处理器
            </summary>
        </member>
        <member name="M:FlexJobApi.FlexJobServer.Application.TaskUserSubmitQueryHandler.Handle(FlexJobApi.Core.GetCheckReceiveTaskQuery,System.Threading.CancellationToken)">
            <summary>
            查询验收任务分页列表
            </summary>
            <param name="request"></param>
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="M:FlexJobApi.FlexJobServer.Application.TaskUserSubmitQueryHandler.Handle(FlexJobApi.Core.GetCheckReceiveTaskUserQuery,System.Threading.CancellationToken)">
            <summary>
            查询验收分页列表
            </summary>
            <param name="request"></param>
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="T:FlexJobApi.FlexJobServer.Application.TaskInfoCommandHandler">
            <summary>
            任务命令处理器
@@ -170,14 +196,6 @@
        <member name="M:FlexJobApi.FlexJobServer.Application.TaskUserQueryHandler.Handle(FlexJobApi.Core.GetArrangeTaskUsersQuery,System.Threading.CancellationToken)">
            <summary>
            B端查询人员安排分页列表信息
            </summary>
            <param name="request"></param>
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="M:FlexJobApi.FlexJobServer.Application.TaskUserQueryHandler.Handle(FlexJobApi.Core.GetCheckReceiveTaskUserInfosQuery,System.Threading.CancellationToken)">
            <summary>
            查询验收分页列表
            </summary>
            <param name="request"></param>
            <param name="cancellationToken"></param>
FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskUserSubmitQueryHandler.cs
New file
@@ -0,0 +1,184 @@
using FlexJobApi.Core;
using Furion.DatabaseAccessor;
using Furion.FriendlyException;
using Mapster;
using MediatR;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.FlexJobServer.Application
{
    /// <summary>
    /// 任务人员查询处理器
    /// </summary>
    public class TaskUserSubmitQueryHandler(
        IRepository<TaskInfo> repTaskInfo,
        IRepository<TaskInfoUser> repTaskInfoUser) :
        IRequestHandler<GetCheckReceiveTaskQuery, GetCheckReceiveTaskQueryResult>,
        IRequestHandler<GetCheckReceiveTaskUserQuery, GetCheckReceiveTaskUserQueryResult>
    {
        private readonly IRepository<TaskInfo> repTaskInfo = repTaskInfo;
        private readonly IRepository<TaskInfoUser> repTaskInfoUser = repTaskInfoUser;
        /// <summary>
        /// 查询验收任务分页列表
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task<GetCheckReceiveTaskQueryResult> Handle(GetCheckReceiveTaskQuery request, CancellationToken cancellationToken)
        {
            var logier = JwtUtils.GetCurrentLogier();
            var q = repTaskInfo.AsQueryable().AsNoTracking()
                .OrderBy(it => it.CreatedTime)
                .AsQueryable();
            if (logier.Type == EnumUserType.Personal)
            {
                q = q.Where(it => it.TaskInfoUsers.Any(tu => tu.EnterpriseEmployee.UserId == logier.Id));
            }
            else if (logier.Type == EnumUserType.Enterprise)
            {
                q = q.Where(it => it.EnterpriseId == logier.EnterpriseId);
            }
            if (logier.ClientType == EnumClientType.Wxmp)
            {
                if (request.CheckReceiveStatus == null)
                {
                    throw Oops.Oh(EnumErrorCodeType.s400, "请选择验收状态");
                }
                if (request.DateBegin == null || request.DateEnd == null)
                {
                    throw Oops.Oh(EnumErrorCodeType.s400, "请选择日期");
                }
                q = q.Where(it =>
                    it.TaskInfoUsers.Any(tu =>
                        tu.Submits.Any(s =>
                            request.DateBegin.Value.Date <= s.Date.Date
                            && s.Date.Date <= request.DateEnd.Value.Date
                            && (request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitSubmit
                            ? s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit
                            : request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitCheckReceive
                            ? s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive
                            : (s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Success
                            || s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Fail)))));
            }
            else
            {
                if (request.DateBegin.HasValue && request.DateEnd.HasValue)
                {
                    q = q.Where(it =>
                        it.TaskInfoUsers.Any(tu =>
                            tu.Submits.Any(s =>
                                request.DateBegin.Value.Date <= s.Date.Date
                                && s.Date.Date <= request.DateEnd.Value.Date)));
                }
                if (request.CheckReceiveStatus.HasValue)
                {
                    q = q.Where(it => it.CheckReceiveStatus == request.CheckReceiveStatus);
                }
            }
            var s = q.ProjectToType<GetCheckReceiveTaskQueryResultItem>();
            return await request.PageModel.GetPagedListAsync<GetCheckReceiveTaskQueryResult, GetCheckReceiveTaskQueryResultItem>(s, cancellationToken);
        }
        /// <summary>
        /// 查询验收分页列表
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task<GetCheckReceiveTaskUserQueryResult> Handle(GetCheckReceiveTaskUserQuery request, CancellationToken cancellationToken)
        {
            var logier = JwtUtils.GetCurrentLogier();
            var q = repTaskInfoUser.AsQueryable().AsNoTracking()
                .OrderBy(it => it.CreatedTime)
                .AsQueryable();
            if (logier.Type == EnumUserType.Personal)
            {
                q = q.Where(it => it.EnterpriseEmployee.UserId == logier.Id);
            }
            else if (logier.Type == EnumUserType.Enterprise)
            {
                q = q.Where(it => it.TaskInfo.EnterpriseId == logier.EnterpriseId);
            }
            if (request.TaskInfoId.HasValue)
            {
                q = q.Where(it => it.TaskInfoId == request.TaskInfoId);
            }
            if (request.Keywords.IsNotNull())
            {
                q = q.Where(it =>
                    it.EnterpriseEmployee.User.Name.Contains(request.Keywords)
                    || it.EnterpriseEmployee.User.ContactPhoneNumber.Contains(request.Keywords)
                    || it.EnterpriseEmployee.User.Identity.Contains(request.Keywords));
            }
            if (logier.ClientType == EnumClientType.Wxmp)
            {
                if (request.CheckReceiveStatus == null)
                {
                    throw Oops.Oh(EnumErrorCodeType.s400, "请选择验收状态");
                }
                if (request.DateBegin == null || request.DateEnd == null)
                {
                    throw Oops.Oh(EnumErrorCodeType.s400, "请选择日期");
                }
                q = q.Where(it => it.Submits.Any(s =>
                        request.DateBegin.Value.Date <= s.Date.Date
                        && s.Date.Date <= request.DateEnd.Value.Date
                        && (request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitSubmit
                        ? s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit
                        : request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitCheckReceive
                        ? s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive
                        : (s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Success
                        || s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Fail))));
            }
            else
            {
                if (request.DateBegin.HasValue && request.DateEnd.HasValue)
                {
                    q = q.Where(it => it.Submits.Any(s =>
                        request.DateBegin.Value.Date <= s.Date.Date
                        && s.Date.Date <= request.DateEnd.Value.Date));
                }
                if (request.CheckReceiveStatus.HasValue)
                {
                    q = q.Where(it => it.CheckReceiveStatus == request.CheckReceiveStatus);
                }
            }
            var s = q.Select(it => new GetCheckReceiveTaskUserQueryResultItem
            {
                Id = it.TaskInfoId,
                TaskName = it.TaskInfo.Name,
                BeginTime = it.TaskInfo.BeginTime,
                EndTime = it.TaskInfo.EndTime,
                AddressName = it.TaskInfo.AddressName,
                Name = it.EnterpriseEmployee.User.Name,
                Identity = it.EnterpriseEmployee.User.Identity,
                Age = it.EnterpriseEmployee.User.Age,
                Gender = it.EnterpriseEmployee.User.Gender,
                ContactPhoneNumber = it.EnterpriseEmployee.User.ContactPhoneNumber,
                CheckReceiveStatus = logier.ClientType == EnumClientType.Wxmp && request.DateBegin.HasValue && request.DateEnd.HasValue
                    ? it.Submits
                        .Where(s =>
                            request.DateBegin.Value.Date <= s.Date.Date
                            && s.Date.Date <= request.DateEnd.Value.Date)
                        .Select(s =>
                            s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit
                            ? EnumTaskCheckReceiveStatus.WaitSubmit
                            : s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive
                            ? EnumTaskCheckReceiveStatus.WaitCheckReceive
                            : EnumTaskCheckReceiveStatus.Completed)
                        .FirstOrDefault()
                    : it.CheckReceiveStatus,
                LastSubmitTime = it.LastSubmitTime,
            });
            return await request.PageModel.GetPagedListAsync<GetCheckReceiveTaskUserQueryResult, GetCheckReceiveTaskUserQueryResultItem>(s, cancellationToken);
        }
    }
}
FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs
@@ -17,8 +17,7 @@
    public class TaskUserQueryHandler(
        IRepository<TaskInfoUser> rep) :
        IRequestHandler<GetTaskUsersQuery, GetTaskUsersQueryResult>,
        IRequestHandler<GetArrangeTaskUsersQuery, GetArrangeTaskUsersQueryResult>,
        IRequestHandler<GetCheckReceiveTaskUserInfosQuery, GetCheckReceiveTaskUserInfosQueryResult>
        IRequestHandler<GetArrangeTaskUsersQuery, GetArrangeTaskUsersQueryResult>
    {
        private readonly IRepository<TaskInfoUser> rep = rep;
@@ -119,89 +118,6 @@
                    ArrangeStatus = it.ArrangeStatus
                });
            return await request.PageModel.GetPagedListAsync<GetArrangeTaskUsersQueryResult, GetArrangeTaskUsersQueryResultItem>(s, cancellationToken);
        }
        /// <summary>
        /// 查询验收分页列表
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task<GetCheckReceiveTaskUserInfosQueryResult> Handle(GetCheckReceiveTaskUserInfosQuery request, CancellationToken cancellationToken)
        {
            var logier = JwtUtils.GetCurrentLogier();
            var q = rep.AsQueryable().AsNoTracking()
                .OrderBy(it => it.CreatedTime)
                .AsQueryable();
            if (logier.Type == EnumUserType.Personal)
            {
                q = q.Where(it => it.EnterpriseEmployee.UserId == logier.Id);
            }
            else if (logier.Type == EnumUserType.Enterprise)
            {
                q = q.Where(it => it.TaskInfo.EnterpriseId == logier.EnterpriseId);
            }
            if (request.TaskInfoId.HasValue)
            {
                q = q.Where(it => it.TaskInfoId == request.TaskInfoId);
            }
            if (request.Keywords.IsNotNull())
            {
                q = q.Where(it =>
                    it.EnterpriseEmployee.User.Name.Contains(request.Keywords)
                    || it.EnterpriseEmployee.User.ContactPhoneNumber.Contains(request.Keywords)
                    || it.EnterpriseEmployee.User.Identity.Contains(request.Keywords));
            }
            if (logier.ClientType == EnumClientType.Wxmp)
            {
                if (request.CheckReceiveStatus == null)
                {
                    throw Oops.Oh(EnumErrorCodeType.s400, "请选择验收状态");
                }
                if (request.DateBegin == null || request.DateEnd == null)
                {
                    throw Oops.Oh(EnumErrorCodeType.s400, "请选择日期");
                }
                q = q.Where(it => it.Submits.Any(s =>
                        request.DateBegin.Value.Date <= s.Date.Date
                        && s.Date.Date <= request.DateEnd.Value.Date
                        && (request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitSubmit
                        ? s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Submit
                        : request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitCheckReceive
                        ? s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Wait
                        : (s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Success
                        || s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Fail))));
            }
            else
            {
                if (request.DateBegin.HasValue && request.DateEnd.HasValue)
                {
                    q = q.Where(it => it.Submits.Any(s =>
                        request.DateBegin.Value.Date <= s.Date.Date
                        && s.Date.Date <= request.DateEnd.Value.Date));
                }
                if (request.CheckReceiveStatus.HasValue)
                {
                    q = q.Where(it => it.CheckReceiveStatus == request.CheckReceiveStatus);
                }
            }
            var s = q.Select(it => new GetCheckReceiveTaskUserInfosQueryResultItem
            {
                Id = it.TaskInfoId,
                TaskName = it.TaskInfo.Name,
                BeginTime = it.TaskInfo.BeginTime,
                EndTime = it.TaskInfo.EndTime,
                AddressName = it.TaskInfo.AddressName,
                Name = it.EnterpriseEmployee.User.Name,
                Identity = it.EnterpriseEmployee.User.Identity,
                Age = it.EnterpriseEmployee.User.Age,
                Gender = it.EnterpriseEmployee.User.Gender,
                ContactPhoneNumber = it.EnterpriseEmployee.User.ContactPhoneNumber,
                CheckReceiveStatus = it.CheckReceiveStatus,
                LastSubmitTime = it.LastSubmitTime,
            });
            return await request.PageModel.GetPagedListAsync<GetCheckReceiveTaskUserInfosQueryResult, GetCheckReceiveTaskUserInfosQueryResultItem>(s, cancellationToken);
        }
    }
}
FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
@@ -73,7 +73,7 @@
                    if (model.HireButton == GetTaskInfoQueryResultHireButton.InProcess && model.BeginTime <= now)
                    {
                        var submit = await rep.Change<TaskInfoUserSubmit>().AsQueryable().AsNoTracking()
                            .AnyAsync(it => it.TaskInfoUserId == taskUser.Id && it.CheckReceiveStatus >= EnumTaskUserSubmitCheckReceiveStatus.Wait);
                            .AnyAsync(it => it.TaskInfoUserId == taskUser.Id && it.CheckReceiveStatus >= EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive);
                        if (!submit)
                        {
                            model.HireButton = GetTaskInfoQueryResultHireButton.ApplyCheckReceive;
FlexJobApi.UserServer.Application/Enterprises/Commands/EnterpriseCommandHandler.cs
@@ -64,7 +64,7 @@
                    Name = request.Contacts,
                    PhoneNumber = request.ContactPhoneNumber,
                    UserName = request.UserName,
                    Password = PBKDF2Encryption.Encrypt(request.Password),
                    Password = request.Password.EncryptPassword(),
                    Level = 100,
                    Status = EnumUserStatus.Normal,
                };
@@ -77,7 +77,7 @@
                user.PhoneNumber = request.ContactPhoneNumber;
                if (request.Password.IsNotNull())
                {
                    user.Password = PBKDF2Encryption.Encrypt(request.Password);
                    user.Password = request.Password.EncryptPassword();
                }
                await repUser.UpdateAsync(user);
            }