sunpengfei
1 天以前 285404b0f7161ceca8621e61026682bbbb3f71aa
FlexJobApi.UserServer.Application/ElectronSign/Commands/ElectronSignCallbackCommandHandler.cs
@@ -77,56 +77,61 @@
            {
                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);
@@ -137,16 +142,19 @@
            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);
            }
        }