Pārlūkot izejas kodu

Merge branch 'energy-manage-chy'

# Conflicts:
#	energy-manage-common/src/main/java/com/energy/manage/common/enums/IdPrefixEnum.java
#	energy-manage-service/src/main/java/com/energy/manage/service/controller/windenginegroup/WindEngineGroupController.java
#	energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/anemometertower/AnemometerTowerCreateDto.java
#	energy-manage-service/src/main/java/com/energy/manage/service/service/windenginegroup/WindEngineGroupService.java
#	energy-manage-service/src/main/java/com/energy/manage/service/service/windenginegroup/impl/WindEngineGroupServiceImpl.java
#	energy-manage-service/src/main/resources/bootstrap.properties
chenhongyan1989 1 gadu atpakaļ
vecāks
revīzija
6711356a86
100 mainītis faili ar 5149 papildinājumiem un 531 dzēšanām
  1. 2 1
      energy-manage-common/src/main/java/com/energy/manage/common/enums/IdPrefixEnum.java
  2. 67 0
      energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisCommentDescriptionPo.java
  3. 64 0
      energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisCommentTypeRelationPo.java
  4. 59 0
      energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisDiagramRelationPo.java
  5. 54 0
      energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisGeneralFilePo.java
  6. 71 0
      energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisResultPo.java
  7. 48 0
      energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisTypePo.java
  8. 69 0
      energy-manage-common/src/main/java/com/energy/manage/common/po/datatransfer/DataTransferHistoryPo.java
  9. 86 0
      energy-manage-common/src/main/java/com/energy/manage/common/po/datatransfer/DataTransferPo.java
  10. 38 0
      energy-manage-common/src/main/java/com/energy/manage/common/po/datatransfer/DataTransferTypePo.java
  11. 70 0
      energy-manage-common/src/main/java/com/energy/manage/common/po/windexceptioncount/WindExceptionCountPo.java
  12. 72 0
      energy-manage-common/src/main/java/com/energy/manage/common/po/windfieldbatch/WindFieldBatchPo.java
  13. 10 0
      energy-manage-common/src/main/java/com/energy/manage/common/reponse/ConstVar.java
  14. 5 0
      energy-manage-common/src/main/java/com/energy/manage/common/reponse/ResultResp.java
  15. 43 495
      energy-manage-common/src/main/java/com/energy/manage/common/util/HttpUtils.java
  16. 7 7
      energy-manage-service/pom.xml
  17. 16 16
      energy-manage-service/src/main/java/com/energy/manage/service/config/xxl/XxlJobConfig.java
  18. 30 0
      energy-manage-service/src/main/java/com/energy/manage/service/constant/analysis/AnalysisConstants.java
  19. 82 0
      energy-manage-service/src/main/java/com/energy/manage/service/controller/analysis/AnalysisController.java
  20. 66 0
      energy-manage-service/src/main/java/com/energy/manage/service/controller/analysiscomment/AnalysisCommentController.java
  21. 68 0
      energy-manage-service/src/main/java/com/energy/manage/service/controller/analysiser/AnalysisErrController.java
  22. 101 0
      energy-manage-service/src/main/java/com/energy/manage/service/controller/base/BaseServiceController.java
  23. 68 0
      energy-manage-service/src/main/java/com/energy/manage/service/controller/datatransfer/DataTransferController.java
  24. 33 0
      energy-manage-service/src/main/java/com/energy/manage/service/controller/system/SysOrganizationAuthController.java
  25. 0 2
      energy-manage-service/src/main/java/com/energy/manage/service/controller/system/SysUserInfoController.java
  26. 13 1
      energy-manage-service/src/main/java/com/energy/manage/service/controller/windenginegroup/WindEngineGroupController.java
  27. 72 0
      energy-manage-service/src/main/java/com/energy/manage/service/controller/windfieldbatch/WindFieldBatchController.java
  28. 28 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisAlgorithmDto.java
  29. 41 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisCommentDescriptionDto.java
  30. 57 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisCommentTypeRelationDto.java
  31. 50 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisDiagramRelationDto.java
  32. 89 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisDto.java
  33. 45 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisGeneralFileDto.java
  34. 57 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisResultDto.java
  35. 33 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisTypeDto.java
  36. 23 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/CommentDto.java
  37. 29 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/ConfigAnalysisDto.java
  38. 35 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/CustomFilterDto.java
  39. 24 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/CustomerFilterItemDto.java
  40. 43 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/DataContractDto.java
  41. 24 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/DataContractTypeDto.java
  42. 51 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/DataFilterDto.java
  43. 25 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/DataSourceDto.java
  44. 47 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/GraphSetsDto.java
  45. 27 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/GraphSetsItemDto.java
  46. 45 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/datatransfer/DataTransferDto.java
  47. 22 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/datatransfer/DataTransferTypePathDto.java
  48. 58 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windexceptioncount/WindExceptionCountDto.java
  49. 75 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windfieldbatch/WindFieldBatchDto.java
  50. 64 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisCommentDescriptionVo.java
  51. 52 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisCommentTypeRelationVo.java
  52. 47 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisDetailVo.java
  53. 55 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisDiagramRelationVo.java
  54. 45 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisGeneralFileVo.java
  55. 28 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisResultShowVo.java
  56. 67 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisResultVo.java
  57. 32 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisTypeVo.java
  58. 25 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/datatransfer/DataTransferQueryAndAddVo.java
  59. 22 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/datatransfer/DataTransferTypeVo.java
  60. 65 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/datatransfer/DataTransferVo.java
  61. 54 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windexceptioncount/WindExceptionCountVo.java
  62. 41 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windfieldbatch/WindFieldBatchVo.java
  63. 50 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisCommentDescriptionMapper.java
  64. 51 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisCommentTypeRelationMapper.java
  65. 25 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisDiagramRelationMapper.java
  66. 25 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisGeneralFileMapper.java
  67. 35 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisResultMapper.java
  68. 31 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisTypeMapper.java
  69. 65 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/datatransfer/DataTransferMapper.java
  70. 17 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/datatransferhistory/DataTransferHistoryMapper.java
  71. 24 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/datatransfertype/DataTransferTypeMapper.java
  72. 4 6
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/system/SysOrganizationAuthMapper.java
  73. 15 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/windenginegroup/WindEngineGroupMapper.java
  74. 42 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/windexceptioncount/WindExceptionCountMapper.java
  75. 45 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/windfieldbatch/WindFieldBatchMapper.java
  76. 57 0
      energy-manage-service/src/main/java/com/energy/manage/service/property/analysis/AlgorithmProperties.java
  77. 55 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/AnalysisService.java
  78. 347 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/impl/AnalysisServiceImpl.java
  79. 48 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/analysiscomment/AnalysisCommentService.java
  80. 131 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/analysiscomment/impl/AnalysisCommentServiceImpl.java
  81. 48 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/analysiserr/AnalysisErrService.java
  82. 78 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/analysiserr/impl/AnalysisErrServiceImpl.java
  83. 49 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/datatransfer/DataTransferService.java
  84. 240 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/datatransfer/impl/DataTransferServiceImpl.java
  85. 23 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/system/SysOrganizationAuthService.java
  86. 45 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/system/impl/SysOrganizationAuthServiceImpl.java
  87. 9 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/windenginegroup/WindEngineGroupService.java
  88. 8 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/windenginegroup/impl/WindEngineGroupServiceImpl.java
  89. 47 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/windfieldbatch/WindFieldBatchService.java
  90. 92 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/windfieldbatch/impl/WindFieldBatchServiceImpl.java
  91. 34 0
      energy-manage-service/src/main/java/com/energy/manage/service/task/AutoAnalysisTask.java
  92. 107 0
      energy-manage-service/src/main/java/com/energy/manage/service/test/TestClass.java
  93. 203 0
      energy-manage-service/src/main/java/com/energy/manage/service/test/TestJson.java
  94. 0 2
      energy-manage-service/src/main/java/com/energy/manage/service/util/JwtUtil.java
  95. 15 0
      energy-manage-service/src/main/java/com/energy/manage/service/util/TreeUtil.java
  96. 11 1
      energy-manage-service/src/main/resources/bootstrap.properties
  97. 93 0
      energy-manage-service/src/main/resources/mybatis/analysis/AnalysisCommentDescriptionMapper.xml
  98. 84 0
      energy-manage-service/src/main/resources/mybatis/analysis/AnalysisCommentTypeRelationMapper.xml
  99. 31 0
      energy-manage-service/src/main/resources/mybatis/analysis/AnalysisDiagramRelationMapper.xml
  100. 26 0
      energy-manage-service/src/main/resources/mybatis/analysis/AnalysisGeneralFileMapper.xml

+ 2 - 1
energy-manage-common/src/main/java/com/energy/manage/common/enums/IdPrefixEnum.java

