OperationPanelLotMapper.java
package com.mycim.server.wip.dao.mapper;
import com.mycim.framework.jdbc.mapper.RowMapper;
import com.mycim.framework.utils.MiscUtils;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.collections.MapUtils;
import com.mycim.framework.utils.lang.time.DateUtils;
import com.mycim.utils.WipUtils;
import com.mycim.valueobject.LotConstants;
import com.mycim.valueobject.wip.LotStatus;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
/**
* @author Johnson.Wang
* @version 6.0.0
* @date 2019/9/20
**/
public class OperationPanelLotMapper implements RowMapper<Map<String, Object>> {
@Override
public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
Map<String, Object> lot = new HashMap<String, Object>(rs.getMetaData().getColumnCount());
lot.put("lotRrn", rs.getLong("LOT_RRN"));
lot.put("lotId", rs.getString("LOT_ID"));
lot.put("lotStatus", rs.getString("LOT_STATUS"));
lot.put("lotType", rs.getString("LOT_TYPE"));
lot.put("hotFlag", "1".equals(rs.getString("HOT_FLAG")) ? "Y" : "N");
lot.put("hotFlagCode", rs.getString("HOT_FLAG"));
lot.put("priority", rs.getString("PRIORITY"));
lot.put("hotFalg_priority", rs.getString("HOTFLAG_PRIORITY"));
lot.put("layerId", rs.getString("LAYER_ID"));
lot.put("carrierId", rs.getString("CARRIER_ID"));
lot.put("carrierRrn", rs.getLong("CARRIER_RRN"));
lot.put("qty1", rs.getString("QTY1"));
lot.put("qty2", rs.getString("QTY2"));
lot.put("dummyQty1", rs.getInt("dummy_qty1"));
lot.put("dummyFlag", rs.getString("DUMMY_FLAG"));
if (rs.getString("EQPT_RRN") == null) {
lot.put("equipmentRrn", "");
lot.put("equipmentId", "");
} else {
lot.put("equipmentRrn", rs.getLong("EQPT_RRN"));
lot.put("equipmentId", rs.getString("EQPT_ID"));
}
lot.put("operationRrn", rs.getLong("OPERATION_RRN"));
lot.put("operationVersion", rs.getString("OPERATION_VERSION"));
lot.put("operationId", rs.getString("OPERATION_ID"));
lot.put("operationDesc", rs.getString("context_step_desc"));
lot.put("contextOperationDesc", rs.getString("context_step_desc"));
lot.put("reticleRrn", rs.getLong("reticle_rrn"));
lot.put("reticleId", rs.getString("RETICLE_ID"));
lot.put("routeRrn", Long.toString((WipUtils.getRouteRrnByProcessStep(rs.getString("PROCESS_STEP_VERSION")))));
lot.put("routeId", WipUtils.getRouteIdByProcessStep(rs.getString("PROCESS_STEP_ID_VERSION")));
lot.put("productId", rs.getString("PRODUCT_ID"));
lot.put("productRrn", rs.getLong("PRODUCT_RRN"));
lot.put("processRrn", rs.getLong("PROCESS_RRN"));
lot.put("processId", rs.getString("PROCESS_ID"));
lot.put("facilityRrn", rs.getLong("FACILITY_RRN"));
long spent = DateUtils.getDistanceTime4Now(rs.getTimestamp("QUEUE_TIMESTAMP"));
lot.put("queueTimestamp", spent / 60);
lot.put("jobRrn", rs.getLong("JOB_RRN"));
lot.put("createdTimestamp",
(rs.getTimestamp("CREATED_TIMESTAMP") == null) ? 0 : rs.getTimestamp("CREATED_TIMESTAMP").getTime());
lot.put("dueDate", (rs.getTimestamp("DUE_DATE") == null) ? 0 : rs.getTimestamp("DUE_DATE").getTime());
lot.put("estimatedRemainTime", rs.getLong("ESTIMATED_REMAIN_TIME"));
// 污染等级
lot.put("pollutionLevel", rs.getString("ATTRIBUTE_DATA1"));
if (LotConstants.QTIME_DEFUALT_VALUE != rs.getDouble("Q_TIME")){
lot.put("qTime", rs.getString("Q_TIME"));
}
lot.put("timeLimit", rs.getString("TIME_REMAINING") == null ? "" : rs.getString("TIME_REMAINING"));
lot.put("productLayer", rs.getString("product_layer"));
lot.put("routeSeq", rs.getString("route_seq"));
lot.put("operationSeq", rs.getString("operation_seq"));
lot.put("processVersion", rs.getInt("PROCESS_VERSION"));
lot.put("processStepVersion", rs.getString("PROCESS_STEP_VERSION"));
lot.put("recipeLogicalRrn", rs.getLong("RECIPE_LOGICAL_RRN"));
lot.put("recipePhysicalId", rs.getString("RECIPE_PHYSICAL_ID"));
lot.put("contextRecipeId", rs.getString("contxt_recipe_id"));
String recipeId = "";
if (StringUtils.isNotBlank(MapUtils.getString(lot, "recipePhysicalId"))) {
recipeId = MapUtils.getString(lot, "recipePhysicalId");
} else if (MapUtils.getLongValue(lot, "recipeLogicalRrn") == 0 ||
StringUtils.equalsIgnoreCase(MapUtils.getString(lot, "lotStatus"), LotStatus.HOLD) ||
StringUtils.equalsIgnoreCase(MapUtils.getString(lot, "lotStatus"), LotStatus.WAITING)) {
recipeId = rs.getString("contxt_recipe_id");
} else {
recipeId = rs.getString("LOGICAL_RECIPE_ID");
}
lot.put("recipeId", recipeId);
lot.put("recipeRrn", rs.getLong("contxt_recipe_rrn"));
lot.put("recipeParam", rs.getString("RECIPE_STRING"));
lot.put("lotPlanType", rs.getString("LOT_PLAN_TYPE"));
lot.put("batchId", rs.getString("BATCH_ID"));
lot.put("contextStageId", rs.getString("context_stage_id"));
lot.put("contextOperationDesc", rs.getString("context_step_desc"));
lot.put("contextFlowSeq", rs.getString("context_flow_seq"));
lot.put("operationMaxQueueTime", rs.getString("MAX_QUEUE_TIME"));
lot.put("routeDesc", rs.getString("ROUTE_DESC"));
lot.put("operationWorkArea", rs.getString("operation_work_area"));
lot.put("piLot", rs.getString("PI_LOT"));
lot.put("wflStepPath", rs.getString("WFL_STEP_PATH"));
lot.put("recipeDocFile", rs.getString("RECIPE_DOC_FILE"));
lot.put("recipeDocFileCompulsorydisplay", MiscUtils.changeCheckBox(rs.getString("RECIPE_DOC_COMMENTS")));
lot.put("customerId", rs.getString("CUSTOMER_ID"));
lot.put("createCategory", rs.getString("CREATE_CATEGORY"));
lot.put("executionRrn", rs.getLong("EXECUTION_RRN"));
lot.put("prevOperationRrn", rs.getLong("PREV_OPERATION_RRN"));
return lot;
}
}