package jnpf.base.util.common; import com.alibaba.fastjson.JSONObject; import com.google.common.base.Function; import com.google.common.base.Predicate; import jnpf.model.visualJson.FieLdsModel; import jnpf.model.visualJson.analysis.FormAllModel; import jnpf.model.visualJson.analysis.FormColumnModel; import jnpf.model.visualJson.analysis.FormColumnTableModel; import jnpf.model.visualJson.analysis.FormEnum; import jnpf.model.visualJson.config.RuleConfig; import jnpf.util.JsonUtil; import jnpf.util.StringUtil; import jnpf.util.visiual.JnpfKeyConsts; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; /** * 代码生成器数据处理工具类 * * @author JNPF开发平台组 * @version V3.2.0 * @copyright 引迈信息技术有限公司(https://www.jnpfsoft.com) * @date 2021/8/26 */ public class DataControlUtils { /** * 将字符串的首字母转大写 * * @param name 需要转换的字符串 * @return */ public static String captureName(String name) { char[] ch = name.toCharArray(); for (int i = 0; i < ch.length; i++) { if (i == 0) { ch[0] = Character.toUpperCase(ch[0]); } } StringBuffer a = new StringBuffer(); a.append(ch); return a.toString(); } public static String initialLowercase(String name) { char[] ch = name.toCharArray(); for (int i = 0; i < ch.length; i++) { if (i == 0) { ch[0] = Character.toLowerCase(ch[0]); } } StringBuffer a = new StringBuffer(); a.append(ch); return a.toString(); } public static String getPlaceholder(String jnpfKey) { String placeholderName = "请选择"; switch (jnpfKey) { case JnpfKeyConsts.BILLRULE: case JnpfKeyConsts.MODIFYUSER: case JnpfKeyConsts.CREATEUSER: case JnpfKeyConsts.COM_INPUT: case JnpfKeyConsts.TEXTAREA: placeholderName = "请输入"; break; default: break; } return placeholderName; } /** * 去重 * * @param keyExtractor * @param * @return */ public static Predicate distinctByKey(Function keyExtractor) { Map seen = new ConcurrentHashMap<>(); return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; } public static FieLdsModel setAbleIDs(FieLdsModel fieLdsModel) { if (fieLdsModel.getAbleDepIds() != null) { fieLdsModel.setAbleDepIds(JSONObject.toJSONString(fieLdsModel.getAbleDepIds())); } if (fieLdsModel.getAblePosIds() != null) { fieLdsModel.setAblePosIds(JSONObject.toJSONString(fieLdsModel.getAblePosIds())); } if (fieLdsModel.getAbleUserIds() != null) { fieLdsModel.setAbleUserIds(JSONObject.toJSONString(fieLdsModel.getAbleUserIds())); } if (fieLdsModel.getAbleRoleIds() != null) { fieLdsModel.setAbleRoleIds(JSONObject.toJSONString(fieLdsModel.getAbleRoleIds())); } if (fieLdsModel.getAbleGroupIds() != null) { fieLdsModel.setAbleGroupIds(JSONObject.toJSONString(fieLdsModel.getAbleGroupIds())); } if (fieLdsModel.getAbleIds() != null) { fieLdsModel.setAbleIds(JSONObject.toJSONString(fieLdsModel.getAbleIds())); } //model字段验证reg转换 if (fieLdsModel.getConfig().getRegList() != null) { String o1 = JSONObject.toJSONString(JsonUtil.getObjectToString(fieLdsModel.getConfig().getRegList())); fieLdsModel.getConfig().setReg(o1); } return fieLdsModel; } /** * 单据规则配置获取 * @param formAllModel * @return */ public static Map getBillRule(List formAllModel) { Map billRuleMap = new HashMap<>(); for (FormAllModel t : formAllModel) { if (FormEnum.mast.getMessage().equals(t.getJnpfKey())) { FieLdsModel fieLdsModel = t.getFormColumnModel().getFieLdsModel(); RuleConfig ruleJson = getRuleJson(fieLdsModel); if (Objects.nonNull(ruleJson)) { billRuleMap.put(fieLdsModel.getVModel(), ruleJson); } } if (FormEnum.mastTable.getMessage().equals(t.getJnpfKey())) { FieLdsModel fieLdsModel = t.getFormMastTableModel().getMastTable().getFieLdsModel(); RuleConfig ruleJson = getRuleJson(fieLdsModel); if (Objects.nonNull(ruleJson)) { billRuleMap.put(fieLdsModel.getVModel(), ruleJson); } } if (FormEnum.table.getMessage().equals(t.getJnpfKey())) { FormColumnTableModel childModel = t.getChildList(); String aliasLowName = childModel.getAliasLowName(); List childList = childModel.getChildList(); for (FormColumnModel child : childList) { FieLdsModel fieLdsModel = child.getFieLdsModel(); RuleConfig ruleJson = getRuleJson(fieLdsModel); if (Objects.nonNull(ruleJson)) { billRuleMap.put(aliasLowName + "_" + fieLdsModel.getVModel(), ruleJson); } } } } return billRuleMap; } private static RuleConfig getRuleJson(FieLdsModel fieLdsModel) { Integer ruleType = fieLdsModel.getConfig().getRuleType(); if (Objects.equals(ruleType, 2)) { RuleConfig ruleConfig = fieLdsModel.getConfig().getRuleConfig(); if (ruleConfig != null) { return ruleConfig; } } return null; } }