@@ -10,7 +10,8 @@ public enum IdPrefixEnum {
     WIND_FIELD_NUMBER("WOF", "风场信息编号"),
     WIND_GROUP_NUMBER("WOG", "风机信息编号"),
     WIND_EILL_NUMBER("WEM", "风机机型编号"),
-    WIND_TOWER_NUMBER("WOT", "测风塔信息编号");
+    WIND_TOWER_NUMBER("WOT", "测风塔信息编号"),
+    WIND_ENGINE_BATCH_NUMBER("WOB","风机批次编号");
 
     IdPrefixEnum(String code, String name) {
         this.code = code;

+ 67 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisCommentDescriptionPo.java

@@ -0,0 +1,67 @@
+package com.energy.manage.common.po.analysis;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 分析富文本描述
+ * @author chy
+ * @date 2024/5/23 12:56
+ * @desc
+ */
+@Table(name = "analysis_comment_description")
+@Data
+@Accessors(chain = true)
+public class AnalysisCommentDescriptionPo {
+
+    /**
+     * 主键
+     */
+    private Long id ;
+
+    /**
+     * 批次编号
+     */
+    private String batchCode ;
+
+    /**
+     * 分析类型编号
+     */
+    private String analysisTypeCode ;
+
+    /**
+     * 评论类型名称
+     */
+    private String commentTypeCode ;
+
+    /**
+     * 富文本内容
+     */
+    private String comment ;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime ;
+
+    /**
+     * 创建人
+     */
+    private Integer createBy ;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime ;
+
+    /**
+     * 更新人
+     */
+    private Integer updateBy ;
+}

+ 64 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisCommentTypeRelationPo.java

@@ -0,0 +1,64 @@
+package com.energy.manage.common.po.analysis;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 分析评论类型关联
+ * @author chy
+ * @date 2024/5/23 12:53
+ * @desc
+ */
+@Table(name = "analysis_comment_type_relation")
+@Data
+public class AnalysisCommentTypeRelationPo {
+
+    /**
+     * 主键
+     */
+     private Long id;
+
+    /**
+     * 批次编号
+     */
+    private String batchCode;
+
+    /**
+     * 分析类型编号
+     */
+    private String analysisTypeCode;
+
+    /**
+     * 评论类型标号
+     */
+    private String commentTypeCode;
+
+    /**
+     * 评论类型名称
+     */
+    private String commentTypeName;
+
+    /**
+     * 是否自定义 0:否 1:是
+     */
+    private Integer isDefined;
+
+    /**
+     * 是否删除 0:否 1:是
+     */
+    private Integer isDelete;
+
+    /**
+     * 创建人
+     */
+    private Integer createBy;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+}

+ 59 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisDiagramRelationPo.java

@@ -0,0 +1,59 @@
+package com.energy.manage.common.po.analysis;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 分析结果图文关系表
+ * @author chy
+ * @date 2024/5/23 12:52
+ * @desc
+ */
+@Table(name = "analysis_diagram_relation")
+@Data
+public class AnalysisDiagramRelationPo {
+
+    /**
+     * 主键
+     */
+    private Long id ;
+
+    /**
+     * 批次编号
+     */
+    private String batchCode ;
+
+    /**
+     * 风机编号
+     */
+    private String fieldEngineCode ;
+
+    /**
+     * 分析类型编号
+     */
+    private String analysisTypeCode ;
+
+    /**
+     * 分析结果地址minio
+     */
+    private String fileAddr ;
+
+    /**
+     * 是否自动分析 0: 不自动分析 1: 自动分析
+     */
+    private Integer autoAnalysis ;
+
+    /**
+     * 创建人
+     */
+    private Integer createBy ;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime ;
+}

+ 54 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisGeneralFilePo.java

@@ -0,0 +1,54 @@
+package com.energy.manage.common.po.analysis;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 分析结果总图表
+ * @author chy
+ * @date 2024/5/23 12:55
+ * @desc
+ */
+@Table(name = "analysis_general_file")
+@Data
+public class AnalysisGeneralFilePo {
+
+    /**
+     * 主键
+     */
+    private Long id ;
+
+    /**
+     * 批次号
+     */
+    private Integer batchCode ;
+
+    /**
+     * 分析类型编号
+     */
+    private String analysisTypeCode ;
+
+    /**
+     * 总文件地址minIO
+     */
+    private String fileAddr ;
+
+    /**
+     * 是否自动分析 0:手动 1自动
+     */
+    private Integer autoAnalysis ;
+
+    /**
+     * 创建人
+     */
+    private Integer createBy ;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime ;
+}

+ 71 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisResultPo.java

@@ -0,0 +1,71 @@
+package com.energy.manage.common.po.analysis;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 分析结果
+ * @author chy
+ * @date 2024/5/23 12:50
+ * @desc
+ */
+@Table(name = "analysis_result")
+@Data
+public class AnalysisResultPo {
+
+    /**
+     * 主键
+     */
+    private Long id ;
+
+    /**
+     * 批次编号
+     */
+    private String batchCode ;
+
+    /**
+     * 分析状态
+     */
+    private Integer analysisState ;
+
+    /**
+     * 异常状态
+     */
+    private Integer errState ;
+
+    /**
+     * 异常编号
+     */
+    private String errCode ;
+
+    /**
+     * 异常信息
+     */
+    private String errInfo ;
+
+    /**
+     * 创建人
+     */
+    private Integer createBy ;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime ;
+
+    /**
+     *  更新人
+     */
+    private Integer updateBy ;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime ;
+
+}

+ 48 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisTypePo.java

@@ -0,0 +1,48 @@
+package com.energy.manage.common.po.analysis;
+
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 分析类型表
+ * @author chy
+ * @date 2024/5/23 12:51
+ * @desc
+ */
+@Table(name = "analysis_type")
+@Data
+public class AnalysisTypePo {
+
+    /**
+     * 主键
+     */
+    private Long id ;
+
+    /**
+     * 分析类型父级编号
+     */
+    private String parentId ;
+
+    /**
+     * 分析类型编号
+     */
+    private String typeCode ;
+
+    /**
+     * 分析类型名称
+     */
+    private String typeName ;
+
+    /**
+     * 创建人
+     */
+    private Integer createBy ;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime ;
+
+}

+ 69 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/datatransfer/DataTransferHistoryPo.java

@@ -0,0 +1,69 @@
+package com.energy.manage.common.po.datatransfer;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Builder;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 数据转换历史表
+ * @author chy
+ * @date 2024/5/20 14:21
+ * @desc
+ */
+
+@Table(name = "data_transfer_history")
+@Data
+public class DataTransferHistoryPo {
+
+    /**
+     *  主键
+     */
+    private Long id ;
+
+    /**
+     * 批次编号
+     */
+    private String batchCode ;
+
+
+    /**
+     * 转换类型
+     */
+    private String transferType ;
+
+    /**
+     * 机组数量
+     */
+    private Integer enginCount ;
+
+    /**
+     * 转换地址
+     */
+    private String transferFileAddr ;
+
+
+    /**
+     * 异常信息
+     */
+    private String errInfo ;
+
+    /**
+     * 转换异常时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date transferFinishTime ;
+
+    /**
+     * 转换操作人
+     */
+    private Integer optionBy ;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime ;
+}

+ 86 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/datatransfer/DataTransferPo.java

@@ -0,0 +1,86 @@
+package com.energy.manage.common.po.datatransfer;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 数据转换基本类
+ * @author chy
+ * @date 2024/5/20 14:13
+ * @desc
+ */
+@Table(name = "date_tansfer")
+@Data
+public class DataTransferPo {
+
+    /**
+     * 主键
+     */
+    private Long id ;
+
+    /**
+     * 风场编号
+     */
+    private String fieldCode ;
+
+    /**
+     * 批次编号
+     */
+    private String batchCode ;
+
+    /**
+     * 机组数量
+     */
+    private Integer engineCount ;
+
+    /**
+     * 转换类型
+     */
+    private String transferType ;
+
+    /**
+     * 转换路径
+     */
+    private String transferFileAddr ;
+
+    /**
+     * 异常信息
+     */
+    private String errInfo ;
+
+    /**
+     * 转换时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date transferFinishTime ;
+
+    /**
+     * 转换状态
+     */
+    private int transferState ;
+
+    /**
+     * 创建人
+     */
+    private Integer createBy ;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime ;
+
+    /**
+     * 更新人
+     */
+    private Integer updateBy ;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime ;
+}

+ 38 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/datatransfer/DataTransferTypePo.java

@@ -0,0 +1,38 @@
+package com.energy.manage.common.po.datatransfer;
+
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 数据转换类型表
+ * @author chy
+ * @date 2024/5/20 14:57
+ * @desc
+ */
+@Table(name= "data_transfer_type")
+@Data
+public class DataTransferTypePo {
+
+    /**
+     * 主键
+     */
+    private Long id ;
+
+    /**
+     * 转换类型
+     */
+    private String transferType ;
+
+    /**
+     * 类型名称
+     */
+    private String transferTypeName ;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime ;
+
+}

+ 70 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/windexceptioncount/WindExceptionCountPo.java

@@ -0,0 +1,70 @@
+package com.energy.manage.common.po.windexceptioncount;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 分析异常数据
+ * @author chy
+ * @date 2024/5/23 17:33
+ * @desc
+ */
+@Table(name = "wind_exception_count")
+@Data
+public class WindExceptionCountPo {
+
+    /**
+     * 主键
+     */
+    private Long id ;
+
+    /**
+     * 批次编号
+     */
+    private String batchCode ;
+
+    /**
+     * 风机编号
+     */
+    private String enginCode ;
+
+    /**
+     * 分析类型编号
+     */
+    private String analysisTypeCode ;
+
+    /**
+     * 异常数目
+     */
+    private Integer errCount ;
+
+    /**
+     * 处理异常数
+     */
+    private Integer handleErrCount ;
+
+    /**
+     * 创建人
+     */
+    private Integer createBy ;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime ;
+
+    /**
+     * 更新人
+     */
+    private Integer updateBy ;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime ;
+}

+ 72 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/windfieldbatch/WindFieldBatchPo.java

@@ -0,0 +1,72 @@
+package com.energy.manage.common.po.windfieldbatch;
+
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 批次信息
+ * @author chy
+ * @date 2024/5/21 10:53
+ * @desc
+ */
+@Table(name = "wind_engine_batch")
+@Data
+public class WindFieldBatchPo {
+
+    /**
+     *  主键
+     */
+    private Integer id ;
+
+    /**
+     * 批次编号
+     */
+    private String batchCode ;
+
+    /**
+     * 批次名称
+     */
+    private String batchName ;
+
+    /**
+     * 风场编号
+     */
+    private String fieldCode ;
+
+    /**
+     * 风场名称
+     */
+    private String fieldName;
+
+    /**
+     * 批次状态 1:启用 0:停用
+     */
+    private Integer batchState ;
+
+    /**
+     * 是否删除 0:否  1:是
+     */
+    private Integer isDelete;
+
+    /**
+     * 创建人
+     */
+    private String createBy ;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime ;
+
+    /**
+     * 更新人
+     */
+    private String updateBy ;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime ;
+}

+ 10 - 0
energy-manage-common/src/main/java/com/energy/manage/common/reponse/ConstVar.java

@@ -77,6 +77,16 @@ public enum ConstVar {
   TOOLS_PHONE_REGEXP(510002, "手机号码格式不正确"),
   TOOLS_HAS_WHITE(510003, "该用户已在白名单"),
 
+  DATA_TRANSFER_TYPE_EMPTY(610001, "数据转换类型初始化数据不能为空"),
+  DATA_TRANSFERING(610002, "系统中存在正在转换的数据,请稍后操作数据转换"),
+
+  SAME_WIND_ENGINE_ERR_INFO(710001, "同一批次该机组存在相同分析类型的异常描述信息,不能重复添加"),
+
+  NO_DIFINED_TYPE(810001, "非自定义评论类型,不能删除"),
+
+  DUPLICATE_TYPE_NAME(810002, "该评论类型已存在,不能添加"),
+
+  ANALYSISING(910001, "当前有批次正在进行分析,请稍后重试"),
 
   //测评小程序
   PAPER_USER_UNBELONG_TO(3000,"哎呀,该测评已经被其他用户绑定过了,您无法进行查看~"),

+ 5 - 0
energy-manage-common/src/main/java/com/energy/manage/common/reponse/ResultResp.java

@@ -88,6 +88,10 @@ public class ResultResp<T> {
     return ResultResp.buildResponse(code, msg, null, false);
   }
 
+  public static ResultResp FAIL(ConstVar constVar) {
+    return ResultResp.buildResponse(constVar.getCode(), constVar.getMsg(), null, false);
+  }
+
 
   /**
    * 密码错误
@@ -170,4 +174,5 @@ public class ResultResp<T> {
   public static ResultResp FAILException() {
     return ResultResp.buildResponse(ConstVar.FAIL.getCode(), "系统错误,请联系管理员", null, false);
   }
+
 }

+ 43 - 495
energy-manage-common/src/main/java/com/energy/manage/common/util/HttpUtils.java

@@ -1,495 +1,43 @@
-//package com.energy.manage.common.util;
-//
-//import com.alibaba.fastjson.JSONObject;
-//import org.apache.http.HttpEntity;
-//import org.apache.http.HttpResponse;
-//import org.apache.http.HttpStatus;
-//import org.apache.http.NameValuePair;
-//import org.apache.http.client.entity.UrlEncodedFormEntity;
-//import org.apache.http.client.methods.*;
-//import org.apache.http.client.utils.URIBuilder;
-//import org.apache.http.entity.StringEntity;
-//import org.apache.http.impl.client.CloseableHttpClient;
-//import org.apache.http.impl.client.DefaultHttpClient;
-//import org.apache.http.impl.client.HttpClients;
-//import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
-//import org.apache.http.message.BasicNameValuePair;
-//import org.apache.http.util.EntityUtils;
-//import org.slf4j.Logger;
-//import org.slf4j.LoggerFactory;
-//import org.springframework.util.CollectionUtils;
-//import org.springframework.util.StringUtils;
-//
-//import javax.servlet.http.HttpServletRequest;
-//import java.io.*;
-//import java.net.URISyntaxException;
-//import java.net.URL;
-//import java.net.URLConnection;
-//import java.net.URLDecoder;
-//import java.util.ArrayList;
-//import java.util.List;
-//import java.util.Map;
-//
-///**
-// * @author LIKE
-// * @date 2017年1月18日 下午6:07:06
-// */
-//public class HttpUtils {
-//    private static Logger logger = LoggerFactory.getLogger(HttpUtils.class);
-//    private static PoolingHttpClientConnectionManager cm;
-//    private static String DEFAULT_ENCODING = "UTF-8";
-//    private final static int CONNECT_TIMEOUT = 5000;
-//
-//    private static void init() {
-//        if (cm == null) {
-//            cm = new PoolingHttpClientConnectionManager();
-//            // 整个链接池最大链接数
-//            cm.setMaxTotal(50);
-//            // 每个路由最大链接数,默认是2
-//            cm.setDefaultMaxPerRoute(5);
-//        }
-//    }
-//
-//    /**
-//     * GET 请求
-//     *
-//     * @param url
-//     * @return
-//     */
-//    public static String httpGetRequest(String url) {
-//        return httpGetRequest(url, null, null);
-//    }
-//
-//    /**
-//     * GET 带参 请求
-//     *
-//     * @param url
-//     * @param params
-//     * @return
-//     */
-//    public static String httpGetRequest(String url, Map<String, Object> params) {
-//        return httpGetRequest(url, null, params);
-//    }
-//
-//    /**
-//     * Post 请求
-//     *
-//     * @param url
-//     * @return
-//     */
-//    public static String httpPostRequest(String url) {
-//        return httpPostRequest(url, null, "");
-//    }
-//
-//    /**
-//     * POST 带参 请求
-//     *
-//     * @param url
-//     * @param params
-//     * @return
-//     * @throws UnsupportedEncodingException
-//     */
-//    public static String httpPostRequest(String url, Map<String, Object> params) {
-//        return httpPostRequest(url, null, params);
-//    }
-//
-//    /**
-//     * Get 带参 带header 请求
-//     *
-//     * @param url
-//     * @param headers
-//     * @param params
-//     * @return
-//     * @throws URISyntaxException
-//     */
-//    public static String httpGetRequest(String url, Map<String, Object> headers, Map<String, Object> params) {
-//        // 创建连接地址
-//        if (StringUtils.isEmpty(url)) {
-//            return null;
-//        }
-//        URIBuilder ub = new URIBuilder();
-//        ub.setPath(url);
-//        // 拼接参数
-//        if (!CollectionUtils.isEmpty(params)) {
-//            List<NameValuePair> pairs = covertParams2NVPS(params);
-//            ub.setParameters(pairs);
-//        }
-//        try {
-//            // 构建请求内容
-//            HttpGet httpGet = new HttpGet(ub.build());
-//            // 自定义header内容
-//            if (!CollectionUtils.isEmpty(headers)) {
-//                for (Map.Entry<String, Object> param : headers.entrySet()) {
-//                    httpGet.addHeader(param.getKey(), String.valueOf(param.getValue()));
-//                }
-//            }
-//            return getResult(httpGet);
-//        } catch (URISyntaxException ue) {
-//            logger.error(ue.getMessage(), ue);
-//        } catch (IOException ie) {
-//            logger.error(ie.getMessage(), ie);
-//        } catch (Exception ex) {
-//            logger.error(ex.getMessage(), ex);
-//        }
-//        return null;
-//    }
-//
-//
-//    /**
-//     * POST 带参 带Header 请求
-//     *
-//     * @param url
-//     * @param headers
-//     * @param params
-//     * @return
-//     * @throws UnsupportedEncodingException
-//     */
-//    public static String httpPostRequest(String url, Map<String, Object> headers, Map<String, Object> params) {
-//        if (StringUtils.isEmpty(url)) {
-//            return null;
-//        }
-//        HttpPost httpPost = new HttpPost(url);
-//        if (!CollectionUtils.isEmpty(headers)) {
-//            for (Map.Entry<String, Object> param : headers.entrySet()) {
-//                httpPost.addHeader(param.getKey(), String.valueOf(param.getValue()));
-//            }
-//        }
-//        try {
-//            if (!CollectionUtils.isEmpty(params)) {
-//                List<NameValuePair> pairs = covertParams2NVPS(params);
-//                httpPost.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
-//            }
-//            return getResult(httpPost);
-//        } catch (UnsupportedEncodingException uee) {
-//            logger.error(uee.getMessage(), uee);
-//        } catch (IOException ie) {
-//            logger.error(ie.getMessage(), ie);
-//        } catch (Exception ex) {
-//            logger.error(ex.getMessage(), ex);
-//        }
-//        return null;
-//    }
-//
-//    /**
-//     * POST 带参 带Header 请求
-//     *
-//     * @param url
-//     * @param headers
-//     * @param params
-//     * @return
-//     * @throws UnsupportedEncodingException
-//     */
-//    public static String httpPostRequest(String url, Map<String, Object> headers, String params) {
-//        if (StringUtils.isEmpty(url)) {
-//            return null;
-//        }
-//        HttpPost httpPost = new HttpPost(url);
-//        if (!CollectionUtils.isEmpty(headers)) {
-//            for (Map.Entry<String, Object> param : headers.entrySet()) {
-//                httpPost.addHeader(param.getKey(), String.valueOf(param.getValue()));
-//            }
-//        }
-//        try {
-//            if (!StringUtils.isEmpty(params)) {
-//                StringEntity stringEntity = new StringEntity(params, "UTF-8");
-//                httpPost.setEntity(stringEntity);
-//            }
-//            return getResult(httpPost);
-//        } catch (UnsupportedEncodingException uee) {
-//            logger.error(uee.getMessage(), uee);
-//        } catch (IOException ie) {
-//            logger.error(ie.getMessage(), ie);
-//        } catch (Exception ex) {
-//            logger.error(ex.getMessage(), ex);
-//        }
-//        return null;
-//    }
-//
-//    /**
-//     * DELETE 带参 带Header 请求
-//     *
-//     * @param url
-//     * @param headers
-//     * @return
-//     * @throws UnsupportedEncodingException
-//     */
-//    public static String httpDeleteRequest(String url, Map<String, Object> headers) {
-//        if (StringUtils.isEmpty(url)) {
-//            return null;
-//        }
-//        HttpDelete httpDelete = new HttpDelete(url);
-//        if (!CollectionUtils.isEmpty(headers)) {
-//            for (String key : headers.keySet()) {
-//                httpDelete.addHeader(key, String.valueOf(headers.get(key)));
-//            }
-//        }
-//        try {
-//            return getResult(httpDelete);
-//        } catch (UnsupportedEncodingException uee) {
-//            logger.error(uee.getMessage(), uee);
-//        } catch (IOException ie) {
-//            logger.error(ie.getMessage(), ie);
-//        } catch (Exception ex) {
-//            logger.error(ex.getMessage(), ex);
-//        }
-//        return null;
-//    }
-//
-//    /**
-//     * 内部方法,构建参数链
-//     *
-//     * @param params
-//     * @return
-//     */
-//    private static List<NameValuePair> covertParams2NVPS(Map<String, Object> params) {
-//        List<NameValuePair> pairs = new ArrayList<NameValuePair>();
-//        for (Map.Entry<String, Object> param : params.entrySet()) {
-//            pairs.add(new BasicNameValuePair(param.getKey(), String.valueOf(param.getValue())));
-//        }
-//        return pairs;
-//    }
-//
-//    private static CloseableHttpClient getHttpClient() {
-//        init();
-//        return HttpClients.custom().setConnectionManager(cm).build();
-//    }
-//
-//    /**
-//     * 内部方法,请求执行体
-//     *
-//     * @param request
-//     * @return
-//     * @throws IOException
-//     */
-//    private static String getResult(HttpRequestBase request) throws IOException {
-//        CloseableHttpClient httpClient = getHttpClient();
-//        CloseableHttpResponse resp = httpClient.execute(request);
-//        //响应状态
-//        if (resp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
-//            long contentLength = resp.getEntity().getContentLength();
-//            if (contentLength == 0) {
-//                return "";
-//            }
-//            // 响应实体
-//            HttpEntity entity = resp.getEntity();
-//            String result = EntityUtils.toString(entity);
-//            resp.close();
-//            logger.info("httpClient 结果=>:" + result);
-//            return result;
-//        } else {
-//            logger.error(HttpUtils.class.getName() + " getResult error:" + resp.getStatusLine().getStatusCode());
-//        }
-//        // 响应实体
-//        HttpEntity entity = resp.getEntity();
-//        if (entity != null) {
-//            // long len = entity.getContentLength();// -1 表示长度未知
-//            String result = EntityUtils.toString(entity);
-//            resp.close();
-//            logger.info("httpClient 结果=>:" + result);
-//            return result;
-//        }
-//        return null;
-//    }
-//
-//    /**
-//     * httpPost
-//     * @param url
-//     * @param jsonParam
-//     * @param noNeedResponse
-//     * @return
-//     */
-//    public static JSONObject httpPost(String url, JSONObject jsonParam, boolean noNeedResponse) {
-//        CloseableHttpClient httpClient = HttpClients.createDefault();
-//        JSONObject jsonResult = null;
-//        HttpPost method = new HttpPost(url);
-//        try {
-//            if (jsonParam != null) {
-//                // 解决中文乱码问题
-//                StringEntity entity = new StringEntity(jsonParam.toString(), "utf-8");
-//                entity.setContentEncoding("UTF-8");
-//                entity.setContentType("application/json");
-//                method.setEntity(entity);
-//            }
-//            HttpResponse result = httpClient.execute(method);
-//            url = URLDecoder.decode(url, "UTF-8");
-//            /** 请求发送成功,并得到响应 **/
-//            if (result.getStatusLine().getStatusCode() == 200) {
-//                String str = "";
-//                try {
-//                    /** 读取服务器返回过来的json字符串数据 **/
-//                    str = EntityUtils.toString(result.getEntity());
-//                    if (noNeedResponse) {
-//                        return null;
-//                    }
-//                    /** 把json字符串转换成json对象 **/
-//                    jsonResult = JSONObject.parseObject(str);
-//                } catch (Exception e) {
-//                    logger.error("post请求提交失败:" + url, e);
-//                }
-//            }
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
-//        return jsonResult;
-//    }
-//
-//
-//    /**
-//     * 发送get请求
-//     *
-//     * @param
-//     * @return
-//     */
-//    public static String httpGet(String url) {
-//        // get请求返回结果
-//        JSONObject jsonResult = null;
-//        String str = null;
-//        try {
-//            DefaultHttpClient client = new DefaultHttpClient();
-//            // 发送get请求
-//            HttpGet request = new HttpGet(url);
-//            HttpResponse response = client.execute(request);
-//            // 请求发送成功,并得到响应
-//            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
-//                // 读取服务器返回过来的json字符串数据
-//                str = EntityUtils.toString(response.getEntity());
-//                url = URLDecoder.decode(url, "UTF-8");
-//            } else {
-//                logger.error("get请求提交失败:" + url);
-//            }
-//        } catch (IOException e) {
-//            logger.error("get请求提交失败:" + url, e);
-//        }
-//        return str;
-//    }
-//
-//    /**
-//     * 内部方法,获取客户端ip
-//     */
-//    public static String getIpAddress(HttpServletRequest request) {
-//        String ip = request.getHeader("X-Real-IP");
-//        if (!(StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))) {
-//            return ip;
-//        }
-//        ip = request.getHeader("x-real-ip");
-//        if (!(StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))) {
-//            return ip;
-//        }
-//        ip = request.getHeader("X-Forwarded-For");
-//        if (!(StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))) {
-//            return ip;
-//        }
-//        ip = request.getHeader("x-forwarded-for");
-//        if (!(StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))) {
-//            return ip;
-//        }
-//        ip = request.getHeader("Proxy-Client-IP");
-//        if (!(StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))) {
-//            return ip;
-//        }
-//        ip = request.getHeader("WL-Proxy-Client-IP");
-//        if (!(StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))) {
-//            return ip;
-//        }
-//        ip = request.getHeader("HTTP_CLIENT_IP");
-//        if (!(StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))) {
-//            return ip;
-//        }
-//        ip = request.getHeader("HTTP_X_FORWARDED_FOR");
-//        if (!(StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))) {
-//            return ip;
-//        }
-//        ip = request.getRemoteAddr();
-//        if (!(StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))) {
-//            return ip;
-//        }
-//        return ip;
-//    }
-//
-//    public static String postData(String urlStr, String data) {
-//        BufferedReader reader = null;
-//        try {
-//            URL url = new URL(urlStr);
-//            URLConnection conn = url.openConnection();
-//            conn.setDoOutput(true);
-//            conn.setConnectTimeout(CONNECT_TIMEOUT);
-//            conn.setReadTimeout(CONNECT_TIMEOUT);
-//            OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream(), DEFAULT_ENCODING);
-//            if (data == null)
-//                data = "";
-//            writer.write(data);
-//            writer.flush();
-//            writer.close();
-//
-//            reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), DEFAULT_ENCODING));
-//            StringBuilder sb = new StringBuilder();
-//            String line = null;
-//            while ((line = reader.readLine()) != null) {
-//                sb.append(line);
-//                sb.append("\r\n");
-//            }
-//            return sb.toString();
-//        } catch (IOException e) {
-//            //logger.error("Error connecting to " + urlStr + ": " + e.getMessage());
-//        } finally {
-//            try {
-//                if (reader != null)
-//                    reader.close();
-//            } catch (IOException e) {
-//            }
-//        }
-//        return null;
-//    }
-//
-//    public static boolean isMobileDevice(HttpServletRequest request) {
-//        /**
-//         * android : 所有android设备
-//         * mac os : iphone ipad
-//         * windows phone:Nokia等windows系统的手机
-//         */
-//        try {
-//            String requestHeader = request.getHeader("user-agent");
-//            if (requestHeader == null) {
-//                return false;
-//
-//            }
-//            String[] deviceArray = new String[]{"android", "mac os", "windows phone"};
-//            requestHeader = requestHeader.toLowerCase();
-//            for (int i = 0; i < deviceArray.length; i++) {
-//                if (requestHeader.indexOf(deviceArray[i]) > 0) {
-//                    return true;
-//                }
-//            }
-//        } catch (Exception ex) {
-//            ex.printStackTrace();
-//        }
-//        return false;
-//    }
-//
-//
-//    public static String httpPutRequest(String url, Map<String, Object> headers, String params) {
-//        if (StringUtils.isEmpty(url)) {
-//            return null;
-//        }
-//        HttpPut httpPut = new HttpPut(url);
-//        if (!CollectionUtils.isEmpty(headers)) {
-//            for (Map.Entry<String, Object> param : headers.entrySet()) {
-//                httpPut.addHeader(param.getKey(), String.valueOf(param.getValue()));
-//            }
-//        }
-//        try {
-//            if (!StringUtils.isEmpty(params)) {
-//                StringEntity stringEntity = new StringEntity(params, "UTF-8");
-//                httpPut.setEntity(stringEntity);
-//            }
-//            return getResult(httpPut);
-//        } catch (UnsupportedEncodingException uee) {
-//            logger.error(uee.getMessage(), uee);
-//        } catch (IOException ie) {
-//            logger.error(ie.getMessage(), ie);
-//        } catch (Exception ex) {
-//            logger.error(ex.getMessage(), ex);
-//        }
-//        return null;
-//    }
-//}
+package com.energy.manage.common.util;
+
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSONObject;
+
+import java.util.Map;
+
+/**
+ * @author LIKE
+ * @date 2017年1月18日 下午6:07:06
+ */
+public class HttpUtils {
+
+    private final static String GET_UNION_STR = "?";
+
+    /**
+     * http请求时长
+     */
+    private final static int TIME_OUT = 3000;
+
+
+    /**
+     * get 方法
+     * @param url
+     * @param
+     * @return
+     */
+    public static JSONObject doGet(String url, Map<String,Object> param){
+        //做字符串拼接
+        url = url + GET_UNION_STR + HttpUtil.toParams(param);
+        return JSONObject.parseObject(HttpUtil.get(url,TIME_OUT));
+    }
+
+    /**
+     * post 方法
+     * @param url
+     * @param params
+     * @return
+     */
+    public static JSONObject doPost(String url, Map<String,Object> params){
+        return JSONObject.parseObject(HttpUtil.post(url,params,TIME_OUT));
+    }
+}

+ 7 - 7
energy-manage-service/pom.xml

@@ -22,12 +22,12 @@
             <version>${energy-manage-common.version}</version>
         </dependency>
 
-        <!-- xxl-job 分布式任务 (暂时不用) -->
-<!--        <dependency>-->
-<!--            <groupId>com.xuxueli</groupId>-->
-<!--            <artifactId>xxl-job-core</artifactId>-->
-<!--            <version>2.3.0</version>-->
-<!--        </dependency>-->
+        <!-- xxl-job 分布式任务 -->
+        <dependency>
+            <groupId>com.xuxueli</groupId>
+            <artifactId>xxl-job-core</artifactId>
+            <version>2.3.0</version>
+        </dependency>
 
         <!-- kafka -->
         <dependency>
@@ -134,4 +134,4 @@
     </profiles>
 
 
-</project>
+</project>

+ 16 - 16
energy-manage-service/src/main/java/com/energy/manage/service/config/xxl/XxlJobConfig.java

@@ -1,18 +1,18 @@
-//package com.energy.manage.service.config.xxl;
-//
-//import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
-//import lombok.extern.slf4j.Slf4j;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//
-///**
-// * @Description: xxlJob配置
-// */
-//@Configuration
-//@Slf4j
-//public class XxlJobConfig {
-//
+package com.energy.manage.service.config.xxl;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Description: xxlJob配置
+ */
+@Configuration
+@Slf4j
+public class XxlJobConfig {
+
 //    @Value("${xxl.job.admin.addresses}")
 //    private String adminAddresses;
 //
@@ -52,4 +52,4 @@
 //
 //        return xxlJobSpringExecutor;
 //    }
-//}
+}

+ 30 - 0
energy-manage-service/src/main/java/com/energy/manage/service/constant/analysis/AnalysisConstants.java

@@ -0,0 +1,30 @@
+package com.energy.manage.service.constant.analysis;
+
+/**
+ * @author chy
+ * @date 2024/5/31 09:46
+ * @desc
+ */
+public interface AnalysisConstants {
+
+    /**
+     * 分析类型父节点key属性名
+     */
+    String ANALYSIS_TYPE_PARRENT_KEY = "parentId";
+
+    /**
+     * 算法服务器数量
+     */
+     int SERVER_MERCHINE_COUNT = 3;
+
+    /**
+     * 自动分析标识
+     */
+    String AUTOMATIC = "automatic";
+
+    /**
+     * 手动分析标识
+     */
+    String MANUAL = "manual";
+
+}

+ 82 - 0
energy-manage-service/src/main/java/com/energy/manage/service/controller/analysis/AnalysisController.java

@@ -0,0 +1,82 @@
+package com.energy.manage.service.controller.analysis;
+
+import com.energy.manage.common.base.Page;
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.common.util.JSONMapper;
+import com.energy.manage.service.config.annotations.UserLoginToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
+import com.energy.manage.service.domain.dto.analysis.AnalysisAlgorithmDto;
+import com.energy.manage.service.domain.dto.analysis.AnalysisDto;
+import com.energy.manage.service.domain.dto.analysis.AnalysisResultDto;
+import com.energy.manage.service.domain.vo.analysis.AnalysisResultVo;
+import com.energy.manage.service.property.analysis.AlgorithmProperties;
+import com.energy.manage.service.service.analysis.AnalysisService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 分析
+ * @author chy
+ * @date 2024/5/23 12:57
+ * @desc
+ */
+@Api(value = "AnalysisController",tags = "分析")
+@Slf4j
+@RestController
+@RequestMapping("/analysis")
+public class AnalysisController extends BaseServiceController {
+
+    @Autowired
+    private AnalysisService analysisService;
+
+
+    @UserLoginToken
+    @ApiOperation(value = "分析结果列表")
+    @GetMapping("/analysisResultList")
+    public ResultResp<Page<AnalysisResultVo>> analysisResultList(AnalysisResultDto analysisResultDto)
+    {
+        analysisResultDto.setRoleId(getRoleId());
+        return pageResult(analysisService.analysisResultList(analysisResultDto),analysisResultDto);
+    }
+
+    @UserLoginToken
+    @ApiOperation(value = "手动分析触发")
+    @PostMapping("/analysis")
+    public ResultResp analysis(@RequestBody AnalysisDto analysisto)
+    {
+        return analysisService.analysis(analysisto);
+    }
+
+    @UserLoginToken
+    @ApiOperation(value = "分析编辑查询")
+    @GetMapping("/analysisEditQuery")
+    public ResultResp analysisEditQuery(@RequestParam("batchCode") String batchCode)
+    {
+        return success(analysisService.analysisEditQuery(batchCode));
+    }
+
+    @UserLoginToken
+    @ApiOperation(value = "分析详情")
+    @GetMapping("/analysisDetail")
+    public ResultResp analysisDetail(@RequestParam("batchCode") String batchCode,
+                                     @RequestParam("analysisTypeCode") String analysisTypeCode,
+                                     @RequestParam("fieldEngineCode") String fieldEngineCode)
+    {
+        return success(analysisService.analysisDetail(batchCode,analysisTypeCode,fieldEngineCode));
+    }
+
+    @ApiOperation(value = "测试")
+    @PostMapping("/test")
+    public ResultResp test(@RequestBody AnalysisAlgorithmDto analysisAlgorithmDto)
+    {
+        String result = JSONMapper.nonEmptyMapper().toJSon(analysisAlgorithmDto);
+        System.out.println("result = " + result);
+        result = result.replaceAll("packages","package");
+        System.out.println(AlgorithmProperties.analysisUrl);
+        return success(result);
+    }
+
+}

+ 66 - 0
energy-manage-service/src/main/java/com/energy/manage/service/controller/analysiscomment/AnalysisCommentController.java

@@ -0,0 +1,66 @@
+package com.energy.manage.service.controller.analysiscomment;
+
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.service.config.annotations.UserLoginToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
+import com.energy.manage.service.domain.dto.analysis.AnalysisCommentDescriptionDto;
+import com.energy.manage.service.domain.dto.analysis.AnalysisCommentTypeRelationDto;
+import com.energy.manage.service.service.analysiscomment.AnalysisCommentService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author chy
+ * @date 2024/5/24 17:09
+ * @desc
+ */
+@Api(value = "AnalysisCommentController",tags = "富文本")
+@Slf4j
+@RestController
+@RequestMapping("/analysisComment")
+public class AnalysisCommentController extends BaseServiceController {
+
+    @Autowired
+    private AnalysisCommentService analysisCommentService;
+
+    @UserLoginToken
+    @ApiOperation(value = "富文本类型查询")
+    @GetMapping("/analysisCommentTypeList")
+    public ResultResp analysisCommentTypeList(@RequestParam(name = "batchCode",required = true) String batchCode,
+                                              @RequestParam(name = "analysisTypeCode",required = true) String analysisTypeCode)
+    {
+        return success(analysisCommentService.analysisCommentTypeList(batchCode,analysisTypeCode));
+    }
+
+    @UserLoginToken
+    @ApiOperation(value = "富文本类型添加")
+    @PostMapping("/addAnalysisCommentType")
+    public ResultResp addAnalysisCommentType(@RequestBody AnalysisCommentTypeRelationDto typeRelationDto)
+    {
+        typeRelationDto.setCreateBy(getUserId());
+        return analysisCommentService.addAnalysisCommentType(typeRelationDto);
+    }
+
+    @UserLoginToken
+    @ApiOperation(value = "富文本类型删除")
+    @PostMapping("/delAnalysisCommentType")
+    public ResultResp delAnalysisCommentType(@RequestBody String commentTypeCode)
+    {
+        return analysisCommentService.delAnalysisCommentType(commentTypeCode);
+    }
+
+    @UserLoginToken
+    @ApiOperation(value = "富文本编辑")
+    @PostMapping("/analysisCommentEdit")
+    public ResultResp analysisCommentEdit(@RequestBody AnalysisCommentDescriptionDto commentDescriptionDto)
+    {
+        Integer userId = getUserId();
+        commentDescriptionDto.setCreateBy(userId);
+        commentDescriptionDto.setUpdateBy(userId);
+        return success(analysisCommentService.analysisCommentEdit(commentDescriptionDto));
+    }
+
+}

+ 68 - 0
energy-manage-service/src/main/java/com/energy/manage/service/controller/analysiser/AnalysisErrController.java

@@ -0,0 +1,68 @@
+package com.energy.manage.service.controller.analysiser;
+
+import com.energy.manage.common.base.Page;
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.service.config.annotations.UserLoginToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
+import com.energy.manage.service.domain.dto.windexceptioncount.WindExceptionCountDto;
+import com.energy.manage.service.domain.vo.windexceptioncount.WindExceptionCountVo;
+import com.energy.manage.service.service.analysiserr.AnalysisErrService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 分析结果异常数统计
+ * @author chy
+ * @date 2024/5/23 17:22
+ * @desc
+ */
+@Api(value = "AnalysisErrController",tags = "分析结果异常数统计")
+@RestController
+@RequestMapping("/analysisErr")
+public class AnalysisErrController extends BaseServiceController {
+
+    @Autowired
+    private AnalysisErrService analysisErrService;
+
+    @UserLoginToken
+    @ApiOperation(value = "异常查询")
+    @GetMapping("/analysisErrQuery")
+    public ResultResp<Page<WindExceptionCountVo>> analysisErrQuery(WindExceptionCountDto windExceptionCountDto)
+    {
+        return pageResult(analysisErrService.analysisErrQuery(windExceptionCountDto),windExceptionCountDto);
+    }
+
+    @UserLoginToken
+    @ApiOperation(value = "异常添加")
+    @PostMapping("/analysisErrAdd")
+    public ResultResp analysisErrAdd(WindExceptionCountDto windExceptionCountDto)
+    {
+        Integer loginUserId = getUserId();
+        windExceptionCountDto.setCreateBy(loginUserId);
+        windExceptionCountDto.setUpdateBy(loginUserId);
+        return analysisErrService.analysisErrAdd(windExceptionCountDto);
+    }
+
+    @UserLoginToken
+    @ApiOperation(value = "异常编辑")
+    @PostMapping("/analysisErrEdit")
+    public ResultResp analysisErrEdit(WindExceptionCountDto windExceptionCountDto)
+    {
+        windExceptionCountDto.setUpdateBy(getUserId());
+        return analysisErrService.analysisErrEdit(windExceptionCountDto);
+    }
+
+    @UserLoginToken
+    @ApiOperation(value = "异常删除")
+    @PostMapping("/analysisErrDel")
+    public ResultResp analysisErrDel(WindExceptionCountDto windExceptionCountDto)
+    {
+        windExceptionCountDto.setUpdateBy(getUserId());
+        return analysisErrService.analysisErrDel(windExceptionCountDto);
+    }
+}

+ 101 - 0
energy-manage-service/src/main/java/com/energy/manage/service/controller/base/BaseServiceController.java

@@ -0,0 +1,101 @@
+package com.energy.manage.service.controller.base;
+
+import com.energy.manage.common.base.BaseController;
+import com.energy.manage.common.base.Page;
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.service.domain.dto.BaseDto;
+import com.energy.manage.service.util.JwtUtil;
+import com.github.pagehelper.PageInfo;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author chy
+ * @date 2024/5/21 10:37
+ * @desc
+ */
+public class BaseServiceController extends BaseController {
+
+    /**
+     * token 在请求头中的key
+     */
+    private final static String TOKE_KEY = "token";
+
+    /**
+     * roleId
+     */
+    private final static String ROLE_ID = "roleId";
+
+    /**
+     * roleId
+     */
+    private final static String USER_ID = "userId";
+
+
+    /**
+     * 无返回数据成功函数
+     * @param
+     * @return
+     */
+    public ResultResp success() {
+        return ResultResp.SUCCESS(null);
+    }
+
+    /**
+     * 有返回数据成功函数
+     * @param data
+     * @return
+     */
+    public ResultResp success(Object data) {
+        return ResultResp.SUCCESS(data);
+    }
+
+    /**
+     * 分页结果集
+     * @param data
+     * @return
+     */
+    public <T> ResultResp<Page<T>> pageResult(List<T> data, BaseDto baseDto) {
+        long total = new PageInfo(data).getTotal();
+        return ResultResp.SUCCESS(Page.build(baseDto.getPageNum(),baseDto.getPageSize(),total,data));
+    }
+
+    /**
+     * 获取登录用户信息  后来在改造
+     * @return
+     */
+    public Map<String,String> getLoginUser(){
+        return JwtUtil.getJwtMap(getToken());
+    }
+
+    /**
+     * 获取登录用户角色id
+     * @return
+     */
+    public Integer getRoleId(){
+        return Integer.valueOf(getLoginUser().get(ROLE_ID));
+    }
+
+    /**
+     * 获取登录用户角色id
+     * @return
+     */
+    public Integer getUserId(){
+        return Integer.valueOf(getLoginUser().get(USER_ID));
+    }
+
+    /**
+     * 获取token
+     * @return
+     */
+    private String getToken(){
+        RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
+        ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) attributes;
+        return servletRequestAttributes.getRequest().getHeader(TOKE_KEY);
+    }
+
+}

+ 68 - 0
energy-manage-service/src/main/java/com/energy/manage/service/controller/datatransfer/DataTransferController.java

@@ -0,0 +1,68 @@
+package com.energy.manage.service.controller.datatransfer;
+
+import com.energy.manage.common.base.Page;
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.service.config.annotations.UserLoginToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
+import com.energy.manage.service.domain.dto.datatransfer.DataTransferDto;
+import com.energy.manage.service.domain.vo.datatransfer.DataTransferVo;
+import com.energy.manage.service.service.datatransfer.DataTransferService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 数据转换模块儿
+ * @author chy
+ * @date 2024/5/20 10:17
+ * @desc
+ */
+@Slf4j
+@Api(value = "DataTransferController",tags = "数据转换")
+@RestController
+@RequestMapping("/dataTransfer")
+public class DataTransferController extends BaseServiceController {
+
+    @Autowired
+    private DataTransferService dataTransferService;
+
+
+    @UserLoginToken
+    @ApiOperation(value = "查询可以数据转换批次")
+    @GetMapping("/fieldBatchListForDataTransfer")
+    public ResultResp fieldBatchListForDataTransfer(){
+        return success(dataTransferService.fieldBatchListForDataTransfer(getRoleId()));
+    }
+
+    @UserLoginToken
+    @ApiOperation("数据转换列表")
+    @GetMapping("/queryDataTransferList")
+    public ResultResp<Page<DataTransferVo>> queryDataTransferList(DataTransferDto dataTransferDto){
+        dataTransferDto.setRoleId(getRoleId());
+        return pageResult(dataTransferService.queryDataTransferList(dataTransferDto),dataTransferDto);
+    }
+
+
+    @UserLoginToken
+    @ApiOperation("新增数据转换数据")
+    @PostMapping("/addDataTransferList")
+    public ResultResp addDataTransferList(@RequestBody DataTransferDto dataTransferDto){
+        dataTransferDto.setRoleId(getRoleId());
+        dataTransferDto.setUserId(getUserId());
+        return dataTransferService.addDataTransfer(dataTransferDto);
+    }
+
+    @UserLoginToken
+    @ApiOperation("转换/重新转换")
+    @PostMapping("/dataTransfer")
+    public ResultResp dataTransfer(@RequestParam String batchCode,
+                                   @RequestParam String dataTransferType,
+                                   @RequestParam String dataTransferTypePath){
+        return dataTransferService.dataTransfer(batchCode,
+                                                dataTransferType,
+                                                dataTransferTypePath,
+                                                getUserId());
+    }
+}

+ 33 - 0
energy-manage-service/src/main/java/com/energy/manage/service/controller/system/SysOrganizationAuthController.java

@@ -0,0 +1,33 @@
+package com.energy.manage.service.controller.system;
+
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.service.controller.base.BaseServiceController;
+import com.energy.manage.service.service.system.SysOrganizationAuthService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author chy
+ * @date 2024/5/21 09:33
+ * @desc
+ */
+@Slf4j
+@Api(value = "SysOrganizationAuthController", tags = "组织机构权限管理")
+@RestController
+@RequestMapping("/sysOrganizationAuth")
+public class SysOrganizationAuthController extends BaseServiceController {
+
+    @Autowired
+    private SysOrganizationAuthService sysOrganizationAuthService;
+
+    @ApiOperation(value = "根据角色查询风场列表")
+    @GetMapping("/queryCodeNum")
+    public ResultResp queryCodeNunByRoleId() {
+        return success(sysOrganizationAuthService.queryCodeNunByRoleId(getRoleId()));
+    }
+}

+ 0 - 2
energy-manage-service/src/main/java/com/energy/manage/service/controller/system/SysUserInfoController.java

@@ -1,12 +1,10 @@
 package com.energy.manage.service.controller.system;
 
-import com.alibaba.fastjson.JSONObject;
 import com.energy.manage.common.base.Page;
 import com.energy.manage.common.constant.Constants;
 import com.energy.manage.common.constant.redis.ManagerRedisKeyConstant;
 import com.energy.manage.common.po.system.SysRolePO;
 import com.energy.manage.common.po.system.SysUserInfoPO;
-import com.energy.manage.common.reponse.RespMsg;
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.common.util.BCryptTools;
 import com.energy.manage.service.config.annotations.PassToken;

+ 13 - 1
energy-manage-service/src/main/java/com/energy/manage/service/controller/windenginegroup/WindEngineGroupController.java

@@ -5,6 +5,11 @@ import com.energy.manage.common.base.Page;
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.service.config.annotations.UserLoginToken;
 import com.energy.manage.service.domain.dto.windenginegroup.*;
+import com.energy.manage.service.controller.base.BaseServiceController;
+import com.energy.manage.service.domain.dto.windenginegroup.WindEngineGroupCodeDto;
+import com.energy.manage.service.domain.dto.windenginegroup.WindEngineGroupCreateDto;
+import com.energy.manage.service.domain.dto.windenginegroup.WindEngineGroupPageDto;
+import com.energy.manage.service.domain.dto.windenginegroup.WindEngineGroupStateDto;
 import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupPageVo;
 import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupVo;
 import com.energy.manage.service.service.windenginegroup.WindEngineGroupService;
@@ -22,7 +27,7 @@ import javax.validation.Valid;
 @CrossOrigin
 @Api(value = "WindEngineGroupController", tags = "风机机组信息管理")
 @RequestMapping(value = "/api/wind/engine/group")
-public class WindEngineGroupController {
+public class WindEngineGroupController extends BaseServiceController {
 
     @Autowired
     private WindEngineGroupService windEngineGroupService;
@@ -97,4 +102,11 @@ public class WindEngineGroupController {
     }
 
 
+    @ApiOperation("根据角色获取风机")
+    @UserLoginToken
+    @GetMapping("/getWindEngineGroupByUser")
+    public ResultResp getWindEngineGroupByUser() {
+        return success(windEngineGroupService.getWindEngineGroupByRoleId(getRoleId()));
+    }
+
 }

+ 72 - 0
energy-manage-service/src/main/java/com/energy/manage/service/controller/windfieldbatch/WindFieldBatchController.java

@@ -0,0 +1,72 @@
+package com.energy.manage.service.controller.windfieldbatch;
+
+import com.energy.manage.common.base.Page;
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.service.config.annotations.UserLoginToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
+import com.energy.manage.service.domain.dto.windfieldbatch.WindFieldBatchDto;
+import com.energy.manage.service.domain.vo.windfieldbatch.WindFieldBatchVo;
+import com.energy.manage.service.service.windfieldbatch.WindFieldBatchService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author chy
+ * @date 2024/5/20 17:32
+ * @desc
+ */
+@Slf4j
+@Api(value = "WindFieldBatchController", tags = "风场批次管理")
+@RestController
+@RequestMapping("/windEnginBatch")
+public class WindFieldBatchController extends BaseServiceController {
+
+    @Autowired
+    private WindFieldBatchService windFieldBatchService;
+
+    @UserLoginToken
+    @ApiOperation(value = "风场批次信息列表")
+    @GetMapping("/batchList")
+    public ResultResp<Page<WindFieldBatchVo>> batchList(WindFieldBatchDto windFieldBatchDto){
+        return pageResult(windFieldBatchService.queryWindFieldBatch(windFieldBatchDto), windFieldBatchDto);
+    }
+
+    @UserLoginToken
+    @ApiOperation(value = "添加风场批次")
+    @PostMapping("/addFieldBatch")
+    public ResultResp addFieldBatch(@RequestBody WindFieldBatchDto windFieldBatchDto){
+        Integer loginUserId = getUserId();
+        windFieldBatchDto.setCreateBy(loginUserId);
+        windFieldBatchDto.setUpdateBy(loginUserId);
+        return success(windFieldBatchService.addWindFieldBatch(windFieldBatchDto));
+    }
+
+    @UserLoginToken
+    @ApiOperation(value = "编辑风场批次")
+    @PostMapping("/updateFieldBatch")
+    public ResultResp updateFieldBatch(@RequestBody WindFieldBatchDto windFieldBatchDto){
+        windFieldBatchDto.setUpdateBy(getUserId());
+        return success(windFieldBatchService.updateWindFieldBatch(windFieldBatchDto));
+    }
+
+    @UserLoginToken
+    @ApiOperation(value = "启用/停用风场批次")
+    @PostMapping("/onOrOffFieldBatch")
+    public ResultResp onOrOffFieldBatch(@RequestBody WindFieldBatchDto windFieldBatchDto){
+        windFieldBatchDto.setUpdateBy(getUserId());
+        return success(windFieldBatchService.onOrOffFieldBatch(windFieldBatchDto));
+    }
+
+    @UserLoginToken
+    @ApiOperation(value = "删除风场批次")
+    @PostMapping("/deleteFieldBatch")
+    public ResultResp deleteFieldBatch(@RequestBody WindFieldBatchDto windFieldBatchDto){
+        windFieldBatchDto.setUpdateBy(getUserId());
+        return success(windFieldBatchService.deleteWindFieldBatch(windFieldBatchDto));
+    }
+
+
+}

+ 28 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisAlgorithmDto.java

@@ -0,0 +1,28 @@
+package com.energy.manage.service.domain.dto.analysis;
+
+import com.energy.manage.service.domain.dto.analysisalgorithm.DataContractDto;
+import com.energy.manage.service.domain.dto.analysisalgorithm.DataContractTypeDto;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 调用分析算法的入参
+ * @author chy
+ * @date 2024/5/30 13:50
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class AnalysisAlgorithmDto {
+
+    /**
+     * 算法版本号
+     */
+    private DataContractTypeDto dataContractType = new DataContractTypeDto();
+
+    /**
+     * 分析参数
+     */
+    private DataContractDto dataContract = new DataContractDto();
+
+}

+ 41 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisCommentDescriptionDto.java

@@ -0,0 +1,41 @@
+package com.energy.manage.service.domain.dto.analysis;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 分析富文本描述
+ * @author chy
+ * @date 2024/5/23 12:56
+ * @desc
+ */
+@Data
+public class AnalysisCommentDescriptionDto {
+
+
+    /**
+     * 批次编号
+     */
+    private String batchCode ;
+
+    /**
+     * 分析类型编号
+     */
+    private String analysisTypeCode ;
+
+    /**
+     * 类型与描述
+     */
+    private List<CommentDto> commentList ;
+
+    /**
+     * 创建人
+     */
+    private Integer createBy ;
+
+    /**
+     * 更新人
+     */
+    private Integer updateBy ;
+}

+ 57 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisCommentTypeRelationDto.java

@@ -0,0 +1,57 @@
+package com.energy.manage.service.domain.dto.analysis;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 分析评论类型关联
+ * @author chy
+ * @date 2024/5/23 12:53
+ * @desc
+ */
+@Table(name = "analysis_comment_type_relation")
+@Data
+@Accessors(chain = true)
+public class AnalysisCommentTypeRelationDto {
+
+    /**
+     * 批次编号
+     */
+    private String batchCode;
+
+    /**
+     * 分析类型编号
+     */
+    private String analysisTypeCode;
+
+    /**
+     * 评论类型标号
+     */
+
+    private String commentTypeCode;
+
+    /**
+     * 评论类型名称
+     */
+    private String commentTypeName;
+
+    /**
+     * 是否自定义 0:否 1:是
+     */
+    private Integer isDefined;
+
+    /**
+     * 是否删除 0:否 1:是
+     */
+    private Integer isDelete;
+
+    /**
+     * 创建人
+     */
+    private Integer createBy;
+
+}

+ 50 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisDiagramRelationDto.java

@@ -0,0 +1,50 @@
+package com.energy.manage.service.domain.dto.analysis;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 分析结果图文关系表
+ * @author chy
+ * @date 2024/5/23 12:52
+ * @desc
+ */
+@Table(name = "analysis_diagram_relation")
+@Data
+public class AnalysisDiagramRelationDto {
+
+
+    /**
+     * 批次编号
+     */
+    private String batchCode ;
+
+    /**
+     * 风机编号
+     */
+    private String fieldEngineCode ;
+
+    /**
+     * 分析类型编号
+     */
+    private String analysisTypeCode ;
+
+    /**
+     * 分析结果地址minio
+     */
+    private String fileAddr ;
+
+    /**
+     * 是否自动分析 0: 不自动分析 1: 自动分析
+     */
+    private Integer autoAnalysis ;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime ;
+}

+ 89 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisDto.java

@@ -0,0 +1,89 @@
+package com.energy.manage.service.domain.dto.analysis;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/30 09:56
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class AnalysisDto {
+
+    /**
+     * 手动自动分析 枚举值:auto、manual
+     * automatic 表示自动触发;
+     * manual 表示人工触发;
+     */
+    private String autoOrManual;
+
+    /**
+     * 风场编号
+     */
+    private String powerFarmID;
+
+    /**
+     * 批次号
+     */
+    private String dataBatchNum;
+
+    /**
+     * 机组编号
+     */
+    private List<String> turbines;
+
+    /**
+     * 开始时间 格式(2024-01-01 00:00:00)
+     */
+    private String beginTime;
+
+    /**
+     * 结束时间 格式(2024-12-12 00:00:00)
+     */
+    private String endTime;
+
+    /**
+     * 过滤月份
+     */
+    private List<String> excludingMonths;
+
+    /**
+     * 数据源scada
+     * 枚举值:minute、second、all,
+     * minute 用于人工分析场景,指定分析类型使用scada分钟级数据;
+     * seconde 用于人工分析场景,指定分析类型使用scada秒级数据;
+     * all 用于自动分析场景
+     */
+    private String scada;
+
+    /**
+     * 风速值最大最小
+     */
+    private List<Integer> valueWindSpeed;
+
+    /**
+     * 桨距角最大最小
+     */
+    private List<Integer> valuePitchAngle;
+
+    /**
+     * 有功功率
+     */
+    private List<Integer> valueActivePower;
+
+    /**
+     * 发电机转速
+     */
+    private List<Integer> valueGeneratorSpeed;
+
+    /**
+     * 分析类型code
+     */
+    private List<String> configAnalysis;
+
+
+}

+ 45 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisGeneralFileDto.java

@@ -0,0 +1,45 @@
+package com.energy.manage.service.domain.dto.analysis;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 分析结果总图表
+ * @author chy
+ * @date 2024/5/23 12:55
+ * @desc
+ */
+@Table(name = "analysis_general_file")
+@Data
+public class AnalysisGeneralFileDto {
+
+
+    /**
+     * 批次号
+     */
+    private Integer batchCode ;
+
+    /**
+     * 分析类型编号
+     */
+    private String analysisTypeCode ;
+
+    /**
+     * 总文件地址minIO
+     */
+    private String fileAddr ;
+
+    /**
+     * 是否自动分析 0:手动 1自动
+     */
+    private Integer autoAnalysis ;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime ;
+}

+ 57 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisResultDto.java

@@ -0,0 +1,57 @@
+package com.energy.manage.service.domain.dto.analysis;
+
+import com.energy.manage.service.domain.dto.BaseDto;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 分析结果
+ * @author chy
+ * @date 2024/5/23 12:50
+ * @desc
+ */
+@Table(name = "analysis_result")
+@Data
+public class AnalysisResultDto extends BaseDto {
+
+
+    /**
+     * 风场名称
+     */
+    private String fieldName ;
+
+    /**
+     * 批次编号
+     */
+    private String batchCode ;
+
+    /**
+     * 分析状态
+     */
+    private Integer analysisState ;
+
+    /**
+     * 异常状态
+     */
+    private Integer errState ;
+
+    /**
+     * 创建人
+     */
+    private Integer createBy;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 用户角色id
+     */
+    private Integer roleId;
+
+}

+ 33 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisTypeDto.java

@@ -0,0 +1,33 @@
+package com.energy.manage.service.domain.dto.analysis;
+
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 分析类型表
+ * @author chy
+ * @date 2024/5/23 12:51
+ * @desc
+ */
+@Table(name = "analysis_type")
+@Data
+public class AnalysisTypeDto {
+
+    /**
+     * 分析类型父级编号
+     */
+    private String parentId ;
+
+    /**
+     * 分析类型编号
+     */
+    private String typeCode ;
+
+    /**
+     * 分析类型名称
+     */
+    private String typeName ;
+
+}

+ 23 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/CommentDto.java

@@ -0,0 +1,23 @@
+package com.energy.manage.service.domain.dto.analysis;
+
+import lombok.Data;
+
+/**
+ * 分析评论内容
+ * @author chy
+ * @date 2024/5/27 09:30
+ * @desc
+ */
+@Data
+public class CommentDto {
+
+    /**
+     * 评论类型名称
+     */
+    private String commentTypeCode ;
+
+    /**
+     * 富文本内容
+     */
+    private String comment ;
+}

+ 29 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/ConfigAnalysisDto.java

@@ -0,0 +1,29 @@
+package com.energy.manage.service.domain.dto.analysisalgorithm;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 分析类型
+ * @author chy
+ * @date 2024/5/30 16:22
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class ConfigAnalysisDto {
+    /**
+     * 包名
+     */
+    private String packages;
+
+    /**
+     * 类名
+     */
+    private String className;
+
+    /**
+     * 方法名
+     */
+    private String methodName;
+}

+ 35 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/CustomFilterDto.java

@@ -0,0 +1,35 @@
+package com.energy.manage.service.domain.dto.analysisalgorithm;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * @author chy
+ * @date 2024/5/30 14:07
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class CustomFilterDto {
+
+    /**
+     * 风速
+     */
+    private CustomerFilterItemDto valueWindSpeed;
+
+    /**
+     * 桨距角
+     */
+    private CustomerFilterItemDto valuePitchAngle;
+
+    /**
+     * 用工功率
+     */
+    private CustomerFilterItemDto valueActivePower;
+
+    /**
+     * 发电机转速
+     */
+    private CustomerFilterItemDto valueGeneratorSpeed;
+
+}

+ 24 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/CustomerFilterItemDto.java

@@ -0,0 +1,24 @@
+package com.energy.manage.service.domain.dto.analysisalgorithm;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * @author chy
+ * @date 2024/5/31 11:04
+ * @desc
+ */
+@Data
+@Accessors
+public class CustomerFilterItemDto {
+
+    /**
+     * 最小值
+     */
+    private String min;
+
+    /**
+     * 最大值
+     */
+    private String max;
+}

+ 43 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/DataContractDto.java

@@ -0,0 +1,43 @@
+package com.energy.manage.service.domain.dto.analysisalgorithm;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * 算法入参
+ * @author chy
+ * @date 2024/5/30 13:53
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class DataContractDto {
+
+    /**
+     * automatic 表示自动触发;manual 表示人工触发
+     */
+    private String autoOrManual = null ;
+
+    /**
+     * 数据源 : scada数据 、测风塔、事件
+     */
+    private DataSourceDto dataSource = new DataSourceDto();
+
+    /**
+     * 数据过滤
+     */
+    private DataFilterDto dataFilter = new DataFilterDto();
+
+    /**
+     * 配置分析类型
+     */
+    private List<ConfigAnalysisDto> configAnalysis;
+
+    /**
+     * 图像设置
+     */
+    private GraphSetsDto graphSets;
+
+}

+ 24 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/DataContractTypeDto.java

@@ -0,0 +1,24 @@
+package com.energy.manage.service.domain.dto.analysisalgorithm;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * @author chy
+ * @date 2024/5/30 13:54
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class DataContractTypeDto {
+
+    /**
+     * 算法类型
+     */
+    private String type = null;
+
+    /**
+     * 版本号
+     */
+    private String version = null;
+}

+ 51 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/DataFilterDto.java

@@ -0,0 +1,51 @@
+package com.energy.manage.service.domain.dto.analysisalgorithm;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/30 14:02
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class DataFilterDto {
+
+    /**
+     * 风场
+     */
+    private String powerFarmID;
+
+    /**
+     * 风机编号
+     */
+    private List<String> turbines;
+
+    /**
+     * 批次号
+     */
+    private String dataBatchNum;
+
+    /**
+     * 开始时间 格式(2024-01-01 00:00:00)
+     */
+    private String beginTime;
+
+    /**
+     * 结束时间 格式(2024-01-01 00:00:00)
+     */
+    private String endTime;
+
+    /**
+     * 过滤月份 格式(2024-01)
+     */
+    private List<String> excludingMonths;
+
+    /**
+     * 用户过滤
+     */
+    private CustomFilterDto customFilter;
+}

+ 25 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/DataSourceDto.java

@@ -0,0 +1,25 @@
+package com.energy.manage.service.domain.dto.analysisalgorithm;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 数据
+ * @author chy
+ * @date 2024/5/30 14:00
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class DataSourceDto {
+
+    /**
+     * scada数据
+     * 枚举值:minute、second、all,
+     * minute 用于人工分析场景,指定分析类型使用scada分钟级数据;
+     * seconde 用于人工分析场景,指定分析类型使用scada秒级数据;
+     * all 用于自动分析场景,分析类型按自身设计使用scada数据进行分析
+     */
+    private String scada;
+
+}

+ 47 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/GraphSetsDto.java

@@ -0,0 +1,47 @@
+package com.energy.manage.service.domain.dto.analysisalgorithm;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 图形设置
+ * @author chy
+ * @date 2024/5/30 14:21
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class GraphSetsDto {
+
+    /**
+     * 发电机转速
+     */
+    private GraphSetsItemDto generatorSpeed;
+
+    /**
+     * 发电机转矩
+     */
+    private GraphSetsItemDto generatorTorque;
+
+    /**
+     * 利用系数
+     */
+    private GraphSetsItemDto cp;
+
+    /**
+     * 叶尖速比
+     */
+    private GraphSetsItemDto tsr;
+
+    /**
+     * 桨距角
+     */
+    private GraphSetsItemDto pitchAngle;
+
+    /**
+     * 有功功率
+     */
+    private GraphSetsItemDto activePower;
+
+
+}

+ 27 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysisalgorithm/GraphSetsItemDto.java

@@ -0,0 +1,27 @@
+package com.energy.manage.service.domain.dto.analysisalgorithm;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * @author chy
+ * @date 2024/5/31 11:07
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class GraphSetsItemDto {
+
+    /**
+     * 步长
+     */
+    private String step;
+    /**
+     * 最小值
+     */
+    private String min;
+    /**
+     * 最大值
+     */
+    private String max;
+}

+ 45 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/datatransfer/DataTransferDto.java

@@ -0,0 +1,45 @@
+package com.energy.manage.service.domain.dto.datatransfer;
+
+import com.energy.manage.service.domain.dto.BaseDto;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/21 18:10
+ * @desc
+ */
+@Data
+public class DataTransferDto extends BaseDto {
+
+    /**
+     * 批次编号
+     */
+    private String batchCode;
+
+    /**
+     * 转换状态
+     */
+    private Integer transferState;
+
+    /**
+     * 登录用户的角色id
+     */
+    private Integer roleId;
+
+    /**
+     * 用户id
+     */
+    private Integer userId;
+
+    /**
+     * 风场编号
+     */
+    private String fieldCode;
+
+    /**
+     * 路径地址集合
+     */
+    List<DataTransferTypePathDto> dataTransferTypePathDtoList;
+}

+ 22 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/datatransfer/DataTransferTypePathDto.java

@@ -0,0 +1,22 @@
+package com.energy.manage.service.domain.dto.datatransfer;
+
+import lombok.Data;
+
+/**
+ * @author chy
+ * @date 2024/5/22 13:37
+ * @desc
+ */
+@Data
+public class DataTransferTypePathDto {
+
+    /**
+     * 转换类型
+     */
+    private String transferType;
+
+    /**
+     * 转换类型地址
+     */
+    private String transferFileAddr;
+}

+ 58 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windexceptioncount/WindExceptionCountDto.java

@@ -0,0 +1,58 @@
+package com.energy.manage.service.domain.dto.windexceptioncount;
+
+import com.energy.manage.service.domain.dto.BaseDto;
+import lombok.Data;
+
+/**
+ * @author chy
+ * @date 2024/5/23 17:39
+ * @desc
+ */
+@Data
+public class WindExceptionCountDto extends BaseDto {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 批次号
+     */
+    private String batchCode;
+
+    /**
+     * 风机编号
+     */
+    private String enginCode;
+
+    /**
+     *
+     */
+    private String analysisTypeCode;
+
+    /**
+     * 异常次数
+     */
+    private Integer errCount;
+
+    /**
+     * 处理异常数
+     */
+    private Integer handleErrCount;
+
+    /**
+     * 是否删除 0:否 1:是
+     */
+    private Integer isDelete;
+
+    /**
+     * 创建人 (前端不传 后端设置)
+     */
+    private Integer createBy;
+
+    /**
+     * 更新人
+     */
+    private Integer updateBy;
+}

+ 75 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windfieldbatch/WindFieldBatchDto.java

@@ -0,0 +1,75 @@
+package com.energy.manage.service.domain.dto.windfieldbatch;
+
+import com.energy.manage.service.domain.dto.BaseDto;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * @author chy
+ * @date 2024/5/21 12:49
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class WindFieldBatchDto extends BaseDto {
+
+    /**
+     * 风场名称
+     */
+    private String fieldName;
+
+    /**
+     * 风场编号
+     */
+    private String fieldCode;
+
+    /**
+     * 批次名称
+     */
+    private String batchName;
+
+    /**
+     * 批次编号
+     */
+    private String batchCode;
+
+    /**
+     * 批次状态 0:启用 1:停用
+     */
+    private Integer batchState;
+
+    /**
+     * 删除状态 0:未删除 1:删除
+     */
+    private Integer isDelete;
+
+    /**
+     * 登录用角色id (由代码设置,前端不用传)
+     */
+    private Integer roleId;
+
+    /**
+     * 创建人id
+     */
+    private Integer createBy;
+
+    /**
+     * 更新人id
+     */
+    private Integer updateBy;
+
+    /**
+     * 创建开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date startTime;
+
+    /**
+     * 创建结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date endTime;
+}

+ 64 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisCommentDescriptionVo.java

@@ -0,0 +1,64 @@
+package com.energy.manage.service.domain.vo.analysis;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 分析富文本描述
+ * @author chy
+ * @date 2024/5/23 12:56
+ * @desc
+ */
+@Data
+public class AnalysisCommentDescriptionVo {
+
+
+    /**
+     * 批次编号
+     */
+    private String batchCode ;
+
+    /**
+     * 分析类型编号
+     */
+    private String analysisTypeCode ;
+
+    /**
+     * 评论类型名称
+     */
+    private String commentTypeCode ;
+
+    /**
+     * 评论类型名称
+     */
+    private String commentTypeName ;
+
+    /**
+     * 富文本内容
+     */
+    private String comment ;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime ;
+
+    /**
+     * 创建人
+     */
+    private Integer createBy ;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime ;
+
+    /**
+     * 更新人
+     */
+    private Integer updateBy ;
+}

+ 52 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisCommentTypeRelationVo.java

@@ -0,0 +1,52 @@
+package com.energy.manage.service.domain.vo.analysis;
+
+import lombok.Data;
+
+import javax.persistence.Table;
+
+/**
+ * 分析评论类型关联
+ * @author chy
+ * @date 2024/5/23 12:53
+ * @desc
+ */
+@Table(name = "analysis_comment_type_relation")
+@Data
+public class AnalysisCommentTypeRelationVo {
+
+//    /**
+//     * 批次编号
+//     */
+//    private String batchCode;
+//
+//    /**
+//     * 分析类型编号
+//     */
+//    private String analysisTypeCode;
+
+    /**
+     * 评论类型标号
+     */
+    private String commentTypeCode;
+
+    /**
+     * 评论类型名称
+     */
+    private String commentTypeName;
+
+    /**
+     * 是否自定义 0:否 1:是
+     */
+    private Integer isDefined;
+
+    /**
+     * 是否删除 0:否 1:是
+     */
+    private Integer isDelete;
+
+    /**
+     * 创建人
+     */
+    private Integer createBy;
+
+}

+ 47 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisDetailVo.java

@@ -0,0 +1,47 @@
+package com.energy.manage.service.domain.vo.analysis;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/28 13:37
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class AnalysisDetailVo {
+
+    /**
+     * 分析类型编号
+     */
+    private String analysisTypeCode;
+
+    /**
+     * 分析类型名称
+     */
+    private String analysisTypeName;
+
+    /**
+     * 总文件
+     */
+    private List<AnalysisGeneralFileVo> generalFiles;
+
+    /**
+     * 分文件
+     */
+    private List<AnalysisDiagramRelationVo> diagramRelations;
+
+    /**
+     * 富文本类型列表
+     */
+    private List<AnalysisCommentTypeRelationVo> commentTypeRelations;
+
+    /**
+     * 富文本内容列表
+     */
+    private List<AnalysisCommentDescriptionVo> commentDescriptionVos;
+
+}

+ 55 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisDiagramRelationVo.java

@@ -0,0 +1,55 @@
+package com.energy.manage.service.domain.vo.analysis;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 分析结果图文关系表
+ * @author chy
+ * @date 2024/5/23 12:52
+ * @desc
+ */
+@Table(name = "analysis_diagram_relation")
+@Data
+public class AnalysisDiagramRelationVo {
+
+
+    /**
+     * 批次编号
+     */
+    private String batchCode ;
+
+    /**
+     * 风机编号
+     */
+    private String fieldEngineCode ;
+
+    /**
+     * 分析类型编号
+     */
+    private String analysisTypeCode ;
+
+    /**
+     * 分析类型名称
+     */
+    private String analysisTypeName ;
+
+    /**
+     * 分析结果地址minio
+     */
+    private String fileAddr ;
+
+    /**
+     * 是否自动分析 0: 不自动分析 1: 自动分析
+     */
+    private Integer autoAnalysis ;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime ;
+}

+ 45 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisGeneralFileVo.java

@@ -0,0 +1,45 @@
+package com.energy.manage.service.domain.vo.analysis;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 分析结果总图表
+ * @author chy
+ * @date 2024/5/23 12:55
+ * @desc
+ */
+@Table(name = "analysis_general_file")
+@Data
+public class AnalysisGeneralFileVo {
+
+
+    /**
+     * 批次号
+     */
+    private String batchCode ;
+
+    /**
+     * 分析类型编号
+     */
+    private String analysisTypeCode ;
+
+    /**
+     * 总文件地址minIO
+     */
+    private String fileAddr ;
+
+    /**
+     * 是否自动分析 0:手动 1自动
+     */
+    private Integer autoAnalysis ;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime ;
+}

+ 28 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisResultShowVo.java

@@ -0,0 +1,28 @@
+package com.energy.manage.service.domain.vo.analysis;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author chy
+ * @date 2024/5/27 17:59
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class AnalysisResultShowVo {
+
+    /**
+     * 分析类型(树形结构)
+     */
+    private List<Map<String,Object>> analysisTypeList;
+
+    /**
+     * 风机机组编号
+     */
+    private List<String> windEngineGroupList;
+
+}

+ 67 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisResultVo.java

@@ -0,0 +1,67 @@
+package com.energy.manage.service.domain.vo.analysis;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 分析结果
+ * @author chy
+ * @date 2024/5/23 12:50
+ * @desc
+ */
+@Table(name = "analysis_result")
+@Data
+public class AnalysisResultVo {
+
+
+    /**
+     * 批次编号
+     */
+    private String batchCode ;
+
+    /**
+     * 分析状态
+     */
+    private Integer analysisState ;
+
+    /**
+     * 异常状态
+     */
+    private Integer errState ;
+
+    /**
+     * 异常编号
+     */
+    private String errCode ;
+
+    /**
+     * 异常信息
+     */
+    private String errInfo ;
+
+    /**
+     * 创建人
+     */
+    private Integer createBy ;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime ;
+
+    /**
+     *  更新人
+     */
+    private Integer updateBy ;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime ;
+
+}

+ 32 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisTypeVo.java

@@ -0,0 +1,32 @@
+package com.energy.manage.service.domain.vo.analysis;
+
+import lombok.Data;
+
+import javax.persistence.Table;
+
+/**
+ * 分析类型表
+ * @author chy
+ * @date 2024/5/23 12:51
+ * @desc
+ */
+@Table(name = "analysis_type")
+@Data
+public class AnalysisTypeVo {
+
+    /**
+     * 分析类型父级编号
+     */
+    private String parentId ;
+
+    /**
+     * 分析类型编号
+     */
+    private String typeCode ;
+
+    /**
+     * 分析类型名称
+     */
+    private String typeName ;
+
+}

+ 25 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/datatransfer/DataTransferQueryAndAddVo.java

@@ -0,0 +1,25 @@
+package com.energy.manage.service.domain.vo.datatransfer;
+
+import com.energy.manage.common.po.datatransfer.DataTransferTypePo;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/22 10:50
+ * @desc
+ */
+@Data
+public class DataTransferQueryAndAddVo {
+
+    /**
+     * 批次列表
+     */
+    private List<String> batchCodeList;
+
+    /**
+     * 转换类型列表
+     */
+    private List<DataTransferTypeVo> dataTransferTypeVoList;
+}

+ 22 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/datatransfer/DataTransferTypeVo.java

@@ -0,0 +1,22 @@
+package com.energy.manage.service.domain.vo.datatransfer;
+
+import lombok.Data;
+
+/**
+ * @author chy
+ * @date 2024/5/22 10:58
+ * @desc
+ */
+@Data
+public class DataTransferTypeVo {
+
+    /**
+     * 转换类型
+     */
+    private String transferType;
+
+    /**
+     * 转换类型名称
+     */
+    private String transferTypeName;
+}

+ 65 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/datatransfer/DataTransferVo.java

@@ -0,0 +1,65 @@
+package com.energy.manage.service.domain.vo.datatransfer;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 数据转换结果展示
+ * @author chy
+ * @date 2024/5/21 18:09
+ * @desc
+ */
+@Data
+public class DataTransferVo {
+
+    /**
+     * 风场编号
+     */
+    private String fieldCode;
+
+    /**
+     * 批次编号
+     */
+    private String batchCode;
+
+    /**
+     * 风机数量
+     */
+    private Integer engineCount;
+
+    /**
+     * 转换状态 1:初始化状态 0-转换中 1-转换成功 2-转换失败
+     */
+    private Integer transferState;
+
+    /**
+     * 异常信息
+     */
+    private String errInfo;
+
+    /**
+     * 转换完成时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date transferFinishTime;
+
+    /**
+     * 转换类型
+     */
+    private Integer transferType;
+
+    /**
+     * 转换类型名称
+     */
+    private String transferTypeName;
+
+    /**
+     * 转换文件地址
+     */
+    private String transferFileAddr;
+
+
+
+}

+ 54 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windexceptioncount/WindExceptionCountVo.java

@@ -0,0 +1,54 @@
+package com.energy.manage.service.domain.vo.windexceptioncount;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author chy
+ * @date 2024/5/23 17:39
+ * @desc
+ */
+@Data
+public class WindExceptionCountVo {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 批次号
+     */
+    private String batchCode;
+
+    /**
+     * 风机编号
+     */
+    private String enginCode;
+
+    /**
+     *
+     */
+    private String analysisTypeCode;
+
+    /**
+     * 异常次数
+     */
+    private Integer errCount;
+
+    /**
+     * 处理异常数
+     */
+    private Integer handleErrCount;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+}

+ 41 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windfieldbatch/WindFieldBatchVo.java

@@ -0,0 +1,41 @@
+package com.energy.manage.service.domain.vo.windfieldbatch;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author chy
+ * @date 2024/5/21 17:39
+ * @desc
+ */
+@Data
+public class WindFieldBatchVo {
+
+    /**
+     * 批次编号
+     */
+    private String batchCode;
+
+    /**
+     * 风场名称
+     */
+    private String fieldName;
+
+    /**
+     * 风场编号
+     */
+    private String fieldCode;
+
+    /**
+     * 批次状态
+     */
+    private Integer batchState;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+}

+ 50 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisCommentDescriptionMapper.java

@@ -0,0 +1,50 @@
+package com.energy.manage.service.mappers.analysis;
+
+import com.energy.manage.common.mapper.MyMapper;
+import com.energy.manage.common.po.analysis.AnalysisCommentDescriptionPo;
+import com.energy.manage.service.domain.vo.analysis.AnalysisCommentDescriptionVo;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/23 13:04
+ * @desc
+ */
+@Repository
+public interface AnalysisCommentDescriptionMapper extends MyMapper<AnalysisCommentDescriptionPo> {
+
+
+    /**
+     * 根据条件查询评论数(批次 + 分析类型 + 文本类型编号)
+     * @param commentTypeCode
+     * @return
+     */
+   int selectCountByCommentTypeCode(String commentTypeCode);
+
+
+    /**
+     * 根据条件查询评论数(批次 + 分析类型 + 文本类型编号)
+     * @param batchCode
+     * @param analysisTypeCode
+     * @return
+     */
+    List<AnalysisCommentDescriptionVo> selecByBatchCodeAndAnalysisTypeCode(String batchCode, String analysisTypeCode);
+
+    /**
+     *  新增
+     * @param commentDescriptionPo
+     * @return
+     */
+   int insertPoSelective(AnalysisCommentDescriptionPo commentDescriptionPo);
+
+    /**
+     * 更新
+     * @param commentDescriptionPo
+     * @return
+     */
+   int updatePoSelective(AnalysisCommentDescriptionPo commentDescriptionPo);
+
+
+}

+ 51 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisCommentTypeRelationMapper.java

@@ -0,0 +1,51 @@
+package com.energy.manage.service.mappers.analysis;
+
+import com.energy.manage.common.mapper.MyMapper;
+import com.energy.manage.common.po.analysis.AnalysisCommentTypeRelationPo;
+import com.energy.manage.service.domain.dto.analysis.AnalysisCommentTypeRelationDto;
+import com.energy.manage.service.domain.vo.analysis.AnalysisCommentTypeRelationVo;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/23 13:05
+ * @desc
+ */
+@Repository
+public interface AnalysisCommentTypeRelationMapper extends MyMapper<AnalysisCommentTypeRelationPo> {
+
+    /**
+     * 根据批次号与分析类型查询
+     * @param batchCode
+     * @param analysisTypeCode
+     * @return
+     */
+    List<AnalysisCommentTypeRelationVo> selectByAnalysisTypeCode(@Param("batchCode") String batchCode,
+                                                                 @Param("analysisTypeCode") String analysisTypeCode);
+
+    /**
+     * 根据typeCode 查询信息
+     * @param commentTypeCode
+     * @return
+     */
+    AnalysisCommentTypeRelationVo selectByTypeCode(String commentTypeCode);
+
+    /**
+     * 新增富文本类型
+     * @param analysisCommentTypeRelationDto
+     * @return
+     */
+    int insertPoSelective(AnalysisCommentTypeRelationDto analysisCommentTypeRelationDto);
+
+
+    /**
+     * 删除自定义评论类型
+     * @param commentTypeCode
+     * @return
+     */
+    int deleteByTypeCode(String commentTypeCode);
+
+}

+ 25 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisDiagramRelationMapper.java

@@ -0,0 +1,25 @@
+package com.energy.manage.service.mappers.analysis;
+
+import com.energy.manage.common.mapper.MyMapper;
+import com.energy.manage.common.po.analysis.AnalysisDiagramRelationPo;
+import com.energy.manage.service.domain.vo.analysis.AnalysisDiagramRelationVo;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/23 16:41
+ * @desc
+ */
+@Repository
+public interface AnalysisDiagramRelationMapper extends MyMapper<AnalysisDiagramRelationPo>{
+
+
+    List<AnalysisDiagramRelationVo> selectByCondition(@Param("batchCode") String batchCode,
+                                                      @Param("analysisTypeCode") String analysisTypeCode,
+                                                      @Param("fieldEngineCode") String fieldEngineCode);
+
+
+}

+ 25 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisGeneralFileMapper.java

@@ -0,0 +1,25 @@
+package com.energy.manage.service.mappers.analysis;
+
+import com.energy.manage.common.mapper.MyMapper;
+import com.energy.manage.service.domain.vo.analysis.AnalysisGeneralFileVo;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/23 13:04
+ * @desc
+ */
+@Repository
+public interface AnalysisGeneralFileMapper extends MyMapper<AnalysisGeneralFileVo> {
+
+    /**
+     * 根据批次号与分型类型编号查询通用文件
+     * @param batchCode
+     * @param analysisTypeCode
+     * @return
+     */
+    List<AnalysisGeneralFileVo> selectByCondition(String batchCode, String analysisTypeCode);
+
+}

+ 35 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisResultMapper.java

@@ -0,0 +1,35 @@
+package com.energy.manage.service.mappers.analysis;
+
+import com.energy.manage.common.mapper.MyMapper;
+import com.energy.manage.common.po.analysis.AnalysisResultPo;
+import com.energy.manage.service.domain.dto.analysis.AnalysisResultDto;
+import com.energy.manage.service.domain.vo.analysis.AnalysisResultVo;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/23 13:03
+ * @desc
+ */
+@Repository
+public interface AnalysisResultMapper extends MyMapper<AnalysisResultPo> {
+
+    /**
+     * 查询分析结果
+     * @param analysisResultDto
+     * @return
+     */
+    List<AnalysisResultVo> selectByCondition(AnalysisResultDto analysisResultDto);
+
+
+    /**
+     * 查询分析中的数据量
+     * @param batchCode
+     * @return
+     */
+    int selectAlasisingCountByBatchCode(@Param("batchCode") String batchCode);
+
+}

+ 31 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisTypeMapper.java

@@ -0,0 +1,31 @@
+package com.energy.manage.service.mappers.analysis;
+
+import com.energy.manage.common.mapper.MyMapper;
+import com.energy.manage.common.po.analysis.AnalysisTypePo;
+import com.energy.manage.service.domain.vo.analysis.AnalysisTypeVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/23 13:03
+ * @desc
+ */
+@Repository
+public interface AnalysisTypeMapper extends MyMapper <AnalysisTypePo>{
+
+    /**
+     * 查询所有的分析类型
+     * @return
+     */
+    List<AnalysisTypeVo> selectAllVo();
+
+    /**
+     * 根据类型编号查询所有的分析类型
+     * @param typeCode
+     * @return
+     */
+    List<AnalysisTypeVo> selectByTypeCode(String typeCode);
+}

+ 65 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/datatransfer/DataTransferMapper.java

@@ -0,0 +1,65 @@
+package com.energy.manage.service.mappers.datatransfer;
+
+import com.energy.manage.common.mapper.MyMapper;
+import com.energy.manage.common.po.datatransfer.DataTransferPo;
+import com.energy.manage.service.domain.dto.datatransfer.DataTransferDto;
+import com.energy.manage.service.domain.vo.datatransfer.DataTransferVo;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 数据转换持久层
+ * @author chy
+ * @date 2024/5/20 15:04
+ * @desc
+ */
+@Repository
+public interface DataTransferMapper extends MyMapper<DataTransferPo>{
+
+    /**
+     * 获取当前角色所有进行过数据转的风场批次号
+     * @param roleId
+     * @return
+     */
+    List<String> selectAllWindFieldBtach(Integer roleId);
+
+    /**
+     * 查询数据转换列表
+     * @param dataTransferDto
+     * @return
+     */
+    List<DataTransferVo> selectDataTransferListByCondition(DataTransferDto dataTransferDto);
+
+
+    /**
+     * 批量添加
+     * @param poList
+     * @return
+     */
+    int addDataTransferBatch(List<DataTransferPo> poList);
+
+    /**
+     * 查询批次号下的数据转换列表
+     * @param batchCode
+     * @param dataTransferType
+     * @return
+     */
+    DataTransferPo selectByBatchCodeAndDataTransferType(String batchCode,String dataTransferType);
+
+
+    /**
+     * 更新数据转换
+     * @param dataTransferPo
+     * @return
+     */
+    int updateDataTransfer(DataTransferPo dataTransferPo);
+
+    /**
+     * 查询某种状态下的数据量
+     * @param transferState
+     * @return
+     */
+    int selectCountByTransferState(Integer transferState);
+
+}

+ 17 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/datatransferhistory/DataTransferHistoryMapper.java

@@ -0,0 +1,17 @@
+package com.energy.manage.service.mappers.datatransferhistory;
+
+import com.energy.manage.common.mapper.MyMapper;
+import com.energy.manage.common.po.datatransfer.DataTransferHistoryPo;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 数据转换历史记录
+ * @author chy
+ * @date 2024/5/20 15:04
+ * @desc
+ */
+@Repository
+public interface DataTransferHistoryMapper extends MyMapper<DataTransferHistoryPo>{
+
+    int addDataTransferHistory(DataTransferHistoryPo po);
+}

+ 24 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/datatransfertype/DataTransferTypeMapper.java

@@ -0,0 +1,24 @@
+package com.energy.manage.service.mappers.datatransfertype;
+
+import com.energy.manage.common.mapper.MyMapper;
+import com.energy.manage.common.po.datatransfer.DataTransferTypePo;
+import com.energy.manage.service.domain.vo.datatransfer.DataTransferTypeVo;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 数据转换类型持久层
+ * @author chy
+ * @date 2024/5/20 15:06
+ * @desc
+ */
+@Repository
+public interface DataTransferTypeMapper extends MyMapper<DataTransferTypePo>{
+
+    /**
+     * 查询所有转换类型信息
+     * @return
+     */
+    List<DataTransferTypeVo> selectAllInfo();
+}

+ 4 - 6
energy-manage-service/src/main/java/com/energy/manage/service/mappers/system/SysOrganizationAuthMapper.java

@@ -1,18 +1,16 @@
 package com.energy.manage.service.mappers.system;
 
 
-import com.energy.manage.common.base.NewBaseDomain;
 import com.energy.manage.common.mapper.MyMapper;
 import com.energy.manage.common.po.system.SysOrganizationAuthPO;
-import com.energy.manage.common.po.system.SysPermissionPO;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 @Repository
 public interface SysOrganizationAuthMapper extends MyMapper<SysOrganizationAuthPO> {
 
 
-
+    List<SysOrganizationAuthPO> selectByRoleId(@Param("roleId") Integer roleId);
 }

+ 15 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/windenginegroup/WindEngineGroupMapper.java

@@ -5,6 +5,7 @@ import com.energy.manage.common.mapper.MyMapper;
 import com.energy.manage.common.po.windenginegroup.WindEngineGroupPO;
 import com.energy.manage.service.domain.dto.windenginegroup.WindEngineGroupPageDto;
 import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupPageVo;
+import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupVo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
@@ -17,6 +18,20 @@ public interface WindEngineGroupMapper extends MyMapper<WindEngineGroupPO> {
 
    List<WindEngineGroupPageVo> selectWindEngineGroupByNames(@Param("item") WindEngineGroupPageDto windEngineGroupPageDto);
 
+   /**
+    * 查看当前角色所关联的机组
+    * @param roleId
+    * @return
+    */
+   List<WindEngineGroupVo> selectWindEngineGroupByRoleId(@Param("roleId") Integer roleId);
+
+   /**
+    * 根据批次号查询风机组
+    * @param batchCode
+    * @return
+    */
+   List<WindEngineGroupVo> selectWindEngineGroupByBatchCode(@Param("batchCode") String batchCode);
+
 
 
 }

+ 42 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/windexceptioncount/WindExceptionCountMapper.java

@@ -0,0 +1,42 @@
+package com.energy.manage.service.mappers.windexceptioncount;
+
+import com.energy.manage.common.mapper.MyMapper;
+import com.energy.manage.common.po.windexceptioncount.WindExceptionCountPo;
+import com.energy.manage.service.domain.dto.windexceptioncount.WindExceptionCountDto;
+import com.energy.manage.service.domain.vo.windexceptioncount.WindExceptionCountVo;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/23 17:38
+ * @desc
+ */
+@Repository
+public interface WindExceptionCountMapper extends MyMapper<WindExceptionCountPo>{
+
+    /**
+     * 根据批次号、风机编号、分析类型编码 查询所有异常描述
+     * @param windExceptionCountDto
+     * @return
+     */
+    List<WindExceptionCountVo> selectByCondition(WindExceptionCountDto windExceptionCountDto);
+
+
+    /**
+     * 添加异常描述
+     * @param windExceptionCountDto
+     * @return
+     */
+    int insertPoSelective(WindExceptionCountDto windExceptionCountDto);
+
+
+    /**
+     * 修改异常描述 只改异常数 处理异常数 更新人
+     * @param analysisResultDto
+     * @return
+     */
+    int updatePoSelecttive(WindExceptionCountDto analysisResultDto);
+
+}

+ 45 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/windfieldbatch/WindFieldBatchMapper.java

@@ -0,0 +1,45 @@
+package com.energy.manage.service.mappers.windfieldbatch;
+
+import com.energy.manage.common.mapper.MyMapper;
+import com.energy.manage.common.po.windfieldbatch.WindFieldBatchPo;
+import com.energy.manage.service.domain.dto.windfieldbatch.WindFieldBatchDto;
+import com.energy.manage.service.domain.vo.windfieldbatch.WindFieldBatchVo;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/21 10:55
+ * @desc
+ */
+@Repository
+public interface WindFieldBatchMapper extends MyMapper<WindFieldBatchPo>{
+
+    /**
+     * 新增
+     * @param windEgineBatchDto
+     */
+    int addWindFieldBatch(WindFieldBatchDto windEgineBatchDto);
+
+    /**
+     * 更新/启用/删除
+     * @param windFieldBatchDto
+     */
+    int updateWindFieldBatch(WindFieldBatchDto windFieldBatchDto);
+
+
+    /**
+     * 查询批次列表
+     * @return
+     */
+    List<WindFieldBatchVo> selectWindFieldBatch(WindFieldBatchDto windFieldBatchDto);
+
+    /**
+     * 根据批次号查询批次信息
+     * @param batchNo
+     * @return
+     */
+    WindFieldBatchVo selectByBatchCode(String batchNo);
+
+}

+ 57 - 0
energy-manage-service/src/main/java/com/energy/manage/service/property/analysis/AlgorithmProperties.java

@@ -0,0 +1,57 @@
+package com.energy.manage.service.property.analysis;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 算法属性值
+ * @author chy
+ * @date 2024/5/30 17:37
+ * @desc
+ */
+@Component
+public class AlgorithmProperties {
+
+    /**
+     * 算法地址
+     */
+    public static String analysisUrl;
+
+    /**
+     * 传给分析算法json
+     */
+    public static String analysisJson;
+
+    /**
+     * 图像设置参数属性
+     */
+    public static List<String> graphSetsProperties;
+
+    /**
+     * 分析类型属性
+     */
+    public static String configAnalysisProperties;
+
+
+    @Value("${analysis.url}")
+    public void setAnalysisUrl(String analysisUrl){
+        AlgorithmProperties.analysisUrl = analysisUrl;
+    }
+
+    @Value("${analysis.json}")
+    public void setAnalysisJson(String analysisJson){
+        AlgorithmProperties.analysisJson = analysisJson;
+    }
+
+    @Value("${graphSets.properties}")
+    public void setGraphSetsProperties(List<String> graphSetsProperties){
+        AlgorithmProperties.graphSetsProperties = graphSetsProperties;
+    }
+
+    @Value("${analysis.properties}")
+    public void setConfigAnalysisProperties(String configAnalysis){
+        AlgorithmProperties.configAnalysisProperties = configAnalysis;
+    }
+}

+ 55 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/AnalysisService.java

@@ -0,0 +1,55 @@
+package com.energy.manage.service.service.analysis;
+
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.service.domain.dto.analysis.AnalysisAlgorithmDto;
+import com.energy.manage.service.domain.dto.analysis.AnalysisDto;
+import com.energy.manage.service.domain.dto.analysis.AnalysisResultDto;
+import com.energy.manage.service.domain.vo.analysis.AnalysisDetailVo;
+import com.energy.manage.service.domain.vo.analysis.AnalysisResultShowVo;
+import com.energy.manage.service.domain.vo.analysis.AnalysisResultVo;
+import com.fasterxml.jackson.core.JsonProcessingException;
+
+import java.util.List;
+
+/**
+ * 分析服务
+ * @author chy
+ * @date 2024/5/23 12:59
+ * @desc
+ */
+public interface AnalysisService {
+
+    /**
+     * 分析结果列表
+     * @param analysisResultDto
+     * @return
+     */
+    List<AnalysisResultVo> analysisResultList(AnalysisResultDto analysisResultDto);
+
+
+    /**
+     * 分析
+     * @param analysisDto
+     * @return
+     */
+    ResultResp analysis(AnalysisDto analysisDto);
+
+
+    /**
+     * 分析编辑查询
+     * @param batchCode
+     * @return
+     */
+    AnalysisResultShowVo analysisEditQuery(String batchCode);
+
+    /**
+     * 分析详情
+     * @param batchCode
+     * @param analysisTypeCode
+     * @param fieldEngineCode
+     * @return
+     */
+    List<AnalysisDetailVo> analysisDetail(String batchCode, String analysisTypeCode, String fieldEngineCode);
+
+
+}

+ 347 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/impl/AnalysisServiceImpl.java

@@ -0,0 +1,347 @@
+package com.energy.manage.service.service.analysis.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.energy.manage.common.reponse.ConstVar;
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.common.util.HttpUtils;
+import com.energy.manage.service.constant.analysis.AnalysisConstants;
+import com.energy.manage.service.domain.dto.analysis.AnalysisDto;
+import com.energy.manage.service.domain.dto.analysis.AnalysisResultDto;
+import com.energy.manage.service.domain.dto.analysisalgorithm.DataContractDto;
+import com.energy.manage.service.domain.dto.analysisalgorithm.DataContractTypeDto;
+import com.energy.manage.service.domain.vo.analysis.*;
+import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupVo;
+import com.energy.manage.service.mappers.analysis.*;
+import com.energy.manage.service.mappers.windenginegroup.WindEngineGroupMapper;
+import com.energy.manage.service.property.analysis.AlgorithmProperties;
+import com.energy.manage.service.service.analysis.AnalysisService;
+import com.energy.manage.service.util.BeanMapUtils;
+import com.energy.manage.service.util.TreeUtil;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.lang.reflect.Field;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 分析服务
+ * @author chy
+ * @date 2024/5/23 12:59
+ * @desc
+ */
+@Slf4j
+@Service
+public class AnalysisServiceImpl implements AnalysisService {
+
+
+    @Autowired
+    private AnalysisResultMapper analysisResultMapper;
+
+    @Autowired
+    private AnalysisTypeMapper analysisTypeMapper;
+
+    @Autowired
+    private WindEngineGroupMapper engineGroupMapper;
+
+    @Autowired
+    private AnalysisCommentDescriptionMapper commentDescriptionMapper;
+
+    @Autowired
+    private AnalysisCommentTypeRelationMapper commentTypeRelationMapper;
+
+    @Autowired
+    private AnalysisDiagramRelationMapper diagramRelationMapper;
+
+    @Autowired
+    private AnalysisGeneralFileMapper generalFileMapper;
+
+    /**
+     * 分析结果列表
+     * @param analysisResultDto
+     * @return
+     */
+    @Override
+    public List<AnalysisResultVo> analysisResultList(AnalysisResultDto analysisResultDto) {
+        return analysisResultMapper.selectByCondition(analysisResultDto);
+    }
+
+    /**
+     * 分析
+     * @param analysisDto
+     * @return
+     */
+    @Override
+    public ResultResp analysis(AnalysisDto analysisDto) {
+        try {
+            String batchCode = analysisDto.getDataBatchNum();
+            if(checkAnalysising(batchCode)){
+                return ResultResp.FAIL(ConstVar.ANALYSISING);
+            }
+            //将配置文件中的算法json转换为对象
+            ObjectMapper mapper = new ObjectMapper();
+            JsonNode rootNode = mapper.readTree(AlgorithmProperties.analysisJson);
+            //将前端入参转换为算法标准json
+            dataProccess(analysisDto,rootNode);
+            //调用算法
+            JSONObject jsonObject = HttpUtils.doPost(AlgorithmProperties.analysisUrl,mapper.convertValue(rootNode, Map.class));
+            log.info("调用算法分析返回结果:{}",jsonObject);
+            return ResultResp.SUCCESS();
+        } catch (JsonProcessingException e) {
+            log.error("批次号 = {} 手动分析异常",analysisDto.getDataBatchNum(),e);
+            return ResultResp.FAIL();
+        }
+    }
+
+    /**
+     * 分析编辑查询(查询分析类型、风机组)
+     * @param batchCode
+     * @return
+     */
+    @Override
+    public AnalysisResultShowVo analysisEditQuery(String batchCode){
+        AnalysisResultShowVo analysisResultShowVo = new AnalysisResultShowVo();
+        return analysisResultShowVo.setAnalysisTypeList(getAnalysisType())
+                .setWindEngineGroupList(getWindEngineGroupByBatchCode(batchCode));
+    }
+
+
+    /**
+     * 分析详情
+     * @param batchCode
+     * @param analysisTypeCode
+     * @param fieldEngineCode
+     * @return
+     */
+    @Override
+    public List<AnalysisDetailVo> analysisDetail(String batchCode, String analysisTypeCode, String fieldEngineCode) {
+        List<AnalysisDetailVo> analysisDetailVos = new ArrayList<>();
+        //获取所有的分析类型
+        List<AnalysisTypeVo> analysisTypeVos = analysisTypeMapper.selectByTypeCode(analysisTypeCode);
+        if(CollectionUtils.isEmpty(analysisTypeVos)){
+            return analysisDetailVos;
+        }
+        //最新总文件
+        List<AnalysisGeneralFileVo> newGeneralFileVos = new ArrayList<>();
+        //如果风机编号为空的话 则需要查总文件
+        if(StringUtils.isBlank(fieldEngineCode)){
+            //获取最新总文件列表
+            newGeneralFileVos = getNewGeneralFiles(batchCode,analysisTypeCode);
+        }
+        //获取最新分文件
+        List<AnalysisDiagramRelationVo> newDiagramRelationVos = getNewDiagramRelations(batchCode, analysisTypeCode, fieldEngineCode);
+        //查询评论
+        List<AnalysisCommentDescriptionVo> commentDescriptionVos = commentDescriptionMapper.selecByBatchCodeAndAnalysisTypeCode(batchCode,analysisTypeCode);
+        //根据分析类型设置分析结果
+        List<AnalysisGeneralFileVo> finalNewGeneralFileVos = newGeneralFileVos;
+        analysisTypeVos.forEach(analysisTypeVo -> {
+            //设置相应参数
+            AnalysisDetailVo analysisDetailVo = getAnalysisDetailVo(analysisTypeVo, finalNewGeneralFileVos,newDiagramRelationVos,commentDescriptionVos);
+            if(analysisDetailVo != null){
+                analysisDetailVos.add(analysisDetailVo);
+            }
+        });
+        //只有当分析类型不为空的时候才返回评论类型
+        if(StringUtils.isNotBlank(analysisTypeCode) && CollectionUtils.isNotEmpty(analysisDetailVos)){
+            analysisDetailVos.get(0).setCommentTypeRelations(commentTypeRelationMapper.selectByAnalysisTypeCode(batchCode,analysisTypeCode));
+        }
+        return analysisDetailVos;
+    }
+
+
+    /**
+     * 获取分析类型
+     */
+    private List<Map<String,Object>> getAnalysisType(){
+        List<Map<String,Object>> resultList = new ArrayList<>();
+        List<AnalysisTypeVo> analysisTypeVos =  analysisTypeMapper.selectAllVo();
+        if(CollectionUtils.isEmpty(analysisTypeVos)){
+            return resultList;
+        }
+        analysisTypeVos.forEach(analysisTypeVo -> resultList.add(BeanMapUtils.beanToMap(analysisTypeVo)));
+        return TreeUtil.getJava8ResultTree(resultList, AnalysisConstants.ANALYSIS_TYPE_PARRENT_KEY);
+    }
+
+    /**
+     * 获取风机组编号
+     * @param batchCode
+     * @return
+     */
+    private List<String> getWindEngineGroupByBatchCode(String batchCode){
+        List<WindEngineGroupVo> engineGroupVos = engineGroupMapper.selectWindEngineGroupByBatchCode(batchCode);
+        return engineGroupVos.parallelStream().map(WindEngineGroupVo::getEngineCode).collect(Collectors.toList());
+    }
+
+
+    /**
+     * 获取总文件
+     * @param batchCode
+     * @param analysisTypeCode
+     * @return
+     */
+    private List<AnalysisGeneralFileVo> getNewGeneralFiles(String batchCode,String analysisTypeCode){
+        List<AnalysisGeneralFileVo> generalFileVos = generalFileMapper.selectByCondition(batchCode,analysisTypeCode);
+        generalFileVos.sort(Comparator.comparing(AnalysisGeneralFileVo::getCreateTime,Comparator.reverseOrder()));
+        //删除地址相同的文件
+        return generalFileVos.stream().collect(Collectors.collectingAndThen(
+                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(AnalysisGeneralFileVo::getFileAddr))),
+                ArrayList :: new));
+    }
+
+
+    /**
+     * 获取最新分析结果分文件
+     * @param batchCode
+     * @param analysisTypeCode
+     * @param fieldEngineCode
+     * @return
+     */
+    private List<AnalysisDiagramRelationVo> getNewDiagramRelations(String batchCode,String analysisTypeCode,String fieldEngineCode){
+        List<AnalysisDiagramRelationVo> diagramRelationVos = diagramRelationMapper.selectByCondition(batchCode,analysisTypeCode,fieldEngineCode);
+        if(CollectionUtils.isEmpty(diagramRelationVos)){
+            return diagramRelationVos;
+        }
+        //如果风机编号不为空的话则不对风机编号进行排序
+        if (StringUtils.isNotBlank(fieldEngineCode)) {
+            diagramRelationVos.sort(Comparator.comparing(AnalysisDiagramRelationVo::getCreateTime, Comparator.reverseOrder()));
+        } else {
+            diagramRelationVos.sort(Comparator.comparing(AnalysisDiagramRelationVo::getFieldEngineCode)
+                    .thenComparing(AnalysisDiagramRelationVo::getCreateTime, Comparator.reverseOrder()));
+        }
+        //去除地址相同的对象
+        return diagramRelationVos.stream().collect(Collectors.collectingAndThen(
+                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(AnalysisDiagramRelationVo::getFileAddr))),
+                                                     ArrayList :: new)
+        );
+    }
+
+    /**
+     * 设置分析结果
+     * @param analysisTypeVo
+     * @param newGeneralFileVos
+     * @param newDiagramRelationVos
+     * @param commentDescriptionVos
+     * @return
+     */
+    private AnalysisDetailVo getAnalysisDetailVo(AnalysisTypeVo analysisTypeVo,
+                                                 List<AnalysisGeneralFileVo> newGeneralFileVos,
+                                                 List<AnalysisDiagramRelationVo> newDiagramRelationVos,
+                                                 List<AnalysisCommentDescriptionVo> commentDescriptionVos){
+        List<AnalysisGeneralFileVo> generalFileVos = null;
+        if(CollectionUtils.isNotEmpty(newGeneralFileVos)) {
+            generalFileVos = newGeneralFileVos.stream().filter(analysisGeneralFileVo -> analysisGeneralFileVo.getAnalysisTypeCode().equals(analysisTypeVo.getTypeCode())).collect(Collectors.toList());
+        }
+        List<AnalysisDiagramRelationVo> diagramRelationVos = null;
+        if(CollectionUtils.isNotEmpty(newDiagramRelationVos)){
+            diagramRelationVos = newDiagramRelationVos.stream().filter(analysisDiagramRelationVo -> analysisDiagramRelationVo.getAnalysisTypeCode().equals(analysisTypeVo.getTypeCode())).collect(Collectors.toList());
+        }
+        if(CollectionUtils.isEmpty(generalFileVos) && CollectionUtils.isEmpty(diagramRelationVos)){
+            return null;
+        }
+        return new AnalysisDetailVo()
+                .setAnalysisTypeCode(analysisTypeVo.getTypeCode())
+                .setAnalysisTypeName(analysisTypeVo.getTypeName())
+                .setGeneralFiles(generalFileVos)
+                .setDiagramRelations(diagramRelationVos)
+                .setCommentDescriptionVos(commentDescriptionVos);
+    }
+
+    /**
+     * 分析中检查
+     * @param batchCode
+     * @return
+     */
+    private boolean checkAnalysising(String batchCode){
+        int analysisingCount = analysisResultMapper.selectAlasisingCountByBatchCode(batchCode);
+        return analysisingCount > AnalysisConstants.SERVER_MERCHINE_COUNT;
+    }
+
+    /**
+     * 数据处理
+     * @param analysisDto 前端入参
+     * @param rootNode 根节点json
+     */
+    private void dataProccess(AnalysisDto analysisDto,JsonNode rootNode){
+        //前端入参类
+        Field[] analysisFields = analysisDto.getClass().getDeclaredFields();
+        Arrays.asList(analysisFields).stream().forEach(field -> {
+            field.setAccessible(true);
+            try {
+                if(field.get(analysisDto) != null){
+                    updateNodesByPropertyName(rootNode, field.getName(), field.get(analysisDto).toString());
+                }
+            } catch (IllegalAccessException e) {
+                e.printStackTrace();
+            }
+        });
+    }
+
+    /**
+     * 测试排序去重
+     * @param args
+     * @throws InterruptedException
+     */
+    public static void main(String[] args) throws InterruptedException {
+        List<AnalysisGeneralFileVo> generalFileVos = new ArrayList<>();
+        AnalysisGeneralFileVo a1 = new AnalysisGeneralFileVo();
+        a1.setFileAddr("http://123/412/89.html");
+        a1.setCreateTime(new Date());
+        a1.setBatchCode("123");
+        generalFileVos.add(a1);
+        Thread.sleep(1000);
+        AnalysisGeneralFileVo a2 = new AnalysisGeneralFileVo();
+        a2.setFileAddr("http://123/412/89.html");
+        a2.setCreateTime(new Date());
+        generalFileVos.add(a2);
+        a2.setBatchCode("453");
+        generalFileVos.sort(Comparator.comparing(AnalysisGeneralFileVo::getCreateTime,Comparator.reverseOrder()));
+        //删除地址相同的文件
+        List<AnalysisGeneralFileVo> returnList =  generalFileVos.stream().collect(Collectors.collectingAndThen(
+                                                    Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(AnalysisGeneralFileVo::getFileAddr))),
+                                                    ArrayList :: new));
+        returnList.forEach(System.out::println);
+    }
+
+    /**
+     * 根据属性修改json值
+     * @param node 节点
+     * @param propertyName 属性名称
+     * @param newValue 新值
+     */
+    private static void updateNodesByPropertyName(JsonNode node, String propertyName, String newValue) {
+        if (node.isObject()) {
+            node.fields().forEachRemaining(entry -> {
+                // 匹配到属性名称,进行值的修改
+                if (entry.getKey().equals(propertyName)) {
+                    assignmentByPropertyName(node, propertyName, newValue);
+                }
+                // 递归搜索子节点
+                updateNodesByPropertyName(entry.getValue(), propertyName, newValue);
+            });
+        }
+    }
+
+    /**
+     * 处理特殊属性
+     * @param node
+     * @param propertyName
+     * @param newValue
+     */
+    private static void  assignmentByPropertyName(JsonNode node, String propertyName, String newValue){
+        if(AlgorithmProperties.graphSetsProperties.contains(propertyName)){
+            return ;
+        }
+        if(AlgorithmProperties.configAnalysisProperties.equals(propertyName)){
+            return;
+        }
+        ((ObjectNode) node).put(propertyName, newValue);
+    }
+
+}

