package cn.com.basic.face.service.sqlite; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import java.util.ArrayList; import java.util.List; import cn.com.basic.face.base.MainActivity; import cn.com.basic.face.discern.common.CommonVariables; import cn.com.basic.face.discern.common.ResultBean; import cn.com.basic.face.discern.entity.Visit; import cn.com.basic.face.discern.query.item.VisitQueryItem; public class VisitDao extends BaseDao{ public static VisitDao instance = new VisitDao(); public static VisitDao getInstance() { return instance; } /** * 访客管理列表 * @param searchText * @param pageNum * @return */ public ResultBean findLeftVisitorList(String searchText, int pageNum) { ResultBean resultBean = new ResultBean(); SQLiteDatabase db = MainActivity.getInstance().db; try { StringBuilder sb = new StringBuilder(40); sb.append("SELECT a.register_id,a.username,a.surveillance_photo,d.company_name,a.tel,a.identify_num,b.dept_name,") .append("d.company_id,e.post_name,a.mobile_phone,0 as type,f.`name` gender,g.`name` identity_type,") .append("a.birthday,h.`name` country_name,j.username visitee,k.`name` visit_reason,i.enter_time,i.exit_time,") .append("l.`name` current_status,a.id_card_photo,a.company, i.visit_reason reason ").append(" FROM ").append(" visit i ") .append(" LEFT JOIN register a on i.visitor_id=a.register_id ") .append(" LEFT JOIN company d on d.company_id=a.company_id ") .append(" LEFT JOIN post e on e.post_id=a.post_id ") .append(" LEFT JOIN dictionary f on f.dict_id=a.gender_id ") .append(" LEFT JOIN dictionary g on g.dict_id=a.identity_type_id ") .append(" LEFT JOIN dictionary h on h.dict_id=a.country_id ") .append(" LEFT JOIN register j on j.register_id=i.visitee_id ") .append(" LEFT JOIN department b on j.department_id = b.dept_id ") .append(" LEFT JOIN dictionary k on k.dict_id=i.visit_reason_id ") .append(" LEFT JOIN dictionary l on l.dict_id=i.current_state_id ") .append(" WHERE ").append(" 1 = 1 AND a.register_id IS NOT NULL "); if(searchText != null && !searchText.trim().isEmpty()) { sb.append(" AND a.username LIKE '%").append(searchText).append("%'"); } sb.append(" ORDER BY i.enter_time desc "); StringBuilder count = new StringBuilder(sb.length()); count.append("select count(*) as count from (").append(sb).append(" ) _table"); sb.append(" LIMIT ").append(getStartIndex(pageNum)).append(",").append(CommonVariables.Page.DEFAULT_PAGE_SIZE); List list = new ArrayList(); VisitQueryItem aqi = null; Cursor c = db.rawQuery(sb.toString(),new String[]{}); Cursor c_count = db.rawQuery(count.toString(),new String[]{}); while (c.moveToNext()) { aqi = new VisitQueryItem(); aqi.setRegisterId(c.getString(c.getColumnIndex("register_id"))); aqi.setUsername(c.getString(c.getColumnIndex("username"))); aqi.setSurveillancePhoto(c.getString(c.getColumnIndex("surveillance_photo"))); aqi.setCompanyName(c.getString(c.getColumnIndex("company_name"))); aqi.setTel(c.getString(c.getColumnIndex("tel"))); aqi.setIdentifyNum(c.getString(c.getColumnIndex("identify_num"))); aqi.setDeptName(c.getString(c.getColumnIndex("dept_name"))); aqi.setCompanyId(c.getString(c.getColumnIndex("company_id"))); aqi.setPostName(c.getString(c.getColumnIndex("post_name"))); aqi.setMobilePhone(c.getString(c.getColumnIndex("mobile_phone"))); aqi.setType(c.getString(c.getColumnIndex("type"))); aqi.setGender(c.getString(c.getColumnIndex("gender"))); aqi.setIdentityType(c.getString(c.getColumnIndex("identity_type"))); aqi.setBirthday(c.getString(c.getColumnIndex("birthday"))); aqi.setCountryName(c.getString(c.getColumnIndex("country_name"))); aqi.setVisitee(c.getString(c.getColumnIndex("visitee"))); aqi.setVisitReason(c.getString(c.getColumnIndex("visit_reason"))); aqi.setEnterTime(c.getString(c.getColumnIndex("enter_time"))); aqi.setExitTime(c.getString(c.getColumnIndex("exit_time"))); aqi.setCurrentStatus(c.getString(c.getColumnIndex("current_status"))); aqi.setIdCardPhoto(c.getString(c.getColumnIndex("id_card_photo"))); String company = c.getString(c.getColumnIndex("company")); if (company != null && !"".equals(company)) { aqi.setCompanyName(company); } String reason = c.getString(c.getColumnIndex("reason")); if (reason != null && !"".equals(reason)){ aqi.setVisitReason(reason); } list.add(aqi); } Integer total = null; while (c_count.moveToNext()) { total = c_count.getInt(0); } resultBean.setTotalPages(getTotalPageSize(total)); resultBean.setPageNum(pageNum); resultBean.setData(list); } catch (Exception e) { e.printStackTrace(); } return resultBean; } public List getVisitList(String deviceCompanyId) { List list=new ArrayList(); Visit visit=null; String sql="select * from visit where is_synchron='N' and device_company_id="+Integer.parseInt(deviceCompanyId) + " limit 0, 50"; Cursor c =MainActivity.getInstance().db.rawQuery(sql,new String[]{}); while (c.moveToNext()){ visit=new Visit(); visit.setVisitId(c.getString(c.getColumnIndex("visit_id"))); visit.setVisitReasonId(c.getString(c.getColumnIndex("visit_reason_id"))); visit.setRemark(c.getString(c.getColumnIndex("remark"))); visit.setEnterTime(c.getString(c.getColumnIndex("enter_time"))); visit.setExitTime(c.getString(c.getColumnIndex("exit_time"))); visit.setVisitorTypeId(c.getString(c.getColumnIndex("visitor_type_id"))); visit.setVisitorId(c.getString(c.getColumnIndex("visitor_id"))); visit.setVisitorCompanyId(c.getString(c.getColumnIndex("visitor_company_id"))); visit.setVisiteeId(c.getString(c.getColumnIndex("visitee_id"))); visit.setVisiteeCompanyId(c.getString(c.getColumnIndex("visitee_company_id"))); visit.setCurrentStateId(c.getString(c.getColumnIndex("current_state_id"))); visit.setWarning(c.getString(c.getColumnIndex("warning"))); visit.setUpdateTime(c.getString(c.getColumnIndex("update_time"))); visit.setIsSynchron(c.getString(c.getColumnIndex("is_synchron"))); visit.setDeviceCompanyId(c.getString(c.getColumnIndex("device_company_id"))); visit.setIsValid(c.getString(c.getColumnIndex("is_valid"))); visit.setCreateTime(c.getString(c.getColumnIndex("create_time"))); visit.setVisitReason(c.getString(c.getColumnIndex("visit_reason"))); list.add(visit); } return list; } //删除已上传给你服务器的数据 public void delVisitList(List list){ for (Visit item : list) { String sql="delete from visit where is_synchron='N' and visit_id='"+item.getVisitId()+"'"; MainActivity.getInstance().db.execSQL(sql); } } //获取未同步数据总数 public int getSynDataCount(){ String sql="select count(*) from visit where is_synchron='N' "; Cursor c =MainActivity.getInstance().db.rawQuery(sql,new String[]{}); c.moveToFirst(); return c.getInt(0); } }