Browse Source

生产调度概览页接口调整

wangli 4 years ago
parent
commit
7541fd7a9d

+ 30 - 15
sms_water/src/main/java/com/huaxu/dao/MonitorDataReportMapper.java

@@ -89,19 +89,34 @@ public interface MonitorDataReportMapper {
                                                                                @Param("programItems")List<ProgramItem> programItems);
 
 
-    List<String> selectDeviceCode(@Param("tenantId")String tenantId);
-
-    List<DeviceWaterSupply> getDeviceWaterFor30Day(@Param("tenantId")String tenantId);
-
-    List<DeviceWaterDetail> getDeviceWaterDetailForNow(@Param("sceneTypeName")String sceneTypeName,@Param("parmType")Integer parmType,@Param("tenantId")String tenantId);
-    List<DeviceWaterDetail> getDeviceWaterDetailForDay(@Param("sceneTypeName")String sceneTypeName,@Param("parmType")Integer parmType,@Param("tenantId")String tenantId,@Param("year")Integer year, @Param("month")Integer month, @Param("day")Integer day);
-    BigDecimal getDeviceWaterDetailForMonth(@Param("sceneTypeName")String sceneTypeName,@Param("parmType")Integer parmType,@Param("tenantId")String tenantId, @Param("year")Integer year, @Param("month")Integer month);
-    BigDecimal getDeviceWaterDetailForYear(@Param("sceneTypeName")String sceneTypeName,@Param("parmType")Integer parmType,@Param("tenantId")String tenantId,@Param("year")Integer year);
-
-
-    List<SceneAlarm> getAlarmInfoForScene( @Param("tenantId")String tenantId);
-
-    SceneNormalRate getQualificationForScene(@Param("tenantId")String tenantId, @Param("parmType")Integer parmType );
-
-    List<WaterSupplyData> getWaterSupplyData(@Param("tenantId")String tenantId,@Param("sceneTypeName")String sceneTypeName);
+    List<String> selectDeviceCode(@Param("tenantId")String tenantId,@Param("userType")String userType,@Param("permissonType")Integer permissonType,
+                                  @Param("programItems")List<ProgramItem> programItems);
+
+    List<DeviceWaterSupply> getDeviceWaterFor30Day(@Param("tenantId")String tenantId,@Param("userType")String userType,@Param("permissonType")Integer permissonType,
+                                                   @Param("programItems")List<ProgramItem> programItems);
+
+    List<DeviceWaterDetail> getDeviceWaterDetailForNow(@Param("sceneTypeName")String sceneTypeName,@Param("parmType")Integer parmType,@Param("tenantId")String tenantId,
+                                                       @Param("userType")String userType,@Param("permissonType")Integer permissonType,
+                                                       @Param("programItems")List<ProgramItem> programItems);
+    List<DeviceWaterDetail> getDeviceWaterDetailForDay(@Param("sceneTypeName")String sceneTypeName,@Param("parmType")Integer parmType,@Param("tenantId")String tenantId,
+                                                       @Param("year")Integer year, @Param("month")Integer month, @Param("day")Integer day,
+                                                       @Param("userType")String userType,@Param("permissonType")Integer permissonType,
+                                                       @Param("programItems")List<ProgramItem> programItems);
+    BigDecimal getDeviceWaterDetailForMonth(@Param("sceneTypeName")String sceneTypeName,@Param("parmType")Integer parmType,@Param("tenantId")String tenantId,
+                                            @Param("year")Integer year, @Param("month")Integer month,
+                                            @Param("userType")String userType,@Param("permissonType")Integer permissonType,
+                                            @Param("programItems")List<ProgramItem> programItems);
+    BigDecimal getDeviceWaterDetailForYear(@Param("sceneTypeName")String sceneTypeName,@Param("parmType")Integer parmType,@Param("tenantId")String tenantId,
+                                           @Param("year")Integer year,@Param("userType")String userType,@Param("permissonType")Integer permissonType,
+                                           @Param("programItems")List<ProgramItem> programItems);
+
+
+    List<SceneAlarm> getAlarmInfoForScene( @Param("tenantId")String tenantId,@Param("userType")String userType,@Param("permissonType")Integer permissonType,
+                                           @Param("programItems")List<ProgramItem> programItems);
+
+    SceneNormalRate getQualificationForScene(@Param("tenantId")String tenantId, @Param("parmType")Integer parmType ,@Param("userType")String userType,@Param("permissonType")Integer permissonType,
+                                             @Param("programItems")List<ProgramItem> programItems);
+
+    List<WaterSupplyData> getWaterSupplyData(@Param("tenantId")String tenantId,@Param("sceneTypeName")String sceneTypeName,@Param("userType")String userType,@Param("permissonType")Integer permissonType,
+                                             @Param("programItems")List<ProgramItem> programItems);
 }

