浏览代码

sop时间范围管理bug fix

wangliang 1 年之前
父节点
当前提交
b7b9554bdd

+ 21 - 0
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBSopInfoServiceImpl.java

@@ -466,6 +466,16 @@ public class TBSopInfoServiceImpl extends ServiceImpl<TBSopInfoMapper, TBSopInfo
                         if (f.getOperator() == FormWidgetMetadataOperator.LIKE) {
                             conditionJoin.add(f.getFieldId()).add(f.getOperator().getCode()).add("('%','")
                                     .add(f.getFieldValue()).add("','%')");
+                        } else if (f.getOperator() == FormWidgetMetadataOperator.RANGE) {
+                            if (f.getFieldValue().startsWith("[")) {
+                                String[] fieldValueCovers = f.getFieldValue().replaceAll("\\[", "")
+                                        .replaceAll("\\]", "").replaceAll(", ", ",").split(",");
+                                String[] operators = FormWidgetMetadataOperator.RANGE.getCode().split(",");
+                                for (int i = 0; i < fieldValueCovers.length; i++) {
+                                    conditionJoin.add(sopInfoListParam.getFormWidgetMetadataOperation().getCode())
+                                            .add(f.getFieldId()).add(operators[i]).add(fieldValueCovers[i]);
+                                }
+                            }
                         } else if (f.getOperator() == FormWidgetMetadataOperator.IN
                                 || f.getOperator() == FormWidgetMetadataOperator.NOT_IN) {
                             conditionJoin.add(f.getFieldId()).add(f.getOperator().getCode()).add(f.getFieldValue());
@@ -495,6 +505,17 @@ public class TBSopInfoServiceImpl extends ServiceImpl<TBSopInfoMapper, TBSopInfo
                             stringJoinerCondition.add(sopInfoListParam.getFormWidgetMetadataOperation().getCode())
                                     .add(f.getFieldId()).add(f.getOperator().getCode()).add("('%','")
                                     .add(f.getFieldValue()).add("','%')").add("\r\n");
+                        } else if (f.getOperator() == FormWidgetMetadataOperator.RANGE) {
+                            if (f.getFieldValue().startsWith("[")) {
+                                String[] fieldValueCovers = f.getFieldValue().replaceAll("\\[", "")
+                                        .replaceAll("\\]", "").replaceAll(", ", ",").split(",");
+                                String[] operators = FormWidgetMetadataOperator.RANGE.getCode().split(",");
+                                for (int i = 0; i < fieldValueCovers.length; i++) {
+                                    stringJoinerCondition.add(
+                                                    sopInfoListParam.getFormWidgetMetadataOperation().getCode())
+                                            .add(f.getFieldId()).add(operators[i]).add(fieldValueCovers[i]);
+                                }
+                            }
                         } else if (f.getOperator() == FormWidgetMetadataOperator.IN
                                 || f.getOperator() == FormWidgetMetadataOperator.NOT_IN) {
                             stringJoinerCondition.add(sopInfoListParam.getFormWidgetMetadataOperation().getCode())

+ 3 - 1
sop-common/src/main/java/com/qmth/sop/common/enums/FormWidgetMetadataOperator.java

@@ -25,7 +25,9 @@ public enum FormWidgetMetadataOperator {
 
     IN("在范围内", " in "),
 
-    NOT_IN("不在范围内", " not in ");
+    NOT_IN("不在范围内", " not in "),
+
+    RANGE("时间范围", " >=, <= ");
 
     private String title;