海南版本提交

This commit is contained in:
hzj
2024-03-22 08:59:10 +08:00
parent 0bc9186375
commit 2e0607028b
18 changed files with 499 additions and 217 deletions

View File

@@ -39,6 +39,7 @@ public enum AdvanceResponseEnum {
DATA_UNDERRUN("A0104","数据量不足,请根据模版上传充足近两周数据"), DATA_UNDERRUN("A0104","数据量不足,请根据模版上传充足近两周数据"),
DOCUMENT_FORMAT_ERROR("A0105","数据缺失,导入失败!请检查导入文档的格式是否正确"), DOCUMENT_FORMAT_ERROR("A0105","数据缺失,导入失败!请检查导入文档的格式是否正确"),
DEVICE_LOST("A0104","用户下缺少设备"),
USER_LOST("A0106","干扰源用户缺失"), USER_LOST("A0106","干扰源用户缺失"),
UNCOMPLETE_STRATEGY("A0106","配置安全III级预警,II级预警,I级预警4条完整策略"), UNCOMPLETE_STRATEGY("A0106","配置安全III级预警,II级预警,I级预警4条完整策略"),

View File

@@ -80,57 +80,57 @@ public enum CarryingCapacityEnum {
I_INV_35("I_INV_35","0.072","35次典型谐波电流含有率"), I_INV_35("I_INV_35","0.072","35次典型谐波电流含有率"),
//电弧炉谐波电流含有率 //电弧炉谐波电流含有率
EAF_I_2("EAF_I_2","0.6112","2次电弧炉谐波电流含有率"), // EAF_I_2("EAF_I_2","0.6112","2次电弧炉谐波电流含有率"),
EAF_I_3("EAF_I_3","0.68935","3次电弧炉谐波电流含有率"), EAF_I_3("EAF_I_3","0.13484","3次电弧炉谐波电流含有率"),
EAF_I_4("EAF_I_4","0.9906","4次电弧炉谐波电流含有率"), // EAF_I_4("EAF_I_4","0.9906","4次电弧炉谐波电流含有率"),
EAF_I_5("EAF_I_5","6.9575","5次电弧炉谐波电流含有率"), EAF_I_5("EAF_I_5","0.017327","5次电弧炉谐波电流含有率"),
EAF_I_6("EAF_I_6","0.5750","6次电弧炉谐波电流含有率"), // EAF_I_6("EAF_I_6","0.5750","6次电弧炉谐波电流含有率"),
EAF_I_7("EAF_I_7","3.2731","7次电弧炉谐波电流含有率"), EAF_I_7("EAF_I_7","0.015288","7次电弧炉谐波电流含有率"),
EAF_I_8("EAF_I_8","0.4782","8次电弧炉谐波电流含有率"), // EAF_I_8("EAF_I_8","0.4782","8次电弧炉谐波电流含有率"),
EAF_I_9("EAF_I_9","0.5197","9次电弧炉谐波电流含有率"), EAF_I_9("EAF_I_9","0.001495","9次电弧炉谐波电流含有率"),
EAF_I_10("EAF_I_10","0.6003","10次电弧炉谐波电流含有率"), // EAF_I_10("EAF_I_10","0.6003","10次电弧炉谐波电流含有率"),
EAF_I_11("EAF_I_11","4.5631","11次电弧炉谐波电流含有率"), EAF_I_11("EAF_I_11","0.001203","11次电弧炉谐波电流含有率"),
EAF_I_12("EAF_I_12","0.5242","12次电弧炉谐波电流含有率"), // EAF_I_12("EAF_I_12","0.5242","12次电弧炉谐波电流含有率"),
EAF_I_13("EAF_I_13","2.9196","13次电弧炉谐波电流含有率"), EAF_I_13("EAF_I_13","0.001407","13次电弧炉谐波电流含有率"),
EAF_I_14("EAF_I_14","0.5720","14次电弧炉谐波电流含有率"), // EAF_I_14("EAF_I_14","0.5720","14次电弧炉谐波电流含有率"),
EAF_I_15("EAF_I_15","0.5956","15次电弧炉谐波电流含有率"), EAF_I_15("EAF_I_15","0.001676","15次电弧炉谐波电流含有率"),
EAF_I_16("EAF_I_16","0.8234","16次电弧炉谐波电流含有率"), // EAF_I_16("EAF_I_16","0.8234","16次电弧炉谐波电流含有率"),
EAF_I_17("EAF_I_17","5.4185","17次电弧炉谐波电流含有率"), EAF_I_17("EAF_I_17","0.001555","17次电弧炉谐波电流含有率"),
EAF_I_18("EAF_I_18","0.8848","18次电弧炉谐波电流含有率"), // EAF_I_18("EAF_I_18","0.8848","18次电弧炉谐波电流含有率"),
EAF_I_19("EAF_I_19","2.3503","19次电弧炉谐波电流含有率"), EAF_I_19("EAF_I_19","0.001159","19次电弧炉谐波电流含有率"),
EAF_I_20("EAF_I_20","0.6789","20次电弧炉谐波电流含有率"), // EAF_I_20("EAF_I_20","0.6789","20次电弧炉谐波电流含有率"),
//充电桩谐波电流含有率 //充电桩谐波电流含有率
CP_I_2("CP_I_2","5.00","2次电弧炉谐波电流含有率"), // CP_I_2("CP_I_2","5.00","2次电弧炉谐波电流含有率"),
CP_I_3("CP_I_3","7.00","3次电弧炉谐波电流含有率"), CP_I_3("CP_I_3","0.2011","3次电弧炉谐波电流含有率"),
CP_I_4("CP_I_4","4.00","4次电弧炉谐波电流含有率"), // CP_I_4("CP_I_4","4.00","4次电弧炉谐波电流含有率"),
CP_I_5("CP_I_5","5.00","5次电弧炉谐波电流含有率"), CP_I_5("CP_I_5","0.1069","5次电弧炉谐波电流含有率"),
CP_I_6("CP_I_6","4.00","6次电弧炉谐波电流含有率"), // CP_I_6("CP_I_6","4.00","6次电弧炉谐波电流含有率"),
CP_I_7("CP_I_7","2.00","7次电弧炉谐波电流含有率"), CP_I_7("CP_I_7","0.0647","7次电弧炉谐波电流含有率"),
CP_I_8("CP_I_8","2.00","8次电弧炉谐波电流含有率"), // CP_I_8("CP_I_8","2.00","8次电弧炉谐波电流含有率"),
CP_I_9("CP_I_9","1.00","9次电弧炉谐波电流含有率"), CP_I_9("CP_I_9","0.0376","9次电弧炉谐波电流含有率"),
CP_I_10("CP_I_10","1.50","10次电弧炉谐波电流含有率"), // CP_I_10("CP_I_10","1.50","10次电弧炉谐波电流含有率"),
CP_I_11("CP_I_11","1.50","11次电弧炉谐波电流含有率"), CP_I_11("CP_I_11","0.0232","11次电弧炉谐波电流含有率"),
CP_I_12("CP_I_12","0.50","12次电弧炉谐波电流含有率"), // CP_I_12("CP_I_12","0.50","12次电弧炉谐波电流含有率"),
CP_I_13("CP_I_13","0.50","13次电弧炉谐波电流含有率"), CP_I_13("CP_I_13","0.0155","13次电弧炉谐波电流含有率"),
CP_I_14("CP_I_14","0.00","14次电弧炉谐波电流含有率"), // CP_I_14("CP_I_14","0.00","14次电弧炉谐波电流含有率"),
CP_I_15("CP_I_15","0.00","15次电弧炉谐波电流含有率"), CP_I_15("CP_I_15","0.005956","15次电弧炉谐波电流含有率"),
CP_I_16("CP_I_16","0.00","16次电弧炉谐波电流含有率"), // CP_I_16("CP_I_16","0.00","16次电弧炉谐波电流含有率"),
CP_I_17("CP_I_17","0.00","17次电弧炉谐波电流含有率"), CP_I_17("CP_I_17","0.054185","17次电弧炉谐波电流含有率"),
CP_I_18("CP_I_18","0.00","18次电弧炉谐波电流含有率"), // CP_I_18("CP_I_18","0.00","18次电弧炉谐波电流含有率"),
CP_I_19("CP_I_19","0.00","19次电弧炉谐波电流含有率"), CP_I_19("CP_I_19","0.023503","19次电弧炉谐波电流含有率"),
CP_I_20("CP_I_20","0.00","20次电弧炉谐波电流含有率"), // CP_I_20("CP_I_20","0.00","20次电弧炉谐波电流含有率"),
//电气化铁路典型 //电气化铁路典型
ER_I_3("ER_I_3","20.11","3次电弧炉谐波电流含有率"), ER_I_3("ER_I_3","0.0068935","3次电弧炉谐波电流含有率"),
ER_I_5("ER_I_5","10.69","5次电弧炉谐波电流含有率"), ER_I_5("ER_I_5","0.069575","5次电弧炉谐波电流含有率"),
ER_I_7("ER_I_7","6.47","7次电弧炉谐波电流含有率"), ER_I_7("ER_I_7","0.032731","7次电弧炉谐波电流含有率"),
ER_I_9("ER_I_9","3.76","9次电弧炉谐波电流含有率"), ER_I_9("ER_I_9","0.005197","9次电弧炉谐波电流含有率"),
ER_I_11("ER_I_11","2.32","11次电弧炉谐波电流含有率"), ER_I_11("ER_I_11","0.045631","11次电弧炉谐波电流含有率"),
ER_I_13("ER_I_13","1.55","13次电弧炉谐波电流含有率"), ER_I_13("ER_I_13","0.029196","13次电弧炉谐波电流含有率"),
ER_I_15("ER_I_15","1.17","15次电弧炉谐波电流含有率"), ER_I_15("ER_I_15","0.017","15次电弧炉谐波电流含有率"),
ER_I_17("ER_I_17","0.95","17次电弧炉谐波电流含有率"), ER_I_17("ER_I_17","0.0095","17次电弧炉谐波电流含有率"),
ER_I_19("ER_I_19","0.80","19次电弧炉谐波电流含有率"), ER_I_19("ER_I_19","0.0080","19次电弧炉谐波电流含有率"),
; ;
/** /**

View File

@@ -0,0 +1,51 @@
package com.njcn.advance.pojo.carrycapacity.param;
import com.njcn.common.pojo.constant.PatternRegex;
import com.njcn.web.constant.ValidMessage;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
/**
* Description:
* Date: 2024/3/20 9:59【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
public class CarryCapacityDeviceParam {
private String userId;
/**
* 设备名称
*/
private String devName;
private String devScale;
/**
* 设备用户协议容量(MVA)
*/
private Double protocolCapacity;
@Data
@EqualsAndHashCode(callSuper = true)
public static class CarryCapacityDeviceUpdateParam extends CarryCapacityDeviceParam {
@ApiModelProperty("设备Id")
@NotBlank(message = "设备Id不能为空")
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR)
private String devId;
}
@Data
@EqualsAndHashCode(callSuper = true)
public static class CarryCapacityDeviceQueryParam extends CarryCapacityDeviceParam {
@ApiModelProperty("设备Id")
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR)
private String devId;
}
}

