chenhongyan1989 8 mesi fa
parent
commit
773906a5c9
30 ha cambiato i file con 492 aggiunte e 215 eliminazioni
  1. 0 25
      db/energy_2024-07-16.sql
  2. 2 2
      energy-manage-common/src/main/java/com/energy/manage/common/enums/OptionEnums.java
  3. 0 4
      energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisResultPo.java
  4. 5 0
      energy-manage-common/src/main/java/com/energy/manage/common/po/autoanalysisconfigdetail/AutoAnalysisConfigDetailPo.java
  5. 5 0
      energy-manage-common/src/main/java/com/energy/manage/common/po/autoanalysisconfigdetailoptionrecords/AutoAnalysisConfigDetailOptionRecordsPo.java
  6. 46 0
      energy-manage-common/src/main/java/com/energy/manage/common/po/autoanalysisconfigrelations/AutoAnalysisConfigRelationsPo.java
  7. 3 3
      energy-manage-service/generator/generatorConfig.xml
  8. 29 0
      energy-manage-service/src/main/java/com/energy/manage/service/constant/analysis/AnalysisConstants.java
  9. 3 3
      energy-manage-service/src/main/java/com/energy/manage/service/controller/analysis/AutoAnalysisConfigController.java
  10. 7 6
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AutoAnalysisConfigDetailDto.java
  11. 6 5
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AutoAnalysisConfigDetailVo.java
  12. 0 7
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisResultMapper.java
  13. 29 3
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/autoanalysisconfigdetail/AutoAnalysisConfigDetailMapper.java
  14. 6 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/autoanalysisconfigdetailoptionrecords/AutoAnalysisConfigDetailOptionRecordsMapper.java
  15. 13 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/autoanalysisconfigrelations/AutoAnalysisConfigRelationsMapper.java
  16. 0 5
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/datatransfer/DataTransferMapper.java
  17. 6 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/AnalysisService.java
  18. 19 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/AutoAnalysisService.java
  19. 5 10
      energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/impl/AnalysisServiceImpl.java
  20. 184 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/impl/AutoAnalysisServiceImpl.java
  21. 2 2
      energy-manage-service/src/main/java/com/energy/manage/service/service/autoanalysisconfig/AutoAnalysisConfigService.java
  22. 28 37
      energy-manage-service/src/main/java/com/energy/manage/service/service/autoanalysisconfig/impl/AutoAnalysisConfigServiceImpl.java
  23. 7 57
      energy-manage-service/src/main/java/com/energy/manage/service/task/AutoAnalysisTask.java
  24. 3 17
      energy-manage-service/src/main/java/com/energy/manage/service/test/TestController.java
  25. 16 0
      energy-manage-service/src/main/java/com/energy/manage/service/util/DateUtils.java
  26. 7 8
      energy-manage-service/src/main/resources/mybatis/analysis/AnalysisResultMapper.xml
  27. 23 2
      energy-manage-service/src/main/resources/mybatis/autoanalysisconfigdetail/AutoAnalysisConfigDetailMapper.xml
  28. 12 1
      energy-manage-service/src/main/resources/mybatis/autoanalysisconfigdetailoptionrecords/AutoAnalysisConfigDetailOptionRecordsMapper.xml
  29. 26 0
      energy-manage-service/src/main/resources/mybatis/autoanalysisconfigrelations/AutoAnalysisConfigRelationsMapper.xml
  30. 0 18
      energy-manage-service/src/main/resources/mybatis/datatransfer/DataTransferMapper.xml

+ 0 - 25
db/energy_2024-07-16.sql

