Explorar o código

提交酒店报告初始化代码

lixing %!s(int64=3) %!d(string=hai) anos
pai
achega
816495f0d4
Modificáronse 33 ficheiros con 610 adicións e 423 borrados
  1. 22 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/common/model/vo/DateGraphItemVO.java
  2. 21 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/common/model/vo/HotelPowerConsumptionItem.java
  3. 27 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/common/model/vo/HotelPowerPublicConsumptionItem.java
  4. 20 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/common/model/vo/HotelRankVO.java
  5. 2 56
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/controller/ReportHotelAreaDetailController.java
  6. 18 7
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/ReportHotelAreaDetail.java
  7. 15 34
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/dto/AddReportHotelAreaDetailDTO.java
  8. 12 36
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/dto/UpdateReportHotelAreaDetailDTO.java
  9. 0 19
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/vo/HotelAreaCostInfo.java
  10. 24 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/vo/HotelAreaRemainProblem.java
  11. 0 31
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/vo/PowerUsageOutline.java
  12. 10 22
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/vo/ResponseReportHotelAreaDetailItemVO.java
  13. 9 4
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/service/impl/ReportHotelAreaDetailServiceImpl.java
  14. 2 56
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/controller/ReportHotelProjectDetailController.java
  15. 20 9
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/ReportHotelProjectDetail.java
  16. 17 53
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/dto/AddReportHotelProjectDetailDTO.java
  17. 11 54
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/dto/UpdateReportHotelProjectDetailDTO.java
  18. 26 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectAlarmDealInfo.java
  19. 48 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectChillerPlantEfficiency.java
  20. 3 1
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/vo/HotelProjectCostInfo.java
  21. 20 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectEnergyWorkOrderItem.java
  22. 22 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectEnergyWorkerOrderBaseInfo.java
  23. 28 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectEnergyWorkerOrderInfo.java
  24. 25 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectEnvKpi.java
  25. 28 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectKpiItem.java
  26. 25 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectMaintenanceBaseInfo.java
  27. 38 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectMaintenanceInfo.java
  28. 33 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectPowerConsumptionOutline.java
  29. 38 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectPublicPowerConsumption.java
  30. 8 23
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/ResponseReportHotelProjectDetailItemVO.java
  31. 10 4
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/service/impl/ReportHotelProjectDetailServiceImpl.java
  32. 12 6
      src/main/resources/mapper/ReportHotelAreaDetailMapper.xml
  33. 16 8
      src/main/resources/mapper/ReportHotelProjectDetailMapper.xml

+ 22 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/common/model/vo/DateGraphItemVO.java

@@ -0,0 +1,22 @@
+package com.persagy.apm.energy.report.monthly.detail.common.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/6/8 11:09 上午
+ **/
+@Data
+@ApiModel(value = "日期图表条目vo类")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class DateGraphItemVO {
+    @ApiModelProperty("日期")
+    private Date date;
+    @ApiModelProperty("值")
+    private Double value;
+}

+ 21 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/common/model/vo/HotelPowerConsumptionItem.java

@@ -0,0 +1,21 @@
+package com.persagy.apm.energy.report.monthly.detail.common.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/5/17 3:15 下午
+ **/
+@Data
+@ApiModel(value = "酒店用电量条目信息")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class HotelPowerConsumptionItem {
+    @ApiModelProperty("条目名称")
+    public String name;
+
+    @ApiModelProperty("本月用电量")
+    public Double currentMonth;
+}

+ 27 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/common/model/vo/HotelPowerPublicConsumptionItem.java

@@ -0,0 +1,27 @@
+package com.persagy.apm.energy.report.monthly.detail.common.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/5/17 3:15 下午
+ **/
+@Data
+@ApiModel(value = "酒店公区用电量条目信息")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class HotelPowerPublicConsumptionItem {
+    @ApiModelProperty("条目名称")
+    public String name;
+
+    @ApiModelProperty("本月用电量")
+    public Double currentMonth;
+
+    @ApiModelProperty("去年同期用电量")
+    public Double lastYearSameTime;
+
+    @ApiModelProperty("同比涨幅")
+    public Double range;
+}

+ 20 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/common/model/vo/HotelRankVO.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.energy.report.monthly.detail.common.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/6/8 2:23 下午
+ **/
+@Data
+@ApiModel(value = "酒店排名信息")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class HotelRankVO {
+    @ApiModelProperty(value = "同气候区项目数量")
+    private Integer projectNumWithinClimateZone;
+    @ApiModelProperty(value = "同气候区排名")
+    private Integer rankWithinClimateZone;
+}

+ 2 - 56
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/controller/ReportHotelAreaDetailController.java

@@ -23,12 +23,10 @@ import javax.validation.Valid;
 import java.util.List;
 
 /**
- * 商业报告详情控制层
- *
  * @author lixing
  * @version V1.0 2021-06-07 09:42:04
  */
-@Api(tags = "商业报告详情", hidden = true)
+@Api(tags = "酒店区域报告详情")
 @Validated
 @RestController
 @RequestMapping("reportHotelAreaDetails")
@@ -36,64 +34,12 @@ public class ReportHotelAreaDetailController {
     @Autowired
     private IReportHotelAreaDetailService reportHotelAreaDetailService;
 
-    @ApiOperation(value = "创建商业报告详情")
-    @PostMapping("/create")
-    public CommonResult<ApmResponseUpsertVO> createReportHotelAreaDetail(
-            @Valid @RequestBody AddReportHotelAreaDetailDTO addReportHotelAreaDetailDTO) {
-        String id = reportHotelAreaDetailService.createReportHotelAreaDetail(addReportHotelAreaDetailDTO);
-        return ResultHelper.single(new ApmResponseUpsertVO(id));
-    }
-
-    @ApiOperation(value = "商业报告详情详情")
-    @PostMapping("/get")
-    public CommonResult<ResponseReportHotelAreaDetailItemVO> queryReportHotelAreaDetailDetail(
-            @Valid @RequestBody QueryReportHotelAreaDetailDetailDTO queryReportHotelAreaDetailDetailDTO) {
-        ReportHotelAreaDetail reportHotelAreaDetail = reportHotelAreaDetailService.getReportHotelAreaDetail(queryReportHotelAreaDetailDetailDTO.getId());
-        ResponseReportHotelAreaDetailItemVO responseReportHotelAreaDetailItemVO = ConvertReportHotelAreaDetailTool.INSTANCE.convert2ResponseItemDTO(reportHotelAreaDetail);
-        return ResultHelper.single(responseReportHotelAreaDetailItemVO);
-    }
-
-
     @ApiOperation(value = "更新商业报告详情")
     @PostMapping("/update")
     public CommonResult<ApmResponseUpsertVO> updateReportHotelAreaDetail(
             @Valid @RequestBody UpdateReportHotelAreaDetailDTO updateReportHotelAreaDetailDTO) {
         reportHotelAreaDetailService.updateReportHotelAreaDetail(updateReportHotelAreaDetailDTO);
-        return ResultHelper.single(new ApmResponseUpsertVO(updateReportHotelAreaDetailDTO.getId()));
-    }
-
-
-    @ApiOperation(value = "删除商业报告详情")
-    @PostMapping("/delete")
-    public CommonResult deleteReportHotelAreaDetail(
-            @RequestBody @Valid DeleteReportHotelAreaDetailDTO deleteReportHotelAreaDetailDTO) {
-        reportHotelAreaDetailService.deleteReportHotelAreaDetail(deleteReportHotelAreaDetailDTO.getId());
-        return ResultHelper.success();
-    }
-
-
-    @ApiOperation(value = "商业报告详情列表")
-    @PostMapping("/query")
-    public CommonResult<PageList<ResponseReportHotelAreaDetailListItemVO>> queryReportHotelAreaDetail(
-            @Valid @RequestBody QueryReportHotelAreaDetailDTO queryReportHotelAreaDetailDTO) {
-        List<ReportHotelAreaDetail> reportHotelAreaDetailList = reportHotelAreaDetailService.queryReportHotelAreaDetailList(queryReportHotelAreaDetailDTO);
-        List<ResponseReportHotelAreaDetailListItemVO> resultList = ConvertReportHotelAreaDetailTool.INSTANCE.convert2List(reportHotelAreaDetailList);
-        return ResultHelper.multi(resultList);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateReportHotelAreaDetailDTO.getReportOutlineId()));
     }
