6ad4db7d45eeaec5617f511010343258f245e5d4..e49c42ad641fa7ddaa4250ffd408666b087d1d48
2025-08-29 sunpengfei
feat:开发
e49c42 对比 | 目录
2025-08-29 sunpengfei
feat:开发
7c9014 对比 | 目录
2025-08-29 sunpengfei
feat:开发
0a2215 对比 | 目录
2025-08-29 sunpengfei
feat:开发
86a5e4 对比 | 目录
2025-08-29 sunpengfei
feat:开发
fb89fe 对比 | 目录
2025-08-29 sunpengfei
feat:开发
5f9353 对比 | 目录
1个文件已添加
16个文件已修改
204 ■■■■ 已修改文件
FlexJobApi.CommonServer.Application/LogRecords/Commands/ResendResourceCommandHandler.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Enums/Tasks/EnumTaskUserSignContractStatus.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/FlexJobApi.Core.xml 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/FlexJobServer/TaskCheckReceive/Queries/GetCheckReceiveTaskUserSubmitQuery.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/FlexJobServer/TaskCheckReceive/Queries/GetCheckReceiveTaskUserSubmitsQuery.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfoQuery.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Commands/StopElectronSignCommand.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Utils/JwtUtils/JwtUtils.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpProvider/DefaultResourceHttpProvider.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Commands/TaskCheckReceiveCommandHandler.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskCheckReceiveQueryHandler.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/ElectronSign/Commands/ElectronSignCallbackCommandHandler.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.CommonServer.Application/LogRecords/Commands/ResendResourceCommandHandler.cs
@@ -7,6 +7,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
@@ -38,6 +39,7 @@
                {
                    it.Method,
                    it.Path,
                    it.RequestHeaders,
                    it.Request,
                    it.CreatedUserId
                })
@@ -60,7 +62,20 @@
                })
                .request
                .ToJson();
            var result = await paramters.SendHttpAsync(resource.ServiceName, resource.Route, resource.Method);
            string? accessToken = null, refreshToken = null;
            if (log.RequestHeaders.IsNotNull())
            {
                var headers = log.RequestHeaders.JsonTo<Dictionary<string, List<string>>>();
                if (headers.ContainsKey("Authorization"))
                {
                    accessToken = headers["Authorization"].FirstOrDefault();
                }
                if (headers.ContainsKey("X-Authorization"))
                {
                    refreshToken = headers["X-Authorization"].FirstOrDefault();
                }
            }
            var result = await paramters.SendHttpAsync(resource.ServiceName, resource.Route, resource.Method, accessToken: accessToken, refreshToken: refreshToken);
            return result;
        }
    }
FlexJobApi.Core/Enums/Tasks/EnumTaskUserSignContractStatus.cs
@@ -24,10 +24,6 @@
        /// </summary>
        Refuse = 30,
        /// <summary>
        /// 生效中
        /// </summary>
        Effect = 40,
        /// <summary>
        /// 已终止
        /// </summary>
        Stop = 50
FlexJobApi.Core/FlexJobApi.Core.xml
@@ -3372,11 +3372,6 @@
            已拒签
            </summary>
        </member>
        <member name="F:FlexJobApi.Core.EnumTaskUserSignContractStatus.Effect">
            <summary>
            生效中
            </summary>
        </member>
        <member name="F:FlexJobApi.Core.EnumTaskUserSignContractStatus.Stop">
            <summary>
            已终止
@@ -5865,6 +5860,11 @@
            人员信息
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserSubmitQueryResult.Date">
            <summary>
            验收时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserSubmitQueryResult.CreatedTime">
            <summary>
            提交时间
@@ -6004,6 +6004,11 @@
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserSubmitsQueryResultItem.Id">
            <summary>
            提交Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserSubmitsQueryResultItem.Date">
            <summary>
            验收时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserSubmitsQueryResultItem.CreatedTime">
@@ -8534,6 +8539,16 @@
            签署合同长链接
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.StopElectronSignCommand">
            <summary>
            灵工解约
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.StopElectronSignCommand.Id">
            <summary>
            灵工Id
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetEnterpriseEmployeeQuery">
            <summary>
            查询灵工详情
