ruoyi-nbcio自定义业务表单流程的集成方法与步骤(一)

经过几天的摸索,终于成功的将自定义表单挂载上工作流了,下面将简单梳理下我的集成步骤,仅供后来的同学们参考:

一.新建数据库自定义业务表

DROP TABLE IF EXISTS `t_leave_apply`;
CREATE TABLE `t_leave_apply`  (
  `apply_id` bigint UNSIGNED NOT NULL COMMENT '申请单号',
  `apply_user` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '申请人',
  `dep_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门',
  `role_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '职位',
  `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户',
  `apply_type` tinyint NOT NULL COMMENT '类别;1.事假、2.调休、3.出差、4.工伤、5.其他',
  `start_time` datetime NOT NULL COMMENT '请假开始时间',
  `end_time` datetime NOT NULL COMMENT '请假结束时间',
  `days` int NOT NULL COMMENT '请假天数',
  `files` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件',
  `recipient` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '抄送人(可选多人)',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `audit_node` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '当前审核节点',
  `audit_status` int NOT NULL DEFAULT 0 COMMENT '审核状态',
  `del_flag` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,2:已删除)',
  `process_instance_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程实例编号',
  PRIMARY KEY (`apply_id`) USING BTREE,
  INDEX `idx_status`(`audit_status` ASC) USING BTREE,
  INDEX `idx_apply_user`(`apply_user` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

2.系统工具》生成代码 》导入

3.生成代码

4.将对应代码copy到对应模块

5.修改后端代码

1.修改service接口

并且重写getBusinessDataById,这里面要有具体发的实现,如下所示

@Override
public Object getBusinessDataById(String dataId) {
    return this.getById(dataId);
}

2.修改xxxVO.java

3.增加查询方法 myPage(方法,名自定义)

3.1XXXMapper.xml

 <select id="myPage" resultType="com.nbcio.office.domain.vo.LeaveApplyVo">
        select t.*,b.process_definition_key,
               b.process_definition_id,
               b.process_instance_id,
               b.title,
               b.data_id,
               b.service_impl_name,
               b.proposer,
               b.act_status,
               b.todo_users,
               b.done_users,
               b.priority,
               b.task_id,
               b.task_name_id,
               b.task_name,
               b.deploy_id
        from t_leave_apply t left join wf_my_business b on b.data_id = t.apply_id
            ${ew.customSqlSegment}
        and t.create_by = ${createBy}
    </select>

3.2XXXMapper.java增加myPage方法

package com.nbcio.office.mapper;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nbcio.common.mybatis.core.mapper.BaseMapperPlus;
import com.nbcio.office.domain.LeaveApply;
import com.nbcio.office.domain.vo.LeaveApplyVo;
import org.apache.ibatis.annotations.Param;

/**
 * 请假申请Mapper接口
 *
 * @author edy
 * @date 2024-05-15
 */
public interface LeaveApplyMapper extends BaseMapperPlus<LeaveApply, LeaveApplyVo> {

    Page<LeaveApplyVo> myPage(Page<LeaveApplyVo> page, @Param(Constants.WRAPPER) QueryWrapper<LeaveApplyVo> queryWrapper,@Param("createBy") Long createBy);
}

3.3 Service接口层和实现层都加上myPage方法

1.修改controller层,将list方法改成下面这个,目的是增加流程相关的参数

    /**
     * 查询请假申请列表
     */
    @SaCheckPermission("office:leaveApply:list")
    @GetMapping("/list")
    public TableDataInfo<LeaveApplyVo> list(LeaveApplyVo vo, PageQuery pageQuery,HttpServletRequest req) {
        Map<String, String[]> ParameterMap = new HashMap<String, String[]>(req.getParameterMap());
        String[] column = new String[]{""};
        if(ParameterMap!=null&&  ParameterMap.containsKey("column")) {
            column[0] = ParameterMap.get("column")[0];
            column[0] = "t."+ column[0];
            ParameterMap.replace("column", column);
            log.info("修改的排序规则>>列:" + ParameterMap.get("column")[0]);
        }
        QueryWrapper<LeaveApplyVo> queryWrapper = QueryGenerator.initQueryWrapper(vo, ParameterMap);
        Page<LeaveApplyVo> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize());
        Page<LeaveApplyVo> result = tLeaveApplyService.myPage(page, queryWrapper);
        return TableDataInfo.build(result);
    }

至此,后端代码整合完毕,前端部分请看下一章节

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值