ReticleFamilyDAOImpl.java
package com.mycim.server.reticle.dao.impl;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.jdbc.JdbcTemplate;
import com.mycim.server.reticle.dao.ReticleFamilyDAO;
import com.mycim.valueobject.ObjectList;
import com.mycim.valueobject.bas.TransactionLog;
import com.mycim.valueobject.consts.DataBaseNames;
import com.mycim.valueobject.consts.LinkTypeList;
import com.mycim.valueobject.ems.ReticleFamily;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class ReticleFamilyDAOImpl implements ReticleFamilyDAO {
@Autowired
JdbcTemplate jdbcTemplate;
@Override
public String getReticleFamilyStatus(String id) {
String sql = "SELECT instance_status FROM " + DataBaseNames.NAMEDOBJECT + " WHERE object = '" +
ObjectList.RETICLEFAMILY_KEY + "' and instance_id ='" + id + "'";
return jdbcTemplate.queryForObjectWithNull(sql, String.class);
}
@Override
public void deleteReticleFamily(long groupRrn) {
String sql = "delete from relation where " + " link_type='" + LinkTypeList.RETICLE_TO_RETICLEFAMILY_KEY + "' " +
" and to_rrn=" + groupRrn;
jdbcTemplate.update(sql);
}
@Override
public void deleteReticleFamily(ReticleFamily reticleFamily) {
String sql = "DELETE FROM " + DataBaseNames.RETICLE_FAMILY + " WHERE SYS_RRN=? ";
jdbcTemplate.update(sql, reticleFamily.getInstanceRrn());
}
@Override
public void updateReticleFamily(ReticleFamily reticleFamily) {
String updateSql = "UPDATE " + DataBaseNames.RETICLE_FAMILY + " SET DESCRIPTION=?,OBJ_STATUS=?," +
"UPDATE_USER_RRN=?,UPDATE_TIME=? WHERE SYS_RRN=?";
jdbcTemplate.update(updateSql, reticleFamily.getInstanceDesc(), reticleFamily.getInstanceStatus(),
reticleFamily.getLastUpdateUserRrn(), reticleFamily.getLastUpdateTimestamp(),
reticleFamily.getInstanceRrn());
}
@Override
public long isProductLay4ReticleFamily(long reticleFamilyRrn) {
String sql = "SELECT count(*) seq FROM " + DataBaseNames.PRODUCT_LAYER_MASK + " WHERE reticle_family_rrn =?";
return jdbcTemplate.queryForObject(sql, new Object[]{reticleFamilyRrn}, long.class);
}
@Override
public long isProductLay(long entityRrn) {
String sql = "SELECT count(*) seq FROM " + DataBaseNames.PRODUCT_LAYER_MASK + " WHERE reticle_family_rrn in (" +
" " + " select r.to_rrn from relation r where r.link_type = '" +
LinkTypeList.RETICLE_TO_RETICLEFAMILY_KEY + "'" + " and r.from_rrn = ? )";
return jdbcTemplate.queryForObject(sql, new Object[]{entityRrn}, long.class);
}
@Override
public void insertReticleFamily(ReticleFamily rf) {
String sql = "INSERT INTO " + DataBaseNames.RETICLE_FAMILY + " (" + "SYS_RRN,RETICLE_FAMILY_ID,FACILITY_RRN," +
"DESCRIPTION,OBJ_SPACE," + "OBJ_TYPE,OBJ_SUBTYPE,OBJ_STATUS,OBJ_CURRENT_VERSION,OBJ_ACTIVE_VERSION," +
"CREATE_TIME,UPDATE_TIME,CREATE_USER_RRN,UPDATE_USER_RRN,LOCK_VERSION) " +
"VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
jdbcTemplate.update(sql, rf.getInstanceRrn(), rf.getInstanceId(), LocalContext.getFacilityRrn(),
rf.getInstanceDesc(), rf.getNamedSpace(), rf.getObjectType(), rf.getObjectSubtype(),
rf.getInstanceStatus(), rf.getCurrentVersion(), rf.getActiveVersion(),
rf.getCreatedTimestamp(), rf.getCreatedTimestamp(), rf.getCreatedUserRrn(),
rf.getLastUpdateUserRrn(), rf.getLockVersion());
}
@Override
public void insertReticleFamilyHistory(ReticleFamily rf, TransactionLog tr) {
String sql = "INSERT INTO " + DataBaseNames.RETICLE_FAMILY_H + " (" + "TRANS_RRN,TRANS_ID,SYS_RRN," +
"RETICLE_FAMILY_ID,FACILITY_RRN,DESCRIPTION,OBJ_SPACE," + "OBJ_TYPE,OBJ_SUBTYPE,OBJ_STATUS," +
"OBJ_CURRENT_VERSION,OBJ_ACTIVE_VERSION,TRANS_USER_RRN,TRANS_TIME) " + "SELECT ?,?,SYS_RRN," +
"RETICLE_FAMILY_ID,FACILITY_RRN,DESCRIPTION,OBJ_SPACE,OBJ_TYPE," + "OBJ_SUBTYPE,OBJ_STATUS," +
"OBJ_CURRENT_VERSION,OBJ_ACTIVE_VERSION,?,?" + " FROM " + DataBaseNames.RETICLE_FAMILY + " WHERE " +
"SYS_RRN = ?";
jdbcTemplate
.update(sql, tr.getTransRrn(), tr.getTransId(), rf.getLastUpdateUserRrn(), tr.getTransStartTimestamp(),
rf.getInstanceRrn());
}
}