PmsPmScheduleRowMapper.java

package com.mycim.server.pms.dao.mapper;

import com.mycim.framework.jdbc.mapper.RowMapper;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.time.DateUtils;
import com.mycim.valueobject.ems.*;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;

public class PmsPmScheduleRowMapper implements RowMapper<PmsSchedule> {

    @Override
    public PmsSchedule mapRow(ResultSet rs, int rowNum) throws SQLException {
        String type = rs.getString("CONTROL_TYPE");
        PmsSchedule schedule = PmsScheduleSimplyFactory.create().find(type);

        schedule.setPmRrn(rs.getLong("PM_RRN"));
        schedule.setPmId(rs.getString("PM_ID"));
        schedule.setObjectRrn(rs.getLong("OBJECT_RRN"));
        schedule.setObjectType(rs.getString("OBJECT_TYPE"));
        schedule.setObjectId(rs.getString("OBJECT_ID"));
        schedule.setChamberId("#".equals(rs.getString("CHAMBER_ID")) ? "" : rs.getString("CHAMBER_ID"));
        schedule.setPmType(rs.getString("PM_TYPE"));
        schedule.setPmItemDesc(rs.getString("PM_ITEM_DESC"));
        schedule.setCycleTime(rs.getDouble("CYCLE_TIME"));
        schedule.setDurationTime(rs.getDouble("DURATION_TIME"));
        schedule.setNextPmTime(rs.getTimestamp("NEXT_PM_TIME"));
        schedule.setToleranceTime(rs.getDouble("TOLERANCE_TIME"));
        schedule.setCycleCount(rs.getInt("CYCLE_COUNT"));
        schedule.setDurationCount(rs.getInt("DURATION_COUNT"));
        schedule.setCurrentPmCount(rs.getInt("CURRENT_PM_COUNT"));
        schedule.setToleranceCount(rs.getInt("TOLERANCE_COUNT"));
        schedule.setCycleOther(rs.getString("CYCLE_OTHER"));
        schedule.setDurationOther(rs.getString("DURATION_OTHER"));
        schedule.setCurrentPmOther(rs.getString("CURRENT_PM_OTHER"));
        schedule.setToleranceOther(rs.getString("TOLERANCE_OTHER"));
        schedule.setItemStatus(rs.getString("ITEM_STATUS"));
        schedule.setAutoEqpStatus(rs.getString("AUTO_EQP_STATUS"));
        schedule.setCreateUserRrn(rs.getLong("CREATE_USER_RRN"));
        schedule.setCreateUserId(rs.getString("PM_CREATE_USER"));
        //schedule.setCreateDate(rs.getDate("CREATE_DATE")); //数据库Date类型,直接拿是拿不到时分秒的
        schedule.setCreateDate(new Date(rs.getTimestamp("CREATE_DATE").getTime()));
        schedule.setAttributeData1(rs.getString("ATTRIBUTE_DATA_1"));
        schedule.setAttributeData2(rs.getString("ATTRIBUTE_DATA_2"));
        schedule.setAttributeData3(rs.getString("ATTRIBUTE_DATA_3"));
        schedule.setAttributeData4(rs.getString("ATTRIBUTE_DATA_4"));
        schedule.setAttributeData5(rs.getString("ATTRIBUTE_DATA_5"));
        schedule.setObjectStatus(rs.getString("OBJECT_STATUS"));
        schedule.setChamberStatus(rs.getString("CHAMBER_STATUS"));
        schedule.setChamberRrn(rs.getLong("CHAMBER_RRN"));
        schedule.setControlType(type);
        schedule.setAlarmCount(rs.getInt("ALARM_COUNT"));
        schedule.setTotalCount(rs.getInt("TOTAL_COUNT"));
        schedule.setChecklistRrn(rs.getLong("CHECKLIST_RRN"));
        schedule.setChecklistId(rs.getString("CHECKLIST_ID"));
        schedule.setEqptStatus(rs.getString("EQPT_STATUS"));
        schedule.setEquipmentLocation(rs.getString("EQUIPMENT_LOCATION"));
        schedule.setTransId(rs.getString("trans_id"));
        String userLocation = rs.getString("USER_LOCATION");
        if (StringUtils.isNotBlank(userLocation) &&
                userLocation.contains("#" + schedule.getEquipmentLocation() + "#")) {
            schedule.setInUserLocation(1);
        } else {
            schedule.setInUserLocation(0);
        }

        String[] pmDateStr = DateUtils.formatDate(schedule.getNextPmTime()).split(" ");
        schedule.setNextPmTimeStr(pmDateStr[0]);
        schedule.setSubNextPmTimeStr(pmDateStr[1].substring(0, 5));
        schedule.setStation(rs.getString("STATION_IDS"));
        schedule.setPmTimeType(rs.getString("PM_TIME_TYPE"));
        schedule.setPmLinks(rs.getString("PM_LINKS"));
        schedule.setTriggerCode(rs.getString("TRIGGER_CODE"));
        schedule.setTriggerCodeSpec(rs.getString("TRIGGER_CODE_SPEC"));
        schedule.setTriggerReading(rs.getString("TRIGGER_READING"));
        return schedule;
    }

}