feat(REQ-3769) - 增加文档列表根据 ID 返回的接口

This commit is contained in:
wangli 2025-04-16 18:23:02 +08:00
parent e4bc13f060
commit 3248dcd36a
4 changed files with 50 additions and 10 deletions

View File

@ -263,6 +263,15 @@ public interface ProcessModelApi {
@InvokeMode(SYNC)
CommonResponse<BpmPageResult<DocBaseVO>> docPage(@Validated @RequestBody DocSearchDTO dto);
/**
* 获取指定 docIds 文档列表
*
* @return
*/
@Operation(summary = "获取指定 docIds 文档列表")
@PostMapping(value = "/api/process/model/doc/ids")
@InvokeMode(SYNC)
CommonResponse<List<DocBaseVO>> docByIds(@RequestParam List<Long> ids);
/**
* 获取指定模板的原始文档列表
*

View File

@ -122,4 +122,6 @@ public interface ExtAxModelDocService {
* @return
*/
Boolean requireDoc(DocStatusDTO dto);
List<DocBaseVO> getIds(List<Long> ids);
}

View File

@ -65,14 +65,16 @@ public class ExtAxModelDocServiceImpl implements ExtAxModelDocService {
public BpmPageResult<DocBaseVO> docPage(DocSearchDTO dto) {
Page<ExtAxModelDoc> page = extAxModelDocMapper.selectPage(new Page<>(dto.getPageNo(), dto.getPageSize()),
buildQueryWrapper(BeanMapper.copyBean(dto, ExtAxModelDoc.class)));
List<DocBaseVO> list = BeanMapper.copyList(page.getRecords(), DocBaseVO.class, (s, t) -> t.setFileType(FileTypeEnum.valueOfType(s.getFileType())));
List<DocBaseVO> list = BeanMapper.copyList(page.getRecords(), DocBaseVO.class,
(s, t) -> t.setFileType(FileTypeEnum.valueOfType(s.getFileType())));
return new BpmPageResult<>(list, page.getTotal());
}
@Override
public List<DocBaseVO> docList(DocQueryDTO dto) {
CommandExecutor commandExecutor = springProcessEngineConfiguration.getCommandExecutor();
return commandExecutor.execute(new CustomGetModelDocsCmd(dto.getProcessInstanceId(), dto.getProcessDefinitionKey(), dto.getTenantId(), extAxModelDocMapper));
return commandExecutor.execute(new CustomGetModelDocsCmd(dto.getProcessInstanceId(),
dto.getProcessDefinitionKey(), dto.getTenantId(), extAxModelDocMapper));
}
@Override
@ -110,7 +112,8 @@ public class ExtAxModelDocServiceImpl implements ExtAxModelDocService {
return new LambdaQueryWrapper<ExtAxModelDoc>()
.eq(StringUtils.hasText(entity.getModelId()), ExtAxModelDoc::getModelId, entity.getModelId())
.eq(StringUtils.hasText(entity.getModelKey()), ExtAxModelDoc::getModelKey, entity.getModelKey())
.eq(StringUtils.hasText(entity.getFileRelationId()), ExtAxModelDoc::getFileRelationId, entity.getFileRelationId())
.eq(StringUtils.hasText(entity.getFileRelationId()), ExtAxModelDoc::getFileRelationId,
entity.getFileRelationId())
.eq(StringUtils.hasText(entity.getFileType()), ExtAxModelDoc::getFileType, entity.getFileType())
.eq(StringUtils.hasText(entity.getTag()), ExtAxModelDoc::getTag, entity.getTag())
.eq(Objects.nonNull(entity.getStatus()), ExtAxModelDoc::getStatus, entity.getStatus())
@ -156,14 +159,16 @@ public class ExtAxModelDocServiceImpl implements ExtAxModelDocService {
entity.setOrder(maxOrder(dto));
extAxModelDocMapper.insert(entity);
if (Objects.equals(FileTypeEnum.HIPRINT, dto.getFileType())) {
ExtAxDocContent content = extAxDocContentService.createContent(dto.getContent(), dto.getFileType(), entity.getId());
ExtAxDocContent content = extAxDocContentService.createContent(dto.getContent(), dto.getFileType(),
entity.getId());
entity.setFileRelationId(String.valueOf(content.getId()));
extAxModelDocMapper.updateById(entity);
}
if (fireEvent) {
// 发送文档变更事件
eventPublisher.publishEvent(new DocChangeEventImpl(dto.getModelKey(), dto.getTenantId(), oldSettings, querySetting(dto.getModelKey(), dto.getTenantId())));
eventPublisher.publishEvent(new DocChangeEventImpl(dto.getModelKey(), dto.getTenantId(), oldSettings,
querySetting(dto.getModelKey(), dto.getTenantId())));
}
return entity.getId();
}
@ -196,7 +201,8 @@ public class ExtAxModelDocServiceImpl implements ExtAxModelDocService {
int flat = extAxModelDocMapper.updateById(entity);
// 发送文档变更事件
eventPublisher.publishEvent(new DocChangeEventImpl(dto.getModelKey(), dto.getTenantId(), oldSettings, querySetting(dto.getModelKey(), dto.getTenantId())));
eventPublisher.publishEvent(new DocChangeEventImpl(dto.getModelKey(), dto.getTenantId(), oldSettings,
querySetting(dto.getModelKey(), dto.getTenantId())));
return flat > 0;
}
@ -239,7 +245,8 @@ public class ExtAxModelDocServiceImpl implements ExtAxModelDocService {
if (!Objects.equals(Boolean.TRUE, tempFile)) {
// 发送文档变更事件
eventPublisher.publishEvent(new DocChangeEventImpl(origin.getModelKey(), origin.getTenantId(), oldSettings, querySetting(origin.getModelKey(), origin.getTenantId())));
eventPublisher.publishEvent(new DocChangeEventImpl(origin.getModelKey(), origin.getTenantId(),
oldSettings, querySetting(origin.getModelKey(), origin.getTenantId())));
}
return newDocId;
} else {
@ -260,7 +267,8 @@ public class ExtAxModelDocServiceImpl implements ExtAxModelDocService {
int flat = extAxModelDocMapper.deleteById(docId);
// 发送文档变更事件
eventPublisher.publishEvent(new DocChangeEventImpl(origin.getModelKey(), origin.getTenantId(), oldSettings, querySetting(origin.getModelKey(), origin.getTenantId())));
eventPublisher.publishEvent(new DocChangeEventImpl(origin.getModelKey(), origin.getTenantId(), oldSettings,
querySetting(origin.getModelKey(), origin.getTenantId())));
return flat > 0;
}
@ -284,7 +292,8 @@ public class ExtAxModelDocServiceImpl implements ExtAxModelDocService {
int flat = extAxModelDocMapper.deleteBatchIds(docIds);
// 发送文档变更事件
eventPublisher.publishEvent(new DocChangeEventImpl(entities.get(0).getModelKey(), entities.get(0).getTenantId(), entities, Collections.emptyList()));
eventPublisher.publishEvent(new DocChangeEventImpl(entities.get(0).getModelKey(),
entities.get(0).getTenantId(), entities, Collections.emptyList()));
return flat > 0;
}
@ -337,7 +346,8 @@ public class ExtAxModelDocServiceImpl implements ExtAxModelDocService {
int flat = extAxModelDocMapper.updateById(origin);
// 发送文档变更事件
eventPublisher.publishEvent(new DocChangeEventImpl(origin.getModelKey(), origin.getTenantId(), oldSettings, querySetting(origin.getModelKey(), origin.getTenantId())));
eventPublisher.publishEvent(new DocChangeEventImpl(origin.getModelKey(), origin.getTenantId(), oldSettings,
querySetting(origin.getModelKey(), origin.getTenantId())));
return flat > 0;
}
@ -351,4 +361,17 @@ public class ExtAxModelDocServiceImpl implements ExtAxModelDocService {
origin.setRequire(Objects.equals(Boolean.TRUE, dto.getStatus()));
return extAxModelDocMapper.updateById(origin) > 0;
}
@Override
public List<DocBaseVO> getIds(List<Long> ids) {
if (CollectionUtils.isEmpty(ids)) {
return Collections.emptyList();
}
List<ExtAxModelDoc> docs = extAxModelDocMapper.selectList(new LambdaQueryWrapper<ExtAxModelDoc>()
.in(ExtAxModelDoc::getId, ids)
.eq(ExtAxModelDoc::getTempFile, false)
.eq(ExtAxModelDoc::getIsDelete, 0));
return BeanMapper.copyList(docs, DocBaseVO.class,
(s, t) -> t.setFileType(FileTypeEnum.valueOfType(s.getFileType())));
}
}

View File

@ -465,6 +465,12 @@ public class BpmnProcessModelController implements ProcessModelApi {
return success(modelDocService.docPage(dto));
}
@Override
@Operation(summary = "获取指定 docIds 文档列表")
@PostMapping("/doc/ids")
public CommonResponse<List<DocBaseVO>> docByIds(@RequestParam List<Long> ids) {
return success(modelDocService.getIds(ids));
}
/**
* 根据业务 ID 获取模型文档列表自动适配公共模板和代运营
*