diff --git a/pom.xml b/pom.xml
index 833d9f4..b4aeb7f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -250,11 +250,11 @@
-
- org.activiti
- activiti-spring-boot-starter
- 7.1.0.M6
-
+
+
+
+
+
com.aliyun.oss
diff --git a/src/main/java/com/zilber/boot/ZilberbootApplication.java b/src/main/java/com/zilber/boot/TermiCheckLabApplication.java
similarity index 83%
rename from src/main/java/com/zilber/boot/ZilberbootApplication.java
rename to src/main/java/com/zilber/boot/TermiCheckLabApplication.java
index e0de881..6736bda 100644
--- a/src/main/java/com/zilber/boot/ZilberbootApplication.java
+++ b/src/main/java/com/zilber/boot/TermiCheckLabApplication.java
@@ -10,16 +10,13 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
*
* @author lsc
*/
-
-
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
@EnableKnife4j
-public class ZilberbootApplication
+public class TermiCheckLabApplication
{
public static void main(String[] args)
{
- // System.setProperty("spring.devtools.restart.enabled", "false");
- SpringApplication.run(ZilberbootApplication.class, args);
+ SpringApplication.run(TermiCheckLabApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ 启动成功 ლ(´ڡ`ლ)゙ \n" +
" _ _ _ \n" +
" (_) | | \n" +
diff --git a/src/main/java/com/zilber/boot/activiti/controller/BpmnController.java b/src/main/java/com/zilber/boot/activiti/controller/BpmnController.java
deleted file mode 100644
index 94155ac..0000000
--- a/src/main/java/com/zilber/boot/activiti/controller/BpmnController.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package com.zilber.boot.activiti.controller;
-
-
-import com.github.pagehelper.PageInfo;
-import com.zilber.boot.activiti.dto.*;
-import com.zilber.boot.activiti.service.*;
-import com.zilber.boot.activiti.vo.DefinitionVO;
-import com.zilber.boot.activiti.vo.HistoricTaskVO;
-import com.zilber.boot.activiti.vo.InstanceVO;
-import com.zilber.boot.activiti.vo.TaskVO;
-import com.zilber.boot.utils.AjaxResult;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.IOUtils;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-import javax.validation.constraints.NotBlank;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.HashMap;
-import java.util.List;
-
-@Validated
-@RestController
-@RequestMapping("/bpmn")
-@Api(tags = "工作流接口")
-@Slf4j
-public class BpmnController {
-
- @Resource
- private DefinitionService definitionService;
-
- @Resource
- private InstanceService instanceService;
-
- @Resource
- private TaskService taskService;
-
- @Resource
- private HistoryService historyService;
-
- @PostMapping("/definition/upload")
- @ApiOperation("上传流程图")
- public AjaxResult uploadAndDeployment(
- @RequestParam @ApiParam("名称") String name,
- @RequestParam @ApiParam("上传的文件") MultipartFile file) {
- definitionService.uploadAndDeployment(name, file);
- return AjaxResult.success();
- }
-
- @PostMapping("/definition")
- @ApiOperation("保存流程图")
- public AjaxResult saveAndDeployment(@RequestBody @Valid DeploymentDTO dto) {
- definitionService.saveAndDeployment(dto.getName(), dto.getXml());
- return AjaxResult.success();
- }
-
- @GetMapping("/definition/page")
- @ApiOperation("查询流程定义列表")
- public AjaxResult getDefinitionPage(@Valid PageQueryDTO dto) {
- PageInfo page = new PageInfo<>(definitionService.getDefinitionPage(dto));
- return AjaxResult.success(page);
- }
-
- @GetMapping("/definition/list/by/{key}")
- @ApiOperation("查询指定Key的流程定义所有列表")
- public AjaxResult getVersionList(
- @PathVariable @NotBlank String key) {
- return AjaxResult.success(definitionService.getVersionList(key));
- }
-
- @GetMapping("/definition/by/key/{key}")
- @ApiOperation("查询流程图,XML字符串格式")
- public AjaxResult getDeploymentXMLByKey(
- @PathVariable @ApiParam("流程定义Key") @NotBlank String key) {
- String xmlString = definitionService.getDeploymentXML(key);
- HashMap map = new HashMap<>();
- map.put("xml", xmlString);
- return AjaxResult.success(map);
- }
-
- @GetMapping("/definition/by/{id}")
- @ApiOperation("查询流程图,XML字符串格式")
- public AjaxResult getDeploymentXML(
- @PathVariable @ApiParam("流程部署ID") @NotBlank String id,
- @RequestParam @ApiParam("资源文件名") @NotBlank String name) {
- String xmlString = definitionService.getDeploymentXML(id, name);
- HashMap map = new HashMap<>();
- map.put("xml", xmlString);
- return AjaxResult.success(map);
- }
-
- @GetMapping("/definition/file/{id}")
- @ApiOperation("查询流程图,XML文件格式")
- public void getDeploymentFile(
- HttpServletResponse response,
- @PathVariable @ApiParam("流程部署ID") @NotBlank String id,
- @RequestParam @ApiParam("资源文件名") @NotBlank String name) {
- InputStream is = definitionService.getDeploymentStream(id, name);
- OutputStream os;
- try {
- os = response.getOutputStream();
- IOUtils.copy(is, os);
-
- is.close();
- os.close();
- } catch (IOException e) {
- log.error("查看流程文件失败", e);
- }
- }
-
- @DeleteMapping("/definition/by/{id}")
- @ApiOperation("删除流程定义")
- public AjaxResult deleteDefinitionById(
- @PathVariable @ApiParam("流程部署ID") @NotBlank String id) {
- definitionService.deleteById(id);
- return AjaxResult.success();
- }
-
- @GetMapping("/instance/page")
- @ApiOperation("查询流程实例列表")
- public AjaxResult getInstancePage(@Valid PageQueryDTO dto) {
- PageInfo page = new PageInfo<>(instanceService.getInstancePage(dto));
- return AjaxResult.success(page);
- }
-
- @PostMapping("/instance")
- @ApiOperation("启动流程实例")
- public AjaxResult startInstance(@RequestBody @Valid InstanceDTO dto) {
- instanceService.start(dto);
- return AjaxResult.success();
- }
-
- @PutMapping("/instance/suspend/by/{id}")
- @ApiOperation("挂起流程实例")
- public AjaxResult suspendInstance(@PathVariable @ApiParam("流程实例ID") @NotBlank String id) {
- instanceService.suspend(id);
- return AjaxResult.success();
- }
-
- @PutMapping("/instance/resume/by/{id}")
- @ApiOperation("激活/重启流程实例")
- public AjaxResult resumeInstance(@PathVariable @ApiParam("流程实例ID") @NotBlank String id) {
- instanceService.resume(id);
- return AjaxResult.success();
- }
-
- @DeleteMapping("/instance/by/{id}")
- @ApiOperation("取消流程实例")
- public AjaxResult deleteInstanceById(@PathVariable @ApiParam("流程实例ID") @NotBlank String id) {
- instanceService.cancelById(id);
- return AjaxResult.success();
- }
-
- @GetMapping("/instance/variables/by/{id}")
- @ApiOperation("查询流程参数")
- public AjaxResult instanceVariables(@PathVariable @ApiParam("流程实例ID") @NotBlank String id) {
- return AjaxResult.success(instanceService.getVariables(id));
- }
-
- @GetMapping("/task/page")
- @ApiOperation("查看待办任务")
- public AjaxResult taskPage(@Valid TaskQueryDTO dto) {
- PageInfo page = new PageInfo<>(taskService.taskPage(dto));
- return AjaxResult.success(page);
- }
-
- @PutMapping("/task/{id}")
- @ApiOperation("完成任务")
- public AjaxResult completeTask(
- @PathVariable @NotBlank @ApiParam("流程任务ID") String id,
- @RequestBody @Valid TaskCompleteDTO dto) {
- taskService.complete(dto.getUserCode(), id, dto);
- return AjaxResult.success();
- }
-
- @GetMapping("/historic/task/page")
- @ApiOperation("查看历史任务")
- public AjaxResult historicTaskPage(@Valid TaskQueryDTO dto) {
- PageInfo page = new PageInfo<>(historyService.historicTaskPage(dto));
- return AjaxResult.success(page);
- }
-
- @GetMapping("/historic/task/list")
- @ApiOperation("任务实例历史")
- public List getHistoryListByInstanceId(
- @RequestParam @ApiParam("流程实例ID") @NotBlank String instanceId) {
- return historyService.getListOfInstance(instanceId);
- }
-}
diff --git a/src/main/java/com/zilber/boot/activiti/dto/DeploymentDTO.java b/src/main/java/com/zilber/boot/activiti/dto/DeploymentDTO.java
deleted file mode 100644
index 0ca7217..0000000
--- a/src/main/java/com/zilber/boot/activiti/dto/DeploymentDTO.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.zilber.boot.activiti.dto;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.validation.constraints.NotBlank;
-
-@Getter
-@Setter
-@ApiModel("流程部署提交")
-public class DeploymentDTO {
-
- @NotBlank(message = "名称不能为空")
- @ApiModelProperty(value = "名称", required = true)
- private String name;
-
- @NotBlank(message = "bpmn文件xml不能为空")
- @ApiModelProperty(value = "bpmn文件xml", required = true)
- private String xml;
-
-}
diff --git a/src/main/java/com/zilber/boot/activiti/dto/InstanceDTO.java b/src/main/java/com/zilber/boot/activiti/dto/InstanceDTO.java
deleted file mode 100644
index 115b9d4..0000000
--- a/src/main/java/com/zilber/boot/activiti/dto/InstanceDTO.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.zilber.boot.activiti.dto;
-
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.*;
-import org.hibernate.validator.constraints.Length;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.util.Map;
-
-@Getter
-@Setter
-@AllArgsConstructor
-@NoArgsConstructor
-@Builder
-@ApiModel("启动流程实例")
-public class InstanceDTO {
-
- @NotBlank
- @ApiModelProperty(value = "流程定义Key")
- @Length(max = 32)
- private String procDefKey;
-
- @Length(max = 24)
- @ApiModelProperty(value = "发起人")
- private String createBy;
-
- @ApiModelProperty(value = "流程变量")
- private Map variables;
-
-}
diff --git a/src/main/java/com/zilber/boot/activiti/dto/PageQueryDTO.java b/src/main/java/com/zilber/boot/activiti/dto/PageQueryDTO.java
deleted file mode 100644
index 82f309f..0000000
--- a/src/main/java/com/zilber/boot/activiti/dto/PageQueryDTO.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.zilber.boot.activiti.dto;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.validation.constraints.Max;
-import javax.validation.constraints.Positive;
-import javax.validation.constraints.PositiveOrZero;
-import java.io.Serializable;
-
-@Getter
-@Setter
-public class PageQueryDTO implements Serializable {
-
- @ApiModelProperty("每页记录数")
- @Positive(message = "分页数量必须为正整数")
- private Integer pageSize = 20;
-
- @ApiModelProperty("当前页数")
- @PositiveOrZero(message = "分页数不正确")
- private Integer pageNo = 0;
-}
diff --git a/src/main/java/com/zilber/boot/activiti/dto/TaskCompleteDTO.java b/src/main/java/com/zilber/boot/activiti/dto/TaskCompleteDTO.java
deleted file mode 100644
index 16e422d..0000000
--- a/src/main/java/com/zilber/boot/activiti/dto/TaskCompleteDTO.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.zilber.boot.activiti.dto;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-import org.hibernate.validator.constraints.Length;
-
-import javax.validation.constraints.NotNull;
-import java.util.Map;
-
-@Getter
-@Setter
-@ApiModel("完成流程任务")
-public class TaskCompleteDTO {
-
- @NotNull(message = "请选择审批结果")
- @ApiModelProperty("审批状态:1-通过 0-拒绝")
- private Integer status;
-
- @Length(max = 512)
- @ApiModelProperty("意见")
- private String remark;
-
- @ApiModelProperty(value = "流程变量")
- private Map variables;
-
- @ApiModelProperty("用户")
- private String userCode;
-}
diff --git a/src/main/java/com/zilber/boot/activiti/dto/TaskQueryDTO.java b/src/main/java/com/zilber/boot/activiti/dto/TaskQueryDTO.java
deleted file mode 100644
index 8ca6f30..0000000
--- a/src/main/java/com/zilber/boot/activiti/dto/TaskQueryDTO.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.zilber.boot.activiti.dto;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-@ApiModel("任务查询")
-public class TaskQueryDTO extends PageQueryDTO {
-
- @ApiModelProperty("流程定义Key")
- private String procDefKey;
-
- @ApiModelProperty("任务执行人")
- private String assignee;
-
- @ApiModelProperty("流程实例ID")
- private String procInstId;
-
-}
diff --git a/src/main/java/com/zilber/boot/activiti/listen/ApplyListener.java b/src/main/java/com/zilber/boot/activiti/listen/ApplyListener.java
deleted file mode 100644
index 83eb32c..0000000
--- a/src/main/java/com/zilber/boot/activiti/listen/ApplyListener.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.zilber.boot.activiti.listen;
-
-import org.activiti.engine.delegate.DelegateExecution;
-import org.activiti.engine.delegate.ExecutionListener;
-
-public class ApplyListener implements ExecutionListener {
-
- @Override
- public void notify(DelegateExecution execution) {
- String eventName = execution.getEventName();
- if ("start".endsWith(eventName)) {
- System.out.println("流程 start===");
- } else if ("end".endsWith(eventName)) {
- System.out.println("流程 end===");
- }
- }
-}
diff --git a/src/main/java/com/zilber/boot/activiti/listen/ApplyTaskListener.java b/src/main/java/com/zilber/boot/activiti/listen/ApplyTaskListener.java
deleted file mode 100644
index e925bff..0000000
--- a/src/main/java/com/zilber/boot/activiti/listen/ApplyTaskListener.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.zilber.boot.activiti.listen;
-
-import org.activiti.engine.delegate.DelegateTask;
-import org.activiti.engine.delegate.TaskListener;
-
-public class ApplyTaskListener implements TaskListener {
-
- @Override
- public void notify(DelegateTask delegateTask) {
- System.out.println("===========进来了==============");
- String eventName = delegateTask.getEventName();
- if ("create".endsWith(eventName)) {
- System.out.println("任务create===" + delegateTask.getName());
- } else if ("complete".endsWith(eventName)) {
- System.out.println("任务task complete===" + delegateTask.getName());
- } else if ("delete".endsWith(eventName)) {
- System.out.println("任务task delete===" + delegateTask.getName());
- } else if ("assignment".endsWith(eventName)) {
- System.out.println("任务task assignment===" + delegateTask.getName());
- }
- }
-
-}
diff --git a/src/main/java/com/zilber/boot/activiti/service/DefinitionService.java b/src/main/java/com/zilber/boot/activiti/service/DefinitionService.java
deleted file mode 100644
index 9ed78b6..0000000
--- a/src/main/java/com/zilber/boot/activiti/service/DefinitionService.java
+++ /dev/null
@@ -1,164 +0,0 @@
-package com.zilber.boot.activiti.service;
-
-import com.zilber.boot.activiti.dto.PageQueryDTO;
-import com.zilber.boot.activiti.vo.DefinitionVO;
-import com.zilber.boot.exception.ServiceException;
-import org.activiti.engine.RepositoryService;
-import org.activiti.engine.repository.ProcessDefinition;
-import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.io.IOUtils;
-
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringWriter;
-import java.nio.charset.StandardCharsets;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.zip.ZipInputStream;
-
-@Service
-public class DefinitionService {
-
- @Autowired
- private RepositoryService repositoryService;
-
- /**
- * 上传并部署流程定义
- *
- * @param name 流程定义名称
- * @param file 上传的文件
- */
- public void uploadAndDeployment(String name, MultipartFile file) {
- try {
- String filename = file.getOriginalFilename();
- String extension = FilenameUtils.getExtension(filename);
- InputStream fileInputStream = file.getInputStream();
- if ("zip".equals(extension)) {
- ZipInputStream zip = new ZipInputStream(fileInputStream);
- repositoryService.createDeployment()
- .addZipInputStream(zip)
- .name(name)
- .deploy();
- } else {
- repositoryService.createDeployment()
- .addInputStream(filename, fileInputStream)
- .name(name)
- .deploy();
- }
- } catch (Exception e) {
- throw new ServiceException(e.getMessage());
- }
- }
-
- public List getDefinitionPage(PageQueryDTO dto) {
- List list = repositoryService.createProcessDefinitionQuery()
- .latestVersion().listPage(dto.getPageNo() * dto.getPageSize(), dto.getPageSize());
- list.sort((y, x) -> x.getVersion() - y.getVersion());
-
- return list.stream().map(processDefinition -> {
- DefinitionVO vo = new DefinitionVO();
- BeanUtils.copyProperties(processDefinition, vo);
- return vo;
- }).collect(Collectors.toList());
- }
-
- /**
- * 根据流程定义Key获取历史版本
- *
- * @param key 流程定义Key
- * @return 历史版本列表
- */
- public List getVersionList(String key) {
- List list = repositoryService.createProcessDefinitionQuery()
- .processDefinitionKey(key)
- .orderByProcessDefinitionVersion().desc()
- .list();
- return list.stream().map(processDefinition -> {
- DefinitionVO vo = new DefinitionVO();
- BeanUtils.copyProperties(processDefinition, vo);
- return vo;
- }).collect(Collectors.toList());
- }
-
- /**
- * 在线绘制流程图保存
- *
- * @param name 流程名称
- * @param xml xml数据
- */
- public void saveAndDeployment(String name, String xml) {
- repositoryService.createDeployment()
- .addString("bpmnjs.bpmn", xml)
- .name(name)
- .deploy();
- }
-
- /**
- * 获取流程图(流)
- *
- * @param deploymentId 流程部署ID
- * @param resourceName 资源文件名称
- * @return 数据流
- */
- public InputStream getDeploymentStream(String deploymentId, String resourceName) {
- return repositoryService.getResourceAsStream(deploymentId, resourceName);
- }
-
- /**
- * 获取流程图xml
- *
- * @param definitionKey 流程定义Key
- * @return xml字符串
- */
- public String getDeploymentXML(String definitionKey) {
- ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
- .processDefinitionKey(definitionKey)
- .latestVersion()
- .singleResult();
- return getDeploymentXML(processDefinition.getDeploymentId(), processDefinition.getResourceName());
- }
-
- /**
- * 获取流程图xml
- *
- * @param deploymentId 流程部署ID
- * @param resourceName 资源文件名称
- * @return xml字符串
- */
- public String getDeploymentXML(String deploymentId, String resourceName) {
- try {
- InputStream inputStream = repositoryService.getResourceAsStream(deploymentId, resourceName);
- StringWriter writer = new StringWriter();
- IOUtils.copy(inputStream, writer, StandardCharsets.UTF_8.name());
- return writer.toString();
- } catch (IOException e) {
- throw new ServiceException(e.getMessage());
- }
- }
-
- /**
- * 获取流程定义
- *
- * @param processDefinitionId 流程定义ID
- * @return
- */
- public ProcessDefinition getById(String processDefinitionId) {
- return repositoryService.createProcessDefinitionQuery()
- .processDefinitionId(processDefinitionId)
- .singleResult();
- }
-
- /**
- * 根据流程定义id删除流程定义
- *
- * @param id 流程定义id
- */
- public void deleteById(String id) {
- repositoryService.deleteDeployment(id);
- }
-}
diff --git a/src/main/java/com/zilber/boot/activiti/service/HistoryService.java b/src/main/java/com/zilber/boot/activiti/service/HistoryService.java
deleted file mode 100644
index c0c57ed..0000000
--- a/src/main/java/com/zilber/boot/activiti/service/HistoryService.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.zilber.boot.activiti.service;
-
-
-import com.zilber.boot.activiti.dto.TaskQueryDTO;
-import com.zilber.boot.activiti.vo.HistoricTaskVO;
-import org.activiti.engine.history.HistoricTaskInstance;
-import org.activiti.engine.history.HistoricTaskInstanceQuery;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
-
-import javax.annotation.Resource;
-import java.util.List;
-
-import java.util.stream.Collectors;
-
-
-@Service(value = "HistoryService_")
-public class HistoryService {
-
- @Resource
- private org.activiti.engine.HistoryService historyService;
-
- public List historicTaskPage(TaskQueryDTO dto) {
- HistoricTaskInstanceQuery taskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
- .finished()
- .orderByHistoricTaskInstanceEndTime()
- .desc();
- if (!StringUtils.isEmpty(dto.getAssignee())) {
- taskInstanceQuery.taskAssignee(dto.getAssignee());
- }
- if (!StringUtils.isEmpty(dto.getProcDefKey())) {
- taskInstanceQuery.processDefinitionKey(dto.getProcDefKey());
- }
- if (!StringUtils.isEmpty(dto.getProcInstId())) {
- taskInstanceQuery.processInstanceId(dto.getProcInstId());
- }
- List tasks = taskInstanceQuery.listPage(dto.getPageNo() * dto.getPageSize(), dto.getPageSize());
- return HistoricTaskVO.merge(tasks);
-
- }
-
- public List getListOfInstance(String instanceId) {
- List list = historyService.createHistoricTaskInstanceQuery()
- .orderByHistoricTaskInstanceStartTime()
- .asc()
- .processInstanceId(instanceId)
- .list();
- return list.stream()
- .map(HistoricTaskVO::merge)
- .collect(Collectors.toList());
-
- }
-}
diff --git a/src/main/java/com/zilber/boot/activiti/service/InstanceService.java b/src/main/java/com/zilber/boot/activiti/service/InstanceService.java
deleted file mode 100644
index 4d7a2d0..0000000
--- a/src/main/java/com/zilber/boot/activiti/service/InstanceService.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package com.zilber.boot.activiti.service;
-
-
-import com.zilber.boot.activiti.dto.InstanceDTO;
-import com.zilber.boot.activiti.dto.PageQueryDTO;
-import com.zilber.boot.activiti.vo.InstanceProgressVO;
-import com.zilber.boot.activiti.vo.InstanceVO;
-import org.activiti.engine.RuntimeService;
-import org.activiti.engine.TaskService;
-import org.activiti.engine.impl.persistence.entity.EntityManager;
-import org.activiti.engine.runtime.ProcessInstance;
-import org.activiti.engine.runtime.ProcessInstanceQuery;
-import org.activiti.engine.task.Task;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Service
-public class InstanceService {
-
- @Autowired
- private RuntimeService runtimeService;
-
- @Autowired
- private TaskService taskService;
-
- public ProcessInstance getById(String processInstanceId) {
- return runtimeService.createProcessInstanceQuery()
- .processInstanceId(processInstanceId)
- .singleResult();
- }
-
- public List getInstancePage(PageQueryDTO dto) {
- ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery();
- return InstanceVO.merge(query.listPage(dto.getPageNo() * dto.getPageSize(), dto.getPageSize()));
- }
-
- /**
- * 启动流程实例并完成第一个任务
- *
- * @param dto 启动流程实例必要参数
- */
- public void start(InstanceDTO dto) {
- Map variables = dto.getVariables();
- if (variables == null) {
- variables = new HashMap<>();
- }
-
- // 设置默认的流程变量
- variables.put("assignee0", dto.getCreateBy());
- //variables.put("procDefKey", dto.getProcDefKey());
-
- // 启动流程实例
- ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(
- dto.getProcDefKey(), /*dto.getBusinessId() +*/ "", variables);
-
- // 执行第一个任务
- Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
- if (task != null) {
- if (task.getAssignee() == null) {
- taskService.claim(task.getId(), dto.getCreateBy());
- }
- taskService.complete(task.getId());
- }
-
- }
-
- /**
- * 查询指定流程进度
- *
- * @param instanceId 流程实例ID
- * @return 进度列表
- */
- public List getInstanceProgress(String instanceId) {
- String sql = "select\n" +
- " t1.ACT_ID_ as actId,\n" +
- " t1.TASK_ID_ as taskId,\n" +
- " t1.ACT_NAME_ as actName,\n" +
- " t1.ACT_TYPE_ as actType,\n" +
- " t1.PROC_INST_ID_ as procInstId,\n" +
- " t1.DURATION_ as duration,\n" +
- " t1.ACT_INST_STATE_ as state,\n" +
- " t1.START_TIME_ as startTime,\n" +
- " t1.END_TIME_ as endTime,\n" +
- " t1.ASSIGNEE_ as assignee,\n" +
- " t2.MESSAGE_ as remark,\n" +
- " t3.TEXT_ as operators\n" +
- "from ACT_HI_ACTINST as t1\n" +
- " left join ACT_HI_COMMENT as t2 on t1.TASK_ID_ = t2.TASK_ID_\n" +
- " left join ACT_HI_VARINST as t3 on t1.ID_ = t3.ACT_INST_ID_ and t3.NAME_ = ?2\n" +
- "where t1.PROC_INST_ID_ = ?1\n" +
- " " +
- "and t1.ACT_TYPE_ = 'userTask'\n" +
- "order by t1.START_TIME_ desc, NOT ISNULL(t1.END_TIME_), t1" +
- ".END_TIME_ desc";
-
- /*Query nativeQuery = entityManager.createNativeQuery(sql);
- nativeQuery.setParameter(1, instanceId);
- nativeQuery.setParameter(2, CamundaConstants.OPERATORS);
- return nativeQuery
- .unwrap(NativeQueryImpl.class)
- .setResultTransformer(Transformers.aliasToBean(InstanceProgressVO.class))
- .list();*/
- return null;
- }
-
- /**
- * 挂起流程实例
- *
- * @param id 流程实例id
- */
- public void suspend(String id) {
- runtimeService.suspendProcessInstanceById(id);
- }
-
- /**
- * 激活流程实例
- *
- * @param id 流程实例id
- */
- public void resume(String id) {
- runtimeService.activateProcessInstanceById(id);
- }
-
- /**
- * 结束流程实例(审批失败)
- *
- * @param id 流程实例id
- * @param reason 失败原因
- */
- public void failEndById(String id, String reason) {
- ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
- .processInstanceId(id).singleResult();
- if (processInstance != null) {
- // 审批失败,状态为 INTERNALLY_TERMINATED
- runtimeService.deleteProcessInstance(processInstance.getId(), reason);
- }
- }
-
- /**
- * 取消流程实例
- *
- * @param id 流程实例id
- */
- public void cancelById(String id) {
- ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
- .processInstanceId(id).singleResult();
- if (processInstance != null) {
- // 手动取消,状态为 EXTERNALLY_TERMINATED
- runtimeService.deleteProcessInstance(processInstance.getId(), "手动取消");
- }
- }
-
- /**
- * 获取流程变量
- *
- * @param id 流程实例id
- * @return 流程变量map
- */
- public Map getVariables(String id) {
- return runtimeService.getVariables(id);
- }
-
-}
diff --git a/src/main/java/com/zilber/boot/activiti/service/TaskService.java b/src/main/java/com/zilber/boot/activiti/service/TaskService.java
deleted file mode 100644
index f0bcd4e..0000000
--- a/src/main/java/com/zilber/boot/activiti/service/TaskService.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package com.zilber.boot.activiti.service;
-
-import com.zilber.boot.activiti.dto.TaskCompleteDTO;
-import com.zilber.boot.activiti.dto.TaskQueryDTO;
-import com.zilber.boot.activiti.vo.TaskVO;
-import com.zilber.boot.exception.ServiceException;
-import org.activiti.engine.task.Task;
-import org.activiti.engine.task.TaskQuery;
-import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
-
-
-import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Service(value = "TaskService_")
-public class TaskService {
-
- @Resource
- private org.activiti.engine.TaskService taskService;
-
- @Resource
- private InstanceService instanceService;
-
- public List taskPage(TaskQueryDTO dto) {
- TaskQuery taskQuery = taskService.createTaskQuery()
- .active()
- .orderByTaskCreateTime()
- .desc();
- if (!StringUtils.isEmpty(dto.getAssignee())) {
- taskQuery.taskAssignee(dto.getAssignee());
- }
- if (!StringUtils.isEmpty(dto.getProcDefKey())) {
- taskQuery.processDefinitionKey(dto.getProcDefKey());
- }
- if (!StringUtils.isEmpty(dto.getProcInstId())) {
- taskQuery.processInstanceId(dto.getProcInstId());
- }
- List tasks = taskQuery.listPage(dto.getPageNo() * dto.getPageSize(), dto.getPageSize());
- return TaskVO.merge(tasks);
- }
-
- public void complete(String userCode, String taskId, TaskCompleteDTO dto) {
- Task task = taskService.createTaskQuery()
- .taskAssignee(userCode)
- .taskId(taskId)
- .singleResult();
-
- if (task == null) {
- throw new ServiceException("没有任务");
- }
-
- if (task.getAssignee() == null) {
- taskService.claim(taskId, userCode);
- }
- if (!StringUtils.isEmpty(dto.getRemark())) {
- //taskService.createComment(taskId, task.getProcessInstanceId(), dto.getRemark());
- taskService.addComment(taskId, task.getProcessInstanceId(), dto.getRemark());
- }
- Map variables = dto.getVariables();
- if (dto.getVariables() == null) {
- variables = new HashMap<>();
- }
- if (dto.getStatus() == 0) {
- // TODO: 多实例并行任务,需要按照业务处理,是否一个人审批不通过,就都不通过
- taskService.setVariable(taskId, "status", 0);
- instanceService.failEndById(task.getProcessInstanceId(), dto.getRemark());
- } else {
- variables.put("status", dto.getStatus());
- taskService.complete(taskId, variables);
- }
- }
-
- /*public List getSimpleTasks(List businessIds, DefinitionKey definitionKey) {
- String sql = "SELECT\n" +
- " t2.ID_ as taskId,\n" +
- " t2.NAME_ as taskName,\n" +
- " t2.DESCRIPTION_ as taskDescription,\n" +
- " t2.TASK_DEF_KEY_ as taskDefinitionKey,\n" +
- " t2.ASSIGNEE_ as assignee,\n" +
- " t2.CREATE_TIME_ as taskTime,\n" +
- " t2.PRIORITY_ as priority,\n" +
- " t2.SUSPENSION_STATE_ as suspensionState,\n" +
- " t1.business_id as businessId\n" +
- "FROM bpm_business as t1\n" +
- " LEFT JOIN ACT_RU_TASK as t2 on t1.proc_inst_id = t2.PROC_INST_ID_\n" +
- "WHERE t1.business_id in (?1) and t1.proc_def_key = ?2";
-
- Query nativeQuery = entityManager.createNativeQuery(sql);
- nativeQuery.setParameter(1, businessIds);
- nativeQuery.setParameter(2, definitionKey.getValue());
- return nativeQuery
- .unwrap(NativeQueryImpl.class)
- .setResultTransformer(Transformers.aliasToBean(io.izn.iec.camunda.vo.SimpleTaskVO.class))
- .list();
- }
-
- public List getSimpleTasks(List businessIds, List definitionKey) {
- List collect = definitionKey.stream().map(DefinitionKey::getValue).collect(Collectors.toList());
- String sql = "SELECT\n" +
- " t2.ID_ as taskId,\n" +
- " t2.NAME_ as taskName,\n" +
- " t2.DESCRIPTION_ as taskDescription,\n" +
- " t2.TASK_DEF_KEY_ as taskDefinitionKey,\n" +
- " t2.ASSIGNEE_ as assignee,\n" +
- " t2.CREATE_TIME_ as taskTime,\n" +
- " t2.PRIORITY_ as priority,\n" +
- " t2.SUSPENSION_STATE_ as suspensionState,\n" +
- " t1.business_id as businessId\n" +
- "FROM bpm_business as t1\n" +
- " LEFT JOIN ACT_RU_TASK as t2 on t1.proc_inst_id = t2.PROC_INST_ID_\n" +
- "WHERE t1.business_id in (?1) and t1.proc_def_key in (?2)";
-
- Query nativeQuery = entityManager.createNativeQuery(sql);
- nativeQuery.setParameter(1, businessIds);
- nativeQuery.setParameter(2, collect);
- return nativeQuery
- .unwrap(NativeQueryImpl.class)
- .setResultTransformer(Transformers.aliasToBean(io.izn.iec.camunda.vo.SimpleTaskVO.class))
- .list();
- }*/
-}
diff --git a/src/main/java/com/zilber/boot/activiti/vo/DefinitionVO.java b/src/main/java/com/zilber/boot/activiti/vo/DefinitionVO.java
deleted file mode 100644
index c6b2252..0000000
--- a/src/main/java/com/zilber/boot/activiti/vo/DefinitionVO.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.zilber.boot.activiti.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-@ApiModel("流程定义")
-public class DefinitionVO {
-
- @ApiModelProperty("流程定义ID")
- private String id;
-
- @ApiModelProperty("流程定义名称")
- private String name;
-
- @ApiModelProperty("流程定义描述")
- private String description;
-
- @ApiModelProperty("流程定义Key")
- private String key;
-
- @ApiModelProperty("流程定义资源名称")
- private String resourceName;
-
- @ApiModelProperty("流程部署ID")
- private String deploymentId;
-
- @ApiModelProperty("版本号")
- private Integer version;
-
-}
diff --git a/src/main/java/com/zilber/boot/activiti/vo/HistoricTaskVO.java b/src/main/java/com/zilber/boot/activiti/vo/HistoricTaskVO.java
deleted file mode 100644
index d8c85d7..0000000
--- a/src/main/java/com/zilber/boot/activiti/vo/HistoricTaskVO.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package com.zilber.boot.activiti.vo;
-
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-import org.activiti.engine.history.HistoricTaskInstance;
-import org.springframework.beans.BeanUtils;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-@Getter
-@Setter
-@ApiModel("历史任务")
-public class HistoricTaskVO {
-
- @ApiModelProperty("任务ID")
- private String taskId;
-
- @ApiModelProperty("任务名称")
- private String taskName;
-
- @ApiModelProperty("任务描述")
- private String taskDescription;
-
- @ApiModelProperty("任务定义Key")
- private String taskDefinitionKey;
-
- @ApiModelProperty("执行人")
- private String assignee;
-
- @ApiModelProperty("任务开始时间")
- private Date startTime;
-
- @ApiModelProperty("任务结束时间")
- private Date endTime;
-
- @ApiModelProperty("任务优先级")
- private Integer priority;
-
- @ApiModelProperty("任务执行时长")
- private Long duration;
-
- @ApiModelProperty("任务删除原因")
- private String deleteReason;
-
- public static List merge(List tasks) {
- return tasks.stream()
- .map(HistoricTaskVO::merge)
- .collect(Collectors.toList());
- }
-
- public static HistoricTaskVO merge(HistoricTaskInstance task) {
- HistoricTaskVO vo = new HistoricTaskVO();
- vo.setTaskId(task.getId());
- vo.setTaskName(task.getName());
- vo.setTaskDescription(task.getDescription());
- vo.setTaskDefinitionKey(task.getTaskDefinitionKey());
- vo.setAssignee(task.getAssignee());
- vo.setStartTime(task.getStartTime());
- vo.setEndTime(task.getEndTime());
- vo.setPriority(task.getPriority());
- vo.setDuration(task.getDurationInMillis());
- vo.setDeleteReason(task.getDeleteReason());
- return vo;
- }
-
-
-}
diff --git a/src/main/java/com/zilber/boot/activiti/vo/InstanceProgressVO.java b/src/main/java/com/zilber/boot/activiti/vo/InstanceProgressVO.java
deleted file mode 100644
index 24a8539..0000000
--- a/src/main/java/com/zilber/boot/activiti/vo/InstanceProgressVO.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.zilber.boot.activiti.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.io.Serializable;
-import java.math.BigInteger;
-import java.util.Date;
-
-@Getter
-@Setter
-@ApiModel("审批进度")
-public class InstanceProgressVO implements Serializable {
-
- @ApiModelProperty("活动ID")
- private String actId;
-
- @ApiModelProperty("任务ID")
- private String taskId;
-
- @ApiModelProperty("活动名称")
- private String actName;
-
- // 'userTask', 'startEvent', 'noneEndEvent'
- @ApiModelProperty("活动类型")
- private String actType;
-
- @ApiModelProperty("流程实例ID")
- private String procInstId;
-
- @ApiModelProperty("任务执行时长")
- private BigInteger duration;
-
- // ActivityInstanceState
- @ApiModelProperty("活动状态:0-default 1-scopeComplete 2-canceled 3-starting 4-ending")
- private Integer state;
-
- @ApiModelProperty("开始时间")
- private Date startTime;
-
- @ApiModelProperty("结束时间")
- private Date endTime;
-
- @ApiModelProperty("执行人")
- private String assignee;
-
- @ApiModelProperty("审批意见")
- private String remark;
-
- @ApiModelProperty("额外操作项")
- private String operators;
-}
diff --git a/src/main/java/com/zilber/boot/activiti/vo/InstanceVO.java b/src/main/java/com/zilber/boot/activiti/vo/InstanceVO.java
deleted file mode 100644
index c26b206..0000000
--- a/src/main/java/com/zilber/boot/activiti/vo/InstanceVO.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.zilber.boot.activiti.vo;
-
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-import org.activiti.engine.runtime.ProcessInstance;
-
-import java.util.List;
-
-import java.util.stream.Collectors;
-
-@Getter
-@Setter
-@ApiModel("流程实例")
-public class InstanceVO {
-
- @ApiModelProperty("是否挂起:1-正常 2-挂起")
- private Integer suspensionState;
-
- @ApiModelProperty("流程定义Key")
- private String procDefKey;
-
- @ApiModelProperty("流程定义ID")
- private String procDefId;
-
- @ApiModelProperty("流程实例ID")
- private String procInstId;
-
- @ApiModelProperty("备注")
- private String remark;
-
- @ApiModelProperty("发起人")
- private String createBy;
-
- public static List merge(List instances) {
- return instances.stream().map(instance -> {
- InstanceVO vo = new InstanceVO();
- vo.setSuspensionState(instance.isSuspended() ? 2 : 1);
- vo.setProcDefKey(instance.getProcessDefinitionKey());
- vo.setProcDefId(instance.getProcessDefinitionId());
- vo.setProcInstId(instance.getProcessInstanceId());
- vo.setCreateBy(instance.getStartUserId());
- return vo;
- }).collect(Collectors.toList());
- }
-}
diff --git a/src/main/java/com/zilber/boot/activiti/vo/SimpleTaskVO.java b/src/main/java/com/zilber/boot/activiti/vo/SimpleTaskVO.java
deleted file mode 100644
index 385a129..0000000
--- a/src/main/java/com/zilber/boot/activiti/vo/SimpleTaskVO.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.zilber.boot.activiti.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.io.Serializable;
-import java.util.Date;
-
-@Getter
-@Setter
-@ApiModel("流程任务(简单数据结构)")
-public class SimpleTaskVO implements Serializable {
-
- @ApiModelProperty("任务ID")
- private String taskId;
-
- @ApiModelProperty("任务名称")
- private String taskName;
-
- @ApiModelProperty("任务描述")
- private String taskDescription;
-
- @ApiModelProperty("任务定义Key")
- private String taskDefinitionKey;
-
- @ApiModelProperty("执行人")
- private String assignee;
-
- @ApiModelProperty("任务开始时间")
- private Date taskTime;
-
- @ApiModelProperty("任务优先级")
- private Integer priority;
-
- @ApiModelProperty("是否为挂起状态:1-否 2-是")
- private Integer suspensionState;
-
- @ApiModelProperty("业务ID")
- private Integer businessId;
-
-}
diff --git a/src/main/java/com/zilber/boot/activiti/vo/TaskVO.java b/src/main/java/com/zilber/boot/activiti/vo/TaskVO.java
deleted file mode 100644
index 838488a..0000000
--- a/src/main/java/com/zilber/boot/activiti/vo/TaskVO.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.zilber.boot.activiti.vo;
-
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-import org.activiti.engine.task.Task;
-import org.springframework.beans.BeanUtils;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-@Getter
-@Setter
-@ApiModel("流程任务")
-public class TaskVO {
-
- @ApiModelProperty("任务ID")
- private String taskId;
-
- @ApiModelProperty("任务名称")
- private String taskName;
-
- @ApiModelProperty("任务描述")
- private String taskDescription;
-
- @ApiModelProperty("任务定义Key")
- private String taskDefinitionKey;
-
- @ApiModelProperty("执行人")
- private String assignee;
-
- @ApiModelProperty("任务开始时间")
- private Date taskTime;
-
- @ApiModelProperty("任务优先级")
- private Integer priority;
-
- @ApiModelProperty("是否为挂起状态:1-否 2-是")
- private Integer suspensionState;
-
- public static List merge(List tasks) {
- return tasks.stream().map(task -> {
- TaskVO vo = new TaskVO();
- vo.setTaskId(task.getId());
- vo.setTaskName(task.getName());
- vo.setTaskDescription(task.getDescription());
- vo.setTaskDefinitionKey(task.getTaskDefinitionKey());
- vo.setAssignee(task.getAssignee());
- vo.setTaskTime(task.getCreateTime());
- vo.setPriority(task.getPriority());
- vo.setSuspensionState(task.isSuspended() ? 2 : 1);
- return vo;
- }).collect(Collectors.toList());
- }
-
-
-}