浏览代码

Merge branch 'master' into energy-manage-chy2

chenhongyan1989 1 年之前
父节点
当前提交
679f4d43c2
共有 16 个文件被更改,包括 218 次插入13 次删除
  1. 1 0
      energy-manage-common/src/main/java/com/energy/manage/common/enums/IdPrefixEnum.java
  2. 13 1
      energy-manage-common/src/main/java/com/energy/manage/common/po/windenginemill/WindEngineMillPO.java
  3. 1 1
      energy-manage-service/src/main/java/com/energy/manage/service/controller/windenginegroup/WindEngineGroupController.java
  4. 9 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windenginegroup/WindEngineGroupFieldCodeDto.java
  5. 16 1
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windenginemill/WindEngineMillCreateDto.java
  6. 19 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisErrorCodeVo.java
  7. 3 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windenginegroup/WindEngineGroupVo.java
  8. 12 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windenginemill/WindEngineMillPageVo.java
  9. 8 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/windexceptioncount/WindExceptionCountMapper.java
  10. 9 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/analysiserr/AnalysisErrService.java
  11. 7 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/analysiserr/impl/AnalysisErrServiceImpl.java
  12. 1 1
      energy-manage-service/src/main/java/com/energy/manage/service/service/windenginegroup/WindEngineGroupService.java
  13. 30 9
      energy-manage-service/src/main/java/com/energy/manage/service/service/windenginegroup/impl/WindEngineGroupServiceImpl.java
  14. 3 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/windenginemill/impl/WindEngineMillServiceImpl.java
  15. 16 0
      energy-manage-service/src/main/resources/mybatis/windexceptioncount/WindExceptionCountMapper.xml
  16. 70 0
      energy-manage-service/src/test/java/StringText.java

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

