瀏覽代碼

104模块

hfxc226 2 年之前
父節點
當前提交
29b534bd97

+ 2 - 1
platform-common/src/main/java/com/platform/common/enums/DictTypeEnum.java

@@ -32,7 +32,8 @@ public enum DictTypeEnum {
     THIRD_PARTY_YONGYOU_GETSTOCK("GETSTOCK", "存量库存接口"),
     THIRD_PARTY_YONGYOU_OTHEROUT("OTHEROUT", "出库申请单"),
     REMOTE_MEASURE("REMOTE_MEASURE", "设备遥测"),
-    REMOTE_DEGREE("REMOTE_DEGREE", "设备电度"),;
+    REMOTE_DEGREE("REMOTE_DEGREE", "设备电度"),
+    REMOTE_LINE("REMOTE_LINE", "设备线路");
     private final String type;
     private final String typeName;
 

+ 67 - 47
platform-dao/src/main/java/com/platform/dao/dto/remote/RemoteDegreeLogDTO.java

@@ -5,6 +5,7 @@ import com.platform.common.validation.group.UpdateGroup;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+
 import javax.validation.constraints.*;
 import java.io.Serializable;
 import java.time.LocalDateTime;
@@ -22,82 +23,101 @@ import java.math.BigDecimal;
 @EqualsAndHashCode(callSuper = true)
 public class RemoteDegreeLogDTO extends BaseDTO implements Serializable {
 
-      /**
+    /**
      * id
      */
-        @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
+    @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
     private String id;
-          /**
+    /**
      * 设备id
      */
-          private String sbId;
-          /**
+    private String sbId;
+    /**
      * 设备名称
      */
-          private String sbName;
-          /**
+    private String sbName;
+    /**
      * 点位
      */
-          private Integer positionNum;
-          /**
+    private Integer positionNum;
+    /**
+     * 年
+     */
+    private Integer year;
+    /**
+     * 月
+     */
+    private Integer month;
+    /**
+     * 日
+     */
+    private Integer day;
+    /**
+     * 时
+     */
+    private Integer hour;
+    /**
      * 类型
      */
-          private Integer type;
-          /**
+    private Integer type;
+    /**
      * 描述
      */
-          private String description;
-          /**
+    private String description;
+    /**
      * 实时数值
      */
-          private String result;
-          /**
+    private String result;
+    /**
      * 系数
      */
-          private BigDecimal ratio;
-          /**
+    private BigDecimal ratio;
+    /**
      * 单位
      */
-          private String unit;
-          /**
+    private String unit;
+    /**
      * 备注
      */
-          private String remark;
-          /**
+    private String remark;
+    /**
      * 创建人
      */
-          private String createdUserId;
-          /**
+    private String createdUserId;
+    /**
      * 更新人
      */
-          private String updateUserId;
-          /**
+    private String updateUserId;
+    /**
      * 创建日期
      */
-        private LocalDateTime createdTime;
-      /**
-       * 创建日期开始
-       */
-      private LocalDateTime createdTimeStart;
-      /**
-       * 创建日期结束
-       */
-      private LocalDateTime createdTimeEnd;
-          /**
+    private LocalDateTime createdTime;
+    /**
+     * 创建日期开始
+     */
+    private LocalDateTime createdTimeStart;
+    /**
+     * 创建日期结束
+     */
+    private LocalDateTime createdTimeEnd;
+    /**
      * 更新日期
      */
-        private LocalDateTime updateTime;
-      /**
-       * 更新日期开始
-       */
-      private LocalDateTime updateTimeStart;
-      /**
-       * 更新日期结束
-       */
-      private LocalDateTime updateTimeEnd;
-        /**
+    private LocalDateTime updateTime;
+    /**
+     * 更新日期开始
+     */
+    private LocalDateTime updateTimeStart;
+    /**
+     * 更新日期结束
+     */
+    private LocalDateTime updateTimeEnd;
+    /**
      * 关键字
      */
-  private String keyword;
-
+    private String keyword;
+    /**
+     * 对应设备所属线路,用于分组统计
+     */
+    private String zjm;
 }

+ 16 - 0
platform-dao/src/main/java/com/platform/dao/entity/remote/RemoteDegreeLog.java

@@ -40,6 +40,22 @@ public class RemoteDegreeLog implements Serializable{
      * 点位
      */
     private Integer positionNum;
+    /**
+     * 年
+     */
+    private Integer year;
+    /**
+     * 月
+     */
+    private Integer month;
+    /**
+     * 日
+     */
+    private Integer day;
+    /**
+     * 时
+     */
+    private Integer hour;
     /**
      * 类型
      */

+ 105 - 84
platform-dao/src/main/java/com/platform/dao/vo/export/remote/ExportRemoteDegreeLogVO.java

@@ -3,6 +3,7 @@ package com.platform.dao.vo.export.remote;
 import com.platform.office.annotation.Excel;
 import lombok.Data;
 import lombok.experimental.Accessors;
+
 import java.io.Serializable;
 import java.time.LocalDateTime;
 import java.time.LocalDate;
@@ -19,88 +20,108 @@ import java.math.BigDecimal;
 public class ExportRemoteDegreeLogVO implements Serializable {
 
     /**
-   * id
-   */
-          @Excel(name = "id", orderNum = "1")
-      private String id;
-    
-    /**
-   * 设备id
-   */
-          @Excel(name = "设备id", orderNum = "2")
-      private String sbId;
-    
-    /**
-   * 设备名称
-   */
-          @Excel(name = "设备名称", orderNum = "3")
-      private String sbName;
-    
-    /**
-   * 点位
-   */
-          @Excel(name = "点位", orderNum = "4")
-      private Integer positionNum;
-    
-    /**
-   * 类型
-   */
-          @Excel(name = "类型", orderNum = "5")
-      private Integer type;
-    
-    /**
-   * 描述
-   */
-          @Excel(name = "描述", orderNum = "6")
-      private String description;
-    
-    /**
-   * 实时数值
-   */
-          @Excel(name = "实时数值", orderNum = "7")
-      private String value;
-    
-    /**
-   * 系数
-   */
-          @Excel(name = "系数", orderNum = "8")
-      private BigDecimal ratio;
-    
-    /**
-   * 单位
-   */
-          @Excel(name = "单位", orderNum = "9")
-      private String unit;
-    
-    /**
-   * 备注
-   */
-          @Excel(name = "备注", orderNum = "10")
-      private String remark;
-    
-    /**
-   * 创建人
-   */
-          @Excel(name = "创建人", orderNum = "11")
-      private String createdUserId;
-    
-    /**
-   * 更新人
-   */
-          @Excel(name = "更新人", orderNum = "12")
-      private String updateUserId;
-    
-    /**
-   * 创建日期
-   */
-          @Excel(name = "创建日期", orderNum = "13")
-      private LocalDateTime createdTime;
-    
-    /**
-   * 更新日期
-   */
-          @Excel(name = "更新日期", orderNum = "14")
-      private LocalDateTime updateTime;
-    
-  
+     * id
+     */
+    @Excel(name = "id", orderNum = "1")
+    private String id;
+
+    /**
+     * 设备id
+     */
+    @Excel(name = "设备id", orderNum = "2")
+    private String sbId;
+
+    /**
+     * 设备名称
+     */
+    @Excel(name = "设备名称", orderNum = "3")
+    private String sbName;
+
+    /**
+     * 点位
+     */
+    @Excel(name = "点位", orderNum = "4")
+    private Integer positionNum;
+
+    /**
+     * 类型
+     */
+    @Excel(name = "类型", orderNum = "5")
+    private Integer type;
+
+    /**
+     * 描述
+     */
+    @Excel(name = "描述", orderNum = "6")
+    private String description;
+
+    /**
+     * 实时数值
+     */
+    @Excel(name = "实时数值", orderNum = "7")
+    private String value;
+
+    /**
+     * 年
+     */
+    @Excel(name = "年", orderNum = "8")
+    private Integer year;
+    /**
+     * 月
+     */
+    @Excel(name = "月", orderNum = "9")
+    private Integer month;
+    /**
+     * 日
+     */
+    @Excel(name = "日", orderNum = "10")
+    private Integer day;
+    /**
+     * 时
+     */
+    @Excel(name = "时", orderNum = "11")
+    private Integer hour;
+    /**
+     * 系数
+     */
+    @Excel(name = "系数", orderNum = "12")
+    private BigDecimal ratio;
+
+    /**
+     * 单位
+     */
+    @Excel(name = "单位", orderNum = "13")
+    private String unit;
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注", orderNum = "14")
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @Excel(name = "创建人", orderNum = "15")
+    private String createdUserId;
+
+    /**
+     * 更新人
+     */
+    @Excel(name = "更新人", orderNum = "16")
+    private String updateUserId;
+
+    /**
+     * 创建日期
+     */
+    @Excel(name = "创建日期", orderNum = "17")
+    private LocalDateTime createdTime;
+
+    /**
+     * 更新日期
+     */
+    @Excel(name = "更新日期", orderNum = "18")
+    private LocalDateTime updateTime;
+
+
 }

+ 21 - 2
platform-dao/src/main/java/com/platform/dao/vo/query/remote/RemoteDegreeLogVO.java

@@ -52,6 +52,22 @@ public class RemoteDegreeLogVO extends BaseVO implements Serializable {
      * 实时数值
      */
     private String result;
+    /**
+     * 年
+     */
+    private Integer year;
+    /**
+     * 月
+     */
+    private Integer month;
+    /**
+     * 日
+     */
+    private Integer day;
+    /**
+     * 时
+     */
+    private Integer hour;
     /**
      * 系数
      */
@@ -61,7 +77,7 @@ public class RemoteDegreeLogVO extends BaseVO implements Serializable {
      */
     private String unit;
     /**
-     * 备注
+     * 备注:保存原始点位推送的全量数据
      */
     private String remark;
     /**
@@ -80,6 +96,9 @@ public class RemoteDegreeLogVO extends BaseVO implements Serializable {
      * 更新日期
      */
     private LocalDateTime updateTime;
-
+    /**
+     * 对应设备所属线路,用于分组统计
+     */
+    private String zjm;
 
 }

+ 33 - 29
platform-dao/src/main/java/com/platform/dao/vo/query/remote/RemoteDegreeVO.java

@@ -6,6 +6,7 @@ import com.platform.common.bean.BaseDTO;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+
 import javax.validation.constraints.*;
 import java.io.Serializable;
 import java.time.LocalDateTime;
@@ -21,65 +22,68 @@ import java.math.BigDecimal;
 @Data
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
-public class RemoteDegreeVO extends BaseVO implements Serializable{
+public class RemoteDegreeVO extends BaseVO implements Serializable {
 
     /**
      * id
      */
-        private String id;
-        /**
+    private String id;
+    /**
      * 设备id
      */
-        private String sbId;
-        /**
+    private String sbId;
+    /**
      * 设备名称
      */
-        private String sbName;
-        /**
+    private String sbName;
+    /**
+     * 设备名称
+     */
+    private String sbNo;
+    /**
      * 点位
      */
-        private Integer positionNum;
-        /**
+    private Integer positionNum;
+    /**
      * 类型
      */
-        private Integer type;
-        /**
+    private Integer type;
+    /**
      * 描述
      */
-        private String description;
-        /**
+    private String description;
+    /**
      * 实时数值
      */
-        private String result;
-        /**
+    private String result;
+    /**
      * 系数
      */
-        private BigDecimal ratio;
-        /**
+    private BigDecimal ratio;
+    /**
      * 单位
      */
-        private String unit;
-        /**
+    private String unit;
+    /**
      * 备注
      */
-        private String remark;
-        /**
+    private String remark;
+    /**
      * 创建人
      */
-        private String createdUserId;
-        /**
+    private String createdUserId;
+    /**
      * 更新人
      */
-        private String updateUserId;
-        /**
+    private String updateUserId;
+    /**
      * 创建日期
      */
-        private LocalDateTime createdTime;
-        /**
+    private LocalDateTime createdTime;
+    /**
      * 更新日期
      */
-        private LocalDateTime updateTime;
-    
+    private LocalDateTime updateTime;
 
 
 }

+ 1 - 1
platform-dao/src/main/java/com/platform/dao/vo/sb/SbInfoVO.java

@@ -426,7 +426,7 @@ public class SbInfoVO extends BaseVO implements Serializable {
     private double lastBaoyangHours;//最近保养台时
     private Integer baoyangTimes;//保养次数
 
-    private String zjm;//助记码
+    private String zjm;//助记码,(改成宁德的:线路,电力设备的线路问题,在数据字典SB_LINE)
     private LocalDate spDate;//上牌日期
     private String jbdh;//交保单号
     private LocalDate jbdDate;//交保到期日

+ 29 - 2
platform-dao/src/main/resources/mapper/remote/RemoteDegreeLogMapper.xml

@@ -12,6 +12,10 @@
                                      degree_log.ratio,
                                      degree_log.unit,
                                      degree_log.remark,
+                                     degree_log.year,
+                                     degree_log.month,
+                                     degree_log.day,
+                                     degree_log.hour,
                                      degree_log.created_user_id,
                                      degree_log.update_user_id,
                                      degree_log.created_time,
@@ -24,6 +28,10 @@
                                      degree_log.type,
                                      degree_log.description,
                                      degree_log.result,
+                                     degree_log.year,
+                                     degree_log.month,
+                                     degree_log.day,
+                                     degree_log.hour,
                                      degree_log.ratio,
                                      degree_log.unit,
                                      degree_log.remark,
@@ -35,6 +43,18 @@
         <if test="sbId != null and sbId != ''">
             and degree_log.sb_id = #{sbId}
         </if>
+        <if test="year != null">
+            and degree_log.year = #{year}
+        </if>
+        <if test="month != null">
+            and degree_log.month = #{month}
+        </if>
+        <if test="day != null">
+            and degree_log.day = #{day}
+        </if>
+        <if test="hour != null">
+            and degree_log.hour = #{hour}
+        </if>
         <if test="sbName != null and sbName != ''">
             and degree_log.sb_name = #{sbName}
         </if>
@@ -84,15 +104,22 @@
             and degree_log.update_time = #{updateTime}
         </if>
         <if test="keyword != null and keyword != ''">
-            and degree_log.id like concat(concat('%',#{keyword}),'%')
+            and (
+            degree_log.id like concat(concat('%',#{keyword}),'%')
+            or degree_log.position_num like concat(concat('%',#{keyword}),'%')
+            )
         </if>
     </sql>
     <select id="selectList" parameterType="com.platform.dao.dto.remote.RemoteDegreeLogDTO"
             resultType="com.platform.dao.vo.query.remote.RemoteDegreeLogVO">
-        select degree_log.*
+        select degree_log.*, sbInfo.zjm, sbInfo.no sbNo
         from t_remote_degree_log as degree_log
+        left join t_sb_info sbInfo on degree_log.sb_id = sbInfo.id
         <where>
             <include refid="List_Condition"/>
+            <if test="zjm != null">
+                and sbInfo.zjm = #{zjm}
+            </if>
         </where>
     </select>
 </mapper>

+ 6 - 2
platform-dao/src/main/resources/mapper/remote/RemoteDegreeMapper.xml

@@ -90,13 +90,17 @@
             and degree.update_time = #{updateTime}
         </if>
         <if test="keyword != null and keyword != ''">
-            and degree.id like concat(concat('%',#{keyword}),'%')
+            and (
+            degree.id like concat(concat('%',#{keyword}),'%')
+            or degree.position_num like concat(concat('%',#{keyword}),'%')
+            }
         </if>
     </sql>
     <select id="selectList" parameterType="com.platform.dao.dto.remote.RemoteDegreeDTO"
             resultType="com.platform.dao.vo.query.remote.RemoteDegreeVO">
-        select degree.*
+        select degree.*, sbInfo.name sbName, sbInfo.no sbNo
         from t_remote_degree as degree
+        left join t_sb_info sbInfo on degree.sb_id = sbInfo.id
         <where>
             <include refid="List_Condition"/>
         </where>

+ 6 - 2
platform-dao/src/main/resources/mapper/remote/RemoteMeasureMapper.xml

@@ -90,13 +90,17 @@
             and measure.update_time = #{updateTime}
         </if>
         <if test="keyword != null and keyword != ''">
-            and measure.id like concat(concat('%',#{keyword}),'%')
+            and (
+            measure.id like concat(concat('%',#{keyword}),'%')
+            or measure.position_num like concat(concat('%',#{keyword}),'%')
+            )
         </if>
     </sql>
     <select id="selectList" parameterType="com.platform.dao.dto.remote.RemoteMeasureDTO"
             resultType="com.platform.dao.vo.query.remote.RemoteMeasureVO">
-        select measure.*
+        select measure.*, sbInfo.name sbName, sbInfo.no sbNo
         from t_remote_measure as measure
+        left join t_sb_info sbInfo on measure.sb_id = sbInfo.id
         <where>
             <include refid="List_Condition"/>
         </where>

+ 92 - 81
platform-rest/src/main/java/com/platform/rest/controller/remote/RemoteDegreeLogController.java

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
 import lombok.AllArgsConstructor;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.rest.log.annotation.SysLog;
+
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
@@ -30,61 +31,60 @@ import javax.servlet.http.HttpServletResponse;
 @RequestMapping("/remote/degree-logs")
 public class RemoteDegreeLogController {
 
-  private final  RemoteDegreeLogService remoteDegreeLogService;
+    private final RemoteDegreeLogService remoteDegreeLogService;
 
-  /**
-   * 通过id查询单条记录
-   *
-   * @param id 主键
-   * @return R
-   */
-  @GetMapping("/{id}")
-  public R<RemoteDegreeLog> getById(@PathVariable("id") String id){
-      return new R<>(remoteDegreeLogService.getModelById(id));
-  }
+    /**
+     * 通过id查询单条记录
+     *
+     * @param id 主键
+     * @return R
+     */
+    @GetMapping("/{id}")
+    public R<RemoteDegreeLog> getById(@PathVariable("id") String id) {
+        return new R<>(remoteDegreeLogService.getModelById(id));
+    }
 
-  /**
-   * 新增记录
-   *
-   * @param remoteDegreeLogDTO 设备电度记录表DTO
-   * @return R
-   */
-  @SysLog("新增设备电度记录表")
-  @PostMapping
-  @PreAuthorize("@pms.hasPermission('remote-degree-logs-add')")
-  public R save(@Validated({AddGroup.class}) @RequestBody RemoteDegreeLogDTO remoteDegreeLogDTO) {
-      return new R<>(remoteDegreeLogService.saveModelByDTO(remoteDegreeLogDTO));
-  }
+    /**
+     * 新增记录
+     *
+     * @param remoteDegreeLogDTO 设备电度记录表DTO
+     * @return R
+     */
+    @SysLog("新增设备电度记录表")
+    @PostMapping
+    @PreAuthorize("@pms.hasPermission('remote-degree-logs-add')")
+    public R save(@Validated({AddGroup.class}) @RequestBody RemoteDegreeLogDTO remoteDegreeLogDTO) {
+        return new R<>(remoteDegreeLogService.saveModelByDTO(remoteDegreeLogDTO));
+    }
 
-  /**
-   * 修改记录
-   *
-   * @param remoteDegreeLogDTO 设备电度记录表DTO
-   * @return R
-   */
-  @SysLog("修改设备电度记录表")
-  @PutMapping("/{id}")
-  @PreAuthorize("@pms.hasPermission('remote-degree-logs-edit')")
-  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody RemoteDegreeLogDTO remoteDegreeLogDTO) {
-      remoteDegreeLogService.modModelByDTO(remoteDegreeLogDTO);
-      return new R<>();
-  }
+    /**
+     * 修改记录
+     *
+     * @param remoteDegreeLogDTO 设备电度记录表DTO
+     * @return R
+     */
+    @SysLog("修改设备电度记录表")
+    @PutMapping("/{id}")
+    @PreAuthorize("@pms.hasPermission('remote-degree-logs-edit')")
+    public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody RemoteDegreeLogDTO remoteDegreeLogDTO) {
+        remoteDegreeLogService.modModelByDTO(remoteDegreeLogDTO);
+        return new R<>();
+    }
 
 
-                                                                                      
-  /**
-   * 通过id删除一条记录
-   *
-   * @param id 主键
-   * @return R
-   */
-  @SysLog("删除设备电度记录表")
-  @DeleteMapping("/{id}")
-  @PreAuthorize("@pms.hasPermission('remote-degree-logs-del')")
-  public R removeById(@PathVariable String id){
-    remoteDegreeLogService.deleteByPrimaryKey(id);
-    return new R<>();
-  }
+    /**
+     * 通过id删除一条记录
+     *
+     * @param id 主键
+     * @return R
+     */
+    @SysLog("删除设备电度记录表")
+    @DeleteMapping("/{id}")
+    @PreAuthorize("@pms.hasPermission('remote-degree-logs-del')")
+    public R removeById(@PathVariable String id) {
+        remoteDegreeLogService.deleteByPrimaryKey(id);
+        return new R<>();
+    }
 
     /**
      * 批量记录
@@ -95,47 +95,58 @@ public class RemoteDegreeLogController {
     @SysLog("批量删除设备电度记录表")
     @DeleteMapping("")
     @PreAuthorize("@pms.hasPermission('remote-degree-logs-del')")
-    public R removeIds(@RequestBody List<String> ids){
+    public R removeIds(@RequestBody List<String> ids) {
         remoteDegreeLogService.batchDelete(ids);
         return new R<>();
     }
 
-  /**
-   * 获取分页
-   *
-   * @param pageNum 当前页码
-   * @param pageSize 每页条数
-   * @param remoteDegreeLogDTO 设备电度记录表DTO
-   * @return R
-   */
-  @GetMapping("/page")
-  public R<AbstractPageResultBean<RemoteDegreeLogVO>> query(RemoteDegreeLogDTO remoteDegreeLogDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
-      return new R<>(remoteDegreeLogService.selectPageList(remoteDegreeLogDTO, pageNum, pageSize));
-  }
+    /**
+     * 获取分页
+     *
+     * @param pageNum            当前页码
+     * @param pageSize           每页条数
+     * @param remoteDegreeLogDTO 设备电度记录表DTO
+     * @return R
+     */
+    @GetMapping("/page")
+    public R<AbstractPageResultBean<RemoteDegreeLogVO>> query(RemoteDegreeLogDTO remoteDegreeLogDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+        return new R<>(remoteDegreeLogService.selectPageList(remoteDegreeLogDTO, pageNum, pageSize));
+    }
 
-  /**
-   * 获取列表
-   *
-   * @param remoteDegreeLogDTO 设备电度记录表DTO
-   * @return R
-   */
-  @GetMapping("")
-  public R query(RemoteDegreeLogDTO remoteDegreeLogDTO) {
-      return new R<>(remoteDegreeLogService.getModelListByDTO(remoteDegreeLogDTO));
-  }
+    /**
+     * 获取列表
+     *
+     * @param remoteDegreeLogDTO 设备电度记录表DTO
+     * @return R
+     */
+    @GetMapping("")
+    public R query(RemoteDegreeLogDTO remoteDegreeLogDTO) {
+        return new R<>(remoteDegreeLogService.getModelListByDTO(remoteDegreeLogDTO));
+    }
 
-  /**
+    /**
+     * 月报表,日报表
+     *
+     * @param remoteDegreeLogDTO 设备电度记录表DTO
+     * @return R
+     */
+    @GetMapping("/report/{isDay}")
+    public R queryMonthOrDay(RemoteDegreeLogDTO remoteDegreeLogDTO, @PathVariable("id") Integer isDay) {
+        return new R<>(remoteDegreeLogService.getMonthOrDayReport(remoteDegreeLogDTO, isDay == 1 ? true : false));
+    }
+
+    /**
      * 设备电度记录表导出
      *
      * @param remoteDegreeLogDTO 设备电度记录表DTO
      * @return R
      */
-  @GetMapping("/export")
-  @SysLog("设备电度记录表导出")
-  @PreAuthorize("@pms.hasPermission('remote-degree-logs-export')")
-  public void export(HttpServletResponse response, RemoteDegreeLogDTO remoteDegreeLogDTO) {
-    List<RemoteDegreeLog> list = remoteDegreeLogService.getModelListByDTO(remoteDegreeLogDTO);
-    ExcelUtil.exportResponseDict(response, ExportRemoteDegreeLogVO.class, BeanConverterUtil.copyListProperties(list, ExportRemoteDegreeLogVO.class), "设备电度记录表");
-  }
+    @GetMapping("/export")
+    @SysLog("设备电度记录表导出")
+    @PreAuthorize("@pms.hasPermission('remote-degree-logs-export')")
+    public void export(HttpServletResponse response, RemoteDegreeLogDTO remoteDegreeLogDTO) {
+        List<RemoteDegreeLog> list = remoteDegreeLogService.getModelListByDTO(remoteDegreeLogDTO);
+        ExcelUtil.exportResponseDict(response, ExportRemoteDegreeLogVO.class, BeanConverterUtil.copyListProperties(list, ExportRemoteDegreeLogVO.class), "设备电度记录表");
+    }
 
 }

+ 4 - 1
platform-service/src/main/java/com/platform/service/remote/RemoteDegreeLogService.java

@@ -39,4 +39,7 @@ public interface RemoteDegreeLogService extends IBaseService<RemoteDegreeLog, Re
      * @param result:
      * @return :
      */
-    void addByPositionNum(Integer positionNum, String result) ;                                                                                                                     }
+    void addByPositionNum(Integer positionNum, String result) ;
+
+    Object getMonthOrDayReport(RemoteDegreeLogDTO remoteDegreeLogDTO, Boolean isDay);
+}

+ 137 - 1
platform-service/src/main/java/com/platform/service/remote/impl/RemoteDegreeLogServiceImpl.java

@@ -1,8 +1,19 @@
 package com.platform.service.remote.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.cache.ConfigCache;
+import com.platform.common.enums.DictTypeEnum;
+import com.platform.common.exception.BusinessException;
 import com.platform.common.util.IdGeneratorUtils;
 import com.platform.dao.bean.MyPage;
 import com.github.pagehelper.PageHelper;
+import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
+import com.platform.dao.entity.upms.SysDict;
+import com.platform.dao.enums.SysConfigEnum;
+import com.platform.dao.enums.YesNoEnum;
+import com.platform.dao.mapper.upms.SysDictMapper;
 import com.platform.dao.vo.query.remote.RemoteDegreeLogVO;
 import com.platform.dao.dto.remote.RemoteDegreeLogDTO;
 import com.platform.dao.entity.remote.RemoteDegreeLog;
@@ -12,11 +23,15 @@ import org.springframework.cglib.core.Local;
 import org.springframework.stereotype.Service;
 import com.platform.service.base.impl.BaseServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 import lombok.AllArgsConstructor;
 
+import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.Comparator;
 import java.util.List;
 
 /**
@@ -29,6 +44,8 @@ import java.util.List;
 @Service("remoteDegreeLogService")
 public class RemoteDegreeLogServiceImpl extends BaseServiceImpl<RemoteDegreeLogMapper, RemoteDegreeLog, RemoteDegreeLogDTO> implements RemoteDegreeLogService {
 
+    private final SysDictMapper sysDictMapper;
+
     @Override
     public int batchDelete(List<String> ids) {
         Weekend<RemoteDegreeLog> weekend = new Weekend<>(RemoteDegreeLog.class);
@@ -54,10 +71,129 @@ public class RemoteDegreeLogServiceImpl extends BaseServiceImpl<RemoteDegreeLogM
         mapper.insert(remoteDegreeLog);
     }
 
+    /**
+     * 参数:
+     * 查询月报表、日报表
+     * 1:根据线路分组,线路1,线路2
+     * 2:日报表
+     * 根据年、月,日,查询出来
+     * 根据小时分组,循环24小时分组
+     * 根据线路分组:累加
+     * <p>
+     * 3:月报表
+     * 根据年、月,查询出来
+     * 根据天分组,循环到当前月有多少天,
+     * 根据月分组:累加
+     * <p>
+     * 日报格式, 月报没有negative数据
+     * [{
+     * time: “00:00”,
+     * lines: [
+     * {name:"line1", "positive ": “00:00”, "negative": “00:00”},
+     * {name:"line2", "positive": “00:00”, "negative": “00:00”},
+     * {name:"line3", "positive": “00:00”, "negative": “00:00”},
+     * {name:"line4", "positive": “00:00”, "negative": “00:00”},
+     * {name:"line5", "positive": “00:00”, "negative": “00:00”},
+     * {name:"line6", "positive": “00:00”, "negative": “00:00”},
+     * ]
+     * },
+     * {
+     * time: “01:00”,
+     * lines: [
+     * {name:"line1", "positive ": “00:00”, "negative": “00:00”},
+     * {name:"line2", "positive": “00:00”, "negative": “00:00”},
+     * {name:"line3", "positive": “00:00”, "negative": “00:00”},
+     * {name:"line4", "positive": “00:00”, "negative": “00:00”},
+     * {name:"line5", "positive": “00:00”, "negative": “00:00”},
+     * {name:"line6", "positive": “00:00”, "negative": “00:00”},
+     * ]
+     * }
+     * ]
+     *
+     * @param record
+     * @return
+     */
+    @Override
+    public Object getMonthOrDayReport(RemoteDegreeLogDTO record, Boolean isDay) {
+        if (record.getYear() == null) {
+            throw new BusinessException("请选择年份");
+        }
+        if (record.getMonth() == null) {
+            throw new BusinessException("请选择月份");
+        }
+        Weekend<SysDict> weekend = new Weekend<>(SysDict.class);
+        WeekendCriteria<SysDict, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andEqualTo(SysDict::getType, DictTypeEnum.REMOTE_LINE);
+        List<SysDict> sysDictList = sysDictMapper.selectByExample(weekend);
+        if (CollectionUtils.isEmpty(sysDictList)) {
+            throw new BusinessException("请在数据字典配置设备电力线路");
+        }
+        sysDictList.sort(Comparator.comparing(SysDict::getSort));
+        List<RemoteDegreeLogVO> list = mapper.selectList(record);
+        JSONArray jSONArray = new JSONArray();
+        if (isDay) {
+            for (int i = 0; i < 24; i++) {
+                JSONObject jsonObject = new JSONObject();
+                jsonObject.put("time", i + ":00");
+                JSONArray lineArray = new JSONArray();
+                for (SysDict dict : sysDictList) {
+                    JSONObject dictJsonObject = new JSONObject();
+                    dictJsonObject.put("name", dict.getLabel());
+                    BigDecimal positiveTotal = new BigDecimal(0.00);// 正向有功
+                    BigDecimal negativeTotal = new BigDecimal(0.00);// 正向无功
+                    for (RemoteDegreeLogVO log : list) {
+                        if (log.getHour().equals(i)) {
+                            if(log.getType().equals(YesNoEnum.YES.getValue())){
+                                positiveTotal.add(new BigDecimal(log.getResult()));
+                            }else{
+                                negativeTotal.add(new BigDecimal(log.getResult()));
+                            }
+                        }
+                    }
+                    dictJsonObject.put("positive", positiveTotal);
+                    dictJsonObject.put("negative", negativeTotal);
+                    lineArray.add(dictJsonObject);
+                }
+                jsonObject.put("lines", lineArray);
+                jSONArray.add(jsonObject);
+            }
+        } else {
+            LocalDate localDate = LocalDate.of(record.getYear(), record.getMonth(), 1);
+            int days = localDate.getDayOfMonth();
+            for (int i = 0; i < days; i++) {
+                JSONObject jsonObject = new JSONObject();
+                jsonObject.put("time", i + ":00");
+                JSONArray lineArray = new JSONArray();
+                for (SysDict dict : sysDictList) {
+                    JSONObject dictJsonObject = new JSONObject();
+                    dictJsonObject.put("name", dict.getLabel());
+                    BigDecimal positiveTotal = new BigDecimal(0.00);// 正向有功
+                    BigDecimal negativeTotal = new BigDecimal(0.00);// 正向无功,不需要吗,后面可以删除,先保存
+                    for (RemoteDegreeLogVO log : list) {
+                        if (log.getDay().equals(i)) {
+                            if(log.getType().equals(YesNoEnum.YES.getValue())){
+                                positiveTotal.add(new BigDecimal(log.getResult()));
+                            }else{
+                                negativeTotal.add(new BigDecimal(log.getResult()));
+                            }
+                        }
+                    }
+                    dictJsonObject.put("positive", positiveTotal);
+                    dictJsonObject.put("negative", negativeTotal);
+                    lineArray.add(dictJsonObject);
+                }
+                jsonObject.put("lines", lineArray);
+                jSONArray.add(jsonObject);
+            }
+        }
+
+        return null;
+    }
+
     @Override
     public AbstractPageResultBean<RemoteDegreeLog> selectPageInfo(RemoteDegreeLogDTO record, int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
         return new MyPage(mapper.selectList(record));
     }
 
-                                                                                                                                                                            }
+}