|
public static boolean isAllowChangeState(String projectID) {
System.out.println("projectID=====" + projectID);
int mb_count = 0;
int f_count = 0;
int mb_f_count = 0;
int d_count = 0;
//获取分期商务和分期财务的最大日期
Date date = new Date();
Date dateEnd = new Date();
String endDate = "2017-12-31";
String filter = "";
if (projectID != null && projectID.length() > 0) {
filter = "WHERE T1.FPROJECTID='" + projectID + "' AND T2.FPROJECTID='" + projectID + "'";
}
String dateSql = "SELECT MAX(t1.fEndDate) AS FENDDATE FROM V_MULTIBUSINESS_SINGLE T1, V_FINANCE_SINGLE T2 " + filter + "";
System.out.println("查询最大日期=====" + dateSql);
HashMap<String, String> map = new HashMap<String, String>();
map.put("ORACLE", dateSql);
Table dateTab = SQL.select(map, null, "/BCEG/ECON/data");
Iterator<Row> it = dateTab.iterator();
Row row = null;
if (it.hasNext()) {
row = it.next();
date = row.getDate("FENDDATE");
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
dateEnd = sdf.parse(endDate);
} catch (ParseException e) {
e.printStackTrace();
}
if (date.getTime() < dateEnd.getTime()) {
//查询指定项目的分期商务数据条目
{
String sql = "SELECT t1.fid FROM V_MULTIBUSINESS_SINGLE T1 WHERE T1.FPROJECTID=?";
Map<String, String> sqlMap = new HashMap<String, String>();
sqlMap.put(DatabaseProduct.DEFAULT.name(), sql);
sqlMap.put(DatabaseProduct.ORACLE.name(), sql);
List<Object> varList = new ArrayList<Object>();
varList.add(projectID);
Table table = SQL.select(sqlMap, varList, "/BCEG/ECON/data");
mb_count = table.size();
}
//查询指定项目的分期财务数据条目
{
String sql = "SELECT t2.fid FROM V_FINANCE_SINGLE T2 WHERE T2.FPROJECTID=?";
Map<String, String> sqlMap = new HashMap<String, String>();
sqlMap.put(DatabaseProduct.DEFAULT.name(), sql);
sqlMap.put(DatabaseProduct.ORACLE.name(), sql);
List<Object> varList = new ArrayList<Object>();
varList.add(projectID);
Table table = SQL.select(sqlMap, varList, "/BCEG/ECON/data");
f_count = table.size();
}
if ((mb_count == 0 && f_count == 0)) {
return true;
}
//查询指定项目的分期商务财务数据匹配条目
{
String sql = "SELECT t1.fid FROM V_MULTIBUSINESS_SINGLE T1,V_FINANCE_SINGLE T2 WHERE T1.FYEAR=T2.FYEAR AND T1.FPERIOD=T2.FPERIOD AND T1.FPROJECTID=? AND T2.FPROJECTID=?";
Map<String, String> sqlMap = new HashMap<String, String>();
sqlMap.put(DatabaseProduct.DEFAULT.name(), sql);
sqlMap.put(DatabaseProduct.ORACLE.name(), sql);
List<Object> varList = new ArrayList<Object>();
varList.add(projectID);
varList.add(projectID);
Table table = SQL.select(sqlMap, varList, "/BCEG/ECON/data");
mb_f_count = table.size();
}
if ((mb_count == f_count && f_count == mb_f_count)) {
return true;
} else {
return false;
}
} else {
//查询指定项目的分期商务数据条目
{
String sql = "SELECT t1.fid FROM V_MULTIBUSINESS_SINGLE T1 WHERE T1.FPROJECTID=? AND to_char(T1.FENDDATE,'yyyy-mm-dd')>='2017-12-31'";
System.out.println("查询指定项目的分期商务数据条目====" + sql);
Map<String, String> sqlMap = new HashMap<String, String>();
sqlMap.put(DatabaseProduct.DEFAULT.name(), sql);
sqlMap.put(DatabaseProduct.ORACLE.name(), sql);
List<Object> varList = new ArrayList<Object>();
varList.add(projectID);
Table table = SQL.select(sqlMap, varList, "/BCEG/ECON/data");
mb_count = table.size();
}
//查询指定项目的分期财务数据条目
{
String sql = "SELECT t2.fid FROM V_FINANCE_SINGLE T2 WHERE T2.FPROJECTID=? AND to_char(T2.FENDDATE,'yyyy-mm-dd')>='2017-12-31'";
System.out.println("查询指定项目的分期财务数据条目====" + sql);
Map<String, String> sqlMap = new HashMap<String, String>();
sqlMap.put(DatabaseProduct.DEFAULT.name(), sql);
sqlMap.put(DatabaseProduct.ORACLE.name(), sql);
List<Object> varList = new ArrayList<Object>();
varList.add(projectID);
Table table = SQL.select(sqlMap, varList, "/BCEG/ECON/data");
f_count = table.size();
}
//查询指定项目的责任状及保证金数据条目
{
String sql = "SELECT t3.fid FROM BC_INV_DutyPledge T3 LEFT JOIN ECON_Proj_MultiBusiness T4 ON T3.fProjectID = T4.FprojectID WHERE T3.FPROJECTID =? AND TO_CHAR(T4.FENDDATE, 'yyyy-mm-dd') >= '2017-12-31'";
System.out.println("查询指定项目的责任状及保证金数据条目====" + sql);
Map<String, String> sqlMap = new HashMap<String, String>();
sqlMap.put(DatabaseProduct.DEFAULT.name(), sql);
sqlMap.put(DatabaseProduct.ORACLE.name(), sql);
List<Object> varList = new ArrayList<Object>();
varList.add(projectID);
Table table = SQL.select(sqlMap, varList, "/BCEG/ECON/data");
d_count = table.size();
}
if ((mb_count == 0 && f_count == 0 && d_count == 0)) {
return true;
}
//查询指定项目的分期商务财务责任状及保证金数据匹配条目 --- 这里往上可以执行,下面的sql没有执行
{
String fYear = "";
String fPeriod = "";
String fYearSql = "SELECT MAX(t1.fyear) AS FYEAR, MAX(t1.fperiod) AS FPERIOD FROM V_MULTIBUSINESS_SINGLE T1 WHERE T1.FPROJECTID = ? AND TO_CHAR(T1.FENDDATE, 'yyyy-mm-dd') >= '2017-12-31' ";
HashMap<String, String> mapSql = new HashMap<String, String>();
mapSql.put("ORACLE", fYearSql);
List<Object> list = new ArrayList<Object>();
list.add(projectID);
Table fYearTab = SQL.select(map, list, "/BCEG/ECON/data");
Iterator<Row> itRow = fYearTab.iterator();
Row rows = null;
if (itRow.hasNext()) {
rows = itRow.next();
fYear = rows.getString("FYEAR");
fPeriod = rows.getString("FPERIOD");
}
String sql = "SELECT t1.fid FROM V_MULTIBUSINESS_SINGLE T1, V_FINANCE_SINGLE T2, BC_INV_DutyPledge t3 WHERE T1.FYEAR = '" + fYear
+ "' " + "AND T1.FPERIOD = '" + fPeriod + "' AND T1.FPROJECTID = ? AND T2.FYEAR = '" + fYear + "' AND T2.FPERIOD = '"
+ fPeriod + "' AND T2.FPROJECTID = ? " + "AND T3.FYEAR = '" + fYear + "' AND T3.FPERIOD = '" + fPeriod
+ "' AND T3.FPROJECTID = ?";
System.out.println("查询指定项目的分期商务财务责任状及保证金数据匹配条目====" + sql);
Map<String, String> sqlMap = new HashMap<String, String>();
sqlMap.put(DatabaseProduct.DEFAULT.name(), sql);
sqlMap.put(DatabaseProduct.ORACLE.name(), sql);
List<Object> varList = new ArrayList<Object>();
varList.add(projectID);
varList.add(projectID);
varList.add(projectID);
Table table = SQL.select(sqlMap, varList, "/BCEG/ECON/data");
mb_f_count = table.size();
}
if ((mb_count == f_count && f_count == mb_f_count && d_count == mb_f_count)) {
return true;
} else {
return false;
}
}
}
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150039; 提示: 执行sql: SELECT MAX(t1.fEndDate) AS FENDDATE FROM V_MULTIBUSINESS_SINGLE T1, V_FINANCE_SINGLE T2 WHERE T1.FPROJECTID='C7AF39022FAE49BDB2AF1777BDD722BB' AND T2.FPROJECTID='C7AF39022FAE49BDB2AF1777BDD722BB', binds: [C7AF39022FAE49BDB2AF1777BDD722BB]出错
at com.justep.exception.BusinessException.create(Unknown Source)
at com.justep.system.data.SQL.select(Unknown Source)
at com.justep.system.data.SQL.select(Unknown Source)
at com.viosun.common.Common.isAllowChangeState(Common.java:215)
... 26 more
Caused by: java.sql.SQLException: 无效的列索引
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.driver.OraclePreparedStatement.setStringInternal(OraclePreparedStatement.java:5265)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:8808)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:8749)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:9471)
at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:9454)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.setObject(DelegatingPreparedStatement.java:169)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.setObject(DelegatingPreparedStatement.java:169)
at com.justep.system.data.SQL.setParameters(Unknown Source)
... 29 more
|
|