Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jyzb_platformV2
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
赵剑炜
jyzb_platformV2
Commits
69e72185
Commit
69e72185
authored
Sep 27, 2023
by
李小惠
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of
http://gitlab.sothing.top/843502640/jyzb_platformV2
into develop-lxh
parents
3221e584
d8c3eea1
显示空白字符变更
内嵌
并排
正在显示
21 个修改的文件
包含
826 行增加
和
54 行删除
+826
-54
BpmnController.java
jyzb-process/src/main/java/com/junmp/junmpProcess/controller/BpmnController.java
+7
-1
FlowDefinitionController.java
jyzb-process/src/main/java/com/junmp/junmpProcess/controller/FlowDefinitionController.java
+39
-0
FlowInstanceController.java
jyzb-process/src/main/java/com/junmp/junmpProcess/controller/FlowInstanceController.java
+14
-0
FlowTaskController.java
jyzb-process/src/main/java/com/junmp/junmpProcess/controller/FlowTaskController.java
+13
-0
OrgUserAndDeptController.java
jyzb-process/src/main/java/com/junmp/junmpProcess/controller/OrgUserAndDeptController.java
+0
-52
SysFormController.java
jyzb-process/src/main/java/com/junmp/junmpProcess/controller/SysFormController.java
+53
-0
FlowCommentDto.java
jyzb-process/src/main/java/com/junmp/junmpProcess/dto/FlowCommentDto.java
+20
-0
FlowTaskDto.java
jyzb-process/src/main/java/com/junmp/junmpProcess/dto/FlowTaskDto.java
+97
-0
FlowServiceFactory.java
jyzb-process/src/main/java/com/junmp/junmpProcess/factory/FlowServiceFactory.java
+41
-0
OrgUserMapper.java
jyzb-process/src/main/java/com/junmp/junmpProcess/mapper/OrgUserMapper.java
+2
-0
WorkProcessService.java
jyzb-process/src/main/java/com/junmp/junmpProcess/service/Bussiness/WorkProcessService.java
+7
-0
WorkProcessServiceImpl.java
jyzb-process/src/main/java/com/junmp/junmpProcess/service/Bussiness/impl/WorkProcessServiceImpl.java
+18
-1
IFlowDefinitionService.java
jyzb-process/src/main/java/com/junmp/junmpProcess/service/IFlowDefinitionService.java
+20
-0
IFlowInstanceService.java
jyzb-process/src/main/java/com/junmp/junmpProcess/service/IFlowInstanceService.java
+40
-0
IFlowTaskService.java
jyzb-process/src/main/java/com/junmp/junmpProcess/service/IFlowTaskService.java
+4
-0
ISysDeployFormService.java
jyzb-process/src/main/java/com/junmp/junmpProcess/service/ISysDeployFormService.java
+4
-0
ISysFormService.java
jyzb-process/src/main/java/com/junmp/junmpProcess/service/ISysFormService.java
+54
-0
FlowDefinitionServiceImpl.java
jyzb-process/src/main/java/com/junmp/junmpProcess/service/impl/FlowDefinitionServiceImpl.java
+56
-0
FlowInstanceServiceImpl.java
jyzb-process/src/main/java/com/junmp/junmpProcess/service/impl/FlowInstanceServiceImpl.java
+134
-0
SysFormServiceImpl.java
jyzb-process/src/main/java/com/junmp/junmpProcess/service/impl/SysFormServiceImpl.java
+194
-0
OrgUserMapper.xml
jyzb-process/src/main/resources/mapper/OrgUserMapper.xml
+9
-0
没有找到文件。
jyzb-process/src/main/java/com/junmp/junmpProcess/controller/BpmnController.java
View file @
69e72185
...
@@ -52,7 +52,7 @@ public class BpmnController {
...
@@ -52,7 +52,7 @@ public class BpmnController {
return
ApiRes
.
success
(
WorkProcessService
.
updateForm
(
process
));
return
ApiRes
.
success
(
WorkProcessService
.
updateForm
(
process
));
}
}
/**
/**
*
修改表单
*
删除流程实例
*/
*/
@ApiOperation
(
"删除流程实例"
)
@ApiOperation
(
"删除流程实例"
)
@PostMapping
(
"deleteForm"
)
@PostMapping
(
"deleteForm"
)
...
@@ -121,6 +121,12 @@ public class BpmnController {
...
@@ -121,6 +121,12 @@ public class BpmnController {
public
ApiRes
<
PageResult
<
HistoryProcessInstanceVO
>>
applyList
(
@RequestBody
ApplyDTO
ApplyDTO
)
{
public
ApiRes
<
PageResult
<
HistoryProcessInstanceVO
>>
applyList
(
@RequestBody
ApplyDTO
ApplyDTO
)
{
return
ApiRes
.
success
(
WorkProcessService
.
applyList
(
ApplyDTO
));
return
ApiRes
.
success
(
WorkProcessService
.
applyList
(
ApplyDTO
));
}
}
@ApiOperation
(
"根据业务ID换取最新的流程信息"
)
@PostMapping
(
"getProcessDefinitionId"
)
public
ApiRes
<
String
>
getProcessDefinitionId
(
@RequestBody
Map
<
String
,
Object
>
templateId
)
{
String
temp
=
templateId
.
get
(
"formId"
).
toString
();
return
WorkProcessService
.
getProcessDefinitionId
(
temp
);
}
@ApiOperation
(
"查看我的待办"
)
@ApiOperation
(
"查看我的待办"
)
@PostMapping
(
"toDoList"
)
@PostMapping
(
"toDoList"
)
public
ApiRes
<
PageResult
<
TaskVO
>>
toDoList
(
@RequestBody
TaskDTO
taskDTO
){
public
ApiRes
<
PageResult
<
TaskVO
>>
toDoList
(
@RequestBody
TaskDTO
taskDTO
){
...
...
jyzb-process/src/main/java/com/junmp/junmpProcess/controller/FlowDefinitionController.java
0 → 100644
View file @
69e72185
package
com
.
junmp
.
junmpProcess
.
controller
;
import
com.junmp.junmpProcess.dto.HandleDataDTO
;
import
com.junmp.junmpProcess.service.Bussiness.WorkProcessService
;
import
com.junmp.junmpProcess.service.IFlowDefinitionService
;
import
com.junmp.junmpProcess.service.ISysFormService
;
import
com.junmp.jyzb.api.bean.query.ProcessReq.SuspendOrActivateDefinitionReq
;
import
com.junmp.v2.common.bean.response.ApiRes
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
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.util.Map
;
@Slf4j
@RestController
@RequestMapping
(
"/FlowDefinition"
)
@Api
(
tags
=
"流程定义"
)
public
class
FlowDefinitionController
{
@Autowired
private
IFlowDefinitionService
FlowDefinitionService
;
@ApiOperation
(
"停启用流程"
)
@PostMapping
(
"StopProcessInstanceById"
)
public
ApiRes
<
Boolean
>
stopProcessInstanceById
(
@RequestBody
SuspendOrActivateDefinitionReq
req
)
{
return
ApiRes
.
success
(
FlowDefinitionService
.
updateState
(
req
));
}
@ApiOperation
(
"根据业务ID换取最新的流程信息"
)
@PostMapping
(
"GetProcessDefinitionId"
)
public
ApiRes
<
String
>
GetProcessDefinitionId
(
@RequestBody
Map
<
String
,
Object
>
templateId
)
{
String
temp
=
templateId
.
get
(
"formId"
).
toString
();
return
FlowDefinitionService
.
getLatestDefinitionId
(
temp
);
}
}
jyzb-process/src/main/java/com/junmp/junmpProcess/controller/FlowInstanceController.java
0 → 100644
View file @
69e72185
package
com
.
junmp
.
junmpProcess
.
controller
;
import
io.swagger.annotations.Api
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@Slf4j
@RestController
@RequestMapping
(
"/FlowInstance"
)
@Api
(
tags
=
"流程实例"
)
public
class
FlowInstanceController
{
}
jyzb-process/src/main/java/com/junmp/junmpProcess/controller/FlowTaskController.java
0 → 100644
View file @
69e72185
package
com
.
junmp
.
junmpProcess
.
controller
;
import
io.swagger.annotations.Api
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@Slf4j
@RestController
@RequestMapping
(
"/FlowTask"
)
@Api
(
tags
=
"流程任务"
)
public
class
FlowTaskController
{
}
jyzb-process/src/main/java/com/junmp/junmpProcess/controller/OrgUserAndDeptController.java
deleted
100644 → 0
View file @
3221e584
//package com.junmp.junmpProcess.controller;
//
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import com.junmp.junmpProcess.service.Bussiness.OrgUserAndDeptService;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.RestController;
//
//import javax.annotation.Resource;
//
///**
// * @author : willian fu
// * @version : 1.0
// */
//@RestController
//@RequestMapping("/OrgUserAndDept")
//@Api(tags = "和用户组织机构有关的接口")
//public class OrgUserAndDeptController {
//
// @Resource
// private OrgUserAndDeptService orgService;
//
// /**
// * 查询组织架构树
// *
// * @param deptId 部门id
// * @return 组织架构树数据
// */
// @ApiOperation("查询组织架构树")
// @GetMapping("tree")
//// @PermissionData(pageComponent = "jeecg/JeecgDemoList")
// public Object getOrgTreeData(@RequestParam(defaultValue = "0") Integer deptId,
// @RequestParam(defaultValue = "user") String type
// ) {
// return orgService.getOrgTreeData(deptId, type);
// }
//
// /**
// * 模糊搜索用户
// *
// * @param userName 用户名/拼音/首字母
// * @return 匹配到的用户
// */
// @ApiOperation("模糊搜索用户")
// @GetMapping("tree/search")
// public Object getOrgTreeUser(@RequestParam String userName) {
// return orgService.getOrgTreeUser(userName.trim());
// }
//
//}
jyzb-process/src/main/java/com/junmp/junmpProcess/controller/SysFormController.java
0 → 100644
View file @
69e72185
package
com
.
junmp
.
junmpProcess
.
controller
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.junmp.junmpProcess.service.ISysFormService
;
import
com.junmp.junmpProcess.vo.ProcessVO
;
import
com.junmp.junmpProcess.vo.TemplateGroupVo
;
import
com.junmp.junmpProcess.vo.UpdateProcessVO
;
import
com.junmp.jyzb.api.bean.query.ProcessReq.FormReq
;
import
com.junmp.v2.common.bean.request.BaseRequest
;
import
com.junmp.v2.common.bean.response.ApiRes
;
import
com.junmp.v2.db.api.page.PageResult
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
@Slf4j
@RestController
@RequestMapping
(
"/SysForm"
)
@Api
(
tags
=
"流程编辑"
)
public
class
SysFormController
{
@Autowired
private
ISysFormService
SysFormService
;
@ApiOperation
(
"创建新表单"
)
@PostMapping
(
"CreateForm"
)
public
ApiRes
<
Boolean
>
CreateForm
(
@RequestBody
FormReq
formReq
)
{
return
ApiRes
.
success
(
SysFormService
.
createNewForm
(
formReq
));
}
@ApiOperation
(
"同时创建流程和表单"
)
@PostMapping
(
value
=
"Create"
)
public
ApiRes
<
Boolean
>
Create
(
@RequestBody
ProcessVO
processVO
)
throws
JsonProcessingException
{
return
ApiRes
.
success
(
SysFormService
.
createBpmn
(
processVO
));
}
/**
* 修改表单名称和备注
*/
@ApiOperation
(
"修改表单名称和备注"
)
@PostMapping
(
"UpdateFormName"
)
public
ApiRes
<
Boolean
>
UpdateFormName
(
@RequestBody
UpdateProcessVO
process
)
throws
JsonProcessingException
{
return
ApiRes
.
success
(
SysFormService
.
updateFormName
(
process
));
}
@ApiOperation
(
"获取全部可用的表单和审核流"
)
@GetMapping
(
value
=
"GetFormList"
)
public
ApiRes
<
PageResult
<
TemplateGroupVo
>>
GetFormList
(
BaseRequest
br
)
{
return
ApiRes
.
success
(
SysFormService
.
getFormList
(
br
));
}
}
jyzb-process/src/main/java/com/junmp/junmpProcess/dto/FlowCommentDto.java
0 → 100644
View file @
69e72185
package
com
.
junmp
.
junmpProcess
.
dto
;
import
lombok.Builder
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
@Builder
public
class
FlowCommentDto
implements
Serializable
{
/**
* 意见类别 0 正常意见 1 退回意见 2 驳回意见
*/
private
String
type
;
/**
* 意见内容
*/
private
String
comment
;
}
jyzb-process/src/main/java/com/junmp/junmpProcess/dto/FlowTaskDto.java
0 → 100644
View file @
69e72185
package
com
.
junmp
.
junmpProcess
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
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
FlowTaskDto
implements
Serializable
{
@ApiModelProperty
(
"任务编号"
)
private
String
taskId
;
@ApiModelProperty
(
"任务执行编号"
)
private
String
executionId
;
@ApiModelProperty
(
"任务名称"
)
private
String
taskName
;
@ApiModelProperty
(
"任务Key"
)
private
String
taskDefKey
;
@ApiModelProperty
(
"任务执行人Id"
)
private
Long
assigneeId
;
@ApiModelProperty
(
"部门名称"
)
private
String
deptName
;
@ApiModelProperty
(
"流程发起人部门名称"
)
private
String
startDeptName
;
@ApiModelProperty
(
"任务执行人名称"
)
private
String
assigneeName
;
@ApiModelProperty
(
"任务执行人部门"
)
private
String
assigneeDeptName
;;
@ApiModelProperty
(
"流程发起人Id"
)
private
String
startUserId
;
@ApiModelProperty
(
"流程发起人名称"
)
private
String
startUserName
;
@ApiModelProperty
(
"流程类型"
)
private
String
category
;
@ApiModelProperty
(
"流程变量信息"
)
private
Object
procVars
;
@ApiModelProperty
(
"局部变量信息"
)
private
Object
taskLocalVars
;
@ApiModelProperty
(
"流程部署编号"
)
private
String
deployId
;
@ApiModelProperty
(
"流程ID"
)
private
String
procDefId
;
@ApiModelProperty
(
"流程key"
)
private
String
procDefKey
;
@ApiModelProperty
(
"流程定义名称"
)
private
String
procDefName
;
@ApiModelProperty
(
"流程定义内置使用版本"
)
private
int
procDefVersion
;
@ApiModelProperty
(
"流程实例ID"
)
private
String
procInsId
;
@ApiModelProperty
(
"历史流程实例ID"
)
private
String
hisProcInsId
;
@ApiModelProperty
(
"任务耗时"
)
private
String
duration
;
@ApiModelProperty
(
"任务意见"
)
private
FlowCommentDto
comment
;
@ApiModelProperty
(
"候选执行人"
)
private
String
candidate
;
@ApiModelProperty
(
"任务创建时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTime
;
@ApiModelProperty
(
"任务完成时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
finishTime
;
}
jyzb-process/src/main/java/com/junmp/junmpProcess/factory/FlowServiceFactory.java
0 → 100644
View file @
69e72185
package
com
.
junmp
.
junmpProcess
.
factory
;
import
lombok.Getter
;
import
org.flowable.engine.*
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
/**
* flowable 引擎注入封装
* @author Tony
* @date 2021-04-03
*/
@Component
@Getter
public
class
FlowServiceFactory
{
@Resource
protected
RepositoryService
repositoryService
;
@Resource
protected
RuntimeService
runtimeService
;
@Resource
protected
IdentityService
identityService
;
@Resource
protected
TaskService
taskService
;
@Resource
protected
HistoryService
historyService
;
@Resource
protected
ManagementService
managementService
;
@Qualifier
(
"processEngine"
)
@Resource
protected
ProcessEngine
processEngine
;
}
jyzb-process/src/main/java/com/junmp/junmpProcess/mapper/OrgUserMapper.java
View file @
69e72185
...
@@ -24,4 +24,6 @@ public interface OrgUserMapper {
...
@@ -24,4 +24,6 @@ public interface OrgUserMapper {
public
List
<
UserListDTO
>
QueryUserByRoleIdAndOrg
(
String
roleId
,
String
orgId
);
public
List
<
UserListDTO
>
QueryUserByRoleIdAndOrg
(
String
roleId
,
String
orgId
);
public
List
<
UserListDTO
>
QueryUserWithParentOrg
(
String
userId
);
public
List
<
UserListDTO
>
QueryUserWithParentOrg
(
String
userId
);
public
UserListDTO
QueryUser
(
String
userId
);
}
}
jyzb-process/src/main/java/com/junmp/junmpProcess/service/Bussiness/WorkProcessService.java
View file @
69e72185
...
@@ -212,6 +212,13 @@ public interface WorkProcessService {
...
@@ -212,6 +212,13 @@ public interface WorkProcessService {
* @return
* @return
*/
*/
ApiRes
<
HandleDataVO
>
instanceInfo
(
HandleDataDTO
HandleDataDTO
);
ApiRes
<
HandleDataVO
>
instanceInfo
(
HandleDataDTO
HandleDataDTO
);
/**
* 通过流程实例id查看详情
*
* @return
*/
ApiRes
<
String
>
getProcessDefinitionId
(
String
formId
);
// /**
// /**
// * 上传文件
// * 上传文件
// * @return
// * @return
...
...
jyzb-process/src/main/java/com/junmp/junmpProcess/service/Bussiness/impl/WorkProcessServiceImpl.java
View file @
69e72185
...
@@ -654,7 +654,7 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
...
@@ -654,7 +654,7 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
}
}
// StartUser.setUserId(Long.valueOf("1694954953210986498"));
// StartUser.setUserId(Long.valueOf("1694954953210986498"));
StartUser
=
LoginContext
.
getContext
().
getLoginUser
();
//
StartUser= LoginContext.getContext().getLoginUser();
JSONObject
formData
=
processInstanceDto
.
getFormData
();
JSONObject
formData
=
processInstanceDto
.
getFormData
();
Authentication
.
setAuthenticatedUserId
(
StartUser
.
getUserId
().
toString
());
Authentication
.
setAuthenticatedUserId
(
StartUser
.
getUserId
().
toString
());
...
@@ -1457,6 +1457,23 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
...
@@ -1457,6 +1457,23 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
return
Result
.
OK
();
return
Result
.
OK
();
}
}
@Override
public
ApiRes
<
String
>
getProcessDefinitionId
(
String
formId
)
{
String
defId
=
""
;
ProcessDefinition
ProDef
=
repositoryService
.
createProcessDefinitionQuery
()
.
processDefinitionKey
(
"Process_"
+
formId
)
.
latestVersion
()
.
singleResult
();
if
(
ProDef
!=
null
)
{
defId
=
ProDef
.
getId
();
}
return
ApiRes
.
success
(
defId
);
}
@Override
@Override
public
ApiRes
<
HandleDataVO
>
instanceInfo
(
HandleDataDTO
HandleDataDTO
)
{
public
ApiRes
<
HandleDataVO
>
instanceInfo
(
HandleDataDTO
HandleDataDTO
)
{
String
processInstanceId
=
HandleDataDTO
.
getProcessInstanceId
();
String
processInstanceId
=
HandleDataDTO
.
getProcessInstanceId
();
...
...
jyzb-process/src/main/java/com/junmp/junmpProcess/service/IFlowDefinitionService.java
0 → 100644
View file @
69e72185
package
com
.
junmp
.
junmpProcess
.
service
;
import
com.junmp.jyzb.api.bean.query.ProcessReq.SuspendOrActivateDefinitionReq
;
import
com.junmp.v2.common.bean.response.ApiRes
;
public
interface
IFlowDefinitionService
{
/**
* 挂起流程定义
*
* @return
*/
Boolean
updateState
(
SuspendOrActivateDefinitionReq
req
)
;
/**
* 通过流程实例id查看详情
*
* @return
*/
ApiRes
<
String
>
getLatestDefinitionId
(
String
formId
);
}
jyzb-process/src/main/java/com/junmp/junmpProcess/service/IFlowInstanceService.java
0 → 100644
View file @
69e72185
package
com
.
junmp
.
junmpProcess
.
service
;
import
com.junmp.junmpProcess.dto.StartProcessInstanceDTO
;
import
com.junmp.v2.common.bean.response.ApiRes
;
import
org.flowable.engine.history.HistoricProcessInstance
;
import
java.util.Map
;
public
interface
IFlowInstanceService
{
/**
* 激活或挂起流程实例
*
* @param state 状态
* @param instanceId 流程实例ID
*/
void
updateState
(
Integer
state
,
String
instanceId
);
/**
* 删除流程实例ID
*
* @param instanceId 流程实例ID
* @param deleteReason 删除原因
*/
void
delete
(
String
instanceId
,
String
deleteReason
);
/**
* 根据实例ID查询历史实例数据
*
* @param processInstanceId
* @return
*/
HistoricProcessInstance
getHistoricProcessInstanceById
(
String
processInstanceId
);
/**
* 根据流程定义ID启动流程实例
*
* @return
*/
String
startProcessInstanceById
(
StartProcessInstanceDTO
processInstanceDto
);
}
jyzb-process/src/main/java/com/junmp/junmpProcess/service/IFlowTaskService.java
0 → 100644
View file @
69e72185
package
com
.
junmp
.
junmpProcess
.
service
;
public
interface
IFlowTaskService
{
}
jyzb-process/src/main/java/com/junmp/junmpProcess/service/ISysDeployFormService.java
0 → 100644
View file @
69e72185
package
com
.
junmp
.
junmpProcess
.
service
;
public
interface
ISysDeployFormService
{
}
jyzb-process/src/main/java/com/junmp/junmpProcess/service/ISysFormService.java
0 → 100644
View file @
69e72185
package
com
.
junmp
.
junmpProcess
.
service
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.junmp.junmpProcess.vo.ProcessVO
;
import
com.junmp.junmpProcess.vo.TemplateGroupVo
;
import
com.junmp.junmpProcess.vo.UpdateProcessVO
;
import
com.junmp.jyzb.api.bean.query.ProcessReq.FormReq
;
import
com.junmp.v2.common.bean.request.BaseRequest
;
import
com.junmp.v2.db.api.page.PageResult
;
public
interface
ISysFormService
{
/**
* 新增流程表单
*
* @param sysForm 流程表单
* @return 结果
*/
// public int insertSysForm(SysForm sysForm);
/**
* 创建表单
*
* @return
*/
Boolean
createNewForm
(
FormReq
processVO
);
/**
* 创建表单
*
* @return
*/
Boolean
createBpmn
(
ProcessVO
processVO
)
throws
JsonProcessingException
;
/**
* 编辑表单
*
* @return
*/
Boolean
updateForm
(
UpdateProcessVO
process
)
throws
JsonProcessingException
;
/**
* 编辑表单名称
*
* @return
*/
Boolean
updateFormName
(
UpdateProcessVO
process
);
/**
* 获取用户可见表单
*
* @return
*/
PageResult
<
TemplateGroupVo
>
getFormList
(
BaseRequest
br
);
}
jyzb-process/src/main/java/com/junmp/junmpProcess/service/impl/FlowDefinitionServiceImpl.java
0 → 100644
View file @
69e72185
package
com
.
junmp
.
junmpProcess
.
service
.
impl
;
import
com.junmp.junmpProcess.entity.ProcessTemplates
;
import
com.junmp.junmpProcess.factory.FlowServiceFactory
;
import
com.junmp.junmpProcess.service.IFlowDefinitionService
;
import
com.junmp.junmpProcess.service.Repository.ProcessTemplateService
;
import
com.junmp.jyzb.api.bean.query.ProcessReq.SuspendOrActivateDefinitionReq
;
import
com.junmp.v2.common.bean.response.ApiRes
;
import
lombok.extern.slf4j.Slf4j
;
import
org.flowable.engine.repository.ProcessDefinition
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
/**
* 流程定义
*
* @author Tony
* @date 2021-04-03
*/
@Service
@Slf4j
public
class
FlowDefinitionServiceImpl
extends
FlowServiceFactory
implements
IFlowDefinitionService
{
@Autowired
private
ProcessTemplateService
processTemplateService
;
@Override
public
Boolean
updateState
(
SuspendOrActivateDefinitionReq
req
)
{
ProcessTemplates
processTemplates
=
processTemplateService
.
getById
(
req
.
getTemplateId
());
if
(
req
.
getIsStop
()
==
true
){
repositoryService
.
suspendProcessDefinitionById
(
req
.
getProcessDefinitionId
(),
true
,
null
);
processTemplates
.
setIsStop
(
true
);
}
else
{
processTemplates
.
setIsStop
(
false
);
repositoryService
.
activateProcessDefinitionById
(
req
.
getProcessDefinitionId
(),
true
,
null
);
}
processTemplates
.
setUpdated
(
new
Date
());
return
processTemplateService
.
updateById
(
processTemplates
);
//更新表单明细表信息
}
@Override
public
ApiRes
<
String
>
getLatestDefinitionId
(
String
formId
)
{
String
defId
=
""
;
ProcessDefinition
ProDef
=
repositoryService
.
createProcessDefinitionQuery
()
.
processDefinitionKey
(
"Process_"
+
formId
)
.
latestVersion
()
.
singleResult
();
if
(
ProDef
!=
null
)
{
defId
=
ProDef
.
getId
();
}
return
ApiRes
.
success
(
defId
);
}
}
jyzb-process/src/main/java/com/junmp/junmpProcess/service/impl/FlowInstanceServiceImpl.java
0 → 100644
View file @
69e72185
package
com
.
junmp
.
junmpProcess
.
service
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.junmp.junmpProcess.dto.StartProcessInstanceDTO
;
import
com.junmp.junmpProcess.factory.FlowServiceFactory
;
import
com.junmp.junmpProcess.service.IFlowInstanceService
;
import
com.junmp.v2.auth.api.bean.login.LoginUser
;
import
com.junmp.v2.auth.api.context.LoginContext
;
import
com.junmp.v2.common.bean.response.ApiRes
;
import
lombok.extern.slf4j.Slf4j
;
import
org.flowable.common.engine.api.FlowableObjectNotFoundException
;
import
org.flowable.common.engine.impl.identity.Authentication
;
import
org.flowable.engine.history.HistoricProcessInstance
;
import
org.flowable.engine.repository.ProcessDefinition
;
import
org.flowable.engine.runtime.ProcessInstance
;
import
org.flowable.engine.runtime.ProcessInstanceBuilder
;
import
org.flowable.task.api.Task
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Objects
;
import
static
com
.
junmp
.
junmpProcess
.
common
.
CommonConstants
.*;
import
static
com
.
junmp
.
junmpProcess
.
common
.
CommonConstants
.
BUSINESS_STATUS_1
;
@Service
@Slf4j
public
class
FlowInstanceServiceImpl
extends
FlowServiceFactory
implements
IFlowInstanceService
{
@Override
public
void
updateState
(
Integer
state
,
String
instanceId
)
{
// 激活
if
(
state
==
1
)
{
runtimeService
.
activateProcessInstanceById
(
instanceId
);
}
// 挂起
if
(
state
==
2
)
{
runtimeService
.
suspendProcessInstanceById
(
instanceId
);
}
}
/**
* 删除流程实例ID
*
* @param instanceId 流程实例ID
* @param deleteReason 删除原因
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
String
instanceId
,
String
deleteReason
)
{
// 查询历史数据
HistoricProcessInstance
historicProcessInstance
=
getHistoricProcessInstanceById
(
instanceId
);
if
(
historicProcessInstance
.
getEndTime
()
!=
null
)
{
historyService
.
deleteHistoricProcessInstance
(
historicProcessInstance
.
getId
());
return
;
}
// 删除流程实例
runtimeService
.
deleteProcessInstance
(
instanceId
,
deleteReason
);
// 删除历史流程实例
historyService
.
deleteHistoricProcessInstance
(
instanceId
);
}
/**
* 根据实例ID查询历史实例数据
*
* @param processInstanceId
* @return
*/
@Override
public
HistoricProcessInstance
getHistoricProcessInstanceById
(
String
processInstanceId
)
{
HistoricProcessInstance
historicProcessInstance
=
historyService
.
createHistoricProcessInstanceQuery
().
processInstanceId
(
processInstanceId
).
singleResult
();
if
(
Objects
.
isNull
(
historicProcessInstance
))
{
throw
new
FlowableObjectNotFoundException
(
"流程实例不存在: "
+
processInstanceId
);
}
return
historicProcessInstance
;
}
@Override
public
String
startProcessInstanceById
(
StartProcessInstanceDTO
processInstanceDto
)
{
LoginUser
StartUser
=
new
LoginUser
();
if
(
processInstanceDto
.
getUserId
()!=
null
)
//优先拿接口中的信息,方便调试
{
StartUser
.
setUserId
(
Long
.
valueOf
(
processInstanceDto
.
getUserId
())
);
}
else
{
StartUser
=
LoginContext
.
getContext
().
getLoginUser
();
}
JSONObject
formData
=
processInstanceDto
.
getFormData
();
Authentication
.
setAuthenticatedUserId
(
StartUser
.
getUserId
().
toString
());
Map
<
String
,
Object
>
processVariables
=
new
HashMap
<>();
processVariables
.
put
(
FORM_VAR
,
formData
);
processVariables
.
put
(
ORDER_ID
,
processInstanceDto
.
getOrderId
());
processVariables
.
put
(
ORDER_TYPE
,
processInstanceDto
.
getOrderType
());
processVariables
.
put
(
START_USER_INFO
,
JSONObject
.
toJSONString
(
StartUser
));
processVariables
.
put
(
PROCESS_STATUS
,
BUSINESS_STATUS_1
);
ArrayList
<
LoginUser
>
userInfos
=
CollUtil
.
newArrayList
(
StartUser
);
if
(
formData
!=
null
)
{
Map
formValue
=
JSONObject
.
parseObject
(
formData
.
toJSONString
(),
new
TypeReference
<
Map
>()
{
});
processVariables
.
putAll
(
formValue
);
}
ProcessInstanceBuilder
processInstanceBuilder
=
runtimeService
.
createProcessInstanceBuilder
();
ProcessDefinition
processDefinition
=
repositoryService
.
createProcessDefinitionQuery
().
processDefinitionKey
(
processInstanceDto
.
getProcessDefinitionId
())
.
latestVersion
().
singleResult
();
// if (processDefinition == null )
// {
// return ApiRes.failure("流程不存在或已挂起");
// } else if (processDefinition.isSuspended())
// {
// return ApiRes.failure("流程不存在或已挂起");
// }
ProcessInstance
processInstance
=
processInstanceBuilder
.
processDefinitionId
(
processInstanceDto
.
getProcessDefinitionId
())
.
variable
(
"initiator"
,
StartUser
.
getUserId
())
.
variables
(
processVariables
)
.
businessStatus
(
BUSINESS_STATUS_1
)
.
start
();
//手动完成第一个任务
Task
task
=
taskService
.
createTaskQuery
().
processInstanceId
(
processInstance
.
getId
()).
singleResult
();
task
.
setAssignee
(
StartUser
.
getUserId
().
toString
());
return
processInstance
.
getProcessInstanceId
();
}
}
jyzb-process/src/main/java/com/junmp/junmpProcess/service/impl/SysFormServiceImpl.java
0 → 100644
View file @
69e72185
package
com
.
junmp
.
junmpProcess
.
service
.
impl
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.PageUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.junmp.junmpProcess.entity.ProcessTemplates
;
import
com.junmp.junmpProcess.mapper.ProcessTemplatesMapper
;
import
com.junmp.junmpProcess.mapper.TemplateGroupMapper
;
import
com.junmp.junmpProcess.service.ISysFormService
;
import
com.junmp.junmpProcess.service.Repository.ProcessTemplateService
;
import
com.junmp.junmpProcess.utils.IdWorker
;
import
com.junmp.junmpProcess.utils.SpringContextHolder
;
import
com.junmp.junmpProcess.vo.ProcessVO
;
import
com.junmp.junmpProcess.vo.TemplateGroupVo
;
import
com.junmp.junmpProcess.vo.UpdateProcessVO
;
import
com.junmp.jyzb.api.bean.query.ProcessReq.FormReq
;
import
com.junmp.v2.common.bean.request.BaseRequest
;
import
com.junmp.v2.db.api.factory.PageFactory
;
import
com.junmp.v2.db.api.page.PageResult
;
import
org.apache.commons.lang3.time.DateFormatUtils
;
import
org.flowable.bpmn.model.BpmnModel
;
import
org.flowable.engine.RepositoryService
;
import
org.flowable.engine.repository.Deployment
;
import
org.flowable.engine.repository.ProcessDefinition
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.*
;
import
static
com
.
junmp
.
junmpProcess
.
utils
.
BpmnConvert
.
toBpmn
;
@Service
public
class
SysFormServiceImpl
extends
ServiceImpl
<
ProcessTemplatesMapper
,
ProcessTemplates
>
implements
ISysFormService
{
@Resource
private
IdWorker
idWorker
;
@Autowired
private
ProcessTemplateService
processTemplateService
;
@Resource
private
RepositoryService
repositoryService
;
/**
* @Author: Zhaojw
* @Description: 创建新流程
* @DateTime: 2023/9/27 10:59
* @Params:
* @Return
*/
@Override
public
Boolean
createNewForm
(
FormReq
req
)
{
ProcessTemplates
processTemplates
=
ProcessTemplates
.
builder
().
build
();
String
templateId
=
idWorker
.
nextId
()+
""
;
processTemplates
.
setTemplateId
(
templateId
);
processTemplates
.
setFormName
(
req
.
getFormName
());
processTemplates
.
setRemark
(
req
.
getRemark
());
processTemplates
.
setIsStop
(
true
);
Date
date
=
new
Date
();
processTemplates
.
setUpdated
(
date
);
processTemplateService
.
save
(
processTemplates
);
return
true
;
}
@Override
public
Boolean
createBpmn
(
ProcessVO
processVO
)
throws
JsonProcessingException
{
//流程定义
ObjectMapper
objectMapper
=
new
ObjectMapper
();
JsonNode
processJsonNode
=
objectMapper
.
readTree
(
processVO
.
getProcessJson
());
JsonNode
formJsonNode
=
objectMapper
.
readTree
(
processVO
.
getFormJson
());
String
formName
=
processVO
.
getFormName
().
toString
();
ProcessTemplates
processTemplates
=
ProcessTemplates
.
builder
().
build
();
String
templateId
=
idWorker
.
nextId
()+
""
;
processTemplates
.
setTemplateId
(
templateId
);
processTemplates
.
setFormJson
(
formJsonNode
.
toString
());
processTemplates
.
setProcessJson
(
processJsonNode
.
toString
());
processTemplates
.
setFormName
(
processVO
.
getFormName
());
processTemplates
.
setIsStop
(
false
);
Date
date
=
new
Date
();
processTemplates
.
setUpdated
(
date
);
processTemplateService
.
save
(
processTemplates
);
//将json转换为bpmn
BpmnModel
bpmnModel
=
toBpmn
(
processJsonNode
,
formJsonNode
,
formName
,
templateId
);
Deployment
deploy
=
repositoryService
.
createDeployment
()
.
addBpmnModel
(
formName
+
".bpmn20.xml"
,
bpmnModel
)
.
name
(
formName
)
.
category
(
templateId
)
.
deploy
();
return
true
;
}
@Override
public
Boolean
updateForm
(
UpdateProcessVO
process
)
throws
JsonProcessingException
{
ObjectMapper
objectMapper
=
new
ObjectMapper
();
JsonNode
processJsonNode
=
objectMapper
.
readTree
(
process
.
getProcessJson
());
JsonNode
formJsonNode
=
objectMapper
.
readTree
(
process
.
getFormJson
());
String
formName
=
""
;
ProcessTemplates
processTemplates
=
processTemplateService
.
getById
(
process
.
getTemplateId
());
if
(
ObjectUtil
.
isNotEmpty
(
process
.
getFormName
()))
{
formName
=
process
.
getFormName
().
toString
();
processTemplates
.
setFormName
(
process
.
getFormName
());
}
else
{
formName
=
processTemplates
.
getFormName
();
}
// processTemplates.setFormJson(formJsonNode.toString());//暂时用不到,以后会用
processTemplates
.
setProcessJson
(
process
.
getProcessJson
().
toString
());
processTemplates
.
setUpdated
(
new
Date
());
processTemplateService
.
updateById
(
processTemplates
);
//更新表单明细表信息
BpmnModel
bpmnModel
=
toBpmn
(
processJsonNode
,
formJsonNode
,
formName
,
process
.
getTemplateId
());
Deployment
deploy
=
repositoryService
.
createDeployment
()
.
addBpmnModel
(
formName
+
".bpmn20.xml"
,
bpmnModel
)
.
name
(
formName
)
.
category
(
process
.
getTemplateId
())
.
deploy
();
return
true
;
}
@Override
public
Boolean
updateFormName
(
UpdateProcessVO
process
)
{
ProcessTemplates
processTemplates
=
processTemplateService
.
getById
(
process
.
getTemplateId
());
processTemplates
.
setFormName
(
process
.
getFormName
());
processTemplates
.
setRemark
(
process
.
getRemark
());
processTemplates
.
setUpdated
(
new
Date
());
return
processTemplateService
.
updateById
(
processTemplates
);
//更新表单明细表信息
}
public
PageResult
<
TemplateGroupVo
>
getFormList
(
BaseRequest
br
)
{
LambdaQueryWrapper
<
ProcessTemplates
>
wrapper
=
new
LambdaQueryWrapper
<
ProcessTemplates
>();
wrapper
.
orderByDesc
(
ProcessTemplates:
:
getUpdated
);
TemplateGroupMapper
templateGroupMapper
=
SpringContextHolder
.
getBean
(
TemplateGroupMapper
.
class
);
Page
<
ProcessTemplates
>
allformAndGroups
=
this
.
page
(
PageFactory
.
getDefaultPage
(),
wrapper
);
// templateGroupMapper.getAllFormAndGroups();
Map
<
Integer
,
List
<
ProcessTemplates
>>
coverMap
=
new
LinkedHashMap
<>();
allformAndGroups
.
getRecords
().
forEach
(
fg
->
{
List
<
ProcessTemplates
>
bos
=
coverMap
.
get
(
fg
.
getGroupId
());
if
(
CollectionUtil
.
isEmpty
(
bos
))
{
List
<
ProcessTemplates
>
list
=
new
ArrayList
<>();
list
.
add
(
fg
);
coverMap
.
put
(
fg
.
getGroupId
(),
list
);
}
else
{
bos
.
add
(
fg
);
}
});
PageResult
<
TemplateGroupVo
>
pageResult
=
new
PageResult
<
TemplateGroupVo
>();
coverMap
.
forEach
((
key
,
val
)
->
{
List
<
TemplateGroupVo
>
templates
=
new
ArrayList
<>();
val
.
forEach
(
v
->
{
if
(
ObjectUtil
.
isNotNull
(
v
.
getTemplateId
()))
{
String
defId
=
""
;
ProcessDefinition
ProDef
=
repositoryService
.
createProcessDefinitionQuery
()
.
processDefinitionKey
(
"Process_"
+
v
.
getTemplateId
())
.
latestVersion
()
.
singleResult
();
if
(
ProDef
!=
null
)
{
defId
=
ProDef
.
getId
();
}
templates
.
add
(
TemplateGroupVo
.
builder
()
.
formId
(
v
.
getTemplateId
())
.
remark
(
v
.
getRemark
())
.
formName
(
v
.
getFormName
())
.
isStop
(
v
.
getIsStop
())
.
updated
(
DateFormatUtils
.
format
(
v
.
getUpdated
(),
"yyyy年MM月dd日 HH时:mm分:ss秒"
))
.
templateId
(
v
.
getTemplateId
())
.
processDefinitionId
(
defId
)
.
build
());
}
});
pageResult
.
setRecords
(
templates
);
});
pageResult
.
setPageSize
(
allformAndGroups
.
getSize
());
pageResult
.
setTotalRows
(
allformAndGroups
.
getTotal
());
pageResult
.
setPageNo
(
allformAndGroups
.
getPages
());
pageResult
.
setTotalPage
(
PageUtil
.
totalPage
(
Convert
.
toInt
(
pageResult
.
getTotalRows
()),
Convert
.
toInt
(
pageResult
.
getPageSize
())));
return
pageResult
;
}
}
jyzb-process/src/main/resources/mapper/OrgUserMapper.xml
View file @
69e72185
...
@@ -21,6 +21,12 @@
...
@@ -21,6 +21,12 @@
GROUP BY su.user_id,su.real_name
GROUP BY su.user_id,su.real_name
</select>
</select>
<select
id=
"QueryUser"
resultMap=
"UserListDTO"
>
SELECT su.user_id,su.real_name FROM `sys_user` su
where su.user_id = ${userId}
</select>
<select
id=
"QueryUserWithParentOrg"
resultMap=
"UserListDTO"
>
<select
id=
"QueryUserWithParentOrg"
resultMap=
"UserListDTO"
>
SELECT
SELECT
CASE
CASE
...
@@ -38,4 +44,6 @@
...
@@ -38,4 +44,6 @@
JOIN sys_user_org AS userorg2 ON mainUser.org_parent_id = userorg2.org_id
JOIN sys_user_org AS userorg2 ON mainUser.org_parent_id = userorg2.org_id
JOIN sys_user AS user2 ON user2.user_id = userorg2.user_id;
JOIN sys_user AS user2 ON user2.user_id = userorg2.user_id;
</select>
</select>
</mapper>
</mapper>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论