-
-    //@ApiOperation(value = "商业报告详情列表, 分页查询")
-    //@PostMapping("/query")
-    //public CommonResult<PageList<ResponseReportHotelAreaDetailListItemVO>> queryReportHotelAreaDetail(
-    //        @Valid @RequestBody PageQueryReportHotelAreaDetailDTO pageQueryReportHotelAreaDetailDTO) {
-    //    IPage<ReportHotelAreaDetail> pagedList = reportHotelAreaDetailService.pageQueryReportHotelAreaDetail(pageQueryReportHotelAreaDetailDTO);
-    //    IPage<ResponseReportHotelAreaDetailListItemVO> pagedResultList = pagedList.convert(item -> {
-    //        try {
-    //           return ConvertReportHotelAreaDetailTool.INSTANCE.convert2ResponseListItemDTO(item);
-    //        } catch (Exception e) {
-    //            throw new IllegalArgumentException("分页查询,ReportHotelAreaDetail实体类转换为列表对象发生异常", e);
-    //        }
-    //    });
-    //    return ResultHelper.multi(pagedResultList);
-    //}
 }
 

+ 18 - 7
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/ReportHotelAreaDetail.java

@@ -1,5 +1,9 @@
 package com.persagy.apm.energy.report.monthly.detail.hotel.area.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
