package com.szpg.db.dao.impl; import com.szpg.db.dao.PgConWorkOrderDao; import com.szpg.db.data.PgAssetInSpectionPlan; import com.szpg.db.data.PgConWorkOrder; import com.szpg.db.util.ConnectionManager; import freemarker.template.utility.DateUtil; 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.Date; import java.util.List; public class PgConWorkOrderDaoImp implements PgConWorkOrderDao { private org.apache.log4j.Logger logger = Logger.getLogger(this.getClass().getName()); @Override public void addConWorkerOrder(List<PgConWorkOrder> pgConWorkOrderList){ Connection conn = null; String insertStr = "INSERT INTO PG_CON_WORK_ORDER " + "(KEY_ID, PLAN_NO, TASK_COMPANY,TASK_ID,SUPERVISOR,SUPERVISOR_PHONE,APPLCIANT,APPLCIANT_PHONE,TASK_NAME," + "TASK_PLACE,TASK_DATE,TASK_DATE_END,PROJECT,TASK_CONTENT,TASK_SAFETY_MEASURES," + "TASK_PEOPLE_NUM,TASK_INFLUENCE,COMPLETION_OF_THE_SITUATION,REMARKS,BUILD_STATE,LOG_DATE)" + "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; List<Object[]> paramObjectList=new ArrayList<>(); for(PgConWorkOrder pgConWorkOrder:pgConWorkOrderList){ Object[] params = new Object[34]; params[0] = pgConWorkOrder.getKEY_ID(); params[1] = pgConWorkOrder.getPLAN_NO(); params[2] = pgConWorkOrder.getTASK_COMPANY(); params[3] = pgConWorkOrder.getTASK_ID(); params[4] = pgConWorkOrder.getSUPERVISOR(); params[5] = pgConWorkOrder.getSUPERVISOR_PHONE(); params[6] = pgConWorkOrder.getAPPLCIANT(); params[7] = pgConWorkOrder.getAPPLCIANT_PHONE(); params[8] = pgConWorkOrder.getTASK_NAME(); params[9] = pgConWorkOrder.getTASK_PLACE(); params[10] = pgConWorkOrder.getTASK_DATE(); params[11] = pgConWorkOrder.getTASK_DATE_END(); params[12] = pgConWorkOrder.getPROJECT(); params[13] = pgConWorkOrder.getTASK_CONTENT(); params[14] = pgConWorkOrder.getTASK_SAFETY_MEASURES(); params[15] = pgConWorkOrder.getTASK_PEOPLE_NUM(); params[16] = pgConWorkOrder.getTASK_INFLUENCE(); params[17] = pgConWorkOrder.getCOMPLETION_OF_THE_SITUATION(); params[18] = pgConWorkOrder.getREMARKS(); params[19] = pgConWorkOrder.getBUILD_STATE(); params[19] = new Date(); 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.info("施工作业数据同步成功" + pgConWorkOrderList.toString()); else logger.info("施工作业数据同步失败!"); } } catch (Exception ex) { logger.info("施工作业数据同步异常", ex); } finally { try { DbUtils.commitAndClose(conn); } catch (SQLException e) { e.printStackTrace(); } } } @Override public String findLastRecordTime(){ Connection conn = null; String queryStr = "SELECT * FROM PG_CON_WORK_ORDER ORDER BY LOG_DATE DESC"; try { conn = ConnectionManager.getConnectionFromC3P0(); conn.setAutoCommit(false); QueryRunner runner = new QueryRunner(); List<PgConWorkOrder> pgConWorkOrderList = (List<PgConWorkOrder>) runner.query(conn, queryStr, new BeanListHandler<PgConWorkOrder>(PgConWorkOrder.class)); if (null != pgConWorkOrderList && pgConWorkOrderList.isEmpty() == false) { logger.debug("获取最新施工记录成功[" + pgConWorkOrderList + "]"); return pgConWorkOrderList.get(0).getLOG_DATE(); } else return null; } catch (Exception ex) { logger.error("获取最新施工记录异常", ex); } finally { try { DbUtils.commitAndClose(conn); } catch (SQLException e) { e.printStackTrace(); } } return null; } }