This commit is contained in:
jack ning
2025-11-04 15:10:58 +08:00
parent cb8bf2ea26
commit 86a139dd67
3 changed files with 37 additions and 39 deletions

View File

@@ -25,7 +25,7 @@ public interface TicketProcessRepository extends JpaRepository<TicketProcessEnti
Optional<TicketProcessEntity> findByKeyAndOrgUid(String key, String orgUid);
List<TicketProcessEntity> findByOrgUidAndDeployedTrue(String orgUid);
List<TicketProcessEntity> findByOrgUidAndStatus(String orgUid, String status);
// Boolean existsByPlatform(String platform);
}

View File

@@ -14,9 +14,6 @@
package com.bytedesk.ticket.process;
import java.util.List;
import java.util.stream.Collectors;
import org.flowable.engine.repository.ProcessDefinition;
import org.springframework.data.domain.Page;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
@@ -84,22 +81,10 @@ public class TicketProcessRestController extends BaseRestController<TicketProces
// 查询流程定义列表
@GetMapping("/query/deployments")
public ResponseEntity<?> queryProcesses(TicketProcessRequest request) {
List<ProcessDefinition> definitions = processService.query(request);
List<TicketProcessDefinitionResponse> ticketProcessResponses = definitions.stream()
.map(def -> TicketProcessDefinitionResponse.builder()
.id(def.getId())
.key(def.getKey())
.name(def.getName())
.description(def.getDescription())
.version(def.getVersion())
.deploymentId(def.getDeploymentId())
.tenantId(def.getTenantId())
.build())
.collect(Collectors.toList());
return ResponseEntity.ok(JsonResult.success(ticketProcessResponses));
List<TicketProcessDefinitionResponse> definitions = processService.query(request);
return ResponseEntity.ok(JsonResult.success(definitions));
}
// 部署流程
@@ -114,22 +99,10 @@ public class TicketProcessRestController extends BaseRestController<TicketProces
// 取消部署流程
@PostMapping("/undeploy")
public ResponseEntity<?> undeployProcess(@RequestBody TicketProcessRequest request) {
List<ProcessDefinition> definitions = processService.undeploy(request);
// 转换为 DTO 列表返回
List<TicketProcessDefinitionResponse> ticketProcessResponses = definitions.stream()
.map(def -> TicketProcessDefinitionResponse.builder()
.id(def.getId())
.key(def.getKey())
.name(def.getName())
.description(def.getDescription())
.version(def.getVersion())
.deploymentId(def.getDeploymentId())
.tenantId(def.getTenantId())
.build())
.collect(Collectors.toList());
return ResponseEntity.ok(JsonResult.success(ticketProcessResponses));
List<TicketProcessDefinitionResponse> definitions = processService.undeploy(request);
return ResponseEntity.ok(JsonResult.success(definitions));
}
@Override

View File

@@ -36,14 +36,14 @@ public class TicketProcessService {
private final TicketProcessRepository ticketProcessRepository;
// 查询流程
public List<ProcessDefinition> query(TicketProcessRequest request) {
public List<TicketProcessDefinitionResponse> query(TicketProcessRequest request) {
String orgUid = request.getOrgUid();
if (orgUid == null) {
throw new RuntimeException("租户ID不能为空");
}
// 先查询已部署的流程定义实体
List<TicketProcessEntity> deployedProcesses = ticketProcessRepository.findByOrgUidAndDeployedTrue(orgUid);
List<TicketProcessEntity> deployedProcesses = ticketProcessRepository.findByOrgUidAndStatus(orgUid, TicketProcessStatusEnum.DEPLOYED.name());
// 收集所有部署ID
Set<String> deploymentIds = deployedProcesses.stream()
@@ -73,7 +73,19 @@ public class TicketProcessService {
processDefinition.getDeploymentId());
}
return processList;
List<TicketProcessDefinitionResponse> ticketProcessResponses = processList.stream()
.map(def -> TicketProcessDefinitionResponse.builder()
.id(def.getId())
.key(def.getKey())
.name(def.getName())
.description(def.getDescription())
.version(def.getVersion())
.deploymentId(def.getDeploymentId())
.tenantId(def.getTenantId())
.build())
.collect(Collectors.toList());
return ticketProcessResponses;
}
// 部署流程
@@ -124,7 +136,7 @@ public class TicketProcessService {
}
// 删除流程
public List<ProcessDefinition> undeploy(TicketProcessRequest request) {
public List<TicketProcessDefinitionResponse> undeploy(TicketProcessRequest request) {
Optional<TicketProcessEntity> ticketProcess = ticketProcessRepository.findByUid(request.getUid());
if (!ticketProcess.isPresent()) {
@@ -165,10 +177,23 @@ public class TicketProcessService {
List<ProcessDefinition> remainingProcesses = repositoryService.createProcessDefinitionQuery()
.deploymentId(deploymentId)
.list();
// 转换为 DTO 列表返回
List<TicketProcessDefinitionResponse> ticketProcessResponses = remainingProcesses.stream()
.map(def -> TicketProcessDefinitionResponse.builder()
.id(def.getId())
.key(def.getKey())
.name(def.getName())
.description(def.getDescription())
.version(def.getVersion())
.deploymentId(def.getDeploymentId())
.tenantId(def.getTenantId())
.build())
.collect(Collectors.toList());
log.info("删除后流程版本数量: {}", remainingProcesses.size());
return processes; // 返回删除前的流程定义列表
return ticketProcessResponses; // 返回删除前的流程定义列表
}