FlexJobApi.Core/Models/FlexJobServer/TaskCheckReceive/Queries/GetCheckReceiveTaskUserSubmitQuery.cs
@@ -52,6 +52,11 @@
        public GetCheckReceiveTaskUserSubmitsQueryResultObjectDataEnterpriseEmployeeUser TaskInfoUserEnterpriseEmployeeUser { get; set; }
        /// <summary>
        /// 验收时间
        /// </summary>
        public DateTime Date { get; set; }
        /// <summary>
        /// 提交时间
        /// </summary>
        public DateTimeOffset CreatedTime { get; set; }
FlexJobApi.Core/Models/FlexJobServer/TaskCheckReceive/Queries/GetCheckReceiveTaskUserSubmitsQuery.cs
@@ -152,6 +152,11 @@
        public Guid Id { get; set; }
        /// <summary>
        /// 验收时间
        /// </summary>
        public DateTime Date { get; set; }
        /// <summary>
        /// 提交时间
        /// </summary>
        public DateTimeOffset CreatedTime { get; set; }
FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfoQuery.cs
@@ -197,6 +197,11 @@
        public EnumTaskUserHireStatus? HireStatus { get; set; }
        /// <summary>
        /// 灵工Id
        /// </summary>
        public Guid? EnterpriseEmployeeId { get; set; }
        /// <summary>
        /// 我的报名列表状态
        /// </summary>
        public GetTaskInfoQueryResultApplyButton? ApplyButton { get; set; }
FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Commands/StopElectronSignCommand.cs
New file
@@ -0,0 +1,21 @@
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.UserServerEnterpriseEmployee])]
    public class StopElectronSignCommand : IRequest<Guid>
    {
        /// <summary>
        /// 灵工Id
        /// </summary>
        public Guid Id { get; set; }
    }
}
FlexJobApi.Core/Utils/JwtUtils/JwtUtils.cs
@@ -90,6 +90,7 @@
        {
            if (accessToken.IsNotNull())
            {
                accessToken = accessToken.Replace("Bearer ", null);
                var claims = JWTEncryption.ReadJwtToken(accessToken)?.Claims;
                if (claims != null)
                {
FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpProvider/DefaultResourceHttpProvider.cs
@@ -36,8 +36,8 @@
                    var logier = await accessToken.GetCurrentLogier();
                    if (logier != null)
                    {
                        builder = WithHeader(builder, "Authorization", logier.AccessToken);
                        builder = WithHeader(builder, "X-Authorization", logier.RefreshToken);
                        builder = WithHeader(builder, "Authorization", $"Bearer {logier.AccessToken}");
                        builder = WithHeader(builder, "X-Authorization", $"Bearer {logier.RefreshToken}");
                        response = await httpRemoteService.SendAsStringAsync(builder);
                    }
                }
@@ -51,7 +51,7 @@
            string value = null;
            if (builder.Headers?.ContainsKey(name) ?? false)
            {
                value = builder.Headers[name].ToString();
                value = builder.Headers[name].FirstOrDefault();
            }
            else if (App.HttpContext.Request.Headers.ContainsKey(name))
            {
@@ -65,7 +65,7 @@
            value ??= GetHeaderValue(builder, name);
            if (value.IsNotNull())
            {
                builder = builder.WithHeader(name, value);
                builder = builder.WithHeader(name, value, replace: true);
            }
            return builder;
        }
FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Commands/TaskCheckReceiveCommandHandler.cs
@@ -52,7 +52,7 @@
            var taskUser = await repTaskInfoUser.AsQueryable()
                .FirstOrDefaultAsync(it => it.TaskInfoId == task.Id && it.EnterpriseEmployee.UserId == logier.Id, cancellationToken);
            if (taskUser == null) throw Oops.Oh(EnumErrorCodeType.s404, "报名信息");
            if (taskUser.HireStatus != EnumTaskUserHireStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s510, "您未录用");
            //if (taskUser.HireStatus != EnumTaskUserHireStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s510, "您未录用");
            if (taskUser.ArrangeStatus != EnumTaskUserArrangeStatus.Complete) throw Oops.Oh(EnumErrorCodeType.s510, "暂未安排");
            task.CheckReceiveStatus = EnumTaskCheckReceiveStatus.WaitCheckReceive;
            task.LastSubmitTime = now;
@@ -112,7 +112,7 @@
            var taskUser = await repTaskInfoUser.AsQueryable()
                .FirstOrDefaultAsync(it => it.Id == submit.TaskInfoUserId, cancellationToken);
            if (taskUser == null) throw Oops.Oh(EnumErrorCodeType.s404, "灵工信息");
            if (taskUser.HireStatus != EnumTaskUserHireStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s510, "未录用灵工");
            //if (taskUser.HireStatus != EnumTaskUserHireStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s510, "未录用灵工");
            if (taskUser.ArrangeStatus != EnumTaskUserArrangeStatus.Complete) throw Oops.Oh(EnumErrorCodeType.s510, "未安排灵工");
            var task = await repTaskInfo.AsQueryable()
                .FirstOrDefaultAsync(it => it.Id == taskUser.TaskInfoId && it.EnterpriseId == logier.EnterpriseId, cancellationToken);
FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskCheckReceiveQueryHandler.cs
@@ -220,6 +220,7 @@
            var s = q.Select(it => new GetCheckReceiveTaskUserSubmitsQueryResultItem
            {
                Id = it.Id,
                Date = it.Date,
                CreatedTime = it.CreatedTime,
                Files = it.Files.Select(f => f.File).ToList(),
                CheckReceiveStatus = it.CheckReceiveStatus,
FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs
@@ -102,7 +102,7 @@
            if (entity.HireStatus == EnumTaskUserHireStatus.Pass)
            {
                entity.HireTime = DateTime.Now;
                if (entity.EnterpriseEmployee.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Effect)
                if (entity.EnterpriseEmployee.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Pass)
                {
                    entity.ArrangeStatus = EnumTaskUserArrangeStatus.Wait;
                }
@@ -128,7 +128,7 @@
                    && it.Id == request.Id)
                .FirstOrDefaultAsync(cancellationToken);
            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "报名信息");
            if (entity.EnterpriseEmployee.EnterpriseSignContractStatus != EnumTaskUserSignContractStatus.Effect) throw Oops.Oh(EnumErrorCodeType.s510, "灵工未签约");
            if (entity.EnterpriseEmployee.EnterpriseSignContractStatus != EnumTaskUserSignContractStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s510, "灵工未签约");
            if (entity.ArrangeStatus == EnumTaskUserArrangeStatus.Complete) throw Oops.Oh(EnumErrorCodeType.s510, "灵工已安排");
            entity.ArrangeStatus = request.ArrangeStatus;
            if (entity.ArrangeStatus == EnumTaskUserArrangeStatus.Complete)
FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
@@ -57,11 +57,13 @@
                    {
                        it.Id,
                        it.HireStatus,
                        it.EnterpriseEmployeeId,
                        it.EnterpriseEmployee.UserSignContractStatus
                    })
                    .FirstOrDefaultAsync();
                if (taskUser != null)
                {
                    model.EnterpriseEmployeeId = taskUser.EnterpriseEmployeeId;
                    model.HireStatus = taskUser.HireStatus;
                    model.ApplyButton = taskUser.HireStatus == EnumTaskUserHireStatus.Wait
                        ? GetTaskInfoQueryResultApplyButton.WaitHire
FlexJobApi.UserServer.Application/ElectronSign/Commands/ElectronSignCallbackCommandHandler.cs
@@ -116,12 +116,12 @@
            }
            if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Completed)
            {
                contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Effect;
                contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Pass;
                if (contract.UserSignContractTime == null)
                {
                    contract.UserSignContractTime = DateTime.Now;
                }
                contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Effect;
                contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Pass;
                if (contract.EnterpriseSignContractTime == null)
                {
                    contract.EnterpriseSignContractTime = DateTime.Now;
FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs
@@ -37,13 +37,15 @@
            IRepository<EnterpriseEmployeeContract> repEnterpriseEmployeeContract,
            IRepository<ElectronSignSetting> repElectronSignSetting,
            IRepository<ContractTemplate> repContractTemplate,
            IRepository<EnterpriseCost> repEnterpriseCost
            IRepository<EnterpriseCost> repEnterpriseCost,
            IRepository<TaskInfoUser> repTaskInfoUser
        ) :
        IRequestHandler<ImportEnterpriseEmployeesCommand, ImportEnterpriseEmployeesCommandResult>,
        IRequestHandler<EditEnterpriseEmployeeCommand, Guid>,
        IRequestHandler<InviteElectronSignCommand, Guid>,
        IRequestHandler<PersonalUserElectronSignCommand, PersonalUserElectronSignCommandResult>,
        IRequestHandler<EnterpriseUserElectronSignCommand, EnterpriseUserElectronSignCommandResult>
        IRequestHandler<EnterpriseUserElectronSignCommand, EnterpriseUserElectronSignCommandResult>,
        IRequestHandler<StopElectronSignCommand, Guid>
    {
        private readonly IMediator mediator = mediator;
        private readonly IRepository<EnterpriseEmployee> rep = rep;
@@ -53,6 +55,7 @@
        private readonly IRepository<ElectronSignSetting> repElectronSignSetting = repElectronSignSetting;
        private readonly IRepository<ContractTemplate> repContractTemplate = repContractTemplate;
        private readonly IRepository<EnterpriseCost> repEnterpriseCost = repEnterpriseCost;
        private readonly IRepository<TaskInfoUser> repTaskInfoUser = repTaskInfoUser;
        /// <summary>
        /// 导入灵工信息
@@ -226,7 +229,6 @@
            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "灵工");
            if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait) throw Oops.Oh(EnumErrorCodeType.s400, "已邀请");
            if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s400, "已签约");
            if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Effect) throw Oops.Oh(EnumErrorCodeType.s400, "已生效");
            await mediator.Send(new CheckContractTemplateCommand
            {
                Id = request.ContractTemplateId
@@ -272,7 +274,6 @@
            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s510, "未报名该企业");
            if (entity.UserSignContractStatus == null) throw Oops.Oh(EnumErrorCodeType.s510, "企业未发起签约");
            if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s510, "已签约");
            if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Effect) throw Oops.Oh(EnumErrorCodeType.s510, "已生效");
            if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Refuse) throw Oops.Oh(EnumErrorCodeType.s510, "已拒签");
            if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Stop) throw Oops.Oh(EnumErrorCodeType.s510, "已终止");
            var contract = await repEnterpriseEmployeeContract.AsQueryable()
