Browse Source

报表导出问题修复

lihui007 3 years ago
parent
commit
fe2b134568

+ 1 - 1
sms_water/src/main/java/com/huaxu/controller/DayMonthYearReportController.java

@@ -198,7 +198,7 @@ public class DayMonthYearReportController {
 
     @RequestMapping(value = "/export/excel", method = RequestMethod.POST)
     @ApiOperation(value = "报表导出")
-    public AjaxMessage<String> exportExcel(@RequestBody ReportQueryDto queryDto) {
+    public AjaxMessage<String> exportExcel(@RequestBody @Valid ReportQueryDto queryDto) {
         IPage<ReportDto> iPage = new Page<>(1, 1000000);
         if (StringUtils.isEmpty(queryDto.getStartTime()) || StringUtils.isEmpty(queryDto.getEndTime())){
             queryDto.setStartTime(null);

+ 2 - 0
sms_water/src/main/java/com/huaxu/dto/ReportQueryDto.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 
 @Data
@@ -28,6 +29,7 @@ public class ReportQueryDto implements Serializable {
     private Integer type;
 
     @ApiModelProperty(value = "场景类型:1:水源,2:水厂,3:泵站,4:管网")
+    @NotNull
     private Integer sceneType;
 
     @ApiModelProperty("年")

+ 15 - 6
sms_water/src/main/resources/mapper/DataAlarmManageMapper.xml

@@ -32,12 +32,21 @@
 
     <select id="findPage" resultType="com.huaxu.vo.DataAlarmManageVo">
         select
-            <include refid="alarmManage_result_list"></include>
-        from sms_data_alarm_manage a
-
-        inner join sms_device t1 on m
-        inner join sms_device_attribute t2 on t1.device_type_id = t2.device_type_id and t2.status = 1
-        inner join sms_device_parm t3 on t3.device_id = t1.id and t3.attribute_id=t2.id and t3.status=1
+               m.id,m.alarm_name, t2.name as be_attribute_name,s.SCENE_NAME as be_scene_name,
+               m.compute_rules,m.alar_rules,m.alar_value,mm.to_attribute_name,mm.to_scene_name
+        from
+           sms_data_alarm_manage  m
+        INNER JOIN sms_scene s on s.id = m.be_scene_id and s.status = 1
+        INNER JOIN sms_device t1 on m.be_device_id = t1.id and t1.status = 1
+        INNER JOIN sms_device_attribute t2 on m.be_attribute_id=t2.id  and t2.status =1
+        LEFT JOIN  (
+            select m.id, t2.name as to_attribute_name,s.SCENE_NAME as to_scene_name
+            from
+            sms_data_alarm_manage  m
+            INNER JOIN sms_scene s on s.id = m.to_scene_id and s.status = 1
+            INNER JOIN sms_device t1 on m.to_device_id = t1.id and t1.status = 1
+            INNER JOIN sms_device_attribute t2 on m.to_attribute_id=t2.id  and t2.status =1
+        ) mm on mm.id = m.id
         <where>
             <if test="dto.userType != null and dto.userType != -999 and dto.userType!=-9999 and  dto.programItems != null and dto.programItems.size() > 0">
                 <if test="dto.permissonType == 5 or dto.permissonType == 2">