多表联查分页查询sql

    <select id="queryDriverTask" resultType="com.nuzar.fcms.accept.model.PreBookTruckTask">
        SELECT pb.PBT_ID                                   preBookId,
        pb.PBT_TYPE                                 type,
        pb.PBT_PLANNO                               planno,
        pb.PBT_CONFIG_ID                            configId,
        pb.PBT_DATE                                 bookDate,
        pb.PBT_PERIOD_START                         periodStart,
        pb.PBT_PERIOD_END                           periodEnd,
        pb.PBT_CNTRO_ID                             cntroId,
        pb.PBT_CNTRO_NO                             cntroNo,
        pb.PBT_CNTRO_NUM                            cntroNum,
        pb.PBT_CARS_NUM                             carsNum,
        pb.PBT_STATE                                state,
        pb.PBT_PAY_FLAG                             payFlag,
        pb.PBT_FLEET_CODE                           fleetCode,
        pg.PBG_BILL_NO                              billNo,
        pg.PBG_GNAME                                gname,

        pb.PTD_ID                                   distId,
        pb.PTD_TRUCK_NO                             truckNo,
        pb.PTD_DRIVER_IDENTITY_NO                   driverIdentityNo,
        pb.PTD_DRIVER_NAME                          driverName,
        pb.PTD_DRIVER_ID                            driverId,
        pb.PTD_CONTACT                              contact,
        pb.PTD_STATE                                workStatus,
        pb.PTD_IO_FLAG                              ioFlag,
        pb.PLC_SEALNO                               sealno,
        pb.PLC_CWEIGHT                              cweight,
        pb.PTD_YARD_LOCATION                        yardLocation,
        pb.PTD_FINISH_DATE                          finishDate,

        pl.PLN_TOS_PLANNO                           tosPlanno,
        pl.PLN_OPMODE                               opMode,
        pl.PLN_RETURNTYPE                           returnType,
        pl.PLN_PLAN_TYPE                            planType,
        pl.PLN_TRADE_FLAG                           tradeFlag,
        pl.PLN_OPPRC                                opprc,
        pl.PLN_CST_TRNSCOMCD                        cstTrnscomCd,
        pl.PLN_CST_CSTMCD                           cstmcd,
        pl.PLN_OPSTTM                               opsttm,
        pl.PLN_OPEDTM                               opedtm,
        pl.VOY_VOYAGE                               voyage,
        pl.VSL_CNNAME                               vslCnName,
        pl.VSL_ENNAME                               vslEnName,
        pl.VSL_LOCALNAME                            vslLocalName,
        pl.TERM_CODE                                termCode,
        pl.PLN_WORKING_AREA                         workingArea,
        nvl(pl.VUR_DTP_DNGGCD, pb.PLC_DTP_DNGGCD)   dtpDnggcd,
        nvl(pl.VUR_CTYPECD, pb.PLC_CTYPECD)         ctypecd,
        nvl(pl.VUR_CHEIGHTCD, pb.PLC_CHEIGHTCD)     cheightcd,
        nvl(pl.VUR_CSZ_CSIZECD, pb.PLC_CSZ_CSIZECD) csizecd,
        nvl(pl.VUR_ISOCD, pb.PLC_ISOCD)             isocd,
        nvl(pl.VUR_CST_COPERCD, pb.PLC_CST_COPERCD) cstCopercd,
        nvl(pb.PLC_EFFG, 'E')                       effg
        FROM (SELECT wppt.PBT_ID,
        wppt.PBT_TYPE,
        wppt.PBT_PLANNO,
        wppt.PBT_CONFIG_ID,
        wppt.PBT_DATE,
        wppt.PBT_PERIOD_START,
        wppt.PBT_PERIOD_END,
        wppt.PBT_CNTRO_ID,
        wppt.PBT_CNTRO_NO,
        wppt.PBT_CNTRO_NUM,
        wppt.PBT_CARS_NUM,
        wppt.PBT_STATE,
        wppt.PBT_PAY_FLAG,
        wppt.PBT_FLEET_CODE,
        wppt.CREATE_USER,
        wpptd.PTD_ID,
        wpptd.PTD_TRUCK_NO,
        wpptd.PTD_DRIVER_IDENTITY_NO,
        wpptd.PTD_DRIVER_NAME,
        wpptd.PTD_DRIVER_ID,
        wpptd.PTD_CONTACT,
        wpptd.PTD_STATE,
        wpptd.PTD_IO_FLAG,
        wpptd.PTD_YARD_LOCATION,
        wpptd.PTD_FINISH_DATE,
        wppc.PLC_CTYPECD,
        wppc.PLC_CHEIGHTCD,
        wppc.PLC_CSZ_CSIZECD,
        wppc.PLC_ISOCD,
        wppc.PLC_CST_COPERCD,
        wppc.PLC_DTP_DNGGCD,
        wppc.PLC_EFFG,
        wppc.PLC_SEALNO,
        wppc.PLC_CWEIGHT

        FROM WEB_PAS_PREBOOK_TIME wppt
        LEFT JOIN WEB_PAS_PLAN_CONTAINERS wppc ON
        wppt.PBT_CNTRO_ID = wppc.PLC_ID, WEB_PAS_PREBOOK_TRUCK_DIST wpptd WHERE wppt.PBT_ID=wpptd.PTD_PREBOOK_ID) pb LEFT JOIN
        (SELECT wppg.PBG_BOOK_TIME_ID, LISTAGG(wppg.PBG_BILL_NO, ',') WITHIN GROUP (ORDER BY wppg.PBG_ID) PBG_BILL_NO,
        LISTAGG(wppg.PBG_GNAME, ',') WITHIN GROUP (ORDER BY wppg.PBG_ID) PBG_GNAME
        FROM WEB_PAS_PREBOOK_GOODS wppg
        GROUP BY wppg.PBG_BOOK_TIME_ID) pg ON pb.PBT_ID  = pg.PBG_BOOK_TIME_ID,
        (SELECT wpp.PLN_PLANNO,
        wpp.PLN_TOS_PLANNO,
        wpp.PLN_OPMODE,
        wpp.PLN_RETURNTYPE,
        wpp.PLN_PLAN_TYPE,
        wpp.PLN_TRADE_FLAG,
        wpp.PLN_IE_FLAG,
        wpp.PLN_OPPRC,
        wpp.PLN_CST_CSTMCD,
        wpp.PLN_CST_TRNSCOMCD,
        wpp.PLN_PAYER,
        wpp.PLN_OPSTTM,
        wpp.PLN_OPEDTM,
        wpp.TERM_CODE,
        wpp.PLN_WORKING_AREA,



        nvl(voy.VOY_VOYAGE, wpvur.VOY_VOYAGE)       VOY_VOYAGE,
        nvl(ves.VSL_CNNAME, wpvur.VSL_CNNAME)       VSL_CNNAME,
        nvl(ves.VSL_ENNAME, wpvur.VSL_ENNAME)       VSL_ENNAME,
        nvl(ves.VSL_LOCALNAME, wpvur.VSL_LOCALNAME) VSL_LOCALNAME,
        wpvur.VUR_CST_COPERCD,
        wpvur.VUR_DTP_DNGGCD,
        wpvur.VUR_CTYPECD,
        wpvur.VUR_CHEIGHTCD,
        wpvur.VUR_CSZ_CSIZECD,
        wpvur.VUR_ISOCD
        FROM WEB_PAS_PLANS wpp
        LEFT JOIN (SELECT VOY_ID,
        VOY_VOYAGE,
        VOY_VSL_ID
        FROM STD_VOYAGES) voy ON
        wpp.PLN_VOY_ID = voy.VOY_ID
        LEFT JOIN STD_VESSELS ves ON
        voy.VOY_VSL_ID = ves.VSL_ID
        LEFT JOIN (SELECT req.*,
        nvl(ives.VSL_CD, eves.VSL_CD)               AS VSL_CD,
        nvl(ives.VSL_CNNAME, eves.VSL_CNNAME)       AS VSL_CNNAME,
        nvl(ives.VSL_ENNAME, eves.VSL_ENNAME)       AS VSL_ENNAME,
        nvl(ives.VSL_LOCALNAME, eves.VSL_LOCALNAME) AS VSL_LOCALNAME,
        nvl(ivoy.VOY_VOYAGE, evoy.VOY_VOYAGE)       AS VOY_VOYAGE
        FROM WEB_PAS_VAN_USE_REQUIREMENTS req
        LEFT JOIN (SELECT VOY_ID,
        VOY_VOYAGE,
        VOY_VSL_ID
        FROM STD_VOYAGES) ivoy ON
        req.VUR_IVOY_ID = ivoy.VOY_ID
        LEFT JOIN STD_VESSELS ives ON
        ivoy.VOY_VSL_ID = ives.VSL_ID
        LEFT JOIN (SELECT VOY_ID,
        VOY_VOYAGE,
        VOY_VSL_ID
        FROM STD_VOYAGES) evoy ON
        req.VUR_EVOY_ID = evoy.VOY_ID
        LEFT JOIN STD_VESSELS eves ON
        evoy.VOY_VSL_ID = eves.VSL_ID) wpvur ON
        wpp.PLN_PLANNO = wpvur.VUR_PLN_PLANNO) pl
        WHERE pb.PBT_PLANNO = pl.PLN_PLANNO
        <if test="ew!=null and ew.sqlSegment != null and ew.sqlSegment != ''">
            AND  ${ew.sqlSegment}
        </if>
        ORDER BY pb.PBT_DATE,pb.PBT_PERIOD_START desc
    </select>
    @InterceptorIgnore(tenantLine = "true")
    IPage<PreBookTruckTask> queryDriverTask(QueryPage queryPage, @Param("ew") Wrapper<PreBookTruckTask> queryWrapper);
    @Override
    public IPage<PreBookTruckTask> queryDriverTask(QueryPage queryPage, DriverTaskQuery query) {
        QueryWrapper<PreBookTruckTask> wPrebook = Wrappers.query();

        //车辆任务状态查询
        wPrebook.in(null!=query.getTaskStatus()&& 1==query.getTaskStatus()
                , "pb.PTD_STATE", Arrays.asList(PreDistStatusEnum.PLAN.getCode(),PreDistStatusEnum.WORKING.getCode()));
        wPrebook.eq(null!=query.getTaskStatus()&& 2==query.getTaskStatus()
                , "pb.PTD_STATE", PreDistStatusEnum.FINISH.getCode());
        //司机id
        wPrebook.eq(StringUtils.isNotEmpty(query.getDriverId())
                , "pb.PTD_DRIVER_ID", query.getDriverId());

        //预约时间查询
        wPrebook.ge(StringUtils.isNotEmpty(query.getReserveDateFrom()),"pb.PBT_DATE", query.getReserveDateFrom());
        wPrebook.le(StringUtils.isNotEmpty(query.getReserveDateTo()),"pb.PBT_DATE", query.getReserveDateTo());


        return getBaseMapper().queryDriverTask(queryPage, wPrebook);

    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值