GreenDao-自定义SQL查询-拼接多个查询条件-AndroidStudio

  1     //获取本地Pad(离线工作票列表)
  2     public static List<WTDetailTableBean> getPadWTList(String token,
  3                                                  String userId,
  4                                                  String org,
  5                                                  String dept,
  6                                                  String strClass,
  7                                                  String ticketNo,
  8                                                  String type,
  9                                                  String status,
 10                                                  String isEvaluated,
 11                                                  String exceedTimeLimit,
 12                                                  String error,
 13                                                  String workLeader,
 14                                                  String signatory,
 15                                                  String content,
 16                                                  String createTimeLimit,
 17                                                  String year,
 18                                                  String workLeaderOpenTime,//工作负责人签字时间从
 19                                                  String workLeaderCloseTime,//工作负责人签字时间到
 20                                                  String allowEndOpenTime,
 21                                                  String allowEndCloseTime,
 22                                                  String page_number,
 23                                                  String each_page){
 24 
 25         List<WTDetailTableBean> lWTDetailTableBeanLt = new ArrayList<WTDetailTableBean>();
 26         
 27         //请求参数
 28         ArrayList<String> strParamLt = new ArrayList<String>();
 29         
 30         String queryString =
 31                 "SELECT DISTINCT *  FROM " + WTDetailTableBeanDao.TABLENAME + " where 1==1 ";
 32         //组织
 33         if (!CommonUtil.isNull(org)){
 34             queryString = queryString + " and "
 35                     + WTDetailTableBeanDao.Properties.ORG_ID.columnName + " =  ?";
 36             strParamLt.add(org);
 37         }
 38         //部门
 39         if (!CommonUtil.isNull(dept)){
 40             queryString = queryString + " and "
 41                     + WTDetailTableBeanDao.Properties.UNIT_ID.columnName + " =  ?";
 42             strParamLt.add(dept);
 43         }
 44         //班组
 45         if (!CommonUtil.isNull(strClass)){
 46             queryString = queryString + " and "
 47                     + WTDetailTableBeanDao.Properties.CLASS_ID.columnName + " =  ?";
 48             strParamLt.add(strClass);
 49         }
 50         //票号
 51         if (!CommonUtil.isNull(ticketNo)){
 52             queryString = queryString + " and "
 53                     + WTDetailTableBeanDao.Properties.TICKET_NO.columnName + " like '%" + ticketNo + "%' ";
 54         }
 55 
 56         //状态
 57         if (!CommonUtil.isNull(status)){
 58             queryString = queryString + " and "
 59                     + WTDetailTableBeanDao.Properties.STATUS.columnName + " =  ?";
 60             strParamLt.add(status);
 61         }
 62 
 63         //工作负责人
 64         if (!CommonUtil.isNull(workLeader)){
 65             queryString = queryString + " and "
 66                     + WTDetailTableBeanDao.Properties.WORK_RESPONSOR_NAME.columnName + " like '%" + workLeader + "%' ";
 67         }
 68 
 69         //签字人
 70         if (!CommonUtil.isNull(signatory)){
 71             queryString = queryString + " and "
 72                     + WTDetailTableBeanDao.Properties.WORK_SIGN_FIRST_NAME.columnName + " like '%" + signatory + "%' ";
 73 
 74             queryString = queryString + " or "
 75                     + WTDetailTableBeanDao.Properties.WORK_SIGN_SECOND_NAME.columnName + " like '%" + signatory + "%' ";
 76 
 77         }
 78 
 79         //工作内容
 80         if (!CommonUtil.isNull(content)){
 81             queryString = queryString + " and "
 82                     + WTDetailTableBeanDao.Properties.WORK_RESPONSOR_JOB.columnName + " like '%" + content + "%' ";
 83         }
 84 
 85         //工作负责人签字时间从 和 工作负责人签字时间到 都不为空
 86         if (!CommonUtil.isNull(workLeaderOpenTime) && !CommonUtil.isNull(workLeaderCloseTime)){
 87             queryString = queryString + " and "
 88                     + WTDetailTableBeanDao.Properties.WORK_SIGN_THRID_DATE.columnName + " BETWEEN '" + workLeaderOpenTime + "' AND '" + workLeaderCloseTime + "' ";
 89         //工作负责人签字时间从 不为空 和 工作负责人签字时间到  为空
 90         }else if (!CommonUtil.isNull(workLeaderOpenTime) && CommonUtil.isNull(workLeaderCloseTime)){
 91             queryString = queryString + " and "
 92                     + WTDetailTableBeanDao.Properties.WORK_SIGN_THRID_DATE.columnName + " BETWEEN '" + workLeaderOpenTime + "' AND '" + CommonUtil.getCurrentTime() + "' ";
 93         //工作负责人签字时间从 为空 和 工作负责人签字时间到  不为空
 94         }else if (!CommonUtil.isNull(workLeaderOpenTime) && CommonUtil.isNull(workLeaderCloseTime)){
 95             queryString = queryString + " and "
 96                     + WTDetailTableBeanDao.Properties.WORK_SIGN_THRID_DATE.columnName + " BETWEEN '2000-01-01 00:00:00' AND '" + workLeaderCloseTime + "' ";
 97         }
 98 
 99         Object [] objs=strParamLt.toArray();
100         String [] strs=new String[objs.length];
101         for(int i=0;i<objs.length;i++){
102             strs[i]=objs[i].toString();
103         }
104 
105         Cursor cursor = getDaoSession().getWTDetailTableBeanDao().getDatabase().rawQuery(queryString,  strs);
106 
107         int intTicketIdIndex = cursor.getColumnIndex(WTDetailTableBeanDao.Properties.TICKET_ID.columnName);
108         int intTicketNoIndex = cursor.getColumnIndex(WTDetailTableBeanDao.Properties.TICKET_NO.columnName);
109         int intTicketTypeIndex = cursor.getColumnIndex(WTDetailTableBeanDao.Properties.TICKET_TYPE.columnName);
110         int intStatusIndex = cursor.getColumnIndex(WTDetailTableBeanDao.Properties.STATUS.columnName);
111         int intWorkResponsorJobIndex = cursor.getColumnIndex(WTDetailTableBeanDao.Properties.WORK_RESPONSOR_JOB.columnName);
112         int intWorkSignThridDateIndex = cursor.getColumnIndex(WTDetailTableBeanDao.Properties.WORK_SIGN_THRID_DATE.columnName);
113 
114         while (cursor.moveToNext()) {
115             WTDetailTableBean lWTDetailTableBean = new WTDetailTableBean();
116             lWTDetailTableBean.setTICKET_ID(cursor.getString(intTicketIdIndex));
117             lWTDetailTableBean.setTICKET_NO(cursor.getString(intTicketNoIndex));
118             lWTDetailTableBean.setTICKET_TYPE(cursor.getString(intTicketTypeIndex));
119             lWTDetailTableBean.setSTATUS(cursor.getString(intStatusIndex));
120             lWTDetailTableBean.setWORK_RESPONSOR_JOB(cursor.getString(intWorkResponsorJobIndex));
121             lWTDetailTableBean.setWORK_SIGN_THRID_DATE(cursor.getString(intWorkSignThridDateIndex));
122 
123             lWTDetailTableBeanLt.add(lWTDetailTableBean);
124 
125         }
126         return lWTDetailTableBeanLt;
127     }

页面结果:

原文地址:https://www.cnblogs.com/YangBinChina/p/8658367.html