瀏覽代碼

Merge remote-tracking branch 'origin/20210716' into 20210716

hym 3 年之前
父節點
當前提交
0e524c206a
共有 45 個文件被更改,包括 864 次插入795 次删除
  1. 7 8
      user_center/src/main/resources/application-sit.properties
  2. 3 0
      zoniot-charge/zoniot-charge-api/src/main/java/com/zcxk/charge/api/dto/query/AlarmDetailsPageDto.java
  3. 3 0
      zoniot-charge/zoniot-charge-api/src/main/java/com/zcxk/charge/api/dto/query/AlarmSettingPageDto.java
  4. 43 0
      zoniot-charge/zoniot-charge-api/src/main/java/com/zcxk/charge/api/dto/query/HomePageReportDto.java
  5. 0 1
      zoniot-charge/zoniot-charge-api/src/main/java/com/zcxk/charge/api/dto/query/MonitorDataChartDto.java
  6. 0 2
      zoniot-charge/zoniot-charge-api/src/main/java/com/zcxk/charge/api/dto/query/MonitorDataCompareDto.java
  7. 71 0
      zoniot-charge/zoniot-charge-api/src/main/java/com/zcxk/charge/api/enums/ParamTypeEnum.java
  8. 68 176
      zoniot-charge/zoniot-charge-core/src/main/java/com/zcxk/charge/core/dao/HomePageReportMapper.java
  9. 129 129
      zoniot-charge/zoniot-charge-core/src/main/java/com/zcxk/charge/core/mapper/HomePageReportMapper.xml
  10. 4 4
      zoniot-charge/zoniot-charge-core/src/main/java/com/zcxk/charge/core/mapper/MonitorDataReportMapper.xml
  11. 1 1
      zoniot-charge/zoniot-charge-core/src/main/java/com/zcxk/charge/core/mapper/RevenueMapper.xml
  12. 3 1
      zoniot-charge/zoniot-charge-core/src/main/java/com/zcxk/charge/core/mapper/SceneMapper.xml
  13. 33 37
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/AlarmDetailsController.java
  14. 10 7
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/AlarmSettingController.java
  15. 8 11
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/DataAlarmController.java
  16. 13 10
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/DayMonthYearReportController.java
  17. 2 2
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/DeviceController.java
  18. 1 1
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/DeviceParmController.java
  19. 4 4
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/MonitorDataReportController.java
  20. 2 2
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/MonitorInfoController.java
  21. 8 4
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/RevenueController.java
  22. 13 12
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/SceneController.java
  23. 1 1
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/SystemSettingController.java
  24. 4 4
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/AlarmSettingService.java
  25. 8 53
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/DeviceTypeService.java
  26. 3 0
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/ReportService.java
  27. 16 4
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/SceneService.java
  28. 42 71
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/impl/AppPageReportServiceImpl.java
  29. 20 29
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/impl/AppReportMonitorServiceImpl.java
  30. 21 36
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/impl/CameraManageServiceImpl.java
  31. 4 3
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/impl/DeviceParmServiceImpl.java
  32. 162 145
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/impl/HomePageReportServiceImpl.java
  33. 0 1
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/impl/alarm/DataAlarmDetailServiceImpl.java
  34. 31 2
      zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/util/ExcelUtil.java
  35. 22 8
      zoniot-charge/zoniot-charge-xxl-client/src/main/java/com/zcxk/charge/xxl/mq/ReceiveClearData.java
  36. 14 0
      zoniot-charge/zoniot-charge-xxl-client/src/main/resources/bootstrap-dev.yml
  37. 14 0
      zoniot-charge/zoniot-charge-xxl-client/src/main/resources/bootstrap-prod.yml
  38. 14 0
      zoniot-charge/zoniot-charge-xxl-client/src/main/resources/bootstrap-sit.yml
  39. 3 0
      zoniot-charge/zoniot-charge-xxl-client/src/main/resources/bootstrap.yml
  40. 23 0
      zoniot-charge/zoniot-charge-xxl-client/src/main/resources/logback-spring.xml
  41. 3 3
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/MeterReadRecordMapper.java
  42. 3 3
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/MeterReadRecordMapper.xml
  43. 1 1
      zoniot-rmcp/zoniot-rmcp-dap/src/main/java/com/bz/rmcp/dap/service/DeviceDataService.java
  44. 5 10
      zoniot-rmcp/zoniot-rmcp-dap/src/main/java/com/bz/rmcp/dap/service/impl/DeviceDataServiceImpl.java
  45. 24 9
      zoniot-rmcp/zoniot-xxljob-client/src/main/java/com/zcxk/xxljob/service/impl/MeterReadRecordServiceImpl.java

+ 7 - 8
user_center/src/main/resources/application-sit.properties

@@ -3,9 +3,9 @@ spring.application.name=user-center
 logging.level.root=info
 logging.path=./logs/user-center
 #\u6570\u636E\u5E93\u914D\u7F6E
-spring.datasource.url=jdbc:mysql://114.135.61.188:33306/uims?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
+spring.datasource.url=jdbc:mysql://10.0.0.63:3306/uims?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
 spring.datasource.username=root
-spring.datasource.password=100Zone@123
+spring.datasource.password=100zone
 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
 spring.datasource.hikari.max-lifetime=30000
 mybatis-plus.mapper-locations=classpath:mapper/*.xml
@@ -18,9 +18,8 @@ spring.jackson.time-zone=GMT+8
 #spring.jackson.joda-date-time-format: yyyy-MM-dd HH:mm:ss
 
 # redis
-spring.redis.host=114.135.61.188
-spring.redis.port=26379
-spring.redis.password=zoniot
+spring.redis.host=10.0.0.63
+spring.redis.port=6379
 spring.redis.database=2
 spring.redis.timeout=36000
 
@@ -68,9 +67,9 @@ spring.cloud.nacos.discovery.server-addr=10.0.0.63:8848
 UMIS.sys_config_path=/UMIS_USER_IMAGES/
 UMIS.sys_excel_path=/UMIS_USER_EXCEL/
 #rabbit
-spring.rabbitmq.addresses=114.135.61.188:55672
-spring.rabbitmq.username=zoniot
-spring.rabbitmq.password=zcxk100
+spring.rabbitmq.addresses=10.0.0.63:5672
+spring.rabbitmq.username=admin
+spring.rabbitmq.password=100zone
 spring.rabbitmq.virtual-host=/
 spring.rabbitmq.connection-timeout=15000
 spring.rabbitmq.publisher-confirm-type=correlated

+ 3 - 0
zoniot-charge/zoniot-charge-api/src/main/java/com/zcxk/charge/api/dto/query/AlarmDetailsPageDto.java

@@ -30,6 +30,9 @@ public class AlarmDetailsPageDto extends BasePageDto {
     @ApiModelProperty(value = "所属场景id")
     private  Integer sceneId;
 
+    @ApiModelProperty(value = "场景类型名字")
+    private String sceneTypeName;
+
     @ApiModelProperty(value = "查询:开始时间")
     private String startTime;
 

+ 3 - 0
zoniot-charge/zoniot-charge-api/src/main/java/com/zcxk/charge/api/dto/query/AlarmSettingPageDto.java

@@ -22,6 +22,9 @@ public class AlarmSettingPageDto extends BasePageDto {
     @ApiModelProperty(value = "报警参数")
     private String attributeName;
 
+    @ApiModelProperty(value = "场景类型名字")
+    private String sceneTypeName;
+
     @ApiModelProperty(value = "场景id")
     private Long sceneId;
 

+ 43 - 0
zoniot-charge/zoniot-charge-api/src/main/java/com/zcxk/charge/api/dto/query/HomePageReportDto.java

@@ -0,0 +1,43 @@
+package com.zcxk.charge.api.dto.query;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * @author Andy
+ * @version V1.0
+ * @description: TODO
+ * @date 2021/8/20
+ **/
+@Data
+public class HomePageReportDto {
+
+    @ApiModelProperty(value = "公司ID")
+    private Integer companyOrgId;
+
+    @ApiModelProperty(value = "场景类型")
+    private String sceneType;
+
+    @ApiModelProperty(value = "参数类型")
+    private Integer parmType;
+
+    @ApiModelProperty(value = "月")
+    private Integer month;
+
+    @ApiModelProperty(value = "天")
+    private Integer day;
+
+    @ApiModelProperty(value = "参数类型机会额")
+    private List<Integer> parmTypes;
+
+    @ApiModelProperty(value = "场景ID")
+    private Integer sceneId;
+
+    @ApiModelProperty(value = "日期")
+    private LocalDate monthDate;
+
+
+}

+ 0 - 1
zoniot-charge/zoniot-charge-api/src/main/java/com/zcxk/charge/api/dto/query/MonitorDataChartDto.java