@@ -10,6 +10,7 @@ public enum IdPrefixEnum {
     WIND_FIELD_NUMBER("WOF", "风场信息编号"),
     WIND_GROUP_NUMBER("WOG", "风机信息编号"),
     WIND_EILL_NUMBER("WEM", "风机机型编号"),
+    WIND_EILL_MF_NUMBER("WMF","风机机型厂商编号"),
     WIND_TOWER_NUMBER("WOT", "测风塔信息编号"),
     WIND_ENGINE_BATCH_NUMBER("WOB","风机批次编号");
 

+ 13 - 1
energy-manage-common/src/main/java/com/energy/manage/common/po/windenginemill/WindEngineMillPO.java

@@ -72,9 +72,21 @@ public class WindEngineMillPO {
     private Double rotorDiameter;
 
     /**
-     *传动比-转速比(无单位)
+     * 传动比-转速比(无单位)
      */
     private Double rotationalSpeedRatio;
+    /**
+     * 额定风速 (m/s)
+     */
+    private Double ratedWindSpeed;
+    /**
+     * 切入风速 (m/s)
+     */
+    private Double ratedCutInWindspeed;
+    /**
+     * 切出风速 (m/s)
+     */
+    private Double ratedCutOutWindspeed;
 
     /**
      * 创建人

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

@@ -86,7 +86,7 @@ public class WindEngineGroupController extends BaseServiceController {
     @PostMapping(value = "/getWindEngineGroupByFieldCode")
     @ApiOperation(value = "通过风场code查询风机集合(jsc)")
     public ResultResp<WindFieldGroupTowerVo> getWindEngineGroupByFieldCode(@RequestBody WindEngineGroupFieldCodeDto windEngineGroupFieldCodeDto) {
-        WindFieldGroupTowerVo vo = windEngineGroupService.getWindEngineGroupByFieldCode(windEngineGroupFieldCodeDto.getFieldCode());
+        WindFieldGroupTowerVo vo = windEngineGroupService.getWindEngineGroupByFieldCode(windEngineGroupFieldCodeDto.getFieldCode(),windEngineGroupFieldCodeDto.getBatchCode());
         return ResultResp.SUCCESS(vo);
     }
 

+ 9 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windenginegroup/WindEngineGroupFieldCodeDto.java

@@ -17,4 +17,13 @@ public class WindEngineGroupFieldCodeDto {
     @NotNull(message = "风场编号不能为空")
     @ApiModelProperty("风场编号")
     private String fieldCode;
+
+
+    /**
+     * 批次编号
+     */
+    @NotNull(message = "批次编号不能为空")
+    @ApiModelProperty("批次编号")
+    private String batchCode;
+
 }

+ 16 - 1
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windenginemill/WindEngineMillCreateDto.java

@@ -35,7 +35,6 @@ public class WindEngineMillCreateDto {
      * 厂商编号
      */
     @ApiModelProperty("厂商编号")
-    @NotNull(message = "厂商编号不能为null")
     private String manufacturerCode;
     /**
      * 品牌名称
@@ -72,4 +71,20 @@ public class WindEngineMillCreateDto {
     @ApiModelProperty(value = "创建人")
     private Integer createBy;
 
+    /**
+     * 额定风速 (m/s)
+     */
+    @ApiModelProperty("额定风速")
+    private Double ratedWindSpeed;
+    /**
+     * 切入风速 (m/s)
+     */
+    @ApiModelProperty("切入风速")
+    private Double ratedCutInWindspeed;
+    /**
+     * 切出风速 (m/s)
+     */
+    @ApiModelProperty("切出风速")
+    private Double ratedCutOutWindspeed;
+
 }

+ 19 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisErrorCodeVo.java

@@ -0,0 +1,19 @@
+package com.energy.manage.service.domain.vo.analysis;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AnalysisErrorCodeVo {
+
+    @ApiModelProperty("批次编号")
+    private String batchCode;
+
+    @ApiModelProperty("风机编号")
+    private String engineCode;
+
+
+
+}

+ 3 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windenginegroup/WindEngineGroupVo.java

@@ -89,4 +89,7 @@ public class WindEngineGroupVo {
     @ApiModelProperty("经纬度拼接")
     private String longitudeAndLatitudeString;
 
+    @ApiModelProperty("异常状态-电子地图显示使用,true 有异常,false无异常")
+    private boolean errorState = false;
+
 }

+ 12 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windenginemill/WindEngineMillPageVo.java

@@ -98,5 +98,17 @@ public class WindEngineMillPageVo {
     @ApiModelProperty("传动比-转速比(无单位)")
     private Double rotationalSpeedRatio;
 
+    /**
+     * 额定风速 (m/s)
+     */
+    private Double ratedWindSpeed;
+    /**
+     * 切入风速 (m/s)
+     */
+    private Double ratedCutInWindspeed;
+    /**
+     * 切出风速 (m/s)
+     */
+    private Double ratedCutOutWindspeed;
 
 }

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

@@ -3,6 +3,7 @@ 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.analysis.AnalysisErrorCodeVo;
 import com.energy.manage.service.domain.vo.windexceptioncount.WindExceptionCountVo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
@@ -48,4 +49,11 @@ public interface WindExceptionCountMapper extends MyMapper<WindExceptionCountPo>
      */
     List<WindExceptionCountVo> selectByfieldCodes(@Param("fieldCodes") List<String> fieldCodes);
 
+    /**
+     * 通过批次查询有异常的风机信息
+     * @param batchCode
+     * @return
+     */
+    List<AnalysisErrorCodeVo> selectExceptionCountBybatchCode(@Param("batchCode") String batchCode);
+
 }

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

@@ -3,6 +3,7 @@ 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.analysis.AnalysisErrorCodeVo;
 import com.energy.manage.service.domain.vo.windexceptioncount.WindExceptionCountVo;
 
 import java.util.List;
@@ -45,4 +46,12 @@ public interface AnalysisErrService {
      */
     ResultResp analysisErrDel(WindExceptionCountDto windExceptionCountDto);
 
+    /**
+     *通过批次查询有异常的风机信息
+     * @param batchCode
+     * @return
+     */
+    List<AnalysisErrorCodeVo> AnalysisErrorCodeQuery(String batchCode);
+
+
 }

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

@@ -3,6 +3,7 @@ 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.windexceptioncount.WindExceptionCountDto;
+import com.energy.manage.service.domain.vo.analysis.AnalysisErrorCodeVo;
 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;
@@ -74,4 +75,10 @@ public class AnalysisErrServiceImpl implements AnalysisErrService {
         windExceptionCountDto.setIsDelete(1);
         return ResultResp.SUCCESS(windExceptionCountMapper.updatePoSelecttive(windExceptionCountDto));
     }
+
+    @Override
+    public List<AnalysisErrorCodeVo> AnalysisErrorCodeQuery(String batchCode) {
+        List<AnalysisErrorCodeVo> list = windExceptionCountMapper.selectExceptionCountBybatchCode(batchCode);
+        return list;
+    }
 }

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

