| | |
| | | ) : |
| | | IRequestHandler<SaveContractTemplateCommand, Guid>, |
| | | IRequestHandler<SaveContractTemplateValuesCommand, Guid>, |
| | | IRequestHandler<SetIsDisabledContractTemplateCommand, int> |
| | | IRequestHandler<SetIsDisabledContractTemplateCommand, int>, |
| | | IRequestHandler<CheckContractTemplateCommand, bool> |
| | | { |
| | | private readonly IMediator mediator = mediator; |
| | | private readonly IRepository<ContractTemplate> rep = rep; |
| | |
| | | await mediator.Send(new CheckElectronSignAccessEnabledsCommand |
| | | { |
| | | Accesses = new List<EnumElectronSignAccess> |
| | | { |
| | | request.Access.Value |
| | | } |
| | | { |
| | | request.Access.Value |
| | | } |
| | | }, cancellationToken); |
| | | } |
| | | |
| | |
| | | null, |
| | | entity => |
| | | { |
| | | if (entity.Code.IsNotNull() && entity.Name.IsNotNull() && (entity.Code != request.Code || entity.Name != request.Name || entity.WxmpQrCode.IsNull())) |
| | | if (request.Code.IsNotNull() && request.Name.IsNotNull()) |
| | | { |
| | | entity.WxmpQrCode = wxmpUtils.GetQrCodeOssUrl(new WxmpGetQrCodeCommand |
| | | { |
| | |
| | | || entity.Values.Any(ov => |
| | | request.Values.Count(nv => |
| | | ov.Id == nv.Id |
| | | && ov.Name == nv.Name |
| | | && ov.Type == nv.Type |
| | | && ov.Recorder == nv.Recorder |
| | | && ov.UserType == nv.UserType |
| | | && ov.Label == nv.Label |
| | | && ov.BindProperty == nv.BindProperty |
| | | && ov.Required == nv.Required) != 1)) |
| | | { |
| | | entity.Values = request.Values.Select(it => |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 校验合同模是否可用 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<bool> Handle(CheckContractTemplateCommand request, CancellationToken cancellationToken) |
| | | { |
| | | var model = await rep.AsQueryable().AsNoTracking() |
| | | .Where(it => it.Id == request.Id && !it.IsDisabled) |
| | | .Select(it => new |
| | | { |
| | | it.Access, |
| | | it.Status |
| | | }) |
| | | .FirstOrDefaultAsync(); |
| | | if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "合同模板"); |
| | | if (model.Status != EnumContractTemplateStatus.Completed) throw Oops.Oh(EnumErrorCodeType.s510, "未制版"); |
| | | await mediator.Send(new CheckElectronSignAccessEnabledsCommand |
| | | { |
| | | Accesses = new List<EnumElectronSignAccess> |
| | | { |
| | | model.Access!.Value |
| | | } |
| | | }, cancellationToken); |
| | | return true; |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 同步电子签合同模板 |
| | | /// </summary> |
| | | /// <param name="entity"></param> |