package cn.com.basic.face.service.sqlite;
|
|
import android.content.ContentValues;
|
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.entity.Register;
|
import cn.com.basic.face.discern.query.item.OfflineAttenderRegisterItem;
|
import cn.com.basic.face.discern.query.item.OfflineVisitorRegisterItem;
|
|
public class RegisterDao {
|
|
public static RegisterDao instance = new RegisterDao();
|
public static RegisterDao getInstance() {
|
return instance;
|
}
|
|
/**
|
* 访客注册
|
* @return
|
*/
|
public long add(Register item) {
|
ContentValues contentValues = new ContentValues();
|
contentValues.put("register_id",item.getRegisterId());
|
contentValues.put("username",item.getUsername());
|
contentValues.put("name_en", item.getNameEn());
|
contentValues.put("gender_id", item.getGenderId());
|
contentValues.put("country_id", item.getCountryId());
|
contentValues.put("province", item.getProvince());
|
contentValues.put("city", item.getCity());
|
contentValues.put("company_id", item.getCompanyId());
|
contentValues.put("company", item.getCompany());
|
contentValues.put("birthday", item.getBirthday());
|
contentValues.put("tel", item.getTel());
|
contentValues.put("mobile_phone", item.getMobilePhone());
|
contentValues.put("identity_type_id", item.getIdentityTypeId());
|
contentValues.put("identify_num", item.getIdentifyNum());
|
contentValues.put("company_id", item.getCountryId());
|
contentValues.put("department_id", item.getDepartmentId());
|
contentValues.put("post_id", item.getPostId());
|
contentValues.put("remark", item.getRemark());
|
contentValues.put("warning", item.getWarning());
|
contentValues.put("id_card_photo", item.getIdCardPhoto());
|
contentValues.put("upload_custom_photo", item.getUploadCustomPhoto());
|
contentValues.put("surveillance_photo", item.getSurveillancePhoto());
|
contentValues.put("surveillance_photo_id", item.getSurveillancePhotoId());
|
contentValues.put("visitor_type_id", item.getVisitorTypeId());
|
contentValues.put("authentication", item.getAuthentication());
|
contentValues.put("id_card_head_photo", item.getIdCardHeadPhoto());
|
contentValues.put("attender_type_id", item.getAttenderTypeId());
|
contentValues.put("card_number", item.getCardNumber());
|
contentValues.put("update_time", item.getUpdateTime());
|
contentValues.put("is_synchron", item.getIsSynchron());
|
contentValues.put("device_company_id", item.getDeviceCompanyId());
|
contentValues.put("raw_surveillance_photo_path", item.getRawSurveillancePhotoPath());
|
contentValues.put("raw_surveillance_photo_width", item.getRawSurveillancePhotoWidth());
|
contentValues.put("raw_surveillance_photo_height", item.getRawSurveillancePhotoHeight());
|
contentValues.put("create_time", item.getCreateTime());
|
contentValues.put("visitor_or_attender", "visitor");
|
long registerId = MainActivity.getInstance().db.insert("register", "", contentValues);
|
return registerId;
|
}
|
|
/**
|
* 考勤注册
|
* @param idCardHeadPhoto
|
* @return
|
*/
|
public long addAttender(OfflineAttenderRegisterItem item, String idCardHeadPhoto) {
|
ContentValues contentValues = new ContentValues();
|
contentValues.put("register_id",item.getRegisterId());
|
contentValues.put("username",item.getUsername());
|
contentValues.put("name_en", item.getNameEn());
|
contentValues.put("gender_id", item.getGenderId());
|
contentValues.put("country_id", item.getCountryId());
|
contentValues.put("province", item.getProvince());
|
contentValues.put("city", item.getCity());
|
contentValues.put("company_id", item.getCompanyId());
|
contentValues.put("company", item.getCompany());
|
contentValues.put("birthday", item.getBirthday());
|
contentValues.put("tel", item.getTel());
|
contentValues.put("mobile_phone", item.getMobilePhone());
|
contentValues.put("identity_type_id", item.getIdentityTypeId());
|
contentValues.put("identify_num", item.getIdentifyNum());
|
contentValues.put("company_id", item.getCountryId());
|
contentValues.put("department_id", item.getDepartmentId());
|
contentValues.put("post_id", item.getPostId());
|
contentValues.put("remark", item.getRemark());
|
contentValues.put("warning", item.getWarning());
|
contentValues.put("id_card_photo", item.getIdCardPhoto());
|
contentValues.put("upload_custom_photo", item.getUploadCustomPhoto());
|
contentValues.put("surveillance_photo", item.getSurveillancePhoto());
|
contentValues.put("surveillance_photo_id", item.getSurveillancePhotoId());
|
contentValues.put("visitor_type_id", item.getVisitorTypeId());
|
contentValues.put("authentication", item.getAuthentication());
|
contentValues.put("id_card_head_photo", item.getIdCardHeadPhoto());
|
contentValues.put("attender_type_id", item.getAttenderTypeId());
|
contentValues.put("card_number", item.getCardNumber());
|
contentValues.put("update_time", item.getUpdateTime());
|
contentValues.put("is_synchron", item.getIsSynchron());
|
contentValues.put("device_company_id", item.getDeviceCompanyId());
|
contentValues.put("raw_surveillance_photo_path", item.getRawSurveillancePhotoPath());
|
contentValues.put("raw_surveillance_photo_width", item.getRawSurveillancePhotoWidth());
|
contentValues.put("raw_surveillance_photo_height", item.getRawSurveillancePhotoHeight());
|
contentValues.put("create_time", item.getCreateTime());
|
contentValues.put("visitor_or_attender", "attender");
|
long registerId = MainActivity.getInstance().db.insert("register", "", contentValues);
|
return registerId;
|
}
|
|
public boolean hasOfflineVisitorRegisterData() {
|
Cursor c = MainActivity.getInstance().db.rawQuery("select count(*) from register where 1=1 and visitor_or_attender='visitor'", new String[]{});
|
c.moveToFirst();
|
return c.getInt(0) > 0 ? true : false;
|
}
|
|
public boolean hasOfflineAttenderRegisterData() {
|
Cursor c = MainActivity.getInstance().db.rawQuery("select count(*) from register where 1=1 and visitor_or_attender='attender", new String[]{});
|
c.moveToFirst();
|
return c.getInt(0) > 0 ? true : false;
|
}
|
|
public OfflineVisitorRegisterItem readOfflineVisitorRegister() {
|
OfflineVisitorRegisterItem item = null;
|
String sql =
|
"SELECT\n" +
|
" a.register_id,\n" +
|
" a.username,\n" +
|
" a.name_en,\n" +
|
" a.gender_id,\n" +
|
" a.country_id,\n" +
|
" a.province,\n" +
|
" a.city,\n" +
|
" a.birthday,\n" +
|
" a.tel,\n" +
|
" a.mobile_phone,\n" +
|
" a.identity_type_id,\n" +
|
" a.identify_num,\n" +
|
" a.company_id,\n" +
|
" a.department_id,\n" +
|
" a.post_id,\n" +
|
" a.remark,\n" +
|
" a.warning,\n" +
|
" a.id_card_photo,\n" +
|
" a.upload_custom_photo,\n" +
|
" a.surveillance_photo,\n" +
|
" a.surveillance_photo_id,\n" +
|
" a.visitor_type_id,\n" +
|
" a.authentication,\n" +
|
" a.id_card_head_photo,\n" +
|
" a.attender_type_id,\n" +
|
" a.card_number,\n" +
|
" a.update_time,\n" +
|
" a.is_synchron,\n" +
|
" a.create_time,\n" +
|
" a.raw_surveillance_photo_path,\n" +
|
" a.raw_surveillance_photo_width,\n" +
|
" a.raw_surveillance_photo_height,\n" +
|
" a.device_company_id\n" +
|
"FROM\n" +
|
" register a\n" +
|
"WHERE\n" +
|
" 1 = 1\n" +
|
"AND a.is_synchron = 'N'"+
|
" and visitor_or_attender='visitor'"+
|
" order by a.create_time "
|
;
|
Cursor c = MainActivity.getInstance().db.rawQuery(sql, new String[]{});
|
if (c.moveToFirst()) {
|
item = new OfflineVisitorRegisterItem();
|
item.setRegisterId(c.getString(c.getColumnIndex("register_id")));
|
item.setUsername(c.getString(c.getColumnIndex("username")));
|
item.setMobilePhone(c.getString(c.getColumnIndex("mobile_phone")));
|
item.setGenderId(c.getString(c.getColumnIndex("gender_id")));
|
item.setIdentityTypeId(c.getString(c.getColumnIndex("identity_type_id")));
|
item.setCountryId(c.getString(c.getColumnIndex("country_id")));
|
item.setVisitorTypeId(c.getString(c.getColumnIndex("visitor_type_id")));
|
item.setIdentifyNum(c.getString(c.getColumnIndex("identify_num")));
|
item.setCompanyId(c.getString(c.getColumnIndex("company_id")));
|
item.setBirthday(c.getString(c.getColumnIndex("birthday")));
|
item.setRemark(c.getString(c.getColumnIndex("remark")));
|
item.setSurveillancePhoto(c.getString(c.getColumnIndex("surveillance_photo")));
|
item.setUploadCustomPhoto(c.getString(c.getColumnIndex("upload_custom_photo")));
|
item.setIdCardPhoto(c.getString(c.getColumnIndex("id_card_head_photo")));
|
|
item.setCreateTime(c.getString(c.getColumnIndex("create_time")));
|
item.setRawSurveillancePhotoPath(c.getString(c.getColumnIndex("raw_surveillance_photo_path")));
|
item.setRawSurveillancePhotoWidth(c.getString(c.getColumnIndex("raw_surveillance_photo_width")));
|
item.setRawSurveillancePhotoHeight(c.getString(c.getColumnIndex("raw_surveillance_photo_height")));
|
}
|
return item;
|
}
|
|
public OfflineAttenderRegisterItem readOfflineAttenderRegister() {
|
OfflineAttenderRegisterItem item = null;
|
String sql =
|
"SELECT\n" +
|
" a.register_id,\n" +
|
" a.username,\n" +
|
" a.name_en,\n" +
|
" a.gender_id,\n" +
|
" a.country_id,\n" +
|
" a.province,\n" +
|
" a.city,\n" +
|
" a.birthday,\n" +
|
" a.tel,\n" +
|
" a.mobile_phone,\n" +
|
" a.identity_type_id,\n" +
|
" a.identify_num,\n" +
|
" a.company_id,\n" +
|
" a.department_id,\n" +
|
" a.post_id,\n" +
|
" a.remark,\n" +
|
" a.warning,\n" +
|
" a.id_card_photo,\n" +
|
" a.upload_custom_photo,\n" +
|
" a.surveillance_photo,\n" +
|
" a.surveillance_photo_id,\n" +
|
" a.visitor_type_id,\n" +
|
" a.authentication,\n" +
|
" a.id_card_head_photo,\n" +
|
" a.attender_type_id,\n" +
|
" a.card_number,\n" +
|
" a.update_time,\n" +
|
" a.is_synchron,\n" +
|
" a.device_company_id\n" +
|
"FROM\n" +
|
" register a\n" +
|
"WHERE\n" +
|
" 1 = 1\n" +
|
"AND a.is_synchron = 'N'"+
|
" and visitor_or_attender='attender'"+
|
" order by a.create_time "
|
;
|
Cursor c = MainActivity.getInstance().db.rawQuery(sql, new String[]{});
|
if (c.moveToFirst()) {
|
item = new OfflineAttenderRegisterItem();
|
item.setRegisterId(c.getString(c.getColumnIndex("register_id")));
|
item.setUsername(c.getString(c.getColumnIndex("username")));
|
item.setMobilePhone(c.getString(c.getColumnIndex("mobile_phone")));
|
item.setGenderId(c.getString(c.getColumnIndex("gender_id")));
|
item.setIdentityTypeId(c.getString(c.getColumnIndex("identity_type_id")));
|
item.setCountryId(c.getString(c.getColumnIndex("country_id")));
|
item.setVisitorTypeId(c.getString(c.getColumnIndex("visitor_type_id")));
|
item.setIdentifyNum(c.getString(c.getColumnIndex("identify_num")));
|
item.setCompanyId(c.getString(c.getColumnIndex("company_id")));
|
item.setBirthday(c.getString(c.getColumnIndex("birthday")));
|
item.setRemark(c.getString(c.getColumnIndex("remark")));
|
item.setSurveillancePhoto(c.getString(c.getColumnIndex("surveillance_photo")));
|
item.setUploadCustomPhoto(c.getString(c.getColumnIndex("upload_custom_photo")));
|
item.setIdCardPhoto(c.getString(c.getColumnIndex("id_card_head_photo")));
|
|
item.setCreateTime(c.getString(c.getColumnIndex("create_time")));
|
item.setRawSurveillancePhotoPath(c.getString(c.getColumnIndex("raw_surveillance_photo_path")));
|
item.setRawSurveillancePhotoWidth(c.getString(c.getColumnIndex("raw_surveillance_photo_width")));
|
item.setRawSurveillancePhotoHeight(c.getString(c.getColumnIndex("raw_surveillance_photo_height")));
|
}
|
return item;
|
}
|
|
public void removeOfflineVisitorRegister(OfflineVisitorRegisterItem item) {
|
try {
|
String sql = "delete from register where visitor_id='"+item.getRegisterId()+"' AND a.is_synchron = 'N' and visitor_or_attender='visitor'";
|
SQLiteDatabase db = MainActivity.getInstance().db;
|
db.execSQL(sql);
|
item.deleteFiles();
|
}
|
catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
public boolean hasMoreVisitorRegisters() {
|
boolean hasMore = false;
|
String sql = "select count(*) from register where is_synchron = 'N' and visitor_or_attender='visitor'";
|
Cursor c = MainActivity.getInstance().db.rawQuery(sql, new String[]{});
|
if (c.moveToFirst()) {
|
hasMore = c.getInt(0) > 0;
|
}
|
return hasMore;
|
}
|
|
public boolean hasMoreAttenderRegisters() {
|
boolean hasMore = false;
|
String sql = "select count(*) from register where is_synchron = 'N' and visitor_or_attender='attender'";
|
Cursor c = MainActivity.getInstance().db.rawQuery(sql, new String[]{});
|
if (c.moveToFirst()) {
|
hasMore = c.getInt(0) > 0;
|
}
|
return hasMore;
|
}
|
|
public void removeOfflineAttenderRegister(OfflineAttenderRegisterItem item) {
|
try {
|
String sql = "delete from register where visitor_id='"+item.getRegisterId()+"' AND a.is_synchron = 'N' and visitor_or_attender='attender' ";
|
SQLiteDatabase db = MainActivity.getInstance().db;
|
db.execSQL(sql);
|
item.deleteFiles();
|
}
|
catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
/**
|
* 加载注册人员信息集合
|
* @param deviceCompanyId
|
* @return
|
*/
|
public List<Register> getRegisterList(String deviceCompanyId){
|
List<Register> list=new ArrayList<Register>();
|
Register result=null;
|
String sql="select * from register where is_synchron='N' and device_company_id="+Integer.parseInt(deviceCompanyId) + " limit 0, 20 ";
|
Cursor c =MainActivity.getInstance().db.rawQuery(sql,new String[]{});
|
while(c.moveToNext()){
|
result=new Register();
|
result.setCreateTime(c.getString(c.getColumnIndex("create_time")));
|
result.setIsValid(c.getString(c.getColumnIndex("is_valid")));
|
result.setRegisterId(c.getString(c.getColumnIndex("register_id")));
|
result.setUsername(c.getString(c.getColumnIndex("username")));
|
result.setNameEn(c.getString(c.getColumnIndex("name_en")));
|
result.setGenderId(c.getString(c.getColumnIndex("gender_id")));
|
result.setCountryId(c.getString(c.getColumnIndex("country_id")));
|
result.setProvince(c.getString(c.getColumnIndex("province")));
|
result.setCity(c.getString(c.getColumnIndex("city")));
|
result.setBirthday(c.getString(c.getColumnIndex("birthday")));
|
result.setTel(c.getString(c.getColumnIndex("tel")));
|
result.setCompany(c.getString(c.getColumnIndex("company")));
|
result.setVisitorOrAttender(c.getString(c.getColumnIndex("visitor_or_attender")));
|
result.setMobilePhone(c.getString(c.getColumnIndex("mobile_phone")));
|
result.setIdentityTypeId(c.getString(c.getColumnIndex("identity_type_id")));
|
result.setIdentifyNum(c.getString(c.getColumnIndex("identify_num")));
|
result.setCompanyId(c.getString(c.getColumnIndex("company_id")));
|
result.setDepartmentId(c.getString(c.getColumnIndex("department_id")));
|
result.setPostId(c.getString(c.getColumnIndex("post_id")));
|
result.setRemark(c.getString(c.getColumnIndex("remark")));
|
result.setWarning(c.getString(c.getColumnIndex("warning")));
|
result.setIdCardPhoto(c.getString(c.getColumnIndex("id_card_photo")));
|
result.setUploadCustomPhoto(c.getString(c.getColumnIndex("upload_custom_photo")));
|
result.setSurveillancePhoto(c.getString(c.getColumnIndex("surveillance_photo")));
|
result.setSurveillancePhotoId(c.getString(c.getColumnIndex("surveillance_photo_id")));
|
result.setVisitorTypeId(c.getString(c.getColumnIndex("visitor_type_id")));
|
result.setAuthentication(c.getString(c.getColumnIndex("authentication")));
|
result.setIdCardHeadPhoto(c.getString(c.getColumnIndex("id_card_head_photo")));
|
result.setAttenderTypeId(c.getString(c.getColumnIndex("attender_type_id")));
|
result.setCardNumber(c.getString(c.getColumnIndex("card_number")));
|
result.setUpdateTime(c.getString(c.getColumnIndex("update_time")));
|
result.setIsSynchron(c.getString(c.getColumnIndex("is_synchron")));
|
result.setDeviceCompanyId(c.getString(c.getColumnIndex("device_company_id")));
|
result.setRawSurveillancePhotoPath(c.getString(c.getColumnIndex("raw_surveillance_photo_path")));
|
result.setRawSurveillancePhotoWidth(c.getString(c.getColumnIndex("raw_surveillance_photo_width")));
|
result.setRawSurveillancePhotoHeight(c.getString(c.getColumnIndex("raw_surveillance_photo_height")));
|
list.add(result);
|
}
|
return list;
|
}
|
|
//删除已上传给你服务器的数据
|
public void delRegiterList(List<Register> list){
|
for (Register item : list) {
|
String sql="delete from register where is_synchron='N' and register_id='"+item.getRegisterId()+"'";
|
MainActivity.getInstance().db.execSQL(sql);
|
}
|
}
|
|
//获取未同步数据总数
|
public int getSynDataCount(){
|
String sql="select count(*) from register where is_synchron='N' ";
|
Cursor c =MainActivity.getInstance().db.rawQuery(sql,new String[]{});
|
c.moveToFirst();
|
return c.getInt(0);
|
}
|
|
}
|