|
|
@@ -25,6 +25,56 @@ public class ScreenUtil {
|
|
|
@Autowired
|
|
|
ObjectMapper objectMapper;
|
|
|
|
|
|
+ public String getNotInItems(String columnType, String type, String value){
|
|
|
+ String[] values = value.split(",");
|
|
|
+ String itemsStr = "(";
|
|
|
+ if ("time".equals(columnType)) {
|
|
|
+ if("halfYear".equals(type)) {
|
|
|
+ for(int i = 0; i< values.length; i++){
|
|
|
+ String [][] arr = new String [1][6];
|
|
|
+ String halfYear = values[i].substring(0,values[i].indexOf("-"));
|
|
|
+ if(values[i].contains("H1")) {
|
|
|
+ for (int j = 0; j < 6; j++) {
|
|
|
+ arr[0][j] = "'"+halfYear+"-0"+ (j+1) +"'";
|
|
|
+ }
|
|
|
+ }else if(values[i].contains("H2")){
|
|
|
+ for (int j = 7; j <= 12; j++) {
|
|
|
+ arr[0][j-7] = "'"+halfYear+ "-"+(j<10?"0"+j:j) +"'";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(int x=0; x<arr.length; x++) {
|
|
|
+ for(int y=0; y<arr[x].length; y++) {
|
|
|
+ itemsStr += arr[x][y]+",";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if("quarter".equals(type)) {
|
|
|
+ // 2009-2,2009-3,2009-4,2010-1,2010-2
|
|
|
+ for (int i = 0; i < values.length; i++) {
|
|
|
+ itemsStr+="'"+values[i]+"',";
|
|
|
+ }
|
|
|
+ } else if("month".equals(type)){
|
|
|
+ for (int i = 0; i < values.length; i++) {
|
|
|
+ itemsStr+="'"+values[i]+"',";
|
|
|
+ }
|
|
|
+ } else if("week".equals(type)){
|
|
|
+ for (int i = 0; i < values.length; i++) {
|
|
|
+ itemsStr+="'"+values[i]+"',";
|
|
|
+ }
|
|
|
+ } else if("year".equals(type)){
|
|
|
+ for (int i = 0; i < values.length; i++) {
|
|
|
+ itemsStr+="'"+values[i]+"',";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (int i = 0; i < values.length; i++) {
|
|
|
+ itemsStr+="'"+values[i]+"',";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ itemsStr = itemsStr.substring(0, itemsStr.length() - 1)+ ")";
|
|
|
+ return itemsStr;
|
|
|
+ }
|
|
|
+
|
|
|
public ScreenStr screensUtil(List<Screen> screenList, String xColumn, String xColumnType) {
|
|
|
//返回值
|
|
|
ScreenStr screenStr = new ScreenStr();
|
|
|
@@ -49,10 +99,17 @@ public class ScreenUtil {
|
|
|
ret = ret + " and (" + columnName + " is null or " + columnName + " = '' )";
|
|
|
}else if( "isNotNull".equals(symbol) ){//字段值不为null
|
|
|
ret = ret + " and (" + columnName + " is not null or " + columnName + " = '' )";
|
|
|
- }else if (columnType != "time" && !("time".equals(columnType))) {
|
|
|
+ }else if("notIn".equals(symbol) || "in".equals(symbol)){
|
|
|
+ symbol = "notIn".equals(symbol) ? "not in" : "in";
|
|
|
+ value = getNotInItems(columnType, type, value);
|
|
|
+ String symbVal = getTimeSymbAndVal(symbol, value);
|
|
|
+ String column = getTimeColumn(columnName, nowType);
|
|
|
+ ret = ret + " and " + column + " " + symbVal;
|
|
|
+
|
|
|
+ }else if (!("time".equals(columnType))) {
|
|
|
String symbVal = getSymbAndVal(symbol, value, columnType);
|
|
|
ret = ret + " and " + columnName + " " + symbVal;
|
|
|
- }else if (columnType == "time" || "time".equals(columnType)) {
|
|
|
+ }else if ("time".equals(columnType)) {
|
|
|
String symbVal = getTimeSymbAndVal(symbol, value);
|
|
|
String column = getTimeColumn(columnName, nowType);
|
|
|
ret = ret + " and " + column + " " + symbVal;
|
|
|
@@ -117,6 +174,8 @@ public class ScreenUtil {
|
|
|
return "to_char(" + columnName + ", 'yyyy-Q')";
|
|
|
} else if ("week".equals(xColumnType)) {
|
|
|
return "to_char(" + columnName + ", 'yyyy-ww')";
|
|
|
+ } else if("halfYear".equals(xColumnType)) {
|
|
|
+ return "to_char(" + columnName + ", 'yyyy-mm')";
|
|
|
} else {
|
|
|
return "to_char(" + columnName + ", 'yyyy-mm-dd')";
|
|
|
}
|
|
|
@@ -142,7 +201,11 @@ public class ScreenUtil {
|
|
|
tar = symbol + " '" + values + "'";
|
|
|
}
|
|
|
} else {
|
|
|
- tar = symbol + " '" + values + "'";
|
|
|
+ if("not in".equals(symbol) || "in".equals(symbol)){
|
|
|
+ tar = symbol + " " + values;
|
|
|
+ }else {
|
|
|
+ tar = symbol + " '" + values + "'";
|
|
|
+ }
|
|
|
}
|
|
|
return tar;
|
|
|
}
|