前端:
这里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>