@@ -48,7 +48,7 @@ public interface WindEngineGroupService {
      * @param fieldCode
      * @return
      */
-    WindFieldGroupTowerVo getWindEngineGroupByFieldCode(String fieldCode);
+    WindFieldGroupTowerVo getWindEngineGroupByFieldCode(String fieldCode,String batchCode);
 
 
     /**

+ 30 - 9
energy-manage-service/src/main/java/com/energy/manage/service/service/windenginegroup/impl/WindEngineGroupServiceImpl.java

@@ -18,6 +18,7 @@ import com.energy.manage.common.util.IdGeneratorUtil;
 import com.energy.manage.service.domain.dto.windenginegroup.*;
 import com.energy.manage.service.domain.dto.windfield.WindFieldCodeDto;
 import com.energy.manage.service.domain.dto.windfield.WindFieldUpdateDto;
+import com.energy.manage.service.domain.vo.analysis.AnalysisErrorCodeVo;
 import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerByFieldVo;
 import com.energy.manage.service.domain.vo.cockpit.WindFieldGroupTowerVo;
 import com.energy.manage.service.domain.vo.excel.WindEngineGroupExcelVo;
@@ -27,6 +28,7 @@ import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupVo;
 import com.energy.manage.service.domain.vo.windenginemill.WindEngineMillVo;
 import com.energy.manage.service.domain.vo.windfield.WindFieldVo;
 import com.energy.manage.service.mappers.windenginegroup.WindEngineGroupMapper;
+import com.energy.manage.service.service.analysiserr.AnalysisErrService;
 import com.energy.manage.service.service.anemometertower.AnemometerTowerService;
 import com.energy.manage.service.service.cache.CacheService;
 import com.energy.manage.service.service.windenginegroup.WindEngineGroupService;
@@ -73,6 +75,9 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
     @Autowired
     private WindEngineMillService windEngineMillService;
 
+    @Autowired
+    private AnalysisErrService analysisErrService;
+
     /**
      * 手动创建风机机组信息
      *
@@ -162,6 +167,7 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
         List<String> engineNamees = windEngineGroupExceVoList.stream().map(item -> item.getEngineName()).collect(Collectors.toList());
         Example queryExample = new Example(WindEngineGroupPO.class);
         Example.Criteria criteria = queryExample.createCriteria();
+        criteria.andEqualTo("fieldCode", fieldCode);
         criteria.andIn("engineName", engineNamees);
         criteria.andEqualTo("delState", DeleteStatusEnum.NODELETE.getCode());
         int count = windEngineGroupMapper.selectCountByExample(queryExample);
@@ -210,7 +216,7 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
     }
 
     @Override
-    public WindFieldGroupTowerVo getWindEngineGroupByFieldCode(String fieldCode) {
+    public WindFieldGroupTowerVo getWindEngineGroupByFieldCode(String fieldCode,String batchCode) {
 
         WindFieldGroupTowerVo windFieldGroupTowerVo = new WindFieldGroupTowerVo();
 
@@ -236,18 +242,33 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
             }
             engineGroupVoArrayList.add(windEngineGroupVo);
         }
+        windFieldGroupTowerVo.setWindEngineGroupVoList(engineGroupVoArrayList);
+
         // 处理测风塔信息
         List<AnemometerTowerByFieldVo> anemometerTowerByFields = anemometerTowerService.getAnemometerTowerByField(fieldCode);
-        for(AnemometerTowerByFieldVo vo : anemometerTowerByFields){
-            if (vo.getLongitude() != null && vo.getLatitude() != null) {
-                DecimalFormat df = new DecimalFormat("#.00000");
-                String longitude = df.format(vo.getLongitude());
-                String latitude = df.format(vo.getLatitude());
-                vo.setLongitudeAndLatitudeString(longitude + "," + latitude);
+        if(!CollectionUtils.isEmpty(anemometerTowerByFields)){
+            for(AnemometerTowerByFieldVo vo : anemometerTowerByFields){
+                if (vo.getLongitude() != null && vo.getLatitude() != null) {
+                    DecimalFormat df = new DecimalFormat("#.00000");
+                    String longitude = df.format(vo.getLongitude());
+                    String latitude = df.format(vo.getLatitude());
+                    vo.setLongitudeAndLatitudeString(longitude + "," + latitude);
+                }
+            }
+            windFieldGroupTowerVo.setAnemometerTowerList(anemometerTowerByFields);
+        }
+
+        // 处理批次异常状体
+        List<AnalysisErrorCodeVo> analysisErrorCodeVoList =  analysisErrService.AnalysisErrorCodeQuery(batchCode);
+        if(!CollectionUtils.isEmpty(analysisErrorCodeVoList)){
+            for(WindEngineGroupVo wgVo : windFieldGroupTowerVo.getWindEngineGroupVoList()){
+                for(AnalysisErrorCodeVo errorCodeVo :analysisErrorCodeVoList ){
+                    if(wgVo.getEngineCode().equals(errorCodeVo.getEngineCode())){
+                        wgVo.setErrorState(true);
+                    }
+                }
             }
         }
-        windFieldGroupTowerVo.setWindEngineGroupVoList(engineGroupVoArrayList);
-        windFieldGroupTowerVo.setAnemometerTowerList(anemometerTowerByFields);
 
         return windFieldGroupTowerVo;
     }

+ 3 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/windenginemill/impl/WindEngineMillServiceImpl.java

@@ -82,6 +82,9 @@ public class WindEngineMillServiceImpl extends BaseServiceImpl<WindEngineMillPO>
         windEngineMillPO.setUpdateTime(new Date());
         windEngineMillPO.setState(Constants.GLOBAL_IN_USE);
         windEngineMillPO.setDelState(DeleteStatusEnum.NODELETE.getCode());
+        // 生成厂商编号
+        String mfNumber = IdPrefixEnum.WIND_EILL_MF_NUMBER.getCode().concat(IdGeneratorUtil.zeroFillUtil(cacheService.incr(ManagerRedisKeyConstant.build(ManagerRedisKeyConstant.IDGENERATOR_CONSTANTS_KEY, IdPrefixEnum.WIND_EILL_MF_NUMBER.getCode()))));
+        windEngineMillPO.setManufacturerCode(mfNumber);
 
         return windEngineMillMapper.insertUseGeneratedKeys(windEngineMillPO) > 0;
     }

+ 16 - 0
energy-manage-service/src/main/resources/mybatis/windexceptioncount/WindExceptionCountMapper.xml

@@ -141,4 +141,20 @@
         where id = #{id,jdbcType=BIGINT}
     </update>
 
+
+    <select id="selectExceptionCountBybatchCode" resultType="com.energy.manage.service.domain.vo.analysis.AnalysisErrorCodeVo">
+        select
+        batch_code,
+        engine_code
+        from
+        wind_exception_count
+        where
+        is_delete = 0
+        and
+        batch_code = #{batchCode}
+        and
+        err_count > handle_err_count
+        group by engine_code
+   </select>
+
 </mapper>

+ 70 - 0
energy-manage-service/src/test/java/StringText.java

@@ -0,0 +1,70 @@
+import cn.hutool.core.util.ByteUtil;
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.Arrays;
+
+public class StringText {
+
+    public static void main(String[] age) throws UnsupportedEncodingException {
+
+      String inHex = "";
+
+        byte[] imageBytes = hexStringToByteArray(inHex); // 将16进制字符串转换为字节数组
+
+        System.out.println(imageBytes);
+        int hexlen = inHex.length();
+        byte[] result;
+        if (hexlen % 2 == 1){
+            //奇数
+            hexlen++;
+            result = new byte[(hexlen/2)];
+            inHex="0"+inHex;
+        }else {
+            //偶数
+            result = new byte[(hexlen/2)];
+        }
+        int j=0;
+        for (int i = 0; i < hexlen; i+=2){
+            result[j]=hexToByte(inHex.substring(i,i+2));
+            j++;
+        }
+        System.out.println(result);
+
+    }
+
+    public static byte[] hexStringToByteArray(String s) {
+        int len = s.length();
+        byte[] data = new byte[len / 2];
+        for (int i = 0; i < len; i += 2) {
+            data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i+1), 16));
+        }
+        return data;
+    }
+    public static BufferedImage readImageFromBytes(byte[] imageBytes) {
+        try {
+            return ImageIO.read(new ByteArrayInputStream(imageBytes));
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+    public static byte hexToByte(String inHex){
+        return (byte)Integer.parseInt(inHex,16);
+    }
+
+    public static float[] byteToFloatArray(byte[] byteArray) {
+        float[] floatArray = new float[byteArray.length / 4];
+        ByteBuffer.wrap(byteArray).order(ByteOrder.LITTLE_ENDIAN).asFloatBuffer().get(floatArray);
+        return floatArray;
+    }
+
+}