+import com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo.HotelAreaRemainProblem;
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -8,6 +12,7 @@ import com.persagy.apm.common.model.entity.AuditableEntity;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 商业报告详情(ReportHotelAreaDetail)实体类
@@ -17,39 +22,45 @@ import java.util.Date;
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
-@ApiModel(description = "商业报告详情")
+@ApiModel(description = "酒店区域报告详情")
 public class ReportHotelAreaDetail extends AuditableEntity<ReportHotelAreaDetail> implements Serializable {
     private static final long serialVersionUID = 697592670671019747L;
 
     @ApiModelProperty("平台运行信息")
-    private Object platformRuntimeInfo;
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private List<HotelProjectMaintenanceBaseInfo> platformRuntimeInfo;
 
     @ApiModelProperty("平台运行描述")
     private String platformRuntimeDescription;
 
     @ApiModelProperty("费用信息")
-    private Object costInfo;
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private List<HotelProjectCostInfo> costInfo;
 
     @ApiModelProperty("费用说明")
     private String costDescription;
 
     @ApiModelProperty("用电量概述")
-    private Object powerUsageOutline;
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private List<HotelProjectPowerConsumptionOutline> powerUsageOutline;
 
     @ApiModelProperty("用电量说明")
     private String powerUsageDescription;
 
     @ApiModelProperty("节能工单信息")
-    private Object energyWorkOrderInfo;
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private List<HotelProjectEnergyWorkerOrderBaseInfo> energyWorkOrderInfo;
 
     @ApiModelProperty("节能工单说明")
     private String energyWorkOrderDescription;
 
     @ApiModelProperty("报警处理信息")
-    private Object alarmDealInfo;
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private List<HotelProjectAlarmDealInfo> alarmDealInfo;
 
     @ApiModelProperty("遗留问题处理信息")
-    private Object remainProblemsDealInfo;
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private List<HotelAreaRemainProblem> remainProblemsDealInfo;
 
 
     public static String PROP_PLATFORM_RUNTIME_INFO = "platform_runtime_info";

+ 15 - 34
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/dto/AddReportHotelAreaDetailDTO.java

@@ -1,5 +1,7 @@
 package com.persagy.apm.energy.report.monthly.detail.hotel.area.model.dto;
 
+import com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo.HotelAreaRemainProblem;
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -8,6 +10,7 @@ import javax.validation.constraints.NotNull;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author lixing
@@ -16,44 +19,22 @@ import java.util.Date;
 @Data
 @ApiModel(value = "创建商业报告详情入参")
 public class AddReportHotelAreaDetailDTO {
-    @ApiModelProperty(value = "平台运行信息", required = true)
-    @NotNull(message = "平台运行信息不能为空") // todo 更新校验规则
-    private Object platformRuntimeInfo;
+    @ApiModelProperty(value = "平台运行信息")
+    private List<HotelProjectMaintenanceBaseInfo> platformRuntimeInfo;
 
-    @ApiModelProperty(value = "平台运行描述", required = true)
-    @NotNull(message = "平台运行描述不能为空") // todo 更新校验规则
-    private String platformRuntimeDescription;
+    @ApiModelProperty(value = "费用信息")
+    private List<HotelProjectCostInfo> costInfo;
 
-    @ApiModelProperty(value = "费用信息", required = true)
-    @NotNull(message = "费用信息不能为空") // todo 更新校验规则
-    private Object costInfo;
+    @ApiModelProperty(value = "用电量概述")
+    private List<HotelProjectPowerConsumptionOutline> powerUsageOutline;
 
-    @ApiModelProperty(value = "费用说明", required = true)
-    @NotNull(message = "费用说明不能为空") // todo 更新校验规则
-    private String costDescription;
+    @ApiModelProperty(value = "节能工单信息")
+    private List<HotelProjectEnergyWorkerOrderBaseInfo> energyWorkOrderInfo;
 
-    @ApiModelProperty(value = "用电量概述", required = true)
-    @NotNull(message = "用电量概述不能为空") // todo 更新校验规则
-    private Object powerUsageOutline;
+    @ApiModelProperty(value = "报警处理信息")
+    private List<HotelProjectAlarmDealInfo> alarmDealInfo;
 
-    @ApiModelProperty(value = "用电量说明", required = true)
-    @NotNull(message = "用电量说明不能为空") // todo 更新校验规则
-    private String powerUsageDescription;
-
-    @ApiModelProperty(value = "节能工单信息", required = true)
-    @NotNull(message = "节能工单信息不能为空") // todo 更新校验规则
-    private Object energyWorkOrderInfo;
-
-    @ApiModelProperty(value = "节能工单说明", required = true)
-    @NotNull(message = "节能工单说明不能为空") // todo 更新校验规则
-    private String energyWorkOrderDescription;
-
-    @ApiModelProperty(value = "报警处理信息", required = true)
-    @NotNull(message = "报警处理信息不能为空") // todo 更新校验规则
-    private Object alarmDealInfo;
-
-    @ApiModelProperty(value = "遗留问题处理信息", required = true)
-    @NotNull(message = "遗留问题处理信息不能为空") // todo 更新校验规则
-    private Object remainProblemsDealInfo;
+    @ApiModelProperty(value = "遗留问题处理信息")
+    private List<HotelAreaRemainProblem> remainProblemsDealInfo;
 
 }

+ 12 - 36
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/dto/UpdateReportHotelAreaDetailDTO.java

@@ -1,5 +1,6 @@
 package com.persagy.apm.energy.report.monthly.detail.hotel.area.model.dto;
 
+import com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo.HotelAreaRemainProblem;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -8,56 +9,31 @@ import javax.validation.constraints.NotNull;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author lixing
  * @version V1.0 2021-06-07 09:42:07
  */
 @Data
-@ApiModel(value = "更新商业报告详情入参")
+@ApiModel(value = "更新酒店区域报告详情入参")
 public class UpdateReportHotelAreaDetailDTO {
-    @ApiModelProperty(value = "主键", required = true)
-    @NotNull(message = "主键不能为空") // todo 更新校验规则
-    private String id;
+    @ApiModelProperty(value = "报告主键", required = true)
+    @NotNull(message = "报告主键不能为空")
+    private String reportOutlineId;
 
-    @ApiModelProperty(value = "平台运行信息", required = true)
-    @NotNull(message = "平台运行信息不能为空") // todo 更新校验规则
-    private Object platformRuntimeInfo;
-
-    @ApiModelProperty(value = "平台运行描述", required = true)
-    @NotNull(message = "平台运行描述不能为空") // todo 更新校验规则
+    @ApiModelProperty(value = "平台运行描述")
     private String platformRuntimeDescription;
 
-    @ApiModelProperty(value = "费用信息", required = true)
-    @NotNull(message = "费用信息不能为空") // todo 更新校验规则
-    private Object costInfo;
-
-    @ApiModelProperty(value = "费用说明", required = true)
-    @NotNull(message = "费用说明不能为空") // todo 更新校验规则
+    @ApiModelProperty(value = "费用说明")
     private String costDescription;
 
-    @ApiModelProperty(value = "用电量概述", required = true)
-    @NotNull(message = "用电量概述不能为空") // todo 更新校验规则
-    private Object powerUsageOutline;
-
-    @ApiModelProperty(value = "用电量说明", required = true)
-    @NotNull(message = "用电量说明不能为空") // todo 更新校验规则
+    @ApiModelProperty(value = "用电量说明")
     private String powerUsageDescription;
 
-    @ApiModelProperty(value = "节能工单信息", required = true)
-    @NotNull(message = "节能工单信息不能为空") // todo 更新校验规则
-    private Object energyWorkOrderInfo;
-
-    @ApiModelProperty(value = "节能工单说明", required = true)
-    @NotNull(message = "节能工单说明不能为空") // todo 更新校验规则
+    @ApiModelProperty(value = "节能工单说明")
     private String energyWorkOrderDescription;
 
-    @ApiModelProperty(value = "报警处理信息", required = true)
-    @NotNull(message = "报警处理信息不能为空") // todo 更新校验规则
-    private Object alarmDealInfo;
-
-    @ApiModelProperty(value = "遗留问题处理信息", required = true)
-    @NotNull(message = "遗留问题处理信息不能为空") // todo 更新校验规则
-    private Object remainProblemsDealInfo;
-
+    @ApiModelProperty(value = "遗留问题处理信息")
+    private List<HotelAreaRemainProblem> remainProblemsDealInfo;
 }

+ 0 - 19
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/vo/HotelAreaCostInfo.java

@@ -1,19 +0,0 @@
-package com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * @author lixing
- * @version V1.0 2021/6/7 2:12 下午
- **/
-@Data
-@ApiModel("酒店区域费用信息")
-public class HotelAreaCostInfo {
-    @ApiModelProperty(value = "各项目费用信息")
-    private List<HotelProjectCostInfo> projectsCostInfo;
-
-}

+ 24 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/vo/HotelAreaRemainProblem.java

@@ -0,0 +1,24 @@
+package com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/6/7 2:12 下午
+ **/
+@Data
+@ApiModel("酒店大区遗留问题")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class HotelAreaRemainProblem {
+    @ApiModelProperty(value = "项目id")
+    private String projectId;
+    @ApiModelProperty(value = "遗留问题数量")
+    private Double count;
+    @ApiModelProperty(value = "问题处理数量")
+    private Double handledCount;
+    @ApiModelProperty(value = "处理率")
+    private Double handledPercent;
+}

+ 0 - 31
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/vo/PowerUsageOutline.java

@@ -1,31 +0,0 @@
-package com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo;
-
-import com.persagy.apm.energy.report.monthly.detail.common.model.vo.CostItemVO;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * @author lixing
- * @version V1.0 2021/6/7 2:12 下午
- **/
-@Data
-@ApiModel("酒店项目费用信息")
-public class PowerUsageOutline {
-    @ApiModelProperty(value = "总费用")
-    private Double totalCost;
-    @ApiModelProperty(value = "单位建筑面积费用")
-    private Double costPerSquareMetre;
-    @ApiModelProperty(value = "费用同比涨幅")
-    private Double costYearRange;
-    @ApiModelProperty(value = "入住率")
-    private Double occupancy;
-    @ApiModelProperty(value = "入住率同比涨幅")
-    private Double occupancyYearRange;
-    @ApiModelProperty(value = "入住率环比涨幅")
-    private Double occupancyMonthRange;
-    @ApiModelProperty(value = "条目费用信息")
-    private List<CostItemVO> itemsCostInfo;
-}

+ 10 - 22
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/vo/ResponseReportHotelAreaDetailItemVO.java

@@ -1,64 +1,52 @@
 package com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
+import java.util.List;
 
 /**
  * @author lixing
  * @version V1.0 2021-06-07 09:42:08
  */
 @Data
-@ApiModel(value = "商业报告详情返回结果参数")
+@ApiModel(value = "酒店区域报告详情返回结果参数")
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class ResponseReportHotelAreaDetailItemVO {
     @ApiModelProperty("主键")
     private String id;
 
     @ApiModelProperty("平台运行信息")
-    private Object platformRuntimeInfo;
+    private List<HotelProjectMaintenanceBaseInfo> platformRuntimeInfo;
 
     @ApiModelProperty("平台运行描述")
     private String platformRuntimeDescription;
 
     @ApiModelProperty("费用信息")
-    private HotelAreaCostInfo costInfo;
+    private List<HotelProjectCostInfo> costInfo;
 
     @ApiModelProperty("费用说明")
     private String costDescription;
 
     @ApiModelProperty("用电量概述")
-    private Object powerUsageOutline;
+    private List<HotelProjectPowerConsumptionOutline> powerUsageOutline;
 
     @ApiModelProperty("用电量说明")
     private String powerUsageDescription;
 
     @ApiModelProperty("节能工单信息")
-    private Object energyWorkOrderInfo;
+    private List<HotelProjectEnergyWorkerOrderBaseInfo> energyWorkOrderInfo;
 
     @ApiModelProperty("节能工单说明")
     private String energyWorkOrderDescription;
 
     @ApiModelProperty("报警处理信息")
-    private Object alarmDealInfo;
+    private List<HotelProjectAlarmDealInfo> alarmDealInfo;
 
     @ApiModelProperty("遗留问题处理信息")
-    private Object remainProblemsDealInfo;
-
-    @ApiModelProperty("创建人")
-    private String creator;
-
-    @ApiModelProperty("创建时间")
-    private Date creationTime;
-
-    @ApiModelProperty("最后修改人")
-    private String modifier;
-
-    @ApiModelProperty("最后修改时间")
-    private Date modifiedTime;
-
+    private List<HotelAreaRemainProblem> remainProblemsDealInfo;
 }

+ 9 - 4
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/service/impl/ReportHotelAreaDetailServiceImpl.java

@@ -1,6 +1,9 @@
 package com.persagy.apm.energy.report.monthly.detail.hotel.area.service.impl;
 
 import com.persagy.apm.common.context.AppContext;
+import com.persagy.apm.common.context.poems.PoemsContext;
+import com.persagy.apm.energy.report.monthly.detail.business.model.ConvertReportBusinessDetailTool;
+import com.persagy.apm.energy.report.monthly.detail.business.model.ReportBusinessDetail;
 import com.persagy.apm.energy.report.monthly.detail.hotel.area.dao.ReportHotelAreaDetailMapper;
 import com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo.ResponseReportHotelAreaDetailItemVO;
 import com.persagy.apm.energy.report.monthly.detail.hotel.area.service.IReportHotelAreaDetailService;
@@ -89,10 +92,12 @@ public class ReportHotelAreaDetailServiceImpl extends ServiceImpl<ReportHotelAre
      */
     @Override
     public void updateReportHotelAreaDetail(UpdateReportHotelAreaDetailDTO updateReportHotelAreaDetailDTO) {
-        ReportHotelAreaDetail reportHotelAreaDetail = getById(updateReportHotelAreaDetailDTO.getId());
-        reportHotelAreaDetail = ConvertReportHotelAreaDetailTool.INSTANCE.convertUpdateDto2Entity(reportHotelAreaDetail, updateReportHotelAreaDetailDTO);
-        reportHotelAreaDetail.setModifier(AppContext.getContext().getAccountId());
-        updateById(reportHotelAreaDetail);
+        String reportOutlineId = updateReportHotelAreaDetailDTO.getReportOutlineId();
+        ReportOutline reportOutline = reportOutlineService.queryReportOutlineDetail(reportOutlineId);
+        ReportHotelAreaDetail areaDetail = getReportHotelAreaDetail(reportOutline.getDetailId());
+        areaDetail = ConvertReportHotelAreaDetailTool.INSTANCE.convertUpdateDto2Entity(areaDetail, updateReportHotelAreaDetailDTO);
+        areaDetail.setModifier(PoemsContext.getContext().getUserId());
+        updateById(areaDetail);
     }
 
     /**

+ 2 - 56
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/controller/ReportHotelProjectDetailController.java

@@ -17,12 +17,10 @@ import javax.validation.Valid;
 import java.util.List;
 
 /**
- * 商业报告详情控制层
- *
  * @author lixing
  * @version V1.0 2021-06-07 09:42:56
  */
-@Api(tags = "商业报告详情", hidden = true)
+@Api(tags = "酒店项目报告详情")
 @Validated
 @RestController
 @RequestMapping("reportHotelProjectDetails")
@@ -30,64 +28,12 @@ public class ReportHotelProjectDetailController {
     @Autowired
     private IReportHotelProjectDetailService reportHotelProjectDetailService;
 
-    @ApiOperation(value = "创建商业报告详情")
-    @PostMapping("/create")
-    public CommonResult<ApmResponseUpsertVO> createReportHotelProjectDetail(
-            @Valid @RequestBody AddReportHotelProjectDetailDTO addReportHotelProjectDetailDTO) {
-        String id = reportHotelProjectDetailService.createReportHotelProjectDetail(addReportHotelProjectDetailDTO);
-        return ResultHelper.single(new ApmResponseUpsertVO(id));
-    }
-
-    @ApiOperation(value = "商业报告详情详情")
-    @PostMapping("/get")
-    public CommonResult<ResponseReportHotelProjectDetailItemVO> queryReportHotelProjectDetailDetail(
-            @Valid @RequestBody QueryReportHotelProjectDetailDetailDTO queryReportHotelProjectDetailDetailDTO) {
-        ReportHotelProjectDetail reportHotelProjectDetail = reportHotelProjectDetailService.getReportHotelProjectDetail(queryReportHotelProjectDetailDetailDTO.getId());
-        ResponseReportHotelProjectDetailItemVO responseReportHotelProjectDetailItemVO = ConvertReportHotelProjectDetailTool.INSTANCE.convert2ResponseItemDTO(reportHotelProjectDetail);
-        return ResultHelper.single(responseReportHotelProjectDetailItemVO);
-    }
-
-
     @ApiOperation(value = "更新商业报告详情")
     @PostMapping("/update")
     public CommonResult<ApmResponseUpsertVO> updateReportHotelProjectDetail(
             @Valid @RequestBody UpdateReportHotelProjectDetailDTO updateReportHotelProjectDetailDTO) {
         reportHotelProjectDetailService.updateReportHotelProjectDetail(updateReportHotelProjectDetailDTO);
-        return ResultHelper.single(new ApmResponseUpsertVO(updateReportHotelProjectDetailDTO.getId()));
-    }
-
-
-    @ApiOperation(value = "删除商业报告详情")
-    @PostMapping("/delete")
-    public CommonResult deleteReportHotelProjectDetail(
-            @RequestBody @Valid DeleteReportHotelProjectDetailDTO deleteReportHotelProjectDetailDTO) {
-        reportHotelProjectDetailService.deleteReportHotelProjectDetail(deleteReportHotelProjectDetailDTO.getId());
-        return ResultHelper.success();
-    }
-
-
-    @ApiOperation(value = "商业报告详情列表")
-    @PostMapping("/query")
-    public CommonResult<PageList<ResponseReportHotelProjectDetailListItemVO>> queryReportHotelProjectDetail(
-            @Valid @RequestBody QueryReportHotelProjectDetailDTO queryReportHotelProjectDetailDTO) {
-        List<ReportHotelProjectDetail> reportHotelProjectDetailList = reportHotelProjectDetailService.queryReportHotelProjectDetailList(queryReportHotelProjectDetailDTO);
-        List<ResponseReportHotelProjectDetailListItemVO> resultList = ConvertReportHotelProjectDetailTool.INSTANCE.convert2List(reportHotelProjectDetailList);
-        return ResultHelper.multi(resultList);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateReportHotelProjectDetailDTO.getReportOutlineId()));
     }
