diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfDeployController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfDeployController.java index 1a687579..f2e01c24 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfDeployController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfDeployController.java @@ -39,7 +39,7 @@ public class WfDeployController extends BaseController { @ApiOperation(value = "查询流程部署关联表单信息") @GetMapping("/form/{deployId}") public R start(@ApiParam(value = "流程部署id") @PathVariable(value = "deployId") String deployId) { - WfFormVo formVo = deployFormService.selectSysDeployFormByDeployId(deployId); + WfFormVo formVo = deployFormService.selectDeployFormByDeployId(deployId); if (Objects.isNull(formVo)) { return R.fail("请先配置流程表单"); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/mapper/WfFormMapper.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/mapper/WfFormMapper.java index ac53c420..32c94666 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/mapper/WfFormMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/mapper/WfFormMapper.java @@ -1,8 +1,13 @@ package com.ruoyi.workflow.mapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; import com.ruoyi.common.core.mapper.BaseMapperPlus; import com.ruoyi.workflow.domain.WfForm; import com.ruoyi.workflow.domain.vo.WfFormVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 流程表单Mapper接口 @@ -12,5 +17,5 @@ import com.ruoyi.workflow.domain.vo.WfFormVo; */ public interface WfFormMapper extends BaseMapperPlus { - WfFormVo selectFormByDeployId(String deployId); + List selectFormVoList(@Param(Constants.WRAPPER) Wrapper queryWrapper); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfDeployFormService.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfDeployFormService.java index 8b5aeacc..c8602c1a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfDeployFormService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfDeployFormService.java @@ -25,5 +25,5 @@ public interface IWfDeployFormService { * @param deployId * @return */ - WfFormVo selectSysDeployFormByDeployId(String deployId); + WfFormVo selectDeployFormByDeployId(String deployId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfDefinitionServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfDefinitionServiceImpl.java index dfccc5d7..ba18cf9b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfDefinitionServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfDefinitionServiceImpl.java @@ -11,8 +11,8 @@ import com.ruoyi.flowable.common.enums.FlowComment; import com.ruoyi.flowable.factory.FlowServiceFactory; import com.ruoyi.workflow.domain.vo.WfDefinitionVo; import com.ruoyi.workflow.domain.vo.WfFormVo; -import com.ruoyi.workflow.mapper.WfFormMapper; import com.ruoyi.workflow.service.IWfDefinitionService; +import com.ruoyi.workflow.service.IWfDeployFormService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; @@ -44,7 +44,7 @@ import java.util.stream.Collectors; @Slf4j public class WfDefinitionServiceImpl extends FlowServiceFactory implements IWfDefinitionService { - private final WfFormMapper formMapper; + private final IWfDeployFormService deployFormService; private static final String BPMN_FILE_SUFFIX = ".bpmn"; @@ -89,7 +89,7 @@ public class WfDefinitionServiceImpl extends FlowServiceFactory implements IWfDe vo.setCategory(processDefinition.getCategory()); vo.setDeploymentId(processDefinition.getDeploymentId()); vo.setSuspended(processDefinition.isSuspended()); - WfFormVo formVo = formMapper.selectFormByDeployId(deploymentId); + WfFormVo formVo = deployFormService.selectDeployFormByDeployId(deploymentId); if (Objects.nonNull(formVo)) { vo.setFormId(formVo.getFormId()); vo.setFormName(formVo.getFormName()); diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfDeployFormServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfDeployFormServiceImpl.java index ca3a2cf6..739e1d4d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfDeployFormServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfDeployFormServiceImpl.java @@ -1,7 +1,12 @@ package com.ruoyi.workflow.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.workflow.domain.WfDeployForm; +import com.ruoyi.workflow.domain.WfForm; import com.ruoyi.workflow.domain.vo.WfFormVo; import com.ruoyi.workflow.mapper.WfDeployFormMapper; import com.ruoyi.workflow.mapper.WfFormMapper; @@ -10,6 +15,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; + /** * 流程实例关联表单Service业务层处理 * @@ -46,7 +53,18 @@ public class WfDeployFormServiceImpl implements IWfDeployFormService { * @return */ @Override - public WfFormVo selectSysDeployFormByDeployId(String deployId) { - return formMapper.selectFormByDeployId(deployId); + public WfFormVo selectDeployFormByDeployId(String deployId) { + QueryWrapper wrapper = Wrappers.query(); + wrapper.eq("t2.deploy_id", deployId); + List list = formMapper.selectFormVoList(wrapper); + if (ObjectUtil.isNotEmpty(list)) { + if (list.size() != 1) { + throw new ServiceException("表单信息查询错误"); + } else { + return list.get(0); + } + } else { + return null; + } } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java index bce733c9..27601909 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java @@ -738,7 +738,7 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ } // 第一次申请获取初始化表单 if (StringUtils.isNotBlank(deployId)) { - WfFormVo formVo = deployFormService.selectSysDeployFormByDeployId(deployId); + WfFormVo formVo = deployFormService.selectDeployFormByDeployId(deployId); if (Objects.isNull(formVo)) { throw new ServiceException("请先配置流程表单"); } diff --git a/ruoyi-system/src/main/resources/mapper/workflow/WfFormMapper.xml b/ruoyi-system/src/main/resources/mapper/workflow/WfFormMapper.xml index 6b687045..84ec6ca1 100644 --- a/ruoyi-system/src/main/resources/mapper/workflow/WfFormMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/workflow/WfFormMapper.xml @@ -15,13 +15,13 @@ - SELECT t1.form_id AS formId, t1.form_name AS formName, t1.content AS content FROM wf_form t1 LEFT JOIN wf_deploy_form t2 ON t1.form_id = t2.form_id - WHERE t2.deploy_id = #{deployId} limit 1 + ${ew.getCustomSqlSegment}