package com.dl.flowable.utils;
|
|
import cn.hutool.core.convert.Convert;
|
import com.dl.flowable.core.FormConf;
|
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 流程表单工具类
|
*
|
* @author KonBAI
|
* @createTime 2022/8/7 17:09
|
*/
|
public class ProcessFormUtils {
|
|
private static final String CONFIG = "__config__";
|
private static final String MODEL = "__vModel__";
|
|
/**
|
* 填充表单项内容
|
*
|
* @param formConf 表单配置信息
|
* @param data 表单内容
|
*/
|
public static void fillFormData(FormConf formConf, Map<String, Object> data) {
|
for (Map<String, Object> field : formConf.getFields()) {
|
recursiveFillField(field, data);
|
}
|
}
|
|
@SuppressWarnings("unchecked")
|
private static void recursiveFillField(final Map<String, Object> field, final Map<String, Object> data) {
|
if (!field.containsKey(CONFIG)) {
|
return;
|
}
|
Map<String, Object> configMap = (Map<String, Object>) field.get(CONFIG);
|
if (configMap.containsKey("children")) {
|
List<Map<String, Object>> childrens = (List<Map<String, Object>>) configMap.get("children");
|
for (Map<String, Object> children : childrens) {
|
recursiveFillField(children, data);
|
}
|
}
|
String modelKey = Convert.toStr(field.get(MODEL));
|
Object value = data.get(modelKey);
|
if (value != null) {
|
configMap.put("defaultValue", value);
|
}
|
}
|
}
|