@@ -24,7 +24,6 @@ public class MonitorDataChartDto {
     private String reportDate;
 
     @NotNull
-    @NotEmpty
     @ApiModelProperty(value = "日期类型,1年报2月报3日报4自定义")
     private Integer reportType;
 

+ 0 - 2
zoniot-charge/zoniot-charge-api/src/main/java/com/zcxk/charge/api/dto/query/MonitorDataCompareDto.java

@@ -18,14 +18,12 @@ import java.util.List;
 public class MonitorDataCompareDto {
 
     @ApiModelProperty(value = "场景ids")
-    @NotEmpty
     @NotNull
     private List<Long> sceneIds;
 
     @ApiModelProperty(value = "时间 日期,格式:2020-12-12")
     private String reportDate;
 
-    @NotEmpty
     @NotNull
     @ApiModelProperty(value = "类型,1年2月3日4自定义")
     private  Integer reportType;

+ 71 - 0
zoniot-charge/zoniot-charge-api/src/main/java/com/zcxk/charge/api/enums/ParamTypeEnum.java

@@ -0,0 +1,71 @@
+package com.zcxk.charge.api.enums;
+
+import lombok.Getter;
+
+/**
+ * @author Andy
+ * @version V1.0
+ **/
+@Getter
+public enum ParamTypeEnum {
+
+    /**
+     * 余氯
+     */
+    DPD (11),
+
+    /**
+     * 浊度
+     */
+    TURBIDITY_10(10),
+
+    /**
+     * 浊度
+     */
+    TURBIDITY_9(9),
+
+    /**
+     * COD
+     */
+    COD(15),
+
+    /**
+     * ph
+     */
+    PH_8(8),
+
+    /**
+     * ph
+     */
+    PH_7(7),
+
+    /**
+     * 压力
+     */
+    PRESSURE(13),
+
+    /**
+     * 供水
+     */
+    WATER_SUPPLY(3),
+
+    /**
+     * 电耗
+     */
+    KWH(5),
+
+
+    /**
+     * 药耗
+     */
+    DRUG_CONSUMPTION(6),
+    ;
+
+
+    private int code;
+
+    ParamTypeEnum(int code){
+        this.code = code;
+    }
+
+}

+ 68 - 176
zoniot-charge/zoniot-charge-core/src/main/java/com/zcxk/charge/core/dao/HomePageReportMapper.java

@@ -1,7 +1,9 @@
 package com.zcxk.charge.core.dao;
 
+import com.zcxk.charge.api.dto.query.HomePageReportDto;
 import com.zcxk.charge.api.vo.*;
 import com.zcxk.core.common.pojo.ProgramItem;
+import com.zcxk.core.common.pojo.UserCondition;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -19,201 +21,91 @@ public interface HomePageReportMapper {
 
 
     /**
-    * getDeviceWaterForSixMonth
-    * @author Andy
-    * @date 9:15 2021/8/18
-    * @param companyOrgId:
-    * @param sceneType:
-    * @param parmType:
-    * @param tenantId:
-    * @param userType:
-    * @param permissonType:
-    * @param programItems:
-    * @return java.util.List<com.zcxk.charge.api.vo.DeviceWaterSupplyVo>
-    **/
-    List<DeviceWaterSupplyVo > getDeviceWaterForSixMonth(@Param("companyOrgId") Integer companyOrgId,
-                                                         @Param("sceneType") String sceneType, @Param("parmType") Integer parmType,
-                                                         @Param("tenantId") String tenantId, @Param("userType") String userType,
-                                                         @Param("permissonType") Integer permissonType,
-                                                         @Param("programItems") List<ProgramItem> programItems);
+     * getDeviceWaterForSixMonth
+     * @param dto
+     * @param userCondition
+     * @return
+     */
+    List<DeviceWaterSupplyVo > getDeviceWaterForSixMonth(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);
 
     /**
-    * getDeviceWaterForMonth
-    * @author Andy
-    * @date 9:15 2021/8/18
-    * @param companyOrgId:
-    * @param sceneType:
-    * @param parmType:
-    * @param tenantId:
-    * @param userType:
-    * @param permissonType:
-    * @param programItems:
-    * @param month:
-    * @return java.util.List<com.zcxk.charge.api.vo.DeviceWaterSupplyVo>
-    **/
-    List<DeviceWaterSupplyVo > getDeviceWaterForMonth(@Param("companyOrgId") Integer companyOrgId,
-                                                   @Param("sceneType") String sceneType, @Param("parmType") Integer parmType,
-                                                   @Param("tenantId") String tenantId, @Param("userType") String userType,
-                                                   @Param("permissonType") Integer permissonType,
-                                                   @Param("programItems") List<ProgramItem> programItems,
-                                                   @Param("month") Integer month);
+     * getDeviceWaterForMonth
+     * @param dto
+     * @param userCondition
+     * @return
+     */
+    List<DeviceWaterSupplyVo > getDeviceWaterForMonth(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);
 
     /**
-    * getDeviceWaterForDay
-    * @author Andy
-    * @date 9:15 2021/8/18
-    * @param companyOrgId:
-    * @param sceneType:
-    * @param parmType:
-    * @param tenantId:
-    * @param userType:
-    * @param permissonType:
-    * @param programItems:
-    * @param day:
-    * @return java.util.List<com.zcxk.charge.api.vo.DeviceWaterSupplyVo>
-    **/
-    List<DeviceWaterSupplyVo > getDeviceWaterForDay(@Param("companyOrgId") Integer companyOrgId,
-                                                 @Param("sceneType") String sceneType, @Param("parmType") Integer parmType,
-                                                 @Param("tenantId") String tenantId, @Param("userType") String userType,
-                                                 @Param("permissonType") Integer permissonType,
-                                                 @Param("programItems") List<ProgramItem> programItems,
-                                                 @Param("day") Integer day);
+     * getDeviceWaterForDay
+     * @param dto
+     * @param userCondition
+     * @return
+     */
+    List<DeviceWaterSupplyVo > getDeviceWaterForDay(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);
 
     /**
-    * countSceneByType
-    * @author Andy
-    * @date 9:15 2021/8/18
-    * @param companyOrgId:
-    * @param tenantId:
-    * @param userType:
-    * @param permissonType:
-    * @param programItems:
-    * @return com.zcxk.charge.api.vo.CompanyCountVo
-    **/
-    CompanyCountVo countSceneByType(@Param("companyOrgId") Integer companyOrgId,
-                                    @Param("tenantId") String tenantId, @Param("userType") String userType,
-                                    @Param("permissonType") Integer permissonType,
-                                    @Param("programItems") List<ProgramItem> programItems);
+     * countSceneByType
+     * @param dto
+     * @param userCondition
+     * @return
+     */
+    CompanyCountVo countSceneByType(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);
 
     /**
-    * getWaterSalesDetails
-    * @author Andy
-    * @date 9:15 2021/8/18
-    * @param companyOrgId:
-    * @param tenantId:
-    * @param userType:
-    * @param programItems:
-    * @return com.zcxk.charge.api.vo.CompanyProduceVo
-    **/
-    CompanyProduceVo getWaterSalesDetails(@Param("companyOrgId") Integer companyOrgId,
-                                          @Param("tenantId") String tenantId, @Param("userType") String userType,
-                                          @Param("programItems") List<ProgramItem> programItems);
+     * getWaterSalesDetails
+     * @param dto
+     * @param userCondition
+     * @return
+     */
+    CompanyProduceVo getWaterSalesDetails(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);
 
     /**
-    * getPipeNetworkQualification
-    * @author Andy
-    * @date 9:15 2021/8/18
-    * @param companyOrgId:
-    * @param tenantId:
-    * @param userType:
-    * @param permissonType:
-    * @param programItems:
-    * @return com.zcxk.charge.api.vo.WaterQualityRateVo
-    **/
-    WaterQualityRateVo getPipeNetworkQualification(@Param("companyOrgId") Integer companyOrgId,
-                                                   @Param("tenantId") String tenantId, @Param("userType") String userType,
-                                                   @Param("permissonType") Integer permissonType,
-                                                   @Param("programItems") List<ProgramItem> programItems);
+     * getPipeNetworkQualification
+     * @param dto
+     * @param userCondition
+     * @return
+     */
+    WaterQualityRateVo getPipeNetworkQualification(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);
 
     /**
-    * getWaterQualification
-    * @author Andy
-    * @date 9:16 2021/8/18
-    * @param companyOrgId:
-    * @param sceneType:
-    * @param parmTypes:
-    * @param tenantId:
-    * @param userType:
-    * @param permissonType:
-    * @param programItems:
-    * @return com.zcxk.charge.api.vo.WaterQualityRateVo
-    **/
-    WaterQualityRateVo getWaterQualification(@Param("companyOrgId") Integer companyOrgId, @Param("sceneType") String sceneType,
-                                           @Param("parmTypes") List<Integer> parmTypes,
-                                           @Param("tenantId") String tenantId, @Param("userType") String userType,
-                                           @Param("permissonType") Integer permissonType,
-                                           @Param("programItems") List<ProgramItem> programItems);
+     * getWaterQualification
+     * @param dto
+     * @param userCondition
+     * @return
+     */
+    WaterQualityRateVo getWaterQualification(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);
 
     /**
-    * getMonitorDataFifteenDays
-    * @author Andy
-    * @date 9:16 2021/8/18
-    * @param sceneId:
-    * @param sceneType:
-    * @param parmType:
-    * @param tenantId:
-    * @param userType:
-    * @param permissonType:
-    * @param programItems:
-    * @return java.util.List<com.zcxk.charge.api.vo.DeviceWaterSupplyVo>
-    **/
-    List<DeviceWaterSupplyVo> getMonitorDataFifteenDays(@Param("sceneId") Integer sceneId, @Param("sceneType") String sceneType, @Param("parmType") Integer parmType,
-                                                      @Param("tenantId") String tenantId,
-                                                      @Param("userType") String userType, @Param("permissonType") Integer permissonType,
-                                                      @Param("programItems") List<ProgramItem> programItems);
+     * getMonitorDataFifteenDays
+     * @param dto
+     * @param userCondition
+     * @return
+     */
+    List<DeviceWaterSupplyVo> getMonitorDataFifteenDays(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);
 
     /**
-    * getWaterQualificationForScene
-    * @author Andy
-    * @date 9:16 2021/8/18
-    * @param parmType:
-    * @param sceneId:
-    * @param sceneType:
-    * @param tenantId:
-    * @param userType:
-    * @param permissonType:
-    * @param programItems:
-    * @return java.math.BigDecimal
-    **/
-    BigDecimal getWaterQualificationForScene(@Param("parmType") Integer parmType, @Param("sceneId") Integer sceneId, @Param("sceneType") String sceneType,
-                                             @Param("tenantId") String tenantId, @Param("userType") String userType,
-                                             @Param("permissonType") Integer permissonType,
-                                             @Param("programItems") List<ProgramItem> programItems);
+     * getWaterQualificationForScene
+     * @param dto
+     * @param userCondition
+     * @return
+     */
+    BigDecimal getWaterQualificationForScene(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);
 
     /**
-    * getWaterQualificationByMonth
-    * @author Andy
-    * @date 9:16 2021/8/18
-    * @param monthDate:
-    * @param parmType:
-    * @param sceneId:
-    * @param sceneType:
-    * @param tenantId:
-    * @param userType:
-    * @param permissonType:
-    * @param programItems:
-    * @return java.math.BigDecimal
-    **/
-    BigDecimal getWaterQualificationByMonth(@Param("monthDate") LocalDate monthDate, @Param("parmType") Integer parmType, @Param("sceneId") Integer sceneId, @Param("sceneType") String sceneType,
-                                            @Param("tenantId") String tenantId, @Param("userType") String userType,
-                                            @Param("permissonType") Integer permissonType,
-                                            @Param("programItems") List<ProgramItem> programItems);
+     * getWaterQualificationByMonth
+     * @param dto
+     * @param userCondition
+     * @return
+     */
+    BigDecimal getWaterQualificationByMonth(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);
 
     /**
-    * getWaterSupplyData
-    * @author Andy
-    * @date 9:16 2021/8/18
-    * @param sceneId:
-    * @param sceneType:
-    * @param tenantId:
-    * @param userType:
-    * @param permissonType:
-    * @param programItems:
-    * @return java.util.List<com.zcxk.charge.api.vo.WaterSupplyDataVo>
-    **/
-    List<WaterSupplyDataVo> getWaterSupplyData(@Param("sceneId") Integer sceneId, @Param("sceneType") String sceneType,
-                                               @Param("tenantId") String tenantId,
-                                               @Param("userType") String userType, @Param("permissonType") Integer permissonType,
-                                               @Param("programItems") List<ProgramItem> programItems);
+     * getWaterSupplyData
+     * @param dto
+     * @param userCondition
+     * @return
+     */
+    List<WaterSupplyDataVo> getWaterSupplyData(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);
 
 }

+ 129 - 129
zoniot-charge/zoniot-charge-core/src/main/java/com/zcxk/charge/core/mapper/HomePageReportMapper.xml

@@ -11,34 +11,34 @@
         left join sms_device_parm dp on s.id=dp.PARENT_SCENE_ID
         left join sms_year_report r on r.DEVICE_ID= dp.DEVICE_ID and r.ATTRIBUTE_ID = dp.ATTRIBUTE_ID
 
-        where  dp.`STATUS`=1  and s.ENABLE_STATE = 1 and dp.TENANT_ID=#{tenantId}
-        <if test="companyOrgId != null">
-            and s.COMPANY_ORG_ID = #{companyOrgId}
+        where  dp.`STATUS`=1  and s.ENABLE_STATE = 1 and dp.TENANT_ID=#{user.tenantId}
+        <if test="dto.companyOrgId != null">
+            and s.COMPANY_ORG_ID = #{dto.companyOrgId}
         </if>
-        and dp.PARM_TYPE = #{parmType} and st.SCENE_TYPE_NAME = #{sceneType}
+        and dp.PARM_TYPE = #{dto.parmType} and st.SCENE_TYPE_NAME = #{dto.sceneType}
         and r.year*12 + r.month >=  year(CURDATE())*12 + month(CURDATE()) - 5
-        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
-            <if test="permissonType == 5 or permissonType == 2">
+        <if test="user.userType!=null and user.userType!=-999 and user.userType!=-9999 and  user.programItems != null and user.programItems.size() > 0">
+            <if test="user.permissonType == 5 or user.permissonType == 2">
                 and ( s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 or
                 s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 )
             </if>
-            <if test="permissonType == 4 or permissonType == 3">
+            <if test="user.permissonType == 4 or user.permissonType == 3">
                 and s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
             </if>
-            <if test="permissonType == 1">
+            <if test="user.permissonType == 1">
                 and s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
@@ -60,32 +60,32 @@
         left join sms_scene_type st on s.SCENE_TYPE_ID =st.ID
         where s.PARENT_SCENE_ID= 0 and s.`STATUS` = 1 and st.`STATUS` = 1
          and st.SCENE_TYPE_NAME in ('水源','水厂','管网','泵站')
-         <if test="companyOrgId != null">
-            and s.COMPANY_ORG_ID = #{companyOrgId}
+         <if test="dto.companyOrgId != null">
+            and s.COMPANY_ORG_ID = #{dto.companyOrgId}
          </if>
-        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.TENANT_ID=#{user.tenantId}
+        <if test="user.userType!=null and user.userType!=-999 and user.userType!=-9999 and  user.programItems != null and user.programItems.size() > 0">
+            <if test="user.permissonType == 5 or user.permissonType == 2">
                 and ( s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 or
                 s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 )
             </if>
-            <if test="permissonType == 4 or permissonType == 3">
+            <if test="user.permissonType == 4 or user.permissonType == 3">
                 and s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
             </if>
-            <if test="permissonType == 1">
+            <if test="user.permissonType == 1">
                 and s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
@@ -99,14 +99,14 @@
             sum(RECEIVED_TOTAL_AMOUNT) AS "receivedAmount",
             sum(METER_READING_USAGE) AS "waterSale"
         from sms_month_revenue r
-        where r.TENANT_ID = #{tenantId}
-        <if test="companyOrgId != null">
-            and r.COMPANY_ORG_ID = #{companyOrgId}
+        where r.TENANT_ID = #{user.tenantId}
+        <if test="dto.companyOrgId != null">
+            and r.COMPANY_ORG_ID = #{dto.companyOrgId}
         </if>
         and year(r.COLLECT_DATE) =year(CURDATE()) and month(r.COLLECT_DATE) = month(CURDATE())
-        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+        <if test="user.userType!=null and user.userType!=-999 and user.userType != -9999 and  user.programItems != null and user.programItems.size() > 0">
             and r.COMPANY_ORG_ID in
-            <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+            <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                 #{item.orgId}
             </foreach>
         </if>
@@ -132,32 +132,32 @@
             and ad.STATE = 1  and ad.`STATUS` =1 and ad.ALARM_TYPE = '参数报警'
             where pst.`STATUS` = 1 and st.`STATUS` = 1 and ps.`STATUS` = 1 and s.`STATUS` = 1 and dp.`STATUS` = 1
             and pst.SCENE_TYPE_NAME ='管网' and st.SCENE_TYPE_NAME ='水质'
-            <if test="companyOrgId != null">
-            and ps.COMPANY_ORG_ID = #{companyOrgId}
+            <if test="dto.companyOrgId != null">
+            and ps.COMPANY_ORG_ID = #{dto.companyOrgId}
             </if>
-            and ps.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 ps.TENANT_ID=#{user.tenantId}
+            <if test="user.userType!=null and user.userType!=-999 and user.userType!=-9999 and  user.programItems != null and user.programItems.size() > 0">
+            <if test="user.permissonType == 5 or user.permissonType == 2">
                 and ( s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 or
                 s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 )
             </if>
-            <if test="permissonType == 4 or permissonType == 3">
+            <if test="user.permissonType == 4 or user.permissonType == 3">
                 and s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
             </if>
-            <if test="permissonType == 1">
+            <if test="user.permissonType == 1">
                 and s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
@@ -176,7 +176,7 @@
             select
             s.id as "sceneId"
             ,if(sum( if(dp.PARM_TYPE IN
-                <foreach collection="parmTypes" item="item" open="(" close=")" separator=",">
+                <foreach collection="dto.parmTypes" item="item" open="(" close=")" separator=",">
                     #{item}
                 </foreach>
                 and ad.id is not null,1,0) )>0,1,0 ) AS "alarmNumber"
@@ -185,33 +185,33 @@
             left join sms_device_parm dp on dp.PARENT_SCENE_ID =s.ID
             left join sms_alarm_details ad on ad.STATE = 1 and ad.PARENT_SCENE_ID=dp.PARENT_SCENE_ID and ad.DEVICE_ID =dp.DEVICE_ID and ad.ATTRIBUTE_ID =dp.ATTRIBUTE_ID
 
-            where s.`STATUS`=1  and s.ENABLE_STATE = 1 and dp.`STATUS` = 1 and st.SCENE_TYPE_NAME = #{sceneType}
-            <if test="companyOrgId != null">
-                and s.COMPANY_ORG_ID = #{companyOrgId}
+            where s.`STATUS`=1  and s.ENABLE_STATE = 1 and dp.`STATUS` = 1 and st.SCENE_TYPE_NAME = #{dto.sceneType}
+            <if test="dto.companyOrgId != null">
+                and s.COMPANY_ORG_ID = #{dto.companyOrgId}
             </if>
-            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.TENANT_ID =#{user.tenantId}
+            <if test="user.userType!=null and user.userType!=-999 and user.userType!=-9999 and  user.programItems != null and user.programItems.size() > 0">
+                <if test="user.permissonType == 5 or user.permissonType == 2">
                     and ( s.DEPT_ORG_ID in
-                    <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                         #{item.orgId}
                     </foreach>
                     or
                     s.COMPANY_ORG_ID in
-                    <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                         #{item.orgId}
                     </foreach>
                     )
                 </if>
-                <if test="permissonType == 4 or permissonType == 3">
+                <if test="user.permissonType == 4 or user.permissonType == 3">
                     and s.DEPT_ORG_ID in
-                    <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                         #{item.orgId}
                     </foreach>
                 </if>
-                <if test="permissonType == 1">
+                <if test="user.permissonType == 1">
                     and s.COMPANY_ORG_ID in
-                    <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                         #{item.orgId}
                     </foreach>
                     and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
@@ -231,33 +231,33 @@
         left join sms_device_parm dp on s.id=dp.PARENT_SCENE_ID
         left join sms_month_report r on r.DEVICE_ID= dp.DEVICE_ID and r.ATTRIBUTE_ID = dp.ATTRIBUTE_ID
         where  st.`STATUS`=1 and dp.`STATUS`=1  and s.ENABLE_STATE = 1
-        and s.id = #{sceneId}
-        and st.SCENE_TYPE_NAME = #{sceneType}
-        and dp.PARM_TYPE = #{parmType}
-        and dp.TENANT_ID=#{tenantId}
+        and s.id = #{dto.sceneId}
+        and st.SCENE_TYPE_NAME = #{dto.sceneType}
+        and dp.PARM_TYPE = #{dto.parmType}
+        and dp.TENANT_ID=#{user.tenantId}
         and r.COLLECT_DATE >= DATE_SUB(CURDATE(),INTERVAL 14 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">
+        <if test="user.userType!=null and user.userType!=-999 and user.userType!=-9999 and  user.programItems != null and user.programItems.size() > 0">
+            <if test="user.permissonType == 5 or user.permissonType == 2">
                 and ( s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 or
                 s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 )
             </if>
-            <if test="permissonType == 4 or permissonType == 3">
+            <if test="user.permissonType == 4 or user.permissonType == 3">
                 and s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
             </if>
-            <if test="permissonType == 1">
+            <if test="user.permissonType == 1">
                 and s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
@@ -280,35 +280,35 @@
         left join sms_scene s on s.SCENE_TYPE_ID =st.ID
         left join sms_device_scene ds on ds.PARENT_SCENE_ID = s.ID
         left join sms_device d on d.id=ds.DEVICE_ID
-        left join sms_device_parm dp on dp.SCENE_ID =ds.SCENE_ID and dp.DEVICE_ID =ds.DEVICE_ID and dp.PARM_TYPE =#{parmType}
+        left join sms_device_parm dp on dp.SCENE_ID =ds.SCENE_ID and dp.DEVICE_ID =ds.DEVICE_ID and dp.PARM_TYPE =#{dto.parmType}
         left join sms_alarm_details ad on dp.SCENE_ID =ad.SCENE_ID and dp.DEVICE_ID =ad.DEVICE_ID and dp.ATTRIBUTE_ID =ad.ATTRIBUTE_ID
         and ad.STATE = 1  and ad.`STATUS` =1
         where st.`STATUS` = 1 and s.`STATUS` = 1 and ds.`STATUS` = 1 and d.`STATUS` = 1 and dp.`STATUS` = 1
-        and s.id= #{sceneId}
-        and st.SCENE_TYPE_NAME = #{sceneType}
-        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.id= #{dto.sceneId}
+        and st.SCENE_TYPE_NAME = #{dto.sceneType}
+        and s.TENANT_ID=#{user.tenantId}
+        <if test="user.userType != null and user.userType!=-999 and user.userType != -9999 and  user.programItems != null and user.programItems.size() > 0">
+            <if test="user.permissonType == 5 or user.permissonType == 2">
                 and ( s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 or
                 s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 )
             </if>
-            <if test="permissonType == 4 or permissonType == 3">
+            <if test="user.permissonType == 4 or user.permissonType == 3">
                 and s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
             </if>
-            <if test="permissonType == 1">
+            <if test="user.permissonType == 1">
                 and s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
@@ -322,54 +322,54 @@
 
     <select id="getWaterQualificationByMonth" resultType="java.math.BigDecimal">
         select
-        ROUND(if(count(1) >0 ,1-((sum(alarmNumber) /count(1))/timestampdiff(MINUTE,#{monthDate},now())),1)* 100,2) as amount
+        ROUND(if(count(1) >0 ,1-((sum(alarmNumber) /count(1))/timestampdiff(MINUTE,#{dto.monthDate},now())),1)* 100,2) as amount
         from
         (
         select
             ifnull(sum(
                 if(ad.state = 1,
-                timestampdiff(MINUTE,if(ad.ALARM_START_TIME > #{monthDate},ad.ALARM_START_TIME ,#{monthDate}),now())
-                ,if(ad.ALARM_START_TIME > #{monthDate} ,timestampdiff(MINUTE,ad.ALARM_START_TIME,ad.alarm_end_time), timestampdiff(MINUTE,#{monthDate},ad.alarm_end_time))
+                timestampdiff(MINUTE,if(ad.ALARM_START_TIME > #{dto.monthDate},ad.ALARM_START_TIME ,#{dto.monthDate}),now())
+                ,if(ad.ALARM_START_TIME > #{dto.monthDate} ,timestampdiff(MINUTE,ad.ALARM_START_TIME,ad.alarm_end_time), timestampdiff(MINUTE,#{dto.monthDate},ad.alarm_end_time))
                 )),0) alarmNumber
         from sms_scene_type st
         left join sms_scene s on s.SCENE_TYPE_ID =st.ID
         left join sms_device_scene ds on ds.PARENT_SCENE_ID = s.ID
         left join sms_device d on d.id=ds.DEVICE_ID
-        left join sms_device_parm dp on dp.SCENE_ID =ds.SCENE_ID and dp.DEVICE_ID =ds.DEVICE_ID and dp.PARM_TYPE =#{parmType}
+        left join sms_device_parm dp on dp.SCENE_ID =ds.SCENE_ID and dp.DEVICE_ID =ds.DEVICE_ID and dp.PARM_TYPE =#{dto.parmType}
         left join sms_alarm_details ad on dp.SCENE_ID =ad.SCENE_ID and dp.DEVICE_ID =ad.DEVICE_ID and dp.ATTRIBUTE_ID =ad.ATTRIBUTE_ID
-        and ad.`STATUS` =1 and (ad.alarm_end_time > #{monthDate} or ad.state = 1)
+        and ad.`STATUS` =1 and (ad.alarm_end_time > #{dto.monthDate} or ad.state = 1)
         where st.`STATUS` = 1 and s.`STATUS` = 1 and ds.`STATUS` = 1 and d.`STATUS` = 1 and dp.`STATUS` = 1
-        and s.id= #{sceneId}
-        and st.SCENE_TYPE_NAME = #{sceneType}
-        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.id= #{dto.sceneId}
+        and st.SCENE_TYPE_NAME = #{dto.sceneType}
+        and s.TENANT_ID=#{user.tenantId}
+        <if test="user.userType!=null and user.userType!=-999 and user.userType!=-9999 and  user.programItems != null and user.programItems.size() > 0">
+            <if test="user.permissonType == 5 or user.permissonType == 2">
                 and ( s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     <if test="item.orgId != null">
                         #{item.orgId}
                     </if>
                 </foreach>
                 or
                 s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     <if test="item.orgId != null">
                         #{item.orgId}
                     </if>
                 </foreach>
                 )
             </if>
-            <if test="permissonType == 4 or permissonType == 3">
+            <if test="user.permissonType == 4 or user.permissonType == 3">
                 and s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     <if test="item.orgId != null">
                         #{item.orgId}
                     </if>
                 </foreach>
             </if>
-            <if test="permissonType == 1">
+            <if test="user.permissonType == 1">
                 and s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     <if test="item.orgId != null">
                         #{item.orgId}
                     </if>
@@ -398,31 +398,31 @@
         where  dp.`STATUS`=1  and st.`STATUS`=1 and s.`STATUS`=1 and s.ENABLE_STATE = 1
         and r.COLLECT_DATE >= date_add(curdate(), interval - day(curdate()) + 1 day)
         and dp.PARM_TYPE in (3,4,5,6,12)
-        and s.id= #{sceneId}
-        and st.SCENE_TYPE_NAME = #{sceneType}
-        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.id= #{dto.sceneId}
+        and st.SCENE_TYPE_NAME = #{dto.sceneType}
+        and dp.TENANT_ID=#{user.tenantId}
+        <if test="user.userType!=null and user.userType!=-999 and user.userType!=-9999 and  user.programItems != null and user.programItems.size() > 0">
+            <if test="user.permissonType == 5 or user.permissonType == 2">
                 and ( s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 or
                 s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 )
             </if>
-            <if test="permissonType == 4 or permissonType == 3">
+            <if test="user.permissonType == 4 or user.permissonType == 3">
                 and s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
             </if>
-            <if test="permissonType == 1">
+            <if test="user.permissonType == 1">
                 and s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
@@ -441,35 +441,35 @@
         left join sms_scene s on s.SCENE_TYPE_ID =st.id
         left join sms_device_parm dp on s.id=dp.PARENT_SCENE_ID
         left join sms_year_report r on r.DEVICE_ID= dp.DEVICE_ID and r.ATTRIBUTE_ID = dp.ATTRIBUTE_ID
-        where  dp.`STATUS`=1  and s.ENABLE_STATE = 1 and dp.TENANT_ID=#{tenantId}
-        and dp.PARM_TYPE = #{parmType} and st.SCENE_TYPE_NAME = #{sceneType}
-        and r.year*12 + r.month >=  year(CURDATE())*12 + month(CURDATE()) + 1 - #{month}
+        where  dp.`STATUS`=1  and s.ENABLE_STATE = 1 and dp.TENANT_ID=#{user.tenantId}
+        and dp.PARM_TYPE = #{dto.parmType} and st.SCENE_TYPE_NAME = #{dto.sceneType}
+        and r.year*12 + r.month >=  year(CURDATE())*12 + month(CURDATE()) + 1 - #{dto.month}
         and r.year*12 + r.month &lt; year(CURDATE())*12 + month(CURDATE()) + 1
-        <if test="companyOrgId != null">
-            and s.COMPANY_ORG_ID = #{companyOrgId}
+        <if test="dto.companyOrgId != null">
+            and s.COMPANY_ORG_ID = #{dto.companyOrgId}
         </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">
+        <if test="user.userType != null and user.userType != -999 and user.userType!=-9999 and  user.programItems != null and user.programItems.size() > 0">
+            <if test="user.permissonType == 5 or user.permissonType == 2">
                 and ( s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 or
                 s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 )
             </if>
-            <if test="permissonType == 4 or permissonType == 3">
+            <if test="user.permissonType == 4 or user.permissonType == 3">
                 and s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
             </if>
-            <if test="permissonType == 1">
+            <if test="user.permissonType == 1">
                 and s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
@@ -535,34 +535,34 @@
         left join sms_scene s on s.SCENE_TYPE_ID =st.id
         left join sms_device_parm dp on s.id=dp.PARENT_SCENE_ID
         left join sms_month_report r on r.DEVICE_ID= dp.DEVICE_ID and r.ATTRIBUTE_ID = dp.ATTRIBUTE_ID
-        where  st.`STATUS`=1 and dp.`STATUS`=1  and s.ENABLE_STATE = 1 and dp.TENANT_ID=#{tenantId}
-        and r.COLLECT_DATE >= DATE_SUB(CURDATE(),INTERVAL #{day}-1 day)
-        and dp.PARM_TYPE = #{parmType} and st.SCENE_TYPE_NAME = #{sceneType}
-        <if test="companyOrgId != null">
-            and s.COMPANY_ORG_ID = #{companyOrgId}
+        where  st.`STATUS`=1 and dp.`STATUS`=1  and s.ENABLE_STATE = 1 and dp.TENANT_ID=#{user.tenantId}
+        and r.COLLECT_DATE >= DATE_SUB(CURDATE(),INTERVAL #{dto.day}-1 day)
+        and dp.PARM_TYPE = #{dto.parmType} and st.SCENE_TYPE_NAME = #{dto.sceneType}
+        <if test="dto.companyOrgId != null">
+            and s.COMPANY_ORG_ID = #{dto.companyOrgId}
         </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">
+        <if test="user.userType != null and user.userType != -999 and user.userType!=-9999 and  user.programItems != null and user.programItems.size() > 0">
+            <if test="user.permissonType == 5 or user.permissonType == 2">
                 and ( s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 or
                 s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 )
             </if>
-            <if test="permissonType == 4 or permissonType == 3">
+            <if test="user.permissonType == 4 or user.permissonType == 3">
                 and s.DEPT_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
             </if>
-            <if test="permissonType == 1">
+            <if test="user.permissonType == 1">
                 and s.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)

+ 4 - 4
zoniot-charge/zoniot-charge-core/src/main/java/com/zcxk/charge/core/mapper/MonitorDataReportMapper.xml

@@ -562,7 +562,7 @@
     <!-- 对比————报警 -->
     <select id="deviceAlarmReport" resultMap="MonitorDataChartReportMap">
         select
-        a.*,DATE_ADD(#{dto.beginDate},INTERVAL a.dateLabel-1 ${dateType}) as "date"
+        a.*,DATE_ADD(#{dto.startTime},INTERVAL a.dateLabel-1 ${dateType}) as "date"
         from (
         select
         ${dateType}(ad.ALARM_START_TIME) as  "dateLabel"
@@ -584,7 +584,7 @@
         from sms_alarm_details ad
         left join sms_device d on ad.DEVICE_ID=d.ID
 
-        where ad.ALARM_START_TIME &lt; #{dto.endDate} and ad.ALARM_START_TIME >= #{dto.beginDate} and d.ENABLE_STATE = 1  and d.`STATUS`= 1
+        where ad.ALARM_START_TIME &lt; #{dto.endTime} and ad.ALARM_START_TIME >= #{dto.startTime} and d.ENABLE_STATE = 1  and d.`STATUS`= 1
         <if test="dto.sceneIds != null and dto.sceneIds.size()>0">
             and ad.parent_scene_id  in
             <foreach collection="dto.sceneIds" item="item" open="(" close=")" separator=",">
@@ -615,7 +615,7 @@
             </if>
             <if test="user.permissonType == 1">
                 and d.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
                     #{item.orgId}
                 </foreach>
                 and (d.DEPT_ORG_ID is null or d.DEPT_ORG_ID =0)
@@ -888,7 +888,7 @@
         <if test="sceneTypeName != null and sceneTypeName != ''">
             AND st.SCENE_TYPE_NAME = #{sceneTypeName}
         </if>
-        and s.TENANT_ID=#{tenantId}
+        and s.TENANT_ID=#{user.tenantId}
         <if test="user.userType!=null and user.userType!=-999 and user.userType!=-9999 and  user.programItems != null and user.programItems.size() > 0">
             <if test="permissonType == 5 or permissonType == 2">
                 and ( d.DEPT_ORG_ID in

+ 1 - 1
zoniot-charge/zoniot-charge-core/src/main/java/com/zcxk/charge/core/mapper/RevenueMapper.xml

@@ -221,7 +221,7 @@
     <select id="selectCompanyIdByTenant" resultType="java.lang.Integer">
         select id
         from  uims.uims_org
-        where parent_org_id=0 and tenant_id=#{tenantId}
+        where parent_org_id=0 and tenant_id = #{tenantId} limit 1;
     </select>
     <!-- 新增售水信息-->
     <insert id="insertSellWater">

+ 3 - 1
zoniot-charge/zoniot-charge-core/src/main/java/com/zcxk/charge/core/mapper/SceneMapper.xml

@@ -61,6 +61,7 @@
                 and a.scene_name LIKE concat('%',#{scene.sceneName},'%')
             </if>
             <if test="scene.sceneTypeId != null ">and a.scene_type_id = #{scene.sceneTypeId}</if>
+            <if test="scene.sceneTypeName != null ">and s.scene_type_name = #{scene.sceneTypeName}</if>
             <if test="scene.userType!=null and scene.userType!=-999 and scene.userType!=-9999 and  scene.programItems != null and scene.programItems.size() > 0">
                 <if test="scene.permissonType == 5 or scene.permissonType == 2">
                     and ( a.DEPT_ORG_ID in
@@ -117,10 +118,11 @@
         FROM sms_scene a
         <include refid="deviceJoins"/>
         <where>
-            a.status=1
+            a.status = 1
             <if test="scene.companyOrgId != null ">and a.COMPANY_ORG_ID=#{scene.companyOrgId}</if>
             <if test="scene.tenantId != null  and scene.tenantId != ''">and a.tenant_id = #{scene.tenantId}</if>
             <if test="scene.parentSceneIds != null ">and a.parent_scene_ids LIKE #{scene.parentSceneIds}</if>
+            <if test="scene.sceneTypeName != null ">and s.scene_type_name = #{scene.sceneTypeName}</if>
             <if test="scene.userType!=null and scene.userType!=-999 and scene.userType!=-9999 and  scene.programItems != null and scene.programItems.size() > 0">
                 <if test="scene.permissonType == 5 or scene.permissonType == 2">
                     and ( a.DEPT_ORG_ID in

+ 33 - 37
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/AlarmDetailsController.java

@@ -7,20 +7,19 @@ import com.zcxk.charge.api.dto.AlarmDetailsDto;
 import com.zcxk.charge.api.dto.AlarmDetailsHistoryDto;
 import com.zcxk.charge.api.dto.AlarmDetailsRealTimeDto;
 import com.zcxk.charge.api.dto.query.AlarmDetailsPageDto;
-import com.zcxk.charge.api.vo.AlarmDetailsEntityVo;
 import com.zcxk.charge.api.vo.AlarmDetailsHistoryVo;
 import com.zcxk.charge.api.vo.AlarmDetailsRealTimeVo;
-import com.zcxk.charge.web.common.Pagination;
 import com.zcxk.charge.core.entity.AlarmDetailsEntity;
+import com.zcxk.charge.web.common.Pagination;
 import com.zcxk.charge.web.service.AlarmDetailsService;
 import com.zcxk.charge.web.service.SceneService;
 import com.zcxk.core.common.pojo.AjaxMessage;
+import com.zcxk.core.mongo.utils.StringUtil;
 import com.zcxk.core.utils.ZoniotIntegerUtils;
 import com.zcxk.core.utils.export.EasyExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import io.swagger.models.auth.In;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,6 +27,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -66,13 +66,13 @@ public class AlarmDetailsController {
     public AjaxMessage selectPage(@RequestBody @Valid AlarmDetailsPageDto dto){
         AlarmDetailsDto alarmDetailsDto = coverAlarmDetailsDto(dto);
         IPage iPage = getPage(dto.getPageNum(), dto.getPageSize(), false, "t.date_create");
-        if (ZoniotIntegerUtils.isNotEmpty(dto.getSceneId())) {
-            alarmDetailsDto.setSceneIds(sceneService.findByParentIdsLike(dto.getSceneId().longValue()));
-            if (alarmDetailsDto.getSceneIds() == null || alarmDetailsDto.getSceneIds().size() == 0){
-                return AjaxMessage.success(new Pagination<>(iPage));
+        if (ZoniotIntegerUtils.isNotEmpty(dto.getSceneId()) || StringUtil.isNotEmpty(dto.getSceneTypeName())) {
+            alarmDetailsDto.setSceneIds(sceneService.findByParentIdsSceneTypeName(dto.getSceneId().longValue(), dto.getSceneTypeName()));
+            if (!CollectionUtils.isEmpty(alarmDetailsDto.getSceneIds())){
+                return AjaxMessage.success(new Pagination<>(alarmDetailsService.selectPage(iPage, alarmDetailsDto)));
             }
         }
-        return AjaxMessage.success(new Pagination<>(alarmDetailsService.selectPage(iPage, alarmDetailsDto)));
+        return AjaxMessage.success(new Pagination<>(iPage));
     }
 
     @RequestMapping(value="add" , method = RequestMethod.POST)
@@ -87,7 +87,7 @@ public class AlarmDetailsController {
         return AjaxMessage.success(alarmDetailsService.update(alarmDetailsEntity));
     }
 
-    @RequestMapping(value="delete" , method = RequestMethod.DELETE)
+    @RequestMapping(value="delete" , method = RequestMethod.GET)
     @ApiOperation(value = "单个删除报警详情信息")
     public AjaxMessage<Integer> delete( @ApiParam(value = "报警详情信息id") @RequestParam Integer id){
         return AjaxMessage.success(alarmDetailsService.deleteById(id));
@@ -110,8 +110,8 @@ public class AlarmDetailsController {
     public AjaxMessage selectHistoryPage(@RequestBody @Valid AlarmDetailsPageDto dto){
         AlarmDetailsDto alarmDetailsDto = coverAlarmDetailsDto(dto);
         IPage iPage = getPage(dto.getPageNum(), dto.getPageSize(), false, "a.ALARM_START_TIME");
-        if (ZoniotIntegerUtils.isNotEmpty(dto.getSceneId())) {
-            alarmDetailsDto.setSceneIds(sceneService.findByParentIdsLike(dto.getSceneId().longValue()));
+        if (ZoniotIntegerUtils.isNotEmpty(dto.getSceneId()) || StringUtil.isNotEmpty(dto.getSceneTypeName())) {
+            alarmDetailsDto.setSceneIds(sceneService.findByParentIdsSceneTypeName(dto.getSceneId().longValue(), dto.getSceneTypeName()));
             if (CollectionUtils.isEmpty(alarmDetailsDto.getSceneIds())){
                 return AjaxMessage.success(new Pagination<>(iPage));
             }
@@ -122,33 +122,30 @@ public class AlarmDetailsController {
 
     @RequestMapping(value="exportHistory" , method = RequestMethod.GET)
     @ApiOperation(value = "导出历史报警信息")
-    public AjaxMessage<String> exportHistory(@RequestBody @Valid AlarmDetailsPageDto dto){
+    public void exportHistory(AlarmDetailsPageDto dto, HttpServletResponse response) throws Exception {
         if (!CollectionUtils.isEmpty(dto.getIds())){
-            String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsHistoryDto.class, "历史报警记录",
-                    alarmDetailsService.selectHistoryByIds(dto.getIds()) );
-            return AjaxMessage.success(filePath);
+            EasyExcelUtil.excelWrite(response, AlarmDetailsHistoryDto.class, "历史报警记录", alarmDetailsService.selectHistoryByIds(dto.getIds()));
+            return ;
         }
         AlarmDetailsDto alarmDetailsDto = coverAlarmDetailsDto(dto);
-        if(ZoniotIntegerUtils.isNotEmpty(dto.getSceneId())) {
-            alarmDetailsDto.setSceneIds(sceneService.findByParentIdsLike(dto.getSceneId().longValue()));
+        if (ZoniotIntegerUtils.isNotEmpty(dto.getSceneId()) || StringUtil.isNotEmpty(dto.getSceneTypeName())) {
+            alarmDetailsDto.setSceneIds(sceneService.findByParentIdsSceneTypeName(dto.getSceneId().longValue(), dto.getSceneTypeName()));
             if (CollectionUtils.isEmpty(alarmDetailsDto.getSceneIds())){
-                String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsHistoryDto.class, "历史报警记录", new ArrayList<>());
-                return AjaxMessage.success(filePath);
+                EasyExcelUtil.excelWrite(response, AlarmDetailsHistoryDto.class, "历史报警记录", new ArrayList<>());
+                return ;
             }
         }
-        String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsHistoryDto.class, "历史报警记录",
-                alarmDetailsService.selectHistoryList(alarmDetailsDto));
-        return AjaxMessage.success(filePath);
+        EasyExcelUtil.excelWrite(response, AlarmDetailsHistoryDto.class, "历史报警记录", alarmDetailsService.selectHistoryList(alarmDetailsDto));
     }
 
 
-    @RequestMapping(value="selectRealTimePage" , method = RequestMethod.GET)
+    @RequestMapping(value="selectRealTimePage" , method = RequestMethod.POST)
     @ApiOperation(value = "分页查询实时报警详情信息")
     public AjaxMessage selectRealTimePage(@RequestBody @Valid AlarmDetailsPageDto dto ){
         AlarmDetailsDto alarmDetailsDto = coverAlarmDetailsDto(dto);
         IPage iPage = getPage(dto.getPageNum(), dto.getPageSize(), false, "a.ALARM_START_TIME");
-        if (ZoniotIntegerUtils.isNotEmpty(dto.getSceneId())) {
-            alarmDetailsDto.setSceneIds(sceneService.findByParentIdsLike(dto.getSceneId().longValue()));
+        if (ZoniotIntegerUtils.isNotEmpty(dto.getSceneId()) ||StringUtil.isNotEmpty(dto.getSceneTypeName())) {
+            alarmDetailsDto.setSceneIds(sceneService.findByParentIdsSceneTypeName(dto.getSceneId().longValue(), dto.getSceneTypeName()));
             if (alarmDetailsDto.getSceneIds() == null || alarmDetailsDto.getSceneIds().size() == 0 ){
                 return AjaxMessage.success(new Pagination<>(iPage));
             }
@@ -159,29 +156,27 @@ public class AlarmDetailsController {
 
     @RequestMapping(value="exportRealTime" , method = RequestMethod.GET)
     @ApiOperation(value = "导出实时报警信息")
-    public AjaxMessage<String> exportRealTime(@RequestBody @Valid AlarmDetailsPageDto dto){
+    public void exportRealTime(AlarmDetailsPageDto dto, HttpServletResponse response) throws Exception {
         if (!CollectionUtils.isEmpty(dto.getIds())){
-            String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsRealTimeDto.class, "实时报警记录",alarmDetailsService.selectRealTimeByIds(dto.getIds()));
-            return AjaxMessage.success(filePath);
+            EasyExcelUtil.excelWrite(response, AlarmDetailsRealTimeDto.class, "实时报警记录", alarmDetailsService.selectRealTimeByIds(dto.getIds()));
+            return;
         }
         AlarmDetailsDto alarmDetailsDto = coverAlarmDetailsDto(dto);
-        if (ZoniotIntegerUtils.isNotEmpty(dto.getSceneId())) {
-            List<Long> ids = sceneService.findByParentIdsLike(dto.getSceneId().longValue());
+        if (ZoniotIntegerUtils.isNotEmpty(dto.getSceneId()) || StringUtil.isNotEmpty(dto.getSceneTypeName()))  {
+            List<Long> ids = sceneService.findByParentIdsSceneTypeName(dto.getSceneId().longValue(), dto.getSceneTypeName());
             alarmDetailsDto.setSceneIds(ids);
             if (CollectionUtils.isEmpty(ids)){
-                String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsHistoryDto.class, "历史报警记录", new ArrayList<>());
-                return AjaxMessage.success(filePath);
+                EasyExcelUtil.excelWrite(response, AlarmDetailsHistoryDto.class, "历史报警记录", new ArrayList<>());
+                return;
             }
         }
-        String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsRealTimeDto.class, "实时报警记录",
-                alarmDetailsService.selectRealTimeList(alarmDetailsDto) );
-        return AjaxMessage.success(filePath);
+        EasyExcelUtil.excelWrite(response, AlarmDetailsRealTimeDto.class, "实时报警记录", alarmDetailsService.selectRealTimeList(alarmDetailsDto));
     }
 
 
-    @RequestMapping(value="batchDelete" , method = RequestMethod.DELETE)
+    @RequestMapping(value="batchDelete" , method = RequestMethod.POST)
     @ApiOperation(value = "批量删除")
-    public AjaxMessage<Integer> batchDelete( @ApiParam(value = "报警信息ids") @RequestParam List<Integer> ids){
+    public AjaxMessage<Integer> batchDelete( @ApiParam(value = "报警信息ids") @RequestBody List<Integer> ids){
         return AjaxMessage.success(alarmDetailsService.batchDelete(ids));
     }
 
@@ -197,6 +192,7 @@ public class AlarmDetailsController {
         alarmDetailsDto.setCondition(dto.getCondition());
         alarmDetailsDto.setAlarmType(dto.getAlarmType());
         alarmDetailsDto.setOpState(dto.getOpState());
+        alarmDetailsDto.setSceneTypeName(dto.getSceneTypeName());
         SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
         try {
             if(StringUtils.isNotBlank(dto.getStartTime())){

+ 10 - 7
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/AlarmSettingController.java

@@ -21,6 +21,7 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
@@ -70,11 +71,12 @@ public class AlarmSettingController {
     @ApiOperation(value = "批量增加报警配置信息",notes = "alarmType 为参数报警或状态报警")
     public AjaxMessage insertBatch(@ApiParam(value = "报警配置列表", required = true) @RequestBody List<AlarmSetting> listAlarmSetting) {
         LoginUser currentUser = UserUtil.getCurrentUser();
-        SceneEntity sceneEntity;
-        if (listAlarmSetting.size() > 0) {
-            sceneEntity = sceneService.findParentSceneById(listAlarmSetting.get(0).getSceneId());
-        } else {
-            sceneEntity = new SceneEntity();
+        if (CollectionUtils.isEmpty(listAlarmSetting) || listAlarmSetting.get(0).getSceneId() == null || listAlarmSetting.get(0).getSceneId() == 0){
+            return AjaxMessage.fail(ChargeErrorEnum.PARAM_ERROR);
+        }
+        SceneEntity sceneEntity = sceneService.findParentSceneById(listAlarmSetting.get(0).getSceneId());
+        if (sceneEntity == null) {
+            return AjaxMessage.fail(ChargeErrorEnum.OBJECT_ERROR);
         }
         for (AlarmSetting alarm : listAlarmSetting) {
             if(!valid(alarm)){
@@ -98,7 +100,8 @@ public class AlarmSettingController {
         alarmSettingDto.setId(dto.getId());
         alarmSettingDto.setAttributeName(dto.getAttributeName());
         alarmSettingDto.setSceneId(dto.getSceneId());
-        alarmSettingDto.setSceneIds(sceneService.findByParentIdsLike(dto.getSceneId()));
+        alarmSettingDto.setSceneIds(sceneService.findByParentIdsSceneTypeName(dto.getSceneId(), dto.getSceneTypeName()));
+
         LoginUser loginUser = UserUtil.getCurrentUser();
         alarmSettingDto.setTenantId(loginUser.getTenantId());
         alarmSettingDto.setProgramItems(loginUser.getProgramItemList());
@@ -119,7 +122,7 @@ public class AlarmSettingController {
     public AjaxMessage selectAttributes(
             @ApiParam(value = "场景id", required = true)@RequestParam Integer sceneId,
             @ApiParam(value = "设备id", required = true)@RequestParam Integer deviceId) {
-        if (deviceId==null||sceneId==null) {
+        if ( deviceId == null || sceneId == null) {
             return AjaxMessage.fail(ChargeErrorEnum.PARAM_ERROR);
         }
         return AjaxMessage.success(alarmSettingService.selectAttributes(deviceId,sceneId));

+ 8 - 11
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/DataAlarmController.java

@@ -1,6 +1,7 @@
 package com.zcxk.charge.web.controller;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zcxk.charge.api.dto.AlarmDetailsRealTimeDto;
 import com.zcxk.charge.web.common.Pagination;
 import com.zcxk.charge.api.dto.alarm.DataAlarmDto;
 import com.zcxk.charge.api.dto.alarm.DataAlarmExportDto;
@@ -21,6 +22,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.util.List;
 
@@ -61,7 +63,7 @@ public class DataAlarmController {
         return AjaxMessage.success();
     }
 
-    @RequestMapping(value="find/manage" , method = RequestMethod.POST)
+    @RequestMapping(value="find/manage" , method = RequestMethod.GET)
     @ApiOperation(value = "查询报警管理")
     public AjaxMessage findManage(@ApiParam(value = "报警设置ID", required = true) @RequestParam("alarmId") Long alarmId) {
         return AjaxMessage.success(dataAlarmManageService.findAlarmManage(alarmId));
@@ -107,28 +109,23 @@ public class DataAlarmController {
         return AjaxMessage.success(new Pagination<>(dataAlarmAnalysisService.findPage(dataAlarmDto)));
     }
 
-    @RequestMapping(value="export/excel" , method = RequestMethod.POST)
+    @RequestMapping(value="export/excel" , method = RequestMethod.GET)
     @ApiOperation(value = "excel导出")
-    public AjaxMessage exportExcel(@RequestBody @Valid DataAlarmExportDto exportDto) {
+    public void exportExcel(DataAlarmExportDto exportDto, HttpServletResponse response) throws Exception {
         DataAlarmDto alarmDto = new DataAlarmDto();
         BeanUtils.copyProperties(exportDto, alarmDto);
         alarmDto.setPageNum(1);
         alarmDto.setPageSize(100000);
-        String filePath;
         int exportType = 2;
         if (exportDto.getExportType() == 0 || exportDto.getExportType() == 1) {
             String title = exportDto.getExportType() == 0 ? "实时数据" :"历史数据";
             Page<DataAlarmDetailsVo> page =  dataAlarmDetailService.findPage(alarmDto, exportDto.getExportType());
-            filePath = EasyExcelUtil.excelWrite(baseDir, DataAlarmDetailsVo.class, "数据报警" + title, page.getRecords());
-            return AjaxMessage.success( filePath);
+            EasyExcelUtil.excelWrite(response, DataAlarmDetailsVo.class, "数据报警" + title, page.getRecords());
+            return;
         }
         if (exportDto.getExportType() == exportType) {
             Page<DataAlarmAnalysisVo> page = dataAlarmAnalysisService.findPage(alarmDto);
-            filePath = EasyExcelUtil.excelWrite(baseDir, DataAlarmAnalysisVo.class, "数据报警分析", page.getRecords());
-            return AjaxMessage.success(filePath);
+            EasyExcelUtil.excelWrite(response, DataAlarmAnalysisVo.class, "数据报警分析", page.getRecords());
         }
-        return AjaxMessage.success();
     }
-
-
 }

+ 13 - 10
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/DayMonthYearReportController.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zcxk.charge.api.dto.*;
 import com.zcxk.charge.api.dto.query.ReportQueryPageDto;
+import com.zcxk.charge.api.enums.ChargeErrorEnum;
 import com.zcxk.charge.api.vo.DevicePressReportAttributeVo;
 import com.zcxk.charge.api.vo.DeviceWaterReportAttributeVo;
 import com.zcxk.charge.api.vo.ReportVo;
@@ -14,7 +15,10 @@ import com.zcxk.charge.web.service.ReportDimensionSettingService;
 import com.zcxk.charge.web.service.ReportService;
 import com.zcxk.charge.web.util.ExcelUtil;
 import com.zcxk.charge.web.util.ReportExcelUtil;
+import com.zcxk.core.common.enums.RespCodeEnum;
+import com.zcxk.core.common.exception.BusinessException;
 import com.zcxk.core.common.pojo.AjaxMessage;
+import com.zcxk.core.utils.export.EasyExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -23,6 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.util.List;
 
@@ -158,9 +163,9 @@ public class DayMonthYearReportController {
         return AjaxMessage.success();
     }
 
-    @RequestMapping(value = "/export/excel", method = RequestMethod.POST)
+    @RequestMapping(value = "/export/excel", method = RequestMethod.GET)
     @ApiOperation(value = "【统计分析】--报表导出")
-    public AjaxMessage exportExcel(@RequestBody  @Valid ReportQueryDto queryDto) {
+    public void exportExcel(ReportQueryDto queryDto, HttpServletResponse response) throws Exception {
         IPage<ReportVo> iPage;
         if (StringUtils.isEmpty(queryDto.getStartTime()) || StringUtils.isEmpty(queryDto.getEndTime())){
             queryDto.setStartTime(null);
@@ -173,16 +178,15 @@ public class DayMonthYearReportController {
         }
         List<ReportVo> list = iPage.getRecords();
         if (CollectionUtil.isEmpty(list)){
-            return AjaxMessage.success();
+            throw BusinessException.builder(ChargeErrorEnum.OBJECT_ERROR);
         }
         List<List<String>> reportTitle = ReportExcelUtil.toExcelTitleList(list.get(0).getReportTitle(), queryDto.getSceneType(),0);
-        String filePath = ExcelUtil.writeSimpleExcelWithHeader(baseDir, SceneEnum.getMsg(queryDto.getSceneType()) +"报表", reportTitle, ReportExcelUtil.toReportExcelDto(list,queryDto.getSceneType()));
-        return AjaxMessage.success(filePath);
+        EasyExcelUtil.excelWriteWithHeader(response, SceneEnum.getMsg(queryDto.getSceneType()) +"报表", reportTitle, ReportExcelUtil.toReportExcelDto(list,queryDto.getSceneType()));
     }
 
-    @RequestMapping(value = "/export/historyDataExcel", method = RequestMethod.POST)
+    @RequestMapping(value = "/export/historyDataExcel", method = RequestMethod.GET)
     @ApiOperation(value = "【历史数据】--报表导出")
-    public AjaxMessage historyDataExcel(@RequestBody  @Valid ReportQueryDto queryDto) {
+    public void historyDataExcel(ReportQueryDto queryDto, HttpServletResponse response) throws Exception {
         IPage<ReportVo> iPage;
         if (StringUtils.isEmpty(queryDto.getStartTime()) || StringUtils.isEmpty(queryDto.getEndTime())) {
             queryDto.setStartTime(null);
@@ -195,11 +199,10 @@ public class DayMonthYearReportController {
         }
         List<ReportVo> list = iPage.getRecords();
         if (CollectionUtil.isEmpty(list)) {
-            return AjaxMessage.success();
+            throw BusinessException.builder(ChargeErrorEnum.OBJECT_ERROR);
         }
         List<List<String>> reportTitle = ReportExcelUtil.toHistoryDataExcelTitleList(list.get(0).getReportTitle(), queryDto.getSceneType(),1);
-        String filePath = ExcelUtil.writeSimpleExcelWithHeader(baseDir, SceneEnum.getMsg(queryDto.getSceneType()) + "报表", reportTitle, ReportExcelUtil.toHisoryDataReportExcelDto(list, queryDto.getSceneType()));
-        return AjaxMessage.success(filePath);
+        EasyExcelUtil.excelWriteWithHeader(response, SceneEnum.getMsg(queryDto.getSceneType()) +"报表", reportTitle, ReportExcelUtil.toHisoryDataReportExcelDto(list, queryDto.getSceneType()));
     }
 
 }

+ 2 - 2
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/DeviceController.java

@@ -118,14 +118,14 @@ public class DeviceController {
         return AjaxMessage.success(deviceService.update(deviceEntity));
     }
 
-    @RequestMapping(value="delete" , method = RequestMethod.DELETE)
+    @RequestMapping(value="delete" , method = RequestMethod.GET)
     @ApiOperation(value = "单个删除设备信息")
     @LogAnnotation(module = "【设备管理】删除")
     public AjaxMessage<Integer> delete( @ApiParam(value = "设备信息id") @RequestParam Long id){
         return AjaxMessage.success(deviceService.delete(id));
     }
 
-    @RequestMapping(value="batchDelete" , method = RequestMethod.DELETE)
+    @RequestMapping(value="batchDelete" , method = RequestMethod.GET)
     @ApiOperation(value = "批量删除设备信息")
     @LogAnnotation(module = "【设备管理】批量删除")
     public AjaxMessage<Integer> batchDelete( @ApiParam(value = "设备信息id") @RequestParam List<Long> ids){

+ 1 - 1
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/DeviceParmController.java

@@ -93,7 +93,7 @@ public class DeviceParmController {
         return AjaxMessage.success(deviceParmService.update(deviceParmEntity));
     }
 
-    @RequestMapping(value="delete" , method = RequestMethod.DELETE)
+    @RequestMapping(value="delete" , method = RequestMethod.GET)
     @ApiOperation(value = "单个删除设备参数信息")
     public AjaxMessage<Integer> delete( @ApiParam(value = "设备参数信息id") @RequestParam Integer id){
         return AjaxMessage.success(deviceParmService.delete(id));

+ 4 - 4
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/MonitorDataReportController.java

@@ -28,7 +28,7 @@ import java.util.stream.Collectors;
  * @data 2020-12-02 8:19
  */
 @RestController
-@RequestMapping("/MonitorDataReport")
+@RequestMapping("/monitorDataReport")
 @Api(tags = "统计分析")
 public class MonitorDataReportController extends BaseController{
 
@@ -71,7 +71,7 @@ public class MonitorDataReportController extends BaseController{
         return AjaxMessage.success(result);
     }
 
-    @RequestMapping(value = "MonitorDataCompareReport",method = RequestMethod.POST)
+    @RequestMapping(value = "monitorDataCompareReport",method = RequestMethod.POST)
     @ApiOperation(value = "统计分析——对比,按集合顺序取,能耗——水质——报警")
     public AjaxMessage monitorDataCompareReport(@RequestBody @Valid MonitorDataCompareDto dto){
         List<List<MonitorDataChartReportDeviceVo>> reportList = new ArrayList<>();
@@ -128,7 +128,7 @@ public class MonitorDataReportController extends BaseController{
         return AjaxMessage.success(monitorDataReportService.getDeviceBySceneTypeName(sceneTypeName));
     }
 
-    @RequestMapping(value = "MonitorDataChartReportByDevice",method = RequestMethod.GET)
+    @RequestMapping(value = "monitorDataChartReportByDevice",method = RequestMethod.POST)
     @ApiOperation(value = "统计分析——管网图表")
     public AjaxMessage monitorDataChartReportByDevice(@RequestBody @Valid MonitorDataChartDto dto){
         if(CollectionUtils.isEmpty(dto.getDeviceIds())){
@@ -143,7 +143,7 @@ public class MonitorDataReportController extends BaseController{
         return AjaxMessage.success(monitorDataReportService.monitorDataDeviceReport(queryDto));
     }
 
-    @RequestMapping(value = "MonitorDataGeneralView",method = RequestMethod.GET)
+    @RequestMapping(value = "monitorDataGeneralView",method = RequestMethod.GET)
     @ApiOperation(value = "统计分析——管网图表")
     public AjaxMessage monitorDataGeneralView(){
         return AjaxMessage.success(monitorDataReportService.monitorDataGeneralView());

+ 2 - 2
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/MonitorInfoController.java

@@ -99,7 +99,7 @@ public class MonitorInfoController {
     }
 
     @ApiOperation(value = "按场景ID查询所有标签信息")
-    @RequestMapping(value = "/findBySceneId", method = RequestMethod.GET)
+    @RequestMapping(value = "/findBySceneId", method = RequestMethod.POST)
     @ResponseBody
     public AjaxMessage<List<MonitorInfoEntity>> findBySceneId(@RequestBody @Valid MonitorInfoDto dto) {
         MonitorInfoEntity monitorInfoEntity = new MonitorInfoEntity();
@@ -284,7 +284,7 @@ public class MonitorInfoController {
     @ApiOperation(value = "操作标签--查询设备属性")
     @RequestMapping(value = "/getSceneParmBySceneId", method = RequestMethod.GET)
     @ResponseBody
-    public AjaxMessage getSceneParmBySceneId(@ApiParam(value = "场景类型ID", required = true) Long id) {
+    public AjaxMessage getSceneParmBySceneId(@ApiParam(value = "场景类型ID", required = true) @RequestParam Long id) {
         return AjaxMessage.success(deviceParmService.selectByScendId(id.intValue()));
     }
 

+ 8 - 4
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/RevenueController.java

@@ -1,5 +1,6 @@
 package com.zcxk.charge.web.controller;
 
+import com.zcxk.charge.api.dto.AlarmDetailsRealTimeDto;
 import com.zcxk.charge.api.dto.MonthRevenueDto;
 import com.zcxk.charge.api.dto.MonthSellwaterDto;
 import com.zcxk.charge.api.dto.query.RevenueDto;
@@ -11,15 +12,18 @@ import com.zcxk.charge.core.entity.MonthRevenueEntity;
 import com.zcxk.charge.core.entity.MonthSellwaterEntity;
 import com.zcxk.charge.core.entity.WaterPropertyEntity;
 import com.zcxk.charge.web.common.Pagination;
+import com.zcxk.charge.web.enums.SceneEnum;
 import com.zcxk.charge.web.service.RevenueService;
 import com.zcxk.charge.web.service.WaterPropertyService;
 import com.zcxk.charge.web.util.ExcelUtil;
 import com.zcxk.charge.web.util.OrgInfoUtil;
+import com.zcxk.charge.web.util.ReportExcelUtil;
 import com.zcxk.core.common.enums.RespCodeEnum;
 import com.zcxk.core.common.pojo.AjaxMessage;
 import com.zcxk.core.common.util.BeanCopyUtils;
 import com.zcxk.core.oauth2.pojo.LoginUser;
 import com.zcxk.core.oauth2.util.UserUtil;
+import com.zcxk.core.utils.export.EasyExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -28,6 +32,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.client.RestTemplate;
 
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
@@ -230,9 +235,9 @@ public class RevenueController {
         return AjaxMessage.success(pages);
     }
 
-    @RequestMapping(value = "exportList", method = RequestMethod.POST)
+    @RequestMapping(value = "exportList", method = RequestMethod.GET)
     @ApiOperation(value = "导出营收数据")
-    public AjaxMessage<String> exportList(@RequestBody @Valid RevenueDto dto) {
+    public void exportList(RevenueDto dto, HttpServletResponse response) throws Exception {
         MonthRevenueDto monthRevenueDto=new MonthRevenueDto();
         monthRevenueDto.setCompanyOrgId(dto.getCompanyOrgId());
         monthRevenueDto.setStartDate(dto.getStartDate());
@@ -285,7 +290,6 @@ public class RevenueController {
             datalist.add(item.getGeneralUserUsageReceived()==null?"-":df.format(item.getGeneralUserUsageReceived()));
             excelResult.add(datalist);
         }
-        String filePath = ExcelUtil.writeSimpleExcelWithHeader(baseDir,"营收报表",reportTitle,excelResult);
-        return AjaxMessage.success(filePath);
+        EasyExcelUtil.excelWriteWithHeader(response, "营收报表", reportTitle, excelResult);
     }
 }

+ 13 - 12
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/SceneController.java

@@ -57,7 +57,7 @@ public class SceneController {
     private ParmSettingService parmSettingService;
 
     @ApiOperation(value = "分页查询场景")
-    @RequestMapping(value = "/selectPage", method = RequestMethod.GET)
+    @RequestMapping(value = "/selectPage", method = RequestMethod.POST)
     @ResponseBody
     public AjaxMessage selectPage(@RequestBody @Valid ScenePageDto dto) {
         IPage<SceneEntity> iPage = new Page<>(dto.getPageNum(), dto.getPageSize());
@@ -69,14 +69,16 @@ public class SceneController {
     }
 
     @ApiOperation(value = "查询场景树")
-    @RequestMapping(value = "/selectList", method = RequestMethod.POST)
+    @RequestMapping(value = "/selectList", method = RequestMethod.GET)
     @ResponseBody
-    public AjaxMessage allList() {
+    public AjaxMessage allList(@RequestParam String sceneTypeName) {
+        SceneEntity sceneEntity = new SceneEntity();
+        sceneEntity.setSceneTypeName(sceneTypeName);
         return AjaxMessage.success(sceneService.findAllList(new SceneEntity()));
     }
 
     @ApiOperation(value = "查询场景树")
-    @RequestMapping(value = "/selectListForParm", method = RequestMethod.POST)
+    @RequestMapping(value = "/selectListForParm", method = RequestMethod.GET)
     @ResponseBody
     public AjaxMessage selectListForParm(@RequestParam(required = false) Long comId,
                                          @RequestParam(required = false) Long deptId) {
@@ -134,8 +136,7 @@ public class SceneController {
     @RequestMapping(value = "/selectById", method = RequestMethod.GET)
     @ResponseBody
     public AjaxMessage<SceneEntity> selectById(@ApiParam(value = "ID", required = true) @RequestParam Long id) {
-        SceneEntity scene = sceneService.findSceneById(id);
-        return AjaxMessage.success( scene);
+        return AjaxMessage.success(sceneService.findSceneById(id));
     }
 
     @RequestMapping(value = "/edit", method = RequestMethod.POST)
@@ -211,8 +212,8 @@ public class SceneController {
                 endDate = SceneUtil.subMonth(startDate, 1);
 
                 days = DateUtil.getDaysOfMonth(startDate);
-                if(localDate.getYear() == Integer.parseInt(startDate.substring(0,4))&&
-                localDate.getMonthValue() == Integer.parseInt(startDate.substring(5,7))){
+                if (localDate.getYear() == Integer.parseInt(startDate.substring(0,4))&&
+                    localDate.getMonthValue() == Integer.parseInt(startDate.substring(5,7))){
                     days = localDate.getDayOfMonth();
                 }
                 break;
@@ -247,7 +248,7 @@ public class SceneController {
         parmSettingEntity.setCompanyOrgId(Long.valueOf(loginUser.getCompanyId().toString()));
         parmSettingEntity.setParmType(3);
         List<ParmSettingEntity> paramSettingList = parmSettingService.findList(parmSettingEntity);
-        if(paramSettingList.size()==0){
+        if ( paramSettingList.size() == 0 ){
             return new AjaxMessage<>(55555,"没有配置故障率参数",null);
         }
         ParmSettingEntity parmSetting = paramSettingList.get(0);
@@ -257,10 +258,10 @@ public class SceneController {
            return new AjaxMessage<>(55555,"参数设置格式错误!请参照正确格式设置:0.5;0.5~0.2;0.2",null);
         }
         String[] mParam = params[1].split("~");
-        if(mParam.length != 2){
+        if (mParam.length != 2){
            return new AjaxMessage<>(55555,"参数设置格式错误!请参照正确格式设置:0.5;0.5~0.2;0.2",null);
         }
-        if(SceneUtil.validateNumber(params[0])==false || SceneUtil.validateNumber(params[2])==false
+        if (SceneUtil.validateNumber(params[0])==false || SceneUtil.validateNumber(params[2])==false
                 || SceneUtil.validateNumber(mParam[0])==false || SceneUtil.validateNumber(mParam[1])==false){
             return new AjaxMessage<>(55555,"参数设置格式错误!请参照正确格式设置:0.5;0.5~0.2;0.2",null);
         }
@@ -284,7 +285,7 @@ public class SceneController {
         return AjaxMessage.success(list);
     }
 
-    @RequestMapping(value = "/alarmTimesStatistics", method = RequestMethod.GET)
+    @RequestMapping(value = "/alarmTimesStatistics", method = RequestMethod.POST)
     @ResponseBody
     @ApiOperation(value = "报警次数统计")
     public AjaxMessage alarmTimesStatistics(@RequestBody @Valid SceneDto dto) throws ParseException {

+ 1 - 1
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/controller/SystemSettingController.java

@@ -70,7 +70,7 @@ public class SystemSettingController {
         return AjaxMessage.success( systemSettingService.saveSystem(systemSetting));
     }
 
-    @RequestMapping(value = "selectGis", method = RequestMethod.GET)
+    @RequestMapping(value = "selectGis", method = RequestMethod.POST)
     @ApiOperation(value = "查询Gis配置数据")
     public AjaxMessage selectGis(@RequestBody @Valid GisPageDto dto) {
         LoginUser currentUser = UserUtil.getCurrentUser();

+ 4 - 4
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/AlarmSettingService.java

@@ -98,18 +98,18 @@ public class AlarmSettingService extends ServiceImpl<AlarmSettingMapper, AlarmSe
      */
     public void updateRealtimeAlarm(Long[] ids,String updateBy) {
         //系统中已存在的报警
-        List<AlarmDetailsEntityVo> alarmDetailsDtos = alarmDetailMapper.selectStateAlarm(null,null,Arrays.asList(ids));
+        List<AlarmDetailsEntityVo> voList = alarmDetailMapper.selectStateAlarm(null,null,Arrays.asList(ids));
 
-        if(alarmDetailsDtos.size() > 0){
+        if(voList.size() > 0){
             //标记为历史数据
             List<Long> deviceIds = new ArrayList<>();
-            deviceIds.add(alarmDetailsDtos.get(0).getDeviceId().longValue());
+            deviceIds.add(voList.get(0).getDeviceId().longValue());
             List<WorkOrderManageByAlarmDto> workOrders = operationManagerClient.findWorkOrderByDeviceIds(deviceIds);
             if(workOrders.size()>0){
                 WorkOrderManageByAlarmDto orderManageByAlarmDto = workOrders.get(0);
                 String taskDesc = orderManageByAlarmDto.getTaskDesc();
                 //标记为历史数据 并 修改工单描述
-                for(AlarmDetailsEntityVo alarmDetailsDto : alarmDetailsDtos){
+                for(AlarmDetailsEntityVo alarmDetailsDto : voList){
                     alarmDetailsDto.setState(0);
                     alarmDetailsDto.setAlarmEndTime(new Date());
                     alarmDetailsDto.setDateUpdate(new Date());

+ 8 - 53
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/DeviceTypeService.java

@@ -15,6 +15,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
+import static com.google.common.collect.Lists.newArrayList;
+
 /**
  * 设备型号Service接口
  *
@@ -27,63 +29,20 @@ public class DeviceTypeService extends ServiceImpl<DeviceTypeMapper, DeviceTypeE
     @Resource
     private DeviceTypeMapper deviceTypeMapper;
 
-    public List<DeviceTypeEntity> findListByName(DeviceTypeEntity deviceTypeEntity)
-    {
+
+    public List<DeviceTypeEntity> findListByName(DeviceTypeEntity deviceTypeEntity){
         return deviceTypeMapper.findListByName(deviceTypeEntity);
     }
-    /**
-     * 查列表
-     */
+
     public List<DeviceTypeEntity> findList(DeviceTypeEntity deviceTypeEntity) {
         return deviceTypeMapper.findList(deviceTypeEntity);
     }
 
-    /**
-     * 批量删除
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public boolean delDeviceTypeByIds(Long[] ids) {
-        return this.removeByIds(Arrays.asList(ids));
-
-    }
-
-    /**
-     * 单个删除
-     */
-    public boolean delDeviceTypeById(Long id) {
-        return this.removeById(id);
-
-    }
-
-    /**
-     * 保存
-     */
-    public boolean addDeviceType(DeviceTypeEntity deviceType) {
-        if (this.save(deviceType)) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * 修改根居ID
-     */
-    public boolean updateDeviceTypeById(DeviceTypeEntity deviceType) {
-        if (this.updateById(deviceType)) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * 根居ID获取对象
-     */
     public DeviceTypeEntity findDeviceTypeById(Long id) {
         return deviceTypeMapper.findDeviceTypeById(id);
     }
 
-    public List<TreeDataDto> getTreeData(String  name)
-    {
+    public List<TreeDataDto> getTreeData(String  name) {
         DeviceTypeEntity deviceTypeEntity = new DeviceTypeEntity();
         deviceTypeEntity.setManufacturerName(name);
         List<DeviceTypeEntity> list = deviceTypeMapper.findList(deviceTypeEntity);
@@ -106,9 +65,7 @@ public class DeviceTypeService extends ServiceImpl<DeviceTypeMapper, DeviceTypeE
                 if (manufacturerNameTreeDataDto.getChildren() != null) {
                     manufacturerNameTreeDataDto.getChildren().add(equipmentTypeTreeDataDto);
                 }else {
-                    List<TreeDataDto> listDto = new ArrayList<>();
-                    listDto.add(equipmentTypeTreeDataDto);
-                    manufacturerNameTreeDataDto.setChildren(listDto);
+                    manufacturerNameTreeDataDto.setChildren(newArrayList(equipmentTypeTreeDataDto));
                 }
 
                 List<DeviceTypeEntity> equipmentTypeKeyList = equipmentTypeGroupBy.get(equipmentTypeKey);
@@ -121,9 +78,7 @@ public class DeviceTypeService extends ServiceImpl<DeviceTypeMapper, DeviceTypeE
                     if (equipmentTypeTreeDataDto.getChildren() != null) {
                         equipmentTypeTreeDataDto.getChildren().add(modelTreeDataDto);
                     }else {
-                        List<TreeDataDto> listDto = new ArrayList<>();
-                        listDto.add(equipmentTypeTreeDataDto);
-                        equipmentTypeTreeDataDto.setChildren(listDto);
+                        equipmentTypeTreeDataDto.setChildren(newArrayList(modelTreeDataDto));
                     }
                 }
             }

+ 3 - 0
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/ReportService.java

@@ -21,10 +21,13 @@ import java.util.List;
  */
 @Service
 public class ReportService {
+
     @Autowired
     private DayReportService dayReportService;
+
     @Autowired
     private MonthReportService monthReportService;
+
     @Autowired
     private YearReportService yearReportService;
 

+ 16 - 4
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/SceneService.java

@@ -222,11 +222,23 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
      * 根据父级ID查询所有子节点及本身
      */
     public List<Long> findByParentIdsLike(Long id) {
+        return listSceneIds(id, null);
+    }
+
+    /**
+     * 根据父级ID查询所有子节点及本身
+     */
+    public List<Long> findByParentIdsSceneTypeName (Long id, String sceneTypeName) {
+        return listSceneIds(id, sceneTypeName);
+    }
+
+    private List<Long> listSceneIds(Long id, String sceneTypeName){
         LoginUser currentUser = UserUtil.getCurrentUser();
         SceneEntity scene = new SceneEntity();
         if (id != null) {
             scene.setParentSceneIds("%," + id + ",%");
         }
+        scene.setSceneTypeName(sceneTypeName);
         scene.setTenantId(currentUser.getTenantId());
         scene.setStatus(1);
         scene.setProgramItems(currentUser.getProgramItemList());
@@ -240,6 +252,7 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
         }
         return longs;
     }
+
     /**
      * 根据父级ID查询所有子节点及本身
      */
@@ -333,6 +346,9 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
      */
     public SceneEntity findSceneById(Long id) {
         SceneEntity sceneEntity = sceneMapper.findSceneById(id);
+        if (sceneEntity == null) {
+            return null;
+        }
         SceneImageEntity sceneImageEntity = new SceneImageEntity();
         sceneImageEntity.setSceneId(id);
         List<SceneImageEntity> sceneImageEntities = sceneImageService.findList(sceneImageEntity);
@@ -352,10 +368,6 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
         return sceneEntity;
     }
 
-    public List<SceneEntity> findBySceneTypeIds(Long[] ids) {
-        return sceneMapper.findBySceneTypeIds(ids);
-    }
-
 
     public List<SceneEntity> findByParentSceneIds(Long[] ids) {
         return sceneMapper.findByParentSceneIds(ids);

+ 42 - 71
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/impl/AppPageReportServiceImpl.java

@@ -1,6 +1,7 @@
 package com.zcxk.charge.web.service.impl;
 
 
+import com.zcxk.charge.api.dto.query.HomePageReportDto;
 import com.zcxk.charge.api.vo.DeviceWaterSupplyVo;
 import com.zcxk.charge.api.vo.MonthRevenueVo;
 import com.zcxk.charge.core.dao.HomePageReportMapper;
@@ -44,11 +45,6 @@ public class AppPageReportServiceImpl implements AppPageReportService {
     @Resource
     private SceneMapper sceneMapper;
 
-    /**
-     * App 总览 前N个月的售水量
-     * @param companyOrgId
-     * @return
-     */
     @Override
     public List<DeviceWaterSupplyVo> deviceSellerWaterReportForMonth(Integer companyOrgId, Integer month) {
         LocalDate localDate = LocalDate.now();
@@ -57,16 +53,10 @@ public class AppPageReportServiceImpl implements AppPageReportService {
         for (int i = 0; i < month; i++) {
             LocalDate newLocalDate = localDate.plusMonths(-i);
             MonthRevenueVo revenue = findRevenue(sellerWater,newLocalDate);
-            DeviceWaterSupplyVo deviceWaterSupply = new DeviceWaterSupplyVo();
-            deviceWaterSupply.setOrderNo(i+1);
-            deviceWaterSupply.setYear(newLocalDate.getYear());
-            deviceWaterSupply.setMonth(newLocalDate.getMonthValue());
-            deviceWaterSupply.setDate(newLocalDate);
-            deviceWaterSupply.setDateLabel(newLocalDate.getYear()+"-"+newLocalDate.getMonthValue());
-            if(revenue == null){
+            DeviceWaterSupplyVo deviceWaterSupply = convertDeviceWaterSupplyVo(newLocalDate, i);
+            if (revenue == null) {
                 deviceWaterSupply.setAmount(BigDecimal.ZERO);
-            }
-            else{
+            } else {
                 deviceWaterSupply.setAmount(new BigDecimal(revenue.getMeterReadingUsage()==null?0:revenue.getMeterReadingUsage()));
             }
             deviceWaterSupplies.add(i, deviceWaterSupply);
@@ -75,41 +65,26 @@ public class AppPageReportServiceImpl implements AppPageReportService {
         return deviceWaterSupplies;
     }
 
-    /**
-     * App 总览 前N个月的取水量、制水量
-     * @param companyOrgId
-     * @param sceneType
-     * @param parmType
-     * @return
-     */
     @Override
     public List<DeviceWaterSupplyVo> deviceWaterReportForMonth(Integer companyOrgId,String sceneType, Integer parmType,Integer month){
-        LoginUser loginUser = UserUtil.getCurrentUser();
-        String tenantId = loginUser.getTenantId();
         LocalDate localDate = LocalDate.now();
-        List<DeviceWaterSupplyVo> deviceWaterSupplies = homePageReportMapper.getDeviceWaterForMonth(companyOrgId,sceneType,parmType ,tenantId,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList(),month);
+        HomePageReportDto dto = new HomePageReportDto();
+        dto.setCompanyOrgId(companyOrgId);
+        dto.setSceneType(sceneType);
+        dto.setParmType(parmType);
+        dto.setMonth(month);
+        List<DeviceWaterSupplyVo> deviceWaterSupplies = homePageReportMapper.getDeviceWaterForMonth(dto, UserUtil.getCurrentUser().getUserCondition());
         BigDecimal amountCountMonth = monitorDataReportService.getAmountCount(companyOrgId,null, sceneType, parmType,2 );
-        DeviceWaterSupplyVo deviceWaterSupplyMonth = new DeviceWaterSupplyVo();
-        deviceWaterSupplyMonth.setOrderNo(1);
-        deviceWaterSupplyMonth.setAmount(amountCountMonth!=null?amountCountMonth.divide(new BigDecimal("10000")):BigDecimal.ZERO);
-        deviceWaterSupplyMonth.setYear(localDate.getYear());
-        deviceWaterSupplyMonth.setMonth(localDate.getMonthValue());
-        deviceWaterSupplyMonth.setDate(localDate);
-        deviceWaterSupplyMonth.setDateLabel(localDate.getYear()+"-"+localDate.getMonthValue());
+        DeviceWaterSupplyVo deviceWaterSupplyMonth = convertDeviceWaterSupplyVo(localDate, 0);
+        deviceWaterSupplyMonth.setAmount(amountCountMonth != null ? amountCountMonth.divide(new BigDecimal("10000")):BigDecimal.ZERO);
         deviceWaterSupplies.add(0, deviceWaterSupplyMonth);
-
         for (int i = 1; i < month; i++) {
             LocalDate newLocalDate = localDate.plusMonths(-i );
             if (i == deviceWaterSupplies.size()
                     || newLocalDate.getMonthValue() != deviceWaterSupplies.get(i).getMonth().intValue()
                     || newLocalDate.getYear() != deviceWaterSupplies.get(i).getYear().intValue()) {
-                DeviceWaterSupplyVo deviceWaterSupply = new DeviceWaterSupplyVo();
-                deviceWaterSupply.setOrderNo(i + 1);
+                DeviceWaterSupplyVo deviceWaterSupply = convertDeviceWaterSupplyVo(newLocalDate, i);
                 deviceWaterSupply.setAmount(BigDecimal.ZERO);
-                deviceWaterSupply.setYear(newLocalDate.getYear());
-                deviceWaterSupply.setMonth(newLocalDate.getMonthValue());
-                deviceWaterSupply.setDate(newLocalDate);
-                deviceWaterSupply.setDateLabel(newLocalDate.getYear()+"-"+newLocalDate.getMonthValue());
                 deviceWaterSupplies.add(i, deviceWaterSupply);
             } else {
                 deviceWaterSupplies.get(i).setOrderNo(i + 1);
@@ -118,16 +93,19 @@ public class AppPageReportServiceImpl implements AppPageReportService {
             }
         }
         deviceWaterSupplies.sort(Comparator.comparing(DeviceWaterSupplyVo::getOrderNo).reversed());
-
         return deviceWaterSupplies;
     }
 
     @Override
     public List<DeviceWaterSupplyVo> deviceWaterReportForDay(Integer companyOrgId, String sceneType, Integer parmType, Integer day) {
         LoginUser loginUser = UserUtil.getCurrentUser();
-        String tenantId = loginUser.getTenantId();
         LocalDate localDate = LocalDate.now();
-        List<DeviceWaterSupplyVo> deviceWaterSupplies = homePageReportMapper.getDeviceWaterForDay(companyOrgId,sceneType,parmType ,tenantId,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList(),day);
+        HomePageReportDto dto = new HomePageReportDto();
+        dto.setCompanyOrgId(companyOrgId);
+        dto.setSceneType(sceneType);
+        dto.setParmType(parmType);
+        dto.setDay(day);
+        List<DeviceWaterSupplyVo> deviceWaterSupplies = homePageReportMapper.getDeviceWaterForDay(dto, loginUser.getUserCondition());
         BigDecimal amountCountMonth = monitorDataReportService.getAmountCount(companyOrgId,null, sceneType, parmType,1);
         DeviceWaterSupplyVo deviceWaterSupplyDay = new DeviceWaterSupplyVo();
         deviceWaterSupplyDay.setOrderNo(1);
@@ -144,14 +122,9 @@ public class AppPageReportServiceImpl implements AppPageReportService {
                     || newLocalDate.getDayOfMonth() != deviceWaterSupplies.get(i).getDay().intValue()
                     || newLocalDate.getMonthValue() != deviceWaterSupplies.get(i).getMonth().intValue()
                     || newLocalDate.getYear() != deviceWaterSupplies.get(i).getYear().intValue()) {
-                DeviceWaterSupplyVo deviceWaterSupply = new DeviceWaterSupplyVo();
-                deviceWaterSupply.setOrderNo(i + 1);
+                DeviceWaterSupplyVo deviceWaterSupply = convertDeviceWaterSupplyVo(newLocalDate, i);
                 deviceWaterSupply.setAmount(BigDecimal.ZERO);
-                deviceWaterSupply.setYear(newLocalDate.getYear());
-                deviceWaterSupply.setMonth(newLocalDate.getMonthValue());
                 deviceWaterSupply.setDay(newLocalDate.getDayOfMonth());
-                deviceWaterSupply.setDate(newLocalDate);
-                deviceWaterSupply.setDateLabel(newLocalDate.getYear()+"-"+newLocalDate.getMonthValue());
                 deviceWaterSupplies.add(i, deviceWaterSupply);
             } else {
                 deviceWaterSupplies.get(i).setOrderNo(i + 1);
@@ -160,7 +133,6 @@ public class AppPageReportServiceImpl implements AppPageReportService {
             }
         }
         deviceWaterSupplies.sort(Comparator.comparing(DeviceWaterSupplyVo::getOrderNo).reversed());
-
         return deviceWaterSupplies;
     }
 
@@ -181,9 +153,11 @@ public class AppPageReportServiceImpl implements AppPageReportService {
         for(DeviceWaterSupplyVo water : supplyWaterList){
             supplyWaterAmount = supplyWaterAmount.add(water.getAmount());
         }
+
         for(DeviceWaterSupplyVo water : makingWaterList){
             makingWaterAmount = makingWaterAmount.add(water.getAmount());
         }
+
         for(DeviceWaterSupplyVo water : sellerWaterList){
             sellerWaterAmount = sellerWaterAmount.add(water.getAmount());
         }
@@ -197,30 +171,23 @@ public class AppPageReportServiceImpl implements AppPageReportService {
 
     @Override
     public BigDecimal calculationComparison2(List<DeviceWaterSupplyVo> comparisonList, int type){
-
         BigDecimal sameWaterAmount = new BigDecimal(0);
         BigDecimal lastWaterAmount = new BigDecimal(0);
-        for(int i =0; i<comparisonList.size(); i++){
-            if(type == 1){
-                if(i==0){
+        for(int i =0; i < comparisonList.size(); i++){
+            if ( type == 1) {
+                if ( i == 0 ) {
                     lastWaterAmount = lastWaterAmount.add(comparisonList.get(0).getAmount());
-                }
-                else {
+                } else {
                     sameWaterAmount = sameWaterAmount.add(comparisonList.get(1).getAmount());
                 }
-            }
-            else if(type == 2 || type ==3) {
-
-                if(i>=12){
+            } else if ( type == 2 || type == 3 ) {
+                if ( i >= 12 ) {
                     sameWaterAmount = sameWaterAmount.add(comparisonList.get(i).getAmount());
-                }
-                else{
+                } else {
                     lastWaterAmount = lastWaterAmount.add(comparisonList.get(i).getAmount());
                 }
             }
         }
-
-
         BigDecimal comparison = lastWaterAmount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : sameWaterAmount.subtract(lastWaterAmount).
                 multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(lastWaterAmount,2, BigDecimal.ROUND_HALF_UP);
         return comparison;
@@ -254,19 +221,13 @@ public class AppPageReportServiceImpl implements AppPageReportService {
         for (int i = 0; i < month; i++) {
             LocalDate newLocalDate = localDate.plusMonths(-i);
             MonthRevenueVo revenue = findRevenue(sellerWater,newLocalDate);
-            DeviceWaterSupplyVo deviceWaterSupply = new DeviceWaterSupplyVo();
-            deviceWaterSupply.setOrderNo(i+1);
-            deviceWaterSupply.setYear(newLocalDate.getYear());
-            deviceWaterSupply.setMonth(newLocalDate.getMonthValue());
-            deviceWaterSupply.setDate(newLocalDate);
-            deviceWaterSupply.setDateLabel(newLocalDate.getYear()+"-"+newLocalDate.getMonthValue());
-            if(revenue == null){
+            DeviceWaterSupplyVo deviceWaterSupply = convertDeviceWaterSupplyVo(newLocalDate, i);
+            if (revenue == null) {
                 deviceWaterSupply.setReceivableAmount(BigDecimal.ZERO);
                 deviceWaterSupply.setReceivedAmount(BigDecimal.ZERO);
                 deviceWaterSupply.setGeneralUserAmount(BigDecimal.ZERO);
                 deviceWaterSupply.setBigUserAmount(BigDecimal.ZERO);
-            }
-            else{
+            } else {
                 deviceWaterSupply.setReceivableAmount(new BigDecimal(revenue.getReceivableTotalAmount()));
                 deviceWaterSupply.setReceivedAmount(new BigDecimal(revenue.getReceivedTotalAmount()));
                 deviceWaterSupply.setGeneralUserAmount(new BigDecimal(revenue.getGeneralUserUsage()));
@@ -287,4 +248,14 @@ public class AppPageReportServiceImpl implements AppPageReportService {
         }
         return null;
     }
+
+    private DeviceWaterSupplyVo  convertDeviceWaterSupplyVo(LocalDate newLocalDate, int number){
+        DeviceWaterSupplyVo deviceWaterSupply = new DeviceWaterSupplyVo();
+        deviceWaterSupply.setOrderNo(number + 1);
+        deviceWaterSupply.setYear(newLocalDate.getYear());
+        deviceWaterSupply.setMonth(newLocalDate.getMonthValue());
+        deviceWaterSupply.setDate(newLocalDate);
+        deviceWaterSupply.setDateLabel(newLocalDate.getYear()+"-"+newLocalDate.getMonthValue());
+        return deviceWaterSupply;
+    }
 }

+ 20 - 29
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/impl/AppReportMonitorServiceImpl.java

@@ -1,6 +1,8 @@
 package com.zcxk.charge.web.service.impl;
 
+import com.zcxk.charge.api.dto.query.HomePageReportDto;
 import com.zcxk.charge.api.enums.DeviceParamTypeEnum;
+import com.zcxk.charge.api.enums.SceneTypeEnum;
 import com.zcxk.charge.api.vo.DeviceEntityVo;
 import com.zcxk.charge.api.vo.SceneEntityVo;
 import com.zcxk.charge.api.vo.WaterSupplyDataVo;
@@ -95,12 +97,10 @@ public class AppReportMonitorServiceImpl  implements AppReportMonitorService {
 
     @Override
     public List<WaterSupplyChart> waterEnergyConsumption(Integer sceneId ) {
-
-        LoginUser loginUser = UserUtil.getCurrentUser();
-        String tenantId = loginUser.getTenantId();
-
-        List<WaterSupplyDataVo> waterSupplyDatas = homePageReportMapper.getWaterSupplyData(sceneId, "水源", tenantId, loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-
+        HomePageReportDto dto = new HomePageReportDto();
+        dto.setSceneId(sceneId);
+        dto.setSceneType(SceneTypeEnum.WATER_SOURCE.getMessage());
+        List<WaterSupplyDataVo> dataVos = homePageReportMapper.getWaterSupplyData(dto, UserUtil.getCurrentUser().getUserCondition());
         LocalDate localDate = LocalDate.now();
         //当天数据
         BigDecimal waterDataCountDay = monitorDataReportService.getAmountCount(null, sceneId, "水源", 4, 1);
@@ -112,7 +112,7 @@ public class AppReportMonitorServiceImpl  implements AppReportMonitorService {
         waterSupplyChartToday.setPowerData(powerDataCountDay.divide(new BigDecimal("10000"), 3, BigDecimal.ROUND_HALF_UP));
         final int gongShuiType = 4;
         List<WaterSupplyChart> waterSupplyCharts = new ArrayList<>();
-        waterSupplyDatas.stream()
+        dataVos.stream()
                 .collect(Collectors.groupingBy(item -> item.getYear() + "-" + item.getMonth() + "-" + item.getDay()))
                 .forEach((key, value) -> {
                     WaterSupplyChart waterSupplyChart = new WaterSupplyChart();
@@ -132,26 +132,16 @@ public class AppReportMonitorServiceImpl  implements AppReportMonitorService {
                 });
 
         waterSupplyCharts.sort(Comparator.comparing(WaterSupplyChart::getSort));
-
-        Integer maxDay = LocalDate.now().with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
-        for (int i = 0; i < maxDay; i++) {
-            if (i + 1 == localDate.getDayOfMonth()) {
-                waterSupplyCharts.add(i, waterSupplyChartToday);
-            } else if (i == waterSupplyCharts.size() || !waterSupplyCharts.get(i).getSort().equals(i + 1)) {
-                waterSupplyCharts.add(i, new WaterSupplyChart(i + 1, localDate.getYear() + "-" + localDate.getMonthValue() + "-" + (i + 1)));
-            }
-
-        }
+        convertWaterSupplyCharts(localDate, waterSupplyCharts, waterSupplyChartToday);
         return waterSupplyCharts;
     }
 
     @Override
     public List<WaterSupplyChart> getWaterLevelForWaterSource(Integer sceneId ){
-        LoginUser loginUser = UserUtil.getCurrentUser();
-        String tenantId = loginUser.getTenantId();
-
-        List<WaterSupplyDataVo> waterSupplyDatas = homePageReportMapper.getWaterSupplyData(sceneId,"水源",tenantId,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
-
+        HomePageReportDto dto = new HomePageReportDto();
+        dto.setSceneId(sceneId);
+        dto.setSceneType(SceneTypeEnum.WATER_SOURCE.getMessage());
+        List<WaterSupplyDataVo> dataVos = homePageReportMapper.getWaterSupplyData(dto, UserUtil.getCurrentUser().getUserCondition());
         LocalDate localDate = LocalDate.now();
         //当天数据
         BigDecimal waterDataCountDay = monitorDataReportService.getAmountCount(null,sceneId, "水源", 12,1 );
@@ -160,9 +150,8 @@ public class AppReportMonitorServiceImpl  implements AppReportMonitorService {
         waterSupplyChartToday.setDate(DateTimeFormatter.ofPattern("yyyy-MM-dd").format(localDate));
         waterSupplyChartToday.setWaterData(waterDataCountDay);
         final int shuiWei = 12;
-
         List<WaterSupplyChart> waterSupplyCharts = new ArrayList<>();
-        waterSupplyDatas.stream()
+        dataVos.stream()
                 .collect(Collectors.groupingBy(item -> item.getYear() + "-" + item.getMonth() + "-" + item.getDay()))
                 .forEach((key, value) -> {
                     WaterSupplyChart waterSupplyChart = new WaterSupplyChart();
@@ -178,17 +167,19 @@ public class AppReportMonitorServiceImpl  implements AppReportMonitorService {
                 });
 
         waterSupplyCharts.sort(Comparator.comparing(WaterSupplyChart::getSort));
+        convertWaterSupplyCharts(localDate, waterSupplyCharts, waterSupplyChartToday);
+        return waterSupplyCharts;
+    }
 
+    private void convertWaterSupplyCharts (LocalDate localDate, List<WaterSupplyChart> waterSupplyCharts, WaterSupplyChart waterSupplyChartToday){
         Integer maxDay =  LocalDate.now().with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
-        for(int i=0;i<maxDay;i++){
-            if(i+1 == localDate.getDayOfMonth()){
+        for(int i = 0;i < maxDay; i++) {
+            if (i + 1 == localDate.getDayOfMonth()){
                 waterSupplyCharts.add(i,waterSupplyChartToday);
-            }else if(i == waterSupplyCharts.size() || !waterSupplyCharts.get(i).getSort().equals(i+1)){
+            }else if (i == waterSupplyCharts.size() || !waterSupplyCharts.get(i).getSort().equals(i+1)){
                 waterSupplyCharts.add(i,new WaterSupplyChart(i+1, localDate.getYear()+"-"+localDate.getMonthValue()+"-"+(i+1)));
             }
         }
-        return waterSupplyCharts;
     }
 
-
 }

+ 21 - 36
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/impl/CameraManageServiceImpl.java

@@ -37,37 +37,35 @@ import static com.google.common.collect.Lists.newArrayList;
  */
 @Service("cameraManageService")
 public class CameraManageServiceImpl implements CameraManageService {
+
     @Resource
     private CameraManageMapper cameraManageMapper;
+
     @Autowired
     private RedisUtil redisUtil;
+
     @Autowired
     private RestTemplate restTemplate;
+
     @Autowired
     private OrgInfoUtil util;
+
     @Resource
     private SceneMapper sceneMapper;
 
-    /**
-     * 通过ID查询单条数据
-     *
-     * @param id 主键
-     * @return 实例对象
-     */
     @Override
     public CameraManage selectById(Integer id) {
         CameraManage cameraManage = this.cameraManageMapper.selectById(id);
-
         String baseUrl="https://open.ys7.com/ezopen/h5/iframe_se?url=ezopen://open.ys7.com/";
-        if(cameraManage==null){
+        if (cameraManage == null) {
             return null;
         }
         String token= getToken(cameraManage.getAppkey(),cameraManage.getScrert());
         cameraManage.setToken(token);
-        if(cameraManage.getChannelNo()==null){
+        if (cameraManage.getChannelNo() == null) {
             cameraManage.setChannelNo(1);
         }
-        if(token!=null){
+        if (token != null) {
             String play=".live";
             String replay=".rec";
             baseUrl=baseUrl+cameraManage.getDeviceSerial()+
@@ -80,7 +78,6 @@ public class CameraManageServiceImpl implements CameraManageService {
         Map<String, String> allOrgName = util.getAllOrgName();
         cameraManage.setDepartName(allOrgName.get(String.valueOf(cameraManage.getDeptOrgId())));
         cameraManage.setCompanyName(allOrgName.get(String.valueOf(cameraManage.getCompanyOrgId())));
-
         return cameraManage;
     }
 
@@ -118,25 +115,19 @@ public class CameraManageServiceImpl implements CameraManageService {
      */
     @Override
     public int insert(CameraManage cameraManage) {
-
         LoginUser currentUser = UserUtil.getCurrentUser();
         cameraManage.setTenantId(currentUser.getTenantId());
-        if(!isOrgCorrect(cameraManage.getCompanyOrgId(),cameraManage.getDeptOrgId(),
+        if (!isOrgCorrect(cameraManage.getCompanyOrgId(),cameraManage.getDeptOrgId(),
                 currentUser.getProgramItemList())){
             return 2;
         }
         cameraManage.setDateCreate(new Date());
         cameraManage.setCreateBy(currentUser.getUsername());
         updateCameraName(cameraManage);
-
-            this.cameraManageMapper.insert(cameraManage);
-
-
-
-
-
+        this.cameraManageMapper.insert(cameraManage);
         return 1;
     }
+
     private boolean isOrgCorrect(Integer companyId, Integer departmentId, List<ProgramItem>items){
         boolean result=false;
         Set<Integer>companyIds=new HashSet<>();
@@ -145,20 +136,19 @@ public class CameraManageServiceImpl implements CameraManageService {
             companyIds.add(item.getOrgCompanyId());
             departmentIds.add(item.getOrgDeparmtmentId());
         });
-        if(departmentId!=null){
+        if (departmentId!=null) {
             if(companyIds.contains(companyId)&&departmentIds.contains(departmentId)){
-                result=true;
+                result = true;
             }
-        }else{
+        } else {
             if(companyIds.contains(companyId)){
-                result=true;
+                result = true;
             }
         }
-
-
         return result;
     }
-    private int updateCameraName(CameraManage cameraManage){
+
+    private int updateCameraName(CameraManage cameraManage) {
         int result=1;
         int success = 200;
         String token = getToken(cameraManage.getAppkey(), cameraManage.getScrert());
@@ -186,10 +176,11 @@ public class CameraManageServiceImpl implements CameraManageService {
         return result;
 
     }
+
     private String getToken (String appKey,String secret){
         int success = 200;
         String token = redisUtil.get(appKey);
-        if(token==null){
+        if (token == null) {
             HttpHeaders headers = new HttpHeaders();
             //  请勿轻易改变此提交方式,大部分的情况下,提交方式都是表单提交
             headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
@@ -238,19 +229,15 @@ public class CameraManageServiceImpl implements CameraManageService {
      */
     @Override
     public int update(CameraManage cameraManage) {
-
         LoginUser currentUser = UserUtil.getCurrentUser();
-        if(!isOrgCorrect(cameraManage.getCompanyOrgId(),cameraManage.getDeptOrgId(),
+        if (!isOrgCorrect(cameraManage.getCompanyOrgId(),cameraManage.getDeptOrgId(),
                 currentUser.getProgramItemList())){
             return 2;
         }
         cameraManage.setDateUpdate(new Date());
         cameraManage.setUpdateBy(currentUser.getUsername());
-
         updateCameraName(cameraManage);
-
-            this.cameraManageMapper.update(cameraManage);
-
+        this.cameraManageMapper.update(cameraManage);
         return 1;
     }
 
@@ -319,7 +306,6 @@ public class CameraManageServiceImpl implements CameraManageService {
 
     @Override
     public List<CameraDto> getCameraTree(Long typeId) {
-
         LoginUser currentUser = UserUtil.getCurrentUser();
         SceneEntity searchSceneEntity = new SceneEntity();
         searchSceneEntity.setTenantId(currentUser.getTenantId());
@@ -361,7 +347,6 @@ public class CameraManageServiceImpl implements CameraManageService {
 
     @Override
     public List<CameraManage> getAllCameras(Integer id) {
-         ;
         return cameraManageMapper.getAllCameras(id);
     }
 

+ 4 - 3
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/impl/DeviceParmServiceImpl.java

@@ -30,8 +30,10 @@ public class DeviceParmServiceImpl  implements DeviceParmService {
 
     @Resource
     private DeviceParmMapper deviceParmMapper;
+
     @Autowired
     private SceneService sceneService;
+
     @Autowired
     private DeviceSceneService deviceSceneService;
 
@@ -58,7 +60,7 @@ public class DeviceParmServiceImpl  implements DeviceParmService {
     @Override
     public List<DeviceParmEntity> selectByDeviceIdForGis(Integer sceneId, Integer id) {
         List<DeviceParmEntity> deviceParmEntities = deviceParmMapper.selectByDeviceIdForGis(sceneId, id);
-        for (DeviceParmEntity item : deviceParmEntities) {
+        for (DeviceParmEntity item : deviceParmMapper.selectByDeviceIdForGis(sceneId, id)) {
             item.setDeviceId(id);
         }
         return deviceParmEntities;
@@ -145,7 +147,6 @@ public class DeviceParmServiceImpl  implements DeviceParmService {
 
     @Override
     public List<DeviceParmInfoVo> selectBySceneAndDeviceId(Integer parentSceneId, Integer sceneId, Integer deviceId) {
-        List<DeviceParmInfoVo> deviceParmInfos = new ArrayList<>();
         DeviceParmInfoDto deviceParmInfo = new DeviceParmInfoDto();
         deviceParmInfo.setParentSceneId(parentSceneId.longValue());
         deviceParmInfo.setSceneId(sceneId.longValue());
@@ -155,7 +156,7 @@ public class DeviceParmServiceImpl  implements DeviceParmService {
             ids.remove(sceneId.longValue());
         }
         deviceParmInfo.setSceneIds(ids);
-        deviceParmInfos = deviceParmMapper.findBySceneDeviceId(deviceParmInfo);
+        List<DeviceParmInfoVo> deviceParmInfos = deviceParmMapper.findBySceneDeviceId(deviceParmInfo);
         for (DeviceParmInfoVo item : deviceParmInfos) {
             item.setSceneId(sceneId.longValue());
             item.setParentSceneId(parentSceneId.longValue());

+ 162 - 145
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/impl/HomePageReportServiceImpl.java

@@ -1,6 +1,8 @@
 package com.zcxk.charge.web.service.impl;
 
 import com.zcxk.charge.api.dto.query.DeviceWaterDto;
+import com.zcxk.charge.api.dto.query.HomePageReportDto;
+import com.zcxk.charge.api.enums.ParamTypeEnum;
 import com.zcxk.charge.api.enums.SceneTypeEnum;
 import com.zcxk.charge.api.vo.*;
 import com.zcxk.charge.web.client.UserCenterClient;
@@ -13,10 +15,13 @@ import com.zcxk.charge.core.entity.MonitorDataEntity;
 import com.zcxk.charge.core.entity.MonitorDataValueEntity;
 import com.zcxk.charge.web.service.HomePageReportService;
 import com.zcxk.charge.web.service.MonitorDataReportService;
+import com.zcxk.core.common.pojo.UserCondition;
 import com.zcxk.core.oauth2.pojo.LoginUser;
 import com.zcxk.core.oauth2.util.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import sun.reflect.misc.ConstructorUtil;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -53,16 +58,17 @@ public class HomePageReportServiceImpl implements HomePageReportService {
 
     @Override
     public List<DeviceWaterSupplyVo> deviceWaterReportForSixMonth(Integer companyOrgId, String sceneType, Integer parmType) {
-        LoginUser loginUser = UserUtil.getCurrentUser();
-        String tenantId = loginUser.getTenantId();
         LocalDate localDate = LocalDate.now();
-        List<DeviceWaterSupplyVo> deviceWaterSupplies = homePageReportMapper.getDeviceWaterForSixMonth(companyOrgId, sceneType, parmType, tenantId, loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
+        HomePageReportDto dto = new HomePageReportDto();
+        dto.setCompanyOrgId(companyOrgId);
+        dto.setSceneType(sceneType);
+        dto.setParmType(parmType);
+        List<DeviceWaterSupplyVo> deviceWaterSupplies = homePageReportMapper.getDeviceWaterForSixMonth(dto, UserUtil.getCurrentUser().getUserCondition());
         BigDecimal amountCount = monitorDataReportService.getAmountCount(companyOrgId, null, sceneType, parmType, 2);
 
         DeviceWaterSupplyVo deviceWaterSupplyMonth = convertDeviceWaterSupplyVo(1, amountCount != null ? amountCount.divide(new BigDecimal("10000")) : BigDecimal.ZERO, localDate);
         deviceWaterSupplyMonth.setDateLabel(localDate.getYear() + "-" + localDate.getMonthValue());
         deviceWaterSupplies.add(0, deviceWaterSupplyMonth);
-
         int length = 6;
         for (int i = 0; i < length; i++) {
             LocalDate newLocalDate = localDate.plusMonths(-i);
@@ -87,7 +93,9 @@ public class HomePageReportServiceImpl implements HomePageReportService {
     @Override
     public CompanyCountVo countSceneByType(Integer companyOrgId) {
         LoginUser loginUser = UserUtil.getCurrentUser();
-        CompanyCountVo companyCount = homePageReportMapper.countSceneByType(companyOrgId, loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
+        HomePageReportDto dto = new HomePageReportDto();
+        dto.setCompanyOrgId(companyOrgId);
+        CompanyCountVo companyCount = homePageReportMapper.countSceneByType(dto, loginUser.getUserCondition());
         Integer company = userCenterClient.countCompanyByUser();
         companyCount.setCompany(company != null ? company : 0);
         return companyCount;
@@ -99,7 +107,9 @@ public class HomePageReportServiceImpl implements HomePageReportService {
         LoginUser loginUser = UserUtil.getCurrentUser();
         Map<Integer, MonitorDataEntity> monitorDataMap = monitorDataReportService.getIntegerMonitorDataEntityMap(loginUser);
         LocalDate localDate = LocalDate.now();
-        CompanyProduceVo companyProduce = homePageReportMapper.getWaterSalesDetails(companyOrgId, loginUser.getTenantId(), loginUser.getType(), loginUser.getProgramItemList());
+        HomePageReportDto homeDto = new HomePageReportDto();
+        homeDto.setCompanyOrgId(companyOrgId);
+        CompanyProduceVo companyProduce = homePageReportMapper.getWaterSalesDetails(homeDto, loginUser.getUserCondition());
         if (companyProduce == null) {
             companyProduce = new CompanyProduceVo();
         }
@@ -129,18 +139,25 @@ public class HomePageReportServiceImpl implements HomePageReportService {
     public WaterQualityRate getWaterQualification(Integer companyOrgId) {
         LoginUser loginUser = UserUtil.getCurrentUser();
         WaterQualityRate waterQualityRate = new WaterQualityRate();
-        //取水
+        // 取水
         List<Integer> list1 = Stream.of(15, 7, 9, 11, 18, 19).collect(Collectors.toList());
-        //供水
+        // 供水
         List<Integer> list2 = Stream.of(15, 8, 10, 11, 18, 19).collect(Collectors.toList());
-        //管网水质
-        WaterQualityRateVo pipeNetworkQuality = homePageReportMapper.getPipeNetworkQualification(companyOrgId, loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-        //水源水质
-        WaterQualityRateVo waterSourceQuality = homePageReportMapper.getWaterQualification(companyOrgId, "水源", list1, loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-        //水厂水质
-        WaterQualityRateVo waterFactoryQuality = homePageReportMapper.getWaterQualification(companyOrgId, "水厂", list2, loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-        //二供水质
-        WaterQualityRateVo pumpingStationQuality = homePageReportMapper.getWaterQualification(companyOrgId, "泵站", list2, loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
+        HomePageReportDto homeDto = new HomePageReportDto();
+        homeDto.setCompanyOrgId(companyOrgId);
+        homeDto.setSceneType(SceneTypeEnum.WATER_SOURCE.getMessage());
+        homeDto.setParmTypes(list1);
+        // 管网水质
+        WaterQualityRateVo pipeNetworkQuality = homePageReportMapper.getPipeNetworkQualification(homeDto, loginUser.getUserCondition());
+        // 水源水质
+        WaterQualityRateVo waterSourceQuality = homePageReportMapper.getWaterQualification(homeDto, loginUser.getUserCondition());
+        // 水厂水质
+        homeDto.setSceneType(SceneTypeEnum.WATER_WORKS.getMessage());
+        homeDto.setParmTypes(list2);
+        WaterQualityRateVo waterFactoryQuality = homePageReportMapper.getWaterQualification(homeDto, loginUser.getUserCondition());
+        // 二供水质
+        homeDto.setSceneType(SceneTypeEnum.PUMPING_STATION.getMessage());
+        WaterQualityRateVo pumpingStationQuality = homePageReportMapper.getWaterQualification(homeDto, loginUser.getUserCondition());
 
         if (pipeNetworkQuality != null) {
             waterQualityRate.setAbnormal(waterQualityRate.getAbnormal() + pipeNetworkQuality.getAbnormal());
@@ -150,6 +167,7 @@ public class HomePageReportServiceImpl implements HomePageReportService {
         } else {
             waterQualityRate.setAverageQuality(new BigDecimal("100"));
         }
+
         if (waterSourceQuality != null) {
             waterQualityRate.setAbnormal(waterQualityRate.getAbnormal() + waterSourceQuality.getAbnormal());
             waterQualityRate.setWaterSourceQuality(waterSourceQuality.getAverageQuality());
@@ -179,24 +197,14 @@ public class HomePageReportServiceImpl implements HomePageReportService {
         return waterQualityRate;
     }
 
-
-    /**
-     * 水厂泵站 3 水源 4 水位 12
-     * @return
-     */
     @Override
     public List<DeviceWaterSupplyVo> monitorDataFifteenDays(Integer sceneId, String sceneType, Integer parmType) {
-        BigDecimal multipleData;
-        if (SceneTypeEnum.PUMPING_STATION.getMessage().equals(sceneType)) {
-            multipleData = new BigDecimal("1");
-        } else {
-            multipleData = new BigDecimal("10000");
-        }
-        LoginUser loginUser = UserUtil.getCurrentUser();
-
-        List<DeviceWaterSupplyVo> deviceWaterSupplies = homePageReportMapper.getMonitorDataFifteenDays(sceneId, sceneType, parmType,
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-
+        BigDecimal multipleData   = getMultipleData(sceneType);
+        HomePageReportDto homeDto = new HomePageReportDto();
+        homeDto.setSceneId(sceneId);
+        homeDto.setSceneType(sceneType);
+        homeDto.setParmType(parmType);
+        List<DeviceWaterSupplyVo> deviceWaterSupplies = homePageReportMapper.getMonitorDataFifteenDays(homeDto, UserUtil.getCurrentUser().getUserCondition());
         LocalDate localDate = LocalDate.now();
         //当天数据
         BigDecimal amountCount = monitorDataReportService.getAmountCount(null, sceneId, sceneType, parmType, 1);
@@ -211,8 +219,7 @@ public class HomePageReportServiceImpl implements HomePageReportService {
         int length = 15;
         for (int i = 0; i < length; i++) {
             LocalDate newLocalDate = localDate.plusDays(-i);
-            if (i == deviceWaterSupplies.size()
-                    || !newLocalDate.isEqual(LocalDate.of(deviceWaterSupplies.get(i).getYear(),
+            if (i == deviceWaterSupplies.size() || !newLocalDate.isEqual(LocalDate.of(deviceWaterSupplies.get(i).getYear(),
                     deviceWaterSupplies.get(i).getMonth(),
                     deviceWaterSupplies.get(i).getDay()))) {
                 DeviceWaterSupplyVo deviceWaterSupply = convertDeviceWaterSupplyVo(i, BigDecimal.ZERO, newLocalDate);
@@ -220,7 +227,7 @@ public class HomePageReportServiceImpl implements HomePageReportService {
                 deviceWaterSupplies.add(i, deviceWaterSupply);
             } else {
                 deviceWaterSupplies.get(i).setOrderNo(i + 1);
-                //不是水位就除以1000 转化为万
+                // 不是水位就除以1000 转化为万
                 if (parmType != 12) {
                     deviceWaterSupplies.get(i).amountConvert(multipleData);
                 }
@@ -228,7 +235,6 @@ public class HomePageReportServiceImpl implements HomePageReportService {
             }
         }
         deviceWaterSupplies.sort(Comparator.comparing(DeviceWaterSupplyVo::getOrderNo).reversed());
-
         return deviceWaterSupplies;
     }
 
@@ -245,85 +251,84 @@ public class HomePageReportServiceImpl implements HomePageReportService {
 
     @Override
     public WaterQualityRateForScene waterQualityRateForWaterSource(Integer sceneId) {
-
-        LoginUser loginUser = UserUtil.getCurrentUser();
+        UserCondition userCondition = UserUtil.getCurrentUser().getUserCondition();
         LocalDate localDate = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth());
-        //余氯
-        BigDecimal chlorine = homePageReportMapper.getWaterQualificationByMonth(localDate, 11, sceneId, "水源",
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-        //浊度
-        BigDecimal turbidity = homePageReportMapper.getWaterQualificationByMonth(localDate, 9, sceneId, "水源",
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-        //COD
-        BigDecimal cod = homePageReportMapper.getWaterQualificationByMonth(localDate, 15, sceneId, "水源",
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-        //PH
-        BigDecimal ph = homePageReportMapper.getWaterQualificationByMonth(localDate, 7, sceneId, "水源",
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-        //压力
-        BigDecimal pressure = homePageReportMapper.getWaterQualificationByMonth(localDate, 13, sceneId, "水源",
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-
-        WaterQualityRateForScene waterQualityRateForScene = new WaterQualityRateForScene();
-        waterQualityRateForScene.setChlorine(chlorine != null ? chlorine : new BigDecimal("100"));
-        waterQualityRateForScene.setCod(cod != null ? cod : new BigDecimal("100"));
-        waterQualityRateForScene.setTurbidity(turbidity != null ? turbidity : new BigDecimal("100"));
-        waterQualityRateForScene.setPh(ph != null ? ph : new BigDecimal("100"));
-        waterQualityRateForScene.setPressure(pressure != null ? pressure : new BigDecimal("100"));
-        return waterQualityRateForScene;
+        // 余氯
+        HomePageReportDto homeDto = new HomePageReportDto();
+        homeDto.setMonthDate(localDate);
+        homeDto.setParmType(ParamTypeEnum.DPD.getCode());
+        homeDto.setSceneId(sceneId);
+        homeDto.setSceneType(SceneTypeEnum.WATER_SOURCE.getMessage());
+        BigDecimal chlorine = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
+        // 浊度
+        homeDto.setParmType(ParamTypeEnum.TURBIDITY_9.getCode());
+        BigDecimal turbidity = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
+        // COD
+        homeDto.setParmType(ParamTypeEnum.COD.getCode());
+        BigDecimal cod = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
+        // PH
+        homeDto.setParmType(ParamTypeEnum.PH_7.getCode());
+        BigDecimal ph = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
+        // 压力
+        homeDto.setParmType(ParamTypeEnum.PRESSURE.getCode());
+        BigDecimal pressure = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
+        return convertWaterQualityRateForScene(chlorine, cod, ph, turbidity, pressure);
     }
 
     @Override
     public WaterQualityRateForScene waterQualityRateForPumpingStation(Integer sceneId) {
 
-        LoginUser loginUser = UserUtil.getCurrentUser();
+        UserCondition userCondition = UserUtil.getCurrentUser().getUserCondition();
         LocalDate localDate = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth());
-        //余氯
-        BigDecimal chlorine = homePageReportMapper.getWaterQualificationByMonth(localDate, 11, sceneId, "泵站",
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-        //浊度
-        BigDecimal turbidity = homePageReportMapper.getWaterQualificationByMonth(localDate, 10, sceneId, "泵站",
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-        //COD
-        BigDecimal cod = homePageReportMapper.getWaterQualificationByMonth(localDate, 15, sceneId, "泵站",
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-        //PH
-        BigDecimal ph = homePageReportMapper.getWaterQualificationByMonth(localDate, 8, sceneId, "泵站",
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-        //压力
-        BigDecimal pressure = homePageReportMapper.getWaterQualificationByMonth(localDate, 13, sceneId, "泵站",
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-
-        WaterQualityRateForScene waterQualityRateForScene = new WaterQualityRateForScene();
-        waterQualityRateForScene.setChlorine(chlorine != null ? chlorine : new BigDecimal("100"));
-        waterQualityRateForScene.setCod(cod != null ? cod : new BigDecimal("100"));
-        waterQualityRateForScene.setTurbidity(turbidity != null ? turbidity : new BigDecimal("100"));
-        waterQualityRateForScene.setPh(ph != null ? ph : new BigDecimal("100"));
-        waterQualityRateForScene.setPressure(pressure != null ? pressure : new BigDecimal("100"));
-        return waterQualityRateForScene;
+        // 泵站
+        HomePageReportDto homeDto = new HomePageReportDto();
+        homeDto.setMonthDate(localDate);
+        homeDto.setSceneType(SceneTypeEnum.PUMPING_STATION.getMessage());
+        homeDto.setSceneId(sceneId);
+        // 余氯
+        homeDto.setParmType(ParamTypeEnum.DPD.getCode());
+        BigDecimal chlorine = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
+        // 浊度
+        homeDto.setParmType(ParamTypeEnum.TURBIDITY_10.getCode());
+        BigDecimal turbidity = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
+        // COD
+        homeDto.setParmType(ParamTypeEnum.COD.getCode());
+        BigDecimal cod = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
+        // PH
+        homeDto.setParmType(ParamTypeEnum.PH_8.getCode());
+        BigDecimal ph = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
+        // 压力
+        homeDto.setParmType(ParamTypeEnum.PRESSURE.getCode());
+        BigDecimal pressure = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
+        return convertWaterQualityRateForScene(chlorine, cod, ph, turbidity, pressure);
     }
 
+
     @Override
     public WaterQualityRateForScene waterQualityRateForWaterFactory(Integer sceneId) {
 
-        LoginUser loginUser = UserUtil.getCurrentUser();
+        UserCondition userCondition = UserUtil.getCurrentUser().getUserCondition();
         LocalDate localDate = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth());
-        //余氯
-        BigDecimal chlorine = homePageReportMapper.getWaterQualificationByMonth(localDate, 11, sceneId, "水厂",
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-        //浊度
-        BigDecimal turbidity = homePageReportMapper.getWaterQualificationByMonth(localDate, 10, sceneId, "水厂",
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-        //PH
-        BigDecimal ph = homePageReportMapper.getWaterQualificationByMonth(localDate, 8, sceneId, "水厂",
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-        //COD
-        BigDecimal cod = homePageReportMapper.getWaterQualificationByMonth(localDate, 15, sceneId, "水厂",
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-        //压力
-        BigDecimal pressure = homePageReportMapper.getWaterQualificationByMonth(localDate, 13, sceneId, "水厂",
-                loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
-
+        // 水厂
+        HomePageReportDto homeDto = new HomePageReportDto();
+        homeDto.setMonthDate(localDate);
+        homeDto.setSceneId(sceneId);
+        homeDto.setSceneType(SceneTypeEnum.WATER_WORKS.getMessage());
+        // 余氯
+        homeDto.setParmType(ParamTypeEnum.DPD.getCode());
+        BigDecimal chlorine = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
+        // 浊度
+        homeDto.setParmType(ParamTypeEnum.TURBIDITY_10.getCode());
+        BigDecimal turbidity = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
+        // PH
+        homeDto.setParmType(ParamTypeEnum.PH_8.getCode());
+        BigDecimal ph = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
+        // COD
+        homeDto.setParmType(ParamTypeEnum.COD.getCode());
+        BigDecimal cod = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
+        // 压力
+        homeDto.setParmType(ParamTypeEnum.PRESSURE.getCode());
+        BigDecimal pressure = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
         WaterQualityRateForScene waterQualityRateForScene = new WaterQualityRateForScene();
         waterQualityRateForScene.setChlorine(chlorine != null ? chlorine : new BigDecimal("100"));
         waterQualityRateForScene.setTurbidity(turbidity != null ? turbidity : new BigDecimal("100"));
@@ -335,54 +340,40 @@ public class HomePageReportServiceImpl implements HomePageReportService {
 
     @Override
     public List<WaterSupplyChart> waterEnergyConsumption(Integer sceneId, String sceneType) {
-        BigDecimal multipleData;
-        if (SceneTypeEnum.PUMPING_STATION.getMessage().equals(sceneType)) {
-            multipleData = new BigDecimal("1");
-        } else {
-            multipleData = new BigDecimal("10000");
-        }
-
-        LoginUser loginUser = UserUtil.getCurrentUser();
-        String tenantId = loginUser.getTenantId();
-        List<WaterSupplyDataVo> waterSupplyDatas = homePageReportMapper.getWaterSupplyData(sceneId, sceneType, tenantId, loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
+        BigDecimal multipleData = getMultipleData(sceneType);
+        HomePageReportDto homeDto = new HomePageReportDto();
+        homeDto.setSceneId(sceneId);
+        homeDto.setSceneType(sceneType);
+        List<WaterSupplyDataVo> supplyDataVos = homePageReportMapper.getWaterSupplyData(homeDto, UserUtil.getCurrentUser().getUserCondition());
         LocalDate localDate = LocalDate.now();
         //当天数据
         BigDecimal waterDataCountDay = monitorDataReportService.getAmountCount(null, sceneId, sceneType, 3, 1);
         BigDecimal powerDataCountDay = monitorDataReportService.getAmountCount(null, sceneId, sceneType, 5, 1);
-        BigDecimal drugDataCountDay = monitorDataReportService.getAmountCount(null, sceneId, sceneType, 6, 1);
+        BigDecimal drugDataCountDay  = monitorDataReportService.getAmountCount(null, sceneId, sceneType, 6, 1);
         WaterSupplyChart waterSupplyChartToday = new WaterSupplyChart();
         waterSupplyChartToday.setSort(localDate.getDayOfMonth());
         waterSupplyChartToday.setDate(DateTimeFormatter.ofPattern("yyyy-MM-dd").format(localDate));
         waterSupplyChartToday.setWaterData(waterDataCountDay.divide(multipleData, 3, BigDecimal.ROUND_HALF_UP));
         waterSupplyChartToday.setPowerData(powerDataCountDay.divide(multipleData, 3, BigDecimal.ROUND_HALF_UP));
         waterSupplyChartToday.setDrugData(drugDataCountDay);
-        //供水
-        final int gongshui = 3;
-        //电耗
-        final int dianHao  = 5;
-        //药耗
-        final int yaoHao   = 6;
         List<WaterSupplyChart> waterSupplyCharts = new ArrayList<>();
-        waterSupplyDatas.stream()
-                .collect(Collectors.groupingBy(item -> item.getYear() + "-" + item.getMonth() + "-" + item.getDay()))
-                .forEach((key, value) -> {
-                    WaterSupplyChart waterSupplyChart = new WaterSupplyChart();
-                    waterSupplyChart.setDate(key);
-                    value.stream().forEach(waterSupplyData -> {
-                        waterSupplyChart.setSort(waterSupplyData.getDay());
-                        if (waterSupplyData.getParmType() == gongshui &&waterSupplyData.getAmount()!=null) {
-                            waterSupplyChart.setWaterData(waterSupplyData.getAmount().divide(multipleData, 3, BigDecimal.ROUND_HALF_UP));
-                        } else if (waterSupplyData.getParmType() == dianHao &&waterSupplyData.getAmount()!=null) {
-                            waterSupplyChart.setPowerData(waterSupplyData.getAmount().divide(multipleData, 3, BigDecimal.ROUND_HALF_UP));
-                        } else if (waterSupplyData.getParmType() == yaoHao &&waterSupplyData.getAmount()!=null) {
-                            waterSupplyChart.setDrugData(waterSupplyData.getAmount());
-                        }
-                    });
-                    waterSupplyCharts.add(waterSupplyChart);
+        supplyDataVos.stream().collect(Collectors.groupingBy(item -> item.getYear() + "-" + item.getMonth() + "-" + item.getDay()))
+            .forEach((key, value) -> {
+                WaterSupplyChart waterSupplyChart = new WaterSupplyChart();
+                waterSupplyChart.setDate(key);
+                value.stream().forEach(waterSupplyData -> {
+                    waterSupplyChart.setSort(waterSupplyData.getDay());
+                    if (waterSupplyData.getParmType() == ParamTypeEnum.WATER_SUPPLY.getCode() &&waterSupplyData.getAmount()!=null) {
+                        waterSupplyChart.setWaterData(waterSupplyData.getAmount().divide(multipleData, 3, BigDecimal.ROUND_HALF_UP));
+                    } else if (waterSupplyData.getParmType() == ParamTypeEnum.KWH.getCode() &&waterSupplyData.getAmount()!=null) {
+                        waterSupplyChart.setPowerData(waterSupplyData.getAmount().divide(multipleData, 3, BigDecimal.ROUND_HALF_UP));
+                    } else if (waterSupplyData.getParmType() == ParamTypeEnum.DRUG_CONSUMPTION.getCode() &&waterSupplyData.getAmount()!=null) {
+                        waterSupplyChart.setDrugData(waterSupplyData.getAmount());
+                    }
                 });
-
+                waterSupplyCharts.add(waterSupplyChart);
+            });
         waterSupplyCharts.sort(Comparator.comparing(WaterSupplyChart::getSort));
-
         Integer maxDay = LocalDate.now().with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
         for (int i = 0; i < maxDay; i++) {
             if (i + 1 == localDate.getDayOfMonth()) {
@@ -390,7 +381,6 @@ public class HomePageReportServiceImpl implements HomePageReportService {
             } else if (i == waterSupplyCharts.size() || !waterSupplyCharts.get(i).getSort().equals(i + 1)) {
                 waterSupplyCharts.add(i, new WaterSupplyChart(i + 1, localDate.getYear() + "-" + localDate.getMonthValue() + "-" + (i + 1)));
             }
-
         }
         return waterSupplyCharts;
     }
@@ -400,14 +390,20 @@ public class HomePageReportServiceImpl implements HomePageReportService {
     private BigDecimal getAmountForDay(List<DeviceWaterDetailVo> deviceIntakeWaterDetailsForDay, Map<Integer, MonitorDataEntity> monitorDataMap){
         BigDecimal waterIntakeAmountForDay = BigDecimal.ZERO;
         for (DeviceWaterDetailVo deviceWaterDetail : deviceIntakeWaterDetailsForDay) {
+            if (deviceWaterDetail.getLatestValue() == null) {
+                continue;
+            }
             MonitorDataEntity monitorDataEntity = monitorDataMap.get(deviceWaterDetail.getDeviceId());
-            if (monitorDataEntity != null && monitorDataEntity.getDataValues() != null && monitorDataEntity.getDataValues().size() > 0
-                    && deviceWaterDetail != null && deviceWaterDetail.getLatestValue() != null) {
-                for (MonitorDataValueEntity monitorDataValueEntity : monitorDataEntity.getDataValues()) {
-                    if (monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId())) {
-                        //累计当天流量
-                        waterIntakeAmountForDay = waterIntakeAmountForDay.add(new BigDecimal(monitorDataValueEntity.getDataValue()).subtract(deviceWaterDetail.getLatestValue()));
-                    }
+            if (monitorDataEntity == null) {
+                continue;
+            }
+            if (CollectionUtils.isEmpty(monitorDataEntity.getDataValues())) {
+                continue;
+            }
+            for (MonitorDataValueEntity monitorDataValueEntity : monitorDataEntity.getDataValues()) {
+                if (monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId())) {
+                    // 累计当天流量
+                    waterIntakeAmountForDay = waterIntakeAmountForDay.add(new BigDecimal(monitorDataValueEntity.getDataValue()).subtract(deviceWaterDetail.getLatestValue()));
                 }
             }
         }
@@ -440,4 +436,25 @@ public class HomePageReportServiceImpl implements HomePageReportService {
         return (waterSupplyAmountForMonth.add(waterSupplyAmountForDay)).divide(new BigDecimal("10000"), 3, BigDecimal.ROUND_HALF_UP);
     }
 
+    private WaterQualityRateForScene convertWaterQualityRateForScene(BigDecimal chlorine, BigDecimal cod, BigDecimal ph, BigDecimal turbidity, BigDecimal pressure){
+        WaterQualityRateForScene waterQualityRateForScene = new WaterQualityRateForScene();
+        waterQualityRateForScene.setChlorine(chlorine != null ? chlorine : new BigDecimal("100"));
+        waterQualityRateForScene.setCod(cod != null ? cod : new BigDecimal("100"));
+        waterQualityRateForScene.setTurbidity(turbidity != null ? turbidity : new BigDecimal("100"));
+        waterQualityRateForScene.setPh(ph != null ? ph : new BigDecimal("100"));
+        waterQualityRateForScene.setPressure(pressure != null ? pressure : new BigDecimal("100"));
+        return waterQualityRateForScene;
+    }
+
+    private BigDecimal getMultipleData(String sceneType){
+        BigDecimal multipleData;
+        if (SceneTypeEnum.PUMPING_STATION.getMessage().equals(sceneType)) {
+            multipleData = new BigDecimal("1");
+        } else {
+            multipleData = new BigDecimal("10000");
+        }
+        return multipleData;
+    }
+
+
 }

+ 0 - 1
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/service/impl/alarm/DataAlarmDetailServiceImpl.java

@@ -27,7 +27,6 @@ public class DataAlarmDetailServiceImpl implements DataAlarmDetailService {
     @Resource
     private DataAlarmDetailMapper dataAlarmDetailMapper;
 
-
     @Override
     public Page<DataAlarmDetailsVo> findPage(DataAlarmDto dto, int isHistory) {
         DataAlarmQueryDto queryDto = new DataAlarmQueryDto();

+ 31 - 2
zoniot-charge/zoniot-charge-web/src/main/java/com/zcxk/charge/web/util/ExcelUtil.java

@@ -4,6 +4,7 @@ import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.enums.CellDataTypeEnum;
 import com.alibaba.excel.metadata.CellData;
 import com.alibaba.excel.metadata.Head;
+import com.alibaba.excel.support.ExcelTypeEnum;
 import com.alibaba.excel.util.CollectionUtils;
 import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
 import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
@@ -11,6 +12,9 @@ import com.alibaba.excel.write.metadata.style.WriteCellStyle;
 import com.alibaba.excel.write.metadata.style.WriteFont;
 import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
 import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy;
+import com.zcxk.core.utils.DateUtil;
+import com.zcxk.core.utils.export.CustemhandlerUtils;
+import com.zcxk.core.utils.export.EasyExcelUtil;
 import com.zcxk.core.utils.export.ToolUtil;
 import org.apache.commons.lang.time.DateFormatUtils;
 import org.apache.poi.ss.usermodel.Cell;
@@ -18,8 +22,10 @@ import org.apache.poi.ss.usermodel.HorizontalAlignment;
 import org.apache.poi.ss.usermodel.IndexedColors;
 import org.apache.poi.ss.usermodel.Row;
 
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
+import java.net.URLEncoder;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -44,8 +50,13 @@ public class ExcelUtil {
         try {
             getAbsoluteFile(path, fileName);
             // 这里 需要指定写用哪个class去写,指定模板名称及数据
-            EasyExcel.write(path + fileName).head(head).registerWriteHandler(new CustomizeColumnWidth())
-                    .registerWriteHandler(getStyleStrategy()).sheet("sheet").doWrite(list);
+            EasyExcel.write(path + fileName)
+                    .head(head)
+                    .excelType(ExcelTypeEnum.XLSX)
+                    .registerWriteHandler(new CustomizeColumnWidth())
+                    .registerWriteHandler(getStyleStrategy())
+                    .sheet("sheet")
+                    .doWrite(list);
             filePath = getPathFileName(path, fileName);
         } catch (IOException e) {
             e.printStackTrace();
@@ -53,11 +64,29 @@ public class ExcelUtil {
         return filePath;
     }
 
+    public static void excelWrite(HttpServletResponse response, Class t, String excelName, List data) throws Exception {
+        String fileName =  excelName +"-"+ DateUtil.format(new Date(), "yyyyMMddHHmmss") ;
+        fileName = URLEncoder.encode(fileName, "UTF-8");
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf8");
+        response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx");
+        response.setHeader("Pragma", "public");
+        response.setHeader("Cache-Control", "no-store");
+        response.addHeader("Cache-Control", "max-age=0");
+        EasyExcel.write(response.getOutputStream(), t)
+                .excelType(ExcelTypeEnum.XLSX)
+                .registerWriteHandler(new CustemhandlerUtils())
+                .registerWriteHandler(ExcelUtil.getStyleStrategy())
+                .sheet("sheet")
+                .doWrite(data);
+    }
+
 
     private static final String getPathFileName(String uploadDir, String fileName) throws IOException {
         String pathFileName = uploadDir  + "/" + fileName;
         return ToolUtil.path(pathFileName);
     }
+
     private static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException {
         File desc = new File(uploadDir + File.separator + fileName);
         if (!desc.getParentFile().exists()) {

+ 22 - 8
zoniot-charge/zoniot-charge-xxl-client/src/main/java/com/zcxk/charge/xxl/mq/ReceiveClearData.java

@@ -144,18 +144,13 @@ public class ReceiveClearData {
             log.error("rabbitMq接收消息处理,code:{},查询不到设备或者设备属性为空,退出",deviceCode);
             return;
         }
-        // 英文版、中文版
-        JSONObject receiveData  = JSONObject.parseObject(jsonObject .getString("parsedData"));
-        if (jsonObject.containsKey(ORIGINAL_DATA_STRING)){
-            originalData = JSONObject.parseObject(jsonObject .getString(ORIGINAL_DATA_STRING));
-        }
+        JSONObject receiveData  = JSONObject.parseObject(jsonObject.getString("parsedData"));
         List<MonitorDataValueEntity> monitorDataValueEntities = monitorDataEntity.getDataValues();
         Integer number = 0;
         for (MonitorDataValueEntity monitorDataValueEntity : monitorDataValueEntities) {
             BigDecimal bigDecimal = null;
             try {
                 Double doubleValue = receiveData.getDouble(monitorDataValueEntity.getIdentifier());
-                doubleValue = doubleValue == null ? originalData.getDouble(monitorDataValueEntity.getIdentifier()) : doubleValue;
                 if (doubleValue == null) {
                     continue;
                 }
@@ -195,8 +190,6 @@ public class ReceiveClearData {
     }
 
 
-
-
     /***
      * 对象有时间、有设备编码、有数据则解析,任何一个位空直接退出
      * @author lihui
@@ -230,4 +223,25 @@ public class ReceiveClearData {
         save(monitorDataEntity);
     }
 
+    /**
+     * 16进制转换成为string类型字符串
+     * @param
+     * @return
+     */
+    public static String hexStr2Str(String hexStr) {
+           String str = "0123456789ABCDEF";
+           char[] hexs = hexStr.toCharArray();
+           byte[] bytes = new byte[hexStr.length() / 2];
+            int n;
+            for (int i = 0; i < bytes.length; i++) {
+                 n = str.indexOf(hexs[2 * i]) * 16;
+                 n += str.indexOf(hexs[2 * i + 1]);
+                 bytes[i] = (byte) (n & 0xff);
+             }
+            return new String(bytes);
+        }
+
+    public static void main(String[] args) {
+        System.out.println(ReceiveClearData.hexStr2Str("ABCD0031EA892108220200010501FE0F7710443131333B322E313B352E302031392020202020000000FFFF58521704013EAEEAF02B0D0A"));
+    }
 }

+ 14 - 0
zoniot-charge/zoniot-charge-xxl-client/src/main/resources/bootstrap-dev.yml

@@ -0,0 +1,14 @@
+spring:
+  application:
+    name: zoniot-charge
+  profiles:
+    active: dev
+  cloud:
+    nacos:
+      config:
+        namespace: 73da6876-408b-4850-9ef9-cd2c4ea831bf
+        server-addr: 127.0.0.1:8848
+        prefix: zoniot-charge
+        file-extension: properties
+  main:
+    allow-bean-definition-overriding: true

+ 14 - 0
zoniot-charge/zoniot-charge-xxl-client/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,14 @@
+spring:
+  application:
+    name: zoniot-charge
+  profiles:
+    active: dev
+  cloud:
+    nacos:
+      config:
+        namespace:
+        server-addr:
+        prefix: workflow-mgnt
+        file-extension: properties
+  main:
+    allow-bean-definition-overriding: true

+ 14 - 0
zoniot-charge/zoniot-charge-xxl-client/src/main/resources/bootstrap-sit.yml

@@ -0,0 +1,14 @@
+spring:
+  application:
+    name: zoniot-charge
+  profiles:
+    active: sit
+  cloud:
+    nacos:
+      config:
+        namespace: 33c2968d-5b0c-4da2-bfd7-af8ef5a8f669
+        server-addr: 10.0.0.63:8848
+        prefix: zoniot-charge
+        file-extension: properties
+  main:
+    allow-bean-definition-overriding: true

+ 3 - 0
zoniot-charge/zoniot-charge-xxl-client/src/main/resources/bootstrap.yml

@@ -0,0 +1,3 @@
+spring:
+  profiles:
+    active: dev

+ 23 - 0
zoniot-charge/zoniot-charge-xxl-client/src/main/resources/logback-spring.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <springProperty scope="context" name="LOG_PATH" source="logging.path" defaultValue="/tmp"/>
+    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
+    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
+    <appender name="TIME_FILE"
+              class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <encoder>
+            <pattern>${FILE_LOG_PATTERN}</pattern>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_PATH}/zoniot-charge-xxl.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <maxHistory>365</maxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+    </appender>
+    <root level="INFO">
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="TIME_FILE"/>
+    </root>
+</configuration>

+ 3 - 3
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/MeterReadRecordMapper.java

@@ -23,11 +23,11 @@ public interface MeterReadRecordMapper {
 
     int todayReadRateJobHandler(@Param("readDate") Date readDay);
 
-    int yesterdayReadRate(@Param("readDate") Date readDate);
+    int yesterdayReadRate(@Param("readDate") Integer readDate);
 
-    int recent7daysReadRate(@Param("readDate") Date readDate);
+    int recent7daysReadRate(@Param("readDate") Integer readDate);
 
-    int lastMonthReadRate(@Param("readDate") Date readDate);
+    int lastMonthReadRate(@Param("readDate") Integer readDate);
 
     int updateTodayReadRate(@Param("device") Device device, @Param("readDate") Date readDate);
 }

+ 3 - 3
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/MeterReadRecordMapper.xml

@@ -270,7 +270,7 @@
   <insert id="yesterdayReadRate">
     insert into rmcp_stat_meter_read_rate_by_community_yesterday (stat_day,tenant_id,category_id,company_org_id,dept_org_id,community_id,device_count,read_times,real_read_times,un_read_times,read_rate,create_date,update_date)
     select
-            DATE_FORMAT( date_add(#{readDate}, interval -1 day), '%Y%m%d' ),
+            DATE_FORMAT( #{readDate}, '%Y%m%d' ),
             tenant_id,
             category_id,
             company_org_id,
@@ -286,14 +286,14 @@
     from
             rmcp_meter_read_record
     where
-            read_date = DATE_FORMAT( date_add(#{readDate}, interval -1 day), '%Y%m%d' )
+            read_date = DATE_FORMAT( #{readDate}, '%Y%m%d' )
     group by tenant_id,category_id,company_org_id,dept_org_id,community_id;
   </insert>
 
   <insert id="recent7daysReadRate">
     insert into rmcp_stat_meter_read_rate_by_community_7day (stat_day,tenant_id,category_id,company_org_id,dept_org_id,community_id,device_count,read_times,real_read_times,un_read_times,read_rate,create_date,update_date)
     select
-            DATE_FORMAT( date_add(#{readDate}, interval -1 day), '%Y%m%d' ),
+            DATE_FORMAT( #{readDate}, '%Y%m%d' ),
             tenant_id,
             category_id,
             company_org_id,

+ 1 - 1
zoniot-rmcp/zoniot-rmcp-dap/src/main/java/com/bz/rmcp/dap/service/DeviceDataService.java

@@ -13,5 +13,5 @@ public interface DeviceDataService {
      * @return int
      * @author linqingwei
      **/
-    int saveDeviceData(DeviceOrigDataDTO data);
+    void saveDeviceData(DeviceOrigDataDTO data);
 }

+ 5 - 10
zoniot-rmcp/zoniot-rmcp-dap/src/main/java/com/bz/rmcp/dap/service/impl/DeviceDataServiceImpl.java

@@ -1,4 +1,5 @@
 package com.bz.rmcp.dap.service.impl;
+import cn.hutool.core.map.MapUtil;
 import com.bz.rmcp.dap.common.Constants;
 import com.zcxk.rmcp.api.dto.product.MeasureDataDto;
 import com.zcxk.rmcp.api.dto.readmeter.MeterData;
@@ -65,7 +66,7 @@ public class DeviceDataServiceImpl implements DeviceDataService {
     private MqMessageSender mqMessageSender;
 
     @Override
-    public int saveDeviceData(DeviceOrigDataDTO data) {
+    public void saveDeviceData(DeviceOrigDataDTO data) {
         log.info("begin saveDeviceData ,data = {}" , JSON.toJSONString(data));
         Device device = deviceMapper.findByDeviceNo(data.getDeviceNo());
         if (device != null) {
@@ -85,7 +86,6 @@ public class DeviceDataServiceImpl implements DeviceDataService {
             mqMessageSender.sendDeviceDataMsg(measureDataDto);
         }
         log.info("end saveDeviceData");
-        return 0;
     }
 
     /*
@@ -283,11 +283,7 @@ public class DeviceDataServiceImpl implements DeviceDataService {
      * @author linqingwei
      **/
     private String convertReadData(Map<String, Object> measureMap,Product product){
-        Object temp = measureMap.get(product.getReadingMeasuringCode());
-        if (temp != null) {
-            return measureMap.get(product.getReadingMeasuringCode()).toString();
-        }
-        return null;
+        return MapUtil.getStr(measureMap,product.getReadingMeasuringCode());
     }
 
     /*
@@ -298,9 +294,8 @@ public class DeviceDataServiceImpl implements DeviceDataService {
      * @author linqingwei
      **/
     private Integer convertValveStatus(Map<String, Object> measureMap,Product product){
-        Object temp = measureMap.get(product.getValveMeasuringCode());
-        if (temp != null) {
-            Integer valve =  Integer.valueOf((String) measureMap.get(product.getValveMeasuringCode()));
+        Integer valve = MapUtil.getInt(measureMap,product.getValveMeasuringCode());
+        if (valve != null) {
             if(valve == 0)  return ValveStatusEnum.ON.getCode();
             if(valve == 1)  return ValveStatusEnum.OFF.getCode();
             return ValveStatusEnum.ABNORMAL.getCode();

+ 24 - 9
zoniot-rmcp/zoniot-xxljob-client/src/main/java/com/zcxk/xxljob/service/impl/MeterReadRecordServiceImpl.java

@@ -1,5 +1,6 @@
 package com.zcxk.xxljob.service.impl;
 
+import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.comparator.CompareUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.map.MapUtil;
@@ -14,6 +15,7 @@ import com.zcxk.rmcp.api.dto.readmeter.WaterMeterDto;
 import com.zcxk.rmcp.api.enums.ReadStatusEnum;
 import com.zcxk.rmcp.core.dao.DeviceMapper;
 import com.zcxk.rmcp.core.dao.MeterReadRecordMapper;
+import com.zcxk.rmcp.core.entity.Device;
 import com.zcxk.rmcp.core.mongo.MeterReadRecord;
 import com.zcxk.xxljob.common.Constants;
 import com.zcxk.xxljob.service.MeterReadRecordService;
@@ -205,11 +207,12 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService {
         log.info("begin executeSyncMeterReadRecord map = {}",JSON.toJSONString(map));
         int readDay = MapUtil.getInt(map, "readDay");
         List<MeterReadRecordDetailDto> list = findMeterReadRecord(readDay);
+        log.info("begin executeSyncMeterReadRecord list size = {}",list.size());
         List<com.zcxk.rmcp.core.entity.MeterReadRecord> readRecordList = new ArrayList<>();
         if(!list.isEmpty()){
             for (MeterReadRecordDetailDto detail : list) {
                 com.zcxk.rmcp.core.entity.MeterReadRecord readRecord = new com.zcxk.rmcp.core.entity.MeterReadRecord();
-                readRecord.setId(detail.getId());
+                readRecord.setId(idWorker.nextId());
                 readRecord.setReadDate(detail.getData().getReadDate());
                 readRecord.setTenantId(detail.getTenantId());
                 readRecord.setCategoryId(detail.getCategoryId());
@@ -232,7 +235,14 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService {
                 readRecord.setUpdateBy(Constants.SYS_FLAG);
                 readRecordList.add(readRecord);
             }
-            meterReadRecordMapper.batchInsert(readRecordList);
+
+            if(!readRecordList.isEmpty()){
+                //分批添加
+                List<List<com.zcxk.rmcp.core.entity.MeterReadRecord>> tempList =  ListUtil.split(readRecordList, 5000);
+                for (List<com.zcxk.rmcp.core.entity.MeterReadRecord> meterReadRecords : tempList) {
+                    meterReadRecordMapper.batchInsert(meterReadRecords);
+                }
+            }
         }
         log.info("end executeSyncMeterReadRecord");
     }
@@ -261,27 +271,32 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService {
     public void todayReadRateJobHandler(Map<String, Object> map) {
         log.info("begin yesterdayReadRateJobHandler map = {}",JSON.toJSONString(map));
         Date readDay = cn.hutool.core.date.DateUtil.parse(MapUtil.getStr(map, "readDay"),"yyyyMMdd");
-        meterReadRecordMapper.todayReadRateJobHandler(readDay);
+        int result = meterReadRecordMapper.todayReadRateJobHandler(readDay);
+        log.info("end todayReadRateJobHandler result = {}",result);
     }
 
     @Override
     public void yesterdayReadRateJobHandler(Map<String, Object> map) {
         log.info("begin yesterdayReadRateJobHandler map = {}",JSON.toJSONString(map));
-        Date readDay = cn.hutool.core.date.DateUtil.parse(MapUtil.getStr(map, "readDay"),"yyyyMMdd");
-        meterReadRecordMapper.yesterdayReadRate(readDay);
+        Integer readDay = MapUtil.getInt(map, "readDay");
+        log.info("begin yesterdayReadRateJobHandler readDay = {}",readDay);
+        int result = meterReadRecordMapper.yesterdayReadRate(readDay);
+        log.info("end yesterdayReadRateJobHandler result = {}",result);
     }
 
     @Override
     public void recent7daysReadRateJobHandler(Map<String, Object> map) {
         log.info("begin recent7daysReadRateJobHandler map = {}",JSON.toJSONString(map));
-        Date readDay = cn.hutool.core.date.DateUtil.parse(MapUtil.getStr(map, "readDay"),"yyyyMMdd");
-        meterReadRecordMapper.recent7daysReadRate(readDay);
+        Integer readDay = MapUtil.getInt(map, "readDay");
+        int result = meterReadRecordMapper.recent7daysReadRate(readDay);
+        log.info("end recent7daysReadRateJobHandler result = {}",result);
     }
 
     @Override
     public void lastMonthReadRateJobHandler(Map<String, Object> map) {
         log.info("begin lastMonthReadRateJobHandler map = {}",JSON.toJSONString(map));
-        Date readDay = cn.hutool.core.date.DateUtil.parse(MapUtil.getStr(map, "readDay"),"yyyyMMdd");
-        meterReadRecordMapper.lastMonthReadRate(readDay);
+        Integer readDay = MapUtil.getInt(map, "readDay");
+        int result = meterReadRecordMapper.lastMonthReadRate(readDay);
+        log.info("end lastMonthReadRateJobHandler result = {}",result);
     }
 }