瀏覽代碼

综合展示数据除以10000

wangyangyang 4 年之前
父節點
當前提交
dc57b0cd4e

+ 5 - 6
sms_water/src/main/java/com/huaxu/controller/ComDisplayController.java

@@ -117,15 +117,14 @@ public class ComDisplayController {
                 }
             }
         }
+        //对数据进行单位转换 按万进行统计
+        sceneUsageDto.setYieldWaterUsage(sceneUsageDto.getYieldWaterUsage()!=null? (double) Math.round(sceneUsageDto.getYieldWaterUsage()/(float)100)/100:0);
+        sceneUsageDto.setPowerUsage(sceneUsageDto.getPowerUsage()!=null? (double) Math.round(sceneUsageDto.getPowerUsage()/(float)100)/100:0);
         if (sceneUsageDto.getPowerUsage() != null && sceneUsageDto.getYieldWaterUsage() != null && sceneUsageDto.getPowerUsage() != 0) {
             sceneUsageDto.setYieldPowerUsage((double) Math.round((sceneUsageDto.getYieldWaterUsage() / sceneUsageDto.getPowerUsage()) * 100) / 100);
         } else {
             sceneUsageDto.setYieldPowerUsage(0d);
         }
-        //对数据进行单位转换 按万进行统计
-        sceneUsageDto.setYieldPowerUsage(sceneUsageDto.getYieldPowerUsage()!=null? (double) Math.round(sceneUsageDto.getYieldPowerUsage()/(float)100)/100:0);
-        sceneUsageDto.setYieldWaterUsage(sceneUsageDto.getYieldWaterUsage()!=null? (double) Math.round(sceneUsageDto.getYieldWaterUsage()/(float)100)/100:0);
-        sceneUsageDto.setPowerUsage(sceneUsageDto.getPowerUsage()!=null? (double) Math.round(sceneUsageDto.getPowerUsage()/(float)100)/100:0);
         return new AjaxMessage<>(ResultStatus.OK, sceneUsageDto);
     }
     @RequestMapping(value="selectMapForCompany" , method = RequestMethod.GET)
