sunpengfei
2025-08-29 0a2215fac7b72abba17f816cec53b94e36debdbd
feat:开发
5个文件已修改
45 ■■■■■ 已修改文件
FlexJobApi.Core/Enums/Tasks/EnumTaskUserSignContractStatus.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/ElectronSign/Commands/ElectronSignCallbackCommandHandler.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Enums/Tasks/EnumTaskUserSignContractStatus.cs
@@ -24,10 +24,6 @@
        /// </summary>
        Refuse = 30,
        /// <summary>
        /// 生效中
        /// </summary>
        Effect = 40,
        /// <summary>
        /// 已终止
        /// </summary>
        Stop = 50
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.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
@@ -229,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
@@ -275,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()
@@ -346,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()
@@ -395,7 +392,7 @@
                .Where(it => it.EnterpriseId == logier.EnterpriseId && it.Id == request.Id)
                .FirstOrDefaultAsync();
            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "灵工");
            if (entity.UserSignContractStatus != EnumTaskUserSignContractStatus.Effect) throw Oops.Oh(EnumErrorCodeType.s400, "未生效");
            if (entity.UserSignContractStatus != EnumTaskUserSignContractStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s400, "未签约");
            entity.UserSignContractStatus = EnumTaskUserSignContractStatus.Stop;
            entity.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Stop;
            await rep.UpdateAsync(entity);
FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
@@ -65,7 +65,24 @@
            {
                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)
            {
                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:
                        break;
                }
            }
            else
            {
                q = q.Where(it => it.UserSignContractStatus == request.UserSignContractStatus);
            }
@@ -154,13 +171,20 @@
                .Where(it => it.UserId == logier.Id);
            if (request.UserSignContractStatus.HasValue)
            {
                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