From 94953eb330390e35f947306fe4f077b9bced1609 Mon Sep 17 00:00:00 2001 From: zhangyue <82248909@qq.com> Date: Thu, 23 Jul 2026 19:11:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E5=8A=9F=E8=83=BD=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IndexAnalysisController.java | 81 +++++++++++++------ .../controller/ScEquZhibiaoController.java | 42 +++++++++- .../appmana/service/IScEquZhibiaoService.java | 2 + .../service/impl/ScEquZhibiaoServiceImpl.java | 46 +++++++++++ .../org/jeecg/common/entity/ScEquZhibiao.java | 8 ++ .../org/jeecg/common/vo/LiveDataTrans.java | 2 + 6 files changed, 156 insertions(+), 25 deletions(-) diff --git a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/IndexAnalysisController.java b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/IndexAnalysisController.java index b78d8f2..9c19f9e 100644 --- a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/IndexAnalysisController.java +++ b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/IndexAnalysisController.java @@ -10,6 +10,8 @@ import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.PollutionConstants; import org.jeecg.common.constant.enums.DeviceDeployEnum; +import org.jeecg.common.constant.enums.PollutionEnum; +import org.jeecg.common.entity.ScEquZhibiao; import org.jeecg.common.entity.SurvDeviceDeploy; import org.jeecg.common.entity.SurvStationInfo; import org.jeecg.common.vo.*; @@ -21,9 +23,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; @Api(tags="后台首页统计接口") @RestController @@ -40,8 +40,6 @@ public class IndexAnalysisController { @Autowired private IScEquZhibiaoService zhibiaoService; - @Autowired - private ISurvPestlightInfoService pestlightInfoService; @Autowired private IUserInfoService userInfoService; @@ -210,11 +208,13 @@ public class IndexAnalysisController { if(stationList!=null&&stationList.size()>0) { // Map> deviceMap = new HashMap<>(); for (SurvStationInfo survStationInfo : stationList) { - if (survStationInfo.getDeviceList() != null && survStationInfo.getDeviceList().size() > 0) { + if (survStationInfo.getDeviceList() != null && !survStationInfo.getDeviceList().isEmpty()) { List airList = new ArrayList<>(); List soilList = new ArrayList<>(); List orientList = new ArrayList<>(); + List orientIdList = new ArrayList<>(); List liveList = new ArrayList<>(); + List liveIdList = new ArrayList<>(); for (SurvDeviceDeploy survDeviceDeploy : survStationInfo.getDeviceList()) { if(PollutionConstants.SOIL_SURV.equals(survDeviceDeploy.getDeployType())){//土壤设备 soilList.add(survDeviceDeploy.getDeployCode()); @@ -222,12 +222,22 @@ public class IndexAnalysisController { airList.add(survDeviceDeploy.getDeployCode()); }else if(PollutionConstants.WATER_ORIENT.equals(survDeviceDeploy.getDeployType())) {//面源 orientList.add(survDeviceDeploy.getDeployCode()); + orientIdList.add(survDeviceDeploy.getId()); }else if(PollutionConstants.WATER_LIVE.equals(survDeviceDeploy.getDeployType())) {//畜禽 liveList.add(survDeviceDeploy.getDeployCode()); + liveIdList.add(survDeviceDeploy.getId()); }else if(PollutionConstants.CAMERA.equals(survDeviceDeploy.getDeployType())) {//摄像头 } } if(orientList.size()>0) { + List zhibiaoList = zhibiaoService.getAllChemical(orientIdList); + Map zhibiaoMap = new HashMap<>(); + if(zhibiaoList!=null&& !zhibiaoList.isEmpty()){ + for (ScEquZhibiao scEquZhibiao : zhibiaoList) { + zhibiaoMap.put(scEquZhibiao.getEntityField(),scEquZhibiao.getName()); + } + } + List orientSummry = orientwaterService.getMonthSummry(orientList, chooseYear); List avgTN = new ArrayList<>(); List avgTP = new ArrayList<>(); @@ -241,21 +251,37 @@ public class IndexAnalysisController { avgTP.add(orientDataTrans.getAvgTP()); avgNO.add(orientDataTrans.getAvgNO()); - avgNH.add(0D); - avgCOD.add(0D); + avgNH.add(orientDataTrans.getAvgNH()); + avgCOD.add(orientDataTrans.getAvgCod()); } } StationSummry stationSummry = new StationSummry(); - stationSummry.setTNSummry(avgTN); - stationSummry.setTPSummry(avgTP); - stationSummry.setNOSummry(avgNO); + if(zhibiaoMap.get(PollutionEnum.dataWaterTpSy.getCode())!=null){ + stationSummry.setTPSummry(avgTP); + } + if(zhibiaoMap.get(PollutionEnum.dataWaterTnSy.getCode())!=null){ + stationSummry.setTNSummry(avgTN); + } + if(zhibiaoMap.get(PollutionEnum.dataWaterNoSy.getCode())!=null){ + stationSummry.setNOSummry(avgNO); + } + if(zhibiaoMap.get(PollutionEnum.dataWaterCodSy.getCode())!=null){ + stationSummry.setCODSummry(avgCOD); + } + if(zhibiaoMap.get(PollutionEnum.dataWaterNhSy.getCode())!=null){ + stationSummry.setNHSummry(avgNH); + } - stationSummry.setCODSummry(avgNH); - stationSummry.setNHSummry(avgCOD); - returnArrs.add(JSONObject.parseObject(JSONObject.toJSONString(stationSummry, SerializerFeature.WriteNullStringAsEmpty))); + returnArrs.add(JSONObject.parseObject(JSONObject.toJSONString(stationSummry, SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty))); } if(liveList.size()>0){ - + List zhibiaoList = zhibiaoService.getAllChemical(liveIdList); + Map zhibiaoMap = new HashMap<>(); + if(zhibiaoList!=null&& !zhibiaoList.isEmpty()){ + for (ScEquZhibiao scEquZhibiao : zhibiaoList) { + zhibiaoMap.put(scEquZhibiao.getEntityField(),scEquZhibiao.getName()); + } + } List liveSummary = livestockwaterService.getMonthSummry(liveList,chooseYear); List avgTN = new ArrayList<>(); @@ -271,17 +297,26 @@ public class IndexAnalysisController { avgNH.add(liveDataTrans.getAvgNH()); avgCOD.add(liveDataTrans.getAvgCOD()); - avgNO.add(0D); + avgNO.add(liveDataTrans.getAvgNO()); } } StationSummry stationSummry = new StationSummry(); - stationSummry.setTNSummry(avgTN); - stationSummry.setTPSummry(avgTP); - stationSummry.setNHSummry(avgNH); - stationSummry.setCODSummry(avgCOD); - - stationSummry.setNOSummry(avgNO); - returnArrs.add(JSONObject.parseObject(JSONObject.toJSONString(stationSummry, SerializerFeature.WriteNullStringAsEmpty))); + if(zhibiaoMap.get(PollutionEnum.dataWaterTpSy.getCode())!=null){ + stationSummry.setTPSummry(avgTP); + } + if(zhibiaoMap.get(PollutionEnum.dataWaterTnSy.getCode())!=null){ + stationSummry.setTNSummry(avgTN); + } + if(zhibiaoMap.get(PollutionEnum.dataWaterNoSy.getCode())!=null){ + stationSummry.setNOSummry(avgNO); + } + if(zhibiaoMap.get(PollutionEnum.dataWaterCodSy.getCode())!=null){ + stationSummry.setCODSummry(avgCOD); + } + if(zhibiaoMap.get(PollutionEnum.dataWaterNhSy.getCode())!=null){ + stationSummry.setNHSummry(avgNH); + } + returnArrs.add(JSONObject.parseObject(JSONObject.toJSONString(stationSummry, SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty))); } } diff --git a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/ScEquZhibiaoController.java b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/ScEquZhibiaoController.java index 5a9cf2b..9ab9537 100644 --- a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/ScEquZhibiaoController.java +++ b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/ScEquZhibiaoController.java @@ -14,24 +14,31 @@ import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.config.TenantContext; import org.jeecg.common.constant.enums.PollutionEnum; import org.jeecg.common.entity.ScEquZhibiao; +import org.jeecg.common.entity.SurvDeviceDeploy; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.util.JwtUtil; +import org.jeecg.common.tenant.TenantContextHolder; import org.jeecg.common.vo.PolutionVo; import org.jeecg.modules.appmana.service.IScEquZhibiaoService; +import org.jeecg.modules.appmana.service.ISurvDeviceDeployService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; import java.util.Arrays; import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; - /** +/** * @Description: sc_equ_zhibiao * @Author: jeecg-boot * @Date: 2023-07-11 @@ -44,7 +51,8 @@ import java.util.Date; public class ScEquZhibiaoController extends JeecgController { @Autowired private IScEquZhibiaoService scEquZhibiaoService; - + @Autowired + private ISurvDeviceDeployService deviceDeployService; /** * 分页列表查询 * @@ -61,9 +69,39 @@ public class ScEquZhibiaoController extends JeecgController deploys = new ArrayList<>(); + if(!"0".equals(tenantId)){ + List deployList = deviceDeployService.lambdaQuery() + .eq(SurvDeviceDeploy::getTenantId, tenantId) + .list() + ; + if(!deployList.isEmpty()){ + deploys = deployList.stream().map(SurvDeviceDeploy::getId).collect(Collectors.toList()); + }else{ + deploys.add("x"); + } + + } + + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(scEquZhibiao, req.getParameterMap()); + + if(StringUtils.isNotBlank(scEquZhibiao.getStationCode())){ + List deployList2 = deviceDeployService.lambdaQuery() + .eq(SurvDeviceDeploy::getStationCode, scEquZhibiao.getStationCode()) + .list() + ; + if(!deployList2.isEmpty()){ + deploys = deployList2.stream().map(SurvDeviceDeploy::getId).collect(Collectors.toList()); + }else{ + deploys.add("y"); + } + } + queryWrapper.in("equ_id", deploys); Page page = new Page(pageNo, pageSize); IPage pageList = scEquZhibiaoService.page(page, queryWrapper.orderByAsc("sort_no").orderByDesc("create_time")); + scEquZhibiaoService.fills(pageList.getRecords()); return Result.OK(pageList); } diff --git a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/IScEquZhibiaoService.java b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/IScEquZhibiaoService.java index 6c660c2..d21e4d5 100644 --- a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/IScEquZhibiaoService.java +++ b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/IScEquZhibiaoService.java @@ -18,4 +18,6 @@ public interface IScEquZhibiaoService extends IService { Integer getALlZhiBiaoCount(); List getListByEquid(String deployId); + + void fills(List records); } diff --git a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/ScEquZhibiaoServiceImpl.java b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/ScEquZhibiaoServiceImpl.java index 1915971..fab1cab 100644 --- a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/ScEquZhibiaoServiceImpl.java +++ b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/ScEquZhibiaoServiceImpl.java @@ -4,11 +4,17 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.entity.ScEquZhibiao; import org.jeecg.common.entity.SurvDeviceDeploy; +import org.jeecg.common.entity.SurvStationInfo; import org.jeecg.modules.appmana.mapper.ScEquZhibiaoMapper; import org.jeecg.modules.appmana.service.IScEquZhibiaoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @Description: sc_equ_zhibiao @@ -18,6 +24,12 @@ import java.util.List; */ @Service public class ScEquZhibiaoServiceImpl extends ServiceImpl implements IScEquZhibiaoService { + @Lazy + @Autowired + private SurvDeviceDeployServiceImpl deviceDeployService; + @Lazy + @Autowired + private SurvStationInfoServiceImpl survStationInfoService; @Override public List getAllChemical(List deviceList) { @@ -45,5 +57,39 @@ public class ScEquZhibiaoServiceImpl extends ServiceImpl records) { + if(records!=null && !records.isEmpty()){ + List equIds = records.stream().map(ScEquZhibiao::getEquId).collect(Collectors.toList()); + Map stationMap = new HashMap<>(); + Map deployMap = new HashMap<>(); + if(!equIds.isEmpty()){ + List deploys = deviceDeployService.listByIds(equIds); + if(deploys!=null && !deploys.isEmpty()){ + List stations = deploys.stream().map(SurvDeviceDeploy::getStationCode).collect(Collectors.toList()); + List stationInfos = survStationInfoService.getStationByCode(stations); + if(stationInfos!=null && !stationInfos.isEmpty()){ + for (SurvStationInfo stationInfo : stationInfos) { + stationMap.put(stationInfo.getStationCode(),stationInfo); + } + } + for (SurvDeviceDeploy deploy : deploys) { + deployMap.put(deploy.getId(),deploy); + } + + } + + } + for (ScEquZhibiao record : records) { + SurvDeviceDeploy deploy = deployMap.get(record.getEquId()); + record.setDeployName(deploy!=null?deploy.getDeployDes():""); + if(deploy!=null){ + SurvStationInfo stationInfo = stationMap.get(deploy.getStationCode()); + record.setStationName(stationInfo!=null?stationInfo.getStationName():""); + } + } + } + } + } diff --git a/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/entity/ScEquZhibiao.java b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/entity/ScEquZhibiao.java index d158080..781f394 100644 --- a/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/entity/ScEquZhibiao.java +++ b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/entity/ScEquZhibiao.java @@ -93,4 +93,12 @@ public class ScEquZhibiao implements Serializable { @ApiModelProperty(value = "字典key") private String eleKey; + @TableField(exist = false) + private String deployName; + + @TableField(exist = false) + private String stationName; + + @TableField(exist = false) + private String stationCode; } diff --git a/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/LiveDataTrans.java b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/LiveDataTrans.java index 52b7f11..42bab01 100644 --- a/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/LiveDataTrans.java +++ b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/LiveDataTrans.java @@ -18,5 +18,7 @@ public class LiveDataTrans { private double avgNH; private double avgCOD; + + private double avgNO; }