mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-02-08 14:44:57 +08:00
仿钉钉流程设计- 流程抄送增加流程活动 Id 字段
This commit is contained in:
parent
dd0bba4752
commit
6b0520d779
6
sql/mysql/bpm_update.sql
Normal file
6
sql/mysql/bpm_update.sql
Normal file
@ -0,0 +1,6 @@
|
||||
-- ----------------------------
|
||||
-- 流程抄送表新加流程活动编号
|
||||
-- ----------------------------
|
||||
ALTER TABLE `pro-test`.`bpm_process_instance_copy`
|
||||
ADD COLUMN `activity_id` varchar(64) NULL COMMENT '流程活动编号' AFTER `category`,
|
||||
MODIFY COLUMN `task_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '任务编号' AFTER `category`;
|
@ -157,8 +157,7 @@ public class BpmProcessInstanceController {
|
||||
return success(true);
|
||||
}
|
||||
|
||||
// TODO @jason:有个 get-form-fields-permission
|
||||
@GetMapping("/form-fields-permission")
|
||||
@GetMapping("/get-form-fields-permission")
|
||||
@Operation(summary = "获得流程实例表单字段权限", description = "在【我的流程】菜单中,进行调用")
|
||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance:query')")
|
||||
public CommonResult<Map<String, String>> getProcessInstanceFormFieldsPermission(
|
||||
|
@ -48,10 +48,16 @@ public class BpmProcessInstanceCopyDO extends BaseDO {
|
||||
* 冗余 ProcessInstance 的 category 字段
|
||||
*/
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 流程活动编号
|
||||
* <p/>
|
||||
* 对应 BPMN XML 节点 Id, 用于查询抄送节点的表单字段权限
|
||||
* 这里冗余的原因。如果是钉钉易搭的抄送节点 (ServiceTask) 。 使用 taskId 可能查不到对应的 activityId
|
||||
*/
|
||||
private String activityId;
|
||||
/**
|
||||
* 任务主键
|
||||
*
|
||||
* // @芋艿 这个 taskId 是不是可以去掉了
|
||||
* 关联 Task 的 id 属性
|
||||
*/
|
||||
private String taskId;
|
||||
|
@ -41,7 +41,7 @@ public class BpmCopyTaskDelegate implements JavaDelegate {
|
||||
// 2. 执行抄送
|
||||
FlowElement currentFlowElement = execution.getCurrentFlowElement();
|
||||
processInstanceCopyService.createProcessInstanceCopy(userIds, execution.getProcessInstanceId(),
|
||||
currentFlowElement.getId(), currentFlowElement.getName());
|
||||
currentFlowElement.getId(), null, currentFlowElement.getName());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -26,10 +26,12 @@ public interface BpmProcessInstanceCopyService {
|
||||
*
|
||||
* @param userIds 抄送的用户编号
|
||||
* @param processInstanceId 流程编号
|
||||
* @param activityId 流程活动编号 id (对应 BPMN XML 节点 Id)
|
||||
* // TODO 芋艿这个 taskId 是不是可以不要了
|
||||
* @param taskId 任务编号
|
||||
* @param taskName 任务名称
|
||||
*/
|
||||
void createProcessInstanceCopy(Collection<Long> userIds, String processInstanceId, String taskId, String taskName);
|
||||
void createProcessInstanceCopy(Collection<Long> userIds, String processInstanceId, String activityId, String taskId, String taskName);
|
||||
|
||||
/**
|
||||
* 获得抄送的流程的分页
|
||||
|
@ -53,11 +53,11 @@ public class BpmProcessInstanceCopyServiceImpl implements BpmProcessInstanceCopy
|
||||
throw exception(ErrorCodeConstants.TASK_NOT_EXISTS);
|
||||
}
|
||||
String processInstanceId = task.getProcessInstanceId();
|
||||
createProcessInstanceCopy(userIds, processInstanceId, task.getId(), task.getName());
|
||||
createProcessInstanceCopy(userIds, processInstanceId, task.getTaskDefinitionKey(), task.getId(), task.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createProcessInstanceCopy(Collection<Long> userIds, String processInstanceId, String taskId, String taskName) {
|
||||
public void createProcessInstanceCopy(Collection<Long> userIds, String processInstanceId, String activityId, String taskId, String taskName) {
|
||||
// 1.1 校验流程实例存在
|
||||
ProcessInstance processInstance = processInstanceService.getProcessInstance(processInstanceId);
|
||||
if (processInstance == null) {
|
||||
@ -74,7 +74,8 @@ public class BpmProcessInstanceCopyServiceImpl implements BpmProcessInstanceCopy
|
||||
List<BpmProcessInstanceCopyDO> copyList = convertList(userIds, userId -> new BpmProcessInstanceCopyDO()
|
||||
.setUserId(userId).setStartUserId(Long.valueOf(processInstance.getStartUserId()))
|
||||
.setProcessInstanceId(processInstanceId).setProcessInstanceName(processInstance.getName())
|
||||
.setCategory(processDefinition.getCategory()).setTaskId(taskId).setTaskName(taskName));
|
||||
.setCategory(processDefinition.getCategory()).setActivityId(activityId)
|
||||
.setTaskId(taskId).setTaskName(taskName));
|
||||
processInstanceCopyMapper.insertBatch(copyList);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user