Ver código fonte

修复已知BUG

lihui007 4 anos atrás
pai
commit
857175b44e

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

@@ -67,8 +67,11 @@ public abstract class AbstractReportService<M extends BaseMapper<T>, T> extends
             }
             // 固定参数项
             calcUsage(item, reportList);
+            Integer parentSceneId = item.getParentSceneId();
+            item.setParentSceneId(null);
             //动态参数项
             List<ReportAttributeDto> reportAttributeDtos = this.findAttributeList(item);
+            item.setParentSceneId(parentSceneId);
             Map<String, ReportAttributeDto> mapData = new LinkedHashMap<>();
             for (ReportAttributeDto itemData : reportAttributeDtos) {
                 if (!mapData.containsKey(itemData.getDeviceParmId().toString())){
@@ -190,6 +193,7 @@ public abstract class AbstractReportService<M extends BaseMapper<T>, T> extends
             dto.setTypeIds(Arrays.asList(parmType));*/
             dto.setType(queryDto.getType());
         } else {
+            // 管网不需要场景
             dto.setParentSceneIds(queryDto.getIds());
         }
         dto.setStartTime(queryDto.getStartTime());

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

@@ -140,7 +140,7 @@ public class DayReportService extends AbstractReportService<DayReportMapper, Day
         Double power = reportDtos!=null&&reportDtos.get(index)!=null?reportDtos.get(index).getPowerUsage():0;
         Double water = reportDtos!=null&&reportDtos.get(index)!=null?reportDtos.get(index).getIntakeWaterUsage():0;
         Double yieldWaterUsage = reportDtos!=null&&reportDtos.get(index)!=null? reportDtos.get(index).getYieldWaterUsage():0;
-        if ("水源水厂".indexOf(item.getSceneTypeName()) != -1){
+        if (item.getSceneTypeName() != null && "水源水厂".indexOf(item.getSceneTypeName()) != -1){
             item.setPowerUsage(doubleDivideValue(power));
             item.setIntakeWaterUsage(doubleDivideValue(water));
             item.setYieldWaterUsage(doubleDivideValue(yieldWaterUsage));

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

@@ -139,7 +139,7 @@ public class MonthReportService extends AbstractReportService<MonthReportMapper,
         Double power = reportDtos!=null&&reportDtos.get(index)!=null?reportDtos.get(index).getPowerUsage():0;
         Double water = reportDtos!=null&&reportDtos.get(index)!=null?reportDtos.get(index).getIntakeWaterUsage():0;
         Double yieldWaterUsage = reportDtos!=null&&reportDtos.get(index)!=null? reportDtos.get(index).getYieldWaterUsage():0;
-        if ("水源水厂".indexOf(item.getSceneTypeName()) != -1){
+        if (item.getSceneTypeName() != null && "水源水厂".indexOf(item.getSceneTypeName()) != -1){
             item.setPowerUsage(doubleDivideValue(power));
             item.setIntakeWaterUsage(doubleDivideValue(water));
             item.setYieldWaterUsage(doubleDivideValue(yieldWaterUsage));

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

@@ -141,7 +141,7 @@ public class YearReportService extends AbstractReportService<YearReportMapper, Y
         Double power = reportDtos!=null&&reportDtos.get(index)!=null?reportDtos.get(index).getPowerUsage():0;
         Double water = reportDtos!=null&&reportDtos.get(index)!=null?reportDtos.get(index).getIntakeWaterUsage():0;
         Double yieldWaterUsage = reportDtos!=null&&reportDtos.get(index)!=null? reportDtos.get(index).getYieldWaterUsage():0;
-        if ("水源水厂".indexOf(item.getSceneTypeName()) != -1){
+        if (item.getSceneTypeName() != null && "水源水厂".indexOf(item.getSceneTypeName()) != -1){
             item.setPowerUsage(doubleDivideValue(power));
             item.setIntakeWaterUsage(doubleDivideValue(water));
             item.setYieldWaterUsage(doubleDivideValue(yieldWaterUsage));

+ 9 - 8
sms_water/src/main/java/com/huaxu/service/impl/MonitorDataReportServiceImpl.java

@@ -215,7 +215,7 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         // 其他场景需要转换为单位“万”
         for(MonitorDataChartReportDeviceDto monitorDataChartReportDeviceDto : monitorDataChartReportDeviceDtos){
             for(MonitorDataChartReportAttributeDto monitorDataChartReportAttributeDto:monitorDataChartReportDeviceDto.getAttributeData()){
-                monitorDataChartReportAttributeDto.setUnit("万"+monitorDataChartReportAttributeDto.getUnit());
+                monitorDataChartReportAttributeDto.setUnit("万"+monitorDataChartReportAttributeDto.getUnit() == null ? "" : monitorDataChartReportAttributeDto.getUnit());
                 for(MonitorDataChartReportValueDto monitorDataChartReportValueDto: monitorDataChartReportAttributeDto.getMonitorDataChartReportValue()){
                     monitorDataChartReportValueDto.setData(new BigDecimal(monitorDataChartReportValueDto.getData()).divide(BigDecimal.valueOf(10000),3, RoundingMode.HALF_UP).doubleValue());
                     monitorDataChartReportValueDto.setMonitorData(monitorDataChartReportValueDto.getData()+monitorDataChartReportAttributeDto.getUnit());
@@ -231,19 +231,20 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         if (type == null) {
             return monitorDataChartReportDeviceDtos;
         }
+        Integer stype = sceneType == 2 || sceneType == 3 ? 0 : sceneType ;
         if ( type == 3){
-            monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReportByDay(sceneType,sceneIds,year,month,day,
+            monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReportByDay(stype,sceneIds,year,month,day,
                     loginUser.getTenantId(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
         } else if(type == 2){
-            monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReportByMonth(sceneType,sceneIds,year,month,
+            monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReportByMonth(stype,sceneIds,year,month,
                     loginUser.getTenantId(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
         } else if(type == 1){
-            monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReportByYear(sceneType,sceneIds,year,
+            monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReportByYear(stype,sceneIds,year,
                     loginUser.getTenantId(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
         } else if (type == 4) {
             startTime += " 00:00:00";
             endTime   += " 23:59:59";
-            monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReport(sceneType,sceneIds,startTime,endTime,
+            monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReport(stype,sceneIds,startTime,endTime,
                     loginUser.getTenantId(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
         }
         if (monitorDataChartReportDeviceDtos != null && type == 4){
@@ -256,7 +257,7 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
             MonitorDataChartReportAttributeDto newAttrData = new MonitorDataChartReportAttributeDto();
             List<MonitorDataChartReportAttributeDto> attributeDtos =  water.getAttributeData();
             newAttrData.setAttributeName("水电耗");
-            newAttrData.setUnit("kwh/");
+            newAttrData.setUnit("kwh/");
             newAttrData.setAttributeType("99");
             // 计算水电耗=每日电量/每日用水量*100
             // 缺失每日电量或者每日水量将不进行计算
@@ -290,10 +291,10 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
             valueDto.setMonitorData("");
             if (b1.compareTo(new BigDecimal(0)) == 0 || b2.compareTo(new BigDecimal(0)) == 0) {
                 valueDto.setData(0d);
-                valueDto.setMonitorData("0 kwh/");
+                valueDto.setMonitorData("0 kwh/");
             } else {
                 valueDto.setData(b1.divide(b2, 3, RoundingMode.HALF_UP).doubleValue());
-                valueDto.setMonitorData(valueDto.getData() + " kwh/");
+                valueDto.setMonitorData(valueDto.getData() + " kwh/");
             }
         }
     }

+ 11 - 4
sms_water/src/main/resources/mapper/DayReportMapper.xml

@@ -145,11 +145,13 @@
         a.month as "month" ,
         a.day as "day" ,
         a.hour as "hour" ,
-        b.parent_scene_id as "parentSceneId",
-        c.SCENE_NAME as "parentSceneName",
-        t.SCENE_TYPE_NAME as "sceneTypeName"
         <if test="dayReport.type != null">
-        ,a.DEVICE_NAME as "deviceName"
+          a.DEVICE_NAME as "deviceName"
+        </if>
+        <if test="dayReport.type == null">
+            b.parent_scene_id as "parentSceneId",
+            c.SCENE_NAME as "parentSceneName",
+            t.SCENE_TYPE_NAME as "sceneTypeName"
         </if>
         FROM sms_day_report a
         inner join sms_device_parm b on a.DEVICE_ID = b.DEVICE_ID and a.ATTRIBUTE_ID=b.ATTRIBUTE_ID
@@ -183,7 +185,12 @@
                 </foreach>
             </if>
         </where>
+        <if test="dayReport.type == null">
         order by b.parent_scene_id,a.year,a.month,a.day,a.hour
+        </if>
+        <if test="dayReport.type != null">
+            order by a.year,a.month,a.day,a.hour
+        </if>
     </select>
     <select id="findAttributeList" resultType="com.huaxu.dto.ReportAttributeDto">
         SELECT tab.deviceParmId,tab.attributeName,tab.ATTRIBUTE_TYPE,min(tab.minValue) as "minValue",

+ 12 - 5
sms_water/src/main/resources/mapper/MonthReportMapper.xml

@@ -142,11 +142,13 @@
         a.year as "year" ,
         a.month as "month" ,
         a.day as "day" ,
-        b.parent_scene_id as "parentSceneId",
-        c.SCENE_NAME as "parentSceneName",
-        t.SCENE_TYPE_NAME as "sceneTypeName"
         <if test="monthReport.type != null">
-            ,a.DEVICE_NAME as "deviceName"
+            a.DEVICE_NAME as "deviceName"
+        </if>
+        <if test="monthReport.type == null">
+            b.parent_scene_id as "parentSceneId",
+            c.SCENE_NAME as "parentSceneName",
+            t.SCENE_TYPE_NAME as "sceneTypeName"
         </if>
         FROM sms_month_report a
         inner join sms_device_parm b on a.DEVICE_ID = b.DEVICE_ID and a.ATTRIBUTE_ID=b.ATTRIBUTE_ID
@@ -182,7 +184,12 @@
                 </foreach>
             </if>
         </where>
-        order by  b.parent_scene_id,a.year,a.month,a.day
+        <if test="monthReport.type == null">
+            order by b.parent_scene_id,a.year,a.month,a.day
+        </if>
+        <if test="monthReport.type != null">
+            order by a.year,a.month,a.day
+        </if>
     </select>
     <select id="findAttributeList" resultType="com.huaxu.dto.ReportAttributeDto">
         SELECT tab.deviceParmId,tab.attributeName,tab.ATTRIBUTE_TYPE,min(tab.minValue) as "minValue",

+ 12 - 5
sms_water/src/main/resources/mapper/YearReportMapper.xml

@@ -141,11 +141,13 @@
         a.tenant_id as "tenantId" ,
         a.year as "year" ,
         a.month as "month" ,
-        b.parent_scene_id as "parentSceneId",
-        c.SCENE_NAME as "parentSceneName",
-        t.SCENE_TYPE_NAME as "sceneTypeName"
         <if test="yearReport.type != null">
-            ,a.DEVICE_NAME as "deviceName"
+            a.DEVICE_NAME as "deviceName"
+        </if>
+        <if test="yearReport.type == null">
+            b.parent_scene_id as "parentSceneId",
+            c.SCENE_NAME as "parentSceneName",
+            t.SCENE_TYPE_NAME as "sceneTypeName"
         </if>
         FROM sms_year_report a
         inner join sms_device_parm b on a.DEVICE_ID = b.DEVICE_ID and a.ATTRIBUTE_ID=b.ATTRIBUTE_ID
@@ -179,7 +181,12 @@
                 </foreach>
             </if>
         </where>
-        order by  b.parent_scene_id,a.year,a.month
+        <if test="yearReport.type == null">
+            order by b.parent_scene_id,a.year,a.month
+        </if>
+        <if test="yearReport.type != null">
+            order by a.year,a.month
+        </if>
     </select>
     <select id="findAttributeList" resultType="com.huaxu.dto.ReportAttributeDto">
         SELECT tab.deviceParmId,tab.attributeName,tab.ATTRIBUTE_TYPE,min(tab.minValue) as "minValue",