+ 10 - 0
sms_water/src/main/java/com/huaxu/dto/generalView/DeviceWaterAmount.java

@@ -1,5 +1,7 @@
 package com.huaxu.dto.generalView;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.huaxu.util.jsonSerializer.BigDecimalJsonSerializer;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -19,21 +21,29 @@ public class DeviceWaterAmount implements Serializable {
     private static final long serialVersionUID = 1140562129268115741L;
 
     @ApiModelProperty("供水瞬时流量")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal waterSupplyAmountForNow;
     @ApiModelProperty("本日供水量")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal waterSupplyAmountForDay;
     @ApiModelProperty("本月供水量")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal waterSupplyAmountForMonth;
     @ApiModelProperty("本年供水量")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal waterSupplyAmountForYear;
 
     @ApiModelProperty("原水瞬时流量")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal waterIntakeAmountForNow;
     @ApiModelProperty("本日原水量")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal waterIntakeAmountForDay;
     @ApiModelProperty("本月原水量")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal waterIntakeAmountForMonth;
     @ApiModelProperty("本年原水量")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal waterIntakeAmountForYear;
 
     //3供水

+ 5 - 0
sms_water/src/main/java/com/huaxu/dto/generalView/SceneNormalRate.java

@@ -1,5 +1,7 @@
 package com.huaxu.dto.generalView;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.huaxu.util.jsonSerializer.BigDecimalJsonSerializer;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -22,6 +24,9 @@ public class SceneNormalRate implements Serializable {
     @ApiModelProperty("正常数量")
     private Integer normal;
     @ApiModelProperty("合格率")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal normalRate;
+    @ApiModelProperty("名称")
+    private String typeName;
 
 }

+ 3 - 0
sms_water/src/main/java/com/huaxu/dto/generalView/SceneWaterAmount.java

@@ -1,5 +1,7 @@
 package com.huaxu.dto.generalView;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.huaxu.util.jsonSerializer.BigDecimalJsonSerializer;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -20,5 +22,6 @@ public class SceneWaterAmount implements Serializable {
     @ApiModelProperty("场景名称")
     private String sceneName;
     @ApiModelProperty("水量")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal waterAmount;
 }

+ 8 - 0
sms_water/src/main/java/com/huaxu/dto/generalView/SceneWaterPressure.java

@@ -1,11 +1,14 @@
 package com.huaxu.dto.generalView;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.huaxu.util.jsonSerializer.BigDecimalJsonSerializer;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * @description
@@ -29,15 +32,20 @@ public class SceneWaterPressure implements Serializable {
     @ApiModelProperty("一级压力数量,>0.50")
     private Integer pressureLevel5;
 
+    @ApiModelProperty("各级压力数量")
+    private List<Integer> pressureLevels;
     @ApiModelProperty("最小压力场景名称")
     private String minPressureSceneName;
     @ApiModelProperty("最小压力值")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal minPressureValue;
     @ApiModelProperty("最大压力场景名称")
     private String maxPressureSceneName;
     @ApiModelProperty("最大压力值")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal maxPressureValue;
     @ApiModelProperty("平均压力值")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal avgPressureValue;
 
     public SceneWaterPressure(){

+ 7 - 0
sms_water/src/main/java/com/huaxu/dto/generalView/WaterSupplyChart.java

@@ -1,5 +1,7 @@
 package com.huaxu.dto.generalView;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.huaxu.util.jsonSerializer.BigDecimalJsonSerializer;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -28,11 +30,16 @@ public class WaterSupplyChart implements Serializable {
     @ApiModelProperty("日期")
     private String date;
     @ApiModelProperty("制水量")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal waterData;
     @ApiModelProperty("电耗")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal powerData;
     @ApiModelProperty("药耗")
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal drugData;
+
+
     public WaterSupplyChart (){ }
 
     public WaterSupplyChart ( Integer i){

+ 3 - 0
sms_water/src/main/java/com/huaxu/dto/generalView/WaterSupplyData.java

@@ -1,5 +1,7 @@
 package com.huaxu.dto.generalView;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.huaxu.util.jsonSerializer.BigDecimalJsonSerializer;
 import io.swagger.annotations.Api;
 import lombok.Data;
 
@@ -24,6 +26,7 @@ public class WaterSupplyData implements Serializable {
     private Integer month;
     private Integer day;
     private Integer parmType;
+    @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal amount;
     private String unit;
 

+ 39 - 24
sms_water/src/main/java/com/huaxu/service/impl/MonitorDataReportServiceImpl.java

@@ -555,7 +555,7 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
     public List<DeviceWaterSupply> deviceWaterSupplie() {
         LoginUser loginUser = UserUtil.getCurrentUser();
         String tenantId = loginUser.getTenantId();
-        List<DeviceWaterSupply> deviceWaterSupplies = monitorDataReportMapper.getDeviceWaterFor30Day(tenantId);
+        List<DeviceWaterSupply> deviceWaterSupplies = monitorDataReportMapper.getDeviceWaterFor30Day(tenantId,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
 
         LocalDate localDate = LocalDate.now();
 
@@ -587,14 +587,14 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
     public DeviceWaterAmount deviceWaterAmount() {
         LoginUser loginUser = UserUtil.getCurrentUser();
         String tenantId = loginUser.getTenantId();
-        Map<Integer, MonitorDataEntity> MonitorDataMap = getIntegerMonitorDataEntityMap(tenantId);
+        Map<Integer, MonitorDataEntity> MonitorDataMap = getIntegerMonitorDataEntityMap(loginUser);
 
         LocalDate localDate = LocalDate.now();
 
         DeviceWaterAmount deviceWaterAmount = new DeviceWaterAmount();
         //14瞬时流量
-        List<DeviceWaterDetail> deviceSupplyWaterDetailsForNow = monitorDataReportMapper.getDeviceWaterDetailForNow("水厂", 14, tenantId);
-        List<DeviceWaterDetail> deviceIntakeWaterDetailsForNow = monitorDataReportMapper.getDeviceWaterDetailForNow("水源", 14, tenantId);
+        List<DeviceWaterDetail> deviceSupplyWaterDetailsForNow = monitorDataReportMapper.getDeviceWaterDetailForNow("水厂", 14, tenantId,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
+        List<DeviceWaterDetail> deviceIntakeWaterDetailsForNow = monitorDataReportMapper.getDeviceWaterDetailForNow("水源", 14, tenantId,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
 
         //水厂获取实时流量并计算出当天流量
         for (DeviceWaterDetail deviceWaterDetail : deviceSupplyWaterDetailsForNow) {
@@ -623,8 +623,8 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         }
 
         //3供水 4取水
-        List<DeviceWaterDetail> deviceSupplyWaterDetailsForDay = monitorDataReportMapper.getDeviceWaterDetailForDay("水厂", 3, tenantId, localDate.getYear(), localDate.getMonthValue(), localDate.getDayOfMonth());
-        List<DeviceWaterDetail> deviceIntakeWaterDetailsForDay = monitorDataReportMapper.getDeviceWaterDetailForDay("水源", 4, tenantId, localDate.getYear(), localDate.getMonthValue(), localDate.getDayOfMonth());
+        List<DeviceWaterDetail> deviceSupplyWaterDetailsForDay = monitorDataReportMapper.getDeviceWaterDetailForDay("水厂", 3, tenantId, localDate.getYear(), localDate.getMonthValue(), localDate.getDayOfMonth(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
+        List<DeviceWaterDetail> deviceIntakeWaterDetailsForDay = monitorDataReportMapper.getDeviceWaterDetailForDay("水源", 4, tenantId, localDate.getYear(), localDate.getMonthValue(), localDate.getDayOfMonth(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
 
         //水厂获取实时流量并计算出当天流量
         for (DeviceWaterDetail deviceWaterDetail : deviceSupplyWaterDetailsForDay) {
@@ -652,8 +652,8 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
             }
         }
 
-        BigDecimal waterSupplyAmountForMonth = monitorDataReportMapper.getDeviceWaterDetailForMonth("水厂", 3, tenantId, localDate.getYear(), localDate.getMonthValue());
-        BigDecimal waterSupplyAmountForYear = monitorDataReportMapper.getDeviceWaterDetailForYear("水厂", 3, tenantId, localDate.getYear());
+        BigDecimal waterSupplyAmountForMonth = monitorDataReportMapper.getDeviceWaterDetailForMonth("水厂", 3, tenantId, localDate.getYear(), localDate.getMonthValue(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
+        BigDecimal waterSupplyAmountForYear = monitorDataReportMapper.getDeviceWaterDetailForYear("水厂", 3, tenantId, localDate.getYear(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
         if (waterSupplyAmountForMonth == null) {
             waterSupplyAmountForMonth = BigDecimal.ZERO;
         }
@@ -674,8 +674,8 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         }
 
 
-        BigDecimal waterIntakeAmountForMonth = monitorDataReportMapper.getDeviceWaterDetailForMonth("水源", 4, tenantId, localDate.getYear(), localDate.getMonthValue());
-        BigDecimal waterIntakeAmountForYear = monitorDataReportMapper.getDeviceWaterDetailForYear("水源", 4, tenantId, localDate.getYear());
+        BigDecimal waterIntakeAmountForMonth = monitorDataReportMapper.getDeviceWaterDetailForMonth("水源", 4, tenantId, localDate.getYear(), localDate.getMonthValue(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
+        BigDecimal waterIntakeAmountForYear = monitorDataReportMapper.getDeviceWaterDetailForYear("水源", 4, tenantId, localDate.getYear(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
         if (waterIntakeAmountForMonth == null) {
             waterIntakeAmountForMonth = BigDecimal.ZERO;
         }
@@ -703,7 +703,7 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
     public List<SceneAlarm> sceneAlarms() {
         LoginUser loginUser = UserUtil.getCurrentUser();
         String tenantId = loginUser.getTenantId();
-        return monitorDataReportMapper.getAlarmInfoForScene(tenantId);
+        return monitorDataReportMapper.getAlarmInfoForScene(tenantId,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
     }
 
     //管网水质(水质 -1、8PH、10浊度、11余氯)
@@ -714,13 +714,18 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
 
         List<SceneNormalRate> SceneNormalRates = new ArrayList<>();
         //水质
-        SceneNormalRate sceneNormalRate1 = monitorDataReportMapper.getQualificationForScene(tenantId, -1);
+        SceneNormalRate sceneNormalRate1 = monitorDataReportMapper.getQualificationForScene(tenantId, -1,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
+        sceneNormalRate1.setTypeName("水质");
         //PH
-        SceneNormalRate sceneNormalRate2 = monitorDataReportMapper.getQualificationForScene(tenantId, 8);
+        SceneNormalRate sceneNormalRate2 = monitorDataReportMapper.getQualificationForScene(tenantId, 8,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
+        sceneNormalRate1.setTypeName("PH");
         //浊度
-        SceneNormalRate sceneNormalRate3 = monitorDataReportMapper.getQualificationForScene(tenantId, 10);
+        SceneNormalRate sceneNormalRate3 = monitorDataReportMapper.getQualificationForScene(tenantId, 10,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
+        sceneNormalRate1.setTypeName("浊度");
         //余氯
-        SceneNormalRate sceneNormalRate4 = monitorDataReportMapper.getQualificationForScene(tenantId, 11);
+        SceneNormalRate sceneNormalRate4 = monitorDataReportMapper.getQualificationForScene(tenantId, 11,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
+        sceneNormalRate1.setTypeName("余氯");
+
         SceneNormalRates.add(sceneNormalRate1);
         SceneNormalRates.add(sceneNormalRate2);
         SceneNormalRates.add(sceneNormalRate3);
@@ -735,9 +740,9 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
 
         LoginUser loginUser = UserUtil.getCurrentUser();
         String tenantId = loginUser.getTenantId();
-        Map<Integer, MonitorDataEntity> MonitorDataMap = getIntegerMonitorDataEntityMap(tenantId);
+        Map<Integer, MonitorDataEntity> MonitorDataMap = getIntegerMonitorDataEntityMap(loginUser);
 
-        List<DeviceWaterDetail> devicePressureWaterDetailsForNow = monitorDataReportMapper.getDeviceWaterDetailForNow(sceneType, 13, tenantId);
+        List<DeviceWaterDetail> devicePressureWaterDetailsForNow = monitorDataReportMapper.getDeviceWaterDetailForNow(sceneType, 13, tenantId,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
 
         List<SceneWaterAmount> sceneWaterPressureAmounts = new ArrayList<>();
 
@@ -798,7 +803,13 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
             sceneWaterPressure.setMinPressureSceneName(amountMin.getSceneName());
             sceneWaterPressure.setMinPressureValue(amountMin.getWaterAmount());
         }
-
+        List<Integer> pressureLevels = new ArrayList<>();
+        pressureLevels.add(sceneWaterPressure.getPressureLevel1());
+        pressureLevels.add(sceneWaterPressure.getPressureLevel2());
+        pressureLevels.add(sceneWaterPressure.getPressureLevel3());
+        pressureLevels.add(sceneWaterPressure.getPressureLevel4());
+        pressureLevels.add(sceneWaterPressure.getPressureLevel5());
+        sceneWaterPressure.setPressureLevels(pressureLevels);
         return sceneWaterPressure;
     }
 
@@ -808,10 +819,10 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         LoginUser loginUser = UserUtil.getCurrentUser();
         String tenantId = loginUser.getTenantId();
         //查询设备数据
-        Map<Integer, MonitorDataEntity> MonitorDataMap = getIntegerMonitorDataEntityMap(tenantId);
+        Map<Integer, MonitorDataEntity> MonitorDataMap = getIntegerMonitorDataEntityMap(loginUser);
 
         LocalDate localDate = LocalDate.now();
-        List<DeviceWaterDetail> deviceSupplyWaterDetailsForDay = monitorDataReportMapper.getDeviceWaterDetailForDay("水厂", 3, tenantId, localDate.getYear(), localDate.getMonthValue(), localDate.getDayOfMonth());
+        List<DeviceWaterDetail> deviceSupplyWaterDetailsForDay = monitorDataReportMapper.getDeviceWaterDetailForDay("水厂", 3, tenantId, localDate.getYear(), localDate.getMonthValue(), localDate.getDayOfMonth(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
 
         List<SceneWaterAmount> sceneWaterAmounts = new ArrayList<>();
         deviceSupplyWaterDetailsForDay.stream()
@@ -825,7 +836,9 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
                         MonitorDataEntity monitorDataEntity = MonitorDataMap.get(deviceWaterDetail.getDeviceId());
                         if (monitorDataEntity != null && monitorDataEntity.getDataValues() != null && monitorDataEntity.getDataValues().size() > 0) {
                             monitorDataEntity.getDataValues().stream()
-                                    .filter(monitorDataValueEntity -> monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId()))
+                                    .filter(monitorDataValueEntity ->
+                                            monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId().longValue())
+                                    )
                                     .forEach(monitorDataValueEntity ->
                                             //累计当天流量
                                             sceneWaterAmount.setWaterAmount(sceneWaterAmount.getWaterAmount().add(
@@ -847,7 +860,7 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         LoginUser loginUser = UserUtil.getCurrentUser();
         String tenantId = loginUser.getTenantId();
 
-        List<WaterSupplyData> waterSupplyDatas = monitorDataReportMapper.getWaterSupplyData(tenantId,sceneTypeName);
+        List<WaterSupplyData> waterSupplyDatas = monitorDataReportMapper.getWaterSupplyData(tenantId,sceneTypeName,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
         List<WaterSupplyChart> waterSupplyCharts = new ArrayList<>();
         waterSupplyDatas.stream()
                 .collect(Collectors.groupingBy(item -> item.getYear() + "-" + item.getMonth() + "-" + item.getDay()))
@@ -880,9 +893,10 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
     }
 
     //查询设备实时数据
-    private Map<Integer, MonitorDataEntity> getIntegerMonitorDataEntityMap(String tenantId) {
+    private Map<Integer, MonitorDataEntity> getIntegerMonitorDataEntityMap(LoginUser loginUser) {
+
         //查询设备编码
-        List<String> deviceCodes = monitorDataReportMapper.selectDeviceCode(tenantId);
+        List<String> deviceCodes = monitorDataReportMapper.selectDeviceCode(loginUser.getTenantId(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
         //根据编码获取redis中的实时数据
         List<MonitorDataEntity> monitorDataEntities = new ArrayList<>();
         for (String deviceCode : deviceCodes) {
@@ -895,4 +909,5 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         //将获取到 实时数据转换为map,方便匹配数据deviceId
         return monitorDataEntities.stream().collect(Collectors.toMap(MonitorDataEntity::getDeviceId, a -> a, (k1, k2) -> k1));
     }
+
 }

+ 251 - 1
sms_water/src/main/resources/mapper/MonitorDataReportMapper.xml

@@ -886,7 +886,35 @@
 
     <!-- 概览页 -->
     <select id="selectDeviceCode" resultType="java.lang.String">
-        select DEVICE_CODE from sms_device  where STATUS =1 and ENABLE_STATE =1  and TENANT_ID=#{tenantId}
+        select DEVICE_CODE from sms_device
+        where STATUS =1 and ENABLE_STATE =1  and TENANT_ID=#{tenantId}
+        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+            <if test="permissonType == 5 or permissonType == 2">
+                and ( d.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                or
+                d.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                )
+            </if>
+            <if test="permissonType == 4 or permissonType == 3">
+                and d.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+            <if test="permissonType == 1">
+                and d.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                and (d.DEPT_ORG_ID is null or d.DEPT_ORG_ID =0)
+            </if>
+        </if>
     </select>
 
     <select id="getDeviceWaterFor30Day" resultType="com.huaxu.dto.generalView.DeviceWaterSupply">
@@ -901,6 +929,33 @@
         where  dp.`STATUS`=1 and st.SCENE_TYPE_NAME = '水厂'
         and dp.PARM_TYPE = 3   and dp.TENANT_ID=#{tenantId}
         and r.COLLECT_DATE >= DATE_SUB(CURDATE(),INTERVAL 30 day)
+        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+            <if test="permissonType == 5 or permissonType == 2">
+                and ( s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                or
+                s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                )
+            </if>
+            <if test="permissonType == 4 or permissonType == 3">
+                and s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+            <if test="permissonType == 1">
+                and s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
+            </if>
+        </if>
         group by r.year,r.month,r.day
         order by r.year desc,r.month desc,r.day desc
     </select>
@@ -916,6 +971,34 @@
         left join sms_device_parm dp on s.id=dp.SCENE_ID
         where  dp.`STATUS`=1 and st.SCENE_TYPE_NAME = #{sceneTypeName}
         and dp.PARM_TYPE =#{parmType}   and dp.TENANT_ID=#{tenantId}
+        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+            <if test="permissonType == 5 or permissonType == 2">
+                and ( s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                or
+                s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                )
+            </if>
+            <if test="permissonType == 4 or permissonType == 3">
+                and s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+            <if test="permissonType == 1">
+                and s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
+            </if>
+        </if>
+
     </select>
     <select id="getDeviceWaterDetailForDay" resultType="com.huaxu.dto.generalView.DeviceWaterDetail">
         select
@@ -931,6 +1014,34 @@
         left join sms_day_report r on r.DEVICE_ID= dp.DEVICE_ID and r.ATTRIBUTE_ID = dp.ATTRIBUTE_ID and r.year = #{year} and r.month= #{month} and r.day = #{day}
         where  dp.`STATUS`=1 and st.SCENE_TYPE_NAME = #{sceneTypeName}
         and dp.PARM_TYPE =#{parmType}   and dp.TENANT_ID=#{tenantId}
+        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+            <if test="permissonType == 5 or permissonType == 2">
+                and ( s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                or
+                s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                )
+            </if>
+            <if test="permissonType == 4 or permissonType == 3">
+                and s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+            <if test="permissonType == 1">
+                and s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
+            </if>
+        </if>
+
         group by s.SCENE_NAME,dp.DEVICE_ID ,dp.ATTRIBUTE_ID,dp.PARM_TYPE
     </select>
     <select id="getDeviceWaterDetailForMonth" resultType="java.math.BigDecimal">
@@ -942,6 +1053,34 @@
         left join sms_month_report r on r.DEVICE_ID= dp.DEVICE_ID and r.ATTRIBUTE_ID = dp.ATTRIBUTE_ID and r.year = #{year} and r.month= #{month}
         where  dp.`STATUS`=1 and st.SCENE_TYPE_NAME = #{sceneTypeName}
         and dp.PARM_TYPE =#{parmType}   and dp.TENANT_ID=#{tenantId}
+        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+            <if test="permissonType == 5 or permissonType == 2">
+                and ( s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                or
+                s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                )
+            </if>
+            <if test="permissonType == 4 or permissonType == 3">
+                and s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+            <if test="permissonType == 1">
+                and s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
+            </if>
+        </if>
+
         group by dp.DEVICE_ID ,dp.ATTRIBUTE_ID,dp.PARM_TYPE
     </select>
     <select id="getDeviceWaterDetailForYear" resultType="java.math.BigDecimal">
@@ -953,6 +1092,34 @@
         left join sms_year_report r on r.DEVICE_ID= dp.DEVICE_ID and r.ATTRIBUTE_ID = dp.ATTRIBUTE_ID and r.year = #{year}
         where  dp.`STATUS`=1 and st.SCENE_TYPE_NAME = #{sceneTypeName}
         and dp.PARM_TYPE =#{parmType}   and dp.TENANT_ID=#{tenantId}
+        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+            <if test="permissonType == 5 or permissonType == 2">
+                and ( s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                or
+                s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                )
+            </if>
+            <if test="permissonType == 4 or permissonType == 3">
+                and s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+            <if test="permissonType == 1">
+                and s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
+            </if>
+        </if>
+
         group by dp.DEVICE_ID ,dp.ATTRIBUTE_ID,dp.PARM_TYPE
 
     </select>
@@ -964,6 +1131,34 @@
         left join sms_scene s on s.SCENE_TYPE_ID =st.id and s.PARENT_SCENE_ID = 0
         left join sms_alarm_details ad on ad.STATE = 1 and ad.PARENT_SCENE_ID=s.id
         where s.`STATUS` = 1 and (st.SCENE_TYPE_NAME = '水厂' or st.SCENE_TYPE_NAME ='水源') and s.TENANT_ID=#{tenantId}
+        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+            <if test="permissonType == 5 or permissonType == 2">
+                and ( s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                or
+                s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                )
+            </if>
+            <if test="permissonType == 4 or permissonType == 3">
+                and s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+            <if test="permissonType == 1">
+                and s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
+            </if>
+        </if>
+
         group by s.SCENE_NAME
         having count(ad.id) >0
 
@@ -990,6 +1185,33 @@
             <if test="parmType != null and  parmType != -1">
                 and dp.PARM_TYPE = #{parmType}
             </if>
+        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+            <if test="permissonType == 5 or permissonType == 2">
+                and ( s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                or
+                s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                )
+            </if>
+            <if test="permissonType == 4 or permissonType == 3">
+                and s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+            <if test="permissonType == 1">
+                and s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
+            </if>
+        </if>
 
             group by s.SCENE_NAME
         ) a
@@ -1012,6 +1234,34 @@
         where  dp.`STATUS`=1 and st.SCENE_TYPE_NAME = #{sceneTypeName}
             and r.COLLECT_DATE >= DATE_SUB(CURDATE(),INTERVAL 7 day)
             and dp.PARM_TYPE in (3,5,6)   and dp.TENANT_ID=#{tenantId}
+        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+            <if test="permissonType == 5 or permissonType == 2">
+                and ( s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                or
+                s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                )
+            </if>
+            <if test="permissonType == 4 or permissonType == 3">
+                and s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+            <if test="permissonType == 1">
+                and s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
+            </if>
+        </if>
+
         group by r.year,r.month,r.day,dp.PARM_TYPE,da.UNIT
     </select>