Ver Fonte

加入元数据条件操作符

wangliang há 1 ano atrás
pai
commit
2311b5deaa

+ 13 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/params/SopInfoListParam.java

@@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.sop.business.entity.TBSopInfo;
 import com.qmth.sop.common.contant.SystemConstant;
+import com.qmth.sop.common.enums.FormWidgetMetadataOperation;
 import io.swagger.annotations.ApiModelProperty;
 
 import javax.validation.constraints.Max;
@@ -40,6 +41,10 @@ public class SopInfoListParam extends TBSopInfo implements Serializable {
     @ApiModelProperty(value = "元数据筛选字段数组")
     private List<FormWidgetMetadataParam> formWidgetMetadataConditionList;
 
+    @ApiModelProperty(value = "元数据条件操作符")
+    @NotNull(message = "元数据条件操作符不能为空")
+    FormWidgetMetadataOperation formWidgetMetadataOperation;
+
     @ApiModelProperty(value = "页码")
     @NotNull(message = "页码不能为空")
     @Min(SystemConstant.PAGE_NUMBER_MIN)
@@ -54,6 +59,14 @@ public class SopInfoListParam extends TBSopInfo implements Serializable {
     @JsonSerialize(using = ToStringSerializer.class)
     private List<Long> userIdList;
 
+    public FormWidgetMetadataOperation getFormWidgetMetadataOperation() {
+        return formWidgetMetadataOperation;
+    }
+
+    public void setFormWidgetMetadataOperation(FormWidgetMetadataOperation formWidgetMetadataOperation) {
+        this.formWidgetMetadataOperation = formWidgetMetadataOperation;
+    }
+
     public List<FormWidgetMetadataParam> getFormWidgetMetadataOrderList() {
         return formWidgetMetadataOrderList;
     }

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

@@ -388,7 +388,7 @@ public class TBSopInfoServiceImpl extends ServiceImpl<TBSopInfoMapper, TBSopInfo
             for (Map.Entry<String, List<FormWidgetMetadataParam>> entry : formWidgetMetadataParamLinkedMultiValueMap.entrySet()) {
                 List<FormWidgetMetadataParam> formWidgetMetadataParamList = entry.getValue();
                 if (formWidgetMetadataParamList.size() > 1) {
-                    StringJoiner conditionJoin = new StringJoiner("").add(SystemConstant.AND).add(" ( ");
+                    StringJoiner conditionJoin = new StringJoiner("").add(sopInfoListParam.getFormWidgetMetadataOperation().getCode()).add(" ( ");
                     for (int y = 0; y < formWidgetMetadataParamList.size(); y++) {
                         FormWidgetMetadataParam f = formWidgetMetadataParamList.get(y);
                         if (f.getOperator() == FormWidgetMetadataOperator.LIKE) {
@@ -399,7 +399,7 @@ public class TBSopInfoServiceImpl extends ServiceImpl<TBSopInfoMapper, TBSopInfo
                             conditionJoin.add(f.getFieldId()).add(f.getOperator().getCode()).add("'").add(f.getFieldValue()).add("'");
                         }
                         if (y < formWidgetMetadataParamList.size() - 1) {
-                            conditionJoin.add(SystemConstant.OR);
+                            conditionJoin.add(FormWidgetMetadataOperation.OR.getCode());
                         }
                     }
                     conditionJoin.add(" ) ");
@@ -407,11 +407,11 @@ public class TBSopInfoServiceImpl extends ServiceImpl<TBSopInfoMapper, TBSopInfo
                 } else {
                     for (FormWidgetMetadataParam f : formWidgetMetadataParamList) {
                         if (f.getOperator() == FormWidgetMetadataOperator.LIKE) {
-                            stringJoinerCondition.add(SystemConstant.AND).add(f.getFieldId()).add(f.getOperator().getCode()).add("('%','").add(f.getFieldValue()).add("','%')").add("\r\n");
+                            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.IN || f.getOperator() == FormWidgetMetadataOperator.NOT_IN) {
-                            stringJoinerCondition.add(SystemConstant.AND).add(f.getFieldId()).add(f.getOperator().getCode()).add(f.getFieldValue()).add("\r\n");
+                            stringJoinerCondition.add(sopInfoListParam.getFormWidgetMetadataOperation().getCode()).add(f.getFieldId()).add(f.getOperator().getCode()).add(f.getFieldValue()).add("\r\n");
                         } else {
-                            stringJoinerCondition.add(SystemConstant.AND).add(f.getFieldId()).add(f.getOperator().getCode()).add("'").add(f.getFieldValue()).add("'").add("\r\n");
+                            stringJoinerCondition.add(sopInfoListParam.getFormWidgetMetadataOperation().getCode()).add(f.getFieldId()).add(f.getOperator().getCode()).add("'").add(f.getFieldValue()).add("'").add("\r\n");
                         }
                     }
                 }

+ 2 - 2
sop-common/src/main/java/com/qmth/sop/common/contant/SystemConstant.java

@@ -101,8 +101,8 @@ public class SystemConstant {
     public static final String ERROR_METHOD = "method";
     public static final String LIST_JOIN_SPLIT = ",";
     public static final String JOB_DATA = "jobData";
-    public static final String AND = " and ";
-    public static final String OR = " or ";
+//    public static final String AND = " and ";
+//    public static final String OR = " or ";
     //    public static final String APPROVE_MAP_VAR = "approve_map_var";
 //    public static final String APPROVE_AUTO = "auto";
     public static final String SYSTEM_AUTO_APPROVE = "系统自动审批";

+ 32 - 0
sop-common/src/main/java/com/qmth/sop/common/enums/FormWidgetMetadataOperation.java

@@ -0,0 +1,32 @@
+package com.qmth.sop.common.enums;
+
+/**
+ * @Description: sop操作符枚举
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/11/7
+ */
+public enum FormWidgetMetadataOperation {
+
+    AND("所有", " and "),
+
+    OR("任一", " or ");
+
+    private String title;
+
+    private String code;
+
+    private FormWidgetMetadataOperation(String title, String code) {
+        this.title = title;
+        this.code = code;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public String getCode() {
+        return code;
+    }
+}