View File

@@ -1,6 +1,6 @@
package com.njcn.advance.pojo.carrycapacity.param; package com.njcn.advance.pojo.carrycapacity.param;
import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityUserVO; import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityDevicePO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@@ -46,6 +46,6 @@ public class CarryCapacityEvaluateParam {
@ApiModelProperty(name = "deviceCapacity",value = "设备容量") @ApiModelProperty(name = "deviceCapacity",value = "设备容量")
private Float deviceCapacity; private Float deviceCapacity;
@ApiModelProperty(name = "userList",value = "干扰源用户列表") @ApiModelProperty(name = "userList",value = "干扰源用户设备列表")
private List<CarryCapacityUserVO> userList; private List<CarryCapacityDevicePO> devList;
} }

View File

@@ -12,6 +12,7 @@ import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern; import javax.validation.constraints.Pattern;
import java.util.List;
/** /**
* *
@@ -95,6 +96,8 @@ public class CarryCapacityUserParam {
@ApiModelProperty(value="结束时间") @ApiModelProperty(value="结束时间")
private String endTime; private String endTime;
private List<String> userTypeList;
} }
} }

View File

@@ -0,0 +1,50 @@
package com.njcn.advance.pojo.carrycapacity.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*
* Description:
* Date: 2024/3/19 16:36【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
@NoArgsConstructor
@TableName(value = "carry_capacity_device")
public class CarryCapacityDevicePO extends BaseEntity {
/**
* 设备id
*/
@TableId(value = "dev_id", type = IdType.ASSIGN_UUID)
private String devId;
@TableField(value = "user_id")
private String userId;
/**
* 设备名称
*/
@TableField(value = "dev_name")
private String devName;
/**
* 设备额定电压
*/
@TableField(value = "dev_scale")
private String devScale;
/**
* 设备用户协议容量(MVA)
*/
@TableField(value = "protocol_capacity")
private Double protocolCapacity;
}

View File

