DataControlUtils.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. package jnpf.base.util.common;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.google.common.base.Function;
  4. import com.google.common.base.Predicate;
  5. import jnpf.model.visualJson.FieLdsModel;
  6. import jnpf.model.visualJson.analysis.FormAllModel;
  7. import jnpf.model.visualJson.analysis.FormColumnModel;
  8. import jnpf.model.visualJson.analysis.FormColumnTableModel;
  9. import jnpf.model.visualJson.analysis.FormEnum;
  10. import jnpf.model.visualJson.config.RuleConfig;
  11. import jnpf.util.JsonUtil;
  12. import jnpf.util.StringUtil;
  13. import jnpf.util.visiual.JnpfKeyConsts;
  14. import java.util.HashMap;
  15. import java.util.List;
  16. import java.util.Map;
  17. import java.util.Objects;
  18. import java.util.concurrent.ConcurrentHashMap;
  19. /**
  20. * 代码生成器数据处理工具类
  21. *
  22. * @author JNPF开发平台组
  23. * @version V3.2.0
  24. * @copyright 引迈信息技术有限公司(https://www.jnpfsoft.com)
  25. * @date 2021/8/26
  26. */
  27. public class DataControlUtils {
  28. /**
  29. * 将字符串的首字母转大写
  30. *
  31. * @param name 需要转换的字符串
  32. * @return
  33. */
  34. public static String captureName(String name) {
  35. char[] ch = name.toCharArray();
  36. for (int i = 0; i < ch.length; i++) {
  37. if (i == 0) {
  38. ch[0] = Character.toUpperCase(ch[0]);
  39. }
  40. }
  41. StringBuffer a = new StringBuffer();
  42. a.append(ch);
  43. return a.toString();
  44. }
  45. public static String initialLowercase(String name) {
  46. char[] ch = name.toCharArray();
  47. for (int i = 0; i < ch.length; i++) {
  48. if (i == 0) {
  49. ch[0] = Character.toLowerCase(ch[0]);
  50. }
  51. }
  52. StringBuffer a = new StringBuffer();
  53. a.append(ch);
  54. return a.toString();
  55. }
  56. public static String getPlaceholder(String jnpfKey) {
  57. String placeholderName = "请选择";
  58. switch (jnpfKey) {
  59. case JnpfKeyConsts.BILLRULE:
  60. case JnpfKeyConsts.MODIFYUSER:
  61. case JnpfKeyConsts.CREATEUSER:
  62. case JnpfKeyConsts.COM_INPUT:
  63. case JnpfKeyConsts.TEXTAREA:
  64. placeholderName = "请输入";
  65. break;
  66. default:
  67. break;
  68. }
  69. return placeholderName;
  70. }
  71. /**
  72. * 去重
  73. *
  74. * @param keyExtractor
  75. * @param <T>
  76. * @return
  77. */
  78. public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
  79. Map<Object, Boolean> seen = new ConcurrentHashMap<>();
  80. return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
  81. }
  82. public static FieLdsModel setAbleIDs(FieLdsModel fieLdsModel) {
  83. if (fieLdsModel.getAbleDepIds() != null) {
  84. fieLdsModel.setAbleDepIds(JSONObject.toJSONString(fieLdsModel.getAbleDepIds()));
  85. }
  86. if (fieLdsModel.getAblePosIds() != null) {
  87. fieLdsModel.setAblePosIds(JSONObject.toJSONString(fieLdsModel.getAblePosIds()));
  88. }
  89. if (fieLdsModel.getAbleUserIds() != null) {
  90. fieLdsModel.setAbleUserIds(JSONObject.toJSONString(fieLdsModel.getAbleUserIds()));
  91. }
  92. if (fieLdsModel.getAbleRoleIds() != null) {
  93. fieLdsModel.setAbleRoleIds(JSONObject.toJSONString(fieLdsModel.getAbleRoleIds()));
  94. }
  95. if (fieLdsModel.getAbleGroupIds() != null) {
  96. fieLdsModel.setAbleGroupIds(JSONObject.toJSONString(fieLdsModel.getAbleGroupIds()));
  97. }
  98. if (fieLdsModel.getAbleIds() != null) {
  99. fieLdsModel.setAbleIds(JSONObject.toJSONString(fieLdsModel.getAbleIds()));
  100. }
  101. //model字段验证reg转换
  102. if (fieLdsModel.getConfig().getRegList() != null) {
  103. String o1 = JSONObject.toJSONString(JsonUtil.getObjectToString(fieLdsModel.getConfig().getRegList()));
  104. fieLdsModel.getConfig().setReg(o1);
  105. }
  106. return fieLdsModel;
  107. }
  108. /**
  109. * 单据规则配置获取
  110. * @param formAllModel
  111. * @return
  112. */
  113. public static Map<String, Object> getBillRule(List<FormAllModel> formAllModel) {
  114. Map<String, Object> billRuleMap = new HashMap<>();
  115. for (FormAllModel t : formAllModel) {
  116. if (FormEnum.mast.getMessage().equals(t.getJnpfKey())) {
  117. FieLdsModel fieLdsModel = t.getFormColumnModel().getFieLdsModel();
  118. RuleConfig ruleJson = getRuleJson(fieLdsModel);
  119. if (Objects.nonNull(ruleJson)) {
  120. billRuleMap.put(fieLdsModel.getVModel(), ruleJson);
  121. }
  122. }
  123. if (FormEnum.mastTable.getMessage().equals(t.getJnpfKey())) {
  124. FieLdsModel fieLdsModel = t.getFormMastTableModel().getMastTable().getFieLdsModel();
  125. RuleConfig ruleJson = getRuleJson(fieLdsModel);
  126. if (Objects.nonNull(ruleJson)) {
  127. billRuleMap.put(fieLdsModel.getVModel(), ruleJson);
  128. }
  129. }
  130. if (FormEnum.table.getMessage().equals(t.getJnpfKey())) {
  131. FormColumnTableModel childModel = t.getChildList();
  132. String aliasLowName = childModel.getAliasLowName();
  133. List<FormColumnModel> childList = childModel.getChildList();
  134. for (FormColumnModel child : childList) {
  135. FieLdsModel fieLdsModel = child.getFieLdsModel();
  136. RuleConfig ruleJson = getRuleJson(fieLdsModel);
  137. if (Objects.nonNull(ruleJson)) {
  138. billRuleMap.put(aliasLowName + "_" + fieLdsModel.getVModel(), ruleJson);
  139. }
  140. }
  141. }
  142. }
  143. return billRuleMap;
  144. }
  145. private static RuleConfig getRuleJson(FieLdsModel fieLdsModel) {
  146. Integer ruleType = fieLdsModel.getConfig().getRuleType();
  147. if (Objects.equals(ruleType, 2)) {
  148. RuleConfig ruleConfig = fieLdsModel.getConfig().getRuleConfig();
  149. if (ruleConfig != null) {
  150. return ruleConfig;
  151. }
  152. }
  153. return null;
  154. }
  155. }