HAP——多条件查询

这里写图片描述

前端:

这里form表单内容我就不列出来了

查询的是表格grid中的数据

  //查询
        queryGrid: function (e) {
            $('#grid').data('kendoGrid').dataSource.page(1);
        },

使用系统提供的查询方法,美滋滋

 read: {
                url: BaseUrl + "/hap/om/order/headers/query",
                type: "POST",
                dataType: "json"
            },

后端:
controller 层

这里需要重写select方法

/**
     * 查询头
     *
     * @param dto
     * @param page
     * @param pageSize
     * @param request
     * @return
     */
    @RequestMapping(value = "/hap/om/order/headers/query")
    @ResponseBody
    public ResponseData query(OmOrderHeaders dto, @RequestParam(defaultValue = DEFAULT_PAGE) int page,
                              @RequestParam(defaultValue = DEFAULT_PAGE_SIZE) int pageSize, HttpServletRequest request) {
        IRequest requestContext = createRequestContext(request);
        return new ResponseData(service.selectHeader(requestContext, dto, page, pageSize));
    }

service层接口

    List<OmOrderHeaders> selectHeader(IRequest requestContext, OmOrderHeaders dto, int page, int pageSize);//查询头

service实现:

 /**
     * 查询头
     * @param requestContext
     * @param dto
     * @param page
     * @param pageSize
     * @return
     */
    @Override
    public List<OmOrderHeaders> selectHeader(IRequest requestContext, OmOrderHeaders dto, int page, int pageSize) {
        PageHelper.startPage(page, pageSize);//分页
      List<OmOrderHeaders> omOrderHeaders =   omOrderHeadersMapper.selectHeader(dto);
        return omOrderHeaders;
    }

mapper层(主要实现多条件)
接口:List<OmOrderHeaders> selectHeader(OmOrderHeaders dto);//查询头

实现:

 <select id="selectHeader" resultMap="BaseResultMap">
        SELECT
        hoh.HEADER_ID,
        hoh.ORDER_NUMBER,
        hoh.ORDER_STATUS,
        hac.CUSTOMER_ID,
        hoc.COMPANY_ID,
        hoh.ORDER_DATE,
        hoc.COMPANY_NAME companyName,
        hac.CUSTOMER_NAME customerName,
        round(h.price,2) price
        FROM
        hap_om_order_headers hoh
        LEFT OUTER JOIN (
        SELECT
        HEADER_ID,
        sum(
        ORDERD_QUANTITY * UNIT_SELLING_PRICE
        ) price
        FROM
        hap_om_order_lines
        GROUP BY
        HEADER_ID
        ) h ON h.HEADER_ID = hoh.HEADER_ID,
        hap_org_companys hoc,
        hap_ar_customers hac
        <where>
            hoh.COMPANY_ID = hoc.COMPANY_ID
            AND hoh.CUSTOMER_ID = hac.CUSTOMER_ID
            <if test="companyId">AND hoc.company_id=#{companyId}</if>
            <if test="customerId!=null">AND hac.customer_id=#{customerId}</if>
            <if test="orderNumber!=null">AND hoh.ORDER_NUMBER=#{orderNumber}</if>
            <if test="inventoryItemId!=null">AND hoh.HEADER_ID in (select HEADER_ID FROM HAP_OM_ORDER_LINES where INVENTORY_ITEM_ID=#{inventoryItemId} )</if>
            <if test="orderStatus!=null">AND hoh.ORDER_STATUS=#{orderStatus}</if>
        </where>
    </select>

其中多条件判断如下

<where>
            hoh.COMPANY_ID = hoc.COMPANY_ID
            AND hoh.CUSTOMER_ID = hac.CUSTOMER_ID
            <if test="companyId">AND hoc.company_id=#{companyId}</if>
            <if test="customerId!=null">AND hac.customer_id=#{customerId}</if>
            <if test="orderNumber!=null">AND hoh.ORDER_NUMBER=#{orderNumber}</if>
            <if test="inventoryItemId!=null">AND hoh.HEADER_ID in (select HEADER_ID FROM HAP_OM_ORDER_LINES where INVENTORY_ITEM_ID=#{inventoryItemId} )</if>
            <if test="orderStatus!=null">AND hoh.ORDER_STATUS=#{orderStatus}</if>
        </where>

猜你喜欢

转载自blog.csdn.net/qq_35136982/article/details/82024754