@@ -1,6 +1,5 @@
package com.njcn.advance.pojo.carrycapacity.vo; package com.njcn.advance.pojo.carrycapacity.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -80,9 +79,9 @@ public class CarryCapacityDResultVO {
private List<CarryCapacityDResultVO.CarryCapacityIResult> iResultList; private List<CarryCapacityDResultVO.CarryCapacityIResult> iResultList;
@TableField(value = "pt_type")
private String connectionMode; private String connectionMode;
private Double k; private Double k;
private String ptType;
private String userMode; private String userMode;

View File

@@ -112,14 +112,14 @@ public class CarryCapacityController extends BaseController {
String sheetName = "数据集模版.xlsx"; String sheetName = "数据集模版";
List<CarryCapcityDataEexcel> excels = new ArrayList<>(); List<CarryCapcityDataEexcel> excels = new ArrayList<>();
CarryCapcityDataEexcel exportHeadersExcel = new CarryCapcityDataEexcel(); CarryCapcityDataEexcel exportHeadersExcel = new CarryCapcityDataEexcel();
excels.add(exportHeadersExcel); excels.add(exportHeadersExcel);
EasyExcel.write(response.getOutputStream(), CarryCapcityDataEexcel.class) EasyExcel.write(response.getOutputStream(), CarryCapcityDataEexcel.class)
.sheet(sheetName) .sheet(sheetName)
.doWrite(excels); .doWrite(excels);
EasyExcelUtil.writeWithSheetsWeb(response, "数据集模版"); EasyExcelUtil.writeWithSheetsWeb(response, "数据集模版.xlsx");

View File

@@ -0,0 +1,84 @@
package com.njcn.advance.controller.carrycapacity;
import com.njcn.advance.pojo.carrycapacity.param.CarryCapacityDeviceParam;
import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityDevicePO;
import com.njcn.advance.service.carrycapacity.CarryCapacityDevicePOService;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年07月21日 10:06
*/
@RestController
@RequestMapping("carrycapacitydev")
@Api(tags = "承载能力评估用户设备")
@RequiredArgsConstructor
public class CarryCapacityDevController extends BaseController {
private final CarryCapacityDevicePOService carryCapacityDevicePOService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/add")
@ApiOperation("承载能力评估用户设备新增")
@ApiImplicitParam(name = "capacityDeviceParam", value = "新增参数", required = true)
public HttpResult<Boolean> add(@RequestBody @Validated CarryCapacityDeviceParam capacityDeviceParam) {
String methodDescribe = getMethodDescribe("add");
Boolean flag = carryCapacityDevicePOService.add(capacityDeviceParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/remove")
@ApiOperation("承载能力评估用户设备批量删除")
@ApiImplicitParam(name = "devIds", value = "用户id集合", required = true)
public HttpResult<Boolean> remove(@RequestParam("devIds") List<String> devIds) {
String methodDescribe = getMethodDescribe("remove");
Boolean flag = carryCapacityDevicePOService.removeByIds(devIds);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/update")
@ApiOperation("承载能力评估用户设备编辑")
@ApiImplicitParam(name = "deviceParam", value = "编辑参数", required = true)
public HttpResult<Boolean> update(@RequestBody @Validated CarryCapacityDeviceParam.CarryCapacityDeviceUpdateParam deviceParam) {
String methodDescribe = getMethodDescribe("update");
Boolean flag = carryCapacityDevicePOService.updateDevice(deviceParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queyDeviceList")
@ApiOperation("承载能力评估用户设备查询")
@ApiImplicitParam(name = "deviceParam", value = "编辑参数", required = true)
public HttpResult<List<CarryCapacityDevicePO>> queyDeviceList(@RequestBody @Validated CarryCapacityDeviceParam.CarryCapacityDeviceQueryParam deviceParam) {
String methodDescribe = getMethodDescribe("queyDeviceList");
List<CarryCapacityDevicePO> list = carryCapacityDevicePOService.lambdaQuery()
.eq(StringUtils.isNotBlank(deviceParam.getDevId()), CarryCapacityDevicePO::getDevId, deviceParam.getDevId())
.eq(StringUtils.isNotBlank(deviceParam.getUserId()), CarryCapacityDevicePO::getUserId, deviceParam.getUserId()).list();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -0,0 +1,15 @@
package com.njcn.advance.mapper.carrycapacity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityDevicePO;
/**
*
* Description:
* Date: 2024/3/19 16:36【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CarryCapacityDevicePOMapper extends BaseMapper<CarryCapacityDevicePO> {
}

View File

@@ -0,0 +1,19 @@
<?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.njcn.advance.mapper.carrycapacity.CarryCapacityDevicePOMapper">
<resultMap id="BaseResultMap" type="com.njcn.advance.pojo.carrycapacity.po.CarryCapacityDevicePO">
<!--@mbg.generated-->
<!--@Table carry_capacity_device-->
<id column="dev_id" jdbcType="VARCHAR" property="devId" />
<result column="dev_name" jdbcType="VARCHAR" property="devName" />
<result column="protocol_capacity" jdbcType="DOUBLE" property="protocolCapacity" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
dev_id, dev_name, protocol_capacity, create_by, create_time, update_by, update_time
</sql>
</mapper>

View File

@@ -0,0 +1,20 @@
package com.njcn.advance.service.carrycapacity;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.advance.pojo.carrycapacity.param.CarryCapacityDeviceParam;
import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityDevicePO;
/**
*
* Description:
* Date: 2024/3/19 16:36【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CarryCapacityDevicePOService extends IService<CarryCapacityDevicePO>{
Boolean updateDevice(CarryCapacityDeviceParam.CarryCapacityDeviceUpdateParam deviceParam);
Boolean add(CarryCapacityDeviceParam capacityDeviceParam);
}

View File

@@ -0,0 +1,40 @@
package com.njcn.advance.service.carrycapacity.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.advance.mapper.carrycapacity.CarryCapacityDevicePOMapper;
import com.njcn.advance.pojo.carrycapacity.param.CarryCapacityDeviceParam;
import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityDevicePO;
import com.njcn.advance.service.carrycapacity.CarryCapacityDevicePOService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
*
* Description:
* Date: 2024/3/19 16:36【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class CarryCapacityDevicePOServiceImpl extends ServiceImpl<CarryCapacityDevicePOMapper, CarryCapacityDevicePO> implements CarryCapacityDevicePOService{
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateDevice(CarryCapacityDeviceParam.CarryCapacityDeviceUpdateParam deviceParam) {
return this.lambdaUpdate().eq(CarryCapacityDevicePO::getDevId, deviceParam.getDevId())
.set(CarryCapacityDevicePO::getDevName, deviceParam.getDevName())
.set(CarryCapacityDevicePO::getProtocolCapacity, deviceParam.getProtocolCapacity())
.update();
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean add(CarryCapacityDeviceParam capacityDeviceParam) {
CarryCapacityDevicePO carryCapacityDevicePO = new CarryCapacityDevicePO();
BeanUtils.copyProperties(capacityDeviceParam,carryCapacityDevicePO);
boolean save = this.save(carryCapacityDevicePO);
return save;
}
}

View File

@@ -12,6 +12,8 @@ import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityUserPO;
import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityDResultVO; import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityDResultVO;
import com.njcn.advance.service.carrycapacity.CarryCapacityResultPOService; import com.njcn.advance.service.carrycapacity.CarryCapacityResultPOService;
import com.njcn.advance.service.carrycapacity.CarryCapacityUserPOService; import com.njcn.advance.service.carrycapacity.CarryCapacityUserPOService;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.vo.LineDetailVO;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
@@ -20,6 +22,7 @@ import org.springframework.stereotype.Service;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -34,7 +37,7 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor @RequiredArgsConstructor
public class CarryCapacityResultPOServiceImpl extends ServiceImpl<CarryCapacityResultPOMapper, CarryCapacityResultPO> implements CarryCapacityResultPOService{ public class CarryCapacityResultPOServiceImpl extends ServiceImpl<CarryCapacityResultPOMapper, CarryCapacityResultPO> implements CarryCapacityResultPOService{
private final CarryCapacityUserPOService carryCapacityUserPOService; private final CarryCapacityUserPOService carryCapacityUserPOService;
private final LineFeignClient lineFeignClient;
@Override @Override
public IPage<CarryCapacityDResultVO> queryResultList(CarryCapacityResultParam.CarryCapacityResultPageParam queryParam) { public IPage<CarryCapacityDResultVO> queryResultList(CarryCapacityResultParam.CarryCapacityResultPageParam queryParam) {
Page<CarryCapacityDResultVO> returnpage = new Page<> (queryParam.getPageNum ( ), queryParam.getPageSize ( )); Page<CarryCapacityDResultVO> returnpage = new Page<> (queryParam.getPageNum ( ), queryParam.getPageSize ( ));
@@ -44,6 +47,7 @@ public class CarryCapacityResultPOServiceImpl extends ServiceImpl<CarryCapacityR
QueryWrapper<CarryCapacityResultPO> queryWrapper = new QueryWrapper<>(); QueryWrapper<CarryCapacityResultPO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(StringUtils.isNotBlank(queryParam.getEvaluateType()) ,CarryCapacityResultPO::getEvaluateType,queryParam.getEvaluateType()) queryWrapper.lambda().eq(StringUtils.isNotBlank(queryParam.getEvaluateType()) ,CarryCapacityResultPO::getEvaluateType,queryParam.getEvaluateType())
.between(StringUtils.isNotBlank(queryParam.getStartTime()) && StringUtils.isNotBlank(queryParam.getEndTime()) ,CarryCapacityResultPO::getEvaluateDate,queryParam.getStartTime(),queryParam.getEndTime()) .between(StringUtils.isNotBlank(queryParam.getStartTime()) && StringUtils.isNotBlank(queryParam.getEndTime()) ,CarryCapacityResultPO::getEvaluateDate,queryParam.getStartTime(),queryParam.getEndTime())
.eq(CarryCapacityResultPO::getStatus,1)
.orderByDesc(CarryCapacityResultPO::getEvaluateDate); .orderByDesc(CarryCapacityResultPO::getEvaluateDate);
IPage<CarryCapacityResultPO> page = this.page(temppage, queryWrapper); IPage<CarryCapacityResultPO> page = this.page(temppage, queryWrapper);
@@ -61,6 +65,14 @@ public class CarryCapacityResultPOServiceImpl extends ServiceImpl<CarryCapacityR
List<CarryCapacityDResultVO.CarryCapacityIResult> list = JSONUtil.toList(JSONUtil.toJsonStr(iResultList), CarryCapacityDResultVO.CarryCapacityIResult.class); List<CarryCapacityDResultVO.CarryCapacityIResult> list = JSONUtil.toList(JSONUtil.toJsonStr(iResultList), CarryCapacityDResultVO.CarryCapacityIResult.class);
vo.setIResultList(list); vo.setIResultList(list);
} }
if(Objects.nonNull(vo.getLineId())){
LineDetailVO data = lineFeignClient.getLineSubGdDetail(vo.getLineId()).getData();
vo.setLineName(data.getGdName()+"->"
+data.getSubName()+"->"
+data.getDevName()+"->"
+data.getLineName());
}
return vo; return vo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
returnpage.setRecords(collect); returnpage.setRecords(collect);

View File

@@ -7,6 +7,7 @@ import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityStrategyDhlVO;
import com.njcn.advance.service.carrycapacity.CarryCapacityStrategyDhlPOService; import com.njcn.advance.service.carrycapacity.CarryCapacityStrategyDhlPOService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -31,9 +32,11 @@ public class CarryCapacityStrategyDhlPOServiceImpl extends ServiceImpl<CarryCapa
vo.setCount1(t.getCount1()); vo.setCount1(t.getCount1());
vo.setCount2(t.getCount2()); vo.setCount2(t.getCount2());
vo.setCount3(t.getCount3()); vo.setCount3(t.getCount3());
vo.setCount4(t.getCount4());
vo.setComparisonOperators1(t.getComparisonOperators1()); vo.setComparisonOperators1(t.getComparisonOperators1());
vo.setComparisonOperators2(t.getComparisonOperators2()); vo.setComparisonOperators2(t.getComparisonOperators2());
vo.setComparisonOperators3(t.getComparisonOperators3()); vo.setComparisonOperators3(t.getComparisonOperators3());
vo.setComparisonOperators4(t.getComparisonOperators4());
vo.setId(t.getId()); vo.setId(t.getId());
vo.setProtoFlag(t.getProtoFlag()); vo.setProtoFlag(t.getProtoFlag());
vo.setType(t.getType()); vo.setType(t.getType());
@@ -43,12 +46,14 @@ public class CarryCapacityStrategyDhlPOServiceImpl extends ServiceImpl<CarryCapa
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Boolean adddhl(CarryCapacityStrategyDhlVO capacityStrategyDhlVO) { public Boolean adddhl(CarryCapacityStrategyDhlVO capacityStrategyDhlVO) {
this.lambdaUpdate().eq(CarryCapacityStrategyDhlPO::getId, capacityStrategyDhlVO.getId()). this.lambdaUpdate().eq(CarryCapacityStrategyDhlPO::getId, capacityStrategyDhlVO.getId()).
set(CarryCapacityStrategyDhlPO::getUserFlag, 2).update(); set(CarryCapacityStrategyDhlPO::getUserFlag, 2).update();
CarryCapacityStrategyDhlPO carryCapacityStrategyDhlPO = new CarryCapacityStrategyDhlPO(); CarryCapacityStrategyDhlPO carryCapacityStrategyDhlPO = new CarryCapacityStrategyDhlPO();
BeanUtils.copyProperties(capacityStrategyDhlVO,carryCapacityStrategyDhlPO); BeanUtils.copyProperties(capacityStrategyDhlVO,carryCapacityStrategyDhlPO);
carryCapacityStrategyDhlPO.setId(null); carryCapacityStrategyDhlPO.setId(null);
carryCapacityStrategyDhlPO.setUserFlag(1);
carryCapacityStrategyDhlPO.setProtoFlag(2); carryCapacityStrategyDhlPO.setProtoFlag(2);
boolean save = this.save(carryCapacityStrategyDhlPO); boolean save = this.save(carryCapacityStrategyDhlPO);
return save; return save;

View File

@@ -1,5 +1,6 @@
package com.njcn.advance.service.carrycapacity.impl; package com.njcn.advance.service.carrycapacity.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -62,6 +63,7 @@ public class CarryCapacityUserPOServiceImpl extends ServiceImpl<CarryCapacityUse
queryWrapper.lambda().eq(StringUtils.isNotBlank(pageParm.getUserId()) ,CarryCapacityUserPO::getUserId,pageParm.getUserId()) queryWrapper.lambda().eq(StringUtils.isNotBlank(pageParm.getUserId()) ,CarryCapacityUserPO::getUserId,pageParm.getUserId())
.eq(StringUtils.isNotBlank(pageParm.getVoltage()) ,CarryCapacityUserPO::getVoltage,pageParm.getVoltage()) .eq(StringUtils.isNotBlank(pageParm.getVoltage()) ,CarryCapacityUserPO::getVoltage,pageParm.getVoltage())
.eq(StringUtils.isNotBlank(pageParm.getUserType()) ,CarryCapacityUserPO::getUserType,pageParm.getUserType()) .eq(StringUtils.isNotBlank(pageParm.getUserType()) ,CarryCapacityUserPO::getUserType,pageParm.getUserType())
.in(CollectionUtil.isNotEmpty(pageParm.getUserTypeList()) ,CarryCapacityUserPO::getUserType,pageParm.getUserTypeList())
.between(StringUtils.isNotBlank(pageParm.getStartTime()) && StringUtils.isNotBlank(pageParm.getEndTime()) ,CarryCapacityUserPO::getCreateTime,pageParm.getStartTime(),pageParm.getEndTime()). .between(StringUtils.isNotBlank(pageParm.getStartTime()) && StringUtils.isNotBlank(pageParm.getEndTime()) ,CarryCapacityUserPO::getCreateTime,pageParm.getStartTime(),pageParm.getEndTime()).
orderByDesc(CarryCapacityUserPO::getCreateTime); orderByDesc(CarryCapacityUserPO::getCreateTime);

View File

@@ -11,6 +11,7 @@ import com.njcn.advance.pojo.carrycapacity.param.CarryCapacityEvaluateParam;
import com.njcn.advance.pojo.carrycapacity.param.CarryCapacityQueryDataParam; import com.njcn.advance.pojo.carrycapacity.param.CarryCapacityQueryDataParam;
import com.njcn.advance.pojo.carrycapacity.param.ExcelDataParam; import com.njcn.advance.pojo.carrycapacity.param.ExcelDataParam;
import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityDataPO; import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityDataPO;
import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityDevicePO;
import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityResultPO; import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityResultPO;
import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityUserPO; import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityUserPO;
import com.njcn.advance.pojo.carrycapacity.vo.*; import com.njcn.advance.pojo.carrycapacity.vo.*;
@@ -86,120 +87,6 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
private final DicDataFeignClient dicDataFeignClient; private final DicDataFeignClient dicDataFeignClient;
//光伏评估
// void photovoltaicEvaluate(double S_T, double S_pv) {
// //电压等级
//
// List<DataHarmPowerP> dataHarmPowerPList = null;
// List<DataHarmPowerQ> dataHarmPowerQList = null;
//
// Integer voltage = null;
// //数据清洗取近一周的配变每日9时~15时段的负载率数据中概率95%小值所对应时刻的有功功率和无功功率值
// List<Double> listP = dataHarmPowerPList.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
// .map(DataHarmPowerP::getP)
// .collect(Collectors.toList());
//
// List<Double> listQ = dataHarmPowerQList.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
// .map(DataHarmPowerQ::getQ)
// .collect(Collectors.toList());
// //todo 检查数据是否缺失校验数据完整性
// double P_βmin = CZNLPG.calculatePercentile(listP, 1);
// double Q_βmin = CZNLPG.calculatePercentile(listQ, 1);
//
//
// double P_pv = S_pv * Integer.valueOf(CarryingCapacityEnum.K.getValue());
// double Bt = CZNLPG.calculateB(P_βmin, Q_βmin, Double.valueOf(CarryingCapacityEnum.K.getValue()), S_T, S_pv, P_pv);
//
// CZNLPG.calculatePF_T(P_βmin, Q_βmin,Double.valueOf(CarryingCapacityEnum.K.getValue()),S_pv);
// //前2周的数据
// List<DataHarmPowerP> dataHarmPowerPList2 = null;
// List<DataHarmPowerQ> dataHarmPowerQList2 = null;
// List<DataV> DataVList2 = null;
// List<String> phaseType = Stream.of("A", "B", "C").collect(Collectors.toList());
// //存储UA, UB,UC;
// List<Double> uList = new ArrayList<>();
//
// phaseType.stream().forEach(phase -> {
// List<Double> listP2 = dataHarmPowerPList2.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
// .filter(temp -> temp.getPhaseType().equals(phase))
// .map(DataHarmPowerP::getP)
// .collect(Collectors.toList());
//
// List<Double> listQ2 = dataHarmPowerQList2.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
// .filter(temp -> temp.getPhaseType().equals(phase))
// .map(DataHarmPowerQ::getQ)
// .collect(Collectors.toList());
//
// List<Double> listV2 = DataVList2.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
// .filter(temp -> temp.getPhasicType().equals(phase))
// .map(DataV::getRms)
// .collect(Collectors.toList());
// //todo 抽取5000条数据抽取方式待确定)
// Double[] res = new Double[3];
// CZNLPG.cznlpgDataTrain(listV2, listP2, listQ2, listV2.size(), res);
// //前一周数据计算p_minq_min
// List<Double> listPPhase = dataHarmPowerPList.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
// .filter(temp -> temp.getPhaseType().equals(phase))
// .map(DataHarmPowerP::getP)
// .collect(Collectors.toList());
//
// List<Double> listQPhase = dataHarmPowerQList.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
// .filter(temp -> temp.getPhaseType().equals(phase))
// .map(DataHarmPowerQ::getQ)
// .collect(Collectors.toList());
// //todo 检查数据是否缺失校验数据完整性
// double p_min = CZNLPG.calculatePercentile(listPPhase, 1);
// double q_min = CZNLPG.calculatePercentile(listQPhase, 1);
//
// double U = CZNLPG.calculateU(res[0], res[1], res[2], p_min, Double.valueOf(CarryingCapacityEnum.K.getValue()), q_min, S_pv, voltage);
// uList.add(U);
// });
// //取uList最大值
// double U_T = uList.stream().mapToDouble(Double::doubleValue)
// .max()
// .getAsDouble();
//
//
// List<Double> i_Th_List = new ArrayList<>();
//
// List<DataI> dataIList = null;
// List<Integer> integerList = Stream.of(2, 3, 4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25).collect(Collectors.toList());
//
// integerList.stream().forEach(temp->{
// List<Double> iList = new ArrayList<>();
// phaseType.stream().forEach(phase -> {
//
// List<DataI> tempDataIList = dataIList.stream().filter(temp1 -> Utils.isTimeInRange(temp1.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
// .filter(temp1 -> temp1.getPhaseType().equals(phase))
// .collect(Collectors.toList());
// //todo 检查数据是否缺失校验数据完整性
//
// List<Double> attributeValueByPropertyName = Utils.getAttributeValueByPropertyName(tempDataIList, "i" + temp);
// double I_cp95 = CZNLPG.calculatePercentile(attributeValueByPropertyName, 0);
// double I_phase = CZNLPG.calculateITm(I_cp95, Double.valueOf(CarryingCapacityEnum.K.getValue()),
// voltage, S_pv, Double.valueOf(CarryingCapacityEnum.getValueByCode("K_H_" + temp)),
// Double.valueOf(CarryingCapacityEnum.getValueByCode("I_INV_" + temp)));
// iList.add(I_phase);
// });
// double I_th = iList.stream().mapToDouble(Double::doubleValue)
// .max()
// .getAsDouble();
// i_Th_List.add(I_th);
//
// });
// //todo 根据监测点查找限值
//
//
//
//
//
//
//
//
//
//
//
// }
@Override @Override
public CarryCapacityDataVO queryCarryCapacityData(CarryCapacityQueryDataParam queryParam) { public CarryCapacityDataVO queryCarryCapacityData(CarryCapacityQueryDataParam queryParam) {
@@ -930,24 +817,23 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
CarryCapacityDResultVO vo = new CarryCapacityDResultVO(); CarryCapacityDResultVO vo = new CarryCapacityDResultVO();
List<CarryCapacityDResultVO.CarryCapacityIResult> carryCapacityIResultList = new ArrayList<>(); List<CarryCapacityDResultVO.CarryCapacityIResult> carryCapacityIResultList = new ArrayList<>();
String userType = calParam.getUserList().get(0).getUserType(); List<CarryCapacityDevicePO> devList = calParam.getDevList();
if(CollectionUtil.isEmpty(devList)){
throw new BusinessException(AdvanceResponseEnum.DEVICE_LOST);
}
String userId = devList.get(0).getUserId();
CarryCapacityUserPO carryCapacityUserPO = carryCapacityUserPOService.queyDetailUserById(userId);
String userType = carryCapacityUserPO.getUserType();
String code = dicDataFeignClient.getDicDataById(userType).getData().getCode(); String code = dicDataFeignClient.getDicDataById(userType).getData().getCode();
//用户协议容量 //用户协议容量
double sumCapacity = 0.00; double sumCapacity = carryCapacityUserPO.getProtocolCapacity();
if (CollectionUtil.isEmpty(calParam.getUserList())){
throw new BusinessException(AdvanceResponseEnum.USER_LOST);
}else {
sumCapacity = calParam.getUserList().stream().mapToDouble(CarryCapacityUserVO::getProtocolCapacity).sum();
}
double rate = sumCapacity / calParam.getShortCapacity(); double rate = sumCapacity / calParam.getShortCapacity();
vo.setFirstResult(rate*100); vo.setFirstResult(rate*100);
CarryCapacityResultPO carryCapacityResultPO = new CarryCapacityResultPO(); CarryCapacityResultPO carryCapacityResultPO = new CarryCapacityResultPO();
carryCapacityResultPO.setFirstResult(rate*100); carryCapacityResultPO.setFirstResult(rate*100);
carryCapacityResultPO.setUserId( String.join(",", calParam.getUserList().stream().map(CarryCapacityUserVO::getUserId).collect(Collectors.toList()))); carryCapacityResultPO.setUserId( userId);
carryCapacityResultPO.setEvaluateDate(LocalDate.now()); carryCapacityResultPO.setEvaluateDate(LocalDate.now());
carryCapacityResultPO.setEvaluateType(userType); carryCapacityResultPO.setEvaluateType(userType);
carryCapacityResultPO.setStatus(1); carryCapacityResultPO.setStatus(1);
@@ -962,7 +848,7 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
carryCapacityResultPO.setStatus(1); carryCapacityResultPO.setStatus(1);
if(rate<0.001){ if(rate<0.001){
carryCapacityResultPO.setReslutLevel(6); carryCapacityResultPO.setReslutLevel(1);
carryCapacityResultPOService.save(carryCapacityResultPO); carryCapacityResultPOService.save(carryCapacityResultPO);
return vo; return vo;
} }
@@ -974,18 +860,23 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
//设备电压等级单位KV //设备电压等级单位KV
String sacaleValue = dicDataFeignClient.getDicDataById(calParam.getScale()).getData().getValue(); String sacaleValue = dicDataFeignClient.getDicDataById(calParam.getScale()).getData().getValue();
//用户电压等级 // //用户电压等级
DictData data = dicDataFeignClient.getDicDataById(calParam.getUserList().get(0).getVoltage()).getData(); DictData data = dicDataFeignClient.getDicDataById(carryCapacityUserPO.getVoltage()).getData();
float userSacaleValue = Float.valueOf(data.getValue())* (data.getCode().contains("k")?1000:1); float userSacaleValue = Float.valueOf(data.getValue())* (data.getCode().contains("k")?1000:1);
//用户模式专变用户,公变用户 //用户模式专变用户,公变用户
String userMode = dicDataFeignClient.getDicDataById(calParam.getUserMode()).getData().getCode(); String userMode = dicDataFeignClient.getDicDataById(calParam.getUserMode()).getData().getCode();
//变压器连接方式接线方式 //变压器连接方式接线方式
String connectionMode = dicDataFeignClient.getDicDataById(calParam.getConnectionMode()).getData().getCode(); String connectionMode;
if(Objects.nonNull(calParam.getConnectionMode())&&!"".equals(calParam.getConnectionMode())){
connectionMode = dicDataFeignClient.getDicDataById(calParam.getConnectionMode()).getData().getCode();
} else {
connectionMode = "";
}
List<Integer> integerList = Stream.of( 3,5,7,9,11,13,15,17,19).collect(Collectors.toList());
List<Integer> integerList = Stream.of(2, 3, 4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20).collect(Collectors.toList());
//基波电流I_1:设备容量(转成KVA*1000)*K功率因数转成kW/更号3*电压等级转成Kv
Double I_1 = calParam.getDeviceCapacity()*1000*calParam.getK()/(Math.sqrt(3)*Double.valueOf(sacaleValue));
Overlimit overlimit = new Overlimit(); Overlimit overlimit = new Overlimit();
COverlimitUtil.iHarm(overlimit,Float.valueOf(sacaleValue),(float) sumCapacity,calParam.getDeviceCapacity(),calParam.getShortCapacity()); COverlimitUtil.iHarm(overlimit,Float.valueOf(sacaleValue),(float) sumCapacity,calParam.getDeviceCapacity(),calParam.getShortCapacity());
@@ -995,18 +886,33 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
integerList.stream().forEach(temp->{ integerList.stream().forEach(temp->{
CarryCapacityDResultVO.CarryCapacityIResult carryCapacityIResultVO = new CarryCapacityDResultVO.CarryCapacityIResult(); CarryCapacityDResultVO.CarryCapacityIResult carryCapacityIResultVO = new CarryCapacityDResultVO.CarryCapacityIResult();
//低压侧 List<Double> Ilist = new ArrayList<>();
Double I_h = I_1*(Double.valueOf(CarryingCapacityEnum.getValueByCode("CP_I_" + temp)))/100; devList.forEach(carryCapacityDevicePO -> {
if(!DicDataEnum.YNyn.getCode().equals(connectionMode)&&temp%3==0){ DictData devScaledata = dicDataFeignClient.getDicDataById(carryCapacityDevicePO.getDevScale()).getData();
I_h =0.00; Double devScaleValue = Float.valueOf(devScaledata.getValue())* (devScaledata.getCode().contains("k")?1:0.0001);
}else { //基波电流I_1:设备容量(转成KVA*1000)*K功率因数转成kW/更号3*电压等级转成Kv
//专变用户的话是经过变压器的高压侧进行考核,公变用户的正常是在低压侧进行考核
if (DicDataEnum.SPECIAL_USER.getCode().equals(userMode)) { Double I_1 = carryCapacityDevicePO.getProtocolCapacity()*1000*calParam.getK()/(Math.sqrt(3)*Double.valueOf(devScaleValue));
I_h = I_h / (Double.valueOf(sacaleValue) * 1000 / userSacaleValue); //低压侧
Double I_h = I_1*(Double.valueOf(CarryingCapacityEnum.getValueByCode("CP_I_" + temp)))/100;
//当变压器连接方式为YNyn零序电流可以流通计算变压器高压侧的谐波电流零序电流次数为3、6、9、12、否则为0
if(!DicDataEnum.YNyn.getCode().equals(connectionMode)&&temp%3==0){
I_h =0.00;
} }
Ilist.add(I_h);
});
//将变压器下多个设备电流合并
Double mergeI = mergeIList(Ilist,temp);
//专变用户的话是经过变压器的高压侧进行考核,公变用户的正常是在低压侧进行考核
if (DicDataEnum.SPECIAL_USER.getCode().equals(userMode)) {
mergeI = mergeI / (Double.valueOf(sacaleValue) * 1000 / userSacaleValue);
} }
carryCapacityIResultVO.setTime(temp); carryCapacityIResultVO.setTime(temp);
carryCapacityIResultVO.setI(I_h); carryCapacityIResultVO.setI(mergeI);
double getUharm = PubUtils.getValueByMethod(overlimit, "getIharm", temp); double getUharm = PubUtils.getValueByMethod(overlimit, "getIharm", temp);
carryCapacityIResultVO.setI_limit(getUharm); carryCapacityIResultVO.setI_limit(getUharm);
carryCapacityIResultList.add(carryCapacityIResultVO); carryCapacityIResultList.add(carryCapacityIResultVO);
@@ -1016,18 +922,32 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
integerList.stream().forEach(temp->{ integerList.stream().forEach(temp->{
CarryCapacityDResultVO.CarryCapacityIResult carryCapacityIResultVO = new CarryCapacityDResultVO.CarryCapacityIResult(); CarryCapacityDResultVO.CarryCapacityIResult carryCapacityIResultVO = new CarryCapacityDResultVO.CarryCapacityIResult();
//低压侧 List<Double> Ilist = new ArrayList<>();
Double I_h = I_1*(Double.valueOf(CarryingCapacityEnum.getValueByCode("EAF_I_" + temp)))/100; devList.forEach(carryCapacityDevicePO -> {
if(!DicDataEnum.YNyn.getCode().equals(connectionMode)&&temp%3==0){ DictData devScaledata = dicDataFeignClient.getDicDataById(carryCapacityDevicePO.getDevScale()).getData();
I_h =0.00; Double devScaleValue = Float.valueOf(devScaledata.getValue())* (devScaledata.getCode().contains("k")?1:0.0001);
}else { //基波电流I_1:设备容量(转成KVA*1000)*K功率因数转成kW/更号3*电压等级转成Kv
//专变用户的话是经过变压器的高压侧进行考核,公变用户的正常是在低压侧进行考核 Double I_1 = carryCapacityDevicePO.getProtocolCapacity()*1000*calParam.getK()/(Math.sqrt(3)*Double.valueOf(devScaleValue));
if (DicDataEnum.SPECIAL_USER.getCode().equals(userMode)) { //低压侧
I_h = I_h / (Double.valueOf(sacaleValue) * 1000 / userSacaleValue); Double I_h = I_1*(Double.valueOf(CarryingCapacityEnum.getValueByCode("EAF_I_" + temp)))/100;
//当变压器连接方式为YNyn零序电流可以流通计算变压器高压侧的谐波电流零序电流次数为3、6、9、12、否则为0
if(!DicDataEnum.YNyn.getCode().equals(connectionMode)&&temp%3==0){
I_h =0.00;
} }
Ilist.add(I_h);
});
//将变压器下多个设备电流合并
Double mergeI = mergeIList(Ilist,temp);
//专变用户的话是经过变压器的高压侧进行考核,公变用户的正常是在低压侧进行考核
if (DicDataEnum.SPECIAL_USER.getCode().equals(userMode)) {
mergeI = mergeI / (Double.valueOf(sacaleValue) * 1000 / userSacaleValue);
} }
carryCapacityIResultVO.setTime(temp); carryCapacityIResultVO.setTime(temp);
carryCapacityIResultVO.setI(I_h); carryCapacityIResultVO.setI(mergeI);
double getUharm = PubUtils.getValueByMethod(overlimit, "getIharm", temp); double getUharm = PubUtils.getValueByMethod(overlimit, "getIharm", temp);
carryCapacityIResultVO.setI_limit(getUharm); carryCapacityIResultVO.setI_limit(getUharm);
carryCapacityIResultList.add(carryCapacityIResultVO); carryCapacityIResultList.add(carryCapacityIResultVO);
@@ -1036,22 +956,33 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
} }
else if (DicDataEnum.Electrified_Rail_Users.getCode().equals(code)) { else if (DicDataEnum.Electrified_Rail_Users.getCode().equals(code)) {
integerList.stream().forEach(temp->{ integerList.stream().forEach(temp->{
if(temp%2==0){
return;
}
CarryCapacityDResultVO.CarryCapacityIResult carryCapacityIResultVO = new CarryCapacityDResultVO.CarryCapacityIResult(); CarryCapacityDResultVO.CarryCapacityIResult carryCapacityIResultVO = new CarryCapacityDResultVO.CarryCapacityIResult();
//低压侧 List<Double> Ilist = new ArrayList<>();
Double I_h = I_1*(Double.valueOf(CarryingCapacityEnum.getValueByCode("ER_I_" + temp)))/100; devList.forEach(carryCapacityDevicePO -> {
if(!DicDataEnum.YNyn.getCode().equals(connectionMode)&&temp%3==0){ DictData devScaledata = dicDataFeignClient.getDicDataById(carryCapacityDevicePO.getDevScale()).getData();
I_h =0.00; Double devScaleValue = Float.valueOf(devScaledata.getValue())* (devScaledata.getCode().contains("k")?1:0.0001);
}else { //基波电流I_1:设备容量(转成KVA*1000)*K功率因数转成kW/更号3*电压等级转成Kv
//专变用户的话是经过变压器的高压侧进行考核,公变用户的正常是在低压侧进行考核 Double I_1 = carryCapacityDevicePO.getProtocolCapacity()*1000*calParam.getK()/(Math.sqrt(3)*Double.valueOf(devScaleValue));
if (DicDataEnum.SPECIAL_USER.getCode().equals(userMode)) { //低压侧
I_h = I_h / (Double.valueOf(sacaleValue) * 1000 / userSacaleValue); Double I_h = I_1*(Double.valueOf(CarryingCapacityEnum.getValueByCode("ER_I_" + temp)))/100;
//当变压器连接方式为YNyn零序电流可以流通计算变压器高压侧的谐波电流零序电流次数为3、6、9、12、否则为0
if(!DicDataEnum.YNyn.getCode().equals(connectionMode)&&temp%3==0){
I_h =0.00;
} }
Ilist.add(I_h);
});
//将变压器下多个设备电流合并
Double mergeI = mergeIList(Ilist,temp);
//专变用户的话是经过变压器的高压侧进行考核,公变用户的正常是在低压侧进行考核
if (DicDataEnum.SPECIAL_USER.getCode().equals(userMode)) {
mergeI = mergeI / (Double.valueOf(sacaleValue) * 1000 / userSacaleValue);
} }
carryCapacityIResultVO.setTime(temp); carryCapacityIResultVO.setTime(temp);
carryCapacityIResultVO.setI(I_h); carryCapacityIResultVO.setI(mergeI);
double getUharm = PubUtils.getValueByMethod(overlimit, "getIharm", temp); double getUharm = PubUtils.getValueByMethod(overlimit, "getIharm", temp);
carryCapacityIResultVO.setI_limit(getUharm); carryCapacityIResultVO.setI_limit(getUharm);
carryCapacityIResultList.add(carryCapacityIResultVO); carryCapacityIResultList.add(carryCapacityIResultVO);
@@ -1059,13 +990,34 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
} }
vo.setIResultList(carryCapacityIResultList); vo.setIResultList(carryCapacityIResultList);
carryCapacityResultPO.setIResultList(JSONUtil.toJsonStr(carryCapacityIResultList)); carryCapacityResultPO.setIResultList(JSONUtil.toJsonStr(carryCapacityIResultList));
long count = carryCapacityIResultList.stream().filter(temp -> temp.getI() > temp.getI_limit()).count();
carryCapacityResultPO.setReslutLevel(count==0?1:6);
carryCapacityResultPOService.save(carryCapacityResultPO); carryCapacityResultPOService.save(carryCapacityResultPO);
return vo; return vo;
} }
private Double mergeIList(List<Double> ilist, Integer temp) {
Double result = 0.00;
if (ilist.size()==1){
return ilist.get(0);
}else {
result = ilist.get(0);
for (int i = 1; i < ilist.size(); i++) {
Double sum = result*result +ilist.get(i)*ilist.get(i)+ Double.valueOf(CarryingCapacityEnum.getValueByCode("K_H_" + (i + 2)))*result*ilist.get(i);
result =Math.sqrt(sum);
}
}
return result;
}
public static ExcelDataDTO ParsingFile(LocalDate startDate, LocalDate endDate, InputStream is) throws Exception{ public static ExcelDataDTO ParsingFile(LocalDate startDate, LocalDate endDate, InputStream is) throws Exception{
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

View File

@@ -65,4 +65,33 @@ public class NjcnDateUtils {
} }
return dates; return dates;
} }
public static void main(String[] args) {
System.out.println(NjcnDateUtils.longestCommonSubsequence("abcccccccb","acbaa"));
}
public static int longestCommonSubsequence(String s1, String s2) {
int n = s1.length(), m = s2.length();
s1 = " " + s1; s2 = " " + s2;
char[] cs1 = s1.toCharArray(), cs2 = s2.toCharArray();
int[][] f = new int[n + 1][m + 1];
// 因为有了追加的空格,我们有了显然的初始化值(以下两种初始化方式均可)
// for (int i = 0; i <= n; i++) Arrays.fill(f[i], 1);
for (int i = 0; i <= n; i++) f[i][0] = 1;
for (int j = 0; j <= m; j++) f[0][j] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (cs1[i] == cs2[j]) {
f[i][j] = f[i -1][j - 1] + 1;
} else {
f[i][j] = Math.max(f[i - 1][j], f[i][j - 1]);
}
}
}
// 减去最开始追加的空格
return f[n][m] - 1;
}
} }