niying
2024-01-24 3c49f1e5c375801f546eb7e0736280693f7187cf
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
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) {
        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("局域物料名称编码数据获取");
                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
    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;
        }
    }
}