单表内分组父子聚合显示功能,带子查询

表数据
姓名金额项目名发放日期类别
张三1项目12020/02/02金额
李四2项目12020/02/02金额
合计3项目12020/02/02合计

 按项目名、发放日期分组

SELECT * from 表名 where 
类别 = #{类别,jdbcType=VARCHAR}  
<if test='类别 != null and 类别 != "" and 类别 == "奖金"'>
    <!-- 子页面查询条件一一对应 -->
    <if test='姓名 != null and 姓名 != ""'>
        AND 姓名 = #{姓名,jdbcType=VARCHAR}
    </if>
    <if test='部门 != null and 部门 != ""'>
        AND 部门 = #{部门,jdbcType=VARCHAR}
    </if> 
</if>
and 项目名||发放日期 in 
(SELECT 项目名||发放日期 from 表名 
<!-- 父页面查询条件 -->
WHERE 字段...(不能包含【类别】字段)='');

页面跳转

    @GetMapping("/displayDeductMoneyDetailPage")
    public ModelAndView displayDeductMoneyDetailPage(Model model,String 项目名,String 发放日期) {
        if (StrUtil.isBlank(项目名)||StrUtil.isBlank(type2)) {
            model.addAttribute("类别", "合计");
        }else {
            model.addAttribute("类别", "金额");
        }
        return new ModelAndView("表格分页html");
    }

 分页接口

    @PostMapping("/分页接口")
    public Object 分页接口(Integer pageNo, Integer pageSize, String orderBy, 实体类) {
        PageHelper.startPage(pageNo, pageSize, orderBy);
        List<?> list = service.分页(实体类);
        return new Page<>(list);
    }

页面

            {
                header: '操作',
                name: '显示明细',
                align: "center",
                sortable: false,
                formatter: function (val, obj, row, act) {
                    return '<button onclick="show(\'' + row.项目名+ '\',\'' + row.发放日期+ '\')">显示明细</button>';
                }
            },
        gridComplete:function(){
            if ('${类别}' == '合计') {
                //表格 隐藏列
                $("#dataGrid").dataGrid('hideCol', '姓名');
            } else if ('${类别}' == '金额') {
                //表格 隐藏列
                $("#dataGrid").dataGrid('hideCol', '显示明细');
                $("#dataGrid").dataGrid('hideCol', '操作');
                //功能按钮 隐藏
                $("#xxx").hide();
                //查询条件 隐藏
                $("#xxx").parents('div[class="form-group"]').hide();
            }
        }
    function show(type1, type2) {
        layui.layer.open({
            anim: false,
            isOutAnim: false,
            title: false,
            closeBtn: true,
            shadeClose: false,
            skin: 'demo-class',
            type: 2,
            area: ['97%', '90%'],
            content: '分页接口?项目名=' + 项目名+ '&发放日期=' + 发放日期,
            btn: false
        });
    }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值