From 89180f038e36a2f957c15717aeceb6945251f674 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期一, 01 九月 2025 09:53:16 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs |   25 +++++++++++++++++++------
 1 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs
index ecd94d1..6fdbf87 100644
--- a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs
+++ b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs
@@ -37,7 +37,8 @@
             IRepository<EnterpriseEmployeeContract> repEnterpriseEmployeeContract,
             IRepository<ElectronSignSetting> repElectronSignSetting,
             IRepository<ContractTemplate> repContractTemplate,
-            IRepository<EnterpriseCost> repEnterpriseCost
+            IRepository<EnterpriseCost> repEnterpriseCost,
+            IRepository<TaskInfoUser> repTaskInfoUser
         ) :
         IRequestHandler<ImportEnterpriseEmployeesCommand, ImportEnterpriseEmployeesCommandResult>,
         IRequestHandler<EditEnterpriseEmployeeCommand, Guid>,
@@ -54,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>
         /// 瀵煎叆鐏靛伐淇℃伅
@@ -227,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
@@ -238,6 +239,7 @@
             entity.EnterpriseSignContractStatus = null;
             entity.EnterpriseSignContractTime = null;
             entity.ContractCode = $"{DateTime.Now:yyyyMMddHHmmss}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}";
+            entity.ContractUrl = null;
             var contract = new EnterpriseEmployeeContract
             {
                 EnterpriseEmployeeId = entity.Id,
@@ -273,7 +275,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()
@@ -344,7 +345,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()
@@ -393,7 +393,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);
@@ -402,10 +402,23 @@
                 .OrderByDescending(it => it.CreatedTime)
                 .Where(it => it.EnterpriseEmployeeId == entity.Id)
                 .FirstOrDefaultAsync();
-            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "鍚堝悓");
+            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;
         }
     }

--
Gitblit v1.9.1