3
13693261870
2022-09-16 63ba114e70e380442fcbed4a5157ee52c9491216
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
package com.landtool.lanbase.modules.spcData.service.impl;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
 
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import com.alibaba.druid.support.json.JSONUtils;
import com.landtool.lanbase.modules.spcData.dao.SpcDataDao;
import com.landtool.lanbase.modules.spcData.dao.SpcMetadataDao;
import com.landtool.lanbase.modules.spcData.entity.SpcDataMenu;
import com.landtool.lanbase.modules.spcData.entity.SpcMetadata;
import com.landtool.lanbase.modules.spcData.service.SpcDataService;
 
@Service
public class SpcDataServiceImpl implements SpcDataService {
 
    private static final String Map = null;
 
    @Autowired
    private SpcDataDao spcDataDao;
 
    @Autowired
    private SpcMetadataDao spcMetadataDao;
 
    private Logger logger = LoggerFactory.getLogger(SpcDataServiceImpl.class);
 
    @Override
    public List<SpcDataMenu> queryMenu() {
        return spcDataDao.queryMenu();
    }
 
    @Override
    public void addSpcDataMenu(SpcDataMenu spcDataMenu) {
        Integer result = spcDataDao.addSpcDataMenu(spcDataMenu);
    }
 
    @Override
    public void delSpcDataMenu(List<Integer> idLists) {
        Integer result = spcDataDao.delSpcDataMenu(idLists);
 
    }
 
    @Override
    public void modifySpcDataMenu(SpcDataMenu spcDataMenu) {
        Integer result = spcDataDao.modifySpcDataMenu(spcDataMenu);
    }
 
    @Override
    public SpcMetadata queryMetaData(SpcMetadata spcMetadata) {
        return spcMetadataDao.queryMetaData(spcMetadata);
    }
 
    @Override
    public void modifyMetaData(SpcMetadata spcMetadata) {
        spcMetadataDao.modifyMetaData(spcMetadata);
    }
 
    @Override
    public void delMetaData(SpcMetadata spcMetadata) {
        spcMetadataDao.delMetaData(spcMetadata);
    }
 
    @Override
    public void addMetaData(SpcMetadata spcMetadata) {
        spcMetadataDao.addMetaData(spcMetadata);
 
    }
 
    @Override
    public void delMetaDataByMenuS(List<Integer> idLists) {
        spcMetadataDao.delMetaDataByMenuS(idLists);
 
    }
 
    @Override
    public Map<String, Object> getStatistics(String strName,Integer type) {
        List<SpcMetadata> spcMetadatas = spcMetadataDao.queryMetaDatas();
        Map<String, Boolean> param = new HashMap<>();
        param.put(strName,0==type?true:false);
        Map<String, Object> maps = new HashMap<>();
        maps.put("总数据", 0);
        for (SpcMetadata sm : spcMetadatas) {
            maps.put("总数据", spcMetadatas.size());
            Iterator<Entry<String, Boolean>> iterator = param.entrySet().iterator();
            while (iterator.hasNext()) {
                Entry<String, Boolean> next = iterator.next();
                getStatisticsForEach(sm.getMetadata(), next.getKey(), next.getValue(), maps);
            }
        }
        return maps;
    }
 
    private void getStatisticsForEach(String sourceStr, String targetStr, Boolean flag, Map<String, Object> maps) {
        @SuppressWarnings("unchecked")
        Map<String, String> sourceMap = (Map<String, String>) JSONUtils.parse(sourceStr);
        if (sourceMap.containsKey(targetStr)) {
            if (flag) {
                if (maps.containsKey(targetStr)) {
                    Object obj =sourceMap.get(targetStr);
                    if(null==obj|| StringUtils.equals("",obj.toString())) return;
                    maps.put(targetStr, (Integer)maps.get(targetStr) + Integer.parseInt(sourceMap.get(targetStr)));
                } else {
                    Object obj =sourceMap.get(targetStr);
                    if(null==obj|| StringUtils.equals("",obj.toString())) return;
                    maps.put(targetStr, Integer.parseInt(sourceMap.get(targetStr)));
                }
            } else {
                String strValue = sourceMap.get(targetStr);
                if (maps.containsKey(strValue)) {
                    maps.put(strValue, (Integer) maps.get(strValue) + 1);
                } else {
                    maps.put(strValue, 1);
                }
            }
 
        }
 
    }
 
    @Override
    public List<SpcMetadata> queryMetaDatas() {
        return spcMetadataDao.queryMetaDatas();
    }
}