ReticleQueryDAOImpl.java
package com.mycim.server.wip.dao.impl;
import com.mycim.framework.jdbc.JdbcTemplate;
import com.mycim.framework.jdbc.mapper.RowMapper;
import com.mycim.framework.utils.lang.BooleanUtils;
import com.mycim.server.wip.dao.ReticleQueryDAO;
import com.mycim.valueobject.bas.Relation;
import com.mycim.valueobject.consts.EntityEnum;
import com.mycim.valueobject.consts.LinkTypeList;
import org.springframework.stereotype.Repository;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
* @author Johnson.Wang
* @version 6.0.0
* @date 2019/9/23
**/
@Repository
public class ReticleQueryDAOImpl implements ReticleQueryDAO {
private final JdbcTemplate jdbcTemplate;
public ReticleQueryDAOImpl(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public List<Relation> getReticlesForMovein(Long reticleFamilyRrn, Long entityRrn, Boolean statusFLag) {
List args = new ArrayList();
StringBuilder sb = new StringBuilder();
sb.append("select R.FROM_RRN,R.TO_RRN,R.LINK_TYPE,R.SEQUENCE_NUMBER,nb.instance_id, ");
sb.append(" nb.instance_desc ");
sb.append(" from relation r, named_object nb, entity e,entity_status es,entity_ext x ");
sb.append(" where r.link_type = ? ");
sb.append(" and nb.instance_rrn = r.from_rrn and nb.instance_rrn = e.entity_rrn");
sb.append(" and e.entity_rrn=x.eqpt_rrn ");
sb.append(" and e.entity_rrn=es.entity_rrn ");
sb.append(" and r.to_rrn = ? ");
args.add(LinkTypeList.RETICLE_TO_RETICLEFAMILY_KEY);
args.add(reticleFamilyRrn);
if (entityRrn != null && entityRrn > 0) {
sb.append(" and e.location_rrn=? ");
args.add(entityRrn);
}
if (BooleanUtils.isTrue(statusFLag)) {
sb.append(" and es.current_status in(?,?,?)");
args.add(EntityEnum.IDLE.getValue());
args.add(EntityEnum.RELEASE.getValue());
args.add(EntityEnum.RUN.getValue());
}
return jdbcTemplate.query(sb.toString(), args.toArray(), new RowMapper<Relation>() {
@Override
public Relation mapRow(ResultSet rs, int rowNum) throws SQLException {
Relation relation = new Relation();
relation.setInstanceRrn(rs.getLong("FROM_RRN"));
relation.setFromRrn(rs.getLong("FROM_RRN"));
relation.setToRrn(rs.getLong("TO_RRN"));
relation.setInstanceId(rs.getString("instance_id"));
relation.setInstanceDesc(rs.getString("instance_desc"));
return relation;
}
});
}
}