ArgRecipeQueryDAOImpl.java
package com.mycim.server.wip.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.collections.MapUtils;
import com.mycim.framework.utils.lang.time.DateUtils;
import com.mycim.server.wip.dao.ArgRecipeQueryDAO;
import com.mycim.valueobject.prp.ArgRecipeInfo;
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;
/**
* @author finatice.yang
* @date 2021/7/2
**/
@Repository
public class ArgRecipeQueryDAOImpl implements ArgRecipeQueryDAO {
@Autowired
JdbcTemplate jdbcTemplate;
@Override
public List<ArgRecipeInfo> getArgInfoList(ArgRecipeInfo condition) {
String sql = "SELECT ARG.EQPT_RRN,ARG.EQPT_ID,ARG.FLOW_RECIPE_ID,ARG.SEQUENCE," +
"ARG.WAFER_COUNT_LOWER,ARG.WAFER_COUNT_UPPER,ARG.ARG_RECIPE_ID" +
" FROM ARG_RECIPE ARG WHERE 1=1 ";
List<Object> argList = new ArrayList<Object>();
if (StringUtils.isNotBlank(condition.getEqptId())) {
sql += " AND ARG.EQPT_ID LIKE ? ";
argList.add(condition.getEqptId());
}
if (StringUtils.isNotBlank(condition.getFlowRecipeId())) {
sql += " AND ARG.FLOW_RECIPE_ID LIKE ? ";
argList.add(condition.getFlowRecipeId());
}
if (condition.getEqptRrn() != null) {
sql += " AND ARG.EQPT_RRN = ? ";
argList.add(condition.getEqptRrn());
}
List<ArgRecipeInfo> list = jdbcTemplate.query(sql, argList.toArray(), new RowMapper<ArgRecipeInfo>() {
@Override
public ArgRecipeInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
ArgRecipeInfo argInfo = new ArgRecipeInfo();
argInfo.setEqptId(rs.getString("EQPT_ID"));
argInfo.setEqptRrn(rs.getLong("EQPT_RRN"));
argInfo.setFlowRecipeId(rs.getString("FLOW_RECIPE_ID"));
argInfo.setSequence(rs.getLong("SEQUENCE"));
argInfo.setLowerWaferCount(
StringUtils.isBlank(rs.getString("WAFER_COUNT_LOWER")) ? null : rs.getInt("WAFER_COUNT_LOWER"));
argInfo.setUpperWaferCount(
StringUtils.isBlank(rs.getString("WAFER_COUNT_UPPER")) ? null : rs.getInt("WAFER_COUNT_UPPER"));
argInfo.setArgRecipeId(rs.getString("ARG_RECIPE_ID"));
String waferCountRange = "QTY";
if (argInfo.getLowerWaferCount() != null) {
waferCountRange = argInfo.getLowerWaferCount() + "<" + waferCountRange;
}
if (argInfo.getUpperWaferCount() != null) {
waferCountRange = waferCountRange + "<=" + argInfo.getUpperWaferCount();
}
argInfo.setWaferCountRange(waferCountRange);
return argInfo;
}
});
return list;
}
@Override
public Page getArgInfoListHistory(ArgRecipeInfo condition, Page page) {
String sql = "SELECT TRANS_RRN,TRANS_ID,TRANS_TIME,TRANS_USER_ID,EQPT_ID,EQPT_RRN," +
"FLOW_RECIPE_ID,SEQUENCE,WAFER_COUNT_LOWER,WAFER_COUNT_UPPER,ARG_RECIPE_ID FROM ARG_RECIPE_H " +
"WHERE 1=1";
List<Object> argList = new ArrayList<Object>();
if (StringUtils.isNotBlank(condition.getEqptId())) {
sql += " AND EQPT_ID LIKE ?";
argList.add(condition.getEqptId());
}
if (StringUtils.isNotBlank(condition.getFlowRecipeId())) {
sql += " AND FLOW_RECIPE_ID LIKE ?";
argList.add(condition.getFlowRecipeId());
}
sql += " ORDER BY TRANS_TIME DESC";
page = jdbcTemplate.queryForPage(page, sql, argList.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("eqptId", rs.getString("EQPT_ID"));
map.put("flowRecipeId", rs.getString("FLOW_RECIPE_ID"));
map.put("transId", rs.getString("TRANS_ID"));
Integer lowerWaferCount = StringUtils.isBlank(rs.getString("WAFER_COUNT_LOWER")) ? null : rs
.getInt("WAFER_COUNT_LOWER");
Integer upperWaferCount = StringUtils.isBlank(rs.getString("WAFER_COUNT_UPPER")) ? null : rs
.getInt("WAFER_COUNT_UPPER");
map.put("argRecipeId", rs.getString("ARG_RECIPE_ID"));
String waferCountRange = "QTY";
if (lowerWaferCount != null) {
waferCountRange = lowerWaferCount + "<" + waferCountRange;
}
if (upperWaferCount != null) {
waferCountRange = waferCountRange + "<=" + upperWaferCount;
}
map.put("waferCountRange", waferCountRange);
map.put("transEndTimestamp", DateUtils.formatDate(rs.getTimestamp("TRANS_TIME")));
map.put("transPerformedBy", rs.getString("TRANS_USER_ID"));
return map;
}
});
return page;
}
}