1
2024-01-24 67fb3bd7367fdf8a5b2186d4ff1c0f4d572c6d91
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
package com.itstyle.mdm.service.impl;
 
 
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.itstyle.mdm.entity.InterfaceLogData;
import com.itstyle.quartz.dynamicquery.DynamicQuery;
import com.itstyle.mdm.entity.MdmData;
import com.itstyle.quartz.entity.SysConfigEntity;
import com.itstyle.mdm.service.MdmService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.Date;
import java.util.List;
import java.util.UUID;
 
/**
 * MDM数据处理层实现
 */
@Service()
@Transactional(readOnly = true)
public class MdmServiceImpl implements MdmService {
 
    @Autowired
    private DynamicQuery dynamicQuery;
 
    @Override
    @Transactional
    public JSONArray saveMdmData(JSONArray recordArray,String name) {
        JSONArray newJsonArray = new JSONArray();
        int size = recordArray.size();
        Object[] params = new  Object[]{};
        MdmData mdmData = null;
        if(size != 0){
            for (int i = 0; i < size; i++) {
                String json = recordArray.get(i).toString();
                JSONObject jsonObj = JSON.parseObject(json);
                String id = jsonObj.getString("id");
                String tgcoriginalcode = jsonObj.getString("tgcoriginalcode");
                String updatedat = jsonObj.getString("updatedat");
                String updatetime = jsonObj.getString("updatetime");
                mdmData = new MdmData();
                mdmData.setType(name);
                mdmData.setId(id);
                mdmData.setTgcoriginalCode(tgcoriginalcode);
                mdmData.setUpdatedat(updatedat);
                mdmData.setUpdatetime(updatetime);
                String countSql = "SELECT mdm.uuid,mdm.id,mdm.tgcoriginalCode,mdm.updatedat,mdm.updatetime FROM mdm_data AS mdm where mdm.tgcoriginalCode='"+tgcoriginalcode+"' ";
                List<MdmData> list = dynamicQuery.nativeQueryList(MdmData.class,countSql,params);
                if(list.size()>0){
                    //说明存在数据
                    for (MdmData mdm : list) {
                        String updatetime1 = mdm.getUpdatetime();
                        if(updatetime1.equals(updatetime)){
                            //数据无变化
                            continue;
                        }
                        jsonObj.put("renewstatus","update");
                        newJsonArray.add(jsonObj);
                        //数据存在变化
                        dynamicQuery.update(mdm);//更新数据
                    }
                }else {
                    jsonObj.put("renewstatus","new");
                    newJsonArray.add(jsonObj);
                    //说明该数据为新数据
                    mdmData.setUuid(UUID.randomUUID().toString());
                    dynamicQuery.save(mdmData);
                }
            }
        }
        return newJsonArray;
    }
 
    @Override
    @Transactional
    public JSONArray saveMdmUnitData(JSONArray recordArray, String name) {
        JSONArray newJsonArray = new JSONArray();
        int size = recordArray.size();
        Object[] params = new  Object[]{};
        MdmData mdmData = null;
        if(size != 0){
            for (int i = 0; i < size; i++) {
                String json = recordArray.get(i).toString();
                JSONObject jsonObj = JSON.parseObject(json);
                String id = jsonObj.getString("code");
                String tgcoriginalcode = jsonObj.getString("originalcode");
                //String updatedat = jsonObj.getString("updatedat");
                String updatetime = jsonObj.getString("updatetime");
                mdmData = new MdmData();
                mdmData.setType(name);
                mdmData.setId(id);
                mdmData.setTgcoriginalCode(tgcoriginalcode);
                mdmData.setUpdatedat("");
                mdmData.setUpdatetime(updatetime);
                String countSql = "SELECT mdm.uuid,mdm.id,mdm.tgcoriginalCode,mdm.updatedat,mdm.updatetime FROM mdm_data AS mdm where mdm.tgcoriginalCode='"+tgcoriginalcode+"' ";
                List<MdmData> list = dynamicQuery.nativeQueryList(MdmData.class,countSql,params);
                if(list.size()>0){
                    //说明存在数据
                    for (MdmData mdm : list) {
                        String updatetime1 = mdm.getUpdatetime();
                        if(updatetime1.equals(updatetime)){
                            //数据无变化
                            continue;
                        }
                        jsonObj.put("renewstatus","update");
                        newJsonArray.add(jsonObj);
                        //数据存在变化
                        dynamicQuery.update(mdm);//更新数据
                    }
                }else {
                    jsonObj.put("renewstatus","new");
                    newJsonArray.add(jsonObj);
                    //说明该数据为新数据
                    mdmData.setUuid(UUID.randomUUID().toString());
                    dynamicQuery.save(mdmData);
                }
            }
        }
        return newJsonArray;
    }
 
    @Override
    public List<SysConfigEntity> querySysConfigs(String interfaceName) {
        Object[] params = new  Object[]{interfaceName};
        String countSql = "select id,ADDRESS as address,DESCRIPTION as description,cronExpression,isEnable,sysName,association from sys_config where isEnable='启用' and association=?";
        List<SysConfigEntity> list = dynamicQuery.nativeQueryList(SysConfigEntity.class,countSql,params);
        return list;
    }
 
    @Override
    @Transactional
    public int saveInterfaceLog(String uuid,String interfaceName, String url, String param, String result) {
        InterfaceLogData interfaceLogData = new InterfaceLogData();
        interfaceLogData.setUuid(uuid);
        interfaceLogData.setInterfaceName(interfaceName);
        interfaceLogData.setCreateTime(new Date());
        interfaceLogData.setPrams(param);
        interfaceLogData.setResult(result);
        interfaceLogData.setUrl(url);
        try{
            dynamicQuery.save(interfaceLogData);
            return 1;
        }catch (Exception e){
            e.printStackTrace();
            return 0;
        }
    }
}