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