@@ -343,7 +344,6 @@
            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s510, "灵工不存在");
            if (entity.UserSignContractStatus == null) throw Oops.Oh(EnumErrorCodeType.s510, "未邀请签约");
            if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait) throw Oops.Oh(EnumErrorCodeType.s510, "请先等待灵工签约完成");
            if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Effect) throw Oops.Oh(EnumErrorCodeType.s510, "已生效");
            if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Refuse) throw Oops.Oh(EnumErrorCodeType.s510, "已拒签");
            if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Stop) throw Oops.Oh(EnumErrorCodeType.s510, "已终止");
            var contract = await repEnterpriseEmployeeContract.AsQueryable()
@@ -378,5 +378,47 @@
            }
            return result.Result.Adapt<EnterpriseUserElectronSignCommandResult>();
        }
        /// <summary>
        /// 灵工解约
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task<Guid> Handle(StopElectronSignCommand request, CancellationToken cancellationToken)
        {
            var logier = JwtUtils.GetCurrentLogier();
            var entity = await rep.AsQueryable()
                .Where(it => it.EnterpriseId == logier.EnterpriseId && it.Id == request.Id)
                .FirstOrDefaultAsync();
            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "灵工");
            if (entity.UserSignContractStatus != EnumTaskUserSignContractStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s400, "未签约");
            entity.UserSignContractStatus = EnumTaskUserSignContractStatus.Stop;
            entity.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Stop;
            await rep.UpdateAsync(entity);
            var contract = await repEnterpriseEmployeeContract.AsQueryable()
                .OrderByDescending(it => it.CreatedTime)
                .Where(it => it.EnterpriseEmployeeId == entity.Id)
                .FirstOrDefaultAsync();
            if (contract == null) throw Oops.Oh(EnumErrorCodeType.s404, "合同");
            contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Stop;
            contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Stop;
            await repEnterpriseEmployeeContract.UpdateAsync(contract);
            var taskUsers = await repTaskInfoUser.AsQueryable()
                .Where(it => it.EnterpriseEmployeeId == entity.Id && it.HireStatus == EnumTaskUserHireStatus.Pass)
                .ToListAsync();
            if (taskUsers.IsNotNull())
            {
                foreach (var taskUser in taskUsers)
                {
                    taskUser.HireStatus = EnumTaskUserHireStatus.Wait;
                }
                await repTaskInfoUser.UpdateAsync(taskUsers);
            }
            return entity.Id;
        }
    }
}
FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
@@ -65,9 +65,30 @@
            {
                q = q.Where(it => (it.UserId.HasValue && it.User.IsReal) == request.IsReal.Value);
            }
            if (request.UserSignContractStatus.HasValue)
            if (request.UserSignContractStatus.HasValue && logier.ClientType == EnumClientType.Wxmp)
            {
                q = q.Where(it => it.UserSignContractStatus == request.UserSignContractStatus);
                if (logier.ClientType == EnumClientType.Wxmp)
                {
                    switch (request.UserSignContractStatus.Value)
                    {
                        case EnumTaskUserSignContractStatus.Wait:
                            q = q.Where(it => it.UserSignContractStatus == null || it.UserSignContractStatus == request.UserSignContractStatus);
                            break;
                        case EnumTaskUserSignContractStatus.Pass:
                            q = q.Where(it => it.UserSignContractStatus == request.UserSignContractStatus && it.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Pass);
                            break;
                        case EnumTaskUserSignContractStatus.Stop:
                            q = q.Where(it => it.UserSignContractStatus == request.UserSignContractStatus);
                            break;
                        default:
                            q = q.Where(it => it.UserSignContractStatus == request.UserSignContractStatus);
                            break;
                    }
                }
                else
                {
                    q = q.Where(it => it.UserSignContractStatus == request.UserSignContractStatus);
                }
            }
            if (request.EnterpriseSignContractStatus.HasValue)
            {
@@ -154,13 +175,20 @@
                .Where(it => it.UserId == logier.Id);
            if (request.UserSignContractStatus.HasValue)
            {
                q = q.Where(it => it.UserSignContractStatus == request.UserSignContractStatus.Value);
                if (request.UserSignContractStatus == EnumTaskUserSignContractStatus.Pass)
                {
                    q = q.Where(it => it.UserSignContractStatus == EnumTaskUserSignContractStatus.Pass && it.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Pass);
                }
                else
                {
                    q = q.Where(it => it.UserSignContractStatus == request.UserSignContractStatus.Value);
                }
            }
            else
            {
                q = q.Where(it =>
                    it.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait
                    || it.UserSignContractStatus == EnumTaskUserSignContractStatus.Effect
                    || it.UserSignContractStatus == EnumTaskUserSignContractStatus.Pass && it.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Pass
                    || it.UserSignContractStatus == EnumTaskUserSignContractStatus.Stop);
            }
            var s = q.Select(it => new GetPersonalUserElectronSignsQueryResultItem
FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
@@ -374,7 +374,7 @@
            灵工命令处理器
            </summary>
        </member>
        <member name="M:FlexJobApi.UserServer.Application.EnterpriseEmployeesCommandHandler.#ctor(MediatR.IMediator,Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseEmployee},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.User},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Enterprise},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseEmployeeContract},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.ElectronSignSetting},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.ContractTemplate},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseCost})">
        <member name="M:FlexJobApi.UserServer.Application.EnterpriseEmployeesCommandHandler.#ctor(MediatR.IMediator,Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseEmployee},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.User},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Enterprise},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseEmployeeContract},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.ElectronSignSetting},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.ContractTemplate},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseCost},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.TaskInfoUser})">
            <summary>
            灵工命令处理器
            </summary>
@@ -419,6 +419,14 @@
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="M:FlexJobApi.UserServer.Application.EnterpriseEmployeesCommandHandler.Handle(FlexJobApi.Core.StopElectronSignCommand,System.Threading.CancellationToken)">
            <summary>
            灵工解约
            </summary>
            <param name="request"></param>
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="T:FlexJobApi.UserServer.Application.EnterpriseEmployeeQueryHandler">
            <summary>
            灵工查询处理器