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 queryMenu() { return spcDataDao.queryMenu(); } @Override public void addSpcDataMenu(SpcDataMenu spcDataMenu) { Integer result = spcDataDao.addSpcDataMenu(spcDataMenu); } @Override public void delSpcDataMenu(List 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 idLists) { spcMetadataDao.delMetaDataByMenuS(idLists); } @Override public Map getStatistics(String strName,Integer type) { List spcMetadatas = spcMetadataDao.queryMetaDatas(); Map param = new HashMap<>(); param.put(strName,0==type?true:false); Map maps = new HashMap<>(); maps.put("总数据", 0); for (SpcMetadata sm : spcMetadatas) { maps.put("总数据", spcMetadatas.size()); Iterator> iterator = param.entrySet().iterator(); while (iterator.hasNext()) { Entry next = iterator.next(); getStatisticsForEach(sm.getMetadata(), next.getKey(), next.getValue(), maps); } } return maps; } private void getStatisticsForEach(String sourceStr, String targetStr, Boolean flag, Map maps) { @SuppressWarnings("unchecked") Map sourceMap = (Map) 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 queryMetaDatas() { return spcMetadataDao.queryMetaDatas(); } }