Newer
Older
pgdsc / src / com / szpg / db / dao / impl / PgAssetInSpectionImpl.java
xiaowei on 24 Nov 2018 4 KB 增加巡检运维数据同步
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;
    }

}