流程模型相关接口开发
This commit is contained in:
parent
62498ed749
commit
7596017adf
@ -40,6 +40,7 @@ public class UserDao extends ServiceImpl<UserMapper, User> {
|
||||
.like(StringUtils.isNotBlank(userQO.getEmail()), User::getEmail, userQO.getEmail())
|
||||
.orderByDesc(User::getCreateAt)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
public IPage<User> find(UserQO1 userQO, PageQO page) {
|
||||
|
||||
@ -1,10 +1,26 @@
|
||||
package cn.axzo.server.repository.bpmModel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class BpmJsonNode {
|
||||
|
||||
private BpmJsonNode(ShizhiJsonNode shizhiJsonNode) {
|
||||
|
||||
}
|
||||
|
||||
private BpmJsonNode() {
|
||||
|
||||
}
|
||||
|
||||
class ShizhiJsonNode {
|
||||
private String id;
|
||||
private String type;
|
||||
private String config;
|
||||
private List<ShizhiJsonNode> children;
|
||||
}
|
||||
|
||||
private String id;
|
||||
private String parentId;
|
||||
private String type; // task, branch,
|
||||
@ -14,4 +30,66 @@ public class BpmJsonNode {
|
||||
private BpmJsonNode children;
|
||||
private List<BpmJsonNode> branches;
|
||||
|
||||
public void build(String[] args) {
|
||||
BpmJsonNode node = new BpmJsonNode();
|
||||
ShizhiJsonNode tempShuzhi = new ShizhiJsonNode("Asdasdgjalksdkl");
|
||||
findChildren(node, tempShuzhi);
|
||||
}
|
||||
|
||||
|
||||
public List<BpmJsonNode> findCondition(BpmJsonNode node,ShizhiJsonNode shuzhiJsonNode) {
|
||||
|
||||
|
||||
|
||||
if (shuzhiJsonNode.type.equals("condition")) {
|
||||
|
||||
List<BpmJsonNode> branchList = new ArrayList<BpmJsonNode>();
|
||||
ShizhiJsonNode lasteatShuzhi = new ShizhiJsonNode();
|
||||
|
||||
for (ShizhiJsonNode temp : shuzhiJsonNode.children) {
|
||||
branchList.add( findChildren(new BpmJsonNode(), temp) );
|
||||
lasteatShuzhi = shuzhiJsonNode;
|
||||
}
|
||||
|
||||
node.branches = branchList;
|
||||
return branchList;
|
||||
}
|
||||
|
||||
if (shuzhiJsonNode.type.equals("task")) {
|
||||
findChildren(node, shuzhiJsonNode);
|
||||
}
|
||||
|
||||
if (shuzhiJsonNode.type.equals("endCondition")) {
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public BpmJsonNode findChildren(BpmJsonNode node, ShizhiJsonNode shuzhiJsonNode) {
|
||||
|
||||
if (shuzhiJsonNode == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (shuzhiJsonNode.type.equals("task")) {
|
||||
node.children = new BpmJsonNode(shuzhiJsonNode);
|
||||
findChildren(node.children, shuzhiJsonNode.children.get(0));
|
||||
}
|
||||
|
||||
if (shuzhiJsonNode.type.equals("startCondition")) {
|
||||
node.branches = findCondition(node, shuzhiJsonNode);
|
||||
findChildren(node, shuzhiJsonNode.children.get(0));
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -17,15 +17,20 @@ public interface BpmModelService {
|
||||
PageResult<BpmModelPageItemVO> getModelPage(BpmModelPageDTO modelPageDTO);
|
||||
|
||||
/**
|
||||
* 创建流程
|
||||
* 创建流程,
|
||||
* return modelId的主键
|
||||
* */
|
||||
Boolean createBpmModel(BpmModelCreateDTO createDTO);
|
||||
String createBpmModel(BpmModelCreateDTO createDTO);
|
||||
|
||||
/**
|
||||
* 获取模型
|
||||
* */
|
||||
BpmModelDetailVO getModelDetailById(String modelId);
|
||||
|
||||
BpmModelDetailVO getModelDetail(String modelId);
|
||||
/**
|
||||
* 获取模型
|
||||
* */
|
||||
BpmModelDetailVO getModelDetailByKey(String modelKey);
|
||||
|
||||
/**
|
||||
* 修改流程信息
|
||||
@ -42,7 +47,4 @@ public interface BpmModelService {
|
||||
* */
|
||||
Boolean deleteBpmModel(String id);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
package cn.axzo.server.service.converter;
|
||||
|
||||
import cn.axzo.server.service.dto.response.model.BpmModelDetailVO;
|
||||
import org.flowable.engine.repository.Model;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
|
||||
public class BpmModelConverter {
|
||||
|
||||
|
||||
public static BpmModelDetailVO convert(Model model) {
|
||||
if (ObjectUtils.isEmpty(model)) {
|
||||
return null;
|
||||
}
|
||||
BpmModelDetailVO detailVO = new BpmModelDetailVO();
|
||||
detailVO.setCreateTime(model.getCreateTime());
|
||||
detailVO.setKey(model.getKey());
|
||||
detailVO.setLastUpdateTime(model.getLastUpdateTime());
|
||||
detailVO.setCreateTime(model.getCreateTime());
|
||||
detailVO.setLastUpdateTime(model.getLastUpdateTime());
|
||||
detailVO.setCategory(model.getCategory());
|
||||
detailVO.setTenantId(model.getTenantId());
|
||||
detailVO.setVersion(model.getVersion());
|
||||
detailVO.setName(model.getName());
|
||||
return detailVO;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.server.service.dto.request.model;
|
||||
|
||||
import cn.axzo.server.repository.bpmModel.BpmJsonNode;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
@ -38,13 +39,15 @@ public class BpmModelCreateDTO {
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 流程icon的 url
|
||||
* MetaInfo 自定义数据,可以放icon等任何
|
||||
* */
|
||||
private String icon;
|
||||
private Object metaInfo;
|
||||
|
||||
/**
|
||||
* 流程的Json 结构
|
||||
*
|
||||
* */
|
||||
private String bpmJson;
|
||||
private BpmJsonNode node;
|
||||
|
||||
private String tenantId;
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ import org.hibernate.validator.constraints.Length;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@ -22,24 +23,18 @@ public class BpmModelBaseVO {
|
||||
* */
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 流程描述
|
||||
* */
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 流程分类
|
||||
* */
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 流程icon的 url
|
||||
* */
|
||||
private String icon;
|
||||
|
||||
@ApiModelProperty(value = "创建时间", required = true)
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "最后更新时间", required = true)
|
||||
private Date lastUpdateTime;
|
||||
|
||||
|
||||
/**
|
||||
* 版本
|
||||
@ -47,21 +42,17 @@ public class BpmModelBaseVO {
|
||||
@ApiModelProperty(value = "版本", required = true, example = "1")
|
||||
private Integer version;
|
||||
|
||||
/*
|
||||
/**
|
||||
* 流程实例Id,如果已经部署了,则有值,如未部署,为空
|
||||
* */
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 部署时间
|
||||
*/
|
||||
@ApiModelProperty(value = "部署时间", required = true)
|
||||
private Date deploymentTime;
|
||||
* icon / 模型描述放这里,获取时原样返回;
|
||||
* */
|
||||
private Map metaInfo;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 终端状态
|
||||
*/
|
||||
@ApiModelProperty(value = "流程状态", required = true, example = "1", notes = "参见 SuspensionState 枚举:1 激活;2:挂起")
|
||||
private Integer suspensionState;
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.server.service.dto.response.model;
|
||||
|
||||
import cn.axzo.server.repository.bpmModel.BpmJsonNode;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
@ -13,6 +14,6 @@ public class BpmModelDetailVO extends BpmModelBaseVO{
|
||||
* 流程的 Json 结构
|
||||
*
|
||||
* */
|
||||
private String bpmJson;
|
||||
private BpmJsonNode bpmJson;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,88 @@
|
||||
package cn.axzo.server.service.impl;
|
||||
|
||||
import cn.axzo.server.service.BpmModelService;
|
||||
import cn.axzo.server.service.BpmProcessService;
|
||||
import cn.axzo.server.service.converter.BpmModelConverter;
|
||||
import cn.axzo.server.service.dto.request.model.BpmModelCreateDTO;
|
||||
import cn.axzo.server.service.dto.request.model.BpmModelPageDTO;
|
||||
import cn.axzo.server.service.dto.request.model.BpmModelUpdateDTO;
|
||||
import cn.axzo.server.service.dto.response.PageResult;
|
||||
import cn.axzo.server.service.dto.response.model.BpmModelDetailVO;
|
||||
import cn.axzo.server.service.dto.response.model.BpmModelPageItemVO;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.flowable.bpmn.model.BpmnModel;
|
||||
import org.flowable.engine.RepositoryService;
|
||||
import org.flowable.engine.repository.Model;
|
||||
import org.flowable.engine.repository.ModelQuery;
|
||||
import org.flowable.engine.repository.ProcessDefinitionQuery;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
public class BpmModelServiceImpl implements BpmModelService {
|
||||
|
||||
@Resource
|
||||
@Lazy
|
||||
private RepositoryService repositoryService;
|
||||
|
||||
@Override
|
||||
public PageResult<BpmModelPageItemVO> getModelPage(BpmModelPageDTO modelPageDTO) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createBpmModel(BpmModelCreateDTO createDTO) {
|
||||
|
||||
Model model = repositoryService.newModel();
|
||||
model.setName(createDTO.getName());
|
||||
model.setMetaInfo(JSON.toJSONString(createDTO.getMetaInfo()));
|
||||
model.setCategory(createDTO.getCategory());
|
||||
model.setKey(createDTO.getKey());
|
||||
model.setTenantId(createDTO.getTenantId());
|
||||
|
||||
|
||||
Model existModel = repositoryService.createModelQuery().modelKey(createDTO.getKey()).singleResult();
|
||||
if (!ObjectUtils.isEmpty(existModel)) {
|
||||
throw new RuntimeException("模型已存在");
|
||||
}
|
||||
repositoryService.saveModel(model);
|
||||
return model.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取模型
|
||||
* */
|
||||
@Override
|
||||
public BpmModelDetailVO getModelDetailById(String modelId) {
|
||||
Model model = repositoryService.getModel(modelId);
|
||||
return BpmModelConverter.convert(model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取模型
|
||||
* */
|
||||
@Override
|
||||
public BpmModelDetailVO getModelDetailByKey(String modelKey) {
|
||||
Model model = repositoryService.createModelQuery().modelKey(modelKey).singleResult();
|
||||
return BpmModelConverter.convert(model);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Boolean updateBpmModel(BpmModelUpdateDTO updateDTO) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean deployBpmModel(String modelId) {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean deleteBpmModel(String id) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -6,8 +6,14 @@ import cn.axzo.server.service.dto.request.task.BpmTaskTodoPageDTO;
|
||||
import cn.axzo.server.service.dto.response.PageResult;
|
||||
import cn.axzo.server.service.dto.response.task.BpmTaskDonePageItemVO;
|
||||
import cn.axzo.server.service.dto.response.task.BpmTaskTodoPageItemVO;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public PageResult<BpmTaskTodoPageItemVO> getTodoTaskPage(BpmTaskTodoPageDTO taskTodoPageDTO) {
|
||||
return null;
|
||||
|
||||
@ -1,55 +0,0 @@
|
||||
package cn.axzo.server.service.model;
|
||||
|
||||
import cn.axzo.server.service.BpmModelService;
|
||||
import cn.axzo.server.service.dto.request.model.BpmModelCreateDTO;
|
||||
import cn.axzo.server.service.dto.request.model.BpmModelPageDTO;
|
||||
import cn.axzo.server.service.dto.request.model.BpmModelUpdateDTO;
|
||||
import cn.axzo.server.service.dto.response.PageResult;
|
||||
import cn.axzo.server.service.dto.response.model.BpmModelDetailVO;
|
||||
import cn.axzo.server.service.dto.response.model.BpmModelPageItemVO;
|
||||
import org.flowable.engine.RepositoryService;
|
||||
import org.flowable.engine.repository.Model;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
public class BpmModelServiceImpl implements BpmModelService {
|
||||
|
||||
@Resource
|
||||
@Lazy
|
||||
private RepositoryService repositoryService;
|
||||
|
||||
@Override
|
||||
public PageResult<BpmModelPageItemVO> getModelPage(BpmModelPageDTO modelPageDTO) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean createBpmModel(BpmModelCreateDTO createDTO) {
|
||||
|
||||
Model model = repositoryService.newModel();
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BpmModelDetailVO getModelDetail(String modelId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateBpmModel(BpmModelUpdateDTO updateDTO) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean deployBpmModel(String modelId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean deleteBpmModel(String id) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user