场景
BJUI前段报表展示,需要添加时间筛选条件,BJUI传递两个时间与数据库中的某个时间的字段进行比较。
效果
实现
BJUI前段jsp页面:
<label>开始时间:
<input type="text" name="startDate" data-toggle="datepicker" data-pattern="yyyy-MM-dd" value="${pageResult.ext.startDate}" size="20">
</label>
<label>结束时间:
<input type="text" name="endDate" data-toggle="datepicker" data-pattern="yyyy-MM-dd" value="${pageResult.ext.endDate}" size="20">
</label>
传递到后端action:
@RequestMapping(value = "/toList")
public ModelAndView toList(Integer pageSize, Integer pageCurrent, String orderField, String orderDirection,
String partnerName,String partnerNum,String startDate,String endDate) {
ModelAndView mv = null;
try {
PageResult<PassPartnersBillseriaExt> pageResult = PageUtil.pageSet(this.getClass(), pageSize, pageCurrent, orderField, orderDirection);
pageResult.getParam().put("status", "0");
//插入模糊搜索数据
if (partnerName != null && !"".equals(partnerName)) {
pageResult.getParam().put("partnerName", partnerName);
pageResult.getExt().put("partnerName", partnerName);
}
if (partnerNum != null && !"".equals(partnerNum)) {
pageResult.getParam().put("partnerNum", partnerNum);
pageResult.getExt().put("partnerNum", partnerNum);
}
if (startDate != null && !"".equals(startDate)) {
pageResult.getParam().put("startDate", startDate);
pageResult.getExt().put("startDate", startDate);
}
if (endDate != null && !"".equals(endDate)) {
pageResult.getParam().put("endDate", endDate);
pageResult.getExt().put("endDate", endDate);
}
pageResult.setOrderField("ppb.RecordTime");
pageResult.setOrderDirection("DESC");
pageResult = this.passPartnersBillseriaService.getPartnerBillServialListPageResult(pageResult);
mv = new ModelAndView();
mv.addObject(ModelAndViewConstants.PAGE_RESULT, pageResult);
mv.setViewName(ModelAndViewConstants.PASS_PARTNER_BILL_SERIAL_MAIN_VIEW);
} catch (Exception e) {
mv = new ModelAndView(ModelAndViewConstants.ERROR_VIEW);
LogService.getInstance(this).debug(e);
}
return mv;
}
Mapper文件:
<select id="getPartnersBillSerialListByParam" parameterType="java.util.Map" resultMap="PassPartnersBillSerialResultMap">
select ppb.*,sc.CodeName TransactionTypeName
from pass_partners_billseria ppb
left join sys_code sc
on ppb.TransactionType = sc.CodeValue
and sc.CodeType ="transactionType"
<where>
<if test="partnerName"> and ppb.partnerName like CONCAT('%',#{partnerName},'%' )</if>
<if test="partnerNum"> and ppb.partnerNum like CONCAT('%',#{partnerNum},'%' )</if>
<if test="status"> and ppb.Status = #{status}</if>
<if test="startDate"> and ppb.RecordTime >=CONCAT(#{startDate},' 00:00:00' ) </if>
<if test="endDate"> and CONCAT(#{endDate},' 23:59:59' )>= ppb.RecordTime </if>
</where>
<if test="orderColumn != null">
order by ${orderColumn}
<if test="orderTurn != null">
${orderTurn}
</if>
</if>
<if test="limit != null">
limit
<if test="offset != null">
${offset},
</if>
${limit}
</if>
</select>