package com.szpg.db.dao.impl; import com.szpg.db.dao.PgAssetInSpectionDao; import com.szpg.db.data.PgAssetInSpection; import com.szpg.db.util.ConnectionManager; import org.apache.commons.dbutils.DbUtils; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import org.apache.log4j.Logger; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class PgAssetInSpectionImpl implements PgAssetInSpectionDao { private final Logger logger = Logger.getLogger(this.getClass().getName()); @Override public void addAssetInSpectionRecord(List<PgAssetInSpection> pgAssetInSpectionList){ Connection conn = null; String insertStr = "INSERT INTO PG_ASSET_INSPECTION_RECORD " + "(ID,KEY_ID, PLAN_ID, CREATE_DATE, STATE,CREATOR,PLAN_NAME,RECORD_NO,PLAN_NO,RESPONSIBIE_DEPT," + "INSPECTION_PERSON,PATROL_MAN,OPERATE_DATE,REMARK,BUILD_CABIN,PROJECT,START_PILE_NO,END_PILE_NO," + "INSPECTION_PRACE,OTHER_PATROL_MAN) " + "VALUES (SEQ_PG_ASSET_RECORD_ID.nextval,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; List<Object[]> paramObjectList=new ArrayList<Object[]>(); for(PgAssetInSpection pgAssetInSpection:pgAssetInSpectionList){ Object[] params = new Object[19]; params[0] = pgAssetInSpection.getKEY_ID(); params[1] = pgAssetInSpection.getPLAN_ID(); params[2] = pgAssetInSpection.getCREATE_DATE(); params[3] = pgAssetInSpection.getSTATE(); params[4]=pgAssetInSpection.getCREATOR(); params[5]=pgAssetInSpection.getPLAN_NAME(); params[6]=pgAssetInSpection.getRECORD_NO(); params[7]=pgAssetInSpection.getPLAN_NO(); params[8]=pgAssetInSpection.getRESPONSIBLE_DEPT(); params[9]=pgAssetInSpection.getINSPECTION_PERSON(); params[10]=pgAssetInSpection.getPATROL_MAN(); params[11]=pgAssetInSpection.getOPERATE_DATE(); params[12]=pgAssetInSpection.getREMARK(); params[13]=pgAssetInSpection.getBUILD_CABIN(); params[14]=pgAssetInSpection.getPROJECT(); params[15]=pgAssetInSpection.getSTART_PILE_NO(); params[16]=pgAssetInSpection.getEND_PILE_NO(); params[17]=pgAssetInSpection.getINSPECTION_PRACE(); params[18]=pgAssetInSpection.getOTHER_PATROL_MAN(); paramObjectList.add(params); } try { conn = ConnectionManager.getConnectionFromC3P0(); conn.setAutoCommit(false); QueryRunner runner = new QueryRunner(); for (Object[] params:paramObjectList) { int count = runner.update(conn, insertStr, params); if (count > 0) logger.debug("巡检数据同步成功" + pgAssetInSpectionList.toString()); else logger.error("巡检数据同步失败!"); } } catch (Exception ex) { logger.error("巡检数据同步异常", ex); } finally { try { DbUtils.commitAndClose(conn); } catch (SQLException e) { e.printStackTrace(); } } } @Override public String findLastRecordTime(){ Connection conn = null; String queryStr = "SELECT * FROM PG_ASSET_INSPECTION_RECORD ORDER BY ID DESC"; try { conn = ConnectionManager.getConnectionFromC3P0(); conn.setAutoCommit(false); QueryRunner runner = new QueryRunner(); List<PgAssetInSpection> pgAssetInSpectionList = (List<PgAssetInSpection>) runner.query(conn, queryStr, new BeanListHandler<PgAssetInSpection>(PgAssetInSpection.class)); if (null != pgAssetInSpectionList && pgAssetInSpectionList.isEmpty() == false) { logger.debug("获取最新巡检记录成功[" + pgAssetInSpectionList + "]"); return pgAssetInSpectionList.get(0).getCREATE_DATE(); } else return null; } catch (Exception ex) { logger.error("获取最新巡检记录异常", ex); } finally { try { DbUtils.commitAndClose(conn); } catch (SQLException e) { e.printStackTrace(); } } return null; } }