+ 48 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/analysiscomment/AnalysisCommentService.java

@@ -0,0 +1,48 @@
+package com.energy.manage.service.service.analysiscomment;
+
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.service.domain.dto.analysis.AnalysisCommentDescriptionDto;
+import com.energy.manage.service.domain.dto.analysis.AnalysisCommentTypeRelationDto;
+import com.energy.manage.service.domain.dto.analysis.AnalysisResultDto;
+import com.energy.manage.service.domain.vo.analysis.AnalysisCommentTypeRelationVo;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/24 17:11
+ * @desc
+ */
+public interface AnalysisCommentService {
+
+    /**
+     * 富文本类型查询
+     * @param batchCode
+     * @param analysisTypeCode
+     * @return
+     */
+    List<AnalysisCommentTypeRelationVo> analysisCommentTypeList(String batchCode,String analysisTypeCode);
+
+
+    /**
+     * 富文本内容添加
+     * @param typeRelationDto
+     * @return
+     */
+    ResultResp addAnalysisCommentType(AnalysisCommentTypeRelationDto typeRelationDto);
+
+    /**
+     * 删除富文本类型
+     * @param commentTypeCode
+     * @return
+     */
+    ResultResp delAnalysisCommentType(String commentTypeCode);
+
+
+    /**
+     * 富文本编辑
+     * @param commentDescriptionDto
+     * @return
+     */
+    int analysisCommentEdit(AnalysisCommentDescriptionDto commentDescriptionDto);
+}

