|
@@ -1,13 +1,20 @@
|
|
|
package cn.iocoder.yudao.adminserver.modules.bpm.convert.task;
|
|
|
|
|
|
import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstancePageItemRespVO;
|
|
|
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceRespVO;
|
|
|
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.BpmTaskRespVO;
|
|
|
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO;
|
|
|
import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
|
|
|
+import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
|
|
|
+import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
+import org.activiti.engine.history.HistoricProcessInstance;
|
|
|
import org.activiti.engine.repository.ProcessDefinition;
|
|
|
import org.activiti.engine.runtime.ProcessInstance;
|
|
|
import org.activiti.engine.task.Task;
|
|
|
import org.mapstruct.Mapper;
|
|
|
import org.mapstruct.Mapping;
|
|
|
+import org.mapstruct.MappingTarget;
|
|
|
import org.mapstruct.Mappings;
|
|
|
import org.mapstruct.factory.Mappers;
|
|
|
|
|
@@ -26,15 +33,20 @@ public interface BpmProcessInstanceConvert {
|
|
|
|
|
|
BpmProcessInstanceConvert INSTANCE = Mappers.getMapper(BpmProcessInstanceConvert.class);
|
|
|
|
|
|
+ default BpmProcessInstanceExtDO convert3(ProcessInstance instance, ProcessDefinition definition) {
|
|
|
+ BpmProcessInstanceExtDO ext = new BpmProcessInstanceExtDO();
|
|
|
+ copyTo(instance, ext);
|
|
|
+ copyTo(definition, ext);
|
|
|
+ return ext;
|
|
|
+ }
|
|
|
+
|
|
|
@Mappings({
|
|
|
- @Mapping(source = "instance.startUserId", target = "startUserId"),
|
|
|
- @Mapping(source = "instance.id", target = "processInstanceId"),
|
|
|
- @Mapping(source = "instance.startTime", target = "createTime"),
|
|
|
- @Mapping(source = "definition.id", target = "processDefinitionId"),
|
|
|
- @Mapping(source = "definition.name", target = "name"),
|
|
|
- @Mapping(source = "definition.category", target = "category")
|
|
|
+ @Mapping(source = "from.id", target = "id", ignore = true),
|
|
|
+ @Mapping(source = "from.startTime", target = "createTime"),
|
|
|
})
|
|
|
- BpmProcessInstanceExtDO convert(ProcessInstance instance, ProcessDefinition definition);
|
|
|
+ void copyTo(ProcessInstance from, @MappingTarget BpmProcessInstanceExtDO to);
|
|
|
+ @Mapping(source = "from.id", target = "id", ignore = true)
|
|
|
+ void copyTo(ProcessDefinition from, @MappingTarget BpmProcessInstanceExtDO to);
|
|
|
|
|
|
default PageResult<BpmProcessInstancePageItemRespVO> convertPage(PageResult<BpmProcessInstanceExtDO> page,
|
|
|
Map<String, List<Task>> taskMap) {
|
|
@@ -58,4 +70,31 @@ public interface BpmProcessInstanceConvert {
|
|
|
})
|
|
|
BpmProcessInstanceExtDO convert(org.activiti.api.process.model.ProcessInstance bean);
|
|
|
|
|
|
+ default BpmProcessInstanceRespVO convert2(HistoricProcessInstance processInstance, BpmProcessInstanceExtDO processInstanceExt,
|
|
|
+ ProcessDefinition processDefinition, BpmProcessDefinitionExtDO processDefinitionExt,
|
|
|
+ String bpmnXml, SysUserDO startUser, SysDeptDO dept) {
|
|
|
+ BpmProcessInstanceRespVO respVO = convert2(processInstance);
|
|
|
+ copyTo(processInstanceExt, respVO);
|
|
|
+ // definition
|
|
|
+ respVO.setProcessDefinition(convert2(processDefinition));
|
|
|
+ copyTo(processDefinitionExt, respVO.getProcessDefinition());
|
|
|
+ respVO.getProcessDefinition().setBpmnXml(bpmnXml);
|
|
|
+ // user
|
|
|
+ if (startUser != null) {
|
|
|
+ respVO.setStartUser(convert2(startUser));
|
|
|
+ if (dept != null) {
|
|
|
+ respVO.getStartUser().setDeptName(dept.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return respVO;
|
|
|
+ }
|
|
|
+
|
|
|
+ BpmProcessInstanceRespVO convert2(HistoricProcessInstance bean);
|
|
|
+ @Mapping(source = "from.id", target = "to.id", ignore = true)
|
|
|
+ void copyTo(BpmProcessInstanceExtDO from, @MappingTarget BpmProcessInstanceRespVO to);
|
|
|
+ BpmProcessInstanceRespVO.ProcessDefinition convert2(ProcessDefinition bean);
|
|
|
+ @Mapping(source = "from.id", target = "to.id", ignore = true)
|
|
|
+ void copyTo(BpmProcessDefinitionExtDO from, @MappingTarget BpmProcessInstanceRespVO.ProcessDefinition to);
|
|
|
+ BpmProcessInstanceRespVO.User convert2(SysUserDO bean);
|
|
|
+
|
|
|
}
|