-
-    //@ApiOperation(value = "商业报告详情列表, 分页查询")
-    //@PostMapping("/query")
-    //public CommonResult<PageList<ResponseReportHotelProjectDetailListItemVO>> queryReportHotelProjectDetail(
-    //        @Valid @RequestBody PageQueryReportHotelProjectDetailDTO pageQueryReportHotelProjectDetailDTO) {
-    //    IPage<ReportHotelProjectDetail> pagedList = reportHotelProjectDetailService.pageQueryReportHotelProjectDetail(pageQueryReportHotelProjectDetailDTO);
-    //    IPage<ResponseReportHotelProjectDetailListItemVO> pagedResultList = pagedList.convert(item -> {
-    //        try {
-    //           return ConvertReportHotelProjectDetailTool.INSTANCE.convert2ResponseListItemDTO(item);
-    //        } catch (Exception e) {
-    //            throw new IllegalArgumentException("分页查询,ReportHotelProjectDetail实体类转换为列表对象发生异常", e);
-    //        }
-    //    });
-    //    return ResultHelper.multi(pagedResultList);
-    //}
 }
 

+ 20 - 9
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/ReportHotelProjectDetail.java

@@ -1,5 +1,8 @@
 package com.persagy.apm.energy.report.monthly.detail.hotel.project.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -22,46 +25,54 @@ public class ReportHotelProjectDetail extends AuditableEntity<ReportHotelProject
     private static final long serialVersionUID = 706925849959914678L;
 
     @ApiModelProperty("费用信息")
