提交 e08a6057 authored 作者: zhoushaopan's avatar zhoushaopan

第一次提交

上级 e69ff4ee
......@@ -5,7 +5,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.3</version>
<version>2.4.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.tykj</groupId>
......@@ -21,12 +21,75 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 下面是我引入的东西 zsp-->
<dependency>
<groupId>com.github.caspar-chen</groupId>
<artifactId>swagger-ui-layer</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--flowable整合springboot-->
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-spring-boot-starter</artifactId>
<version>6.6.0</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.5.8</version>
</dependency>
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.54</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.github.wenhao</groupId>
<artifactId>jpa-spec</artifactId>
<version>3.1.1</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- dom4j -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
<build>
......
package com.tykj.workflowcore;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import java.io.File;
/**
* @author HuangXiahao
* @version V1.0
......@@ -13,10 +15,27 @@ import org.springframework.stereotype.Component;
@Component
public class WorkflowCoreRunner implements CommandLineRunner {
@Bean
ClassLoader initClassLoader(){
return getClass().getClassLoader();
}
@Override
public void run(String... args) {
System.out.println(getClass().getClassLoader());
System.out.println("核心成功启动");
//创建xml文件夹 如果不存在的话
createXmlMkdir();
}
public void createXmlMkdir(){
File file = new File(this.getClass().getClassLoader().getResource("").getPath()+"\\xml");
if (!file.exists()){
file.mkdir();
}
}
}
package com.tykj.workflowcore.workflow_editer.config;
import org.flowable.spring.SpringProcessEngineConfiguration;
import org.flowable.spring.boot.EngineConfigurationConfigurer;
import org.springframework.context.annotation.Configuration;
/**
* 为解决flowable图片中的中文乱码
* @author zhoushaopan
*/
@Configuration
public class FlowableConfig implements EngineConfigurationConfigurer<SpringProcessEngineConfiguration> {
@Override
public void configure(SpringProcessEngineConfiguration engineConfiguration) {
engineConfiguration.setActivityFontName("宋体");
engineConfiguration.setLabelFontName("宋体");
engineConfiguration.setAnnotationFontName("宋体");
}
}
package com.tykj.workflowcore.workflow_editer.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* ClassName: Swagger2Config
* Package: com.tykj.config
* Description: swagger配置
* @Author: zsp
*/
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()).select()
.apis(RequestHandlerSelectors.basePackage("com.tykj"))
.paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("工作流开发")
.description("工作流开发接口文档与测试页面")
.version("v1.0")
.build();
}
}
package com.tykj.workflowcore.workflow_editer.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* @author zsp
* @version V1.0
* @class WebMvcConfig
* @packageName com.example.personnelmanager.common.config
* @data 2020/6/11
**/
@Configuration
public class WebMvcConfig {
@Value("${file.path}")
String filePath;
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*")
.allowCredentials(true)
.allowedMethods("GET", "POST", "DELETE", "PUT","PATCH")
.maxAge(3600);
}
/*
* 静态资源配置
**/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/file/**").addResourceLocations("file:" + filePath);
}
};
}
}
package com.tykj.workflowcore.workflow_editer.controller;
import com.tykj.workflowcore.workflow_editer.entity.FlowsInfo;
import com.tykj.workflowcore.workflow_editer.service.FlowInfoService;
import com.tykj.workflowcore.workflow_editer.service.NodePageService;
import com.tykj.workflowcore.workflow_editer.service.VariableStorageService;
import com.tykj.workflowcore.workflow_editer.service.WorkFlowService;
import com.tykj.workflowcore.workflow_editer.vo.DeployedVo;
import com.tykj.workflowcore.workflow_editer.vo.FlowsInfoVo;
import com.tykj.workflowcore.workflow_editer.vo.PageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
/**
* ClassName: FlowsInfoController
* Package: com.tykj.controller
* Description:
* Datetime: 2021/2/24 10:13
* @Author: zsp
*/
@RestController
@Api("流程管理接口")
@RequestMapping("/flowsInfo")
public class FlowsInfoController {
@Autowired
private FlowInfoService flowInfoService;
@Autowired
private WorkFlowService workFlowService;
@Autowired
private NodePageService nodePageService;
@Autowired
private VariableStorageService variableStorageService;
@PostMapping("/getAllFlowsInfo")
@ApiOperation(value = "查询所有流程",notes = "分页查询")
public Page<FlowsInfo> getAllFlowsInfo(@RequestBody PageVo pageVo){
if (pageVo.getPageNum() == 0){
pageVo.setPageNum(1);
}
return flowInfoService.getAllFlowsInfo(pageVo);
}
@PostMapping("/getDeployedFlowsInfo")
@ApiOperation(value = "查询已经部署的流程")
public List<DeployedVo> getDeployedFlowsInfo(){
ArrayList<DeployedVo> deployedVos = new ArrayList<>();
//查询已经部署的流程
List<FlowsInfo> deployedFlowsInfo = flowInfoService.getDeployedFlowsInfo();
for (FlowsInfo flowsInfo : deployedFlowsInfo) {
String flowKey = flowsInfo.getFlowKey();
String flowName = flowsInfo.getFlowName();
String startId = flowsInfo.getStartId();
DeployedVo deployedVo = new DeployedVo();
BeanUtils.copyProperties(flowsInfo,deployedVo);
//通过节点id得到pageId
Long pageId = nodePageService.findByNodeId(startId);
deployedVo.setPageId(pageId);
deployedVos.add(deployedVo);
}
return deployedVos;
}
@PostMapping("/saveXml")
@ApiOperation("保存xml")
public String saveXml(@RequestParam("file") MultipartFile file){
String xml = workFlowService.saveXml(file);
return xml;
}
@GetMapping("/deploy/{id}")
@ApiOperation(value = "部署流程",notes = "0 部署成功")
public Integer deploy(@PathVariable("id") Long id) throws FileNotFoundException {
//根据id 查询出flowsInfo
FlowsInfo flowsInfo = flowInfoService.findById(id);
if (flowsInfo.getState() == 0){
return 0;
}
workFlowService.deployXml(flowsInfo);
return flowsInfo.getState();
}
@PostMapping("/saveXml02")
@ApiOperation(value = "保存xml02")
public void saveXml02(@RequestBody FlowsInfoVo flowsInfoVo) {
workFlowService.flowXml(flowsInfoVo);
}
@PostMapping("/updateByProcessName")
@ApiOperation(value = "通过流程名称修改")
public void updateByProcessName(@RequestBody FlowsInfoVo flowsInfoVo) {
flowInfoService.findByFlowName(flowsInfoVo);
}
@PostMapping("/updateByDesc")
@ApiOperation(value = "通过流程描述修改")
public void updateByDesc(@RequestBody FlowsInfoVo flowsInfoVo) {
flowInfoService.findByDesc(flowsInfoVo);
}
}
package com.tykj.workflowcore.workflow_editer.controller;
import com.tykj.workflowcore.workflow_editer.entity.FormPage;
import com.tykj.workflowcore.workflow_editer.service.FormPageService;
import com.tykj.workflowcore.workflow_editer.vo.FormPageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* ClassName: FormPageController
* Package: com.tykj.controller
* Description:
* Datetime: 2021/3/3 13:40
*
* @Author: zsp
*/
@RestController("/formPage")
@RequestMapping
@Api("页面管理接口")
public class FormPageController {
@Autowired
private FormPageService formPageService;
@ApiOperation("保存页面")
@PostMapping("/savePage")
public Long savePage(@RequestBody FormPage formPage){
return formPageService.savePage(formPage);
}
@ApiOperation("回显页面")
@GetMapping("/EchoPage/{id}")
public FormPageVo EchoPage(@PathVariable("id") Long id){
return formPageService.getPage(id);
}
@ApiOperation("查看页面")
@GetMapping("/findPages")
public List<FormPageVo> findPages(){
return formPageService.getAllPages();
}
@ApiOperation("删除页面")
@DeleteMapping("deletePage/{id}")
public void deletePage(@PathVariable("id") Long id){
formPageService.deletePage(id);
}
}
package com.tykj.workflowcore.workflow_editer.controller;
import com.tykj.workflowcore.workflow_editer.entity.PageEntity;
import com.tykj.workflowcore.workflow_editer.service.PageEntityService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* ClassName: PageEntityController
* Package: com.tykj.controller
* Description:
* Datetime: 2021/3/4 9:50
*
* @Author: zsp
*/
@RestController
@RequestMapping("/pageEntity")
@Api("页面跟实体的管理")
public class PageEntityController {
@Autowired
private PageEntityService pageEntityService;
@PostMapping("/savePageEntity")
public void savePageEntity(@RequestBody PageEntity pageEntity){
pageEntityService.savePageEntity(pageEntity);
}
}
package com.tykj.workflowcore.workflow_editer.controller;
import com.tykj.workflowcore.workflow_editer.entity.FlowsInfo;
import com.tykj.workflowcore.workflow_editer.service.FlowInfoService;
import com.tykj.workflowcore.workflow_editer.service.WorkFlowService;
import com.tykj.workflowcore.workflow_editer.util.PageUtil;
import com.tykj.workflowcore.workflow_editer.vo.PageVo;
import com.tykj.workflowcore.workflow_editer.vo.StartFlowVo;
import com.tykj.workflowcore.workflow_editer.vo.TaskVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.FileNotFoundException;
import java.util.List;
import java.util.Map;
/**
* ClassName: WorkFlowController
* Package: com.tykj.controller
* Description:
* Datetime: 2021/3/2 9:48
*
* @Author: zsp
*/
@Api("工作流管理接口")
@RestController
@RequestMapping("/workFlow")
public class WorkFlowController {
@Autowired
private FlowInfoService flowInfoService;
@Autowired
private WorkFlowService workFlowService;
@PostMapping("/deploy")
@ApiOperation(value = "部署流程",notes = "0 部署成功")
public Integer deploy(Long id) throws FileNotFoundException {
//根据id 查询出flowsInfo
FlowsInfo flowsInfo = flowInfoService.findById(id);
if (flowsInfo.getState() == 0){
return 0;
}
workFlowService.deployXml(flowsInfo);
return flowsInfo.getState();
}
@PostMapping("/startFlow")
@ApiOperation("开启流程")
public String startFlow(@RequestBody StartFlowVo startFlowVo){
workFlowService.startFlow(startFlowVo);
return null;
}
@PostMapping("/findUserTask")
@ApiOperation("任务个人待办列表")
public List<Map<String, Object>> findUserTask(@RequestBody PageVo pageVo){
List<Map<String, Object>> mapList = workFlowService.findTaskByUserId(pageVo.getUserId());
List list = PageUtil.startPage(mapList, pageVo.getPageNum(), pageVo.getPageSize());
return list;
}
@PostMapping("/findTaskDetail")
@ApiOperation("任务个人待办详情")
public List<Map<String, Object>> findTaskDetail(Long userId,String taskId){
return workFlowService.findTaskDetail(userId, taskId);
}
@PostMapping("/completeTask")
@ApiOperation("完成任务")
public void completeTask(@RequestBody TaskVo taskVo){
workFlowService.completeTask(taskVo);
}
}
package com.tykj.workflowcore.workflow_editer.entity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.util.Date;
/**
* ClassName: FlowsInfo
* Package: com.tykj.entity
* Description:
* Datetime: 2021/2/23 10:12
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Api("流程表")
public class FlowsInfo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty("流程id")
private Long id;
@ApiModelProperty("发起人的Id")
private Long userId;
@ApiModelProperty("发起人的名字")
private Long userName;
@ApiModelProperty("流程名称")
private String flowName;
@ApiModelProperty("资源名称")
private String resourceName;
@ApiModelProperty("流程主键")
private String flowKey;
@ApiModelProperty(value = "部署状态",notes = "0 已部署,1 未部署")
private Integer state;
@ApiModelProperty("文件路径")
private String filePath;
@ApiModelProperty("流程创建时间")
private Date createTime;
@ApiModelProperty("流程修改时间")
private Date updateTime;
@ApiModelProperty("流程描述")
private String flowDescribe;
@ApiModelProperty("开始节点的id")
private String startId;
}
package com.tykj.workflowcore.workflow_editer.entity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Date;
/**
* ClassName: FormPage
* Package: com.tykj.entity
* Description:
* Datetime: 2021/3/3 10:32
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Api("表单页面")
public class FormPage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty("主键id")
private Long id;
@ApiModelProperty("页面名称")
private String pageName;
@ApiModelProperty("页面描述")
private String pageDesc;
@ApiModelProperty("模板")
@Lob
private String template;
@ApiModelProperty("页面js")
@Lob
private String js;
@ApiModelProperty("页面css")
@Lob
private String css;
@ApiModelProperty("创建的时间")
private Date createTime;
}
package com.tykj.workflowcore.workflow_editer.entity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
/**
* ClassName: NodePage
* Package: com.tykj.entity
* Description:
* Datetime: 2021/3/3 13:08
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Api("节点所在页面")
public class NodePage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty("主键id")
private Long id;
@ApiModelProperty("节点id")
private String nodeId;
@ApiModelProperty("页面id")
private long pageId;
}
package com.tykj.workflowcore.workflow_editer.entity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
/**
* ClassName: PageEntity
* Package: com.tykj.entity
* Description:
* Datetime: 2021/3/3 10:51
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Api("页面实体关系")
public class PageEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty("主键id")
private Long id;
@ApiModelProperty("页面Id")
private Long pageId;
@ApiModelProperty("实体类Id")
private Long entityId;
}
package com.tykj.workflowcore.workflow_editer.entity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* ClassName: Result
* Package: com.tykj.entity
* Description: 返回类型
* Datetime: 2021/2/23 10:18
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Api("统一返回结果集")
public class Result {
@ApiModelProperty("返回状态")
private Integer status;
@ApiModelProperty("返回信息")
private String message;
}
package com.tykj.workflowcore.workflow_editer.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.List;
/**
* ClassName: Role
* Package: com.tykj.entity
* Description:
* Datetime: 2021/2/23 15:05
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String roleName;
@Transient
List<User> userList;
}
package com.tykj.workflowcore.workflow_editer.entity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.util.Date;
/**
* ClassName: SiteMessage
* Package: com.tykj.entity
* Description:
* Datetime: 2021/2/23 10:29
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Api("消息发送")
public class SiteMessage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty("消息id")
private Long id;
@ApiModelProperty("用户id")
private Integer userId;
@ApiModelProperty(value = "消息类型",notes = "1 待办任务")
private Integer type;
@ApiModelProperty("消息内容")
private String content;
@ApiModelProperty(value = "是否已读",notes = "0 已读 1 未读")
private Integer isRead;
@ApiModelProperty("创建时间")
private Date createTime;
@ApiModelProperty("更新时间")
private Date updateTime;
}
package com.tykj.workflowcore.workflow_editer.entity;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.io.Serializable;
/**
* ClassName: User
* Package: com.tykj.entity
* Description:
* Datetime: 2021/2/23 14:47
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Api("用户表")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String userName;
private String passWord;
private String age;
private String birthday;
}
package com.tykj.workflowcore.workflow_editer.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
/**
* ClassName: VariableStorage
* Package: com.tykj.entity
* Description:
* Datetime: 2021/3/3 10:03
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class VariableStorage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty("主键id")
private Long id;
@ApiModelProperty("流程主键")
private String flowKey;
@ApiModelProperty("变量池")
private String variable;
}
package com.tykj.workflowcore.workflow_editer.enums;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
/**
* ClassName: TypeEnums
* Package: com.tykj
* Description:
* Datetime: 2021/3/2 19:46
*
* @Author: zsp
*/
@AllArgsConstructor
@NoArgsConstructor
public enum TypeEnums {
AGREE("同意",0),
REFUSE("拒绝",1),
TRANSFER("转交",2);
private String name;
private int index;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
}
package com.tykj.workflowcore.workflow_editer.listener;
import org.flowable.engine.delegate.TaskListener;
import org.flowable.task.service.delegate.DelegateTask;
import org.springframework.stereotype.Component;
/**
* ClassName: AssigneeListener
* Package: com.tykj.listener
* Description:
* Datetime: 2021/2/23 16:02
*
* @Author: zsp
*/
@Component
public class AssigneeListener implements TaskListener{
@Override
public void notify(DelegateTask delegateTask) {
//指定流程的发起人
//获取当前登录到用户
String userId = "";
delegateTask.setAssignee(userId);
}
}
package com.tykj.workflowcore.workflow_editer.mapper;
import com.tykj.workflowcore.workflow_editer.entity.FlowsInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* ClassName: FlowsInfoMapper
* Package: com.tykj.mapper
* Datetime: 2021/2/23 14:06
* @Author: zsp
*/
public interface FlowsInfoMapper extends JpaRepository<FlowsInfo,Long>, JpaSpecificationExecutor<FlowsInfo> {
/**
* 根据流程主键查询
* @param flowKey 流程主键
* @return FlowsInfo
*/
FlowsInfo findByFlowKey(String flowKey);
}
package com.tykj.workflowcore.workflow_editer.mapper;
import com.tykj.workflowcore.workflow_editer.entity.FormPage;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* ClassName: PageEntityMapper
* Package: com.tykj.mapper
* Description:
* Datetime: 2021/3/3 13:12
*
* @Author: zsp
*/
public interface FormPageMapper extends JpaRepository<FormPage,Long> , JpaSpecificationExecutor<FormPage> {
//增删改查
}
package com.tykj.workflowcore.workflow_editer.mapper;
import com.tykj.workflowcore.workflow_editer.entity.NodePage;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* ClassName: NodePage
* Package: com.tykj.mapper
* Description:
* Datetime: 2021/3/4 15:31
*
* @Author: zsp
*/
public interface NodePageMapper extends JpaRepository<NodePage,Long>, JpaSpecificationExecutor<NodePage> {
/**
* 通过节点id得到pageId
* @param nodeId 节点id
* @return 返回页面id
*/
Long findByNodeId(String nodeId);
}
package com.tykj.workflowcore.workflow_editer.mapper;
import com.tykj.workflowcore.workflow_editer.entity.PageEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* ClassName: PageEntityMapper
* Package: com.tykj.mapper
* Description:
* Datetime: 2021/3/4 9:53
*
* @Author: zsp
*/
public interface PageEntityMapper extends JpaRepository<PageEntity,Long>, JpaSpecificationExecutor<PageEntity> {
}
package com.tykj.workflowcore.workflow_editer.mapper;
import com.tykj.workflowcore.workflow_editer.entity.Role;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* ClassName: RoleMapper
* Package: com.tykj.mapper
* Description:
* Datetime: 2021/2/23 15:08
*
* @Author: zsp
*/
public interface RoleMapper extends JpaRepository<Role,Long>, JpaSpecificationExecutor<Role> {
}
package com.tykj.workflowcore.workflow_editer.mapper;
import com.tykj.workflowcore.workflow_editer.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* ClassName: UserMapper
* Package: com.tykj.mapper
* Description:
* Datetime: 2021/2/23 14:49
*
* @Author: zsp
*/
public interface UserMapper extends JpaRepository<User,Long>, JpaSpecificationExecutor<User> {
}
package com.tykj.workflowcore.workflow_editer.mapper;
import com.tykj.workflowcore.workflow_editer.entity.VariableStorage;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* ClassName: VariableStorageMapper
* Package: com.tykj.mapper
* Description:
* Datetime: 2021/3/3 10:08
*
* @Author: zsp
*/
public interface VariableStorageMapper extends JpaRepository<VariableStorage,Long>, JpaSpecificationExecutor<VariableStorage> {
/**
* 通过流程主键获取变量池
* @param flowKey 流程主键
* @return
*/
VariableStorage findByFlowKey(String flowKey);
}
package com.tykj.workflowcore.workflow_editer.service;
import com.tykj.workflowcore.workflow_editer.entity.FlowsInfo;
import com.tykj.workflowcore.workflow_editer.vo.FlowsInfoVo;
import com.tykj.workflowcore.workflow_editer.vo.PageVo;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* ClassName: FlowInfoService
* Package: com.tykj.service
* Description: 流程
* Datetime: 2021/2/24 10:02
*
* @Author: zsp
*/
public interface FlowInfoService {
/**
* 查询所有流程
* @param pageVo 分页
* @return 返回所有的流程
*/
Page<FlowsInfo> getAllFlowsInfo(@RequestBody PageVo pageVo);
/**
* 查看已经部署的流程
* @return
*/
List<FlowsInfo> getDeployedFlowsInfo();
/**
* 根据id查询出一个flowsInfo对象
* @param id flowInfo Id
* @return FlowInfo对象
*/
FlowsInfo findById(Long id);
/**
* 根据流程主键修改
* @param flowsInfoVo flowsInfo
* @return flowsInfoVo
*/
FlowsInfo findByFlowName(@RequestBody FlowsInfoVo flowsInfoVo);
/**
* 根据流程描述修改
* @param flowsInfoVo flowsInfo
* @return flowsInfoVo
*/
FlowsInfo findByDesc(@RequestBody FlowsInfoVo flowsInfoVo);
}
package com.tykj.workflowcore.workflow_editer.service;
import com.tykj.workflowcore.workflow_editer.entity.FormPage;
import com.tykj.workflowcore.workflow_editer.vo.FormPageVo;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* ClassName: PageEntityService
* Package: com.tykj.service
* Description:
* Datetime: 2021/3/3 13:14
*
* @Author: zsp
*/
public interface FormPageService {
/**
* 保存页面
* @param formPage 页面实体
* @return 主键id
*/
Long savePage(@RequestBody FormPage formPage);
/**
* 根据页面id来进行回显
* @param id 页面id
* @return 页面信息
*/
FormPageVo getPage(@PathVariable("id") Long id);
/**
* 根据页面id删除页面
* @param id 页面id
*/
void deletePage(@PathVariable("id") Long id);
/**
* 查询全部页面
* @return 全部集合
*/
List<FormPageVo> getAllPages();
}
package com.tykj.workflowcore.workflow_editer.service;
import com.tykj.workflowcore.workflow_editer.entity.NodePage;
/**
* ClassName: NodePageService
* Package: com.tykj.service
* Description:
* Datetime: 2021/3/4 15:33
*
* @Author: zsp
*/
public interface NodePageService {
/**
* 通过节点id得到pageId
* @param nodeId 节点id
* @return 返回页面id
*/
Long findByNodeId(String nodeId);
/**
* 保存节点和页面的关系
* @param nodePage
*/
void saveNodePage(NodePage nodePage);
}
package com.tykj.workflowcore.workflow_editer.service;
import com.tykj.workflowcore.workflow_editer.entity.PageEntity;
/**
* ClassName: PageEntityService
* Package: com.tykj.service
* Description:
* Datetime: 2021/3/4 9:52
*
* @Author: zsp
*/
public interface PageEntityService {
/**
* 保存
* @param pageEntity 页面实体之间关系
*/
void savePageEntity(PageEntity pageEntity);
}
package com.tykj.workflowcore.workflow_editer.service;
//import org.springframework.security.core.userdetails.UserDetails;
/**
* ClassName: UserService
* Package: com.tykj.service
* Description:
* Datetime: 2021/2/25 13:53
*
* @Author: zsp
*/
//@Service
//public interface UserService {
// /**
// * 获取当前登录人的id
// * @return User对象
// */
// UserDetails getCurrentUserId();
//
// /**
// * 获取所有用户
// * @return 所有用户
// */
// List<User> getAllUser();
//}
package com.tykj.workflowcore.workflow_editer.service;
import com.tykj.workflowcore.workflow_editer.entity.VariableStorage;
import org.springframework.web.bind.annotation.RequestBody;
/**
* ClassName: VariableStorageService
* Package: com.tykj.service
* Description:
* Datetime: 2021/3/3 10:10
*
* @Author: zsp
*/
public interface VariableStorageService {
/**
* 保存变量池
* @param variableStorage 变量池
*/
void saveVariableStorageService(@RequestBody VariableStorage variableStorage);
/**
* 查询变量池
* @param flowKey 流程主键
* @return VariableStorage 变量池
*/
VariableStorage findByFlowKey(String flowKey);
}
package com.tykj.workflowcore.workflow_editer.service;
import com.tykj.workflowcore.workflow_editer.entity.FlowsInfo;
import com.tykj.workflowcore.workflow_editer.vo.FlowsInfoVo;
import com.tykj.workflowcore.workflow_editer.vo.StartFlowVo;
import com.tykj.workflowcore.workflow_editer.vo.TaskVo;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import java.io.FileNotFoundException;
import java.util.List;
import java.util.Map;
/**
* ClassName: FlowableService
* Package: com.tykj.service
* Description:工作流服务接口
* Datetime: 2021/2/23 9:49
*
* @Author: zsp
*/
public interface WorkFlowService {
/**
* 保存流程文件
* @param file file文件
* @return 路径名称
*/
String saveXml(@RequestParam("file") MultipartFile file);
/**
* 接收前端的流程文件
* @param flowsInfoVo
*/
void flowXml(@RequestBody FlowsInfoVo flowsInfoVo);
/**
* 创建流程
* @param flowsInfoVo
* @return 主键id
*/
Long createFlow(@RequestBody FlowsInfoVo flowsInfoVo);
/**
* 部署xml流程文件
* @param flowsInfo
* @throws FileNotFoundException
*/
void deployXml(FlowsInfo flowsInfo) throws FileNotFoundException;
/**
* 存储变量池 选择变量条件
* @param map
* @return map
*/
Map<String,Object> setVariables(@RequestBody Map<String, Object> map);
/**
* 开启流程
* @param startFlowVo 流程开启vo
*/
void startFlow(@RequestBody StartFlowVo startFlowVo);
/**
* 根据用户id进行任务待办查询
* @param userId 用户id
* @return 任务列表
*/
List<Map<String,Object>> findTaskByUserId(Long userId);
/**
* 查看具体的任务详情
* @param userId 用户id
* @param taskId 任务Id
* @return 任务列表
*/
List<Map<String,Object>> findTaskDetail(Long userId, String taskId);
/**
* 根据角色id进行任务待办查询
* @param roleId 角色id
* @return 任务列表
*/
List<Map<String,Object>> findByRoleId(Long roleId);
/**
* 任务完成
* @param taskVo taskVo
*/
void completeTask(@RequestBody TaskVo taskVo);
/**
* 任务的拾取 相当变成了任务的执行人 只有执行人才可以完成任务
* @param taskId 任务Id
* @param userId 用户Id
*/
void claimTask(String taskId, Long userId);
//历史查询
//建立用户和组的关系
/**
* 任务的转交
* @param taskId 任务id
* @param userId 转交人的id
*/
void transferTask(String taskId, Long userId);
}
package com.tykj.workflowcore.workflow_editer.service.impl;
import com.github.wenhao.jpa.Specifications;
import com.tykj.workflowcore.workflow_editer.entity.FlowsInfo;
import com.tykj.workflowcore.workflow_editer.mapper.FlowsInfoMapper;
import com.tykj.workflowcore.workflow_editer.service.FlowInfoService;
import com.tykj.workflowcore.workflow_editer.vo.FlowsInfoVo;
import com.tykj.workflowcore.workflow_editer.vo.PageVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* ClassName: FlowInfoServiceImpl
* Package: com.tykj.service
* Description:
* Datetime: 2021/2/24 10:15
*
* @Author: zsp
*/
@Service
public class FlowInfoServiceImpl implements FlowInfoService {
@Autowired
private FlowsInfoMapper flowsInfoMapper;
@Override
public Page<FlowsInfo> getAllFlowsInfo(@RequestBody PageVo pageVo) {
PageRequest pageRequest = PageRequest.of(pageVo.getPageNum()+1, pageVo.getPageSize());
return flowsInfoMapper.findAll(pageRequest);
}
@Override
public List<FlowsInfo> getDeployedFlowsInfo() {
FlowsInfo flowsInfo = new FlowsInfo();
flowsInfo.setState(0);
Specification<FlowsInfo> state = Specifications.<FlowsInfo>and().eq("state", flowsInfo.getState()).build();
return flowsInfoMapper.findAll(state);
}
@Override
public FlowsInfo findById(Long id) {
return flowsInfoMapper.findById(id).get();
}
@Override
public FlowsInfo findByFlowName(@RequestBody FlowsInfoVo flowsInfoVo) {
String flowKey = flowsInfoVo.getFlowKey();
String flowName = flowsInfoVo.getFlowName();
FlowsInfo flowsInfo = flowsInfoMapper.findByFlowKey(flowKey);
flowsInfo.setFlowName(flowName);
//进行更新
FlowsInfo newFlowsInfo = flowsInfoMapper.save(flowsInfo);
return newFlowsInfo;
}
@Override
public FlowsInfo findByDesc(@RequestBody FlowsInfoVo flowsInfoVo) {
String flowKey = flowsInfoVo.getFlowKey();
String describe = flowsInfoVo.getFlowDescribe();
FlowsInfo byDesc = flowsInfoMapper.findByFlowKey(flowKey);
byDesc.setFlowDescribe(describe);
// //进行更新
// FlowsInfo flowsInfo = flowsInfoMapper.save(byDesc);
return flowsInfoMapper.save(byDesc);
}
}
package com.tykj.workflowcore.workflow_editer.service.impl;
import com.tykj.workflowcore.workflow_editer.entity.FormPage;
import com.tykj.workflowcore.workflow_editer.mapper.FormPageMapper;
import com.tykj.workflowcore.workflow_editer.service.FormPageService;
import com.tykj.workflowcore.workflow_editer.vo.FormPageVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import springfox.documentation.swagger2.mappers.ModelMapper;
import java.util.ArrayList;
import java.util.List;
/**
* ClassName: PageEntityServiceImpl
* Package: com.tykj.service.impl
* Description:
* Datetime: 2021/3/3 13:16
*
* @Author: zsp
*/
@Service
public class FormPageServiceImpl implements FormPageService {
@Autowired
private FormPageMapper formPageMapper;
@Override
public Long savePage(@RequestBody FormPage formPage) {
FormPage formPage1 = formPageMapper.save(formPage);
Long id = formPage1.getId();
return id;
}
@Override
public FormPageVo getPage(@PathVariable("id") Long id) {
FormPage formPage = formPageMapper.findById(id).get();
FormPageVo formPageVo= new FormPageVo();
BeanUtils.copyProperties(formPage,formPageVo);
return formPageVo;
}
@Override
public void deletePage(@PathVariable("id") Long id) {
formPageMapper.deleteById(id);
}
@Override
public List<FormPageVo> getAllPages() {
ArrayList<FormPageVo> formPageVos = new ArrayList<>();
List<FormPage> formPages = formPageMapper.findAll();
for (FormPage formPage : formPages) {
FormPageVo formPageVo = new FormPageVo();
BeanUtils.copyProperties(formPage,formPageVo);
formPageVos.add(formPageVo);
}
return formPageVos;
}
}
package com.tykj.workflowcore.workflow_editer.service.impl;
import com.tykj.workflowcore.workflow_editer.entity.NodePage;
import com.tykj.workflowcore.workflow_editer.mapper.NodePageMapper;
import com.tykj.workflowcore.workflow_editer.service.NodePageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* ClassName: NodePageServiceImpl
* Package: com.tykj.service.impl
* Description:
* Datetime: 2021/3/4 15:34
*
* @Author: zsp
*/
@Service
public class NodePageServiceImpl implements NodePageService {
@Autowired
private NodePageMapper nodePageMapper;
@Override
public Long findByNodeId(String nodeId) {
return nodePageMapper.findByNodeId(nodeId);
}
@Override
public void saveNodePage(NodePage nodePage) {
nodePageMapper.save(nodePage);
}
}
package com.tykj.workflowcore.workflow_editer.service.impl;
import com.tykj.workflowcore.workflow_editer.entity.PageEntity;
import com.tykj.workflowcore.workflow_editer.mapper.PageEntityMapper;
import com.tykj.workflowcore.workflow_editer.service.PageEntityService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* ClassName: PageEntityServiceImpl
* Package: com.tykj.service.impl
* Description:
* Datetime: 2021/3/4 9:55
*
* @Author: zsp
*/
@Service
public class PageEntityServiceImpl implements PageEntityService {
@Autowired
private PageEntityMapper pageEntityMapper;
@Override
public void savePageEntity(PageEntity pageEntity) {
pageEntityMapper.save(pageEntity);
}
}
package com.tykj.workflowcore.workflow_editer.service.impl;
import com.tykj.workflowcore.workflow_editer.entity.VariableStorage;
import com.tykj.workflowcore.workflow_editer.mapper.VariableStorageMapper;
import com.tykj.workflowcore.workflow_editer.service.VariableStorageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
/**
* ClassName: VariableStorageServiceImpl
* Package: com.tykj.service.impl
* Description:
* Datetime: 2021/3/3 10:13
*
* @Author: zsp
*/
@Service
public class VariableStorageServiceImpl implements VariableStorageService {
@Autowired
private VariableStorageMapper variableStorageMapper;
@Override
public void saveVariableStorageService(@RequestBody VariableStorage variableStorage) {
variableStorageMapper.save(variableStorage);
}
@Override
public VariableStorage findByFlowKey(String flowKey) {
VariableStorage variableStorage = variableStorageMapper.findByFlowKey(flowKey);
return variableStorage;
}
}
package com.tykj.workflowcore.workflow_editer.util;
import java.util.List;
/**
* ClassName: PageUtil
* Package: com.tykj.util
* Description:
* Datetime: 2021/3/2 20:39
*
* @Author: zsp
*/
public class PageUtil {
/**
* 开始分页
* @param list
* @param pageNum 页码
* @param pageSize 每页多少条数据
* @return
*/
public static List startPage(List list, Integer pageNum,
Integer pageSize) {
if (list == null) {
return null;
}
if (list.size() == 0) {
return null;
}
Integer count = list.size(); // 记录总数
Integer pageCount = 0; // 页数
if (count % pageSize == 0) {
pageCount = count / pageSize;
} else {
pageCount = count / pageSize + 1;
}
int fromIndex = 0; // 开始索引
int toIndex = 0; // 结束索引
if (pageNum > pageCount){
return null;
}
if (pageNum != pageCount) {
System.out.println("pageNum====>"+pageNum);
fromIndex = (pageNum - 1) * pageSize;
System.out.println("fromindex===>"+fromIndex);
toIndex = fromIndex + pageSize;
} else {
System.out.println("from====>"+fromIndex);
fromIndex = (pageNum - 1) * pageSize;
toIndex = count;
}
List pageList = list.subList(fromIndex, toIndex);
return pageList;
}
}
package com.tykj.workflowcore.workflow_editer.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* ClassName: DeployedVo
* Package: com.tykj.vo
* Description:
* Datetime: 2021/3/4 14:18
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DeployedVo {
private FlowsInfoVo flowsInfoVo;
@ApiModelProperty("节点的第一个绑定的页面id")
private Long pageId;
@ApiModelProperty("流程主键")
private String flowKey;
@ApiModelProperty("流程名称")
private String flowName;
}
package com.tykj.workflowcore.workflow_editer.vo;
import com.tykj.workflowcore.workflow_editer.entity.NodePage;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* ClassName: FlowInfoVo
* Package: com.tykj.vo
* Description:
* Datetime: 2021/3/1 9:54
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class FlowsInfoVo {
@ApiModelProperty("主键id")
private Long id;
@ApiModelProperty("发起人的名字")
private Long userName;
@ApiModelProperty("流程名称")
private String flowName;
@ApiModelProperty("流程主键")
private String flowKey;
@ApiModelProperty(value = "部署状态",notes = "0 已部署,1 未部署")
private Integer state;
@ApiModelProperty("流程创建时间")
private Date createTime;
@ApiModelProperty("流程修改时间")
private Date updateTime;
@ApiModelProperty("流程描述")
private String flowDescribe;
@ApiModelProperty
private String fileXml;
@ApiModelProperty("开始节点的id")
private String startId;
@ApiModelProperty()
private List<NodePage> nodePages;
}
package com.tykj.workflowcore.workflow_editer.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Lob;
/**
* ClassName: FormPageVo
* Package: com.tykj.vo
* Description:
* Datetime: 2021/3/3 13:32
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class FormPageVo {
@ApiModelProperty("页面名称")
private String pageName;
@ApiModelProperty("创建的时间")
private String createTime;
@ApiModelProperty("模板")
@Lob
private String template;
@ApiModelProperty("页面js")
@Lob
private String js;
@ApiModelProperty("页面css")
@Lob
private String css;
}
package com.tykj.workflowcore.workflow_editer.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* ClassName: PageVo
* Package: com.tykj.vo
* Description:
* Datetime: 2021/3/2 20:42
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageVo {
@ApiModelProperty("用户id")
private Long userId;
@ApiModelProperty("list集合")
private List list;
@ApiModelProperty("当前页码")
private int pageNum;
@ApiModelProperty("当前页的大小")
private int pageSize = 5;
}
package com.tykj.workflowcore.workflow_editer.vo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Map;
/**
* ClassName: StartFlowVo
* Package: com.tykj.vo
* Description:
* Datetime: 2021/3/3 9:30
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Api("开启流程")
public class StartFlowVo {
@ApiModelProperty("流程主键")
private String flowKey;
@ApiModelProperty("变量池")
private Map<String,Object> map;
}
package com.tykj.workflowcore.workflow_editer.vo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Map;
/**
* ClassName: TaskVo
* Package: com.tykj.vo
* Description:
* Datetime: 2021/3/2 16:14
*
* @Author: zsp
*/
@Api("任务待办")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TaskVo {
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("添加评论")
private String comments;
@ApiModelProperty("用户id")
private Long userId;
@ApiModelProperty(value = "是否同意",notes = "0 同意, 1拒绝 ")
private Integer handlingOpinion;
@ApiModelProperty("转交人的id")
private Long toUserId;
Map<String,Object> map;
@ApiModelProperty("条件表达式")
private String conditionalExpression;
}
package com.tykj.workflowcore.workflow_editer.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Map;
/**
* ClassName: WorkFlowVo
* Package: com.tykj.vo
* Description:
* Datetime: 2021/3/2 10:35
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class WorkFlowVo {
@ApiModelProperty("流程定义主键")
private String processDefinitionKey;
@ApiModelProperty("变量池")
private Map<String, Map<String,Object>> maxMap;
}
# port
server.port=9002
server.maxPostSize =-1
server.maxHttpHeaderSize =102400
spring.servlet.multipart.max-file-size=400MB
spring.servlet.multipart.max-request-size=400MB
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=false
spring.jpa.open-in-view=true
spring.main.allow-bean-definition-overriding=true
server.servlet.session.timeout=PT1H
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
spring.datasource.url=jdbc:mysql://localhost:3306/ty_flowable?characterEncoding=utf8&serverTimezone=GMT%2b8&nullCatalogMeansCurrent=true
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456
file.path=D:/ty_flowable_xml/
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论