From f849c87a07300020dbef300c79d1eacfc1439f84 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 06 三月 2024 15:41:58 +0800 Subject: [PATCH] 修改数据统计控制器 --- src/main/java/com/lf/server/service/sys/ReportService.java | 147 +++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 131 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/lf/server/service/sys/ReportService.java b/src/main/java/com/lf/server/service/sys/ReportService.java index a01529c..a5bbecd 100644 --- a/src/main/java/com/lf/server/service/sys/ReportService.java +++ b/src/main/java/com/lf/server/service/sys/ReportService.java @@ -1,9 +1,8 @@ package com.lf.server.service.sys; import com.lf.server.entity.all.RedisCacheKey; -import com.lf.server.entity.all.ResAuthEntity; -import com.lf.server.entity.all.SettingData; import com.lf.server.entity.all.StaticData; +import com.lf.server.entity.ctrl.CoordinateEntity; import com.lf.server.entity.ctrl.CountEntity; import com.lf.server.entity.data.DownloadEntity; import com.lf.server.entity.sys.AttachEntity; @@ -13,14 +12,15 @@ import com.lf.server.mapper.sys.ReportMapper; import com.lf.server.service.all.RedisService; import com.lf.server.service.data.DownloadService; -import org.springframework.beans.factory.annotation.Autowired; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.util.*; -import java.util.concurrent.TimeUnit; /** * 鎶ュ憡妯℃澘 @@ -28,6 +28,9 @@ */ @Service public class ReportService implements ReportMapper { + @Value("${sys.turfServer}") + private String turfServer; + @Resource ReportMapper reportMapper; @@ -42,6 +45,8 @@ @Resource RedisService redisService; + + private final static Log log = LogFactory.getLog(ReportService.class); @Override public Integer selectCount(String name, String code) { @@ -125,26 +130,132 @@ @Override public List<CountEntity> countExplorationPoints() { String key = RedisCacheKey.dataCountKey("countExplorationPoints"); - Object obj = redisService.get(key); - if (obj instanceof List<?>) { - return (List<CountEntity>) obj; - } - - List<CountEntity> list = reportMapper.countExplorationPoints(); - if (null != list && list.size() > 0) { + List<CountEntity> list = redisService.getListByKey(key); + if (null == list) { + list = reportMapper.countExplorationPoints(); countExplorationArea(list); - redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES); + redisService.saveListByKey(key, list, StaticData.I2); } return list; + } + + @Override + public List<CoordinateEntity> selectExplorationPoints(String code) { + return reportMapper.selectExplorationPoints(StringHelper.getRightLike(code)); + } + + @Override + public List<CountEntity> countDemAreaByPrj() { + return reportMapper.countDemAreaByPrj(); + } + + @Override + public List<CountEntity> countMptAreaByPrj() { + return reportMapper.countMptAreaByPrj(); + } + + @Override + public List<CountEntity> countOsgbAreaByPrj() { + return reportMapper.countOsgbAreaByPrj(); + } + + @Override + public List<CountEntity> countLasAreaByPrj() { + return reportMapper.countLasAreaByPrj(); + } + + @Override + public List<CountEntity> countSurveyWorksiteByPrj() { + return reportMapper.countSurveyWorksiteByPrj(); + } + + @Override + public List<CountEntity> countExplorationReportByPrj() { + return reportMapper.countExplorationReportByPrj(); + } + + @Override + public List<CountEntity> countCollapseByPrj() { + return reportMapper.countCollapseByPrj(); + } + + @Override + public List<CountEntity> countDebrisFlowByPrj() { + return reportMapper.countDebrisFlowByPrj(); + } + + @Override + public List<CountEntity> countGroundCollapseByPrj() { + return reportMapper.countGroundCollapseByPrj(); + } + + @Override + public List<CountEntity> countHighSteepSlopeByPrj() { + return reportMapper.countHighSteepSlopeByPrj(); + } + + @Override + public List<CountEntity> countLandSlideByPrj() { + return reportMapper.countLandSlideByPrj(); + } + + @Override + public List<CountEntity> countUnstableSlopeByPrj() { + return reportMapper.countUnstableSlopeByPrj(); + } + + @Override + public List<CountEntity> countWaterDamageByPrj() { + return reportMapper.countWaterDamageByPrj(); } /** * 缁熻閽诲瓟鐐归潰绉� */ private void countExplorationArea(List<CountEntity> list) { + if (null == list) { + return; + } + for (CountEntity ce : list) { + if (0 == ce.getCount()) { + continue; + } + double area = calcPolygonArea(ce.getM3()); + ce.setArea(area); + } + } + /** + * 璁$畻澶氳竟褰㈤潰绉� + */ + private double calcPolygonArea(String code) { + try { + String url = turfServer + "/Call/CalcArea?code=" + code; + String str = RestHelper.get(url); + if (StringHelper.isEmpty(str)) { + return 0d; + } + + return Double.parseDouble(str); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + return 0d; + } + } + + /** + * 璋冪敤JS鏂规硶 * + */ + private double callJsFn(String str) { + String staticPath = PathHelper.getStaticPath(); + Object obj = JsHelper.callJsFn(staticPath + "js/turf.min.6.5.js", "pointsToPolygon", str); + if (null == obj) { + return 0d; + } + + return (double) obj; } /** @@ -311,16 +422,17 @@ } int rows = 1, allCount = 0; - Double allSize = 0d; + Double allSize = 0d, allArea = 0d; ArrayList<String[]> addList = new ArrayList<>(); for (CountEntity ce : list) { allSize += ce.getSizes(); allCount += ce.getCount(); - String[] strs = new String[]{"" + rows++, ce.getM1(), "" + ce.getCount(), FileHelper.getSizes(ce.getSizes())}; + allArea += ce.getArea(); + String[] strs = new String[]{"" + rows++, ce.getM1(), "" + ce.getCount(), FileHelper.getSizes(ce.getSizes()), FileHelper.getSquareMeter(ce.getArea())}; addList.add(strs); } if (addList.size() > 0) { - addList.add(new String[]{"" + rows, "鎬昏", "" + allCount, FileHelper.getSizes(allSize)}); + addList.add(new String[]{"" + rows, "鎬昏", "" + allCount, FileHelper.getSizes(allSize), FileHelper.getSquareMeter(allArea)}); } WordHelper.generateWord(source, target, null, addList); @@ -472,12 +584,14 @@ } int rows = 1, allCount = 0; - Double allSize = 0d; + Double allSize = 0d, allArea = 0d; for (CountEntity ce : list) { ce.setNo(rows++); ce.setM2(FileHelper.getSizes(ce.getSizes())); + ce.setM3(FileHelper.getSquareMeter(ce.getArea())); allCount += ce.getCount(); allSize += ce.getSizes(); + allArea += ce.getArea(); } if (list.size() > 0) { CountEntity ce = new CountEntity(); @@ -485,6 +599,7 @@ ce.setM1("鎬昏"); ce.setCount((long) allCount); ce.setM2(FileHelper.getSizes(allSize)); + ce.setM3(FileHelper.getSquareMeter(allArea)); list.add(ce); } -- Gitblit v1.9.3