Package com.bytedesk.ticket.process
Class ProcessRestService
java.lang.Object
com.bytedesk.core.base.BaseRestService<ProcessEntity,ProcessRequest,ProcessResponse>
com.bytedesk.ticket.process.ProcessRestService
@Service
public class ProcessRestService
extends BaseRestService<ProcessEntity,ProcessRequest,ProcessResponse>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AuthServiceprivate final org.modelmapper.ModelMapperprivate final ProcessRepositoryprivate final org.flowable.engine.RepositoryServiceprivate final org.springframework.core.io.ResourceLoaderprivate final UidUtils -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate ProcessRequestbuildDefaultProcessRequest(String uid, String orgUid, String schema, ProcessTypeEnum type, String processName) private ProcessDefinitionResponsebuildProcessDefinitionResponse(org.flowable.engine.repository.ProcessDefinition processDefinition) convertToResponse(ProcessEntity entity) create(ProcessRequest request) protected org.springframework.data.jpa.domain.Specification<ProcessEntity>createSpecification(ProcessRequest request) 创建Specification对象,子类必须实现 用于queryByOrg的通用实现voiddelete(ProcessRequest request) voiddeleteByUid(String uid) deployProcess(String processUid) 部署流程 - 用户手动触发(不检查已存在部署,会创建新版本)deployProcess(String processUid, boolean checkExisting) 部署流程 - 统一部署入口,供 ProcessService 和内部初始化使用 使用 ProcessEntity 中存储的 schema 进行部署private voiddeployProcessByType(String orgUid, String processUid, String processPath) 初始化部署流程(从模板文件加载) 直接使用 processUid 作为 deploymentName,确保唯一性protected ProcessEntitydoSave(ProcessEntity entity) 子类实现具体的保存逻辑protected org.springframework.data.domain.Page<ProcessEntity>executePageQuery(org.springframework.data.jpa.domain.Specification<ProcessEntity> specification, org.springframework.data.domain.Pageable pageable) 执行分页查询,子类必须实现 用于queryByOrg的通用实现handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, ProcessEntity entity) private voidinitItSupportProcess(String orgUid) 初始化IT支持流程private voidinitLeaveApprovalProcess(String orgUid) 初始化请假审批流程voidinitProcess(String orgUid) voidinitProcessDemos(String orgUid) 初始化演示流程模板 用于展示工单系统的流程能力private void初始化报销审批流程voidinitThreadProcess(String orgUid) private Stringprivate Stringprivate StringloadDemoProcessSchema(String processPath) 加载演示流程模板文件private voidmarkProcessAsDeployed(String processUid, String deploymentId) org.springframework.data.domain.Page<ProcessResponse>queryByOrg(ProcessRequest request) 通用的queryByOrg实现 子类如果有特殊逻辑可以重写此方法org.springframework.data.domain.Page<ProcessResponse>queryByUser(ProcessRequest request) 通用的queryByUser实现 子类如果有特殊逻辑可以重写此方法查询已部署的流程定义列表(Flowable ProcessDefinition)resetProcess(ProcessRequest request) 重置流程为默认初始化内容private StringrewriteBpmnProcessId(String bpmnXml, String originalProcessKey, String newProcessKey) undeployProcess(String processUid) 取消部署流程update(ProcessRequest request) Methods inherited from class com.bytedesk.core.base.BaseRestService
deleteByOrgUid, findByOrgUid, getUidFromRequest, queryByUid, recover, save, setUserUidToRequest
-
Field Details
-
processRepository
-
modelMapper
private final org.modelmapper.ModelMapper modelMapper -
uidUtils
-
authService
-
repositoryService
private final org.flowable.engine.RepositoryService repositoryService -
resourceLoader
private final org.springframework.core.io.ResourceLoader resourceLoader
-
-
Constructor Details
-
ProcessRestService
public ProcessRestService()
-
-
Method Details
-
queryByOrg
Description copied from class:BaseRestService通用的queryByOrg实现 子类如果有特殊逻辑可以重写此方法- Overrides:
queryByOrgin classBaseRestService<ProcessEntity,ProcessRequest, ProcessResponse>
-
queryByUser
Description copied from class:BaseRestService通用的queryByUser实现 子类如果有特殊逻辑可以重写此方法- Overrides:
queryByUserin classBaseRestService<ProcessEntity,ProcessRequest, ProcessResponse>
-
findByUid
@Cacheable(value="process", key="#uid", unless="#result==null") public Optional<ProcessEntity> findByUid(String uid) - Specified by:
findByUidin classBaseRestService<ProcessEntity,ProcessRequest, ProcessResponse>
-
create
- Specified by:
createin classBaseRestService<ProcessEntity,ProcessRequest, ProcessResponse>
-
update
- Specified by:
updatein classBaseRestService<ProcessEntity,ProcessRequest, ProcessResponse>
-
doSave
Description copied from class:BaseRestService子类实现具体的保存逻辑- Specified by:
doSavein classBaseRestService<ProcessEntity,ProcessRequest, ProcessResponse>
-
handleOptimisticLockingFailureException
public ProcessEntity handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, ProcessEntity entity) - Specified by:
handleOptimisticLockingFailureExceptionin classBaseRestService<ProcessEntity,ProcessRequest, ProcessResponse>
-
deleteByUid
- Specified by:
deleteByUidin classBaseRestService<ProcessEntity,ProcessRequest, ProcessResponse>
-
delete
- Specified by:
deletein classBaseRestService<ProcessEntity,ProcessRequest, ProcessResponse>
-
createSpecification
protected org.springframework.data.jpa.domain.Specification<ProcessEntity> createSpecification(ProcessRequest request) Description copied from class:BaseRestService创建Specification对象,子类必须实现 用于queryByOrg的通用实现- Specified by:
createSpecificationin classBaseRestService<ProcessEntity,ProcessRequest, ProcessResponse>
-
executePageQuery
protected org.springframework.data.domain.Page<ProcessEntity> executePageQuery(org.springframework.data.jpa.domain.Specification<ProcessEntity> specification, org.springframework.data.domain.Pageable pageable) Description copied from class:BaseRestService执行分页查询,子类必须实现 用于queryByOrg的通用实现- Specified by:
executePageQueryin classBaseRestService<ProcessEntity,ProcessRequest, ProcessResponse>
-
convertToResponse
- Specified by:
convertToResponsein classBaseRestService<ProcessEntity,ProcessRequest, ProcessResponse>
-
initProcess
-
initThreadProcess
-
deployProcessByType
private void deployProcessByType(String orgUid, String processUid, String processPath) throws IOException 初始化部署流程(从模板文件加载) 直接使用 processUid 作为 deploymentName,确保唯一性- Throws:
IOException
-
rewriteBpmnProcessId
-
loadDefaultThreadProcessSchema
- Throws:
IOException
-
buildDefaultProcessRequest
private ProcessRequest buildDefaultProcessRequest(String uid, String orgUid, String schema, ProcessTypeEnum type, String processName) -
markProcessAsDeployed
-
deployProcess
部署流程 - 统一部署入口,供 ProcessService 和内部初始化使用 使用 ProcessEntity 中存储的 schema 进行部署- Parameters:
processUid- 流程定义 UIDcheckExisting- 是否检查已存在的部署(true: 初始化场景,false: 用户手动部署)- Returns:
- ProcessDefinitionResponse 部署结果
-
deployProcess
部署流程 - 用户手动触发(不检查已存在部署,会创建新版本) -
queryDeployedProcessDefinitions
查询已部署的流程定义列表(Flowable ProcessDefinition) -
undeployProcess
取消部署流程 -
buildProcessDefinitionResponse
private ProcessDefinitionResponse buildProcessDefinitionResponse(org.flowable.engine.repository.ProcessDefinition processDefinition) -
loadDefaultProcessSchema
- Throws:
IOException
-
resetProcess
重置流程为默认初始化内容 -
initProcessDemos
初始化演示流程模板 用于展示工单系统的流程能力 -
initLeaveApprovalProcess
初始化请假审批流程- Throws:
IOException
-
initReimbursementApprovalProcess
初始化报销审批流程- Throws:
IOException
-
initItSupportProcess
初始化IT支持流程- Throws:
IOException
-
loadDemoProcessSchema
加载演示流程模板文件- Throws:
IOException
-