package com.casic.service.impl; import com.alibaba.druid.util.StringUtils; import com.casic.config.DeviceTypeConfig; import com.casic.dao.*; import com.casic.entity.*; import com.casic.service.DayDataService; import com.casic.util.SnowBizPhyId; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.DecimalFormat; import java.util.*; @Service public class DayDataProvider implements DayDataService { @Resource private DayDataDao dayDataDao; @Resource private WellLocalDataMapper wellLocalDataMapper; @Resource private WellInfoDao wellInfoDao; @Resource private LiquidDataMapper liquidDataMapper; @Resource private HarmfulDataMapper harmfulDataMapper; @Override public void wellLocalData() { List<Map<String, String>> devcodeList = dayDataDao.getWellLocalByType(); if (devcodeList != null) { for (int i = 0; i < devcodeList.size() * 0.9; i++) { String devcode = devcodeList.get(i).get("DEVCODE"); String wellCode = devcodeList.get(i).get("wellCode"); CreateWellDataLocal(devcode, wellCode); } } } @Override public void wellCoverData() { List<Map<String, String>> devcodeList = dayDataDao.getWellCoverByType(); if (devcodeList != null) { for (int i = 0; i < devcodeList.size() * 0.9; i++) { String devcode = devcodeList.get(i).get("DEVCODE"); String wellCode = devcodeList.get(i).get("wellCode"); wellDataCreator(devcode, wellCode); } } } @Override public void liquidData() { List<Map<String, Object>> devcodeList = dayDataDao.getLiquidByType(); List<Map<String, Object>> standardLiquid = dayDataDao.getStandardLiquid(); Optional<Map<String, Object>> standardLiquidOptional = standardLiquid.stream().findFirst(); float proportion = 0.0f; if (standardLiquidOptional.isPresent()) { String liquiddata = String.valueOf(standardLiquidOptional.get().get("liquiddata")); String deep = standardLiquidOptional.get().get("DEEP").toString(); proportion = Float.valueOf(liquiddata) / Float.valueOf(deep); } if (devcodeList != null) { for (int i = 0; i < devcodeList.size() * 0.9; i++) { String devcode = String.valueOf(devcodeList.get(i).get("DEVCODE")); String wellCode = String.valueOf(devcodeList.get(i).get("wellCode")); String deep = String.valueOf(devcodeList.get(i).get("DEEP")); Float liquidValue = 0.0f; if (!StringUtils.isEmpty(deep)) { liquidValue = proportion * Float.valueOf(deep); } liquidDataCreator(devcode, wellCode, liquidValue); } } } @Override public void harmFulData() { List<Map<String, String>> devcodeList = dayDataDao.getHarmfulCode(); if (devcodeList != null) { for (int i = 0; i < devcodeList.size() * 0.9; i++) { String switchs = String.valueOf(devcodeList.get(i).get("switch")); String devcode = String.valueOf(devcodeList.get(i).get("DEVCODE")); String wellCode = String.valueOf(devcodeList.get(i).get("wellCode")); harmfulDataCreator(devcode, wellCode,switchs); } } } private void harmfulDataCreator(String devcode, String wellCode,String switchs) { DecimalFormat df = new DecimalFormat("0.00"); HarmfulData harmfulData = new HarmfulData(); harmfulData.setWellCode(wellCode); harmfulData.setDevcode(devcode); Double coData = Math.random(); harmfulData.setCo(df.format(coData)); harmfulData.setH2s("0"); harmfulData.setO2(df.format(coData)); harmfulData.setUptime(new Date()); harmfulData.setLogtime(new Date()); harmfulData.setSWITCH(switchs); harmfulDataMapper.insert(harmfulData); } private Random random = new Random(); /** * 井盖儿3天创建6条 */ private void wellDataCreator(String devcode, String wellCode) { WellInfo wellInfo = new WellInfo(); // wellInfo.setId(SnowBizPhyId.getBizPhyId()); wellInfo.setWellCode(wellCode); wellInfo.setDevcode(devcode); wellInfo.setDescn("心跳"); wellInfo.setStatus("0"); Long initTime = new Date().getTime(); wellInfo.setLogtime(new Date()); for (int i = 0; i < 6; i++) { wellInfoDao.insert(wellInfo); initTime += random.nextInt(200000); wellInfo.setLogtime(new Date(initTime)); } } /** * 1天6次,发六次 */ private void liquidDataCreator(String devcode, String wellCode, Float liquidValue) { LiquidData liquidData = new LiquidData(); DecimalFormat df = new DecimalFormat("0.00"); // liquidData.setId(SnowBizPhyId.getBizPhyId()); liquidData.setWellCode(wellCode); liquidData.setDevcode(devcode); liquidData.setCell("22"); liquidData.setUptime(new Date()); Long initTime = new Date().getTime(); for (int i = 0; i < 6; i++) { Double errorData = Math.random() * 0.2 - 0.1; liquidData.setLiquiddata(df.format(liquidValue + errorData)); initTime += random.nextInt(200000); liquidData.setLogtime(new Date(initTime)); liquidDataMapper.insert(liquidData); } } /** * 4天发六次 */ private void CreateWellDataLocal(String devcode, String wellCode) { WellLocalData wellLocalData = new WellLocalData(); DecimalFormat df = new DecimalFormat("0.000000"); // wellLocalData.setId(SnowBizPhyId.getBizPhyId()); wellLocalData.setWellCode(wellCode); wellLocalData.setDevcode(devcode); Double lng = 116.54 + Math.random() * 0.02 - 0.01; Double lat = 39.79 + Math.random() * 0.02 - 0.01; wellLocalData.setLng(df.format(lng)); wellLocalData.setLat(df.format(lat)); Long initTime = new Date().getTime(); for (int i = 0; i < 6; i++) { initTime += random.nextInt(200000); wellLocalData.setLogtime(new Date(initTime)); wellLocalDataMapper.insert(wellLocalData); } } }