浏览代码

元数据条件操作修改

wangliang 1 年之前
父节点
当前提交
21343016fe
共有 1 个文件被更改,包括 13 次插入7 次删除
  1. 13 7
      sop-business/src/main/java/com/qmth/sop/business/service/impl/TBSopInfoServiceImpl.java

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

@@ -368,13 +368,19 @@ public class TBSopInfoServiceImpl extends ServiceImpl<TBSopInfoMapper, TBSopInfo
                     //加入固定字段转换
                     if (SystemConstant.SOP_TRANSFORM_MAP.containsKey(f.getFieldId())) {
                         if (Objects.equals(f.getFieldId().toLowerCase(), "status")) {
-                            if (Objects.equals(f.getFieldValue(), "已完结")) {
-                                f.setFieldValue(FlowStatusEnum.FINISH.name());
-                            } else if (Objects.equals(f.getFieldValue(), "已作废")) {
-                                f.setFieldValue(FlowStatusEnum.END.name());
-                            } else {
-                                f.setOperator(FormWidgetMetadataOperator.NOT_IN);
-                                f.setFieldValue("('" + FlowStatusEnum.FINISH.name() + "','" + FlowStatusEnum.END.name() + "')");
+                            JSONArray jsonArray = JSONArray.parseArray(f.getFieldValue());
+                            if (Objects.nonNull(jsonArray) && jsonArray.size() > 0) {
+                                StringJoiner stringJoiner = new StringJoiner("").add("(");
+                                f.setOperator(f.getOperator() == FormWidgetMetadataOperator.EQ ? FormWidgetMetadataOperator.IN : FormWidgetMetadataOperator.NOT_IN);
+                                for (int i = 0; i < jsonArray.size(); i++) {
+                                    if (Objects.equals(jsonArray.getString(i), FlowStatusEnum.AUDITING.name())) {
+                                        stringJoiner.add("'" + FlowStatusEnum.START.name() + "','" + FlowStatusEnum.DRAFT.name() + "','" + FlowStatusEnum.AUDITING.name() + "','" + FlowStatusEnum.REJECT.name() + "','" + FlowStatusEnum.CANCEL.name() + "',");
+                                    } else if (Objects.equals(jsonArray.getString(i), FlowStatusEnum.FINISH.name())) {
+                                        stringJoiner.add("'" + FlowStatusEnum.FINISH.name() + "',");
+                                    }
+                                }
+                                String s = stringJoiner.toString().substring(0, stringJoiner.length() - 1) + ")";
+                                f.setFieldValue(s);
                             }
                         }
                         String fieldId = SystemConstant.SOP_TRANSFORM_MAP.get(f.getFieldId());