From bdd3b95a503393f8eb79279d0653f8f88dc8d992 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期五, 15 三月 2024 15:29:37 +0800 Subject: [PATCH] 添加长度统计功能 --- src/main/java/com/lf/server/entity/ctrl/CountEntity.java | 10 ++++++++++ src/main/resources/mapper/sys/ReportMapper.xml | 4 ++-- src/main/java/com/lf/server/service/sys/ReportService.java | 13 ++++++++++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/lf/server/entity/ctrl/CountEntity.java b/src/main/java/com/lf/server/entity/ctrl/CountEntity.java index 06c01a5..4aa1012 100644 --- a/src/main/java/com/lf/server/entity/ctrl/CountEntity.java +++ b/src/main/java/com/lf/server/entity/ctrl/CountEntity.java @@ -19,6 +19,8 @@ private Double area; + private Double len; + public CountEntity() { } @@ -77,4 +79,12 @@ public void setArea(Double area) { this.area = area; } + + public Double getLen() { + return len; + } + + public void setLen(Double len) { + this.len = len; + } } 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 0e6c212..3d6eb56 100644 --- a/src/main/java/com/lf/server/service/sys/ReportService.java +++ b/src/main/java/com/lf/server/service/sys/ReportService.java @@ -365,7 +365,13 @@ case "countMptAreaByPrj": case "countOsgbAreaByPrj": case "countLasAreaByPrj": + case "countDlgAreaByPrj": + case "countDomAreaByPrj": + case "countGeoModelAreaByPrj": addList.add(new String[]{"" + ce.getNo(), ce.getM1(), ce.getM3()}); + break; + case "countLineLength": + addList.add(new String[]{"" + ce.getNo(), ce.getM1(), "" + ce.getLen()}); break; default: addList.add(new String[]{"" + ce.getNo(), ce.getM1(), "" + ce.getCount()}); @@ -399,7 +405,7 @@ int rows = 1; long allCount = 0; - Double allSize = 0d, allArea = 0d; + Double allSize = 0d, allArea = 0d, allLen = 0d; for (CountEntity ce : list) { ce.setNo(rows++); if (StringUtils.isEmpty(ce.getM2())) { @@ -409,6 +415,7 @@ allCount += ce.getCount(); allSize += ce.getSizes(); allArea += ce.getArea(); + allLen += ce.getLen(); } if (list.size() > 0) { CountEntity ce = new CountEntity(); @@ -419,6 +426,7 @@ ce.setM2(FileHelper.getSizes(allSize)); } ce.setM3(FileHelper.getSquareMeter(allArea)); + ce.setLen(allLen); list.add(ce); } @@ -453,6 +461,9 @@ if (null == ce.getArea()) { ce.setArea(0d); } + if (null == ce.getLen()) { + ce.setLen(0d); + } } return list; diff --git a/src/main/resources/mapper/sys/ReportMapper.xml b/src/main/resources/mapper/sys/ReportMapper.xml index 94e34ea..fe6adaf 100644 --- a/src/main/resources/mapper/sys/ReportMapper.xml +++ b/src/main/resources/mapper/sys/ReportMapper.xml @@ -284,9 +284,9 @@ <!-- 缁熻绠$嚎闀垮害 --> <select id="countLineLength" resultType="com.lf.server.entity.ctrl.CountEntity"> - select name "m1", code, + select name "m1", (select cast( coalesce(sum( ST_Length( ST_GeographyFromText( ST_AsText(geom) ) ) ) / 1000, 0) as decimal(20, 2) ) - from bs.m_pipeline b where b.dirid like a.code || '%') as "sizes" + from bs.m_pipeline b where b.dirid like a.code || '%') as "len" from lf.sys_dir a where pid = 0 order by a.code; -- Gitblit v1.9.3