Java8新特性之—-Stream
Stream的操作:操作流程比较简单
Stream的操作:操作流程比较简单
工作流中的主流程和子流程审核实践
职工申请一个采购申请,然后部门经理审核,审核通过后总经理审核
该表主要记录附件的历史数据,核心字段包括:
ID_:附件唯一标识
REV_:版本号
USER_ID_:上传附件的用户 ID(如部门经理、总经理的用户标识)
NAME_:附件名称(如 “部门经理同意单.jpg”“总经理审批单.png”)
DESCRIPTION_:附件描述(可记录附件相关说明,如 “2024 年 X 月采购申请部门经理手写同意单”)
TYPE_:附件类型(如 “image/jpg”“application/pdf”)
TASK_ID_:关联的任务 ID(即该附件是在哪个审核任务中上传的,如部门经理审核任务 ID、总经理审核任务 ID)
PROC_INST_ID_:关联的流程实例 ID(整个采购申请流程的唯一标识)
URL_:附件存储路径(可以是服务器本地路径,如 “/attachments/purchase/202405/manager_agree.jpg”,也可以是云存储的 URL)
CONTENT_ID_:附件内容 ID(若附件内容存储在 ACT_GE_BYTEARRAY 表中,该字段关联对应记录的 ID)
TIME_:附件上传时间
1 职工提交采购申请:职工发起采购申请流程,此时流程进入 “部门经理审核” 环节,暂未产生附件记录。
部门经理审核并上传同意单:
2 部门经理查看采购申请内容,审核通过后,在系统中上传手写同意单。
系统通过 Activiti 的 API 调用附件相关服务,生成附件记录并插入 ACT_HI_ATTACHMENT 表。
关键参数设置:USER_ID_ 设为部门经理的用户 ID,TASK_ID_ 设为当前 “部门经理审核” 任务的 ID,PROC_INST_ID_ 设为当前采购申请流程实例 ID,URL_ 设为同意单的存储路径,TIME_ 设为上传时刻的时间。
3 流程流转至总经理审核:部门经理审核通过后,流程进入 “总经理审核” 环节。
4 总经理审核并上传相关附件(可选):
总经理若有额外审批附件(如更详细的审批说明文件),可类似部门经理的操作上传。
系统同样在 ACT_HI_ATTACHMENT 表中新增一条记录,关联当前 “总经理审核” 任务 ID 和相同的流程实例 ID。
5 流程结束:所有审核环节完成后,ACT_HI_ATTACHMENT 表中保留了该采购申请流程中所有审核环节上传的附件历史记录,便于后续查询和追溯。
// 假设已获取到当前任务ID(taskId)、流程实例ID(procInstId)、上传用户ID(userId)
// 附件信息
String attachmentName = "部门经理同意单.jpg";
String attachmentDesc = "2024年5月采购申请部门经理手写同意单";
String attachmentType = "image/jpg";
String attachmentUrl = "/attachments/purchase/202405/manager_agree.jpg";
// 通过Activiti的HistoryService创建附件记录
Attachment attachment = historyService.createAttachmentQuery()
.taskId(taskId)
.singleResult();
if (attachment == null) {
attachment = historyService.createAttachment(
attachmentType,
taskId,
procInstId,
attachmentName,
attachmentDesc,
attachmentUrl
);
// 若附件内容存储在ACT_GE_BYTEARRAY表,可设置contentId
// attachment.setContentId(contentId);
// 上传时间由系统自动记录为当前时间
}
// 根据流程实例ID查询该流程相关的所有历史附件
List<Attachment> attachments = historyService.createAttachmentQuery()
.processInstanceId(procInstId)
.list();
// 遍历附件信息
for (Attachment attachment : attachments) {
System.out.println("附件名称:" + attachment.getName());
System.out.println("上传用户:" + attachment.getUserId());
System.out.println("上传时间:" + attachment.getTime());
System.out.println("附件路径:" + attachment.getUrl());
// 其他附件信息...
}
element ui Tree组件
回调地址:
https://yn.quchadan.com/wechat/index
