浏览代码

报表修改

wangyangyang 4 年之前
父节点
当前提交
22038ab104

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

@@ -83,4 +83,6 @@ public interface DeviceParmMapper  {
     List<ParmTypeCountDto> findAlarmCount(@Param("info") DeviceParmEntity deviceParmEntity);
 
     List<ParmTypeCountDto> findAlarmTotalCount(@Param("info") DeviceParmEntity deviceParmEntity);
+
+    List<ParmTypeCountDto> findAlarmCountTotalCount(@Param("info") DeviceParmEntity deviceParmEntity);
 }

+ 0 - 4
sms_water/src/main/java/com/huaxu/dto/ReportDto.java

@@ -36,16 +36,12 @@ public class ReportDto implements Serializable {
     @ApiModelProperty("一级场景名称")
     private String parentSceneName;
     @ApiModelProperty("今日供水量or今日出水量")
-    @JsonSerialize(using = Object6Serialize.class)
     private Double yieldWaterUsage;
     @ApiModelProperty("今日取水量or今日进水量")
-    @JsonSerialize(using = Object6Serialize.class)
     private Double intakeWaterUsage;
     @ApiModelProperty("今日耗电量")
-    @JsonSerialize(using = Object6Serialize.class)
     private Double powerUsage;
     @ApiModelProperty("今日耗药量")
-    @JsonSerialize(using = Object6Serialize.class)
     private Double drugUsage;
     /** 设备s */
     @JsonIgnore

+ 17 - 13
sms_water/src/main/java/com/huaxu/service/DayReportService.java

@@ -145,19 +145,23 @@ public class DayReportService extends ServiceImpl<DayReportMapper, DayReportEnti
             if (reportDtos.get(i).getHour().equals(item.getHour()))
                 index = i;
         }
-        if (index != -1) {
-            if ((index + 2) <= reportDtos.size()) {
-                item.setYieldWaterUsage(reportDtos.get(index).getYieldWaterUsage() - reportDtos.get(index + 1).getYieldWaterUsage());
-                item.setIntakeWaterUsage(reportDtos.get(index).getIntakeWaterUsage() - reportDtos.get(index + 1).getIntakeWaterUsage());
-                item.setPowerUsage(reportDtos.get(index).getPowerUsage() - reportDtos.get(index + 1).getPowerUsage());
-                item.setDrugUsage(reportDtos.get(index).getDrugUsage() - reportDtos.get(index + 1).getDrugUsage());
-            } else {
-                item.setYieldWaterUsage(0d);
-                item.setIntakeWaterUsage(0d);
-                item.setPowerUsage(0d);
-                item.setDrugUsage(0d);
-            }
-        }
+        item.setYieldWaterUsage(reportDtos.get(index).getYieldWaterUsage());
+        item.setIntakeWaterUsage(reportDtos.get(index).getIntakeWaterUsage());
+        item.setPowerUsage(reportDtos.get(index).getPowerUsage());
+        item.setDrugUsage(reportDtos.get(index).getDrugUsage());
+//        if (index != -1) {
+//            if ((index + 2) <= reportDtos.size()) {
+//                item.setYieldWaterUsage(reportDtos.get(index).getYieldWaterUsage() - reportDtos.get(index + 1).getYieldWaterUsage());
+//                item.setIntakeWaterUsage(reportDtos.get(index).getIntakeWaterUsage() - reportDtos.get(index + 1).getIntakeWaterUsage());
+//                item.setPowerUsage(reportDtos.get(index).getPowerUsage() - reportDtos.get(index + 1).getPowerUsage());
+//                item.setDrugUsage(reportDtos.get(index).getDrugUsage() - reportDtos.get(index + 1).getDrugUsage());
+//            } else {
+//                item.setYieldWaterUsage(0d);
+//                item.setIntakeWaterUsage(0d);
+//                item.setPowerUsage(0d);
+//                item.setDrugUsage(0d);
+//            }
+//        }
     }
 
     public Page<DevicePressReportAttributeDto> findDevicePressPage(IPage<DevicePressReportAttributeDto> page, Long[] ids, Integer year, Integer month, Integer day,Integer type) {

+ 2 - 0
sms_water/src/main/java/com/huaxu/service/DeviceParmService.java

@@ -91,4 +91,6 @@ public interface DeviceParmService {
     List<ParmTypeCountDto> findAlarmCount(DeviceParmEntity deviceParmEntity);
 
     List<ParmTypeCountDto> findAlarmTotalCount(DeviceParmEntity deviceParmEntity);
+
+    List<ParmTypeCountDto> findAlarmCountTotalCount(DeviceParmEntity deviceParmEntity);
 }

+ 17 - 13
sms_water/src/main/java/com/huaxu/service/MonthReportService.java

@@ -139,19 +139,23 @@ public class MonthReportService extends ServiceImpl<MonthReportMapper, MonthRepo
             if (reportDtos.get(i).getDay().equals(item.getDay()))
                 index = i;
         }
