|
|
@@ -1707,7 +1707,6 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
|
|
|
throw new MyException("主键不存在");
|
|
|
}
|
|
|
|
|
|
-
|
|
|
List<net.sf.jsqlparser.schema.Column> jsqlColumn = new ArrayList<>();
|
|
|
for (String field : fieldsList) {
|
|
|
jsqlColumn.add(new net.sf.jsqlparser.schema.Column(field));
|
|
|
@@ -1740,56 +1739,70 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
|
|
|
String endTime = MapUtil.get(params, fieldName + GlobalConstant.END_TIME_SUFFIX, String.class);
|
|
|
|
|
|
//如果全都没有数据 则跳过
|
|
|
- if (startTime == null && endTime == null) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- Expression startRightExp = null;
|
|
|
- Expression endRightExp = null;
|
|
|
- Column queryColumn = columns.stream().filter(c -> StrUtil.equalsIgnoreCase(c.getName(), fieldName)).findFirst().get();
|
|
|
- JdbcType type = queryColumn.getTypeEnum();
|
|
|
- if (type == JdbcType.TIME) {
|
|
|
- if (StrUtil.isNotEmpty(startTime)) startRightExp = new StringValue(startTime);
|
|
|
- if (StrUtil.isNotEmpty(endTime)) endRightExp = new StringValue(endTime);
|
|
|
- } else if (type == JdbcType.DATE || type == JdbcType.TIMESTAMP) {
|
|
|
- if (StrUtil.isNotEmpty(startTime))
|
|
|
- startRightExp = new TimestampValue().withValue(Timestamp.valueOf(LocalDateTimeUtil.parseDateByLength(startTime)));
|
|
|
- if (StrUtil.isNotEmpty(endTime))
|
|
|
- endRightExp = new TimestampValue().withValue(Timestamp.valueOf(LocalDateTimeUtil.parseDateByLength(endTime)));
|
|
|
- } else if (StrUtil.equalsIgnoreCase(queryColumn.getTypeName(), OracleFieldsType.TIME.getType())) {
|
|
|
- // oracle时间字段处理
|
|
|
- if (StrUtil.isNotEmpty(startTime))
|
|
|
- startRightExp = new StringValue(StringPool.ZERO + StringPool.SPACE + startTime);
|
|
|
- if (StrUtil.isNotEmpty(endTime))
|
|
|
- endRightExp = new StringValue(StringPool.ZERO + StringPool.SPACE + endTime);
|
|
|
- }
|
|
|
- if (startTime != null) {
|
|
|
- GreaterThanEquals geq = new GreaterThanEquals(); // ">="
|
|
|
- geq.setLeftExpression(new net.sf.jsqlparser.schema.Column(fieldName));
|
|
|
- geq.setRightExpression(startRightExp == null ? new StringValue(startTime) : startRightExp);
|
|
|
+ if (StringUtils.isNotEmpty(startTime) || StringUtils.isNotEmpty(endTime)) {
|
|
|
+ Expression startRightExp = null;
|
|
|
+ Expression endRightExp = null;
|
|
|
+ Column queryColumn = columns.stream().filter(c -> StrUtil.equalsIgnoreCase(c.getName(), fieldName)).findFirst().get();
|
|
|
+ JdbcType type = queryColumn.getTypeEnum();
|
|
|
+ if (type == JdbcType.TIME) {
|
|
|
+ if (StrUtil.isNotEmpty(startTime)) startRightExp = new StringValue(startTime);
|
|
|
+ if (StrUtil.isNotEmpty(endTime)) endRightExp = new StringValue(endTime);
|
|
|
+ } else if (type == JdbcType.DATE || type == JdbcType.TIMESTAMP) {
|
|
|
+ if (StrUtil.isNotEmpty(startTime))
|
|
|
+ startRightExp = new TimestampValue().withValue(Timestamp.valueOf(LocalDateTimeUtil.parseDateByLength(startTime)));
|
|
|
+ if (StrUtil.isNotEmpty(endTime))
|
|
|
+ endRightExp = new TimestampValue().withValue(Timestamp.valueOf(LocalDateTimeUtil.parseDateByLength(endTime)));
|
|
|
+ } else if (StrUtil.equalsIgnoreCase(queryColumn.getTypeName(), OracleFieldsType.TIME.getType())) {
|
|
|
+ // oracle时间字段处理
|
|
|
+ if (StrUtil.isNotEmpty(startTime))
|
|
|
+ startRightExp = new StringValue(StringPool.ZERO + StringPool.SPACE + startTime);
|
|
|
+ if (StrUtil.isNotEmpty(endTime))
|
|
|
+ endRightExp = new StringValue(StringPool.ZERO + StringPool.SPACE + endTime);
|
|
|
+ }
|
|
|
+ if (startTime != null) {
|
|
|
+ GreaterThanEquals geq = new GreaterThanEquals(); // ">="
|
|
|
+ geq.setLeftExpression(new net.sf.jsqlparser.schema.Column(fieldName));
|
|
|
+ geq.setRightExpression(startRightExp == null ? new StringValue(startTime) : startRightExp);
|
|
|
|
|
|
- //如果是第一个条件 直接赋值
|
|
|
- if (ObjectUtil.isNull(queryExpression)) {
|
|
|
- queryExpression = geq;
|
|
|
- } else {
|
|
|
- queryExpression = new AndExpression(queryExpression, geq);
|
|
|
+ //如果是第一个条件 直接赋值
|
|
|
+ if (ObjectUtil.isNull(queryExpression)) {
|
|
|
+ queryExpression = geq;
|
|
|
+ } else {
|
|
|
+ queryExpression = new AndExpression(queryExpression, geq);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- if (endTime != null) {
|
|
|
- MinorThanEquals leq = new MinorThanEquals();// "<="
|
|
|
- leq.setLeftExpression(new net.sf.jsqlparser.schema.Column(fieldName));
|
|
|
- leq.setRightExpression(endRightExp == null ? new StringValue(endTime) : endRightExp);
|
|
|
+ if (endTime != null) {
|
|
|
+ MinorThanEquals leq = new MinorThanEquals();// "<="
|
|
|
+ leq.setLeftExpression(new net.sf.jsqlparser.schema.Column(fieldName));
|
|
|
+ leq.setRightExpression(endRightExp == null ? new StringValue(endTime) : endRightExp);
|
|
|
+
|
|
|
+ //如果是第一个条件 直接赋值
|
|
|
+ if (ObjectUtil.isNull(queryExpression)) {
|
|
|
+ queryExpression = leq;
|
|
|
+ } else {
|
|
|
+ queryExpression = new AndExpression(queryExpression, leq);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ Object value = MapUtil.get(params, fieldName, Object.class);
|
|
|
+ //如果没有数据 则跳过
|
|
|
+ if (value == null || StrUtil.isEmpty(String.valueOf(value))) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ EqualsTo eq = new EqualsTo();
|
|
|
+ eq.setLeftExpression(new net.sf.jsqlparser.schema.Column(fieldName));
|
|
|
+ eq.setRightExpression(new StringValue(String.valueOf(value)));
|
|
|
|
|
|
//如果是第一个条件 直接赋值
|
|
|
if (ObjectUtil.isNull(queryExpression)) {
|
|
|
- queryExpression = leq;
|
|
|
+ queryExpression = eq;
|
|
|
} else {
|
|
|
- queryExpression = new AndExpression(queryExpression, leq);
|
|
|
+ queryExpression = new AndExpression(queryExpression, eq);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
} else {
|
|
|
-
|
|
|
Object value = MapUtil.get(params, fieldName, Object.class);
|
|
|
//如果没有数据 则跳过
|
|
|
if (value == null || StrUtil.isEmpty(String.valueOf(value))) {
|