| | |
| | | switch (request.Action) |
| | | { |
| | | case "UserSign": |
| | | await UserFaceReal(request); |
| | | await UserSign(request); |
| | | break; |
| | | case "ContractSign": |
| | | await ContractSign(request); |
| | |
| | | { |
| | | throw Oops.Oh(EnumErrorCodeType.s510, "合同已失效"); |
| | | } |
| | | if (entity.ContractTemplate.Access == EnumElectronSignAccess.BestSign) |
| | | if (request.Success) |
| | | { |
| | | if (data.UserType == Core.Models.ElectronSignServer.PersonalUserReals.EnumElectronSignUserType.Personal) |
| | | if (entity.ContractTemplate.Access == EnumElectronSignAccess.BestSign) |
| | | { |
| | | if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Signing) |
| | | if (data.UserType == Core.Models.ElectronSignServer.PersonalUserReals.EnumElectronSignUserType.Personal) |
| | | { |
| | | contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Pass; |
| | | contract.UserSignContractTime = DateTime.Now; |
| | | contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Wait; |
| | | if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Signing) |
| | | { |
| | | contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Pass; |
| | | contract.UserSignContractTime = DateTime.Now; |
| | | contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Wait; |
| | | } |
| | | } |
| | | else if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Cancelled) |
| | | else |
| | | { |
| | | contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Refuse; |
| | | if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Signing) |
| | | { |
| | | contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Pass; |
| | | contract.EnterpriseSignContractTime = DateTime.Now; |
| | | } |
| | | } |
| | | } |
| | | if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Completed) |
| | | { |
| | | contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Pass; |
| | | if (contract.UserSignContractTime == null) |
| | | { |
| | | contract.UserSignContractTime = DateTime.Now; |
| | | } |
| | | contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Pass; |
| | | if (contract.EnterpriseSignContractTime == null) |
| | | { |
| | | contract.EnterpriseSignContractTime = DateTime.Now; |
| | | } |
| | | contract.ContractUrl = AliyunOSSUtils.Upload("Contact", data.ContactUrl, $"{contract.ContractTemplate.Name}.pdf").Url; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (entity.ContractTemplate.Access == EnumElectronSignAccess.BestSign) |
| | | { |
| | | if (data.UserType == Core.Models.ElectronSignServer.PersonalUserReals.EnumElectronSignUserType.Personal) |
| | | { |
| | | contract.UserSignContractErrorMessage = request.Message; |
| | | } |
| | | else |
| | | { |
| | | contract.EnterpriseSignContractErrorMessage = request.Message; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Signing) |
| | | { |
| | | contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Pass; |
| | | contract.EnterpriseSignContractTime = DateTime.Now; |
| | | } |
| | | else if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Cancelled) |
| | | { |
| | | contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Refuse; |
| | | contract.EnterpriseSignContractErrorMessage = request.Message; |
| | | } |
| | | contract.UserSignContractErrorMessage = request.Message; |
| | | contract.EnterpriseSignContractErrorMessage = request.Message; |
| | | } |
| | | } |
| | | else if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Cancelled) |
| | | { |
| | | contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Refuse; |
| | | contract.UserSignContractErrorMessage = request.Message; |
| | | contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Refuse; |
| | | contract.EnterpriseSignContractErrorMessage = request.Message; |
| | | } |
| | | if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Completed) |
| | | { |
| | | contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Pass; |
| | | if (contract.UserSignContractTime == null) |
| | | { |
| | | contract.UserSignContractTime = DateTime.Now; |
| | | } |
| | | contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Pass; |
| | | if (contract.EnterpriseSignContractTime == null) |
| | | { |
| | | contract.EnterpriseSignContractTime = DateTime.Now; |
| | | } |
| | | contract.ContractUrl = AliyunOSSUtils.Upload("Contact", data.ContactUrl, $"{contract.ContractTemplate.Name}.pdf").Url; |
| | | } |
| | | await repEnterpriseEmployeeContract.UpdateAsync(contract); |
| | | |
| | |
| | | entity.ContractUrl = contract.ContractUrl; |
| | | await repEnterpriseEmployee.UpdateAsync(entity); |
| | | |
| | | var taskUsers = await repTaskInfoUser.AsQueryable() |
| | | .Where(it => it.EnterpriseEmployeeId == entity.Id && it.HireStatus == EnumTaskUserHireStatus.Pass && it.ArrangeStatus == null) |
| | | .ToListAsync(); |
| | | if (taskUsers.IsNotNull()) |
| | | if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Pass && entity.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Pass) |
| | | { |
| | | foreach (var taskUser in taskUsers) |
| | | var taskUsers = await repTaskInfoUser.AsQueryable() |
| | | .Where(it => it.EnterpriseEmployeeId == entity.Id && it.HireStatus == EnumTaskUserHireStatus.Pass && it.ArrangeStatus == null) |
| | | .ToListAsync(); |
| | | if (taskUsers.IsNotNull()) |
| | | { |
| | | taskUser.ArrangeStatus = EnumTaskUserArrangeStatus.Wait; |
| | | foreach (var taskUser in taskUsers) |
| | | { |
| | | taskUser.ArrangeStatus = EnumTaskUserArrangeStatus.Wait; |
| | | } |
| | | await repTaskInfoUser.UpdateAsync(taskUsers); |
| | | } |
| | | await repTaskInfoUser.UpdateAsync(taskUsers); |
| | | } |
| | | } |
| | | |
| | | private async Task UserFaceReal(ElectronSignCallbackCommand request) |
| | | private async Task UserSign(ElectronSignCallbackCommand request) |
| | | { |
| | | var user = await repUser.AsQueryable() |
| | | .Include(it => it.UserAuth) |
| | |
| | | request.Success == true |
| | | ? EnumPersonalUserRealStatus.Real |
| | | : EnumPersonalUserRealStatus.Fail, |
| | | EnumUserRealMethod.Face, |
| | | user.RealMethod!.Value, |
| | | user, |
| | | enterpriseEmployees, |
| | | user.UserAuth.Name, |
| | | user.UserAuth.Identity, |
| | | user.UserAuth.IdentityImg, |
| | | user.UserAuth.IdentityBackImg, |
| | | faceRealUrl: user.UserAuth.FaceRealUrl); |
| | | user.UserAuth.PhoneNumber, |
| | | user.UserAuth.FaceRealUrl); |
| | | await repUser.UpdateAsync(user); |
| | | } |
| | | } |