IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 在sql层处理参数添加进来的列 -> 正文阅读

[大数据]在sql层处理参数添加进来的列

问题描述

传进来的List<Object>数据在sql层面处理并将Object的某个属性加入返回列中(merchants)

    List<DetailedReportRespVO> selectDetailedReport(@Param("endDate") String endDate,
                                                    @Param("merchants") List<InformationReportDTO> merchants);
public class InformationReportDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "企业编号")
    private String merchantNo;

    @ApiModelProperty(value = "企业名称")
    private String name;
}

?查询的表中没有企业名称列,此数据是之前传入,并且返回是个list且比较大,所以在sql层处理比较好

public class DetailedReportRespVO implements Serializable {
    private static final long serialVersionUID = 1L;

    @Excel(name = "企业编号")
    @ApiModelProperty(value = "企业编号")
    private String merchantNo;

    @Excel(name = "企业名称")
    @ApiModelProperty(value = "企业名称")
    private String name;

    @Excel(name = "员工姓名")
    @ApiModelProperty(value = "员工姓名")
    private String userName;

。。。。。。。。。。。。。。。。。。。。。。。。。。。

解决方案:

mybatis将对象参数转临时表join

 <select id="selectDetailedReport"
            resultType="com.erp.payroll.common.model.payroll.res.DetailedReportRespVO">
        SELECT DISTINCT
        tem.name as name ,
        t.merchant_no AS merchantNo,
        t.NAME AS userName,
        t.mobile AS mobile,
        t.cert_no AS certNo,
        t.bank_name AS bankName,
        t.bank_card AS bankCard
        FROM
        `t_payroll_detail` t
        left JOIN t_payroll tp ON tp.merchant_no = t.merchant_no
        left JOIN
        <foreach collection="merchants" item="merchant" index="index" separator="union" open="(" close=")">
            select
            #{merchant.merchantNo} as merchantNo,
            #{merchant.name} as name
        </foreach>
        as tem
        on t.merchant_no = tem.merchantNo
        WHERE
        tp.merchant_no in
        <foreach collection="merchants" item="merchant" separator="," open="(" close=")">
            #{merchant.merchantNo, jdbcType = VARCHAR}
        </foreach>
        AND concat( tp.pay_year, '-', LPAD( tp.pay_month, 2, 0 ) ) = #{endDate}
        AND t.bank_status = 1
        AND t.`status` = 0;
    </select>
<foreach collection="merchants" item="merchant" index="index" separator="union" open="(" close=")">
            select
            #{merchant.merchantNo} as merchantNo,
            #{merchant.name} as name
        </foreach>

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:28:13  更:2022-04-09 18:29:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:51:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码