1 Star 0 Fork 8

在线协同移动办工解决方案 / ydl-workflow

forked from changhf / ydl-workflow 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

workflow V1.0

ydl-workflow基于SAAS服务,完美整合springboot + activiti5 + MyBatis 通用 Mapper + 分页插件 PageInfo!

说明

本项目 fork 自 peter.anworkflow

项目引入了下面依赖:

<dependency>
		<groupId>org.activiti</groupId>
		<artifactId>activiti-spring-boot-starter-basic</artifactId>
		<version>5.22.0</version>
</dependency>


# 扩展说明

1. 增加了审批配置,业务表单,审批抄送人,操作流程等扩展表

2 支持流程会签,驳回,消息通知审批人

3  生成了节点实体类,支持用户原生生成流程定义

4 支持扩展用户自定义流程


## 功能简介
1. 流程定义
2. 流程发布
3. 流程审批
4. 流程驳回
5. 查询待办任务
6. 查询审批历史
7. 查询流程定义



### 如何启动项目
workflow目前支持三种启动方式:
1. 在IDE里运行Application类中的main方法启动
2. 执行如下maven命令

clean package -Dmaven.test.skip=true

并从target目录中找到ydl-workflow-biz-1.0.0-SNAPSHOT.jar,并在jar包的目录下执行如下java命令

java -jar ydl-workflow-biz-1.0.0-SNAPSHOT.jar

3. 修改pom.xml中如下片段

jar

改为

war

并打包放入到tomcat中执行

### 注意
最新版项目最低支持jdk1.7

## 所用框架
1. activiti v5.2
2. jdk1.7 
3. mysql v5.5
4. springcloud v4.0
5. pagehelper v4.1.6



## 项目包结构说明

├─main │ │
│ ├─java │ │ │ │ │ ├─com.yidouinc.ydl.workflow----------------项目主代码 │ │ │ │ │ │ │ ├─domain----------------项目实体类 │ │ │ │ │ │ │ ├─config----------------项目配置代码 │ │ │ │ │ │ │ ├─filter----------------项目过滤器 │ │ │ │ │ │ │ ├─mapper----------------项目映射数据库层 │ │ │ │ │ │ │ ├─service类----------------项目业务逻辑 │ │ │ │ │ │ │ └─Application类----------------以main方法启动springboot的类 │ │ │ │ │ └─generator----------------mybatis-plus Entity生成器 │ │ │ ├─resources----------------项目资源文件 │ │ │ ├─bpmn----------------流程定义文件 │ │ │ ├─application.properties----------------springboot项目配置 │ │ │ ├─mapper.xml----------------项目实体数据库映射文件 │ │ │ └─disconf.xml----------------项目disconf配置文件 │

注:SpringBoot项目默认不支持将静态资源和模板(web页面)放到webapp目录,但是个人感觉resources目录只放项目的配置更加简洁.

## 基于springboot启动方式

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients(basePackages="com.yidouinc")
@ImportResource({"classpath:disconf.xml"})
public class Application {
	@Bean
	@LoadBalanced
	RestTemplate restTemplate() {
		return new RestTemplate();
	}
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
		loadLogBack();
	}

	
## 流程启动代码

/**
	 * 启动流程
	 * 
	 * @param dto
	 * @return
	 */
	public String startWorkflow(ProcInstanceDto dto) {
		ProcessInstance processInstance = null;
		if (dto.getStartUserId() != null) {
			identityService.setAuthenticatedUserId(dto.getStartUserId().toString());
		}
		OperResult result = actOperatingFormService.saveOperatingForm(dto);
		dto.setOperatingFormId(result.getId());
		String companyId = String.valueOf(dto.getCompanyId());
		processInstance = runtimeService.startProcessInstanceByKeyAndTenantId(dto.getProcDefKey(), dto.getBusinessType() + "-" + dto.getBusinessKey(),
				companyId);
		dto.setProcInstId(processInstance.getId());
		workflowBusinessService.saveWorkflowRelateInfo(dto);
		return processInstance.getId();
	}
	
	
## 流程业务类注册
@Autowired
	private DataSource dataSource;
	
	@Autowired
	private DataSourceTransactionManager dataSourceTransactionManager;
	
	@Bean(name = "processEngineConfiguration")
	public SpringProcessEngineConfiguration getProcessEnginConfiguration() {
		SpringProcessEngineConfiguration processEngineConfiguration = new SpringProcessEngineConfiguration();
		processEngineConfiguration.setDataSource(dataSource);
		processEngineConfiguration.setTransactionManager(dataSourceTransactionManager);
		processEngineConfiguration.setDatabaseSchemaUpdate("true");
		processEngineConfiguration.setJobExecutorActivate(false);
		return processEngineConfiguration;
	}
	
	@Bean(name = "processEngine")
	public ProcessEngineFactoryBean getProcessEngineFactoryBean() {
		ProcessEngineFactoryBean processEngineFactoryBean = new ProcessEngineFactoryBean();
		processEngineFactoryBean.setProcessEngineConfiguration(this.getProcessEnginConfiguration());
		return processEngineFactoryBean;
	}
	
	@Bean(name = "repositoryService")
	public RepositoryService getRepositoryService() {
		return this.getProcessEnginConfiguration().getRepositoryService();
	}
	
	@Bean(name = "runtimeService")
	public RuntimeService getRuntimeService() {
		return this.getProcessEnginConfiguration().getRuntimeService();
	}
	
	@Bean(name = "taskService")
	public TaskService getTaskService() {
		return this.getProcessEnginConfiguration().getTaskService();
	}
	
	@Bean(name = "historyService")
	public HistoryService getHistoryService() {
		return this.getProcessEnginConfiguration().getHistoryService();
	}
	
	@Bean(name = "managementService")
	public ManagementService getManagementService() {
		return this.getProcessEnginConfiguration().getManagementService();
	}
	
	@Bean(name = "identityService")
	public IdentityService getIdentityService() {
		return this.getProcessEnginConfiguration().getIdentityService();
	}

空文件

简介

包含流程定义,发布,任务审批,扩展监听通知,静态表单,流程自定义,驳回,退回,会签等功能 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/zhonghui_dingding/ydl-workflow.git
git@gitee.com:zhonghui_dingding/ydl-workflow.git
zhonghui_dingding
ydl-workflow
ydl-workflow
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891