ResequenceContextValueManagerDAOImpl.java
package com.mycim.server.ctx.exec.dao.impl;
import com.mycim.framework.jdbc.JdbcTemplate;
import com.mycim.framework.jdbc.mapper.RowMapper;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.server.ctx.exec.dao.ResequenceContextValueManagerDAO;
import com.mycim.valueobject.prp.ResequenceContextValue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Johnson.Wang
* @version 6.0.0
* @date 2019/9/1
**/
@Repository
public class ResequenceContextValueManagerDAOImpl implements ResequenceContextValueManagerDAO {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public List<Map<String, Object>> flowSeqList(Long contextRrn, Long processRrn, Integer processVersion,
Long routeRrn, Long operationRrn, String status) {
String sql = "SELECT RESULT_VALUE1,RESULT_VALUE2,status,CONTEXT_KEY3,CONTEXT_KEY4 from " + "CONTEXT_VALUE " +
"WHERE CONTEXT_RRN=? AND CONTEXT_KEY1=?";
if (processVersion != null && processVersion != 0) {
sql += " and CONTEXT_KEY2='" + processVersion + "'";
}
if (routeRrn != null && routeRrn != 0) {
sql += " and CONTEXT_KEY3='" + routeRrn + "'";
}
if (operationRrn != null && operationRrn != 0) {
sql += " and CONTEXT_KEY4='" + operationRrn + "'";
}
if (StringUtils.isNotBlank(status)) {
sql += " and status='" + status + "'";
}
String processRrnStr = processRrn == null ? " " : processRrn.toString();
return jdbcTemplate
.query(sql, new Object[]{contextRrn, processRrnStr}, (RowMapper<Map<String, Object>>) (rs, rowNum) -> {
Map<String, Object> m = new HashMap<>(5);
m.put("flowSeq", rs.getString("RESULT_VALUE1"));
m.put("reworkFlag", rs.getString("RESULT_VALUE2"));
m.put("flowSeqStatus", rs.getString("status"));
m.put("routeRrn", rs.getString("CONTEXT_KEY3"));
m.put("operationRrn", rs.getString("CONTEXT_KEY4"));
return m;
});
}
@Override
public boolean isActiveFlowSeqForLastVersion(Long contextRrn, Long processRrn, Integer processVersion,
Long routeRrn, Long operationRrn, String flowSeq) {
String sql = "SELECT COUNT(context_rrn) FROM CONTEXT_VALUE WHERE context_rrn=? AND CONTEXT_KEY1 =? AND " +
"context_key2=? " + " AND context_key3=? AND context_key4=? AND RESULT_VALUE1=? AND status='ACTIVE'";
Object[] args = new Object[]{contextRrn, StringUtils.toString(processRrn), StringUtils.toString(processVersion),
StringUtils.toString(routeRrn), StringUtils.toString(operationRrn), flowSeq};
Long conut = jdbcTemplate.queryForObjectWithNull(sql, args, Long.class);
return conut != null && conut > 0 ? true : false;
}
@Override
public String getFlowSeq(ResequenceContextValue ctx) {
String sql = "SELECT RESULT_VALUE1 FROM CONTEXT_VALUE WHERE CONTEXT_RRN=? " +
" AND CONTEXT_KEY1=? AND CONTEXT_KEY2=? AND CONTEXT_KEY3=? AND CONTEXT_KEY4=?";
return jdbcTemplate.queryForObjectWithNull(sql, new Object[]{ctx.getContextRrn(), ctx.getContextKey1(),
ctx.getContextKey2(), ctx.getContextKey3(),
ctx.getContextKey4()}, String.class);
}
}