CheckListItemDaoImpl.java
package com.mycim.server.pms.dao.impl;
import com.mycim.framework.jdbc.JdbcTemplate;
import com.mycim.framework.utils.MiscUtils;
import com.mycim.server.pms.dao.CheckListItemDao;
import com.mycim.valueobject.bas.TransactionLog;
import com.mycim.valueobject.consts.DataBaseNames;
import com.mycim.valueobject.ems.ChecklistItem;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
/**
* CheckListItemDaoImpl
*
* @author pinyan.song
* @version 6.0.0
* @date 2019-11-5
**/
@Repository
public class CheckListItemDaoImpl implements CheckListItemDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public List<ChecklistItem> getChecklistItems(long checklistRrn) {
String sql = " SELECT checklist_rrn, checklist_version, checklist_sequence," + " checklist_item_id, " +
"checklist_item_desc, bor_rrn," + " data_type, upper_limit, lower_limit, parameter_set_rrn, unit, bool" + " FROM " +
DataBaseNames.CHECKLIST_ITEM + " WHERE " + " checklist_rrn = " + checklistRrn + " order by " +
"checklist_sequence ";
return jdbcTemplate.query(sql, new RowMapper<ChecklistItem>() {
@Override
public ChecklistItem mapRow(ResultSet rs, int rowNum) throws SQLException {
ChecklistItem checklistItem = new ChecklistItem();
checklistItem.setChecklistRrn(rs.getLong("checklist_rrn"));
checklistItem.setChecklistVersion(rs.getInt("checklist_version"));
checklistItem.setChecklistSequence(rs.getInt("checklist_sequence"));
checklistItem.setChecklistItemId(rs.getString("checklist_item_id"));
checklistItem.setChecklistItemDesc(rs.getString("checklist_item_desc"));
checklistItem.setBorRrn(rs.getLong("bor_rrn"));
checklistItem.setDataType(rs.getString("data_type"));
checklistItem.setUpperLimit(rs.getDouble("upper_limit"));
checklistItem.setLowerLimit(rs.getDouble("lower_limit"));
checklistItem.setParameterSetRrn(rs.getLong("parameter_set_rrn"));
checklistItem.setUnit(rs.getString("unit"));
checklistItem.setBool(rs.getString("bool"));
return checklistItem;
}
});
}
@Override
public List<ChecklistItem> getChecklistItems(long entityRrn, long checklistRrn) {
String sql = " SELECT checklist_rrn, checklist_version, checklist_sequence," + " checklist_item_id, " +
"checklist_item_desc, bor_rrn," + " data_type, upper_limit, lower_limit, parameter_set_rrn, unit, bool" + " FROM " +
DataBaseNames.CHECKLIST_ITEM + " WHERE " + " checklist_rrn = " + checklistRrn + " and ENTITY_RRN = " +
entityRrn + " order by checklist_sequence ";
return jdbcTemplate.query(sql, new RowMapper<ChecklistItem>() {
@Override
public ChecklistItem mapRow(ResultSet rs, int rowNum) throws SQLException {
ChecklistItem checklistItem = new ChecklistItem();
checklistItem.setChecklistRrn(rs.getLong("checklist_rrn"));
checklistItem.setChecklistVersion(rs.getInt("checklist_version"));
checklistItem.setChecklistSequence(rs.getInt("checklist_sequence"));
checklistItem.setChecklistItemId(rs.getString("checklist_item_id"));
checklistItem.setChecklistItemDesc(rs.getString("checklist_item_desc"));
checklistItem.setBorRrn(rs.getLong("bor_rrn"));
checklistItem.setDataType(rs.getString("data_type"));
checklistItem.setUpperLimit(rs.getDouble("upper_limit"));
checklistItem.setLowerLimit(rs.getDouble("lower_limit"));
checklistItem.setParameterSetRrn(rs.getLong("parameter_set_rrn"));
checklistItem.setUnit(rs.getString("unit"));
checklistItem.setBool(rs.getString("bool"));
return checklistItem;
}
});
}
@Override
public void insertChecklistItem(ChecklistItem checklistItem, TransactionLog transactionLog) {
Object[] obj = {checklistItem.getChecklistItemId(), checklistItem.getChecklistItemDesc(),
checklistItem.getBorRrn(), checklistItem.getDataType(), checklistItem.getUpperLimit(),
checklistItem.getLowerLimit(), checklistItem.getParameterSetRrn(), checklistItem.getUnit(), checklistItem.getBool()};
String sql = "INSERT INTO " + DataBaseNames.CHECKLIST_ITEM + " (checklist_rrn, checklist_version, " +
"checklist_sequence," + " checklist_item_id, checklist_item_desc, bor_rrn," + " data_type, " +
"upper_limit, lower_limit, parameter_set_rrn, unit, bool)" + " SELECT " + checklistItem.getChecklistRrn() + "," +
checklistItem.getChecklistVersion() + "," + " NVL(MAX(checklist_sequence),0)+1," +
MiscUtils.parseSQL(obj) + " from " + DataBaseNames.CHECKLIST_ITEM + " WHERE " + " checklist_rrn = " +
checklistItem.getChecklistRrn() + " and " + " checklist_version = " +
checklistItem.getChecklistVersion();
String sqlh = "INSERT INTO " + DataBaseNames.CHECKLIST_ITEM_H + " (trans_rrn,checklist_rrn, " +
"checklist_version, checklist_sequence," + " checklist_item_id, checklist_item_desc, bor_rrn," + " " +
"data_type, upper_limit, lower_limit, parameter_set_rrn, unit, bool)" + " VALUES " + "(" +
transactionLog.getTransRrn() + "," + checklistItem.getChecklistRrn() + "," +
checklistItem.getChecklistVersion() + "," + checklistItem.getChecklistSequence() + "," +
MiscUtils.parseSQL(obj) + ")";
jdbcTemplate.execute(sql);
jdbcTemplate.execute(sqlh);
}
@Override
public void deleteChecklistItem(ChecklistItem checklistItem, TransactionLog transactionLog) {
String sql = " DELETE FROM " + DataBaseNames.CHECKLIST_ITEM + " WHERE " + " checklist_rrn = " +
checklistItem.getChecklistRrn() + " and " + " checklist_version = " +
checklistItem.getChecklistVersion() + " and " + " checklist_sequence = " +
checklistItem.getChecklistSequence();
String sqlupdatesequence =
" UPDATE " + DataBaseNames.CHECKLIST_ITEM + " SET checklist_sequence = " + "checklist_sequence - 1" +
" WHERE " + " checklist_rrn = " + checklistItem.getChecklistRrn() + " and " +
" checklist_version = " + checklistItem.getChecklistVersion() + " and " +
" checklist_sequence > " + checklistItem.getChecklistSequence();
String sqlh = "INSERT INTO " + DataBaseNames.CHECKLIST_ITEM_H + "(trans_rrn, checklist_rrn, " +
"checklist_version, checklist_sequence," + " checklist_item_id, checklist_item_desc, bor_rrn," + " " +
"data_type, upper_limit, lower_limit, parameter_set_rrn, unit, bool)" + " SELECT " + transactionLog.getTransRrn() +
", checklist_rrn, checklist_version, checklist_sequence," +
" checklist_item_id, checklist_item_desc, bor_rrn," +
" data_type, upper_limit, lower_limit, parameter_set_rrn, unit, bool" + " FROM " + DataBaseNames.CHECKLIST_ITEM +
" WHERE " + " checklist_rrn = " + checklistItem.getChecklistRrn() + " and " + " checklist_version = " +
checklistItem.getChecklistVersion() + " and" + " checklist_sequence = " +
checklistItem.getChecklistSequence();
jdbcTemplate.execute(sqlh);
jdbcTemplate.execute(sql);
jdbcTemplate.execute(sqlupdatesequence);
}
@Override
public void updateChecklistItem(ChecklistItem checklistItem, TransactionLog transactionLog) {
Object[] obj = {checklistItem.getChecklistItemId(), checklistItem.getChecklistItemDesc(),
checklistItem.getBorRrn(), checklistItem.getDataType(), checklistItem.getUpperLimit(),
checklistItem.getLowerLimit(), checklistItem.getParameterSetRrn(), checklistItem.getUnit(), checklistItem.getBool()};
String sql = " UPDATE " + DataBaseNames.CHECKLIST_ITEM + " SET " + " checklist_item_id =" +
MiscUtils.parseSQL(checklistItem.getChecklistItemId()) + "," + " checklist_item_desc = " +
MiscUtils.parseSQL(checklistItem.getChecklistItemDesc()) + "," + " bor_rrn = " +
checklistItem.getBorRrn() + "," + " " + "data_type = " +
MiscUtils.parseSQL(checklistItem.getDataType()) + "," + " upper_limit = " +
checklistItem.getUpperLimit() + "," + " " + "lower_limit = " + checklistItem.getLowerLimit() + "," +
" parameter_set_rrn = " + checklistItem.getParameterSetRrn() + ",unit = " +
MiscUtils.parseSQL(checklistItem.getUnit())+ ", bool = " +
MiscUtils.parseSQL(checklistItem.getBool())+ " WHERE " + " checklist_rrn = " +
checklistItem.getChecklistRrn() + " and " + " checklist_version = " +
checklistItem.getChecklistVersion() + " and" + " checklist_sequence = " +
checklistItem.getChecklistSequence();
String sqlh = "INSERT INTO " + DataBaseNames.CHECKLIST_ITEM_H + " (trans_rrn,checklist_rrn, " +
"checklist_version, checklist_sequence," + " checklist_item_id, checklist_item_desc, bor_rrn," + " " +
"data_type, upper_limit, lower_limit, parameter_set_rrn, unit, bool)" + " VALUES " + "(" +
transactionLog.getTransRrn() + "," + checklistItem.getChecklistRrn() + "," +
checklistItem.getChecklistVersion() + "," + checklistItem.getChecklistSequence() + "," +
MiscUtils.parseSQL(obj) + ")";
jdbcTemplate.execute(sql);
jdbcTemplate.execute(sqlh);
}
@Override
public void changeChecklistItemSeq(long checklistRrn, long aSeq, long bSeq) {
Long maxSeq = 9999999L;
String sql = "update checklist_item set checklist_sequence = ? where checklist_rrn=?" + " and " +
"checklist_sequence = ? ";
jdbcTemplate.update(sql, maxSeq, checklistRrn, aSeq);
jdbcTemplate.update(sql, aSeq, checklistRrn, bSeq);
jdbcTemplate.update(sql, bSeq, checklistRrn, maxSeq);
}
@Override
public List<ChecklistItem> getChecklistJobItems(long checklistJobRrn, Long checklistRrn) {
String sql = " SELECT checklist_rrn, checklist_version, checklist_sequence," + " checklist_item_id, " +
"checklist_item_desc, bor_rrn," + " data_type, upper_limit, lower_limit, parameter_set_rrn, unit, bool" + " FROM " +
"CHECKLIST_JOB_ITEM WHERE checklist_job_rrn=" + checklistJobRrn + " and checklist_rrn =" +
checklistRrn + " order by checklist_sequence";
return jdbcTemplate.query(sql, (resultSet, rowNum) -> {
ChecklistItem checklistItem = new ChecklistItem();
checklistItem.setChecklistRrn(resultSet.getLong("checklist_rrn"));
checklistItem.setChecklistVersion(resultSet.getInt("checklist_version"));
checklistItem.setChecklistSequence(resultSet.getInt("checklist_sequence"));
checklistItem.setChecklistItemId(resultSet.getString("checklist_item_id"));
checklistItem.setChecklistItemDesc(resultSet.getString("checklist_item_desc"));
checklistItem.setBorRrn(resultSet.getLong("bor_rrn"));
checklistItem.setDataType(resultSet.getString("data_type"));
checklistItem.setUpperLimit(resultSet.getDouble("upper_limit"));
checklistItem.setLowerLimit(resultSet.getDouble("lower_limit"));
checklistItem.setParameterSetRrn(resultSet.getLong("parameter_set_rrn"));
checklistItem.setUnit(resultSet.getString("unit"));
checklistItem.setBool(resultSet.getString("bool"));
return checklistItem;
});
}
}