Newer
Older
pgdsc / src / com / szpg / db / dao / impl / PgConWorkOrderDaoImp.java
yxw on 5 Mar 2020 4 KB add shigong
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;
    }

}