Przeglądaj źródła

轨迹的修改

dongxin 1 rok temu
rodzic
commit
3c59606d3b

+ 9 - 5
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/utils/SpElFieldExtractor.java

@@ -21,18 +21,22 @@ public class SpElFieldExtractor {
      */
     public Map<String, String> extractFields(Object returnValue, List<SpElMapping> mappings) {
         Map<String, String> result = new HashMap<>();
-        EvaluationContext context = new StandardEvaluationContext();
-        context.setVariable("ret", returnValue);
+        if (returnValue == null || mappings == null || mappings.isEmpty()) {
+            return result;
+        }
+
+        EvaluationContext context = new StandardEvaluationContext(returnValue);
+        context.setVariable("ret", returnValue); // 支持 #ret 方式
 
         for (SpElMapping mapping : mappings) {
             try {
-                String value = parser.parseExpression(mapping.getSpel())
-                        .getValue(context, String.class);
-                result.put(mapping.getFieldName(), value);
+                Object val = parser.parseExpression(mapping.getSpel()).getValue(context);
+                result.put(mapping.getFieldName(), val != null ? val.toString() : null);
             } catch (Exception e) {
                 result.put(mapping.getFieldName(), "SpEL解析失败");
             }
         }
+
         return result;
     }
 }