mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-02-13 00:54:59 +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);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO @jason:有个 get-form-fields-permission
|
@GetMapping("/get-form-fields-permission")
|
||||||
@GetMapping("/form-fields-permission")
|
|
||||||
@Operation(summary = "获得流程实例表单字段权限", description = "在【我的流程】菜单中,进行调用")
|
@Operation(summary = "获得流程实例表单字段权限", description = "在【我的流程】菜单中,进行调用")
|
||||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance:query')")
|
@PreAuthorize("@ss.hasPermission('bpm:process-instance:query')")
|
||||||
public CommonResult<Map<String, String>> getProcessInstanceFormFieldsPermission(
|
public CommonResult<Map<String, String>> getProcessInstanceFormFieldsPermission(
|
||||||
|
@ -48,10 +48,16 @@ public class BpmProcessInstanceCopyDO extends BaseDO {
|
|||||||
* 冗余 ProcessInstance 的 category 字段
|
* 冗余 ProcessInstance 的 category 字段
|
||||||
*/
|
*/
|
||||||
private String category;
|
private String category;
|
||||||
|
/**
|
||||||
|
* 流程活动编号
|
||||||
|
* <p/>
|
||||||
|
* 对应 BPMN XML 节点 Id, 用于查询抄送节点的表单字段权限
|
||||||
|
* 这里冗余的原因。如果是钉钉易搭的抄送节点 (ServiceTask) 。 使用 taskId 可能查不到对应的 activityId
|
||||||
|
*/
|
||||||
|
private String activityId;
|
||||||
/**
|
/**
|
||||||
* 任务主键
|
* 任务主键
|
||||||
*
|
* // @芋艿 这个 taskId 是不是可以去掉了
|
||||||
* 关联 Task 的 id 属性
|
* 关联 Task 的 id 属性
|
||||||
*/
|
*/
|
||||||
private String taskId;
|
private String taskId;
|
||||||
|
@ -41,7 +41,7 @@ public class BpmCopyTaskDelegate implements JavaDelegate {
|
|||||||
// 2. 执行抄送
|
// 2. 执行抄送
|
||||||
FlowElement currentFlowElement = execution.getCurrentFlowElement();
|
FlowElement currentFlowElement = execution.getCurrentFlowElement();
|
||||||
processInstanceCopyService.createProcessInstanceCopy(userIds, execution.getProcessInstanceId(),
|
processInstanceCopyService.createProcessInstanceCopy(userIds, execution.getProcessInstanceId(),
|
||||||
currentFlowElement.getId(), currentFlowElement.getName());
|
currentFlowElement.getId(), null, currentFlowElement.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -26,10 +26,12 @@ public interface BpmProcessInstanceCopyService {
|
|||||||
*
|
*
|
||||||
* @param userIds 抄送的用户编号
|
* @param userIds 抄送的用户编号
|
||||||
* @param processInstanceId 流程编号
|
* @param processInstanceId 流程编号
|
||||||
|
* @param activityId 流程活动编号 id (对应 BPMN XML 节点 Id)
|
||||||
|
* // TODO 芋艿这个 taskId 是不是可以不要了
|
||||||
* @param taskId 任务编号
|
* @param taskId 任务编号
|
||||||
* @param taskName 任务名称
|
* @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);
|
throw exception(ErrorCodeConstants.TASK_NOT_EXISTS);
|
||||||
}
|
}
|
||||||
String processInstanceId = task.getProcessInstanceId();
|
String processInstanceId = task.getProcessInstanceId();
|
||||||
createProcessInstanceCopy(userIds, processInstanceId, task.getId(), task.getName());
|
createProcessInstanceCopy(userIds, processInstanceId, task.getTaskDefinitionKey(), task.getId(), task.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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 校验流程实例存在
|
// 1.1 校验流程实例存在
|
||||||
ProcessInstance processInstance = processInstanceService.getProcessInstance(processInstanceId);
|
ProcessInstance processInstance = processInstanceService.getProcessInstance(processInstanceId);
|
||||||
if (processInstance == null) {
|
if (processInstance == null) {
|
||||||
@ -74,7 +74,8 @@ public class BpmProcessInstanceCopyServiceImpl implements BpmProcessInstanceCopy
|
|||||||
List<BpmProcessInstanceCopyDO> copyList = convertList(userIds, userId -> new BpmProcessInstanceCopyDO()
|
List<BpmProcessInstanceCopyDO> copyList = convertList(userIds, userId -> new BpmProcessInstanceCopyDO()
|
||||||
.setUserId(userId).setStartUserId(Long.valueOf(processInstance.getStartUserId()))
|
.setUserId(userId).setStartUserId(Long.valueOf(processInstance.getStartUserId()))
|
||||||
.setProcessInstanceId(processInstanceId).setProcessInstanceName(processInstance.getName())
|
.setProcessInstanceId(processInstanceId).setProcessInstanceName(processInstance.getName())
|
||||||
.setCategory(processDefinition.getCategory()).setTaskId(taskId).setTaskName(taskName));
|
.setCategory(processDefinition.getCategory()).setActivityId(activityId)
|
||||||
|
.setTaskId(taskId).setTaskName(taskName));
|
||||||
processInstanceCopyMapper.insertBatch(copyList);
|
processInstanceCopyMapper.insertBatch(copyList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user