From abde38d6baba3b50df5e39daba87a93c372e0675 Mon Sep 17 00:00:00 2001
From: gonglilong <328255720@qq.com>
Date: Fri, 13 Sep 2024 19:03:13 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev
---
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgProjectInfoDO.java | 25 ++++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java | 67 +++++++++++++++-------
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/VO/SgOperatingRateVO.java | 34 +++++++++++
3 files changed, 105 insertions(+), 21 deletions(-)
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgProjectInfoDO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgProjectInfoDO.java
index de43ab8..d723148 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgProjectInfoDO.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgProjectInfoDO.java
@@ -201,4 +201,29 @@
*/
private String lot;
+
+ /**
+ * 表面变形
+ */
+ private int surfaceNum;
+ private String surfaceProgress;
+
+ /**
+ * 视频
+ */
+ private int videoNum;
+ private String videoProgress;
+
+ /**
+ * 渗流压力
+ */
+ private int transNum;
+ private String transProgress;
+
+ /**
+ * 渗流量
+ */
+ private int seepageNum;
+ private String seepageProgress;
+
}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/VO/SgOperatingRateVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/VO/SgOperatingRateVO.java
new file mode 100644
index 0000000..d118b12
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/VO/SgOperatingRateVO.java
@@ -0,0 +1,34 @@
+package cn.gistack.sm.sg.VO;
+
+import lombok.Data;
+
+/**
+ * 设备类型开工率VO
+ */
+@Data
+public class SgOperatingRateVO {
+ /**
+ * 表面变形
+ */
+ private int surfaceNum;
+ private String surfaceProgress;
+
+ /**
+ * 视频
+ */
+ private int videoNum;
+ private String videoProgress;
+
+ /**
+ * 渗流压力
+ */
+ private int transNum;
+ private String transProgress;
+
+ /**
+ * 渗流量
+ */
+ private int seepageNum;
+ private String seepageProgress;
+ private String proIds;
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
index 868e1a8..275f281 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
@@ -353,21 +353,44 @@
//片区
if (ywxtAdDetail == null) {
sgStatisProVOS = sgProjectInfoMapper.getsgStatisticsZero(code);
- getDeviceTypes(sgStatisProVOS);
+ setDeviceTypes(sgStatisProVOS);
// String getname = sgProjectInfoMapper.getname(code);
String getname = code;
updateProjectProgress(sgStatisProVOS, code, getname, "2");
} else if (ywxtAdDetail.getAdGrad().equals("1")) {//默认
sgStatisProVOS = sgProjectInfoMapper.getsgStatisticsOne(code);
sgStatisProVOS = getSgStatisProVOS(sgStatisProVOS);
- getDeviceTypes(sgStatisProVOS);
+ setDeviceTypes(sgStatisProVOS);
updateProjectProgress(sgStatisProVOS, ywxtAdDetail.getPAdCode(), ywxtAdDetail.getPAdName(), "0");
} else {//区县
sgStatisProVOS = sgProjectInfoMapper.getsgStatisticsList(code);
- getDeviceTypes(sgStatisProVOS);
+ setDeviceTypes(sgStatisProVOS);
updateProjectProgress(sgStatisProVOS, ywxtAdDetail.getAdCode(), ywxtAdDetail.getAdName(), "3");
}
return sgStatisProVOS;
+ }
+
+ /**
+ * 统计施工进度
+ * @param sgStatisProVOS
+ */
+ private void setDeviceTypes(List<SgStatisProVO> sgStatisProVOS) {
+ if (CollectionUtils.isNotEmpty(sgStatisProVOS)){
+ Map<String, SgOperatingRateVO> deviceTypes = getDeviceTypes(sgStatisProVOS.stream().map(SgStatisProVO::getProIds).collect(Collectors.toList()));
+ for (SgStatisProVO vo : sgStatisProVOS) {
+ SgOperatingRateVO sVo = deviceTypes.get(vo.getProIds());
+ if (Objects.nonNull(sVo)){
+ vo.setSurfaceNum(sVo.getSurfaceNum());
+ vo.setSurfaceProgress(sVo.getSurfaceProgress()+"%");
+ vo.setVideoNum(sVo.getVideoNum());
+ vo.setVideoProgress(sVo.getVideoProgress()+"%");
+ vo.setTransNum(sVo.getTransNum());
+ vo.setTransProgress(sVo.getTransProgress()+"%");
+ vo.setSeepageNum(sVo.getSeepageNum());
+ vo.setSeepageProgress(sVo.getSeepageProgress()+"%");
+ }
+ }
+ }
}
/**
@@ -399,12 +422,12 @@
/**
* 统计设备类型开工率
- * @param sgStatisProVOS
*/
- private void getDeviceTypes(List<SgStatisProVO> sgStatisProVOS) {
- if (CollectionUtils.isNotEmpty(sgStatisProVOS)){
- for (SgStatisProVO vo : sgStatisProVOS) {
- String proIds = vo.getProIds();
+ private Map<String,SgOperatingRateVO> getDeviceTypes(List<String> projectIds) {
+ Map<String,SgOperatingRateVO> result = new HashMap<>();
+ if (CollectionUtils.isNotEmpty(projectIds)){
+ for (String proIds : projectIds) {
+ SgOperatingRateVO sgOperatingRateVO = new SgOperatingRateVO();
if (StringUtils.isNotBlank(proIds)){
List<SgStatisDeviceVO> deviceVOS = sgProjectInfoMapper.getDeviceTypes("("+proIds+")");
if(CollectionUtils.isNotEmpty(deviceVOS)){
@@ -414,12 +437,12 @@
if (Objects.nonNull(sg108)){
Integer deviceCount = sg108.getDeviceCount();
Integer deviceStart = sg108.getDeviceStart();
- vo.setSurfaceNum(deviceCount);
+ sgOperatingRateVO.setSurfaceNum(deviceCount);
if (deviceCount != 0){
BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
- vo.setSeepageProgress(getBigDecimalPercent(divide));
+ sgOperatingRateVO.setSeepageProgress(getBigDecimalPercent(divide));
}else {
- vo.setSeepageProgress("0%");
+ sgOperatingRateVO.setSeepageProgress("0");
}
}
//视频
@@ -427,12 +450,12 @@
if (Objects.nonNull(sg104)){
Integer deviceCount = sg104.getDeviceCount();
Integer deviceStart = sg104.getDeviceStart();
- vo.setVideoNum(deviceCount);
+ sgOperatingRateVO.setVideoNum(deviceCount);
if (deviceCount != 0){
BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
- vo.setVideoProgress(getBigDecimalPercent(divide));
+ sgOperatingRateVO.setVideoProgress(getBigDecimalPercent(divide));
}else {
- vo.setVideoProgress("0%");
+ sgOperatingRateVO.setVideoProgress("0");
}
}
//渗压
@@ -440,12 +463,12 @@
if (Objects.nonNull(sg101)){
Integer deviceCount = sg101.getDeviceCount();
Integer deviceStart = sg101.getDeviceStart();
- vo.setTransNum(deviceCount);
+ sgOperatingRateVO.setTransNum(deviceCount);
if (deviceCount != 0){
BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
- vo.setTransProgress(getBigDecimalPercent(divide));
+ sgOperatingRateVO.setTransProgress(getBigDecimalPercent(divide));
}else {
- vo.setTransProgress("0%");
+ sgOperatingRateVO.setTransProgress("0");
}
}
//渗流
@@ -453,18 +476,20 @@
if (Objects.nonNull(sg102)){
Integer deviceCount = sg102.getDeviceCount();
Integer deviceStart = sg102.getDeviceStart();
- vo.setSeepageNum(deviceCount);
+ sgOperatingRateVO.setSeepageNum(deviceCount);
if (deviceCount != 0){
BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
- vo.setSeepageProgress(getBigDecimalPercent(divide));
+ sgOperatingRateVO.setSeepageProgress(getBigDecimalPercent(divide));
}else {
- vo.setSeepageProgress("0%");
+ sgOperatingRateVO.setSeepageProgress("0");
}
}
}
+ result.put(proIds,sgOperatingRateVO);
}
}
}
+ return result;
}
private void updateProjectProgress(List<SgStatisProVO> sgStatisProVOS, String pcode, String pname, String adGrad) {
@@ -557,7 +582,7 @@
BigDecimal percentage = bigDecimal.multiply(new BigDecimal("100"));
// 如果不需要保留小数位,可以设置一个scale为0
BigDecimal percentageRounded = percentage.setScale(0, RoundingMode.HALF_UP);
- return percentageRounded+"%";
+ return percentageRounded.toString();
}
@Override
--
Gitblit v1.9.3