OnlineDevInfoUtils.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. package jnpf.onlinedev.util.onlineDevUtil;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import jnpf.base.util.DateTimeFormatConstant;
  4. import jnpf.base.util.FormPublicUtils;
  5. import jnpf.model.visualJson.FieLdsModel;
  6. import jnpf.permission.entity.UserEntity;
  7. import jnpf.permission.service.OrganizeService;
  8. import jnpf.permission.service.PositionService;
  9. import jnpf.permission.service.UserService;
  10. import jnpf.util.JsonUtil;
  11. import jnpf.util.visiual.JnpfKeyConsts;
  12. import lombok.extern.slf4j.Slf4j;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Component;
  15. import java.math.BigDecimal;
  16. import java.util.*;
  17. /**
  18. * 在线详情编辑工具类
  19. *
  20. * @author JNPF开发平台组
  21. * @version V3.2
  22. * @copyright 引迈信息技术有限公司(https://www.jnpfsoft.com)
  23. * @date 2021/10/27
  24. */
  25. @Slf4j
  26. @Component
  27. public class OnlineDevInfoUtils {
  28. @Autowired
  29. private UserService userApi;
  30. @Autowired
  31. private PositionService positionApi;
  32. @Autowired
  33. private OrganizeService organizeApi;
  34. /**
  35. * 转换数据格式(编辑页)
  36. *
  37. * @param modelList 控件
  38. * @param dataMap 数据
  39. * @return
  40. */
  41. public Map<String, Object> getInitLineData(List<FieLdsModel> modelList, Map<String, Object> dataMap, Map<String, Object> localCache) {
  42. Map<String, Object> posMap = (Map<String, Object>) localCache.get("__pos_map");
  43. Map<String, Object> orgTreeMap = (Map<String, Object>) localCache.get("__orgTree_map");
  44. for (FieLdsModel swapDataVo : modelList) {
  45. String jnpfKey = swapDataVo.getConfig().getJnpfKey();
  46. String vModel = swapDataVo.getVModel();
  47. Object value = dataMap.get(vModel);
  48. if (value == null || ObjectUtil.isEmpty(value)) {
  49. continue;
  50. }
  51. switch (jnpfKey) {
  52. case JnpfKeyConsts.RATE:
  53. case JnpfKeyConsts.SLIDER:
  54. BigDecimal ratevalue = new BigDecimal(0);
  55. if (dataMap.get(vModel) != null) {
  56. ratevalue = new BigDecimal(dataMap.get(vModel).toString());
  57. }
  58. dataMap.put(vModel, ratevalue);
  59. break;
  60. case JnpfKeyConsts.UPLOADFZ:
  61. case JnpfKeyConsts.UPLOADIMG:
  62. List<Map<String, Object>> fileList = JsonUtil.getJsonToListMap(String.valueOf(value));
  63. dataMap.put(vModel, fileList);
  64. break;
  65. case JnpfKeyConsts.DATE:
  66. case JnpfKeyConsts.DATE_CALCULATE:
  67. Long dateTime = DateTimeFormatConstant.getDateObjToLong(dataMap.get(vModel));
  68. dataMap.put(vModel, dateTime != null ? dateTime : dataMap.get(vModel));
  69. break;
  70. case JnpfKeyConsts.SWITCH:
  71. dataMap.put(vModel, value != null ? Integer.parseInt(String.valueOf(value)) : null);
  72. break;
  73. //系统自动生成控件
  74. case JnpfKeyConsts.CURRORGANIZE:
  75. case JnpfKeyConsts.CURRDEPT:
  76. getTreeName(dataMap, orgTreeMap, vModel);
  77. break;
  78. case JnpfKeyConsts.CURRPOSITION:
  79. getTreeName(dataMap, posMap, vModel);
  80. break;
  81. case JnpfKeyConsts.CREATEUSER:
  82. case JnpfKeyConsts.MODIFYUSER:
  83. UserEntity userEntity = userApi.getInfo(String.valueOf(value));
  84. String userValue = Objects.nonNull(userEntity) ? userEntity.getRealName() + "/" + userEntity.getAccount() : String.valueOf(value);
  85. dataMap.put(vModel, userValue);
  86. break;
  87. default:
  88. dataMap.put(vModel, FormPublicUtils.getDataConversion(value));
  89. break;
  90. }
  91. }
  92. return dataMap;
  93. }
  94. private static void getTreeName(Map<String, Object> dataMap, Map<String, Object> posMap, String vModel) {
  95. String posIds = String.valueOf(dataMap.get(vModel));
  96. StringJoiner posName = new StringJoiner(",");
  97. List<String> posList = new ArrayList<>();
  98. try {
  99. posList = JsonUtil.getJsonToList(posIds, String.class);
  100. } catch (Exception e) {
  101. posList.add(posIds);
  102. }
  103. if (!posList.isEmpty()) {
  104. for (String t : posList) {
  105. if (posMap.get(t) != null) {
  106. posName.add(posMap.get(t).toString());
  107. }
  108. }
  109. }
  110. if (posName.length() > 0) {
  111. dataMap.put(vModel, posName.toString());
  112. } else {
  113. dataMap.put(vModel, " ");
  114. }
  115. }
  116. }