+ 131 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/analysiscomment/impl/AnalysisCommentServiceImpl.java

@@ -0,0 +1,131 @@
+package com.energy.manage.service.service.analysiscomment.impl;
+
+import com.energy.manage.common.po.analysis.AnalysisCommentDescriptionPo;
+import com.energy.manage.common.reponse.ConstVar;
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.common.util.BeanTools;
+import com.energy.manage.common.util.UUIDTools;
+import com.energy.manage.service.domain.dto.analysis.AnalysisCommentDescriptionDto;
+import com.energy.manage.service.domain.dto.analysis.AnalysisCommentTypeRelationDto;
+import com.energy.manage.service.domain.dto.analysis.CommentDto;
+import com.energy.manage.service.domain.vo.analysis.AnalysisCommentTypeRelationVo;
+import com.energy.manage.service.mappers.analysis.AnalysisCommentDescriptionMapper;
+import com.energy.manage.service.mappers.analysis.AnalysisCommentTypeRelationMapper;
+import com.energy.manage.service.service.analysiscomment.AnalysisCommentService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
+
+/**
+ * @author chy
+ * @date 2024/5/24 17:12
+ * @desc
+ */
+
+@Service
+public class AnalysisCommentServiceImpl implements AnalysisCommentService {
+
+    @Autowired
+    private AnalysisCommentTypeRelationMapper analysisCommentTypeRelationtMapper;
+
+    @Autowired
+    private AnalysisCommentDescriptionMapper commentDescriptionMapper;
+
+    /**
+     * 富文本类型查询
+     * @param batchCode
+     * @param analysisTypeCode
+     * @return
+     */
+    @Override
+    public List<AnalysisCommentTypeRelationVo> analysisCommentTypeList(String batchCode,String analysisTypeCode) {
+        return analysisCommentTypeRelationtMapper.selectByAnalysisTypeCode(batchCode,analysisTypeCode);
+    }
+
+    /**
+     * 富文本类型添加
+     * @param typeRelationDto
+     * @return
+     */
+    @Override
+    public ResultResp addAnalysisCommentType(AnalysisCommentTypeRelationDto typeRelationDto){
+        String saveTypeName = StringUtils.trim(typeRelationDto.getCommentTypeName());
+        typeRelationDto.setCommentTypeName(saveTypeName);
+        if(duplicateCheckByTypeName(typeRelationDto)){
+            return ResultResp.FAIL(ConstVar.DUPLICATE_TYPE_NAME);
+        }
+        AnalysisCommentTypeRelationDto analysisCommentTypeRelationDto = new AnalysisCommentTypeRelationDto();
+        String typeCode = UUIDTools.getShortUUIDLowCase();
+        analysisCommentTypeRelationDto.setCommentTypeCode(typeCode)
+                                      .setCommentTypeCode(saveTypeName)
+                                      .setCreateBy(typeRelationDto.getCreateBy());
+        return analysisCommentTypeRelationtMapper.insertPoSelective(analysisCommentTypeRelationDto) > 0 ? ResultResp.SUCCESS() : ResultResp.FAIL();
+    }
+
+
+    /**
+     * 富文本类型删除
+     * @param commentTypeCode
+     * @return
+     */
+    @Override
+    public ResultResp delAnalysisCommentType(String commentTypeCode){
+        AnalysisCommentTypeRelationVo analysisCommentTypeRelationVo = analysisCommentTypeRelationtMapper.selectByTypeCode(commentTypeCode);
+        if(analysisCommentTypeRelationVo == null){
+            return ResultResp.SUCCESS();
+        }
+        if(analysisCommentTypeRelationVo.getIsDefined() == 0){
+            return ResultResp.FAIL(ConstVar.NO_DIFINED_TYPE);
+        }
+        return analysisCommentTypeRelationtMapper.deleteByTypeCode(commentTypeCode) > 0 ? ResultResp.SUCCESS() : ResultResp.FAIL();
+    }
+
+    /**
+     * 富文本编辑
+     * @param dto
+     * @return
+     */
+    @Override
+    public int analysisCommentEdit(AnalysisCommentDescriptionDto dto) {
+        AtomicInteger count = new AtomicInteger(0);
+        dto.getCommentList().parallelStream().forEach(item -> count.addAndGet(saveCommentDescription(dto, item)));
+        return count.get();
+    }
+
+
+    /**
+     * 评论类型名称查重
+     * @param typeRelationDto
+     * @return
+     */
+    private boolean duplicateCheckByTypeName(AnalysisCommentTypeRelationDto typeRelationDto){
+        List<AnalysisCommentTypeRelationVo> voList = analysisCommentTypeRelationtMapper
+                                                        .selectByAnalysisTypeCode(typeRelationDto.getBatchCode(), typeRelationDto.getAnalysisTypeCode());
+        voList.parallelStream().filter(vo -> vo.getCommentTypeName().equals(typeRelationDto.getCommentTypeName())).collect(Collectors.toList());
+        return voList.size() > 0;
+    }
+
+    /**
+     * 保存富文本
+     * @param commentDescriptionDto
+     */
+    private int saveCommentDescription(AnalysisCommentDescriptionDto commentDescriptionDto, CommentDto commentDto){
+        AnalysisCommentDescriptionPo commentDescriptionPo = new AnalysisCommentDescriptionPo();
+        //拷贝批次编号 分析类型编号
+        BeanTools.copyProperties(commentDescriptionPo,commentDescriptionDto);
+        //拷贝评论编号 以及内容
+        BeanTools.copyNotNullProperties(commentDescriptionPo,commentDto);
+        int count =  commentDescriptionMapper.selectCountByCommentTypeCode(commentDto.getCommentTypeCode());
+        //空则添加 非空则编辑
+        if(count == 0){
+           return commentDescriptionMapper.insertPoSelective(commentDescriptionPo);
+        }else{
+           return commentDescriptionMapper.updatePoSelective(commentDescriptionPo);
+        }
+    }
+
+}

