From d32dfb3b51d708f83d9a32226813810d169acb60 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Tue, 25 Jul 2023 17:28:33 +0800 Subject: [PATCH] =?UTF-8?q?fix=20-=20=E8=87=AA=E6=B5=8B=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=96=B0/=E5=88=A0/=E6=94=B9/=E6=9F=A5?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/request/form/FormDefinitionDTO.java | 9 +++-- .../form/definition/FormDefinitionVO.java | 4 +- .../impl/BpmFormDefinitionServiceImpl.java | 22 ++++++++--- .../web/BpmFormDefinitionController.java | 37 +++++++++---------- 4 files changed, 43 insertions(+), 29 deletions(-) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/form/FormDefinitionDTO.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/form/FormDefinitionDTO.java index 9397eea14..11fc1346e 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/form/FormDefinitionDTO.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/form/FormDefinitionDTO.java @@ -15,12 +15,15 @@ import java.util.List; @Data public class FormDefinitionDTO { @ApiModelProperty(value = "表单定义的key", hidden = true) - private transient String key; + private String key; @ApiModelProperty(value = "表单定义的名称", hidden = true) - private transient String name; + private String name; + + @ApiModelProperty(value = "表单定义的版本", hidden = true) + private Integer version; @ApiModelProperty(value = "表单定义的具体字段项", example = "[{'': '''}]") - private List formFields; + private List fields; } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/response/form/definition/FormDefinitionVO.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/response/form/definition/FormDefinitionVO.java index e65ca711e..8d5a7ae84 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/response/form/definition/FormDefinitionVO.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/response/form/definition/FormDefinitionVO.java @@ -17,9 +17,11 @@ public class FormDefinitionVO { private String key; + private String category; + private Integer version; - private String description; + private String tenantId; private List fields; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmFormDefinitionServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmFormDefinitionServiceImpl.java index d04c5e68d..64dd85654 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmFormDefinitionServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmFormDefinitionServiceImpl.java @@ -21,7 +21,6 @@ import org.springframework.util.StringUtils; import javax.annotation.Nullable; import javax.annotation.Resource; -import java.util.Arrays; import java.util.Objects; /** @@ -56,19 +55,25 @@ public class BpmFormDefinitionServiceImpl implements BpmFormDefinitionService { if (StringUtils.hasLength(tenantId) && !Objects.equals(model.getTenantId(), tenantId)) { throw new WorkflowEngineException("模型不存在"); } - FormDefinitionVO formDefinitionVO = null; + FormDefinitionVO vo = null; try { - formDefinitionVO = objectMapper.readValue(repositoryService.getModelEditorSource(model.getId()), + vo = objectMapper.readValue(repositoryService.getModelEditorSource(model.getId()), FormDefinitionVO.class); } catch (Exception e) { e.printStackTrace(); throw new WorkflowEngineException("解析转换异常"); } - return formDefinitionVO; + vo.setKey(model.getKey()); + vo.setName(model.getName()); + vo.setCategory(model.getCategory()); + vo.setVersion(model.getVersion()); + vo.setTenantId(model.getTenantId()); + return vo; } @Override + @Transactional(rollbackFor = Exception.class) public void updateFormDefinition(FormDefinitionUpdateDTO dto) { Model model = repositoryService.getModel(dto.getFormModelId()); if (Objects.isNull(model)) { @@ -77,6 +82,7 @@ public class BpmFormDefinitionServiceImpl implements BpmFormDefinitionService { FormDefinitionDTO formDefinition = dto.getFormDefinition(); formDefinition.setKey(model.getKey()); formDefinition.setName(model.getName()); + formDefinition.setVersion(model.getVersion()); try { repositoryService.addModelEditorSource(model.getId(), @@ -84,18 +90,22 @@ public class BpmFormDefinitionServiceImpl implements BpmFormDefinitionService { } catch (Exception e) { throw new WorkflowEngineException(e.getMessage()); } + repositoryService.saveModel(model); } @Override @Transactional(rollbackFor = Exception.class) public String deployFormModelById(String formModelId, String tenantId) { Model model = repositoryService.getModel(formModelId); - if (Objects.isNull(model) || !Objects.equals(model.getTenantId(), tenantId)) { + if (Objects.isNull(model)) { + throw new WorkflowEngineException("模型不存在"); + } + if (StringUtils.hasLength(tenantId) && !Objects.equals(model.getTenantId(), tenantId)) { throw new WorkflowEngineException("模型不存在"); } FormDeployment deploy = formRepositoryService.createDeployment() .addFormDefinition(model.getKey() + ".form", - Arrays.toString(repositoryService.getModelEditorSource(model.getId()))) + new String(repositoryService.getModelEditorSource(model.getId()))) .name(model.getName()) .category(model.getCategory()) .tenantId(model.getTenantId()) diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/BpmFormDefinitionController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/BpmFormDefinitionController.java index 81c51f264..bf8149bce 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/BpmFormDefinitionController.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/BpmFormDefinitionController.java @@ -1,13 +1,12 @@ package cn.axzo.workflow.server.controller.web; import cn.axzo.workflow.core.service.BpmFormDefinitionService; +import cn.axzo.workflow.core.service.dto.request.form.definition.FormDefinitionUpdateDTO; +import cn.axzo.workflow.core.service.dto.response.form.definition.FormDefinitionVO; import cn.azxo.framework.common.model.CommonResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import javax.validation.constraints.NotBlank; @@ -26,28 +25,28 @@ public class BpmFormDefinitionController { @Autowired private BpmFormDefinitionService bpmFormDefinitionService; + @PutMapping("/update") + public CommonResponse updateFormDefinition(@Valid @RequestBody FormDefinitionUpdateDTO dto) { + bpmFormDefinitionService.updateFormDefinition(dto); + return CommonResponse.success(true); + } + @PostMapping("/deploy") - public CommonResponse deployFormModelById(@Valid @NotBlank(message = "模型 ID 不能为空") @RequestParam String modelId, + public CommonResponse deployFormModelById(@Valid @NotBlank(message = "模型 ID 不能为空") @RequestParam String formModelId, @RequestParam(required = false) String tenantId) { - return CommonResponse.success(bpmFormDefinitionService.deployFormModelById(modelId, tenantId)); + return CommonResponse.success(bpmFormDefinitionService.deployFormModelById(formModelId, tenantId)); } @PostMapping("/deployByKey") - public CommonResponse deployFormModelByKey(@Valid @NotBlank(message = "模型 KEY 不能为空") @RequestParam String modelKey, + public CommonResponse deployFormModelByKey(@Valid @NotBlank(message = "模型 KEY 不能为空") @RequestParam String formModelKey, @RequestParam(required = false) String tenantId) { - return CommonResponse.success(bpmFormDefinitionService.deployFormModelByKey(modelKey, tenantId)); + return CommonResponse.success(bpmFormDefinitionService.deployFormModelByKey(formModelKey, tenantId)); } - // - // @GetMapping("/list") - // public CommonResponse> list(@Valid @RequestBody FormModelSearchDTO dto) { - // return CommonResponse.success(bpmFormDefinitionService.listFormModel(dto)); - // } - // - // @GetMapping("/deployment/get") - // public CommonResponse> get(@RequestParam String deploymentId, - // @RequestParam(required = false) String tenantId) { - // return CommonResponse.success(bpmFormDefinitionService.get(deploymentId, tenantId)); - // } + @GetMapping("/get") + public CommonResponse get(@Valid @NotBlank(message = "模型 ID 不能为空") @RequestParam String formModelId, + @RequestParam String tenantId) { + return CommonResponse.success(bpmFormDefinitionService.get(formModelId, tenantId)); + } }