update - 调整一些目录,并新增自定义的的 ID 生成器

This commit is contained in:
wangli 2023-10-31 11:19:54 +08:00
parent c7c400b548
commit 834bd83bba
16 changed files with 102 additions and 12 deletions

View File

@ -301,6 +301,13 @@ act_ge_bytearray (很多元数据)
> 1. 当前审批任务会触发 process-task-deleted 事件 > 1. 当前审批任务会触发 process-task-deleted 事件
> 2. 当前流程实例会触发 process-instance-rejected 事件 > 2. 当前流程实例会触发 process-instance-rejected 事件
## 7. 本工程结构说明
- workflow-engine-api: Feign 接口包,采用 SpringBoot Starter 方式对外提供
- workflow-engine-common: 通用的公共模型以及常量
- workflow-engine-core:
- workflow-engine-server
## 99.建设状态(过时) ## 99.建设状态(过时)
### 99.1 已完成: ### 99.1 已完成:

View File

@ -0,0 +1,41 @@
package cn.axzo.workflow.common.model.request.bpmn.task;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 对审批任务添加附件的入参模型
*
* @author wangli
* @since 2023/10/31 10:08
*/
@ApiModel("对审批任务添加附件的入参模型")
@Data
public class BpmnTaskAttachmentDTO {
@ApiModelProperty(value = "附件类型", notes = "一般是指格式, 如 png/jpeg/jpg/pdf 等, 强烈建议前端回传")
@NotBlank(message = "附件类型不能为空")
private String type;
@ApiModelProperty(value = "关联的审批任务 ID")
@NotBlank(message = "任务 ID 不能为空")
private String taskId;
@ApiModelProperty(value = "附件名称", notes = "如果为空,则使用文件名")
private String name;
@ApiModelProperty(value = "附件描述", notes = "现在的业务不会使用到")
private String description;
@ApiModelProperty(value = "附件地址")
@NotBlank(message = "附件地址不能为空")
private String url;
/**
* 该字段引擎本来支撑,但不建议给前端使用
*/
// private InputStream content;
}

View File

@ -1,6 +1,6 @@
package cn.axzo.workflow.core.conf; package cn.axzo.workflow.core.conf;
import cn.axzo.workflow.core.service.engine.behavior.CustomActivityBehaviorFactory; import cn.axzo.workflow.core.engine.behavior.CustomActivityBehaviorFactory;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import org.flowable.common.engine.api.delegate.event.FlowableEventListener; import org.flowable.common.engine.api.delegate.event.FlowableEventListener;
import org.flowable.form.spring.SpringFormEngineConfiguration; import org.flowable.form.spring.SpringFormEngineConfiguration;

View File

@ -1,4 +1,4 @@
package cn.axzo.workflow.core.service.engine.behavior; package cn.axzo.workflow.core.engine.behavior;
import org.flowable.bpmn.model.Activity; import org.flowable.bpmn.model.Activity;
import org.flowable.bpmn.model.UserTask; import org.flowable.bpmn.model.UserTask;

View File

@ -1,4 +1,4 @@
package cn.axzo.workflow.core.service.engine.behavior; package cn.axzo.workflow.core.engine.behavior;
import org.flowable.bpmn.model.Activity; import org.flowable.bpmn.model.Activity;
import org.flowable.bpmn.model.UserTask; import org.flowable.bpmn.model.UserTask;

View File

@ -1,4 +1,4 @@
package cn.axzo.workflow.core.service.engine.behavior; package cn.axzo.workflow.core.engine.behavior;
import org.flowable.bpmn.model.Activity; import org.flowable.bpmn.model.Activity;
import org.flowable.bpmn.model.UserTask; import org.flowable.bpmn.model.UserTask;

View File

@ -1,4 +1,4 @@
package cn.axzo.workflow.core.service.engine.behavior; package cn.axzo.workflow.core.engine.behavior;
import cn.axzo.workflow.core.common.enums.BpmnProcessTaskResultEnum; import cn.axzo.workflow.core.common.enums.BpmnProcessTaskResultEnum;
import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.ObjectNode;

View File

@ -0,0 +1,19 @@
package cn.axzo.workflow.core.engine.id;
import org.flowable.common.engine.impl.cfg.IdGenerator;
/**
* 基于时间的编号生成器
*
* @author wangli
* @since 2023/10/31 10:41
*/
public class BasedTimeIdGenerator implements IdGenerator {
@Override
public String getNextId() {
long timestamp = System.currentTimeMillis();
return "";
}
}

View File

@ -1,4 +1,4 @@
package cn.axzo.workflow.core.service.engine; package cn.axzo.workflow.core.engine.listener;
import cn.axzo.framework.jackson.utility.JSON; import cn.axzo.framework.jackson.utility.JSON;
import cn.axzo.workflow.core.listener.BpmActivityEventListener; import cn.axzo.workflow.core.listener.BpmActivityEventListener;

View File

@ -1,4 +1,4 @@
package cn.axzo.workflow.core.service.engine; package cn.axzo.workflow.core.engine.listener;
import cn.axzo.workflow.common.constant.BpmConstants; import cn.axzo.workflow.common.constant.BpmConstants;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;

View File

@ -1,4 +1,4 @@
package cn.axzo.workflow.core.service.engine; package cn.axzo.workflow.core.engine.listener;
import cn.axzo.framework.jackson.utility.JSON; import cn.axzo.framework.jackson.utility.JSON;
import cn.axzo.workflow.common.enums.BpmProcessInstanceResultEnum; import cn.axzo.workflow.common.enums.BpmProcessInstanceResultEnum;

