EquipmentConstrainHistDAOImpl.java

package com.mycim.server.constrain.dao.impl;

import com.mycim.framework.jdbc.JdbcTemplate;
import com.mycim.framework.jdbc.Page;
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.server.constrain.dao.EquipmentConstrainHistDAO;
import com.mycim.valueobject.prp.EquipmentConstrainInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Repository
public class EquipmentConstrainHistDAOImpl implements EquipmentConstrainHistDAO {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public Page qryEquipmentConstrainHist(EquipmentConstrainInfo ecs, Page page) {
        List args = new ArrayList();

        StringBuilder sb = new StringBuilder("SELECT ");
        sb.append(" ECH.PRODUCT_ID,ECH.PROCESS_ID,ECH.OPERATION_ID, ");
        sb.append(" ECH.RECIPE_ID,ECH.LOT_ID,ECH.EQUIPMENT_ID,ECH.CONSTRAIN_ACTION,ECH.CONSTRAIN_TYPE,ECH" +
                          ".CONSTRAIN_STATUS,");
        sb.append(" ECH.REMARK,ECH.CREATE_BY,ECH.MODIFY_BY,ECH.CREATE_TIME, ECH.MODIFY_TIME, ECH.ATTRIBUTE_DATA1," +
                          "ECH.ATTRIBUTE_DATA2,");
        sb.append(
                " ECH.ATTRIBUTE_DATA3, ECH.ATTRIBUTE_DATA4,ECH.ATTRIBUTE_DATA5, ECH.CONSTRAIN_SEQ, ECH" + ".ROUTE_ID," +
                        "ECH.CUSTOMER_ID,");
        sb.append(" ECH.DAILY_WAFER_COUNT, ECH.TOTAL_WAFER_COUNT, ECH.EXPIRE_DATE, ECH.STAGE_ID, TR.TRANS_ID,");
        sb.append(" TR.TRANS_START_TIMESTAMP, TR.TRANS_PERFORMED_BY ");
        sb.append(" FROM EQUIPMENT_CONSTRAIN_HISTORY ECH,TRANSACTION_LOG TR WHERE ECH.TRANS_RRN=TR.TRANS_RRN ");

        if (StringUtils.isNotBlank(ecs.getEquipmentId())) {
            sb.append(" and ECH.EQUIPMENT_ID LIKE ? ");
            args.add(ecs.getEquipmentId().replace("*", "%"));
        }

        if (StringUtils.isNotBlank(ecs.getStartDate())) {
            sb.append(" AND TR.TRANS_START_TIMESTAMP >=? ");
            args.add(DateUtils.parse(ecs.getStartDate(), "yyyy/MM/dd"));

        }

        if (StringUtils.isNotBlank(ecs.getEndDate())) {
            sb.append(" AND TR.TRANS_START_TIMESTAMP <=? ");
            args.add(DateUtils.parse(ecs.getEndDate(), "yyyy/MM/dd"));

        }

        sb.append("ORDER BY TR.TRANS_START_TIMESTAMP DESC ");
        return jdbcTemplate.queryForPage(page, sb.toString(), args.toArray(), new RowMapper<Map<String, Object>>() {

            @Override
            public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
                Map<String, Object> map = new HashMap<String, Object>();
                map.put("seq", rowNum + 1);
                map.put("productId", rs.getString("PRODUCT_ID"));
                map.put("processId", rs.getString("PROCESS_ID"));
                map.put("operationId", rs.getString("OPERATION_ID"));
                map.put("recipeId", rs.getString("RECIPE_ID"));
                map.put("lotId", rs.getString("LOT_ID"));
                map.put("eqptId", rs.getString("EQUIPMENT_ID"));
                String constrainAction = rs.getString("CONSTRAIN_ACTION");
                map.put("constrainAction", rs.getString("CONSTRAIN_ACTION"));
                map.put("constrainActionForShow",
                        StringUtils.equalsIgnoreCase(constrainAction, EquipmentConstrainInfo.REJECTSTOP) ? "RN" : "PN");

                map.put("constrainType", rs.getString("CONSTRAIN_TYPE"));
                map.put("constrainStatus", rs.getString("CONSTRAIN_STATUS"));
                map.put("remark", rs.getString("REMARK"));
                map.put("constrainSeq", rs.getString("CONSTRAIN_SEQ"));
                map.put("routeId", rs.getString("ROUTE_ID"));
                map.put("customerId", rs.getString("CUSTOMER_ID"));
                map.put("dailyWaferCount", rs.getString("DAILY_Wafer_Count"));
                map.put("totalWaferCount", rs.getString("TOTAL_Wafer_Count"));
                map.put("expireDate", rs.getString("EXPIRE_DATE"));
                map.put("stageId", rs.getString("STAGE_ID"));
                map.put("transId", rs.getString("TRANS_ID"));
                String startTime = rs.getString("TRANS_START_TIMESTAMP");
                if (startTime.indexOf(".") > 0) {
                    map.put("transStartTimestamp", startTime.substring(0, startTime.indexOf(".")));
                } else {
                    map.put("transStartTimestamp", rs.getString("TRANS_START_TIMESTAMP"));
                }
                map.put("transPerformedBy", rs.getString("TRANS_PERFORMED_BY"));

                return map;
            }
        });


    }

}