+ 48 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/analysiserr/AnalysisErrService.java

@@ -0,0 +1,48 @@
+package com.energy.manage.service.service.analysiserr;
+
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.service.domain.dto.analysis.AnalysisResultDto;
+import com.energy.manage.service.domain.dto.windexceptioncount.WindExceptionCountDto;
+import com.energy.manage.service.domain.vo.windexceptioncount.WindExceptionCountVo;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/23 17:25
+ * @desc
+ */
+public interface AnalysisErrService {
+
+
+    /**
+     * 根据批次号查询异常信息
+     * @param windExceptionCountDto
+     * @return
+     */
+    List<WindExceptionCountVo> analysisErrQuery(WindExceptionCountDto windExceptionCountDto);
+
+    /**
+     * 异常描述添加
+     * @param windExceptionCountDto
+     * @return
+     */
+    ResultResp analysisErrAdd(WindExceptionCountDto windExceptionCountDto);
+
+
+    /**
+     * 异常描述编辑
+     * @param windExceptionCountDto
+     * @return
+     */
+    ResultResp analysisErrEdit(WindExceptionCountDto windExceptionCountDto);
+
+
+    /**
+     * 删除异常描述
+     * @param windExceptionCountDto
+     * @return
+     */
+    ResultResp analysisErrDel(WindExceptionCountDto windExceptionCountDto);
+
+}