@@ -1755,36 +1755,11 @@ CREATE TABLE `analysis_result` (
   `update_by` int(11) DEFAULT '0' COMMENT '更新人',
   `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
   `analysis_progress` decimal(6,2) DEFAULT '0.00' COMMENT '分析进度\n',
-  `call_status` tinyint(2) NOT NULL DEFAULT '0' COMMENT '是否自动调用分析算法。0:否 1:是',
   `on_off_call` tinyint(2) NOT NULL DEFAULT '0' COMMENT '开启自动分析 0:否 1:是',
   PRIMARY KEY (`id`),
   UNIQUE KEY `index_batch_code` (`batch_code`) USING BTREE COMMENT '批次索引'
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='分析结果表—批次分析结果表';
 
-LOCK TABLES `analysis_result` WRITE;
-/*!40000 ALTER TABLE `analysis_result` DISABLE KEYS */;
-
-INSERT INTO `analysis_result` (`id`, `batch_code`, `analysis_state`, `err_state`, `err_code`, `err_info`, `create_by`, `create_time`, `update_by`, `update_time`, `analysis_progress`, `call_status`, `on_off_call`)
-VALUES
-	(426,'WOF053600062-WOB00021',1,1,'-1','analysisState() got an unexpected keyword argument \'analysisProgress\'',0,'2024-06-20 16:02:33',0,'2024-07-01 19:02:13',NULL,0,0),
-	(429,'WOF053600062-WOB00022',1,1,'-1','\'DataFrameGroupBy\' object has no attribute \'empty\'',0,'2024-06-24 09:40:19',0,'2024-07-16 13:55:25',0.00,0,1),
-	(430,'WOF053600062-WOB00023',-1,0,'','',0,'2024-06-25 09:47:04',0,'2024-06-25 09:47:04',NULL,0,0),
-	(431,'WOF01000063-WOB00024',-1,0,'','',0,'2024-06-25 15:28:35',0,'2024-06-25 15:28:35',NULL,0,0),
-	(432,'WOF01000063-WOB00025',-1,0,'','',0,'2024-06-26 11:30:42',0,'2024-06-26 11:30:42',NULL,0,0),
-	(433,'WOF053600062-WOB00026',-1,0,'','',0,'2024-06-26 16:10:55',0,'2024-06-26 16:10:55',NULL,0,0),
-	(434,'WOF053600062-WOB00027',1,0,'','',0,'2024-06-27 09:30:21',0,'2024-06-28 14:16:33',NULL,0,0),
-	(436,'WOF085500002-WOB00002',1,0,NULL,NULL,0,'2024-06-28 09:17:42',0,'2024-07-10 10:45:33',100.00,0,0),
-	(548,'WOF01000063-WOB00028',-1,0,'','',0,'2024-07-04 10:31:21',0,'2024-07-04 10:31:21',0.00,0,0),
-	(549,'WOF01000063-WOB00029',-1,0,'','',0,'2024-07-04 10:33:17',0,'2024-07-04 10:33:17',0.00,0,0),
-	(550,'WOF01000063-WOB00030',-1,0,'','',0,'2024-07-04 10:34:16',0,'2024-07-04 10:34:16',0.00,0,0),
-	(551,'WOF01000063-WOB000066',-1,0,'','',0,'2024-07-04 15:19:14',0,'2024-07-04 15:19:14',0.00,0,0),
-	(561,'WOF01000063-WOB000068',-1,0,'','',0,'2024-07-05 15:55:52',0,'2024-07-05 15:55:52',0.00,0,0),
-	(562,'WOF053600062-WOB000069',1,0,'','',0,'2024-07-05 16:02:37',0,'2024-07-08 16:05:22',0.00,0,0),
-	(563,'WOF01000063-WOB000070',-1,0,'','',0,'2024-07-05 16:03:45',0,'2024-07-05 16:03:45',0.00,0,0),
-	(564,'WOF053600062-WOB000071',1,0,'','',0,'2024-07-08 15:36:04',0,'2024-07-16 09:31:53',0.00,0,0);
-
-/*!40000 ALTER TABLE `analysis_result` ENABLE KEYS */;
-UNLOCK TABLES;
 
 
 # Dump of table analysis_type

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

@@ -17,8 +17,8 @@ public enum OptionEnums {
     /**
      * 1:增加 2:修改
      */
-    ADD(1,"增加"),
-    EDIT(2,"修改"),
+    ADD(0,"增加"),
+    EDIT(1,"修改"),
     OFF(2,"关停"),
     ON(3,"启动");
 

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

@@ -76,10 +76,6 @@ public class AnalysisResultPo {
      */
     private BigDecimal analysisProgress;
 
-    /**
-     * 是否自动调用分析算法。0:否 1:是
-     */
-    private Integer callStatus;
 
     /**
      * 开启自动分析 0:否 1:是

+ 5 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/autoanalysisconfigdetail/AutoAnalysisConfigDetailPo.java

@@ -55,5 +55,10 @@ public class AutoAnalysisConfigDetailPo {
      */
     private Date updateTime;
 
+    /**
+     * 配置唯一标识
+     */
+    private String configUniqueId;
+
 
 }

+ 5 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/autoanalysisconfigdetailoptionrecords/AutoAnalysisConfigDetailOptionRecordsPo.java

@@ -53,5 +53,10 @@ public class AutoAnalysisConfigDetailOptionRecordsPo {
      */
     private Date createTime;
 
+    /**
+     * 配置唯一标识
+     */
+    private String configUniqueId;
+
 
 }

+ 46 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/autoanalysisconfigrelations/AutoAnalysisConfigRelationsPo.java

@@ -0,0 +1,46 @@
+package com.energy.manage.common.po.autoanalysisconfigrelations;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.util.Date;
+
+@Table(name = "auto_analysis_config_relations")
+@Data
+@Accessors(chain = true)
+public class AutoAnalysisConfigRelationsPo {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 配置唯一标识
+     */
+    private String configUniqueId;
+
+    /**
+     * 批次号
+     */
+    private String batchCode;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+
+
+}

+ 3 - 3
energy-manage-service/generator/generatorConfig.xml

@@ -90,7 +90,7 @@
         </javaModelGenerator>
 
         <!-- 生成映射文件xml的包名和位置-->
-        <sqlMapGenerator targetPackage="mybatis.autoanalysisconfigdetail" targetProject="src/main/resources">
+        <sqlMapGenerator targetPackage="mybatis.autoanalysisconfig_relations" targetProject="src/main/resources">
             <!-- 是否让schema作为包后缀-->
             <property name="enableSubPackages" value="false"/>
         </sqlMapGenerator>
@@ -99,7 +99,7 @@
             type="XMLMAPPER" 会将接口的实现放在 mapper.xml中,也推荐这样配置。
             type="ANNOTATEDMAPPER",接口的实现通过注解写在接口上面
          -->
-        <javaClientGenerator type="XMLMAPPER" targetPackage="com.energy.manage.service.mappers.autoanalysisconfigdetail"
+        <javaClientGenerator type="XMLMAPPER" targetPackage="com.energy.manage.service.mappers.autoanalysisconfigrelations"
                              targetProject="src/main/java">
             <!-- 是否让schema作为包后缀-->
             <property name="enableSubPackages" value="false"/>
@@ -113,7 +113,7 @@
             生成全部表tableName设为 %
         -->
 
-        <table tableName="auto_analysis_config_detail" domainObjectName="AutoAnalysisConfigDetail"
+        <table tableName="auto_analysis_config_relations" domainObjectName="AutoAnalysisConfigRelations"
                enableDeleteByExample="false"
                enableCountByExample="false"
                enableSelectByExample="false"

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

@@ -76,6 +76,35 @@ public interface AnalysisConstants {
      */
     Integer ON_CALL = 1;
 
+    /**
+     * 自动分析标识
+     */
+    Integer ANALYSIS_AUTO = 1;
+
+    /**
+     * 分钟级
+     */
+    String MINUTE = "minute";
+
+    /**
+     * 秒级
+     */
+    String SECEND = "second";
 
+    /**
+     * 字符分隔符
+     */
+    String CHAR_SEPARATOR = "|";
+
+
+    /**
+     * 字符分隔符(转义符)
+     */
+    String CHAR_ESCAPE_SEPARATOR = "\\|";
+
+    /**
+     * 自动主题
+     */
+    String AUTO_ANALYSIS_NAME = "自动分析";
 
 }

+ 3 - 3
energy-manage-service/src/main/java/com/energy/manage/service/controller/analysis/AutoAnalysisConfigController.java

@@ -37,7 +37,7 @@ public class AutoAnalysisConfigController extends BaseServiceController {
     @UserLoginToken
     @PostMapping("/configSave")
     public ResultResp configSave(@RequestBody AutoAnalysisConfigDetailDto autoAnalysisConfigDetailDto) {
-        return success(autoAnalysisConfigService.configSave(autoAnalysisConfigDetailDto));
+        return autoAnalysisConfigService.configSave(autoAnalysisConfigDetailDto);
     }
 
 
@@ -45,10 +45,10 @@ public class AutoAnalysisConfigController extends BaseServiceController {
     @UserLoginToken
     @PostMapping("/configEdit")
     public ResultResp configEdit(@RequestBody AutoAnalysisConfigDetailDto autoAnalysisConfigDetailDto) {
-        return success(autoAnalysisConfigService.configEdit(autoAnalysisConfigDetailDto));
+        return autoAnalysisConfigService.configEdit(autoAnalysisConfigDetailDto);
     }
 
-    @ApiOperation(value = "编辑配置")
+    @ApiOperation(value = "开启/关停自动分析")
     @UserLoginToken
     @PostMapping("/onOff")
     public ResultResp onOff(@RequestBody AutoAnalysisConfigDetailDto autoAnalysisConfigDetailDto) {

+ 7 - 6
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AutoAnalysisConfigDetailDto.java

@@ -4,6 +4,7 @@ import com.energy.manage.service.domain.dto.BaseDto;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
 
@@ -15,12 +16,6 @@ import java.util.Date;
 @Data
 @Accessors(chain = true)
 public class AutoAnalysisConfigDetailDto extends BaseDto {
-
-    /**
-     * 主键
-     */
-    private Long id;
-
     /**
      * 风场名称
      */
@@ -40,10 +35,16 @@ public class AutoAnalysisConfigDetailDto extends BaseDto {
      * 开始时间
      */
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date startTime;
 
     /**
      * 是否开启 0:关闭 1:开启
      */
     private Integer startupState = 1;
+
+    /**
+     * 配置唯一标识
+     */
+    private String configUniqueId;
 }

+ 6 - 5
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AutoAnalysisConfigDetailVo.java

@@ -15,10 +15,6 @@ import java.util.Date;
 @Accessors(chain = true)
 public class AutoAnalysisConfigDetailVo {
 
-    /**
-     * 主键
-     */
-    private Long id;
 
     /**
      * 风场名称
@@ -44,7 +40,7 @@ public class AutoAnalysisConfigDetailVo {
     /**
      * 是否开启 0:关闭 1:开启
      */
-    private Boolean startupState;
+    private Integer startupState;
 
     /**
      * 创建时间
@@ -57,4 +53,9 @@ public class AutoAnalysisConfigDetailVo {
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
+
+    /**
+     * 配置唯一标识
+     */
+    private String configUniqueId;
 }

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

@@ -61,13 +61,6 @@ public interface AnalysisResultMapper extends MyMapper<AnalysisResultPo> {
 
 
     /**
-     * 更新自动分析状态
-     * @param batchCode
-     * @return
-     */
-    int updateCallStatus(@Param("batchCode")String batchCode);
-
-    /**
      * 是否开启自动分析
      * @param batchCode
      * @return

+ 29 - 3
energy-manage-service/src/main/java/com/energy/manage/service/mappers/autoanalysisconfigdetail/AutoAnalysisConfigDetailMapper.java

@@ -12,12 +12,38 @@ import java.util.List;
 @Repository
 public interface AutoAnalysisConfigDetailMapper extends MyMapper<AutoAnalysisConfigDetailPo> {
 
-
+    /**
+     * 根据条件查询配置
+     * @param detail
+     * @return
+     */
     List<AutoAnalysisConfigDetailVo> selectByCondition(AutoAnalysisConfigDetailDto detail);
 
-
+    /**
+     * 插入配置
+     * @param detailDto
+     * @return
+     */
     int insertConfig(AutoAnalysisConfigDetailDto detailDto);
 
-
+    /**
+     * 根据条件更新配置
+     * @param detailDto
+     * @return
+     */
     int updateConfigByCondition(AutoAnalysisConfigDetailDto detailDto);
+
+    /**
+     * 根据唯一id查询配置
+     * @param configUniqueId
+     * @return
+     */
+    AutoAnalysisConfigDetailPo selectByUniqueId(@Param("configUniqueId") String configUniqueId);
+
+    /**
+     * 查询配置是否存在
+     * @param detailDto
+     * @return
+     */
+    int selectExistConfig(AutoAnalysisConfigDetailDto detailDto);
 }

+ 6 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/autoanalysisconfigdetailoptionrecords/AutoAnalysisConfigDetailOptionRecordsMapper.java

@@ -2,10 +2,16 @@ package com.energy.manage.service.mappers.autoanalysisconfigdetailoptionrecords;
 
 import com.energy.manage.common.mapper.MyMapper;
 import com.energy.manage.common.po.autoanalysisconfigdetailoptionrecords.AutoAnalysisConfigDetailOptionRecordsPo;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 @Repository
 public interface AutoAnalysisConfigDetailOptionRecordsMapper extends MyMapper<AutoAnalysisConfigDetailOptionRecordsPo> {
 
 
+    /**
+     * 查询最晚的一次修改记录
+     */
+    AutoAnalysisConfigDetailOptionRecordsPo selectEditByCreateTime(@Param("configUniqueId") String configUniqueId);
+
 }

+ 13 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/autoanalysisconfigrelations/AutoAnalysisConfigRelationsMapper.java

@@ -0,0 +1,13 @@
+package com.energy.manage.service.mappers.autoanalysisconfigrelations;
+
+
+import com.energy.manage.common.mapper.MyMapper;
+import com.energy.manage.common.po.autoanalysisconfigrelations.AutoAnalysisConfigRelationsPo;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface AutoAnalysisConfigRelationsMapper extends MyMapper<AutoAnalysisConfigRelationsPo> {
+
+
+    AutoAnalysisConfigRelationsPo selectByConfigUniqueId(String configUniqueId);
+}

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

@@ -27,11 +27,6 @@ public interface DataTransferMapper extends MyMapper<DataTransferPo>{
      */
     List<String> selectAllWindFieldBtach(Integer roleId);
 
-    /**
-     * 查出秒级分钟级已转换完成的批次与风场编号
-     * @return
-     */
-    DataTransferVo selectBatchCodeForAutoAnaly();
 
     /**
      * 查询转换数据组

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

@@ -164,5 +164,11 @@ public interface AnalysisService {
     ResultResp downloadFile(String fieldCode, String batchCode, String analysisTypeCode, HttpServletResponse response);
 
 
+    /**
+     * 创建批次号
+     * @param fieldCode
+     * @return
+     */
+    String createWindFieldBatchCode(String fieldCode);
 
 }

+ 19 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/AutoAnalysisService.java

@@ -0,0 +1,19 @@
+package com.energy.manage.service.service.analysis;
+
+/**
+ * 自动分析
+ * @author chy
+ * @date 2025/3/31 15:42
+ * @desc
+ */
+
+public interface AutoAnalysisService {
+
+
+    /**
+     * 自动分析
+     */
+    void autoAnalysis();
+
+
+}

+ 5 - 10
energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/impl/AnalysisServiceImpl.java

@@ -294,16 +294,10 @@ public class AnalysisServiceImpl implements AnalysisService {
     @Override
     public ResultResp analysis(AnalysisDto analysisDto) {
         try {
-//            if(checkAnalysising()){
-//                return ResultResp.FAIL(ConstVar.ANALYSISING);
-//            }
-            //手动分析要进行分析类型code转换为flag(便于json分析类型赋值)
-            // (是因为算法分析类型code与平台分析类型code没有做统一,开发之后才做统一,所以需要转换)
-            if(analysisDto.getAutoOrManual().equalsIgnoreCase(AnalysisConstants.MANUAL_ANALYSIS)){
-                transferAnalysisFlagByCode(analysisDto);
-            }
+            //(是因为算法分析类型code与平台分析类型code没有做统一,开发之后才做统一,所以需要转换)
+            transferAnalysisFlagByCode(analysisDto);
             //当有功功率没有设置的话 设置默认值 整个风场最大额定功率*1.2 (图像设计移动到前端了,废弃)
-//            setActivePower(analysisDto);
+            //setActivePower(analysisDto);
             //查询分析中或者排队中的数量
             int analysingCount = analysisResultMapper.selectAnalysisingCount();
             if(analysingCount > 0){
@@ -315,7 +309,7 @@ public class AnalysisServiceImpl implements AnalysisService {
                 //更新任务状态为排队中(只更新分析完成与未分析状态)
                 analysisResultMapper.updateAnalysisState(analysisDto.getDataBatchNum());
             }else{
-                //调用算法逻辑(排队逻辑)
+                //调用算法逻辑
                 callAnalysis(analysisDto);
             }
             return ResultResp.SUCCESS();
@@ -1242,6 +1236,7 @@ public class AnalysisServiceImpl implements AnalysisService {
      * @param fieldCode
      * @return
      */
+    @Override
     public String createWindFieldBatchCode(String fieldCode){
         String sequece = IdPrefixEnum.WIND_ENGINE_BATCH_NUMBER.getCode().concat(IdGeneratorUtil.zeroFillUtil(cacheService.incr(ManagerRedisKeyConstant.build(ManagerRedisKeyConstant.IDGENERATOR_CONSTANTS_KEY, fieldCode,IdPrefixEnum.WIND_ENGINE_BATCH_NUMBER.getCode())),6));
         return fieldCode + SEPARATOR + sequece;

+ 184 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/impl/AutoAnalysisServiceImpl.java

@@ -0,0 +1,184 @@
+package com.energy.manage.service.service.analysis.impl;
+
+import com.energy.manage.common.po.analysis.AnalysisResultPo;
+import com.energy.manage.common.po.autoanalysisconfigdetailoptionrecords.AutoAnalysisConfigDetailOptionRecordsPo;
+import com.energy.manage.common.po.autoanalysisconfigrelations.AutoAnalysisConfigRelationsPo;
+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.AutoAnalysisConfigDetailDto;
+import com.energy.manage.service.domain.vo.analysis.AnalysisTypeVo;
+import com.energy.manage.service.domain.vo.analysis.AutoAnalysisConfigDetailVo;
+import com.energy.manage.service.mappers.analysis.AnalysisResultMapper;
+import com.energy.manage.service.mappers.analysis.AnalysisTypeMapper;
+import com.energy.manage.service.mappers.autoanalysisconfigdetail.AutoAnalysisConfigDetailMapper;
+import com.energy.manage.service.mappers.autoanalysisconfigdetailoptionrecords.AutoAnalysisConfigDetailOptionRecordsMapper;
+import com.energy.manage.service.mappers.autoanalysisconfigrelations.AutoAnalysisConfigRelationsMapper;
+import com.energy.manage.service.service.analysis.AnalysisService;
+import com.energy.manage.service.service.analysis.AutoAnalysisService;
+import com.energy.manage.service.util.DateUtils;
+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.Date;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import static com.energy.manage.service.constant.analysis.AnalysisConstants.AUTO_ANALYSIS_NAME;
+
+/**
+ * @author chy
+ * @date 2025/3/31 15:43
+ * @desc
+ */
+@Slf4j
+@Service
+public class AutoAnalysisServiceImpl implements AutoAnalysisService {
+
+    @Autowired
+    private AutoAnalysisConfigDetailMapper autoAnalysisConfigDetailMapper;
+
+    @Autowired
+    private AutoAnalysisConfigDetailOptionRecordsMapper optionRecordsMapper;
+
+    @Autowired
+    private AnalysisService analysisService;
+
+    @Autowired
+    private AnalysisResultMapper analysisResultMapper;
+
+    @Autowired
+    private AutoAnalysisConfigRelationsMapper relationsMapper;
+
+    @Autowired
+    private AnalysisTypeMapper analysisTypeMapper;
+
+    /**
+     * 自动分析
+     */
+    @Override
+    public void autoAnalysis() {
+        log.info("触发自动分析定时任务开始。");
+        //查询所有风场启动中的自动分析配置
+        List<AutoAnalysisConfigDetailVo> detailVos = autoAnalysisConfigDetailMapper.selectByCondition(new AutoAnalysisConfigDetailDto());
+        if(CollectionUtils.isEmpty(detailVos)){
+            log.info("当前无自动分析配置,不执行自动分析。");
+            return;
+        }
+        detailVos.stream().forEachOrdered(item->{
+            //保存操作结果与关联关系
+            AutoAnalysisConfigRelationsPo relationsPo = saveAnalysisResult(item);
+            if(relationsPo == null){
+                log.info("任务id = {} 数据截止日期在当前时间之后,不执行自动分析。", item.getConfigUniqueId());
+                return;
+            }
+            //调用分析
+            analysis(relationsPo,item.getFieldCode());
+        });
+        log.info("触发自动分析定时任务结束");
+    }
+
+    /**
+     * 保存操作结果与关联关系(判断最后一次分析到目前为止有没有改动过配置,如果改动过则重新跑)
+     * @param vo
+     */
+    private AutoAnalysisConfigRelationsPo saveAnalysisResult(AutoAnalysisConfigDetailVo vo){
+        String configUniqueId = vo.getConfigUniqueId();
+        AutoAnalysisConfigRelationsPo relationsPo = relationsMapper.selectByConfigUniqueId(configUniqueId);
+        //如果当前配置一次自动分析没有执行 则起始时间按照配置时间 否则按照最后一次分析endTime(前提是没有修改配置)
+        Date startTime = relationsPo == null ? vo.getStartTime() : relationsPo.getEndTime();
+        //获取最后一次分析创建时间
+        Date relatonCreateTime = relationsPo == null ? null : relationsPo.getCreateTime();
+        //如果修改配置,则查询出该配置最后一次修改记录,判断修改时间在最后一次执行分析之后且在当前时间之前
+        AutoAnalysisConfigDetailOptionRecordsPo optionRecordsPo = optionRecordsMapper.selectEditByCreateTime(configUniqueId);
+        //获取最后一次修改配置时间
+        Date optionCreateTime = optionRecordsPo == null ? null : optionRecordsPo.getCreateTime();
+        //如果修改配置时间在最后一次分析之后,则重新计算开始时间,按照配置开始时间重新跑
+        startTime = optionCreateTime != null
+                && optionCreateTime.after(startTime)
+                && relatonCreateTime != null
+                && optionCreateTime.after(relatonCreateTime) ?  vo.getStartTime() : startTime;
+        //获取数据结束日期
+        Date endTime = DateUtils.addDays(startTime, vo.getIntervalDays());
+        //如果数据结束日期在当前时间之后则不需要执行分析
+        if(endTime.after(new Date())){
+            return null;
+        }
+        //创建并保存分析结果
+        AnalysisResultPo analysisResultPo = createAnalysisResultPo(vo.getFieldCode(),startTime,endTime);
+        analysisResultMapper.insertSelective(analysisResultPo);
+        //创建并保存关联关系
+        AutoAnalysisConfigRelationsPo saveRelationsPo = createRelationsPo(configUniqueId, analysisResultPo.getBatchCode(),
+                startTime, endTime);
+        relationsMapper.insertSelective(saveRelationsPo);
+        return saveRelationsPo;
+    }
+
+    /**
+     * 创建分析结果
+     * @param fieldCode
+     * @return
+     */
+    private AnalysisResultPo createAnalysisResultPo(String fieldCode ,Date startTime ,Date endTime){
+        //创建分析名称
+        String analysisName = AUTO_ANALYSIS_NAME + "(" + DateUtils.convertDate2StringYMD(startTime) + "--" + DateUtils.convertDate2StringYMD(endTime) + ")";
+        return new AnalysisResultPo().setAnalysisName(analysisName)
+                .setSketch(analysisName)
+                .setBatchCode(analysisService.createWindFieldBatchCode(fieldCode))
+                .setFieldCode(fieldCode)
+                .setOnOffCall(AnalysisConstants.ON_CALL)
+                .setAnalysisFlag(AnalysisConstants.ANALYSIS_AUTO);
+    }
+
+    /**
+     * 创建关联关系
+     * @param configUniqueId
+     * @param batchCode
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    private AutoAnalysisConfigRelationsPo createRelationsPo( String configUniqueId, String batchCode,Date startTime, Date endTime) {
+        return new AutoAnalysisConfigRelationsPo().setConfigUniqueId(configUniqueId)
+                .setBatchCode(batchCode)
+                .setStartTime(startTime)
+                .setEndTime(endTime);
+    }
+
+    /**
+     * 调用分析
+     * @param relationsPo
+     * @param fieldCode
+     */
+    private void analysis(AutoAnalysisConfigRelationsPo relationsPo,String fieldCode){
+        AnalysisDto analysisDto = new AnalysisDto();
+        //获取所有的分钟级/秒级分析类型
+        List<AnalysisTypeVo> analysisTypeVo = analysisTypeMapper.selectAllVo();
+        //构建分析类型标识
+        Set<String> configAnalysis = analysisTypeVo.stream().filter(item-> StringUtils.endsWithAny(item.getTypeFlag(), AnalysisConstants.MINUTE,AnalysisConstants.SECEND))
+                .map(item->constructTypeFlag(item)).collect(Collectors.toSet());
+
+        //创建分析dto
+        analysisDto.setAutoOrManual(AnalysisConstants.AUTO_ANALYSIS)
+                .setPowerFarmID(fieldCode)
+                .setDataBatchNum(relationsPo.getBatchCode())
+                .setConfigAnalysis(configAnalysis.stream().collect(Collectors.toList()))
+                .setBeginTime(DateUtils.convertDate2StringYMD(relationsPo.getStartTime()))
+                .setEndTime(DateUtils.convertDate2StringYMD(relationsPo.getEndTime()));
+        //调用分析
+        analysisService.analysis(analysisDto);
+    }
+
+    /**
+     * 构建分析类型标识
+     * @return
+     */
+    private String constructTypeFlag(AnalysisTypeVo vo){
+        String[] flags = vo.getTypeFlag().split(AnalysisConstants.CHAR_ESCAPE_SEPARATOR);
+        return vo.getTypeCode() + AnalysisConstants.CHAR_SEPARATOR + flags[flags.length-1];
+    }
+}

+ 2 - 2
energy-manage-service/src/main/java/com/energy/manage/service/service/autoanalysisconfig/AutoAnalysisConfigService.java

@@ -29,14 +29,14 @@ public interface AutoAnalysisConfigService {
      * @param autoAnalysisConfigDetailDto
      * @return
      */
-    int configSave(AutoAnalysisConfigDetailDto autoAnalysisConfigDetailDto);
+    ResultResp configSave(AutoAnalysisConfigDetailDto autoAnalysisConfigDetailDto);
 
     /**
      * 配置编辑
      * @param autoAnalysisConfigDetailDto
      * @return
      */
-    int configEdit(AutoAnalysisConfigDetailDto autoAnalysisConfigDetailDto);
+    ResultResp configEdit(AutoAnalysisConfigDetailDto autoAnalysisConfigDetailDto);
 
     /**
      * 启动/关闭

+ 28 - 37
energy-manage-service/src/main/java/com/energy/manage/service/service/autoanalysisconfig/impl/AutoAnalysisConfigServiceImpl.java

@@ -9,7 +9,7 @@ import com.energy.manage.service.domain.vo.analysis.AutoAnalysisConfigDetailVo;
 import com.energy.manage.service.mappers.autoanalysisconfigdetail.AutoAnalysisConfigDetailMapper;
 import com.energy.manage.service.mappers.autoanalysisconfigdetailoptionrecords.AutoAnalysisConfigDetailOptionRecordsMapper;
 import com.energy.manage.service.service.autoanalysisconfig.AutoAnalysisConfigService;
-import org.apache.commons.collections4.CollectionUtils;
+import com.energy.manage.service.util.UUIDUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -41,24 +41,34 @@ public class AutoAnalysisConfigServiceImpl implements AutoAnalysisConfigService
     }
 
     @Override
-    public int configSave(AutoAnalysisConfigDetailDto autoAnalysisConfigDetailDto) {
-        List<AutoAnalysisConfigDetailVo> vos = autoAnalysisConfigDetailMapper.selectByCondition(autoAnalysisConfigDetailDto);
-        if(CollectionUtils.isNotEmpty(vos)){
-            return 0;
+    public ResultResp configSave(AutoAnalysisConfigDetailDto detailDto) {
+        //同一个风场存在一个相同的配置(不论是否在启动状态)
+        int existConfigCount = autoAnalysisConfigDetailMapper.selectExistConfig(detailDto);
+        if(existConfigCount > 0){
+            return ResultResp.FAIL(EXSIT_ON_CONFIG);
         }
-        //保存配置
-        int saveCount = autoAnalysisConfigDetailMapper.insertConfig(autoAnalysisConfigDetailDto);
+        String configUniqueId = UUIDUtil.getShortUUIDLowCase();
         //保存操作记录
-        optionRecordsMapper.insertSelective(new AutoAnalysisConfigDetailOptionRecordsPo().setFieldCode(autoAnalysisConfigDetailDto.getFieldCode()));
-        return saveCount;
+        optionRecordsMapper.insertSelective(new AutoAnalysisConfigDetailOptionRecordsPo()
+                                                        .setFieldCode(detailDto.getFieldCode())
+                                                        .setConfigUniqueId(configUniqueId));
+        //保存配置
+        autoAnalysisConfigDetailMapper.insertConfig(detailDto.setConfigUniqueId(configUniqueId));
+        return ResultResp.SUCCESS();
     }
 
     @Override
-    public int configEdit(AutoAnalysisConfigDetailDto detailDto) {
+    public ResultResp configEdit(AutoAnalysisConfigDetailDto detailDto) {
+        //同一个风场存在一个相同的配置(不论是否在启动状态)
+        int existConfigCount = autoAnalysisConfigDetailMapper.selectExistConfig(detailDto);
+        if(existConfigCount > 0){
+            return ResultResp.FAIL(EXSIT_ON_CONFIG);
+        }
         //保存操作记录(先保存原始值)
-        saveOptionRecords(detailDto.getId(), OptionEnums.EDIT.getCode());
+        saveOptionRecords(detailDto.getConfigUniqueId(), OptionEnums.EDIT.getCode());
         //更新配置
-        return autoAnalysisConfigDetailMapper.updateConfigByCondition(detailDto);
+        autoAnalysisConfigDetailMapper.updateConfigByCondition(detailDto);
+        return ResultResp.SUCCESS();
     }
 
     /**
@@ -68,46 +78,27 @@ public class AutoAnalysisConfigServiceImpl implements AutoAnalysisConfigService
      */
     @Override
     public ResultResp onOff(AutoAnalysisConfigDetailDto detailDto) {
-        int startupState = detailDto.getStartupState();
-        //判断当前风场有无启动中的配置
-        if(hasStartupConfig(detailDto)){
-            return ResultResp.FAIL(EXSIT_ON_CONFIG);
-        }
         //保存操作记录
-        int optionFlag = startupState == 1 ? OptionEnums.ON.getCode() : OptionEnums.OFF.getCode();
+        int optionFlag = detailDto.getStartupState() == 1 ? OptionEnums.ON.getCode() : OptionEnums.OFF.getCode();
         //保存操作记录(先保存操作记录,后更新)
-        saveOptionRecords(detailDto.getId(), optionFlag);
+        saveOptionRecords(detailDto.getConfigUniqueId(), optionFlag);
         //更新配置
         autoAnalysisConfigDetailMapper.updateConfigByCondition(detailDto);
         return ResultResp.SUCCESS();
     }
 
     /**
-     * 是否存在启动中的配置
-     * @param detailDto
-     * @return
-     */
-    private Boolean hasStartupConfig(AutoAnalysisConfigDetailDto detailDto){
-        if(detailDto.getStartupState() == 0){
-            return false;
-        }
-        //获取当前风场启动中的配置列表
-        List<AutoAnalysisConfigDetailVo> vos = autoAnalysisConfigDetailMapper.selectByCondition(new AutoAnalysisConfigDetailDto()
-                                                                                                        .setFieldCode(detailDto.getFieldCode()));
-        return CollectionUtils.isNotEmpty(vos);
-    }
-
-    /**
      * 保存操作记录
-     * @param id
+     * @param configUniqueId
      * @param optionFlag
      */
-    private void saveOptionRecords(Long id, Integer optionFlag){
+    private void saveOptionRecords(String configUniqueId, Integer optionFlag){
         //查询更新前的配置,为后续保存操作记录做准备
-        AutoAnalysisConfigDetailPo exist = autoAnalysisConfigDetailMapper.selectByPrimaryKey(id);
+        AutoAnalysisConfigDetailPo exist = autoAnalysisConfigDetailMapper.selectByUniqueId(configUniqueId);
         //保存操作记录
         AutoAnalysisConfigDetailOptionRecordsPo recordsPo = new AutoAnalysisConfigDetailOptionRecordsPo()
                                                                     .setFieldCode(exist.getFieldCode())
+                                                                    .setConfigUniqueId(configUniqueId)
                                                                     .setOptionFlag(optionFlag)
                                                                     .setSourceStartupState(exist.getStartupState())
                                                                     .setSourceIntevalDays(exist.getIntervalDays())

+ 7 - 57
energy-manage-service/src/main/java/com/energy/manage/service/task/AutoAnalysisTask.java

@@ -1,24 +1,13 @@
 package com.energy.manage.service.task;
 
-import com.energy.manage.service.constant.analysis.AnalysisConstants;
-import com.energy.manage.service.domain.dto.analysis.AnalysisDto;
-import com.energy.manage.service.domain.vo.analysis.AnalysisTypeVo;
-import com.energy.manage.service.domain.vo.datatransfer.DataTransferVo;
-import com.energy.manage.service.mappers.analysis.AnalysisResultMapper;
-import com.energy.manage.service.mappers.analysis.AnalysisTypeMapper;
-import com.energy.manage.service.mappers.datatransfer.DataTransferMapper;
-import com.energy.manage.service.service.analysis.AnalysisService;
+import com.energy.manage.service.service.analysis.AutoAnalysisService;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.List;
-import java.util.stream.Collectors;
-
 /**
- * 自动分析定时任务
+ * 自动分析定时任务(在线数据自动分析)
  * @author chy
  * @date 2024/6/2 21:35
  * @desc
@@ -28,53 +17,14 @@ import java.util.stream.Collectors;
 public class AutoAnalysisTask {
 
     @Autowired
-    private AnalysisService analysisService;
-
-    @Autowired
-    private DataTransferMapper dataTransferMapper;
-
-    @Autowired
-    private AnalysisTypeMapper typeMapper;
-
-    @Autowired
-    private AnalysisResultMapper analysisResultMapper;
+    private AutoAnalysisService autoAnalysisService;
 
     /**
      * 自动分析
      */
-//    @XxlJob(value = "autoAnalysis")
-//    void autoAnalysis() {
-//        log.info("触发自动分析定时任务开始");
-//        if(analysisService.checkAnalysising()){
-//            log.info("当前有正在分析的数据,自动分析返回");
-//            return;
-//        }
-//        //获取转换完成且未自动分析的的批次号
-//        DataTransferVo dataTransferVo = dataTransferMapper.selectBatchCodeForAutoAnaly();
-//        if(dataTransferVo == null || StringUtils.isBlank(dataTransferVo.getBatchCode())){
-//            log.info("当前没有秒级、分钟级全部转换完成的数据,自动分析返回");
-//            return;
-//        }
-//        //分析调用
-//        analysisService.analysis(assignmentAnalysisDto(dataTransferVo));
-//        //自动分析调用完成之后更新状态
-//        analysisResultMapper.updateCallStatus(dataTransferVo.getBatchCode());
-//        log.info("触发自动分析定时任务结束");
-//    }
-
-
-    /**
-     * 设置分析参数
-     * @param dataTransferVo
-     * @return
-     */
-    private AnalysisDto assignmentAnalysisDto(DataTransferVo dataTransferVo){
-        AnalysisDto analysisDto = new AnalysisDto();
-        analysisDto.setAutoOrManual(AnalysisConstants.AUTO_ANALYSIS);
-        analysisDto.setDataBatchNum(dataTransferVo.getBatchCode());
-        analysisDto.setPowerFarmID(dataTransferVo.getFieldCode());
-        List<String> typeCodeList = typeMapper.selectAllVo().parallelStream().map(AnalysisTypeVo::getTypeFlag).collect(Collectors.toList());
-        analysisDto.setConfigAnalysis(typeCodeList);
-        return analysisDto;
+    @XxlJob(value = "autoAnalysis")
+    void autoAnalysis() {
+        autoAnalysisService.autoAnalysis();
     }
+
 }

+ 3 - 17
energy-manage-service/src/main/java/com/energy/manage/service/test/TestController.java

@@ -17,6 +17,7 @@ import com.energy.manage.service.mappers.analysisdatarelationrecords.AnalysisDat
 import com.energy.manage.service.mappers.analysispriorityrecords.AnalysisPriorityRecordsMapper;
 import com.energy.manage.service.mappers.datatransfer.DataTransferMapper;
 import com.energy.manage.service.service.analysis.AnalysisService;
+import com.energy.manage.service.service.analysis.AutoAnalysisService;
 import com.energy.manage.service.util.IPUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -48,13 +49,11 @@ public class TestController extends BaseServiceController {
     private AnalysisService analysisService;
 
     @Autowired
-    private DataTransferMapper dataTransferMapper;
+    private AutoAnalysisService autoAnalysisService;
 
     @Autowired
     private AnalysisTypeMapper typeMapper;
 
-    @Autowired
-    private AnalysisResultMapper analysisResultMapper;
 
     @Autowired
     private AnalysisPriorityRecordsMapper priorityRecordsMapper;
@@ -75,20 +74,7 @@ public class TestController extends BaseServiceController {
     @PostMapping("/testAutoAnalysis")
     public ResultResp autoAnalysis() {
         log.info("触发自动分析定时任务开始");
-        if(analysisService.checkAnalysising()){
-            log.info("当前有正在分析的数据,自动分析返回");
-            return success();
-        }
-        //获取转换完成且未自动分析的的批次号
-        DataTransferVo dataTransferVo = dataTransferMapper.selectBatchCodeForAutoAnaly();
-        if(dataTransferVo == null || StringUtils.isBlank(dataTransferVo.getBatchCode())){
-            log.info("当前没有秒级、分钟级全部转换完成的数据,自动分析返回");
-            return success();
-        }
-        //分析调用
-        analysisService.analysis(assignmentAnalysisDto(dataTransferVo));
-        //自动分析调用完成之后更新状态
-        analysisResultMapper.updateCallStatus(dataTransferVo.getBatchCode());
+        autoAnalysisService.autoAnalysis();
         log.info("触发自动分析定时任务结束");
         return success();
     }

+ 16 - 0
energy-manage-service/src/main/java/com/energy/manage/service/util/DateUtils.java

@@ -186,6 +186,22 @@ public class DateUtils {
 
 
     /**
+     * 加天数
+     * @param date
+     * @param days
+     * @return
+     */
+    public static Date addDays(Date date, int days) {
+        LocalDate localDate = convertDate2Date(date);
+        return Date.from(localDate.plusDays(days).atStartOfDay(ZoneId.systemDefault()).toInstant());
+    }
+
+    public static void main(String[] args) {
+        System.out.println(DateUtils.convertDate2StringYMD(addDays(new Date(),2)));
+    }
+
+
+    /**
      * Date--》LocalDate
      *
      * @param date

+ 7 - 8
energy-manage-service/src/main/resources/mybatis/analysis/AnalysisResultMapper.xml

@@ -14,7 +14,6 @@
         <result column="update_by" property="updateBy" jdbcType="INTEGER"/>
         <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
         <result column="analysis_progress" property="analysisProgress" jdbcType="DECIMAL"/>
-        <result column="call_status" property="callStatus" jdbcType="INTEGER"/>
         <result column="on_off_call" property="onOffCall" jdbcType="INTEGER"/>
 
         <result column="field_code" property="fieldCode" jdbcType="VARCHAR"/>
@@ -153,12 +152,6 @@
         where batch_code = #{batchCode,jdbcType=VARCHAR}
     </update>
 
-    <update id="updateCallStatus" parameterType="java.lang.String">
-        update analysis_result
-        set call_status = 1
-        where batch_code = #{batchCode,jdbcType=VARCHAR}
-    </update>
-
     <update id="updateAnalysisState" parameterType="java.lang.String">
         update analysis_result
         set analysis_state = 10,
@@ -186,7 +179,13 @@
             data_type_code = #{scada,jdbcType=VARCHAR},
             analysis_start_time = now(),
             update_time = now(),
-            update_by = #{updateBy,jdbcType=INTEGER}
+            update_by = #{updateBy,jdbcType=INTEGER},
+            <if test="autoOrManual != null and autoOrManual == 'manual'">
+                analysis_flag = 1
+            </if>
+            <if test="autoOrManual != null and autoOrManual == 'automatic'">
+                analysis_flag = 0
+            </if>
         where batch_code = #{dataBatchNum,jdbcType=VARCHAR}
     </update>
 </mapper>

+ 23 - 2
energy-manage-service/src/main/resources/mybatis/autoanalysisconfigdetail/AutoAnalysisConfigDetailMapper.xml

@@ -9,9 +9,10 @@
     <result column="startup_state" jdbcType="INTEGER" property="startupState" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
     <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="config_unique_id" jdbcType="VARCHAR" property="configUniqueId" />
   </resultMap>
   <sql id="Base_Column_List">
-     field_code, interval_days, start_time, startup_state, create_time, update_time
+     field_code, interval_days, start_time, startup_state, config_unique_id,create_time, update_time
   </sql>
 
   <select id="selectByCondition" parameterType="com.energy.manage.service.domain.dto.analysis.AutoAnalysisConfigDetailDto"  resultType="com.energy.manage.service.domain.vo.analysis.AutoAnalysisConfigDetailVo">
@@ -34,6 +35,20 @@
       order by detail.update_time desc
     </where>
 
+  </select>
+
+  <select id="selectByUniqueId" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from auto_analysis_config_detail
+    where config_unique_id = #{configUniqueId}
+  </select>
+  <select id="selectExistConfig" parameterType="com.energy.manage.service.domain.dto.analysis.AutoAnalysisConfigDetailDto" resultType="int">
+    select count(*)
+    from auto_analysis_config_detail
+    where field_code = #{fieldCode}
+    and interval_days = #{intervalDays}
+    and start_time = #{startTime}
 
   </select>
 
@@ -52,6 +67,9 @@
       <if test="startupState != null">
         startup_state,
       </if>
+      <if test="configUniqueId != null">
+        config_unique_id,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="fieldCode != null and fieldCode != ''">
@@ -66,6 +84,9 @@
       <if test="startupState != null">
         #{startupState,jdbcType=BIT},
       </if>
+      <if test="configUniqueId != null">
+        #{configUniqueId,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
 
@@ -82,6 +103,6 @@
         startup_state = #{startupState,jdbcType=BIT},
       </if>
     </set>
-    where id = #{id,jdbcType=BIGINT}
+    where config_unique_id = #{configUniqueId,jdbcType=VARCHAR}
   </update>
 </mapper>

+ 12 - 1
energy-manage-service/src/main/resources/mybatis/autoanalysisconfigdetailoptionrecords/AutoAnalysisConfigDetailOptionRecordsMapper.xml

@@ -9,10 +9,21 @@
     <result column="source_startup_state" jdbcType="INTEGER" property="sourceStartupState" />
     <result column="option_flag" jdbcType="INTEGER" property="optionFlag" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="config_unique_id" jdbcType="VARCHAR" property="configUniqueId" />
   </resultMap>
   <sql id="Base_Column_List">
-    id, field_code, source_inteval_days, source_start_time, source_startup_state, option_flag,
+    id, field_code, source_inteval_days, source_start_time, source_startup_state, option_flag,config_unique_id,
     create_time
   </sql>
 
+  <select id="selectEditByCreateTime" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from auto_analysis_config_detail_option_records
+    where option_flag = 1
+    and config_unique_id = #{configUniqueId,jdbcType=VARCHAR}
+    order by create_time desc
+    limit 1
+  </select>
+
 </mapper>

+ 26 - 0
energy-manage-service/src/main/resources/mybatis/autoanalysisconfigrelations/AutoAnalysisConfigRelationsMapper.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.autoanalysisconfigrelations.AutoAnalysisConfigRelationsMapper">
+  <resultMap id="BaseResultMap" type="com.energy.manage.common.po.autoanalysisconfigrelations.AutoAnalysisConfigRelationsPo">
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="config_unique_id" jdbcType="VARCHAR" property="configUniqueId" />
+    <result column="batch_code" jdbcType="VARCHAR" property="batchCode" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="start_time" jdbcType="DATE" property="startTime" />
+    <result column="end_time" jdbcType="DATE" property="endTime" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    config_unique_id, batch_code,start_time,end_time,create_time
+  </sql>
+
+  <select id="selectByConfigUniqueId" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List"/>
+    from auto_analysis_config_relations
+    where config_unique_id = #{configUniqueId,jdbcType=VARCHAR}
+    order by create_time desc
+    limit 1
+  </select>
+
+
+</mapper>

+ 0 - 18
energy-manage-service/src/main/resources/mybatis/datatransfer/DataTransferMapper.xml

@@ -46,24 +46,6 @@
         where auth.role_id = #{roleId,jdbcType=INTEGER}
     </select>
 
-    <select id="selectBatchCodeForAutoAnaly"   resultType="com.energy.manage.service.domain.vo.datatransfer.DataTransferVo">
-        select
-            trans.field_code,
-            trans.batch_code
-        from
-            data_transfer trans
-        left join analysis_result result
-        on result.batch_code = trans.batch_code
-        where
-                trans.batch_code IN ( SELECT batch_code FROM data_transfer WHERE transfer_type = 'minute' AND transfer_state = 1 )
-        and trans.transfer_type = 'second'
-        and trans.transfer_state = 1
-        and result.call_status = 0
-        and result.on_off_call = 1
-        order by transfer_finish_time
-        limit 1
-    </select>
-
     <select id="queryDataTransferGroup" resultType="com.energy.manage.service.domain.vo.datatransfer.DataTransferBatchShortVo">
         select
             transfer.field_code,