Selaa lähdekoodia

Merge branch '20210223' of http://114.135.61.188:53000/UIMS/Code into 20210223

wangbo 4 vuotta sitten
vanhempi
commit
29ad5fe818
19 muutettua tiedostoa jossa 379 lisäystä ja 37 poistoa
  1. 2 1
      sms_water/src/main/java/com/huaxu/client/UserCenterClient.java
  2. 29 0
      sms_water/src/main/java/com/huaxu/common/converter/Double2Serializer.java
  3. 55 0
      sms_water/src/main/java/com/huaxu/controller/AppDataController.java
  4. 37 13
      sms_water/src/main/java/com/huaxu/controller/AppReportMonitorController.java
  5. 15 0
      sms_water/src/main/java/com/huaxu/controller/OnlineMonitorController.java
  6. 2 0
      sms_water/src/main/java/com/huaxu/dao/MonitorDataReportMapper.java
  7. 25 0
      sms_water/src/main/java/com/huaxu/dto/AppSmsDataDto.java
  8. 8 0
      sms_water/src/main/java/com/huaxu/dto/DeviceCountStatsDto.java
  9. 1 1
      sms_water/src/main/java/com/huaxu/dto/generalView/WaterSupplyChart.java
  10. 4 0
      sms_water/src/main/java/com/huaxu/service/AppReportMonitorService.java
  11. 8 0
      sms_water/src/main/java/com/huaxu/service/MonitorDataReportService.java
  12. 125 2
      sms_water/src/main/java/com/huaxu/service/impl/AppReportMonitorServiceImpl.java
  13. 11 0
      sms_water/src/main/java/com/huaxu/service/impl/MonitorDataReportServiceImpl.java
  14. 1 0
      sms_water/src/main/resources/mapper/AppReportMonitorMapper.xml
  15. 34 0
      sms_water/src/main/resources/mapper/MonitorDataReportMapper.xml
  16. 1 1
      user_center/src/main/java/com/huaxu/controller/OrgController.java
  17. 16 16
      user_center/src/main/resources/mapper/MenuMapper.xml
  18. 1 1
      user_center/src/main/resources/mapper/OrgMapper.xml
  19. 4 2
      user_center/src/main/resources/mapper/TenantMapper.xml

+ 2 - 1
sms_water/src/main/java/com/huaxu/client/UserCenterClient.java

@@ -7,6 +7,7 @@ import com.huaxu.entity.Org;
 import com.huaxu.model.AjaxMessage;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
@@ -36,5 +37,5 @@ public interface UserCenterClient {
     Integer countCompanyByUser();
 
     @PostMapping(value = "/org/getCompanyByUser")
-    List<OrgBaseTreeInfoDto> getCompanyByUser(@RequestParam("condition") String condition,@RequestParam("companyIds") List<Integer> companyIds);
+    List<OrgBaseTreeInfoDto> getCompanyByUser(@RequestParam(value = "condition" ,required =  false) String condition,@RequestBody List<Integer> companyIds);
 }

+ 29 - 0
sms_water/src/main/java/com/huaxu/common/converter/Double2Serializer.java

