sunpengfei
2025-08-21 d1ab857c45b29cf8721bfe1892356a45beeecfd8
FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs
@@ -48,9 +48,12 @@
            }
            if (request.EnterpriseId == null) throw Oops.Oh(EnumErrorCodeType.s400, "请选择企业");
            var existCode = await rep.AsQueryable().AsNoTracking()
                .AnyAsync(it => it.Code == request.Code && !it.IsDisabled && it.Id != request.Id);
            if (existCode) throw Oops.Oh(EnumErrorCodeType.s405, "业务编码");
            if (request.Code.IsNotNull())
            {
                var existCode = await rep.AsQueryable().AsNoTracking()
                    .AnyAsync(it => it.Code == request.Code && !it.IsDisabled && it.Id != request.Id);
                if (existCode) throw Oops.Oh(EnumErrorCodeType.s405, "业务编码");
            }
            var entity = await request.SaveData<ContractTemplate, SaveContractTemplateCommand>(
                 q => q
@@ -59,7 +62,21 @@
                 null,
                 entity =>
                 {
                     if (entity.Code.IsNotNull() && entity.Name.IsNotNull() && (entity.Code != request.Code || entity.Name != request.Name || entity.WxmpQrCode.IsNull()))
                     {
                         entity.WxmpQrCode = wxmpUtils.GetQrCodeOssUrl(new WxmpGetQrCodeCommand
                         {
                             UserType = EnumUserType.Personal,
                             OssScene = "Wxmp/QrCode/ContractTemplate",
                             OssFileName = $"{request.Name}.png",
                             Page = "subpackages/mine/mineAgreementSignDetail/mineAgreementSignDetail",
                             CheckPath = false,
                             Scene = $"{request.Code}",
                         }).Result;
                     }
                     request.Adapt(entity);
                     if (request.Id == null)
                     {
                         entity.Status = EnumContractTemplateStatus.Wait;
@@ -73,19 +90,6 @@
                 cancellationToken);
            await SyncElectronSignContractTemplate(entity);
            if (request.Id == null)
            {
                entity.WxmpQrCode = await wxmpUtils.GetQrCodeOssUrl(new WxmpGetQrCodeCommand
                {
                    UserType = EnumUserType.Personal,
                    OssScene = "Wxmp/QrCode/ContractTemplate",
                    OssFileName = $"{entity.Name}.png",
                    Page = "subpackages/mine/mineAgreementSignDetail/mineAgreementSignDetail",
                    CheckPath = false,
                    Scene = $"{entity.Code}",
                });
            }
            return entity.Id;
        }