+ 78 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/analysiserr/impl/AnalysisErrServiceImpl.java

@@ -0,0 +1,78 @@
+package com.energy.manage.service.service.analysiserr.impl;
+
+import com.energy.manage.common.reponse.ConstVar;
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.service.domain.dto.analysis.AnalysisResultDto;
+import com.energy.manage.service.domain.dto.windexceptioncount.WindExceptionCountDto;
+import com.energy.manage.service.domain.vo.windexceptioncount.WindExceptionCountVo;
+import com.energy.manage.service.mappers.windexceptioncount.WindExceptionCountMapper;
+import com.energy.manage.service.service.analysiserr.AnalysisErrService;
+import com.github.pagehelper.PageHelper;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 分析异常数统计
+ * @author chy
+ * @date 2024/5/23 17:25
+ * @desc
+ */
+@Service
+public class AnalysisErrServiceImpl implements AnalysisErrService {
+
+    @Autowired
+    private WindExceptionCountMapper windExceptionCountMapper;
+
+
+    /**
+     * 分析异常数查询
+     * @param windExceptionCountDto
+     * @return
+     */
+    @Override
+    public List<WindExceptionCountVo> analysisErrQuery(WindExceptionCountDto windExceptionCountDto){
+        PageHelper.startPage(windExceptionCountDto.getPageNum(),windExceptionCountDto.getPageSize());
+        return windExceptionCountMapper.selectByCondition(windExceptionCountDto);
+    }
+
+    /**
+     * 异常描述添加
+     * @param windExceptionCountDto
+     * @return
+     */
+    @Override
+    public ResultResp analysisErrAdd(WindExceptionCountDto windExceptionCountDto) {
+        //根据批次号、分析类型、机组编号 查询异常描述是否已存在
+        List<WindExceptionCountVo> voList = windExceptionCountMapper.selectByCondition(windExceptionCountDto);
+        if(CollectionUtils.isNotEmpty(voList)){
+            return ResultResp.FAIL(ConstVar.SAME_WIND_ENGINE_ERR_INFO);
+        }
+        int count = windExceptionCountMapper.insertPoSelective(windExceptionCountDto);
+        return  count > 0 ? ResultResp.SUCCESS() : ResultResp.FAIL();
+    }
+
+    /**
+     * 异常描述编辑
+     * @param analysisResultDto
+     * @return
+     */
+    @Override
+    public ResultResp analysisErrEdit(WindExceptionCountDto analysisResultDto) {
+        return ResultResp.SUCCESS(windExceptionCountMapper.updatePoSelecttive(analysisResultDto));
+    }
+
+    /**
+     * 删除异常描述
+     *
+     * @param windExceptionCountDto
+     * @return
+     */
+    @Override
+    public ResultResp analysisErrDel(WindExceptionCountDto windExceptionCountDto) {
+        windExceptionCountDto.setIsDelete(1);
+        return ResultResp.SUCCESS(windExceptionCountMapper.updatePoSelecttive(windExceptionCountDto));
+    }
+}

+ 49 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/datatransfer/DataTransferService.java

@@ -0,0 +1,49 @@
+package com.energy.manage.service.service.datatransfer;
+
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.service.domain.dto.datatransfer.DataTransferDto;
+import com.energy.manage.service.domain.vo.datatransfer.DataTransferQueryAndAddVo;
+import com.energy.manage.service.domain.vo.datatransfer.DataTransferVo;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/20 10:18
+ * @desc
+ */
+public interface DataTransferService {
+
+
+    /**
+     * 获取没有进行数据转换的风场批次列表
+     * @param roleId
+     * @return
+     */
+    DataTransferQueryAndAddVo fieldBatchListForDataTransfer(Integer roleId);
+
+
+    /**
+     * 查询数据转换列表
+     * @return
+     */
+    List<DataTransferVo> queryDataTransferList(DataTransferDto dataTransferDto);
+
+    /**
+     * 新增数据转换
+     * @return
+     */
+    ResultResp addDataTransfer(DataTransferDto dataTransferDto);
+
+
+    /**
+     * 数据转换(转换/重新转换)
+     * @param batchCode
+     */
+    ResultResp dataTransfer(String batchCode,
+                            String dataTransferType,
+                            String dataTransferTypePath,
+                            Integer updateBy);
+
+
+}

+ 240 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/datatransfer/impl/DataTransferServiceImpl.java

