package cn.gistack.sm.damSecurity.service.impl; import cn.gistack.nky.entity.AlarmGet; import cn.gistack.nky.vo.AlarmGetVO; import cn.gistack.sm.damSecurity.mapper.DamSecurityMapper; import cn.gistack.sm.damSecurity.service.IDamSecurityService; import cn.gistack.sm.damSecurity.vo.*; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.mysql.cj.protocol.x.ReusableInputStream; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.core.tool.utils.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @Service public class DamSecurityServiceImpl implements IDamSecurityService { @Autowired private DamSecurityMapper damSecurityMapper; @Override public DamSecurityStatistics getSingleRegionCount(DamSecurityStatistics damSecurityStatistics) { return damSecurityMapper.getSingleRegionCount(damSecurityStatistics); } @Override public DamSecurityStatistics getSingleRegionCountOptimize(DamSecurityStatistics damSecurityStatistics) { return damSecurityMapper.getSingleRegionCountOptimize(damSecurityStatistics); } @Override public List listRegionCount(DamSecurityStatistics damSecurityStatistics) { // return damSecurityMapper.listRegionCount(damSecurityStatistics); return damSecurityMapper.listRegionCountOptimize(damSecurityStatistics); } @Override public List tableResCount(DamStationStatistics damStationStatistics) { return damSecurityMapper.tableResCount(damStationStatistics); } @Override public IPage tableResCountPage(DamStationStatistics damStationStatistics, IPage page) { // return page.setRecords(damSecurityMapper.tableResCountPage(damStationStatistics,page)); return page.setRecords(damSecurityMapper.tableResCountPageOptimize(damStationStatistics,page)); } @Override public List alarmResCount(DamStationStatistics damStationStatistics,String basCode) { return damSecurityMapper.alarmResCount(damStationStatistics,basCode); } @Override public List damResInfoCount(String adCode) { List list = damSecurityMapper.damResInfoCount(adCode); // list.forEach(damStatisticsRes -> { // List errorList = damSecurityMapper.getResErrorList(damStatisticsRes,adCode); // damStatisticsRes.setErrorList(errorList); // }); // // list.forEach(damStatisticsRes -> { // List normalList = new ArrayList<>(); // if (damStatisticsRes.getType().equals("1")){ // //渗压 // normalList = damSecurityMapper.getResSyNormalList(adCode); // }else if (damStatisticsRes.getType().equals("2")){ // //渗流 // normalList = damSecurityMapper.getResSlNormalList(adCode); // }else if (damStatisticsRes.getType().equals("3")){ // //位移 // normalList = damSecurityMapper.getResWyNormalList(adCode); // } // damStatisticsRes.setNormalList(normalList); // }); return list; } @Override public List damResInfoCountMap(HashMap obj) { String type = obj.get("type"); String adCode = obj.get("adCode"); String status = obj.get("status"); List list = new ArrayList<>(); if (type.equals("sy")){ list = damSecurityMapper.getSyList(adCode,status); }else if (type.equals("sl")){ list = damSecurityMapper.getSlList(adCode,status); }else if (type.equals("wy")){ list = damSecurityMapper.getWyList(adCode,status); }else { return null; } return list; } @Override public List listRegionCountMonitor(DamMonitor damMonitor) { List regionList = getRegionList(damMonitor); regionList.forEach(region ->{ damMonitor.setAdCode(region.getAdCode()); List levelPoList = damSecurityMapper.getLevelList(damMonitor); region.setLevelList(levelPoList); }); return regionList; } @Override public IPage pageMonitor(AlarmGetVO alarmGet, IPage page) { //位移 if (alarmGet.getType().equals("3")){ List list = damSecurityMapper.pageMonitorWy(page,alarmGet); return page.setRecords(list); }else{ List list = damSecurityMapper.pageMonitor(page,alarmGet); return page.setRecords(list); } } @Override public List levelMonitorPie(DamMonitor damMonitor) { List levelPoList = damSecurityMapper.getLevelList(damMonitor); return levelPoList; } public List getRegionList(DamMonitor damMonitor){ return damSecurityMapper.getRegionList(damMonitor); } @Override public List getDamInfoCountByRegion(DamStatisticsRegion damStatisticsRegion) { List list = new ArrayList<>(); if (damStatisticsRegion.getStatus().equals("total")){ //点击总数 if (damStatisticsRegion.getType().equals("sy")){ list = damSecurityMapper.getDamSyRegion(damStatisticsRegion);//已修改逻辑 }else if (damStatisticsRegion.getType().equals("sl")){ list = damSecurityMapper.getDamSlRegion(damStatisticsRegion);//1 }else if (damStatisticsRegion.getType().equals("wy")){ list = damSecurityMapper.getDamWyRegion(damStatisticsRegion);//1 } }else if (damStatisticsRegion.getStatus().equals("error")){ //点异常 list = damSecurityMapper.getErrorDamRegion(damStatisticsRegion); }else if (damStatisticsRegion.getStatus().equals("normal")){ //点正常 if (damStatisticsRegion.getType().equals("sy")){ list = damSecurityMapper.getDamSyRegionNormal(damStatisticsRegion);//1 }else if (damStatisticsRegion.getType().equals("sl")){ list = damSecurityMapper.getDamSlRegionNormal(damStatisticsRegion);//1 }else if (damStatisticsRegion.getType().equals("wy")){ list = damSecurityMapper.getDamWyRegionNormal(damStatisticsRegion);//1 } } return list; } @Override public List damResInfoCountOptimize(String adCode) { List list = new ArrayList<>(); DamStatisticsRes sy = damSecurityMapper.damResInfoCountSy(adCode); DamStatisticsRes sl = damSecurityMapper.damResInfoCountSl(adCode); DamStatisticsRes wy = damSecurityMapper.damResInfoCountWy(adCode); list.add(sy); list.add(sl); list.add(wy); return list; } @Override public DamStatisticsRes damResInfoCountOptimizeType(String adCode, String type) { if (type.equals("sy")){ return damSecurityMapper.damResInfoCountSy(adCode); }else if(type.equals("sl")) { return damSecurityMapper.damResInfoCountSl(adCode); }else if (type.equals("wy")){ return damSecurityMapper.damResInfoCountWy(adCode); } return null; } @Override public List getLatestResRecord(AlarmGet alarmGet) { if (StringUtil.isBlank(alarmGet.getDamId())){ throw new ServiceException("水库编码为空"); } if (StringUtil.isBlank(alarmGet.getType())){ throw new ServiceException("监测类型为空"); } if (alarmGet.getType().equals("3")){ //位移,单独取测站名称 return damSecurityMapper.getLatestResRecordWy(alarmGet); }else{ return damSecurityMapper.getLatestResRecord(alarmGet); } } }