@@ -0,0 +1,29 @@
+package com.huaxu.common.converter;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
+import java.io.IOException;
+import java.text.DecimalFormat;
+
+public class Double2Serializer extends JsonSerializer<Double> {
+
+    private DecimalFormat df = new DecimalFormat("0.##");
+
+    /**
+     * 小数保留3位返回给前端序列化器
+     * @param data
+     * @param jsonGenerator
+     * @param serializerProvider
+     * @throws IOException
+     */
+    @Override
+    public void serialize(Double data, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
+            throws IOException {
+        if (data != null) {
+            jsonGenerator.writeNumber(df.format(data));
+        }
+    }
+
+}

+ 55 - 0
sms_water/src/main/java/com/huaxu/controller/AppDataController.java

@@ -0,0 +1,55 @@
+package com.huaxu.controller;
+
+import com.huaxu.dto.AppSmsDataDto;
+import com.huaxu.model.AjaxMessage;
+import com.huaxu.model.ResultStatus;
+import com.huaxu.service.MonitorDataReportService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.math.BigDecimal;
+
+@RestController
+@RequestMapping("/appData")
+@Api(tags = "App数据")
+public class AppDataController {
+    @Autowired
+    private MonitorDataReportService monitorDataReportService;
+
+    @RequestMapping(value = "getProductionDataForSameMonth", method = RequestMethod.GET)
+    @ApiOperation(value = "综合调度——本月供水情况")
+    public AjaxMessage<AppSmsDataDto> getMonthWaterSupply(@ApiParam(value = "类型名称(水源、水厂、泵站、售水)") @RequestParam(required = true) String typeName) {
+        //3用水量or供水量or制水量  4 取水量or进水量 5耗电量 6耗药量
+        AppSmsDataDto appSmsDataDto = new AppSmsDataDto();
+        switch (typeName) {
+            case "水源":
+                appSmsDataDto.setIntakeWaterUsage(monitorDataReportService.getAmountCount(null, null, typeName, 4, 2).doubleValue());
+                appSmsDataDto.setPowerUsage(monitorDataReportService.getAmountCount(null, null, typeName, 5, 2).doubleValue());
+                break;
+            case "水厂":
+                appSmsDataDto.setIntakeWaterUsage(monitorDataReportService.getAmountCount(null, null, typeName, 3, 2).doubleValue());
+                appSmsDataDto.setPowerUsage(monitorDataReportService.getAmountCount(null, null, typeName, 5, 2).doubleValue());
+                appSmsDataDto.setDrugUsage(monitorDataReportService.getAmountCount(null, null, typeName, 6, 2).doubleValue());
+                break;
+            case "泵站":
+                appSmsDataDto.setYieldWaterUsage(monitorDataReportService.getAmountCount(null, null, typeName, 3, 2).doubleValue());
+                appSmsDataDto.setPowerUsage(monitorDataReportService.getAmountCount(null, null, typeName, 5, 2).doubleValue());
+                break;
+            case "售水":
+                appSmsDataDto.setYieldWaterUsage(monitorDataReportService.getAmountCount(null, null, "水厂", 3, 2).doubleValue());
+                appSmsDataDto.setWaterUsage(monitorDataReportService.getUseAmount(null, 1).doubleValue());
+                double amount = appSmsDataDto.getYieldWaterUsage() - appSmsDataDto.getWaterUsage();
+                if (appSmsDataDto.getYieldWaterUsage() != null && appSmsDataDto.getYieldWaterUsage() != 0d) {
+                    appSmsDataDto.setWaterFeeRecoveryRate(BigDecimal.valueOf(amount).divide(BigDecimal.valueOf(appSmsDataDto.getYieldWaterUsage()), 3, BigDecimal.ROUND_HALF_UP).doubleValue() * 100);
+                }
+                break;
+        }
+        return new AjaxMessage<>(ResultStatus.OK, appSmsDataDto);
+    }
+}

+ 37 - 13
sms_water/src/main/java/com/huaxu/controller/AppReportMonitorController.java

@@ -3,7 +3,9 @@ package com.huaxu.controller;
 import com.huaxu.client.UserCenterClient;
 import com.huaxu.dto.CompanySceneInfoDto;
 import com.huaxu.dto.OrgBaseTreeInfoDto;
+import com.huaxu.dto.generalView.WaterSupplyChart;
 import com.huaxu.dto.homePage.WaterQualityRate;
+import com.huaxu.dto.homePage.WaterQualityRateForScene;
 import com.huaxu.entity.SceneEntity;
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.ResultStatus;
@@ -49,32 +51,54 @@ public class AppReportMonitorController {
     @ApiOperation(value = "App报表展示————公司查询(条件查询)")
     public AjaxMessage<CompanySceneInfoDto> getSceneByCompanyBySearch(
             @ApiParam(value = "场景类型名称:水源、水厂、泵站、管网") @RequestParam String sceneTypeName,
-            @ApiParam(value = "查询条件") @RequestParam String condition){
+            @ApiParam(value = "查询条件") @RequestParam(required = false) String condition){
         return new AjaxMessage<>(ResultStatus.OK,appReportMonitorService.getSceneByCompanyBySearch(sceneTypeName,condition));
     }
 
 
-
-
-
-
-
-
-
-
     @RequestMapping(value = "getWaterQualification",method = RequestMethod.GET)
-    @ApiOperation(value = "综合展示——水质安全")
-    public AjaxMessage<WaterQualityRate> getWaterQualification(
-            @ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
-        return new AjaxMessage<>(ResultStatus.OK,homePageReportService.getWaterQualification(companyOrgId));
+    @ApiOperation(value = "App报表展示——综合水质情况")
+    public AjaxMessage<WaterQualityRate> getWaterQualification(){
+        return new AjaxMessage<>(ResultStatus.OK,homePageReportService.getWaterQualification(null));
     }
 
 
+    @RequestMapping(value = "getWaterQualityRateForWaterSource",method = RequestMethod.GET)
+    @ApiOperation(value = "App报表展示——水库本月水质合格率")
+    public AjaxMessage<WaterQualityRateForScene> waterQualityRateForWaterSource(
+            @ApiParam(value = "水库id",required = true) @RequestParam Integer sceneId){
+        return new AjaxMessage<>(ResultStatus.OK,homePageReportService.waterQualityRateForWaterSource(sceneId));
+    }
 
+    @RequestMapping(value = "waterQualityRateForWaterFactory",method = RequestMethod.GET)
+    @ApiOperation(value = "App报表展示——水厂本月水质合格率")
+    public AjaxMessage<WaterQualityRateForScene> waterQualityRateForWaterFactory(
+            @ApiParam(value = "水厂id",required = true) @RequestParam Integer sceneId){
+        return new AjaxMessage<>(ResultStatus.OK,homePageReportService.waterQualityRateForWaterFactory(sceneId));
+    }
 
+    @RequestMapping(value = "waterQualityRateForPumpingStation",method = RequestMethod.GET)
+    @ApiOperation(value = "App报表展示——泵站本月水质合格率")
+    public AjaxMessage<WaterQualityRateForScene> waterQualityRateForPumpingStation(
+            @ApiParam(value = "泵站id",required = true) @RequestParam Integer sceneId){
+        return new AjaxMessage<>(ResultStatus.OK,homePageReportService.waterQualityRateForPumpingStation(sceneId));
+    }
 
 
+    @RequestMapping(value = "waterEnergyConsumption",method = RequestMethod.GET)
+    @ApiOperation(value = "App报表展示——水源本月取水情况")
+    public AjaxMessage<List<WaterSupplyChart>> waterEnergyConsumption(
+            @ApiParam(value = "泵站id",required = true) @RequestParam Integer sceneId){
+        return new AjaxMessage<>(ResultStatus.OK,appReportMonitorService.waterEnergyConsumption(sceneId));
+    }
+
 
+    @RequestMapping(value = "getWaterLevelForWaterSource",method = RequestMethod.GET)
+    @ApiOperation(value = "App报表展示——水源本月水位变化")
+    public AjaxMessage<List<WaterSupplyChart>> getWaterLevelForWaterSource(
+            @ApiParam(value = "泵站id",required = true) @RequestParam Integer sceneId){
+        return new AjaxMessage<>(ResultStatus.OK,appReportMonitorService.getWaterLevelForWaterSource(sceneId));
+    }
 
 
 

+ 15 - 0
sms_water/src/main/java/com/huaxu/controller/OnlineMonitorController.java

@@ -252,6 +252,21 @@ public class OnlineMonitorController {
         onlineDataDto.setFlag(1);
         onlineDataDto.setSceneIds(sceneService.findByParentIdsLike(null));
         List<DeviceCountStatsDto> result=onlineMonitorService.statsDeviceQualified(onlineDataDto);
+        for(DeviceCountStatsDto item : result){
+            if(item.getType().equals("流量"))
+                continue;
+            onlineDataDto.setFlag(null);
+            onlineDataDto.setSceneTypeName(item.getType());
+            List<DeviceCountStatsDto> itemResult=onlineMonitorService.statsDeviceQualified(onlineDataDto);
+            if(itemResult.size()>0){
+                if(item.getType().equals("压力")){
+                    DeviceCountStatsDto pressQualified=itemResult.get(0).getParmQualified().size()>0?itemResult.get(0).getParmQualified().get(0):null;
+                    item.setQualifiedRate(pressQualified==null?100:(double)pressQualified.getNormalCount()/itemResult.get(0).getTotalCount()*100);
+                }else if(item.getType().equals("水质")){
+                    item.setQualifiedRate((double)itemResult.get(0).getNormalCount()/itemResult.get(0).getTotalCount()*100);
+                }
+            }
+        }
         return new AjaxMessage<>(ResultStatus.OK, result);
     }
 

+ 2 - 0
sms_water/src/main/java/com/huaxu/dao/MonitorDataReportMapper.java

@@ -133,4 +133,6 @@ public interface MonitorDataReportMapper {
                                                     @Param("programItems")List<ProgramItem> programItems);
     List<WaterSupplyData> getWaterSupplyDataByMonthForCurrentMonth(@Param("tenantId")String tenantId,@Param("companyOrgId")Integer companyOrgId,@Param("sceneTypeName")String sceneTypeName,@Param("userType")String userType,@Param("permissonType")Integer permissonType,
                                                                    @Param("programItems")List<ProgramItem> programItems);
+
+    BigDecimal getUseAmount(@Param("companyOrgId")Integer companyOrgId, @Param("tenantId")String tenantId, @Param("searchType")Integer searchType, @Param("userType")String userType, @Param("permissonType")Integer permissonType, @Param("programItems")List<ProgramItem> programItems);
 }

+ 25 - 0
sms_water/src/main/java/com/huaxu/dto/AppSmsDataDto.java

@@ -0,0 +1,25 @@
+package com.huaxu.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class AppSmsDataDto {
+    @ApiModelProperty("供水量or制水量")
+    private Double yieldWaterUsage;
+    @ApiModelProperty("取水量or进水量")
+    private Double intakeWaterUsage;
+    @ApiModelProperty("耗电量")
+    private Double powerUsage;
+    @ApiModelProperty("耗药量")
+    private Double drugUsage;
+    @ApiModelProperty(value = "售水量")
+    private Double waterUsage;
+    @ApiModelProperty(value = "产销差")
+    private Double waterFeeRecoveryRate;
+
+}

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

@@ -1,5 +1,7 @@
 package com.huaxu.dto;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.huaxu.common.converter.Double2Serializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -35,6 +37,12 @@ public class DeviceCountStatsDto {
      */
     @ApiModelProperty(value = "离线设备数量")
     private Integer offlineCount;
+    /**
+     * 合格率
+     */
+    @JsonSerialize(using = Double2Serializer.class)
+    @ApiModelProperty(value = "合格率")
+    private Double qualifiedRate;
     /**
      * 设备属性合格数据
      */

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

@@ -26,7 +26,7 @@ public class WaterSupplyChart implements Serializable {
     private Integer sort;
     @ApiModelProperty("日期")
     private String date;
-    @ApiModelProperty("制水量")
+    @ApiModelProperty("制水量/取水量")
     @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal waterData = BigDecimal.ZERO;
     @ApiModelProperty("电耗")

+ 4 - 0
sms_water/src/main/java/com/huaxu/service/AppReportMonitorService.java

@@ -1,6 +1,8 @@
 package com.huaxu.service;
 
 import com.huaxu.dto.CompanySceneInfoDto;
+import com.huaxu.dto.generalView.WaterSupplyChart;
+import com.huaxu.dto.homePage.WaterQualityRate;
 import com.huaxu.entity.SceneEntity;
 
 import java.util.List;
@@ -22,7 +24,9 @@ public interface AppReportMonitorService {
 
     CompanySceneInfoDto getSceneByCompanyBySearch(String sceneTypeName, String condition);
 
+    List<WaterSupplyChart> waterEnergyConsumption(Integer sceneId );
 
+    List<WaterSupplyChart> getWaterLevelForWaterSource(Integer sceneId );
 
 
 }

+ 8 - 0
sms_water/src/main/java/com/huaxu/service/MonitorDataReportService.java

@@ -78,6 +78,14 @@ public interface MonitorDataReportService {
      * @return
      */
     BigDecimal getAmountCount(Integer companyOrgId, Integer sceneId, String sceneTypeName, Integer parmType, Integer searchType);
+
+    /**
+     * 获取用水量
+     * @param companyOrgId
+     * @param searchType
+     * @return 查询类型:1月 2年
+     */
+    BigDecimal getUseAmount(Integer companyOrgId,Integer searchType);
 }
 
 

+ 125 - 2
sms_water/src/main/java/com/huaxu/service/impl/AppReportMonitorServiceImpl.java

@@ -2,15 +2,28 @@ package com.huaxu.service.impl;
 
 import com.huaxu.client.UserCenterClient;
 import com.huaxu.dao.AppReportMonitorMapper;
+import com.huaxu.dao.HomePageReportMapper;
 import com.huaxu.dto.CompanySceneInfoDto;
 import com.huaxu.dto.OrgBaseTreeInfoDto;
+import com.huaxu.dto.generalView.WaterSupplyChart;
+import com.huaxu.dto.generalView.WaterSupplyData;
+import com.huaxu.dto.homePage.WaterQualityRate;
 import com.huaxu.entity.SceneEntity;
+import com.huaxu.model.LoginUser;
 import com.huaxu.service.AppReportMonitorService;
+import com.huaxu.service.MonitorDataReportService;
+import com.huaxu.util.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.TemporalAdjusters;
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Comparator;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -28,6 +41,12 @@ public class AppReportMonitorServiceImpl  implements AppReportMonitorService {
     @Autowired
     private UserCenterClient userCenterClient;
 
+    @Resource
+    private HomePageReportMapper homePageReportMapper;
+
+    @Autowired
+    private MonitorDataReportService monitorDataReportService;
+
 
     @Override
     public List<SceneEntity> getSceneByCompany(String sceneTypeName,Integer companyOrgId) {
@@ -38,7 +57,7 @@ public class AppReportMonitorServiceImpl  implements AppReportMonitorService {
     @Override
     public CompanySceneInfoDto getSceneByCompanyBySearch(String sceneTypeName, String condition) {
         //先查询公司
-        List<OrgBaseTreeInfoDto> orgBaseTreeInfoDtos = userCenterClient.getCompanyByUser(condition,null);
+        List<OrgBaseTreeInfoDto> orgBaseTreeInfoDtos = userCenterClient.getCompanyByUser(condition,new ArrayList<>());
         //有公司的展示第一个公司信息
         if(orgBaseTreeInfoDtos.size() > 0){
             List<SceneEntity> sceneEntities = appReportMonitorMapper.getSceneByCompany(sceneTypeName,orgBaseTreeInfoDtos.get(0).getId());
@@ -48,7 +67,7 @@ public class AppReportMonitorServiceImpl  implements AppReportMonitorService {
         List<Integer> companyIds = appReportMonitorMapper.getCompanyBySceneCondition(sceneTypeName,condition);
         if(companyIds.size() > 0){
             //根据场景的公司id查询公司
-            orgBaseTreeInfoDtos = userCenterClient.getCompanyByUser(null,companyIds);
+            orgBaseTreeInfoDtos = userCenterClient.getCompanyByUser("",companyIds);
             //有公司的展示第一个公司信息
             if(orgBaseTreeInfoDtos.size() > 0){
                 List<SceneEntity> sceneEntities = appReportMonitorMapper.getSceneByCompany(sceneTypeName,orgBaseTreeInfoDtos.get(0).getId());
@@ -58,4 +77,108 @@ public class AppReportMonitorServiceImpl  implements AppReportMonitorService {
 
         return new CompanySceneInfoDto();
     }
+
+    //水源取水、电耗对比曲线
+    @Override
+    public List<WaterSupplyChart> waterEnergyConsumption(Integer sceneId ) {
+
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        String tenantId = loginUser.getTenantId();
+
+        List<WaterSupplyData> waterSupplyDatas = homePageReportMapper.getWaterSupplyData(sceneId,"水源",tenantId,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
+
+        LocalDate localDate = LocalDate.now();
+        //当天数据
+        BigDecimal waterDataCountDay = monitorDataReportService.getAmountCount(null,sceneId, "水源", 4,1 );
+        BigDecimal powerDataCountDay = monitorDataReportService.getAmountCount(null,sceneId, "水源", 5,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);
+        waterSupplyChartToday.setPowerData(powerDataCountDay);
+//        waterSupplyChartToday.setDrugData(drugDataCountDay);
+
+
+
+        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() == 3) { //供水
+                            waterSupplyChart.setWaterData(waterSupplyData.getAmount());
+                        } else if (waterSupplyData.getParmType() == 5) {//电耗
+                            waterSupplyChart.setPowerData(waterSupplyData.getAmount());
+                        }
+//                        else if (waterSupplyData.getParmType() == 6) {//药耗
+//                            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()){
+                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)));
+            }
+
+        }
+//        waterSupplyCharts.sort(Comparator.comparing(WaterSupplyChart::getSort).reversed());
+        return waterSupplyCharts;
+    }
+
+    public List<WaterSupplyChart> getWaterLevelForWaterSource(Integer sceneId ){
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        String tenantId = loginUser.getTenantId();
+
+        List<WaterSupplyData> waterSupplyDatas = homePageReportMapper.getWaterSupplyData(sceneId,"水源",tenantId,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
+
+        LocalDate localDate = LocalDate.now();
+        //当天数据
+        BigDecimal waterDataCountDay = monitorDataReportService.getAmountCount(null,sceneId, "水源", 12,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);
+
+
+
+        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() == 3) { //供水
+                            waterSupplyChart.setWaterData(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()){
+                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)));
+            }
+        }
+        return waterSupplyCharts;
+    }
 }

+ 11 - 0
sms_water/src/main/java/com/huaxu/service/impl/MonitorDataReportServiceImpl.java

@@ -57,6 +57,7 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
     @Autowired
     private DeviceService deviceService;
 
+
     @Override
     public List<MonitorDataChartReportDeviceDto> monitorDataChartReportByDay(Long sceneId, Integer year, Integer month , Integer day) {
         LoginUser loginUser = UserUtil.getCurrentUser();
@@ -1137,4 +1138,14 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         }
         return BigDecimal.ZERO;
     }
+
+    @Override
+    public BigDecimal getUseAmount(Integer companyOrgId, Integer searchType) {
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        BigDecimal amountMonth = BigDecimal.ZERO;
+        amountMonth = monitorDataReportMapper.getUseAmount(companyOrgId, loginUser.getTenantId(), searchType, loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
+        if (amountMonth == null)
+            amountMonth = BigDecimal.ZERO;
+        return amountMonth;
+    }
 }

+ 1 - 0
sms_water/src/main/resources/mapper/AppReportMonitorMapper.xml

@@ -17,6 +17,7 @@
 
     <select id="getCompanyBySceneCondition" resultType="java.lang.Integer">
         select
+        distinct
          s.COMPANY_ORG_ID
         from sms_scene_type st
         left join sms_scene s on st.id=s.SCENE_TYPE_ID

+ 34 - 0
sms_water/src/main/resources/mapper/MonitorDataReportMapper.xml

@@ -1416,4 +1416,38 @@
         </if>
         group by r.year,r.month,dp.PARM_TYPE
     </select>
+    <select id="getUseAmount" resultType="java.math.BigDecimal">
+        select  sum(ifnull(a.WATER_USAGE,0)) as "amount"
+        from sms_month_sellwater a
+        <if test="companyOrgId != null">
+            and a.COMPANY_ORG_ID = #{companyOrgId}
+        </if>
+        and a.TENANT_ID=#{tenantId}
+        <if test="searchType ==1">
+            date_format(a.COLLECT_DATE, '%Y-%m') = DATE_FORMAT(now(), '%Y-%m')
+        </if>
+        <if test="searchType ==2">
+            date_format(a.COLLECT_DATE, '%Y') = DATE_FORMAT(now(), '%Y')
+        </if>
+        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+            <if test="permissonType == 5 or permissonType == 2">
+               and a.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+            <if test="permissonType == 4 or permissonType == 3">
+                and a.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+            <if test="permissonType == 1">
+                and a.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+        </if>
+    </select>
 </mapper>

+ 1 - 1
user_center/src/main/java/com/huaxu/controller/OrgController.java

@@ -167,7 +167,7 @@ public class OrgController {
 
 
     @RequestMapping(value = "getCompanyByUser", method = RequestMethod.POST)
-    public List<OrgBaseTreeInfoDto> getCompanyByUser(@RequestParam("condition") String condition,@RequestParam("companyIds") List<Integer> companyIds ) {
+    public List<OrgBaseTreeInfoDto> getCompanyByUser(@RequestParam(value = "condition" ,required =  false) String condition,@RequestBody List<Integer> companyIds ) {
         return orgService.getCompanyByUser(condition,companyIds);
     }
 }

+ 16 - 16
user_center/src/main/resources/mapper/MenuMapper.xml

@@ -258,10 +258,10 @@
         select
         a.id as "id" ,
         a.parent_menu_id as "parentMenuId" ,
-        b.MENU_NAME as "name" ,
-        b.MENU_IMAGE as "menuImage" ,
-        b.ENGLISH_NAME as "englishName",
-        b.MENU_DYNAMIC_IMAGE as "menuDynamicImage",
+        ifnull(b.MENU_NAME,a.`NAME`) as "name" ,
+        IFNULL(b.MENU_IMAGE,a.MENU_IMAGE) as "menuImage" ,
+        IFNULL(b.ENGLISH_NAME,a.ENGLISH_NAME) as "englishName",
+        IFNULL(b.MENU_DYNAMIC_IMAGE,a.MENU_DYNAMIC_IMAGE) as "menuDynamicImage",
         a.permission_flag as "permissionFlag" ,
         b.LINK_PATH as "linkPath" ,
         b.MENU_SEQ as "seq" ,
@@ -287,10 +287,10 @@
         SELECT
         a.id as "id" ,
         a.parent_menu_id as "parentMenuId" ,
-        b.MENU_NAME as "name" ,
-        b.MENU_IMAGE as "menuImage" ,
-        b.ENGLISH_NAME as "englishName",
-        b.MENU_DYNAMIC_IMAGE as "menuDynamicImage",
+        ifnull(b.MENU_NAME,a.`NAME`) as "name" ,
+        IFNULL(b.MENU_IMAGE,a.MENU_IMAGE) as "menuImage" ,
+        IFNULL(b.ENGLISH_NAME,a.ENGLISH_NAME) as "englishName",
+        IFNULL(b.MENU_DYNAMIC_IMAGE,a.MENU_DYNAMIC_IMAGE) as "menuDynamicImage",
         a.permission_flag as "permissionFlag" ,
         b.LINK_PATH as "linkPath" ,
         b.MENU_SEQ as "seq" ,
@@ -335,10 +335,10 @@
         select
         a.id as "id" ,
         a.parent_menu_id as "parentMenuId" ,
-        b.MENU_NAME as "name" ,
-        b.MENU_IMAGE as "menuImage" ,
-        b.ENGLISH_NAME as "englishName",
-        b.MENU_DYNAMIC_IMAGE as "menuDynamicImage",
+        ifnull(b.MENU_NAME,a.`NAME`) as "name" ,
+        IFNULL(b.MENU_IMAGE,a.MENU_IMAGE) as "menuImage" ,
+        IFNULL(b.ENGLISH_NAME,a.ENGLISH_NAME) as "englishName",
+        IFNULL(b.MENU_DYNAMIC_IMAGE,a.MENU_DYNAMIC_IMAGE) as "menuDynamicImage",
         a.permission_flag as "permissionFlag" ,
         b.LINK_PATH as "linkPath" ,
         b.MENU_SEQ as "seq" ,
@@ -367,10 +367,10 @@
         SELECT
         a.id as "id" ,
         a.parent_menu_id as "parentMenuId" ,
-        b.MENU_NAME as "name" ,
-        b.MENU_IMAGE as "menuImage" ,
-        b.ENGLISH_NAME as "englishName",
-        b.MENU_DYNAMIC_IMAGE as "menuDynamicImage",
+        ifnull(b.MENU_NAME,a.`NAME`) as "name" ,
+        IFNULL(b.MENU_IMAGE,a.MENU_IMAGE) as "menuImage" ,
+        IFNULL(b.ENGLISH_NAME,a.ENGLISH_NAME) as "englishName",
+        IFNULL(b.MENU_DYNAMIC_IMAGE,a.MENU_DYNAMIC_IMAGE) as "menuDynamicImage",
         a.permission_flag as "permissionFlag" ,
         b.LINK_PATH as "linkPath" ,
         b.MENU_SEQ as "seq" ,

+ 1 - 1
user_center/src/main/resources/mapper/OrgMapper.xml

@@ -325,7 +325,7 @@
             p.ORG_TYPE as "orgType"
         from uims_org p
         where p.`STATUS` = 1
-        and p.PARENT_ORG_ID != 0 and p.ORG_TYPE = 'company'
+        and p.ORG_TYPE = 'company'
         and p.TENANT_ID = #{tenantId}
         <if test="condition != null and condition != ''">
             and p.org_name like concat('%', #{condition},'%')

+ 4 - 2
user_center/src/main/resources/mapper/TenantMapper.xml

@@ -162,7 +162,7 @@
     <!-- 生成租户菜单 -->
     <insert id="createTenantMenu">
         insert into uims_tenant_menu (TENANT_ID ,MENU_ID ,MENU_NAME ,MENU_IMAGE ,MENU_SEQ ,LINK_PATH ,STATUS
-        ,DATE_CREATE ,CREATE_BY ,DATE_UPDATE ,UPDATE_BY,REMARK)
+        ,DATE_CREATE ,CREATE_BY ,DATE_UPDATE ,UPDATE_BY,REMARK ,ENGLISH_NAME ,MENU_DYNAMIC_IMAGE)
         select
             #{tenantId},
             id,
@@ -175,7 +175,9 @@
             #{userName},
             now(),
             #{userName},
-            remark
+            remark,
+            ENGLISH_NAME,
+            MENU_DYNAMIC_IMAGE
         from uims_menu
         where id in (
         <foreach collection="menuIds" item="item" index="index" separator=",">