@@ -0,0 +1,240 @@
+package com.energy.manage.service.service.datatransfer.impl;
+
+import com.energy.manage.common.po.datatransfer.DataTransferHistoryPo;
+import com.energy.manage.common.po.datatransfer.DataTransferPo;
+import com.energy.manage.common.reponse.ConstVar;
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.service.domain.dto.datatransfer.DataTransferDto;
+import com.energy.manage.service.domain.dto.datatransfer.DataTransferTypePathDto;
+import com.energy.manage.service.domain.dto.windfieldbatch.WindFieldBatchDto;
+import com.energy.manage.service.domain.vo.datatransfer.DataTransferQueryAndAddVo;
+import com.energy.manage.service.domain.vo.datatransfer.DataTransferTypeVo;
+import com.energy.manage.service.domain.vo.datatransfer.DataTransferVo;
+import com.energy.manage.service.domain.vo.windfieldbatch.WindFieldBatchVo;
+import com.energy.manage.service.mappers.datatransfer.DataTransferMapper;
+import com.energy.manage.service.mappers.datatransferhistory.DataTransferHistoryMapper;
+import com.energy.manage.service.mappers.datatransfertype.DataTransferTypeMapper;
+import com.energy.manage.service.mappers.windfieldbatch.WindFieldBatchMapper;
+import com.energy.manage.service.service.datatransfer.DataTransferService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+/**
+ * 数据转换服务
+ * @author chy
+ * @date 2024/5/20 10:19
+ * @desc
+ */
+@Slf4j
+@Service
+public class DataTransferServiceImpl implements DataTransferService {
+
+    @Autowired
+    private DataTransferMapper dataTransferMapper;
+
+    @Autowired
+    private DataTransferTypeMapper dataTransferTypeMapper;
+
+    @Autowired
+    private WindFieldBatchMapper windFieldBatchMapper;
+
+    @Autowired
+    private DataTransferHistoryMapper historyMapper;
+
+    @Autowired
+    private DataTransferTypeMapper typeMapper;
+
+    /**
+     * 转换中状态
+     */
+    private final static Integer DATA_TRANSFERING_STATE = 0;
+
+    /**
+     * 获取没有进行数据转换的风场批次列表
+     * @param roleId
+     * @return
+     */
+    @Override
+    public DataTransferQueryAndAddVo fieldBatchListForDataTransfer(Integer roleId) {
+        DataTransferQueryAndAddVo queryAndAddVo = new DataTransferQueryAndAddVo();
+        List<String> batchCodeList = getDataTransferBatchList(roleId);
+        if(CollectionUtils.isEmpty(batchCodeList)){
+            return queryAndAddVo;
+        }
+        queryAndAddVo.setBatchCodeList(batchCodeList);
+        queryAndAddVo.setDataTransferTypeVoList(typeMapper.selectAllInfo());
+        return queryAndAddVo;
+    }
+
+    /**
+     * 查询数据转换列表
+     * @return
+     */
+    @Override
+    public List<DataTransferVo> queryDataTransferList(DataTransferDto dataTransferDto) {
+        List<DataTransferVo> dataTransferVos = dataTransferMapper.selectDataTransferListByCondition(dataTransferDto);
+        if(CollectionUtils.isNotEmpty(dataTransferVos)){
+            //获取所有转换类型
+            List<DataTransferTypeVo> typeVos = dataTransferTypeMapper.selectAllInfo();
+            if(CollectionUtils.isNotEmpty(typeVos)){
+                //设置转换类型名称
+                dataTransferVos.parallelStream().forEach(item -> item.setTransferTypeName(getDataTransferTypeName(typeVos,item.getTransferType())));
+            }
+        }
+        return dataTransferVos;
+    }
+
+    /**
+     * 新增数据转
+     * @param dataTransferDto
+     * @return
+     */
+    @Override
+    public ResultResp addDataTransfer(DataTransferDto dataTransferDto) {
+        List<DataTransferTypeVo> typeList = dataTransferTypeMapper.selectAllInfo();
+        if(CollectionUtils.isEmpty(typeList)){
+            log.error("风场批次batchCode = {} 新增转换失败,转换类型初始化数据是空导致!!",dataTransferDto.getBatchCode());
+            return ResultResp.FAIL(ConstVar.DATA_TRANSFER_TYPE_EMPTY);
+        }
+        //设置风场编号
+        dataTransferDto.setFieldCode(getFieldCode(dataTransferDto.getBatchCode()));
+        List<DataTransferPo> dataTransferPos = new ArrayList<>();
+        typeList.parallelStream().forEach(item -> dataTransferPos.add(getDataTransferPo(dataTransferDto,item.getTransferType())));
+        return ResultResp.SUCCESS(dataTransferMapper.addDataTransferBatch(dataTransferPos));
+    }
+
+
+    /**
+     * 数据转换(转换/重新转换)
+     * @param batchCode
+     */
+    @Override
+    public ResultResp dataTransfer(String batchCode,
+                                   String dataTransferType,
+                                   String dataTransferTypePath,
+                                   Integer updateBy) {
+        //检查转换状态是否有正在转换的数据 有的话 不转换
+        if(checkTransferState()){
+            return ResultResp.FAIL(ConstVar.DATA_TRANSFERING);
+        }
+        DataTransferPo po = dataTransferMapper.selectByBatchCodeAndDataTransferType(batchCode,dataTransferType);
+        //如果数据库中存在的数据路径地址不为空的话 说明已经转换过了 需要重新转换 备份数据
+        if(StringUtils.isNotBlank(po.getTransferFileAddr())){
+            saveHistory(po);
+            //状态重新置换为未转换
+            po.setTransferState(-1);
+        }
+        po.setTransferFileAddr(dataTransferTypePath);
+        po.setUpdateBy(updateBy);
+        return ResultResp.SUCCESS(dataTransferMapper.updateDataTransfer(po));
+    }
+
+
+    /**
+     * 根据角色获取批次编号
+     * @param roleId
+     * @return
+     */
+    private List<String> getDataTransferBatchList(Integer roleId) {
+        //获取角色可以看到的风场批次信息
+        List<WindFieldBatchVo>  batchVoList = windFieldBatchMapper.selectWindFieldBatch(new WindFieldBatchDto().setRoleId(roleId));
+        //获取批次号
+        List<String> batchCodeList = batchVoList.parallelStream().map(WindFieldBatchVo::getBatchCode).collect(Collectors.toList());
+        //获取已经进行过数据转换的批次号
+        List<String> dataTransferBatchList = dataTransferMapper.selectAllWindFieldBtach(roleId);
+        return batchCodeList.parallelStream().filter(batchCode -> !dataTransferBatchList.contains(batchCode)).collect(Collectors.toList());
+    }
+
+    /**
+     * 根据类型获取类型名称
+     * @param typeVos
+     * @param dataTransferType
+     * @return
+     */
+    private String getDataTransferTypeName(List<DataTransferTypeVo> typeVos,Integer dataTransferType){
+        return typeVos.parallelStream().filter(typeVo -> typeVo.getTransferType().equals(dataTransferType))
+                .map(DataTransferTypeVo::getTransferTypeName)
+                .findFirst()
+                .get();
+    }
+
+
+    /**
+     * 获取数据转换po
+     * @param dataTransferDto
+     * @param dataTransferType
+     * @return
+     */
+    private DataTransferPo getDataTransferPo(DataTransferDto dataTransferDto,String dataTransferType){
+        DataTransferPo dataTransferPo = new DataTransferPo();
+        dataTransferPo.setFieldCode(dataTransferDto.getFieldCode());
+        dataTransferPo.setBatchCode(dataTransferDto.getBatchCode());
+        dataTransferPo.setTransferType(dataTransferType);
+        Integer userId = dataTransferDto.getUserId();
+        dataTransferPo.setCreateBy(userId);
+        dataTransferPo.setUpdateBy(userId);
+        String path = getTransferFileAddr(dataTransferDto,dataTransferType);
+        if(StringUtils.isNotBlank(path)){
+            dataTransferPo.setTransferFileAddr(path);
+        }
+        return dataTransferPo;
+    }
+
+    /**
+     * 根据类型获取转换文件地址
+     * @param dataTransferDto
+     * @param dataTransferType
+     * @return
+     */
+    private String getTransferFileAddr(DataTransferDto dataTransferDto,String dataTransferType){
+        List<DataTransferTypePathDto>  pathDtoList = dataTransferDto.getDataTransferTypePathDtoList();
+        if(CollectionUtils.isNotEmpty(pathDtoList)){
+            Optional optional = pathDtoList.parallelStream().filter(item -> item.getTransferType().equals(dataTransferType)).map(DataTransferTypePathDto::getTransferFileAddr).findFirst();
+            return optional.isPresent() ? optional.get().toString() : null;
+        }
+        return null;
+    }
+
+
+    /**
+     * 获取风场编号
+     * @param batchCode
+     * @return
+     */
+    private String getFieldCode(String batchCode){
+        WindFieldBatchVo vo = windFieldBatchMapper.selectByBatchCode(batchCode);
+        return vo.getFieldCode();
+    }
+
+    /**
+     * 检查转换状态系统中是否有正在转换的数据
+     * @return
+     */
+    private boolean checkTransferState(){
+        return dataTransferMapper.selectCountByTransferState(DATA_TRANSFERING_STATE) > 0;
+    }
+
+    /**
+     * 备份转换数据
+     * @param po
+     */
+    private void saveHistory(DataTransferPo po){
+        DataTransferHistoryPo historyPo = new DataTransferHistoryPo();
+        historyPo.setBatchCode(po.getBatchCode());
+        historyPo.setEnginCount(po.getEngineCount());
+        historyPo.setTransferFileAddr(po.getTransferFileAddr());
+        historyPo.setTransferType(po.getTransferType());
+        historyPo.setErrInfo(po.getErrInfo());
+        historyPo.setTransferFinishTime(po.getTransferFinishTime());
+        historyPo.setOptionBy(po.getUpdateBy());
+        historyMapper.addDataTransferHistory(historyPo);
+    }
+}

+ 23 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/system/SysOrganizationAuthService.java

@@ -0,0 +1,23 @@
+package com.energy.manage.service.service.system;
+
+import com.energy.manage.common.po.system.SysOrganizationAuthPO;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 风场/企业角色关系
+ * @author chy
+ * @date 2024/5/21 09:35
+ * @desc
+ */
+public interface SysOrganizationAuthService {
+
+
+    /**
+     * 根据角色id查询风场编号列表
+     * @param roleId
+     * @return
+     */
+    Map<String, List<SysOrganizationAuthPO>> queryCodeNunByRoleId(Integer roleId);
+}

+ 45 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/system/impl/SysOrganizationAuthServiceImpl.java

@@ -0,0 +1,45 @@
+package com.energy.manage.service.service.system.impl;
+
+import com.energy.manage.common.enums.TypeRelationEnum;
+import com.energy.manage.common.po.system.SysOrganizationAuthPO;
+import com.energy.manage.service.mappers.system.SysOrganizationAuthMapper;
+import com.energy.manage.service.service.system.SysOrganizationAuthService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 企业风场关系
+ * @author chy
+ * @date 2024/5/21 09:36
+ * @desc
+ */
+@Service
+public class SysOrganizationAuthServiceImpl implements SysOrganizationAuthService {
+
+    /**
+     * 根据角色查询风场编号列表返回key
+     */
+    private final static String FILE_CODE_LIST_KEY = "fieldCodeList";
+
+    @Autowired
+    private SysOrganizationAuthMapper sysOrganizationAuthMapper;
+
+    /**
+     * 根据角色id获取风场编号列表
+     * @return
+     */
+    @Override
+    public Map<String, List<SysOrganizationAuthPO>> queryCodeNunByRoleId(Integer roleId){
+        Map<String,List<SysOrganizationAuthPO>> returnMap = new HashMap<>();
+        List<SysOrganizationAuthPO> authPoList = sysOrganizationAuthMapper.selectByRoleId(roleId);
+        authPoList.parallelStream().filter(po -> po.getCodeType().equals(TypeRelationEnum.WIND_FIELD_NUMBER.getCode()))
+                                                          .collect(Collectors.toList());
+        returnMap.put(FILE_CODE_LIST_KEY,authPoList);
+        return returnMap;
+    }
+}

+ 9 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/windenginegroup/WindEngineGroupService.java

@@ -8,6 +8,8 @@ import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupPageVo
 import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupVo;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.List;
+
 /**
  * 机型管理
  */
@@ -88,5 +90,12 @@ public interface WindEngineGroupService {
      */
     int getWindEngineGroupCountByField(String fieldCode);
 
+    /**
+     * 获取登录用户能看到的风机
+     * @param roleId
+     * @return
+     */
+    List<WindEngineGroupVo> getWindEngineGroupByRoleId(Integer roleId);
+
 
 }

+ 8 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/windenginegroup/impl/WindEngineGroupServiceImpl.java

@@ -297,4 +297,12 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
         return windEngineGroupMapper.selectCountByExample(queryExample);
 
     }
+
+
+    @Override
+    public List<WindEngineGroupVo> getWindEngineGroupByRoleId(Integer roleId){
+        return windEngineGroupMapper.selectWindEngineGroupByRoleId(roleId);
+    }
+
+
 }

+ 47 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/windfieldbatch/WindFieldBatchService.java

@@ -0,0 +1,47 @@
+package com.energy.manage.service.service.windfieldbatch;
+
+import com.energy.manage.service.domain.dto.windfieldbatch.WindFieldBatchDto;
+import com.energy.manage.service.domain.vo.windfieldbatch.WindFieldBatchVo;
+
+import java.util.List;
+
+/**
+ * 风场批次操作
+ * @author chy
+ * @date 2024/5/21 10:50
+ * @desc
+ */
+public interface WindFieldBatchService {
+
+    /**
+     * 批次号新增
+     * @param windEgineBatchDto
+     */
+    int addWindFieldBatch(WindFieldBatchDto windEgineBatchDto);
+
+    /**
+     * 批次更新
+     * @param windEgineBatchDto
+     */
+    int updateWindFieldBatch(WindFieldBatchDto windEgineBatchDto);
+
+    /**
+     * 批次启用或停用
+     * @param windEgineBatchDto
+     */
+    int onOrOffFieldBatch(WindFieldBatchDto windEgineBatchDto);
+
+    /**
+     * 批次号新增
+     * @param windEgineBatchDto
+     */
+    int deleteWindFieldBatch(WindFieldBatchDto windEgineBatchDto);
+
+    /**
+     * 查询批次列表
+     * @param windFieldBatchDto
+     * @return
+     */
+    List<WindFieldBatchVo> queryWindFieldBatch(WindFieldBatchDto windFieldBatchDto);
+
+}

+ 92 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/windfieldbatch/impl/WindFieldBatchServiceImpl.java

@@ -0,0 +1,92 @@
+package com.energy.manage.service.service.windfieldbatch.impl;
+
+import com.energy.manage.common.constant.redis.ManagerRedisKeyConstant;
+import com.energy.manage.common.enums.IdPrefixEnum;
+import com.energy.manage.common.util.IdGeneratorUtil;
+import com.energy.manage.service.domain.dto.windfieldbatch.WindFieldBatchDto;
+import com.energy.manage.service.domain.vo.windfieldbatch.WindFieldBatchVo;
+import com.energy.manage.service.mappers.datatransfer.DataTransferMapper;
+import com.energy.manage.service.mappers.windfieldbatch.WindFieldBatchMapper;
+import com.energy.manage.service.service.cache.CacheService;
+import com.energy.manage.service.service.windfieldbatch.WindFieldBatchService;
+import com.github.pagehelper.PageHelper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/21 10:51
+ * @desc
+ */
+@Service
+public class WindFieldBatchServiceImpl implements WindFieldBatchService {
+
+    private final static String SEPARATOR = "-";
+
+     @Autowired
+     private WindFieldBatchMapper windFieldBatchMapper;
+
+     @Autowired
+     private CacheService cacheService;
+
+    /**
+     * 批次号新增
+     * @param windEgineBatchDto
+     */
+    @Override
+    public int addWindFieldBatch(WindFieldBatchDto windEgineBatchDto) {
+        windEgineBatchDto.setBatchCode(createWindFieldBatchCode(windEgineBatchDto.getFieldCode()));
+        return windFieldBatchMapper.addWindFieldBatch(windEgineBatchDto);
+    }
+
+    /**
+     * 批次号更新
+     * @param windEgineBatchDto
+     */
+    @Override
+    public int updateWindFieldBatch(WindFieldBatchDto windEgineBatchDto) {
+        return windFieldBatchMapper.updateWindFieldBatch(windEgineBatchDto);
+    }
+
+    /**
+     * 批次启用或停用
+     * @param windEgineBatchDto
+     */
+    @Override
+    public int onOrOffFieldBatch(WindFieldBatchDto windEgineBatchDto) {
+        return windFieldBatchMapper.updateWindFieldBatch(windEgineBatchDto);
+    }
+
+    /**
+     * 批次号删除
+     * @param windFieldBatchDto
+     */
+    @Override
+    public int deleteWindFieldBatch(WindFieldBatchDto windFieldBatchDto) {
+        windFieldBatchDto.setIsDelete(1);
+        return windFieldBatchMapper.updateWindFieldBatch(windFieldBatchDto);
+    }
+
+    /**
+     * 查询批次列表
+     * @param windFieldBatchDto
+     * @return
+     */
+    @Override
+    public List<WindFieldBatchVo> queryWindFieldBatch(WindFieldBatchDto windFieldBatchDto) {
+        PageHelper.startPage(windFieldBatchDto);
+        return windFieldBatchMapper.selectWindFieldBatch(windFieldBatchDto);
+    }
+
+    /**
+     * 生成风场批次号
+     * @param fieldCode
+     * @return
+     */
+    public String createWindFieldBatchCode(String fieldCode){
+        String sequece = IdPrefixEnum.WIND_ENGINE_BATCH_NUMBER.getCode().concat(IdGeneratorUtil.zeroFillUtil(cacheService.incr(ManagerRedisKeyConstant.build(ManagerRedisKeyConstant.IDGENERATOR_CONSTANTS_KEY, IdPrefixEnum.WIND_ENGINE_BATCH_NUMBER.getCode()))));
+        return fieldCode + SEPARATOR + sequece;
+    }
+}

+ 34 - 0
energy-manage-service/src/main/java/com/energy/manage/service/task/AutoAnalysisTask.java

@@ -0,0 +1,34 @@
+package com.energy.manage.service.task;
+
+import com.energy.manage.service.domain.dto.analysis.AnalysisAlgorithmDto;
+import com.energy.manage.service.domain.dto.analysis.AnalysisDto;
+import com.energy.manage.service.service.analysis.AnalysisService;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 自动分析定时任务
+ * @author chy
+ * @date 2024/6/2 21:35
+ * @desc
+ */
+@Slf4j
+@Component
+public class AutoAnalysisTask {
+
+    @Autowired
+    private AnalysisService analysisService;
+
+
+    /**
+     * 自动分析
+     */
+    @XxlJob(value = "autoAnalysis")
+    public void autoAnalysis() {
+        log.info("触发自动分析定时任务开始");
+        analysisService.analysis(new AnalysisDto());
+        log.info("触发自动分析定时任务结束");
+    }
+}

+ 107 - 0
energy-manage-service/src/main/java/com/energy/manage/service/test/TestClass.java

@@ -0,0 +1,107 @@
+package com.energy.manage.service.test;
+
+import com.energy.manage.service.domain.dto.analysis.AnalysisAlgorithmDto;
+import com.energy.manage.service.domain.dto.analysis.AnalysisDto;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/5/31 10:26
+ * @desc
+ */
+public class TestClass {
+
+    public static void main(String[] args) throws IllegalAccessException, NoSuchFieldException {
+        AnalysisAlgorithmDto algorithm = new AnalysisAlgorithmDto();
+        AnalysisDto analysis = new AnalysisDto();
+        analysis.setScada("all");
+        analysis.setBeginTime("2023-01-01 12:22:30");
+        //算法入参类
+        Field[] analysisAlgorithmFields = algorithm.getClass().getDeclaredFields();
+        //前端入参类
+        Field[] analysisFields = analysis.getClass().getDeclaredFields();
+        List<Field> fields = new ArrayList<>();
+        for(Field field : analysisFields){
+            field.setAccessible(true);
+            if(field.get(analysis) != null){
+                fields.add(field);
+            }
+        }
+        //前端入参属性数组
+        for(Field analysisField : fields){
+            setValue(analysis,algorithm,analysisField,analysisAlgorithmFields);
+        }
+        System.out.println(algorithm.getDataContract().getDataFilter().getBeginTime());
+    }
+
+    /**
+     * 递归处理引用类型
+     * @param analysis
+     * @param algorithm
+     * @param analysisField
+     * @param algorithmFields
+     * @throws IllegalAccessException
+     */
+    private static void setValue(AnalysisDto analysis,AnalysisAlgorithmDto algorithm,Field analysisField,Field[] algorithmFields) throws IllegalAccessException, NoSuchFieldException {
+        analysisField.setAccessible(true);
+        String fieldName = analysisField.getName();
+        for(Field algorithmField : algorithmFields){
+            if(!fieldName.equals(algorithmField.getName()) && !isBaseType(algorithmField.getType())){
+                algorithmField.setAccessible(true);
+                Object algorithmObj = algorithmField.get(algorithm);
+                algorithmObj = algorithmObj == null ? algorithmField.getClass().getInterfaces() : algorithmObj;
+                inspectReferenceType(analysis,algorithmField,fieldName,analysisField,algorithmObj);
+            }
+        }
+    }
+
+    /**
+     * 递归检查引用类型属性
+     * @param algorithmField
+     * @param fieldName
+     */
+    private static void inspectReferenceType(AnalysisDto analysis,Field algorithmField,String fieldName,Field analysisField,Object algorithmObj) throws IllegalAccessException, NoSuchFieldException {
+        Class<?> algorithmClazz = algorithmField.getType();
+        Field[] fields = algorithmClazz.getDeclaredFields();
+        for (Field field : fields) {
+            field.setAccessible(true);
+            Class<?> fieldType = field.getType();
+            String algorithmFieldName = field.getName();
+            if(fieldName.equals(field.getName())){
+                Object value = analysisField.get(analysis);
+//                String fieldTypeName = field.getDeclaringClass().getName();
+
+//                setFieldValue(algorithmObj,fieldTypeName,value);
+                field.set(field.get(algorithmObj),value);
+            }
+            if (!isBaseType(fieldType)) {
+                algorithmObj = algorithmObj == null ? fieldType.getInterfaces() : algorithmObj;
+                // 递归检查嵌套引用类型的属性
+                 inspectReferenceType(analysis,field,fieldName,analysisField,algorithmObj);
+            }
+        }
+    }
+
+
+    public static void setFieldValue(Object obj, String fieldPath, Object value) throws NoSuchFieldException, IllegalAccessException {
+        String[] fields = fieldPath.split("\\.");
+        for (int i = 0; i < fields.length - 1; i++) {
+            Field field = obj.getClass().getDeclaredField(fields[i]);
+            field.setAccessible(true);
+            obj = field.get(obj); // 移动到下一层引用
+        }
+        // 最后一个字段,设置值
+        Field lastField = obj.getClass().getDeclaredField(fields[fields.length - 1]);
+        lastField.setAccessible(true);
+        lastField.set(obj, value);
+    }
+
+    private static boolean isBaseType(Class<?> clazz) {
+        return clazz.isPrimitive() || clazz == String.class || clazz == Integer.class || clazz == List.class;
+    }
+
+
+}

