前端页面搜索条件是这样的:
@Query(value = "SELECT\n" + "\t* \n" + "FROM\n" + "\t(\n" + "\tSELECT\n" + "\t\tt.id,\n" + "\t\ta.plan_id,\n" + "\t\ta.plan_name,\n" + "\t\ta.patrol_type,\n" + "\t\ta.patrol_content,\n" + "\t\tb.building AS patrol_place,\n" + "\t\ta.start_date,\n" + "\t\ta.end_date,\n" + "\tCASE \n" + "\t\t\tWHEN DATE_FORMAT( CURDATE( ), '%Y-%m-%d' ) < a.start_date THEN '未开始' WHEN DATE_FORMAT( CURDATE( ), '%Y-%m-%d' ) >= a.start_date \n" + "\t\t\tAND DATE_FORMAT( CURDATE( ), '%Y-%m-%d' ) <= a.end_date THEN '进行中' WHEN DATE_FORMAT( CURDATE( ), '%Y-%m-%d' ) > a.end_date THEN\n" + "\t\t\t\t'已过期' \n" + "\t\t\t\tEND AS state\n" + "\t\tFROM\n" + "\t\t\t`map_patrol_plan_details` t\n" + "\t\t\tLEFT JOIN map_patrol_plan a ON t.plan_id = a.id\n" + "\t\t\tLEFT JOIN map_second_build b ON t.build_id = b.id \n" + "\t\t) aa \n " + " where if(:planId !='', aa.plan_id = :planId,1=1) " + " AND if(:planName !='', aa.plan_name like :planName,1=1) " + " AND if(:patrolType !='', aa.patrol_type = :patrolType,1=1) " + " AND if(:state !='', aa.state = :state,1=1)",nativeQuery = true) Page<Map<String, Object>> getPatrolRecordByPlanId (String planId, String planName, String patrolType, String state,Pageable pageable);