-    private Object costInfo;
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private HotelProjectCostInfo costInfo;
 
     @ApiModelProperty("费用说明")
     private String costDescription;
 
     @ApiModelProperty("用电量概述")
-    private Object powerUsageOutline;
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private HotelProjectPowerConsumptionOutline powerUsageOutline;
 
     @ApiModelProperty("公区用电量")
-    private Object publicAreaPowerUsage;
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private HotelProjectPublicPowerConsumption publicAreaPowerUsage;
 
     @ApiModelProperty("用电量说明")
     private String powerUsageDescription;
 
     @ApiModelProperty("冷站效率")
-    private Object airConditionerEfficiency;
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private HotelProjectChillerPlantEfficiency airConditionerEfficiency;
 
     @ApiModelProperty("冷站效率说明")
     private String airConditionerEfficiencyExplain;
 
-    @ApiModelProperty("环境信息")
-    private Object envInfo;
+    @ApiModelProperty("环境指标")
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private HotelProjectEnvKpi envInfo;
 
     @ApiModelProperty("环境说明")
     private String envDescription;
 
     @ApiModelProperty("节能工单信息")
-    private Object energyWorkOrderInfo;
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private HotelProjectEnergyWorkerOrderInfo energyWorkOrderInfo;
 
     @ApiModelProperty("节能工单说明")
     private String energyWorkOrderDescription;
 
     @ApiModelProperty("平台运行信息")
-    private Object platformRuntimeInfo;
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private HotelProjectMaintenanceInfo platformRuntimeInfo;
 
     @ApiModelProperty("平台运行描述")
     private String platformRuntimeDescription;
 
     @ApiModelProperty("报警处理信息")
-    private Object alarmDealInfo;
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private HotelProjectAlarmDealInfo alarmDealInfo;
 
     @ApiModelProperty("报警处理说明")
     private String alarmDealDescription;

+ 17 - 53
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/dto/AddReportHotelProjectDetailDTO.java

@@ -1,5 +1,6 @@
 package com.persagy.apm.energy.report.monthly.detail.hotel.project.model.dto;
 
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -16,64 +17,27 @@ import java.util.Date;
 @Data
 @ApiModel(value = "创建商业报告详情入参")
 public class AddReportHotelProjectDetailDTO {
-    @ApiModelProperty(value = "费用信息", required = true)
-    @NotNull(message = "费用信息不能为空") // todo 更新校验规则
-    private Object costInfo;
+    @ApiModelProperty(value = "费用信息")
+    private HotelProjectCostInfo costInfo;
 
-    @ApiModelProperty(value = "费用说明", required = true)
-    @NotNull(message = "费用说明不能为空") // todo 更新校验规则
-    private String costDescription;
+    @ApiModelProperty(value = "用电量概述")
+    private HotelProjectPowerConsumptionOutline powerUsageOutline;
 
-    @ApiModelProperty(value = "用电量概述", required = true)
-    @NotNull(message = "用电量概述不能为空") // todo 更新校验规则
-    private Object powerUsageOutline;
+    @ApiModelProperty(value = "公区用电量")
+    private HotelProjectPublicPowerConsumption publicAreaPowerUsage;
 
-    @ApiModelProperty(value = "公区用电量", required = true)
-    @NotNull(message = "公区用电量不能为空") // todo 更新校验规则
-    private Object publicAreaPowerUsage;
+    @ApiModelProperty(value = "冷站效率")
+    private HotelProjectChillerPlantEfficiency airConditionerEfficiency;
 
-    @ApiModelProperty(value = "用电量说明", required = true)
-    @NotNull(message = "用电量说明不能为空") // todo 更新校验规则
-    private String powerUsageDescription;
+    @ApiModelProperty(value = "环境指标")
+    private HotelProjectEnvKpi envInfo;
 
-    @ApiModelProperty(value = "冷站效率", required = true)
-    @NotNull(message = "冷站效率不能为空") // todo 更新校验规则
-    private Object airConditionerEfficiency;
+    @ApiModelProperty(value = "节能工单信息")
+    private HotelProjectEnergyWorkerOrderInfo energyWorkOrderInfo;
 
-    @ApiModelProperty(value = "冷站效率说明", required = true)
-    @NotNull(message = "冷站效率说明不能为空") // todo 更新校验规则
-    private String airConditionerEfficiencyExplain;
-
-    @ApiModelProperty(value = "环境信息", required = true)
-    @NotNull(message = "环境信息不能为空") // todo 更新校验规则
-    private Object envInfo;
-
-    @ApiModelProperty(value = "环境说明", required = true)
-    @NotNull(message = "环境说明不能为空") // todo 更新校验规则
-    private String envDescription;
-
-    @ApiModelProperty(value = "节能工单信息", required = true)
-    @NotNull(message = "节能工单信息不能为空") // todo 更新校验规则
-    private Object energyWorkOrderInfo;
-
-    @ApiModelProperty(value = "节能工单说明", required = true)
-    @NotNull(message = "节能工单说明不能为空") // todo 更新校验规则
-    private String energyWorkOrderDescription;
-
-    @ApiModelProperty(value = "平台运行信息", required = true)
-    @NotNull(message = "平台运行信息不能为空") // todo 更新校验规则
-    private Object platformRuntimeInfo;
-
-    @ApiModelProperty(value = "平台运行描述", required = true)
-    @NotNull(message = "平台运行描述不能为空") // todo 更新校验规则
-    private String platformRuntimeDescription;
-
-    @ApiModelProperty(value = "报警处理信息", required = true)
-    @NotNull(message = "报警处理信息不能为空") // todo 更新校验规则
-    private Object alarmDealInfo;
-
-    @ApiModelProperty(value = "报警处理说明", required = true)
-    @NotNull(message = "报警处理说明不能为空") // todo 更新校验规则
-    private String alarmDealDescription;
+    @ApiModelProperty(value = "平台运行信息")
+    private HotelProjectMaintenanceInfo platformRuntimeInfo;
 
+    @ApiModelProperty(value = "报警处理信息")
+    private HotelProjectAlarmDealInfo alarmDealInfo;
 }

+ 11 - 54
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/dto/UpdateReportHotelProjectDetailDTO.java

@@ -2,12 +2,9 @@ package com.persagy.apm.energy.report.monthly.detail.hotel.project.model.dto;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-
-import javax.validation.constraints.NotNull;
-
 import lombok.Data;
 