View File

@ -1,4 +1,4 @@
package cn.axzo.workflow.core.service.engine; package cn.axzo.workflow.core.engine.listener;
import cn.axzo.framework.jackson.utility.JSON; import cn.axzo.framework.jackson.utility.JSON;
import cn.axzo.workflow.core.deletage.BpmTaskDelegate; import cn.axzo.workflow.core.deletage.BpmTaskDelegate;

View File

@ -1,11 +1,16 @@
package cn.axzo.workflow.core.service; package cn.axzo.workflow.core.service;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAssigneeDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAssigneeDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAttachmentDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskCommentDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskCommentDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskPageSearchDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskPageSearchDTO;
import cn.axzo.workflow.common.model.response.BpmPageResult; import cn.axzo.workflow.common.model.response.BpmPageResult;
import cn.axzo.workflow.common.model.response.bpmn.task.*; import cn.axzo.workflow.common.model.response.bpmn.task.BpmnHistoricTaskInstanceGroupVO;
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnHistoricTaskInstanceVO;
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskDonePageItemVO;
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskInstanceVO;
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskTodoPageItemVO;
import org.flowable.form.api.FormInfo; import org.flowable.form.api.FormInfo;
import java.util.List; import java.util.List;
@ -73,5 +78,7 @@ public interface BpmnTaskService {
void commentTask(BpmnTaskCommentDTO dto); void commentTask(BpmnTaskCommentDTO dto);
void attachmentTask(BpmnTaskAttachmentDTO dto);
} }

View File

@ -2,6 +2,7 @@ package cn.axzo.workflow.core.service.impl;
import cn.axzo.workflow.common.enums.BpmProcessInstanceResultEnum; import cn.axzo.workflow.common.enums.BpmProcessInstanceResultEnum;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAssigneeDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAssigneeDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAttachmentDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskCommentDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskCommentDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
@ -565,6 +566,13 @@ public class BpmnTaskServiceImpl implements BpmnTaskService {
taskService.addComment(dto.getTaskId(), dto.getProcessInstanceId(), dto.getComment()); taskService.addComment(dto.getTaskId(), dto.getProcessInstanceId(), dto.getComment());
} }
@Override
public void attachmentTask(BpmnTaskAttachmentDTO dto) {
taskService.createAttachment(dto.getType(), dto.getTaskId(), null, dto.getName(), dto.getDescription(),
dto.getUrl());
// taskService.saveAttachment();
}
private Activity getActivity(TaskEntity task) { private Activity getActivity(TaskEntity task) {
BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId()); BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId());
FlowElement flowElement = bpmnModel.getFlowElement(task.getTaskDefinitionKey()); FlowElement flowElement = bpmnModel.getFlowElement(task.getTaskDefinitionKey());

View File

@ -2,6 +2,7 @@ package cn.axzo.workflow.server.controller.web.bpmn;
import cn.axzo.workflow.client.feign.bpmn.ProcessTaskApi; import cn.axzo.workflow.client.feign.bpmn.ProcessTaskApi;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAssigneeDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAssigneeDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAttachmentDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskPageSearchDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskPageSearchDTO;
import cn.axzo.workflow.common.model.response.BpmPageResult; import cn.axzo.workflow.common.model.response.BpmPageResult;
@ -18,6 +19,7 @@ import lombok.extern.slf4j.Slf4j;
import org.flowable.form.api.FormInfo; import org.flowable.form.api.FormInfo;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -139,4 +141,10 @@ public class BpmnTaskController implements ProcessTaskApi {
return success(bpmnTaskService.getTaskFormModel(taskId, tenantId)); return success(bpmnTaskService.getTaskFormModel(taskId, tenantId));
} }
@PostMapping("/attachment/add")
public CommonResponse<Void> addAttachment(@Validated @RequestBody BpmnTaskAttachmentDTO dto) {
bpmnTaskService.attachmentTask(dto);
return success();
}
} }

View File

@ -29,7 +29,7 @@ spring:
nacos: nacos:
config: config:
# server-addr: ${NACOS_HOST:nacos.mybiwin.top}:${NACOS_PORT:9090} # server-addr: ${NACOS_HOST:nacos.mybiwin.top}:${NACOS_PORT:9090}
server-addr: ${NACOS_HOST:dev-nacos.axzo.cn}:${NACOS_PORT:80} server-addr: ${NACOS_HOST:https://dev-nacos.axzo.cn}:${NACOS_PORT:443}
file-extension: yaml file-extension: yaml
# namespace: ${NACOS_NAMESPACE_ID:1b5d2a22-b340-4503-8464-7d7fc2059d39} # namespace: ${NACOS_NAMESPACE_ID:1b5d2a22-b340-4503-8464-7d7fc2059d39}
namespace: ${NACOS_NAMESPACE_ID:f82179f1-81a9-41a1-a489-4f9ab5660a6e} namespace: ${NACOS_NAMESPACE_ID:f82179f1-81a9-41a1-a489-4f9ab5660a6e}
@ -43,7 +43,7 @@ spring:
cloud: cloud:
nacos: nacos:
config: config:
server-addr: ${NACOS_HOST:dev-nacos.axzo.cn}:${NACOS_PORT:80} server-addr: ${NACOS_HOST:https://dev-nacos.axzo.cn}:${NACOS_PORT:443}
file-extension: yaml file-extension: yaml
namespace: ${NACOS_NAMESPACE_ID:eb401d2d-8f5e-4902-8fd0-148e941ba044} namespace: ${NACOS_NAMESPACE_ID:eb401d2d-8f5e-4902-8fd0-148e941ba044}