@@ -157,8 +156,8 @@ public class ComDisplayController {
             ComdisplayInfoDto comdisplayInfoDto= comdisplayMapLocationService.selectMapDataForCompany(Long.valueOf(item.getCompanyOrgId()));
             if(comdisplayInfoDto!=null)
             {
-                item.setIntakeWaterUsage(comdisplayInfoDto.getIntakeWaterUsage());
-                item.setYieldWaterUsage(comdisplayInfoDto.getYieldWaterUsage());
+                item.setIntakeWaterUsage(comdisplayInfoDto.getIntakeWaterUsage() != null ? (double) Math.round(comdisplayInfoDto.getIntakeWaterUsage() / (float) 100) / 100 : 0);
+                item.setYieldWaterUsage(comdisplayInfoDto.getYieldWaterUsage() != null ? (double) Math.round(comdisplayInfoDto.getYieldWaterUsage() / (float) 100) / 100 : 0);
                 if(comdisplayInfoDto.getYieldWaterUsage()!=null&&comdisplayInfoDto.getYieldWaterUsage()>0d)
                 {
                     item.setWaterFeeRecoveryRate(Double.valueOf(Math.round(((comdisplayInfoDto.getYieldWaterUsage()-waterUsage)/comdisplayInfoDto.getYieldWaterUsage())*100)));

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

@@ -131,4 +131,6 @@ public interface MonitorDataReportMapper {
 
     List<WaterSupplyData> getWaterSupplyDataByMonth(@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);
+    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);
 }

+ 6 - 2
sms_water/src/main/java/com/huaxu/service/impl/MonitorDataReportServiceImpl.java

@@ -21,6 +21,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import javax.sound.midi.Receiver;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.time.Duration;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -928,6 +929,9 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         LoginUser loginUser = UserUtil.getCurrentUser();
         String tenantId = loginUser.getTenantId();
         List<WaterSupplyData> waterSupplyDatas = monitorDataReportMapper.getWaterSupplyDataByMonth(tenantId,companyOrgId,sceneTypeName,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
+        List<WaterSupplyData> waterSupplyDatasForCurrentMonth = monitorDataReportMapper.getWaterSupplyDataByMonthForCurrentMonth(tenantId,companyOrgId,sceneTypeName,loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
+        if(waterSupplyDatasForCurrentMonth.size()>0)
+        waterSupplyDatas.add(waterSupplyDatasForCurrentMonth.get(0));
         List<WaterSupplyChart> waterSupplyCharts = new ArrayList<>();
         waterSupplyDatas.stream()
                 .collect(Collectors.groupingBy(item -> item.getYear() + "-" + item.getMonth()))
@@ -938,9 +942,9 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
                         Period period = Period.between(LocalDate.of(waterSupplyData.getYear(), waterSupplyData.getMonth(),1), LocalDate.now());
                         waterSupplyChart.setSort(period.getMonths());
                         if (waterSupplyData.getParmType() == 3) { //供水
-                            waterSupplyChart.setWaterData(waterSupplyData.getAmount());
+                            waterSupplyChart.setWaterData(waterSupplyData.getAmount().divide(BigDecimal.valueOf(10000),2, RoundingMode.HALF_UP));
                         } else if (waterSupplyData.getParmType() == 5) {//电耗
-                            waterSupplyChart.setPowerData(waterSupplyData.getAmount());
+                            waterSupplyChart.setPowerData(waterSupplyData.getAmount().divide(BigDecimal.valueOf(10000),2, RoundingMode.HALF_UP));
                         }
                     });
                     waterSupplyCharts.add(waterSupplyChart);

+ 4 - 3
sms_water/src/main/java/com/huaxu/service/impl/OnlineMonitorImpl.java

@@ -465,16 +465,17 @@ public class OnlineMonitorImpl implements OnlineMonitorService {
             Map<Long,SecDataCollectDto> map = new HashMap<>();
             // 按公司进行汇总
             for(MonitorDataCollectDto item : result) {
+                System.out.println("公司ID:"+item.getCompanyOrgId());
                 if (!map.containsKey(item.getCompanyOrgId())) {
                     SecDataCollectDto secDataCollectDto = new SecDataCollectDto();
-                    secDataCollectDto.setYieldWaterUsage(item.getYieldWaterUsage());
+                    secDataCollectDto.setYieldWaterUsage(item.getYieldWaterUsage()!=null?(double) Math.round(item.getYieldWaterUsage()/(float)100)/100:0);
                     secDataCollectDto.setCount(1);
                     secDataCollectDto.setComName(orgInfoUtil.getOrgName(item.getCompanyOrgId().intValue()));
                     map.put(item.getCompanyOrgId(), secDataCollectDto);
                 } else {
-                    Double yieldWaterUsage = map.get(item.getCompanyOrgId()).getYieldWaterUsage() != null ? map.get(item.getCompanyOrgId()).getYieldWaterUsage() : 0d;
+                    Double yieldWaterUsage = map.get(item.getCompanyOrgId()).getYieldWaterUsage() != null ? (double) Math.round(map.get(item.getCompanyOrgId()).getYieldWaterUsage()/(float)100)/100 : 0d;
                     Integer count = map.get(item.getCompanyOrgId()).getCount() != null ? map.get(item.getCompanyOrgId()).getCount() : 1;
-                    map.get(item.getCompanyOrgId()).setYieldWaterUsage(yieldWaterUsage + (item.getYieldWaterUsage()!=null?item.getYieldWaterUsage():0));
+                    map.get(item.getCompanyOrgId()).setYieldWaterUsage(yieldWaterUsage + (item.getYieldWaterUsage() != null ? item.getYieldWaterUsage() : 0));
                     map.get(item.getCompanyOrgId()).setCount(count + 1);
                 }
             }

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

@@ -1365,4 +1365,48 @@
         </if>
         group by r.year,r.month,dp.PARM_TYPE
     </select>
+    <select id="getWaterSupplyDataByMonthForCurrentMonth" resultType="com.huaxu.dto.generalView.WaterSupplyData">
+        select
+        r.year
+        ,r.month
+        ,dp.PARM_TYPE as "parmType"
+        ,sum(r.SUM_VALUE) as "amount"
+        from sms_scene_type st
+        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_device_attribute da on dp.ATTRIBUTE_ID =da.ID
+        left join sms_month_report r on r.DEVICE_ID =dp.DEVICE_ID and r.ATTRIBUTE_ID = dp.ATTRIBUTE_ID
+        where  dp.`STATUS`=1 and st.SCENE_TYPE_NAME = #{sceneTypeName} and s.ENABLE_STATE = 1 and st.`STATUS`=1 and s.`STATUS`=1
+        and DATE_FORMAT(r.COLLECT_DATE,'%Y%m' ) = DATE_FORMAT(CURDATE( ) , '%Y%m' )
+        and dp.PARM_TYPE in (3,5)   and dp.TENANT_ID=#{tenantId}
+        <if test="companyOrgId != null ">and s.COMPANY_ORG_ID=#{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">
+                and ( s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                or
+                s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                )
+            </if>
+            <if test="permissonType == 4 or permissonType == 3">
+                and s.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+            <if test="permissonType == 1">
+                and s.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
+            </if>
+        </if>
+        group by r.year,r.month,dp.PARM_TYPE
+    </select>
 </mapper>

+ 21 - 1
sms_water/src/main/resources/mapper/OnlineMonitorMapper.xml

@@ -21,6 +21,26 @@
             <result property="latestValue" column="latest_value" jdbcType="VARCHAR"/>
         </collection>
     </resultMap>
+    <resultMap type="com.huaxu.dto.MonitorDataCollectDto" id="monitorDataMap2">
+        <result property="sceneId" column="scene_id" jdbcType="INTEGER"/>
+        <result property="sceneName" column="scene_name" jdbcType="VARCHAR"/>
+        <result property="sceneTypeName" column="scene_type_name" jdbcType="VARCHAR"/>
+        <result property="pointX" column="point_x" jdbcType="VARCHAR"/>
+        <result property="pointY" column="point_y" jdbcType="VARCHAR"/>
+        <result property="address" column="address" jdbcType="VARCHAR"/>
+        <result property="sceneState" column="scene_state" jdbcType="INTEGER"/>
+        <result property="companyOrgId" column="companyOrgId" jdbcType="INTEGER"/>
+        <collection property="MonitorDataEntities" ofType="com.huaxu.dto.MonitorDataDto" javaType="list">
+            <result property="deviceId" column="device_id" jdbcType="INTEGER"/>
+            <result property="attributeId" column="attribute_id" jdbcType="INTEGER"/>
+            <result property="attributeName" column="attribute_name" jdbcType="VARCHAR"/>
+            <result property="unit" column="unit" jdbcType="VARCHAR"/>
+            <result property="isAlarm" column="is_Alarm" jdbcType="VARCHAR"/>
+            <result property="attributeType" column="attribute_type" jdbcType="VARCHAR"/>
+            <result property="deviceCode" column="device_code" jdbcType="VARCHAR"/>
+            <result property="latestValue" column="latest_value" jdbcType="VARCHAR"/>
+        </collection>
+    </resultMap>
     <!-- 设备结果集 -->
     <resultMap type="com.huaxu.dto.MonitorDataCollectDto" id="deviceDataMap">
         <result property="sceneId" column="scene_id" jdbcType="INTEGER"/>
@@ -196,7 +216,7 @@
         order by alalmCount desc
     </select>
     <!--查询地图悬浮数据-->
-    <select id="selectMapSuspension" resultMap="monitorDataMap">
+    <select id="selectMapSuspension" resultMap="monitorDataMap2">
         select
         <include refid="Base_Column_List"/>
         <if test="flag == null or flag ==0">