|
@@ -1,6 +1,7 @@
|
|
|
package cn.iocoder.yudao.module.bpm.controller.admin.definition;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
|
@@ -8,21 +9,26 @@ import cn.iocoder.yudao.framework.common.util.io.IoUtils;
|
|
|
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.*;
|
|
|
+import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleCreateReqVO;
|
|
|
import cn.iocoder.yudao.module.bpm.convert.definition.BpmModelConvert;
|
|
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmCategoryDO;
|
|
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
|
|
|
+import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO;
|
|
|
import cn.iocoder.yudao.module.bpm.service.definition.BpmCategoryService;
|
|
|
import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService;
|
|
|
import cn.iocoder.yudao.module.bpm.service.definition.BpmModelService;
|
|
|
import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService;
|
|
|
import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmModelMetaInfoRespDTO;
|
|
|
+import cn.iocoder.yudao.module.bpm.service.task.BpmTaskAssignRuleService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
+import org.flowable.engine.RepositoryService;
|
|
|
import org.flowable.engine.repository.Deployment;
|
|
|
import org.flowable.engine.repository.Model;
|
|
|
import org.flowable.engine.repository.ProcessDefinition;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
@@ -53,6 +59,12 @@ public class BpmModelController {
|
|
|
@Resource
|
|
|
private BpmProcessDefinitionService processDefinitionService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private RepositoryService repositoryService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private BpmTaskAssignRuleService bpmTaskAssignRuleService;
|
|
|
+
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得模型分页")
|
|
|
public CommonResult<PageResult<BpmModelRespVO>> getModelPage(BpmModelPageReqVO pageVO) {
|
|
@@ -94,6 +106,44 @@ public class BpmModelController {
|
|
|
return success(BpmModelConvert.INSTANCE.buildModel(model, bpmnBytes));
|
|
|
}
|
|
|
|
|
|
+ @GetMapping("/copy")
|
|
|
+ @Operation(summary = "复制模型")
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public CommonResult<String> copyModel() {
|
|
|
+ List<Model> modelList = repositoryService.createModelQuery()
|
|
|
+ .modelKey("oa_stamp")
|
|
|
+ .modelTenantId("1")
|
|
|
+ .list();
|
|
|
+ for (Model model : modelList) {
|
|
|
+ Model newModel = repositoryService.newModel();
|
|
|
+ newModel.setName(model.getName());
|
|
|
+ newModel.setKey(model.getKey());
|
|
|
+ newModel.setVersion(1);
|
|
|
+ newModel.setMetaInfo(model.getMetaInfo());
|
|
|
+ newModel.setTenantId("122");
|
|
|
+
|
|
|
+ CommonResult<BpmModelRespVO> model1 = getModel(model.getId());
|
|
|
+ BpmModelRespVO data = model1.getData();
|
|
|
+ BpmModelUpdateReqVO updateReqVO = BeanUtils.toBean(data, BpmModelUpdateReqVO.class);
|
|
|
+
|
|
|
+ BpmModelConvert.INSTANCE.copyToUpdateModel(newModel, updateReqVO);
|
|
|
+
|
|
|
+ repositoryService.saveModel(newModel);
|
|
|
+
|
|
|
+ repositoryService.addModelEditorSource(newModel.getId(), StrUtil.utf8Bytes(updateReqVO.getBpmnXml()));
|
|
|
+
|
|
|
+ List<BpmTaskAssignRuleDO> taskAssignRuleListByModelId = bpmTaskAssignRuleService.getTaskAssignRuleListByModelId2(model.getId());
|
|
|
+ for (BpmTaskAssignRuleDO bpmTaskAssignRuleDO : taskAssignRuleListByModelId) {
|
|
|
+ bpmTaskAssignRuleDO.setModelId(newModel.getId());
|
|
|
+ BpmTaskAssignRuleCreateReqVO bpmTaskAssignRuleCreateReqVO = BeanUtils.toBean(bpmTaskAssignRuleDO, BpmTaskAssignRuleCreateReqVO.class);
|
|
|
+ bpmTaskAssignRuleService.createTaskAssignRule(bpmTaskAssignRuleCreateReqVO);
|
|
|
+ }
|
|
|
+
|
|
|
+ modelService.deployModel(newModel.getId());
|
|
|
+ }
|
|
|
+ return CommonResult.success("成功");
|
|
|
+ }
|
|
|
+
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "新建模型")
|
|
|
@PreAuthorize("@ss.hasPermission('bpm:model:create')")
|