-        if (index != -1) {
-            if ((index + 2) <= reportDtos.size()) {
-                item.setYieldWaterUsage(reportDtos.get(index).getYieldWaterUsage() - reportDtos.get(index + 1).getYieldWaterUsage());
-                item.setIntakeWaterUsage(reportDtos.get(index).getIntakeWaterUsage() - reportDtos.get(index + 1).getIntakeWaterUsage());
-                item.setPowerUsage(reportDtos.get(index).getPowerUsage() - reportDtos.get(index + 1).getPowerUsage());
-                item.setDrugUsage(reportDtos.get(index).getDrugUsage() - reportDtos.get(index + 1).getDrugUsage());
-            } else {
-                item.setYieldWaterUsage(0d);
-                item.setIntakeWaterUsage(0d);
-                item.setPowerUsage(0d);
-                item.setDrugUsage(0d);
-            }
-        }
+        item.setYieldWaterUsage(reportDtos.get(index).getYieldWaterUsage());
+        item.setIntakeWaterUsage(reportDtos.get(index).getIntakeWaterUsage());
+        item.setPowerUsage(reportDtos.get(index).getPowerUsage());
+        item.setDrugUsage(reportDtos.get(index).getDrugUsage());
+//        if (index != -1) {
+//            if ((index + 2) <= reportDtos.size()) {
+//                item.setYieldWaterUsage(reportDtos.get(index).getYieldWaterUsage() - reportDtos.get(index + 1).getYieldWaterUsage());
+//                item.setIntakeWaterUsage(reportDtos.get(index).getIntakeWaterUsage() - reportDtos.get(index + 1).getIntakeWaterUsage());
+//                item.setPowerUsage(reportDtos.get(index).getPowerUsage() - reportDtos.get(index + 1).getPowerUsage());
+//                item.setDrugUsage(reportDtos.get(index).getDrugUsage() - reportDtos.get(index + 1).getDrugUsage());
+//            } else {
+//                item.setYieldWaterUsage(0d);
+//                item.setIntakeWaterUsage(0d);
+//                item.setPowerUsage(0d);
+//                item.setDrugUsage(0d);
+//            }
+//        }
     }
 
     public Page<DevicePressReportAttributeDto> findDevicePressPage(IPage<DevicePressReportAttributeDto> page, Long[] ids, Integer year, Integer month, Integer day,Integer type) {

+ 5 - 2
sms_water/src/main/java/com/huaxu/service/SecSupplyService.java

@@ -185,10 +185,13 @@ public class SecSupplyService {
 
 
         List<ParmTypeCountDto> listTotal = deviceParmService.findAlarmTotalCount(deviceParmEntity);
+
+        List<ParmTypeCountDto> listAlarmTotal =deviceParmService.findAlarmCountTotalCount(deviceParmEntity);
+
         WaterPieStateDto waterPieStateDto4 = new WaterPieStateDto();
-        waterPieStateDto4.setNormalCount(listTotal.get(0).getTotalCount()- listTotal.get(0).getNbnormalCount());
+        waterPieStateDto4.setNormalCount(listTotal.get(0).getTotalCount()- listAlarmTotal.get(0).getNbnormalCount());
         waterPieStateDto4.setNbnormalCount(listTotal.get(0).getNbnormalCount());
-        waterPieStateDto4.setPercentage((double) (Math.round((Double.valueOf(listTotal.get(0).getTotalCount()- listTotal.get(0).getNbnormalCount())/Double.valueOf(listTotal.get(0).getTotalCount()))*100)));
+        waterPieStateDto4.setPercentage((double) (Math.round((Double.valueOf(listTotal.get(0).getTotalCount()- listAlarmTotal.get(0).getNbnormalCount())/Double.valueOf(listTotal.get(0).getTotalCount()))*100)));
         waterPieDto.setWaterQuality(waterPieStateDto4);
 
 

+ 17 - 13
sms_water/src/main/java/com/huaxu/service/YearReportService.java

@@ -139,19 +139,23 @@ public class YearReportService extends ServiceImpl<YearReportMapper, YearReportE
             if (reportDtos.get(i).getMonth().equals(item.getMonth()))
                 index = i;
         }
-        if (index != -1) {
-            if ((index + 2) <= reportDtos.size()) {
-                item.setYieldWaterUsage(reportDtos.get(index).getYieldWaterUsage() - reportDtos.get(index + 1).getYieldWaterUsage());
-                item.setIntakeWaterUsage(reportDtos.get(index).getIntakeWaterUsage() - reportDtos.get(index + 1).getIntakeWaterUsage());
-                item.setPowerUsage(reportDtos.get(index).getPowerUsage() - reportDtos.get(index + 1).getPowerUsage());
-                item.setDrugUsage(reportDtos.get(index).getDrugUsage() - reportDtos.get(index + 1).getDrugUsage());
-            } else {
-                item.setYieldWaterUsage(0d);
-                item.setIntakeWaterUsage(0d);
-                item.setPowerUsage(0d);
-                item.setDrugUsage(0d);
-            }
-        }
+        item.setYieldWaterUsage(reportDtos.get(index).getYieldWaterUsage());
+        item.setIntakeWaterUsage(reportDtos.get(index).getIntakeWaterUsage());
+        item.setPowerUsage(reportDtos.get(index).getPowerUsage());
+        item.setDrugUsage(reportDtos.get(index).getDrugUsage());
+//        if (index != -1) {
+//            if ((index + 2) <= reportDtos.size()) {
+//                item.setYieldWaterUsage(reportDtos.get(index).getYieldWaterUsage() - reportDtos.get(index + 1).getYieldWaterUsage());
+//                item.setIntakeWaterUsage(reportDtos.get(index).getIntakeWaterUsage() - reportDtos.get(index + 1).getIntakeWaterUsage());
+//                item.setPowerUsage(reportDtos.get(index).getPowerUsage() - reportDtos.get(index + 1).getPowerUsage());
+//                item.setDrugUsage(reportDtos.get(index).getDrugUsage() - reportDtos.get(index + 1).getDrugUsage());
+//            } else {
+//                item.setYieldWaterUsage(0d);
+//                item.setIntakeWaterUsage(0d);
+//                item.setPowerUsage(0d);
+//                item.setDrugUsage(0d);
+//            }
+//        }
     }
 
     public Page<DevicePressReportAttributeDto> findDevicePressPage(IPage<DevicePressReportAttributeDto> page, Long[] ids, Integer year, Integer month, Integer day,Integer type) {

+ 4 - 1
sms_water/src/main/java/com/huaxu/service/impl/DeviceParmServiceImpl.java

@@ -230,5 +230,8 @@ public class DeviceParmServiceImpl  implements DeviceParmService {
     {
         return deviceParmMapper.findAlarmTotalCount(deviceParmEntity);
     }
-
+    public List<ParmTypeCountDto> findAlarmCountTotalCount(DeviceParmEntity deviceParmEntity)
+    {
+        return deviceParmMapper.findAlarmCountTotalCount(deviceParmEntity);
+    }
 }

+ 29 - 7
sms_water/src/main/resources/mapper/DeviceParmMapper.xml

@@ -197,11 +197,11 @@
 
     </select>
     <select id="findAttributeNameList" resultType="com.huaxu.dto.ReportAttributeDto">
-        SELECT DISTINCT tab.attributeName,tab.attributeType
+        SELECT DISTINCT tab.attributeName,tab.attributeType,tab.SEQ
         from
         (SELECT
         IFNULL(a.REMARK,b.`NAME`) AS "attributeName",
-        a.parm_type as "attributeType"
+        a.parm_type as "attributeType",a.SEQ
         FROM sms_device_parm a
         INNER JOIN sms_device_attribute b on a.ATTRIBUTE_ID=b.ID
         where
@@ -218,6 +218,7 @@
         </foreach>
         ORDER BY a.SEQ asc
         ) as tab
+        ORDER BY tab.SEQ asc
     </select>
     <select id="findBySceneDeviceId" resultType="com.huaxu.dto.DeviceParmInfoDto">
             select a.id as "deviceId",b.id as "attributeId",b.`NAME` as "attributeName"
@@ -254,7 +255,9 @@
         </foreach>
     </select>
     <select id="findAlarmCount" resultType="com.huaxu.dto.ParmTypeCountDto">
-        select b.PARM_TYPE as "parmType",count(a.DEVICE_ID) as "totalCount",count(c.id) as "nbnormalCount"
+        select tab.parmType,sum(tab.nbnormalCount) as "nbnormalCount" from(
+        select  b.PARENT_SCENE_ID,b.PARM_TYPE as "parmType",
+        case when count(c.id)>0 then 1 else 0 end  as "nbnormalCount"
         from sms_device_scene a
         INNER JOIN sms_device_parm b on a.DEVICE_ID=b.DEVICE_ID
                and a.PARENT_SCENE_ID=b.PARENT_SCENE_ID and b.PARM_TYPE in (15,8,9,11,18,19) and b.`STATUS`=1
@@ -266,14 +269,16 @@
         </foreach>
         and
         a.`STATUS`=1
-        group by b.PARM_TYPE
+        group by b.PARENT_SCENE_ID,b.PARM_TYPE )
+        as tab
+        GROUP BY tab.parmType
     </select>
     <select id="findAlarmTotalCount" resultType="com.huaxu.dto.ParmTypeCountDto">
         select count(1) as "totalCount" ,sum(tab.nbnormalCount) as "nbnormalCount" from(
-        select a.PARENT_SCENE_ID,a.DEVICE_ID as "deviceId",case when count(c.id)>0 then 1 else 0 end  as "nbnormalCount"
+        select a.PARENT_SCENE_ID,case when count(c.id)>0 then 1 else 0 end  as "nbnormalCount"
         from sms_device_scene a
         INNER JOIN sms_device_parm b on a.DEVICE_ID=b.DEVICE_ID
-        and a.PARENT_SCENE_ID=b.PARENT_SCENE_ID and b.PARM_TYPE in (15,8,9,11,18,19) and b.`STATUS`=1
+        and a.PARENT_SCENE_ID=b.PARENT_SCENE_ID  and b.`STATUS`=1
         LEFT JOIN  sms_alarm_details c on c.PARENT_SCENE_ID=b.PARENT_SCENE_ID
         and c.ATTRIBUTE_ID=b.ATTRIBUTE_ID and c.STATE=1
         where a.PARENT_SCENE_ID in
@@ -282,7 +287,24 @@
         </foreach>
         and
         a.`STATUS`=1
-        group by a.PARENT_SCENE_ID,a.DEVICE_ID
+        group by a.PARENT_SCENE_ID
+        ) as tab
+    </select>
+    <select id="findAlarmCountTotalCount" resultType="com.huaxu.dto.ParmTypeCountDto">
+        select count(1) as "totalCount" ,sum(tab.nbnormalCount) as "nbnormalCount" from(
+        select a.PARENT_SCENE_ID,case when count(c.id)>0 then 1 else 0 end  as "nbnormalCount"
+        from sms_device_scene a
+        INNER JOIN sms_device_parm b on a.DEVICE_ID=b.DEVICE_ID and b.PARM_TYPE in (15,8,9,11,18,19)
+        and a.PARENT_SCENE_ID=b.PARENT_SCENE_ID  and b.`STATUS`=1
+        LEFT JOIN  sms_alarm_details c on c.PARENT_SCENE_ID=b.PARENT_SCENE_ID
+        and c.ATTRIBUTE_ID=b.ATTRIBUTE_ID and c.STATE=1
+        where a.PARENT_SCENE_ID in
+        <foreach collection="info.sceneEntities" item="dramaId" open="(" close=")" separator=",">
+            #{dramaId.id}
+        </foreach>
+        and
+        a.`STATUS`=1
+        group by a.PARENT_SCENE_ID
         ) as tab
     </select>
 </mapper>