-import java.util.Date;
+import javax.validation.constraints.NotNull;
 
 /**
  * @author lixing
@@ -16,68 +13,28 @@ import java.util.Date;
 @Data
 @ApiModel(value = "更新商业报告详情入参")
 public class UpdateReportHotelProjectDetailDTO {
-    @ApiModelProperty(value = "主键", required = true)
-    @NotNull(message = "主键不能为空") // todo 更新校验规则
-    private String id;
+    @ApiModelProperty(value = "报告主键", required = true)
+    @NotNull(message = "报告主键不能为空")
+    private String reportOutlineId;
 
-    @ApiModelProperty(value = "费用信息", required = true)
-    @NotNull(message = "费用信息不能为空") // todo 更新校验规则
-    private Object costInfo;
-
-    @ApiModelProperty(value = "费用说明", required = true)
-    @NotNull(message = "费用说明不能为空") // todo 更新校验规则
+    @ApiModelProperty(value = "费用说明")
     private String costDescription;
 
-    @ApiModelProperty(value = "用电量概述", required = true)
-    @NotNull(message = "用电量概述不能为空") // todo 更新校验规则
-    private Object powerUsageOutline;
-
-    @ApiModelProperty(value = "公区用电量", required = true)
-    @NotNull(message = "公区用电量不能为空") // todo 更新校验规则
-    private Object publicAreaPowerUsage;
-
-    @ApiModelProperty(value = "用电量说明", required = true)
-    @NotNull(message = "用电量说明不能为空") // todo 更新校验规则
+    @ApiModelProperty(value = "用电量说明")
     private String powerUsageDescription;
 
-    @ApiModelProperty(value = "冷站效率", required = true)
-    @NotNull(message = "冷站效率不能为空") // todo 更新校验规则
-    private Object airConditionerEfficiency;
-
-    @ApiModelProperty(value = "冷站效率说明", required = true)
-    @NotNull(message = "冷站效率说明不能为空") // todo 更新校验规则
+    @ApiModelProperty(value = "冷站效率说明")
     private String airConditionerEfficiencyExplain;
 
-    @ApiModelProperty(value = "环境信息", required = true)
-    @NotNull(message = "环境信息不能为空") // todo 更新校验规则
-    private Object envInfo;
-
-    @ApiModelProperty(value = "环境说明", required = true)
-    @NotNull(message = "环境说明不能为空") // todo 更新校验规则
+    @ApiModelProperty(value = "环境说明")
     private String envDescription;
 
-    @ApiModelProperty(value = "节能工单信息", required = true)
-    @NotNull(message = "节能工单信息不能为空") // todo 更新校验规则
-    private Object energyWorkOrderInfo;
-
-    @ApiModelProperty(value = "节能工单说明", required = true)
-    @NotNull(message = "节能工单说明不能为空") // todo 更新校验规则
+    @ApiModelProperty(value = "节能工单说明")
     private String energyWorkOrderDescription;
 
-    @ApiModelProperty(value = "平台运行信息", required = true)
-    @NotNull(message = "平台运行信息不能为空") // todo 更新校验规则
-    private Object platformRuntimeInfo;
-
-    @ApiModelProperty(value = "平台运行描述", required = true)
-    @NotNull(message = "平台运行描述不能为空") // todo 更新校验规则
+    @ApiModelProperty(value = "平台运行描述")
     private String platformRuntimeDescription;
 
-    @ApiModelProperty(value = "报警处理信息", required = true)
-    @NotNull(message = "报警处理信息不能为空") // todo 更新校验规则
-    private Object alarmDealInfo;
-
-    @ApiModelProperty(value = "报警处理说明", required = true)
-    @NotNull(message = "报警处理说明不能为空") // todo 更新校验规则
+    @ApiModelProperty(value = "报警处理说明")
     private String alarmDealDescription;
-
 }

+ 26 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectAlarmDealInfo.java

@@ -0,0 +1,26 @@
+package com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.persagy.apm.energy.report.monthly.detail.common.model.vo.DateGraphItemVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/6/7 2:12 下午
+ **/
+@Data
+@ApiModel("酒店项目报警处理信息")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class HotelProjectAlarmDealInfo {
+    @ApiModelProperty(value = "报警总条数")
+    private Double totalCount;
+    @ApiModelProperty(value = "处理条数")
+    private Double handledCount;
+    @ApiModelProperty(value = "处理率")
+    private Double handledPercent;
+}

+ 48 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectChillerPlantEfficiency.java

@@ -0,0 +1,48 @@
+package com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.persagy.apm.energy.report.monthly.detail.common.model.vo.DateGraphItemVO;
+import com.persagy.apm.energy.report.monthly.detail.common.model.vo.HotelRankVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/6/7 2:12 下午
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel("酒店项目冷站效率")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class HotelProjectChillerPlantEfficiency extends HotelRankVO {
+    @ApiModelProperty(value = "eer")
+    private Double eer;
+    @ApiModelProperty(value = "上月eer")
+    private Double eerLastMonth;
+    @ApiModelProperty(value = "eer环比涨幅")
+    private Double eerMonthRange;
+    @ApiModelProperty(value = "最高eer发生时间")
+    private Date maxEerTime;
+    @ApiModelProperty(value = "最低eer发生时间")
+    private Date minEerTime;
+    @ApiModelProperty(value = "本月平均温度")
+    private Double averageTemperatureCurrentMonth;
+    @ApiModelProperty(value = "去年同期平均温度")
+    private Double averageTemperatureLastYearSameTime;
+    @ApiModelProperty(value = "平均温度增长量")
+    private Double averageTemperatureGrowth;
+    @ApiModelProperty(value = "本月制冷量")
+    private Double coolingCapacityCurrentMonth;
+    @ApiModelProperty(value = "去年同期制冷量")
+    private Double coolingCapacityLastYearSameTime;
+    @ApiModelProperty(value = "制冷量同比涨幅")
+    private Double coolingCapacityRange;
+
+    @ApiModelProperty(value = "图表信息")
+    private List<DateGraphItemVO> eerDetailInfo;
+}

+ 3 - 1
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/vo/HotelProjectCostInfo.java

@@ -1,5 +1,6 @@
-package com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo;
+package com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
 import com.persagy.apm.energy.report.monthly.detail.common.model.vo.CostItemVO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -13,6 +14,7 @@ import java.util.List;
  **/
 @Data
 @ApiModel("酒店项目费用信息")
