Browse Source

新增首页悬浮窗信息接口

chenhongyan1989 5 months ago
parent
commit
0af8308dfe

+ 12 - 2
energy-manage-service/src/main/java/com/energy/manage/service/controller/homepage/HomePageController.java

@@ -41,8 +41,18 @@ public class HomePageController extends BaseServiceController {
     @UserLoginToken
     @GetMapping("/queryOptionRecords")
     public ResultResp queryOptionRecords(@RequestParam("codeNumber") String codeNumber,
-                            @RequestParam("codeType") String codeType){
-        return success(homePageService.queryOptionRecords(getRoleId(), codeNumber, codeType));
+                            @RequestParam("codeType") String codeType,
+                            @RequestParam("startTime") String startTime,
+                            @RequestParam("endTime") String endTime){
+        return success(homePageService.queryOptionRecords(getRoleId(), codeNumber, codeType,startTime,endTime));
+    }
+
+    @ApiOperation("风机悬浮窗信息")
+    @UserLoginToken
+    @GetMapping("/queryFloatingWindowInfo")
+    public ResultResp queryFloatingWindowInfo(@RequestParam(value = "batchCode", required = false) String batchCode,
+                                              @RequestParam("fieldCode") String fieldCode){
+        return success(homePageService.queryFloatingWindowInfo(batchCode,fieldCode));
     }
 
 

+ 51 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/homepage/FloatingWindowInfoVo.java

@@ -0,0 +1,51 @@
+package com.energy.manage.service.domain.vo.homepage;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * @author chy
+ * @date 2025/2/12 17:04
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class FloatingWindowInfoVo {
+
+    /**
+     * 风机总数
+     */
+    private Integer engineTotalCount;
+
+    /**
+     * 场装机容量
+     */
+    private String ratedCapacityNumber;
+
+    /**
+     * 分析类型数量
+     */
+    private Integer analysisTypeCount = 0;
+
+    /**
+     * 分析开始时间
+     */
+    private Date analysisStartTime;
+
+    /**
+     * 分析时间
+     */
+    private Date analysisEndTime;
+
+    /**
+     * 数据开始时间
+     */
+    private Date dataStartTime;
+
+    /**
+     * 数据结束时间
+     */
+    private Date dataEndTime;
+}

+ 3 - 1
energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisOptionRecordsMapper.java

@@ -17,5 +17,7 @@ import java.util.List;
 public interface AnalysisOptionRecordsMapper extends MyMapper<AnalysisOptionRecordsPo> {
 
 
-    List<AnalysisOptionRecordsVo> selectAllByTimeDesc(@Param("fieldCodes") List<String> fieldCodes);
+    List<AnalysisOptionRecordsVo> selectAllByTimeDesc(@Param("fieldCodes") List<String> fieldCodes,
+                                                      @Param("startTime") String startTime,
+                                                      @Param("endTime") String endTime);
 }

+ 13 - 1
energy-manage-service/src/main/java/com/energy/manage/service/service/homepage/HomePageService.java

@@ -2,6 +2,7 @@ package com.energy.manage.service.service.homepage;
 
 import com.energy.manage.common.po.analysis.AnalysisResultPo;
 import com.energy.manage.service.domain.vo.analysis.AnalysisOptionRecordsVo;
+import com.energy.manage.service.domain.vo.homepage.FloatingWindowInfoVo;
 import com.energy.manage.service.domain.vo.homepage.HomePageVo;
 import com.energy.manage.service.domain.vo.homepage.WaitTaskVo;
 
@@ -34,7 +35,18 @@ public interface HomePageService {
      * @param codeType
      * @return
      */
-    List<AnalysisOptionRecordsVo> queryOptionRecords(Integer roleId, String codeNumber, String codeType);
+    List<AnalysisOptionRecordsVo> queryOptionRecords(Integer roleId,
+                                                     String codeNumber,
+                                                     String codeType,
+                                                     String startTime,
+                                                     String endTime);
+
+    /**
+     * 风机悬浮窗信息
+     * @param batchCode
+     * @return
+     */
+    FloatingWindowInfoVo queryFloatingWindowInfo(String  batchCode, String fieldCode);
 
     /**
      * 待办任务统计数量接口

+ 76 - 3
energy-manage-service/src/main/java/com/energy/manage/service/service/homepage/impl/HomePageServiceImpl.java

@@ -4,22 +4,34 @@ import com.energy.manage.common.enums.TypeRelationEnum;
 import com.energy.manage.common.po.analysis.AnalysisResultPo;
 import com.energy.manage.common.po.windrelation.WindRelationPO;
 import com.energy.manage.service.constant.analysis.AnalysisStatusConstants;
+import com.energy.manage.service.domain.vo.analysis.AnalysisDiagramRelationVo;
+import com.energy.manage.service.domain.vo.analysis.AnalysisGeneralFileVo;
 import com.energy.manage.service.domain.vo.analysis.AnalysisOptionRecordsVo;
 import com.energy.manage.service.domain.vo.analysis.AnalysisResultVo;
+import com.energy.manage.service.domain.vo.homepage.FloatingWindowInfoVo;
 import com.energy.manage.service.domain.vo.homepage.HomePageVo;
 import com.energy.manage.service.domain.vo.homepage.WaitTaskVo;
 import com.energy.manage.service.domain.vo.system.SysOrganizationAuthVo;
+import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupPageVo;
 import com.energy.manage.service.domain.vo.windexceptioncount.WindExceptionCountVo;
+import com.energy.manage.service.domain.vo.windfield.WindFieldVo;
+import com.energy.manage.service.mappers.analysis.AnalysisDiagramRelationMapper;
+import com.energy.manage.service.mappers.analysis.AnalysisGeneralFileMapper;
 import com.energy.manage.service.mappers.analysis.AnalysisOptionRecordsMapper;
 import com.energy.manage.service.mappers.analysis.AnalysisResultMapper;
 import com.energy.manage.service.mappers.system.SysOrganizationAuthMapper;
+import com.energy.manage.service.mappers.windenginegroup.WindEngineGroupMapper;
 import com.energy.manage.service.mappers.windexceptioncount.WindExceptionCountMapper;
+import com.energy.manage.service.mappers.windfield.WindFieldMapper;
 import com.energy.manage.service.mappers.windrelation.WindRelationMapper;
 import com.energy.manage.service.service.homepage.HomePageService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -51,6 +63,18 @@ public class HomePageServiceImpl implements HomePageService {
     @Autowired
     private SysOrganizationAuthMapper authMapper;
 
+    @Autowired
+    private AnalysisGeneralFileMapper generalFileMapper;
+
+    @Autowired
+    private AnalysisDiagramRelationMapper diagramRelationMapper;
+
+    @Autowired
+    private WindFieldMapper windFieldMapper;
+
+    @Autowired
+    private WindEngineGroupMapper windEngineGroupMapper;
+
 
     /**
      * 驾驶舱首页查询
@@ -91,7 +115,11 @@ public class HomePageServiceImpl implements HomePageService {
      * @return
      */
     @Override
-    public List<AnalysisOptionRecordsVo> queryOptionRecords(Integer roleId, String codeNumber, String codeType){
+    public List<AnalysisOptionRecordsVo> queryOptionRecords(Integer roleId,
+                                                            String codeNumber,
+                                                            String codeType,
+                                                            String startTime,
+                                                            String endTime){
         List<AnalysisOptionRecordsVo> voList = new ArrayList<>();
         //风场
         List<String> fieldCodes = new ArrayList<>();
@@ -105,7 +133,52 @@ public class HomePageServiceImpl implements HomePageService {
         if(CollectionUtils.isEmpty(fieldCodes)){
             return voList;
         }
-        return analysisOptionRecordsMapper.selectAllByTimeDesc(fieldCodes);
+        return analysisOptionRecordsMapper.selectAllByTimeDesc(fieldCodes,startTime,endTime);
+    }
+
+
+    /**
+     * 获取悬浮窗信息
+     * @param batchCode
+     * @return
+     */
+    @Override
+    public FloatingWindowInfoVo queryFloatingWindowInfo(String batchCode, String fieldCode){
+        FloatingWindowInfoVo floatingWindowInfoVo = new FloatingWindowInfoVo();
+        //设置装机容量
+        WindFieldVo windFieldVo = windFieldMapper.selectByCodeNumber(fieldCode);
+        floatingWindowInfoVo.setRatedCapacityNumber(windFieldVo == null ? "0" : doubleDivide(windFieldVo.getRatedCapacityNumber(),1000D));
+        //设置风机数量
+        List<WindEngineGroupPageVo> windEngineGroupPageVos = windEngineGroupMapper.selectWindEngineGroupListByFieldCode(fieldCode);
+        floatingWindowInfoVo.setEngineTotalCount(windEngineGroupPageVos.size());
+        //设置分析信息
+        if(StringUtils.isNotBlank(batchCode)){
+            //设置分析时间 数据时间范围
+            AnalysisResultPo analysisResultPo = analysisResultMapper.selectByBatchCode(batchCode);
+            BeanUtils.copyProperties(analysisResultPo,floatingWindowInfoVo);
+            //设置分析类型数目
+            Set<String> analysisGeneralTypes = generalFileMapper.selectByBatchCode(batchCode).stream()
+                                                                        .map(AnalysisGeneralFileVo::getAnalysisTypeCode)
+                                                                        .collect(Collectors.toSet());
+            Set<String> analysisDeliayTypes = diagramRelationMapper.selectByBatchCode(batchCode).stream()
+                                                                        .map(AnalysisDiagramRelationVo :: getAnalysisTypeCode)
+                                                                        .collect(Collectors.toSet());
+            analysisGeneralTypes.addAll(analysisDeliayTypes);
+            floatingWindowInfoVo.setAnalysisTypeCount(analysisGeneralTypes.size());
+        }
+        return floatingWindowInfoVo;
+    }
+
+    /**
+     * double计算(四舍五入)
+     * @param dividend
+     * @param divisor
+     * @return
+     */
+    private String doubleDivide(Double dividend, Double divisor){
+        BigDecimal dividendBigDecimal = new BigDecimal(dividend);
+        BigDecimal divisorBigDecimal = new BigDecimal(divisor);
+        return dividendBigDecimal.divide(divisorBigDecimal,BigDecimal.ROUND_HALF_UP).toString();
     }
 
     @Override
@@ -121,7 +194,7 @@ public class HomePageServiceImpl implements HomePageService {
 
     @Override
     public List<AnalysisResultPo> getAnalysisResultErrStateList(Integer roleId) {
-        List<AnalysisResultPo> list =authMapper.selectWindRelationByErrState(roleId);
+        List<AnalysisResultPo> list = authMapper.selectWindRelationByErrState(roleId);
         return list;
     }
 

+ 6 - 0
energy-manage-service/src/main/resources/mybatis/analysis/AnalysisOptionRecordsMapper.xml

@@ -21,6 +21,12 @@
         <foreach collection="fieldCodes" item="fieldCode" separator="," open="(" close=")">
             #{fieldCode,jdbcType=VARCHAR}
         </foreach>
+        <if test="startTime != null and startTime != ''">
+            and create_time &gt;= #{startTime,jdbcType=VARCHAR}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            and create_time &lt;= #{endTime,jdbcType=VARCHAR}
+        </if>
         order by create_time desc
     </select>
 </mapper>