package com.sunvote.xpadapp.db; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import com.sunvote.util.LogUtil; import com.sunvote.xpadapp.bean.Bills; import com.sunvote.xpadapp.bean.Candidates; import com.sunvote.xpadapp.bean.Meeting; import com.sunvote.xpadapp.bean.SubBills; import java.util.ArrayList; import java.util.List; /** * * Created by Elvis on 2017/11/30 15:07 * Email:Eluis@psunsky.com * 版权所有:长沙中天电子设计开发有限公司 * 人大通用版XPadAppRD重构 */ public class DBManager { public static String TAG = "DBManager"; private DBHelper helper; private SQLiteDatabase db; private int confId = -1; public boolean checkDB() { if(db == null){ db = helper.openDatabase(confId); } return db != null; } private DBManager() { } private static volatile DBManager instance ; public static DBManager getInstance() { if(instance == null){ synchronized (DBManager.class){ if(instance == null){ instance = new DBManager(); } } } return instance; } public void setMeetingid(int meetingid){ closeDB(); helper = new DBHelper(meetingid); confId = meetingid; db = helper.openDatabase(confId); } public int getConfId() { return confId; } public Meeting getMettingInfo() { Meeting info = new Meeting(); Cursor c = null; try { checkDB(); String sql = "SELECT * FROM Meeting"; c = db.rawQuery(sql, null); while (c.moveToNext()) { info.setMeetingID(confId); info.setMeetingTitle(c.getString(c.getColumnIndex("MeetingTitle"))); info.setMeetingAddress(c.getString(c.getColumnIndex("MeetingAddress"))); info.setMeetingMember(c.getString(c.getColumnIndex("MeetingMember"))); info.setMeetingMemo(c.getString(c.getColumnIndex("MeetingMemo"))); info.setBackground(c.getString(c.getColumnIndex("Background"))); info.setBeginDate(c.getString(c.getColumnIndex("BeginDate"))); info.setEndDate(c.getString(c.getColumnIndex("EndDate"))); info.setCreateDate(c.getString(c.getColumnIndex("CreateTime"))); info.setFolderPath(c.getString(c.getColumnIndex("FolderPath"))); info.setState(c.getString(c.getColumnIndex("State"))); break; } } catch (Exception e) { LogUtil.e(TAG,e); } finally { if (c != null) { c.close(); } } return info; } public Bills getBillInfo(int billId) { Bills info = new Bills(); Cursor c = null; try { checkDB(); String sql = "SELECT * FROM Bills WHERE BillID=" + billId; c = db.rawQuery(sql, null); while (c.moveToNext()) { info.setBillId(c.getInt(c.getColumnIndex("BillID"))); info.setBillNo(c.getInt(c.getColumnIndex("BillNo"))); info.setBillType(c.getInt(c.getColumnIndex("BillType"))); info.setSubType(c.getInt(c.getColumnIndex("BillSubType"))); info.setTitle(c.getString(c.getColumnIndex("BillTitle"))); info.setMemo(c.getString(c.getColumnIndex("BillMemo"))); info.setBillFile(c.getString(c.getColumnIndex("BillFile"))); info.setBillOptions(c.getString(c.getColumnIndex("BillPar"))); break; } } catch (Exception e) { info = null; LogUtil.e(TAG,e); } finally { if (c != null) { c.close(); } } return info; } public List getBillItems() { ArrayList titleList = new ArrayList(); Cursor c = null; try { checkDB(); String sql = "SELECT * FROM Bills"; c = db.rawQuery(sql, null); while (c.moveToNext()) { Bills it = new Bills(); it.setBillId(c.getInt(c.getColumnIndex("BillID"))); it.setBillNo(c.getInt(c.getColumnIndex("BillNo"))); it.setTitle(c.getString(c.getColumnIndex("BillTitle"))); it.setMemo(c.getString(c.getColumnIndex("BillMemo"))); it.setBillFile(c.getString(c.getColumnIndex("BillFile"))); it.setBillType(c.getInt(c.getColumnIndex("BillType"))); titleList.add(it); } } catch (Exception e) { LogUtil.e(TAG,e); } finally { if (c != null) { c.close(); } } return titleList; } public List getBillItemsMain(int meetingId) { ArrayList titleList = new ArrayList(); Cursor c = null; confId = meetingId; try { checkDB(); String sql = " select * from Bills where BillSubType is null or BillSubType = 0 order by BillNo "; c = db.rawQuery(sql, null); while (c.moveToNext()) { Bills it = new Bills(); it.setBillId(c.getInt(c.getColumnIndex("BillID"))); it.setBillNo(c.getInt(c.getColumnIndex("BillNo"))); it.setTitle(c.getString(c.getColumnIndex("BillTitle"))); it.setMemo(c.getString(c.getColumnIndex("BillMemo"))); it.setBillFile(c.getString(c.getColumnIndex("BillFile"))); it.setBillType(c.getInt(c.getColumnIndex("BillType"))); it.setSubType(c.getInt(c.getColumnIndex("BillSubType"))); titleList.add(it); } } catch (Exception e) { LogUtil.e(TAG,e); } finally { if (c != null) { c.close(); } } return titleList; } public List getBillItemsMain(int meetingId, int billNo) { ArrayList titleList = new ArrayList(); Cursor c = null; confId = meetingId; try { checkDB(); String sql = "select * from Bills where BillType != 999 and BillNo = " + billNo + " order by BillNo"; c = db.rawQuery(sql, null); while (c.moveToNext()) { Bills it = new Bills(); it.setBillId(c.getInt(c.getColumnIndex("BillID"))); it.setBillNo(c.getInt(c.getColumnIndex("BillNo"))); it.setTitle(c.getString(c.getColumnIndex("BillTitle"))); it.setMemo(c.getString(c.getColumnIndex("BillMemo"))); it.setBillFile(c.getString(c.getColumnIndex("BillFile"))); it.setBillType(c.getInt(c.getColumnIndex("BillType"))); it.setSubType(c.getInt(c.getColumnIndex("BillSubType"))); titleList.add(it); } } catch (Exception e) { LogUtil.e(TAG,e); } finally { if (c != null) { c.close(); } } return titleList; } public List getSubBillItems(int billid) { ArrayList titleList = new ArrayList(); Cursor c = null; try { checkDB(); String sql = "SELECT * FROM SubBills WHERE BillID=" + billid + " ORDER BY SubBillNo"; c = db.rawQuery(sql, null); while (c.moveToNext()) { Bills it = new Bills(); it.setBillId(c.getInt(c.getColumnIndex("BillID"))); it.setBillNo(c.getInt(c.getColumnIndex("SubBillNo"))); it.setTitle(c.getString(c.getColumnIndex("BillTitle"))); it.setMemo(c.getString(c.getColumnIndex("BillMemo"))); it.setBillFile(c.getString(c.getColumnIndex("BillFile"))); titleList.add(it); } } catch (Exception e) { LogUtil.e(TAG,e); } finally { if (c != null) { c.close(); } } return titleList; } public List getMultiTitleItems(int billid) { ArrayList titleList = new ArrayList(); Cursor c = null; try { checkDB(); String sql = "SELECT * FROM SubBills WHERE BillID=" + billid + " ORDER BY SubBillNo"; c = db.rawQuery(sql, null); while (c.moveToNext()) { SubBills it = new SubBills(); it.setSubBillNo(c.getInt(c.getColumnIndex("SubBillNo"))); it.setBillTitle(c.getString(c.getColumnIndex("BillTitle"))); it.setBillMemo(c.getString(c.getColumnIndex("BillMemo"))); it.setBillFile(c.getString(c.getColumnIndex("BillFile"))); titleList.add(it); } } catch (Exception e) { LogUtil.e(TAG,e); } finally { if (c != null) { c.close(); } } return titleList; } public List getCandidateList(int billid) { ArrayList titleList = new ArrayList(); Cursor c = null; checkDB(); try { String sql = "SELECT * FROM Candidates WHERE BillID=" + billid + " ORDER BY CandidateNo ASC"; c = db.rawQuery(sql, null); while (c.moveToNext()) { Candidates it = new Candidates(); it.setCandidateNo(c.getInt(c.getColumnIndex("CandidateNo"))); it.setCandidateName(c.getString(c.getColumnIndex("CandidateName"))); it.setCandidateMemo(c.getString(c.getColumnIndex("CandidateMemo"))); it.setCandidateFile(c.getString(c.getColumnIndex("CandidateFile"))); titleList.add(it); } Candidates it = new Candidates(); titleList.add(it); // 另选他人 } catch (Exception e) { LogUtil.e(TAG,e); } finally { if (c != null) { c.close(); } } return titleList; } public void closeDB() { if (db != null) { db.close(); db=null; } } }