+@JsonInclude(JsonInclude.Include.NON_NULL)
 public class HotelProjectCostInfo {
     @ApiModelProperty(value = "总费用")
     private Double totalCost;

+ 20 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectEnergyWorkOrderItem.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/6/8 11:38 上午
+ **/
+@Data
+@ApiModel(value = "酒店项目节能工单条目信息")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class HotelProjectEnergyWorkOrderItem {
+    @ApiModelProperty(value = "工单完成时间")
+    private Double completedTime;
+    @ApiModelProperty(value = "节能量")
+    private Double energySaved;
+}

+ 22 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectEnergyWorkerOrderBaseInfo.java

@@ -0,0 +1,22 @@
+package com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/6/7 2:12 下午
+ **/
+@Data
+@ApiModel("酒店项目节能工单信息")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class HotelProjectEnergyWorkerOrderBaseInfo {
+    @ApiModelProperty(value = "工单总条数")
+    private Double totalCount;
+    @ApiModelProperty(value = "工单总节能量")
+    private Double totalEnergySave;
+}

+ 28 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectEnergyWorkerOrderInfo.java

@@ -0,0 +1,28 @@
+package com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/6/7 2:12 下午
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel("酒店项目节能工单信息")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class HotelProjectEnergyWorkerOrderInfo extends HotelProjectEnergyWorkerOrderBaseInfo {
+    @ApiModelProperty(value = "执行采纳条数")
+    private Double executeCount;
+    @ApiModelProperty(value = "采纳率")
+    private Double executePercent;
+    @ApiModelProperty(value = "自行发现并采取措施的工单条数")
+    private Double initiativeCount;
+    @ApiModelProperty(value = "节能工单信息")
+    private List<HotelProjectEnergyWorkOrderItem> detailInfo;
+}

+ 25 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectEnvKpi.java

@@ -0,0 +1,25 @@
+package com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.persagy.apm.energy.report.monthly.detail.common.model.vo.DateGraphItemVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/6/7 2:12 下午
+ **/
+@Data
+@ApiModel("酒店项目环境指标")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class HotelProjectEnvKpi {
+    @ApiModelProperty(value = "温度指标")
+    private HotelProjectKpiItem temperatureKpi;
+
+    @ApiModelProperty(value = "co2指标")
+    private HotelProjectKpiItem co2Kpi;
+}

+ 28 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectKpiItem.java

@@ -0,0 +1,28 @@
+package com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.persagy.apm.energy.report.monthly.detail.common.model.vo.DateGraphItemVO;
+import com.persagy.apm.energy.report.monthly.detail.common.model.vo.HotelRankVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/6/7 2:12 下午
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel("酒店项目指标条目")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class HotelProjectKpiItem extends HotelRankVO {
+    @ApiModelProperty(value = "达标率")
+    private Double controlRates;
+
+    @ApiModelProperty(value = "图表信息")
+    private List<DateGraphItemVO> detailInfo;
+
+}

+ 25 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectMaintenanceBaseInfo.java

@@ -0,0 +1,25 @@
+package com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.persagy.apm.energy.report.monthly.detail.common.model.vo.DateGraphItemVO;
+import com.persagy.apm.energy.report.monthly.detail.common.model.vo.HotelRankVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/6/7 2:12 下午
+ **/
+@Data
+@ApiModel("酒店项目维护基础信息")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class HotelProjectMaintenanceBaseInfo {
+    @ApiModelProperty(value = "变损率")
+    private Double changeLossRate;
+    @ApiModelProperty(value = "总支不平衡率")
+    private Double imbalanceRate;
+}

+ 38 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectMaintenanceInfo.java

@@ -0,0 +1,38 @@
+package com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.persagy.apm.energy.report.monthly.detail.common.model.vo.DateGraphItemVO;
+import com.persagy.apm.energy.report.monthly.detail.common.model.vo.HotelRankVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/6/7 2:12 下午
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel("酒店项目维护信息")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class HotelProjectMaintenanceInfo extends HotelRankVO {
+    @ApiModelProperty(value = "变损率")
+    private Double changeLossRate;
+    @ApiModelProperty(value = "变损率标准值")
+    private Double changeLossStandardValue;
+    @ApiModelProperty(value = "总支不平衡率")
+    private Double imbalanceRate;
+    @ApiModelProperty(value = "总支不平衡率标准值")
+    private Double imbalanceStandardValue;
+    @ApiModelProperty(value = "数据断线次数")
+    private Double breakCount;
+    @ApiModelProperty(value = "数据中断时长")
+    private Double breakLostTime;
+    @ApiModelProperty(value = "变损图表信息")
+    private List<DateGraphItemVO> changeLossGraph;
+    @ApiModelProperty(value = "总支不平衡率图表信息")
+    private List<DateGraphItemVO> imbalanceGraph;
+}

+ 33 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectPowerConsumptionOutline.java

@@ -0,0 +1,33 @@
+package com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.persagy.apm.energy.report.monthly.detail.common.model.vo.HotelPowerConsumptionItem;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/6/7 2:12 下午
+ **/
+@Data
+@ApiModel("酒店项目用电量信息")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class HotelProjectPowerConsumptionOutline {
+    @ApiModelProperty(value = "本月总耗电量")
+    private Double consumptionCurrentMonth;
+    @ApiModelProperty(value = "同等碳排放量")
+    private Double tce;
+    @ApiModelProperty(value = "单位建筑面积能耗")
+    private Double consumptionPerSquareMetre;
+    @ApiModelProperty(value = "总建筑面积")
+    private Double overallFloorage;
+    @ApiModelProperty(value = "去年同期耗电量")
+    private Double consumptionLastYear;
+    @ApiModelProperty(value = "费用同比涨幅")
+    private Double consumptionMonthRange;
+    @ApiModelProperty(value = "条目费用信息")
+    private List<HotelPowerConsumptionItem> itemsCostInfo;
+}

+ 38 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectPublicPowerConsumption.java

@@ -0,0 +1,38 @@
+package com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.persagy.apm.energy.report.monthly.detail.common.model.vo.HotelPowerConsumptionItem;
+import com.persagy.apm.energy.report.monthly.detail.common.model.vo.HotelRankVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.With;
+
+import java.util.List;
+
+/**
+ * @author lixing
+ * @version V1.0 2021/6/7 2:12 下午
+ **/
+@Data
+@ApiModel("酒店项目公区用电量信息")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class HotelProjectPublicPowerConsumption extends HotelRankVO {
+    @ApiModelProperty(value = "本月总耗电量")
+    private Double consumptionCurrentMonth;
+    @ApiModelProperty(value = "本月单位建筑面积能耗")
+    private Double consumptionPerSquareMetreCurrentMonth;
+    @ApiModelProperty(value = "费用环比涨幅")
+    private Double consumptionMonthRange;
+    @ApiModelProperty(value = "本年单位建筑面积能耗")
+    private Double consumptionPerSquareMetreCurrentYear;
+    @ApiModelProperty(value = "去年同期单位建筑面积能耗")
+    private Double consumptionPerSquareMetreLastYear;
+    @ApiModelProperty(value = "费用同比涨幅")
+    private Double consumptionYearRange;
+    @ApiModelProperty(value = "国标引导值")
+    private Double guideValue;
+
+    @ApiModelProperty(value = "条目费用信息")
+    private List<HotelPowerConsumptionItem> itemsCostInfo;
+}

+ 8 - 23
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/ResponseReportHotelProjectDetailItemVO.java

@@ -1,7 +1,5 @@
 package com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo;
 
-import com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo.HotelProjectCostInfo;
-import com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo.PowerUsageOutline;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -28,54 +26,41 @@ public class ResponseReportHotelProjectDetailItemVO {
     private String costDescription;
 
     @ApiModelProperty("用电量概述")
-    private PowerUsageOutline powerUsageOutline;
+    private HotelProjectPowerConsumptionOutline powerUsageOutline;
 
     @ApiModelProperty("公区用电量")
-    private Object publicAreaPowerUsage;
+    private HotelProjectPublicPowerConsumption publicAreaPowerUsage;
 
     @ApiModelProperty("用电量说明")
     private String powerUsageDescription;
 
     @ApiModelProperty("冷站效率")
-    private Object airConditionerEfficiency;
+    private HotelProjectChillerPlantEfficiency airConditionerEfficiency;
 
     @ApiModelProperty("冷站效率说明")
     private String airConditionerEfficiencyExplain;
 
-    @ApiModelProperty("环境信息")
-    private Object envInfo;
+    @ApiModelProperty("环境指标")
+    private HotelProjectEnvKpi envInfo;
 
     @ApiModelProperty("环境说明")
     private String envDescription;
 
     @ApiModelProperty("节能工单信息")
-    private Object energyWorkOrderInfo;
+    private HotelProjectEnergyWorkerOrderInfo energyWorkOrderInfo;
 
     @ApiModelProperty("节能工单说明")
     private String energyWorkOrderDescription;
 
     @ApiModelProperty("平台运行信息")
-    private Object platformRuntimeInfo;
+    private HotelProjectMaintenanceInfo platformRuntimeInfo;
 
     @ApiModelProperty("平台运行描述")
     private String platformRuntimeDescription;
 
     @ApiModelProperty("报警处理信息")
-    private Object alarmDealInfo;
+    private HotelProjectAlarmDealInfo alarmDealInfo;
 
     @ApiModelProperty("报警处理说明")
     private String alarmDealDescription;
-
-    @ApiModelProperty("创建人")
-    private String creator;
-
-    @ApiModelProperty("创建时间")
-    private Date creationTime;
-
-    @ApiModelProperty("最后修改人")
-    private String modifier;
-
-    @ApiModelProperty("最后修改时间")
-    private Date modifiedTime;
-
 }

+ 10 - 4
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/service/impl/ReportHotelProjectDetailServiceImpl.java

@@ -1,6 +1,9 @@
 package com.persagy.apm.energy.report.monthly.detail.hotel.project.service.impl;
 
 import com.persagy.apm.common.context.AppContext;
+import com.persagy.apm.common.context.poems.PoemsContext;
+import com.persagy.apm.energy.report.monthly.detail.hotel.area.model.ConvertReportHotelAreaDetailTool;
+import com.persagy.apm.energy.report.monthly.detail.hotel.area.model.ReportHotelAreaDetail;
 import com.persagy.apm.energy.report.monthly.detail.hotel.project.dao.ReportHotelProjectDetailMapper;
 import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.ResponseReportHotelProjectDetailItemVO;
 import com.persagy.apm.energy.report.monthly.detail.hotel.project.service.IReportHotelProjectDetailService;
@@ -89,10 +92,13 @@ public class ReportHotelProjectDetailServiceImpl extends ServiceImpl<ReportHotel
      */
     @Override
     public void updateReportHotelProjectDetail(UpdateReportHotelProjectDetailDTO updateReportHotelProjectDetailDTO) {
-        ReportHotelProjectDetail reportHotelProjectDetail = getById(updateReportHotelProjectDetailDTO.getId());
-        reportHotelProjectDetail = ConvertReportHotelProjectDetailTool.INSTANCE.convertUpdateDto2Entity(reportHotelProjectDetail, updateReportHotelProjectDetailDTO);
-        reportHotelProjectDetail.setModifier(AppContext.getContext().getAccountId());
-        updateById(reportHotelProjectDetail);
+        String reportOutlineId = updateReportHotelProjectDetailDTO.getReportOutlineId();
+        ReportOutline reportOutline = reportOutlineService.queryReportOutlineDetail(reportOutlineId);
+        ReportHotelProjectDetail projectDetail = getReportHotelProjectDetail(reportOutline.getDetailId());
+        projectDetail = ConvertReportHotelProjectDetailTool.INSTANCE.
+                convertUpdateDto2Entity(projectDetail, updateReportHotelProjectDetailDTO);
+        projectDetail.setModifier(PoemsContext.getContext().getUserId());
+        updateById(projectDetail);
     }
 
     /**

+ 12 - 6
src/main/resources/mapper/ReportHotelAreaDetailMapper.xml

@@ -4,16 +4,22 @@
     <resultMap id="ReportHotelAreaDetailMap"
                type="com.persagy.apm.energy.report.monthly.detail.hotel.area.model.ReportHotelAreaDetail">
         <result column="id" property="id"/>
-        <result column="platform_runtime_info" property="platformRuntimeInfo"/>
+        <result column="platform_runtime_info" property="platformRuntimeInfo"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
         <result column="platform_runtime_description" property="platformRuntimeDescription"/>
-        <result column="cost_info" property="costInfo"/>
+        <result column="cost_info" property="costInfo"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
         <result column="cost_description" property="costDescription"/>
-        <result column="power_usage_outline" property="powerUsageOutline"/>
+        <result column="power_usage_outline" property="powerUsageOutline"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
         <result column="power_usage_description" property="powerUsageDescription"/>
-        <result column="energy_work_order_info" property="energyWorkOrderInfo"/>
+        <result column="energy_work_order_info" property="energyWorkOrderInfo"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
         <result column="energy_work_order_description" property="energyWorkOrderDescription"/>
-        <result column="alarm_deal_info" property="alarmDealInfo"/>
-        <result column="remain_problems_deal_info" property="remainProblemsDealInfo"/>
+        <result column="alarm_deal_info" property="alarmDealInfo"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
+        <result column="remain_problems_deal_info" property="remainProblemsDealInfo"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
         <result column="ts" property="ts"/>
         <result column="creator" property="creator"/>
         <result column="creation_time" property="creationTime"/>

+ 16 - 8
src/main/resources/mapper/ReportHotelProjectDetailMapper.xml

@@ -4,20 +4,28 @@
     <resultMap id="ReportHotelProjectDetailMap"
                type="com.persagy.apm.energy.report.monthly.detail.hotel.project.model.ReportHotelProjectDetail">
         <result column="id" property="id"/>
-        <result column="cost_info" property="costInfo"/>
+        <result column="cost_info" property="costInfo"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
         <result column="cost_description" property="costDescription"/>
-        <result column="power_usage_outline" property="powerUsageOutline"/>
-        <result column="public_area_power_usage" property="publicAreaPowerUsage"/>
+        <result column="power_usage_outline" property="powerUsageOutline"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
+        <result column="public_area_power_usage" property="publicAreaPowerUsage"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
         <result column="power_usage_description" property="powerUsageDescription"/>
-        <result column="air_conditioner_efficiency" property="airConditionerEfficiency"/>
+        <result column="air_conditioner_efficiency" property="airConditionerEfficiency"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
         <result column="air_conditioner_efficiency_explain" property="airConditionerEfficiencyExplain"/>
-        <result column="env_info" property="envInfo"/>
+        <result column="env_info" property="envInfo"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
         <result column="env_description" property="envDescription"/>
-        <result column="energy_work_order_info" property="energyWorkOrderInfo"/>
+        <result column="energy_work_order_info" property="energyWorkOrderInfo"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
         <result column="energy_work_order_description" property="energyWorkOrderDescription"/>
-        <result column="platform_runtime_info" property="platformRuntimeInfo"/>
+        <result column="platform_runtime_info" property="platformRuntimeInfo"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
         <result column="platform_runtime_description" property="platformRuntimeDescription"/>
-        <result column="alarm_deal_info" property="alarmDealInfo"/>
+        <result column="alarm_deal_info" property="alarmDealInfo"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
         <result column="alarm_deal_description" property="alarmDealDescription"/>
         <result column="ts" property="ts"/>
         <result column="creator" property="creator"/>