+ 203 - 0
energy-manage-service/src/main/java/com/energy/manage/service/test/TestJson.java

@@ -0,0 +1,203 @@
+package com.energy.manage.service.test;
+
+import com.energy.manage.service.domain.dto.analysis.AnalysisDto;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author chy
+ * @date 2024/6/2 19:06
+ * @desc
+ */
+public class TestJson {
+
+
+    public static void main(String[] args) throws JsonProcessingException {
+        String jsonString = "{\n" +
+                "        \"dataContractType\": {\n" +
+                "            \"type\": \"analysisExecuteOrder\",\n" +
+                "            \"version\": \"1.2.0\"\n" +
+                "        },\n" +
+                "        \"dataContract\": {\n" +
+                "            \"autoOrManual\":\"automatic\",\n" +
+                "            \"dataSource\": {\n" +
+                "                \"scada\": \"second\"\n" +
+                "            },\n" +
+                "            \"dataFilter\": {\n" +
+                "                \"powerFarmID\": \"010-00001\",\n" +
+                "                \"turbines\": [\n" +
+                "                    \"010-00001-0001\",\n" +
+                "                    \"010-00001-0002\"\n" +
+                "                ],\n" +
+                "                \"dataBatchNum\": \"B2024042211-0\",\n" +
+                "                \"beginTime\": \"2023-01-01 00:00:00\",\n" +
+                "                \"endTime\": \"2023-12-31 23:59:59\",\n" +
+                "                \"excludingMonths\": [\n" +
+                "                    \"2023-12\",\n" +
+                "                    \"2023-09\"\n" +
+                "                ],\n" +
+                "                \"customFilter\": {\n" +
+                "                    \"valueWindSpeed\": {\n" +
+                "                        \"min\": 3.0,\n" +
+                "                        \"max\": 25.0\n" +
+                "                    },\n" +
+                "                    \"valuePitchAngle\": {\n" +
+                "                        \"min\": 2,\n" +
+                "                        \"max\": null\n" +
+                "                    },\n" +
+                "                    \"valueActivePower\": {\n" +
+                "                        \"min\": 10,\n" +
+                "                        \"max\": 2500\n" +
+                "                    },\n" +
+                "                    \"valueGeneratorSpeed\": {\n" +
+                "                        \"min\": 10,\n" +
+                "                        \"max\": 2500\n" +
+                "                    }\n" +
+                "                }\n" +
+                "            },\n" +
+                "            \"configAnalysis\": [\n" +
+                "                {\n" +
+                "                    \"package\": \"algorithm.powerCurveAnalyst\",\n" +
+                "                    \"className\": \"PowerCurveAnalyst\",\n" +
+                "                    \"methodName\": \"executeAnalysis\"\n" +
+                "                },\n" +
+                "                {\n" +
+                "                    \"package\": \"algorithm.powerScatter2DAnalyst\",\n" +
+                "                    \"className\": \"PowerScatter2DAnayst\",\n" +
+                "                    \"methodName\": \"executeAnalysis\"\n" +
+                "                },\n" +
+                "                {\n" +
+                "                    \"package\": \"algorithm.powerScatterAnalyst\",\n" +
+                "                    \"className\": \"PowerScatterAnalyst\",\n" +
+                "                    \"methodName\": \"executeAnalysis\"\n" +
+                "                },\n" +
+                "                {\n" +
+                "                    \"package\": \"algorithm.windSpeedFrequencyAnalyst\",\n" +
+                "                    \"className\": \"WindSpeedFrequencyAnalyst\",\n" +
+                "                    \"methodName\": \"executeAnalysis\"\n" +
+                "                },\n" +
+                "                {\n" +
+                "                    \"package\": \"algorithm.generatorSpeedPowerAnalyst\",\n" +
+                "                    \"className\": \"GeneratorSpeedPowerAnalyst\",\n" +
+                "                    \"methodName\": \"executeAnalysis\"\n" +
+                "                }\n" +
+                "            ],\n" +
+                "            \"graphSets\": {\n" +
+                "                \"generatorSpeed\": {\n" +
+                "                    \"step\": 200,\n" +
+                "                    \"min\": 1000,\n" +
+                "                    \"max\": 2000\n" +
+                "                },\n" +
+                "                \"generatorTorque\": {\n" +
+                "                    \"step\": 2000,\n" +
+                "                    \"min\": 0,\n" +
+                "                    \"max\": 12000\n" +
+                "                },\n" +
+                "                \"cp\": {\n" +
+                "                    \"step\": 0.5,\n" +
+                "                    \"min\": 0,\n" +
+                "                    \"max\": 2\n" +
+                "                },\n" +
+                "                \"tsr\": {\n" +
+                "                    \"step\": 5,\n" +
+                "                    \"min\": 0,\n" +
+                "                    \"max\": 30\n" +
+                "                },\n" +
+                "                \"pitchAngle\": {\n" +
+                "                    \"step\": 1,\n" +
+                "                    \"min\": -1,\n" +
+                "                    \"max\": 20\n" +
+                "                },\n" +
+                "                \"activePower\": {\n" +
+                "                    \"step\": 250,\n" +
+                "                    \"min\": 0,\n" +
+                "                    \"max\": 2000\n" +
+                "                }\n" +
+                "            }\n" +
+                "        }\n" +
+                "    }";
+
+        ObjectMapper mapper = new ObjectMapper();
+        JsonNode rootNode = mapper.readTree(jsonString);
+//        AnalysisDto dto = new AnalysisDto();
+//        dto.setBeginTime("1234-12-12 00:00:12");
+//        updateNodesByPropertyName(rootNode, "beginTime", dto);
+//        String propertyNameToFind = "beginTime";
+//        List<JsonNode> matchingNodes = findNodesByPropertyName(rootNode, propertyNameToFind);
+//
+//        for (JsonNode node : matchingNodes) {
+//            System.out.println("Found matching node: " + mapper.writerWithDefaultPrettyPrinter().writeValueAsString(node));
+//        }
+
+        AnalysisDto dto = new AnalysisDto();
+        dto.setBeginTime("1234-12-12 00:00:12");
+        dto.setExcludingMonths(Arrays.asList("1","2","3"));
+        setValue(dto,rootNode);
+        System.out.println();
+        for (JsonNode node : rootNode) {
+            System.out.println("Found matching node: " + mapper.writerWithDefaultPrettyPrinter().writeValueAsString(node));
+        }
+
+    }
+
+    public static List<JsonNode> findNodesByPropertyName(JsonNode node, String propertyName) {
+        List<JsonNode> result = new ArrayList<>();
+        findNodesByPropertyNameRecursive(node, propertyName, result);
+        return result;
+    }
+
+    private static void findNodesByPropertyNameRecursive(JsonNode node, String propertyName, List<JsonNode> result) {
+        if (node.isObject()) {
+            node.fields().forEachRemaining(entry -> {
+                if (entry.getKey().equals(propertyName)) {
+                    // 匹配到属性名称,添加节点到结果列表
+                    result.add(entry.getValue());
+                }
+                // 递归搜索子节点
+                findNodesByPropertyNameRecursive(entry.getValue(), propertyName, result);
+            });
+        }
+    }
+
+    private static void updateNodesByPropertyName(JsonNode node, String propertyName,String value) {
+        if (node.isObject()) {
+            node.fields().forEachRemaining(entry -> {
+                // 匹配到属性名称,进行值的修改
+                if (entry.getKey().equals(propertyName)) {
+                    ((ObjectNode) node).put(propertyName, value);
+                }
+                // 递归搜索子节点
+                updateNodesByPropertyName(entry.getValue(), propertyName, value);
+            });
+        }
+    }
+
+    /**
+     * 获取前端参数
+     * @param analysisDto
+     * @return
+     */
+    private static void setValue(AnalysisDto analysisDto,JsonNode jsonNode) {
+        //前端入参类
+        Field[] analysisFields = analysisDto.getClass().getDeclaredFields();
+        Arrays.asList(analysisFields).stream().forEach(field -> {
+            field.setAccessible(true);
+            try {
+                if(field.get(analysisDto) != null){
+                    updateNodesByPropertyName(jsonNode, field.getName(), field.get(analysisDto).toString());
+                }
+            } catch (IllegalAccessException e) {
+                e.printStackTrace();
+            }
+        });
+    }
+}

+ 0 - 2
energy-manage-service/src/main/java/com/energy/manage/service/util/JwtUtil.java

@@ -1,7 +1,5 @@
 package com.energy.manage.service.util;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.auth0.jwt.JWT;
 import com.auth0.jwt.algorithms.Algorithm;
 import com.auth0.jwt.exceptions.JWTDecodeException;

+ 15 - 0
energy-manage-service/src/main/java/com/energy/manage/service/util/TreeUtil.java

@@ -102,6 +102,21 @@ public class TreeUtil {
   }
 
   /**
+   * 获取树形结构
+   * @param mapList
+   * @param parentKeyName 父类key名称
+   * @return
+   */
+  public static List<Map<String, Object>> getJava8ResultTree(List<Map<String, Object>> mapList,String parentKeyName) {
+    if (org.springframework.util.CollectionUtils.isEmpty(mapList)) {
+      return Lists.newArrayList();
+    }
+    //filter过滤出所有的一级节点
+    return mapList.stream().filter(m ->m.get(parentKeyName).toString().equals("0"))
+            .peek(m -> m.put("children", sortJava8Map(getJava8Children(m, mapList)))).collect(Collectors.toList());
+  }
+
+  /**
    * 根据orderNo排序树形结构的每一个层级
    *
    * @param list

+ 11 - 1
energy-manage-service/src/main/resources/bootstrap.properties

@@ -48,4 +48,14 @@ spring.jackson.time-zone= GMT+8
 template.bzpower = http://192.168.50.234:6900/bucket-zhzn/template/%E6%A0%87%E5%87%86%E5%8A%9F%E7%8E%87%E6%9B%B2%E7%BA%BF%E6%A8%A1%E7%89%88.xlsx
 template.htpower = http://192.168.50.234:6900/bucket-zhzn/template/%E5%90%88%E5%90%8C%E5%8A%9F%E7%8E%87%E6%9B%B2%E7%BA%BF%E6%A8%A1%E7%89%88.xlsx
 template.field = http://192.168.50.234:6900/bucket-zhzn/template/%E9%A3%8E%E5%9C%BA%E8%A1%A8%E6%A8%A1%E7%89%88.xlsx
-template.draught = http://192.168.50.234:6900/bucket-zhzn/template/%E9%A3%8E%E6%9C%BA%E8%A1%A8%E6%A8%A1%E7%89%88.xlsx
+template.draught = http://192.168.50.234:6900/bucket-zhzn/template/%E9%A3%8E%E6%9C%BA%E8%A1%A8%E6%A8%A1%E7%89%88.xlsx
+
+#算法调用默认值
+analysis.url= http://192.168.50.234:16200/energy-manage-service/analysis/analysisData
+#分析算法入参
+analysis.json= {}
+#需要特殊处理的图像设置属性
+graphSets.properties=generatorSpeed,generatorTorque,cp,tsr,pitchAngle,activePower
+#需要特设处理分析类型属性
+analysis.properties=configAnalysis
+

+ 93 - 0
energy-manage-service/src/main/resources/mybatis/analysis/AnalysisCommentDescriptionMapper.xml

@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.energy.manage.service.mappers.analysis.AnalysisCommentDescriptionMapper">
+    <resultMap id="BaseResultMap" type="com.energy.manage.common.po.analysis.AnalysisCommentDescriptionPo">
+        <id column="id" property="id" jdbcType="BIGINT"/>
+        <result column="batch_code" property="batchCode" jdbcType="VARCHAR"/>
+        <result column="analysis_type_code" property="analysisTypeCode" jdbcType="VARCHAR"/>
+        <result column="comment_type_code" property="commentTypeCode" jdbcType="VARCHAR"/>
+        <result column="comment" property="comment" jdbcType="VARCHAR"/>
+        <result column="create_by" property="createBy" jdbcType="INTEGER"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="update_by" property="updateBy" jdbcType="INTEGER"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <select id="selectCountByCommentTypeCode" parameterType="java.lang.String" resultType="int">
+        select count(*)
+        from analysis_comment_description
+        where comment_type_code = #{commentTypeCode,jdbcType=VARCHAR}
+    </select>
+
+    <select id="selecByBatchCodeAndAnalysisTypeCode" parameterType="java.lang.String" resultType="com.energy.manage.service.domain.vo.analysis.AnalysisCommentDescriptionVo">
+        select acd.batch_code,
+               acd.analysis_type_code,
+               acd.comment_type_code,
+               actr.comment_type_name,
+               acd.comment
+        from analysis_comment_description as acd
+        left join analysis_comment_type_relation as actr
+        on acd.comment_type_code = actr.comment_type_code
+        where acd.batch_code = #{batchCode,jdbcType=VARCHAR}
+            <if test="analysisTypeCode != null and analysisTypeCode != ''">
+                and acd.analysis_type_code = #{analysisTypeCode,jdbcType=VARCHAR}
+            </if>
+    </select>
+
+    <insert id="insertPoSelective" parameterType="com.energy.manage.common.po.analysis.AnalysisCommentDescriptionPo">
+        insert into analysis_comment_description
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="batchCode != null">
+                batch_code,
+            </if>
+            <if test="analysisTypeCode != null">
+                analysis_type_code,
+            </if>
+            <if test="commentTypeCode != null">
+                comment_type_code,
+            </if>
+            <if test="comment != null">
+                comment,
+            </if>
+            <if test="createBy != null">
+                create_by,
+            </if>
+            <if test="updateBy != null">
+                update_by
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="batchCode != null">
+                #{batchCode,jdbcType=VARCHAR},
+            </if>
+            <if test="analysisTypeCode != null">
+                #{analysisTypeCode,jdbcType=VARCHAR},
+            </if>
+            <if test="commentTypeCode != null">
+                #{commentTypeCode,jdbcType=VARCHAR},
+            </if>
+            <if test="comment !=null">
+                #{comment,jdbcType=VARCHAR},
+            </if>
+            <if test="createBy != null">
+                #{createBy,jdbcType=INTEGER},
+            </if>
+            <if test="updateBy != null">
+                #{updateBy,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </insert>
+    <update id="updatePoSelective" parameterType="com.energy.manage.common.po.analysis.AnalysisCommentDescriptionPo">
+        update analysis_comment_description
+        <set>
+            <if test="comment != null">
+                comment = #{comment,jdbcType=VARCHAR},
+            </if>
+            <if test="updateBy != null">
+                update_by = #{updateBy,jdbcType=INTEGER}
+            </if>
+        </set>
+        where comment_type_code = #{commentTypeCode,jdbcType=VARCHAR}
+    </update>
+</mapper>

+ 84 - 0
energy-manage-service/src/main/resources/mybatis/analysis/AnalysisCommentTypeRelationMapper.xml

@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.energy.manage.service.mappers.analysis.AnalysisCommentTypeRelationMapper">
+    <resultMap id="BaseResultMap" type="com.energy.manage.common.po.analysis.AnalysisCommentTypeRelationPo">
+        <id column="id" property="id" jdbcType="BIGINT"/>
+        <result column="batch_code" property="batchCode" jdbcType="VARCHAR"/>
+        <result column="analysis_type_code" property="analysisTypeCode" jdbcType="VARCHAR"/>
+        <result column="comment_type_code" property="commentTypeCode" jdbcType="VARCHAR"/>
+        <result column="comment_type_name" property="commentTypeName" jdbcType="VARCHAR"/>
+        <result column="is_defined" property="isDefined" jdbcType="INTEGER"/>
+        <result column="is_delete" property="isDelete" jdbcType="INTEGER"/>
+        <result column="create_by" property="createBy" jdbcType="INTEGER"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <select id="selectByAnalysisTypeCode" parameterType="java.lang.String" resultType="com.energy.manage.service.domain.vo.analysis.AnalysisCommentTypeRelationVo">
+        select
+            comment_type_code,
+            comment_type_name,
+            is_defined
+        from analysis_comment_type_relation
+        where is_delete = 0
+          and ((batch_code = #{batchCode,jdbcType=VARCHAR}
+                and analysis_type_code = #{analysisTypeCode,jdbcType=VARCHAR})
+                or is_defined = 0
+              )
+    </select>
+
+    <select id="selectByTypeCode" parameterType="java.lang.String" resultType="com.energy.manage.service.domain.vo.analysis.AnalysisCommentTypeRelationVo">
+        select
+            comment_type_code,
+            comment_type_name,
+            is_defined
+        from analysis_comment_type_relation
+        where is_delete = 0
+        and is_defined = 1
+        and comment_type_code = #{commentTypeCode,jdbcType=VARCHAR}
+    </select>
+
+    <insert id="insertPoSelective" parameterType="com.energy.manage.service.domain.dto.analysis.AnalysisCommentTypeRelationDto">
+        insert into analysis_comment_type_relation
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="batchCode != null and batchCode != ''">
+                batch_code,
+            </if>
+            <if test="analysisTypeCode != null and batchCode != ''">
+                analysis_type_code,
+            </if>
+            <if test="commentTypeCode != null and batchCode != ''and batchCode != ''">
+                comment_type_code,
+            </if>
+            <if test="commentTypeName != null and batchCode != ''">
+                comment_type_name,
+            </if>
+            <if test="createBy != null">
+                create_by
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="batchCode != null and batchCode != ''">
+                #{batchCode,jdbcType=VARCHAR},
+            </if>
+            <if test="analysisTypeCode != null and batchCode != ''">
+                #{analysisTypeCode,jdbcType=VARCHAR},
+            </if>
+            <if test="commentTypeCode != null and batchCode != ''">
+                #{commentTypeCode,jdbcType=VARCHAR},
+            </if>
+            <if test="commentTypeName != null and batchCode != ''">
+                #{commentTypeName,jdbcType}
+            </if>
+           <if test="createBy != null">
+                #{createBy,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </insert>
+
+    <update id="deleteByTypeCode" parameterType="java.lang.String">
+        update analysis_comment_type_relation
+        set is_delete = 1
+        where comment_type_code = #{commentTypeCode,jdbcType=VARCHAR}
+    </update>
+</mapper>

+ 31 - 0
energy-manage-service/src/main/resources/mybatis/analysis/AnalysisDiagramRelationMapper.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.energy.manage.service.mappers.analysis.AnalysisDiagramRelationMapper">
+    <resultMap id="BaseResultMap" type="com.energy.manage.common.po.analysis.AnalysisDiagramRelationPo">
+        <id column="id" property="id" jdbcType="BIGINT"/>
+        <result column="batch_code" property="batchCode" jdbcType="VARCHAR"/>
+        <result column="field_engine_code" property="fieldEngineCode" jdbcType="VARCHAR"/>
+        <result column="analysis_type_code" property="analysisTypeCode" jdbcType="VARCHAR"/>
+        <result column="file_addr" property="fileAddr" jdbcType="VARCHAR"/>
+        <result column="auto_analysis" property="autoAnalysis" jdbcType="INTEGER"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <select id="selectByCondition" parameterType="java.lang.String" resultType="com.energy.manage.service.domain.vo.analysis.AnalysisDiagramRelationVo">
+        select
+            batch_code,
+            field_engine_code,
+            analysis_type_code,
+            file_addr,
+            create_time
+        from analysis_diagram_relation
+        where batch_code = #{batchCode,jdbcType=VARCHAR}
+        <if test="analysisTypeCode != null and analysisTypeCode != ''">
+              and analysis_type_code = #{analysisTypeCode,jdbcType=VARCHAR}
+        </if>
+        <if test="fieldEngineCode != null and fieldEngineCode != ''">
+            and field_engine_code = #{fieldEngineCode,jdbcType=VARCHAR}
+        </if>
+    </select>
+</mapper>

+ 26 - 0
energy-manage-service/src/main/resources/mybatis/analysis/AnalysisGeneralFileMapper.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.energy.manage.service.mappers.analysis.AnalysisGeneralFileMapper">
+    <resultMap id="BaseResultMap" type="com.energy.manage.common.po.analysis.AnalysisGeneralFilePo">
+        <id column="id" property="id" jdbcType="BIGINT"/>
+        <result column="batch_code" property="batchCode" jdbcType="VARCHAR"/>
+        <result column="analysis_type_code" property="analysisTypeCode" jdbcType="VARCHAR"/>
+        <result column="file_addr" property="fileAddr" jdbcType="VARCHAR"/>
+        <result column="auto_analysis" property="createBy" jdbcType="INTEGER"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <select id="selectByCondition" parameterType="java.lang.String" resultType="com.energy.manage.service.domain.vo.analysis.AnalysisGeneralFileVo">
+        select
+            batch_code,
+            analysis_type_code,
+            file_addr,
+            create_time
+        from analysis_general_file
+        where batch_code = #{batchCode,jdbcType=VARCHAR}
+        <if test="analysisTypeCode!=null and analysisTypeCode!=''">
+            and analysis_type_code = #{analysisTypeCode,jdbcType=VARCHAR}
+        </if>
+    </select>
+</mapper>

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels