From 2e0607028b6b3bd35e621801e28d1c4751c9496e Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Fri, 22 Mar 2024 08:59:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=B7=E5=8D=97=E7=89=88=E6=9C=AC=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../advance/enums/AdvanceResponseEnum.java | 1 + .../advance/enums/CarryingCapacityEnum.java | 94 +++--- .../param/CarryCapacityDeviceParam.java | 51 ++++ .../param/CarryCapacityEvaluateParam.java | 6 +- .../param/CarryCapacityUserParam.java | 3 + .../po/CarryCapacityDevicePO.java | 50 ++++ .../vo/CarryCapacityDResultVO.java | 3 +- .../CarryCapacityController.java | 4 +- .../CarryCapacityDevController.java | 84 ++++++ .../CarryCapacityDevicePOMapper.java | 15 + .../mapping/CarryCapacityDevicePOMapper.xml | 19 ++ .../CarryCapacityDevicePOService.java | 20 ++ .../CarryCapacityDevicePOServiceImpl.java | 40 +++ .../CarryCapacityResultPOServiceImpl.java | 14 +- ...CarryCapacityStrategyDhlPOServiceImpl.java | 5 + .../impl/CarryCapacityUserPOServiceImpl.java | 2 + .../impl/CarryCapcityServiceImpl.java | 276 ++++++++---------- .../com/njcn/common/utils/NjcnDateUtils.java | 29 ++ 18 files changed, 499 insertions(+), 217 deletions(-) create mode 100644 pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityDeviceParam.java create mode 100644 pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/po/CarryCapacityDevicePO.java create mode 100644 pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/carrycapacity/CarryCapacityDevController.java create mode 100644 pqs-advance/advance-boot/src/main/java/com/njcn/advance/mapper/carrycapacity/CarryCapacityDevicePOMapper.java create mode 100644 pqs-advance/advance-boot/src/main/java/com/njcn/advance/mapper/carrycapacity/mapping/CarryCapacityDevicePOMapper.xml create mode 100644 pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/CarryCapacityDevicePOService.java create mode 100644 pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityDevicePOServiceImpl.java diff --git a/pqs-advance/advance-api/src/main/java/com/njcn/advance/enums/AdvanceResponseEnum.java b/pqs-advance/advance-api/src/main/java/com/njcn/advance/enums/AdvanceResponseEnum.java index fda041ec4..a8bca9a7c 100644 --- a/pqs-advance/advance-api/src/main/java/com/njcn/advance/enums/AdvanceResponseEnum.java +++ b/pqs-advance/advance-api/src/main/java/com/njcn/advance/enums/AdvanceResponseEnum.java @@ -39,6 +39,7 @@ public enum AdvanceResponseEnum { DATA_UNDERRUN("A0104","数据量不足,请根据模版上传充足近两周数据"), DOCUMENT_FORMAT_ERROR("A0105","数据缺失,导入失败!请检查导入文档的格式是否正确"), + DEVICE_LOST("A0104","用户下缺少设备"), USER_LOST("A0106","干扰源用户缺失"), UNCOMPLETE_STRATEGY("A0106","配置安全,III级预警,II级预警,I级预警4条完整策略"), diff --git a/pqs-advance/advance-api/src/main/java/com/njcn/advance/enums/CarryingCapacityEnum.java b/pqs-advance/advance-api/src/main/java/com/njcn/advance/enums/CarryingCapacityEnum.java index 88538b808..388e36ad3 100644 --- a/pqs-advance/advance-api/src/main/java/com/njcn/advance/enums/CarryingCapacityEnum.java +++ b/pqs-advance/advance-api/src/main/java/com/njcn/advance/enums/CarryingCapacityEnum.java @@ -80,57 +80,57 @@ public enum CarryingCapacityEnum { I_INV_35("I_INV_35","0.072","35次典型谐波电流含有率"), //电弧炉谐波电流含有率 - EAF_I_2("EAF_I_2","0.6112","2次电弧炉谐波电流含有率"), - EAF_I_3("EAF_I_3","0.68935","3次电弧炉谐波电流含有率"), - EAF_I_4("EAF_I_4","0.9906","4次电弧炉谐波电流含有率"), - EAF_I_5("EAF_I_5","6.9575","5次电弧炉谐波电流含有率"), - EAF_I_6("EAF_I_6","0.5750","6次电弧炉谐波电流含有率"), - EAF_I_7("EAF_I_7","3.2731","7次电弧炉谐波电流含有率"), - EAF_I_8("EAF_I_8","0.4782","8次电弧炉谐波电流含有率"), - EAF_I_9("EAF_I_9","0.5197","9次电弧炉谐波电流含有率"), - EAF_I_10("EAF_I_10","0.6003","10次电弧炉谐波电流含有率"), - EAF_I_11("EAF_I_11","4.5631","11次电弧炉谐波电流含有率"), - EAF_I_12("EAF_I_12","0.5242","12次电弧炉谐波电流含有率"), - EAF_I_13("EAF_I_13","2.9196","13次电弧炉谐波电流含有率"), - EAF_I_14("EAF_I_14","0.5720","14次电弧炉谐波电流含有率"), - EAF_I_15("EAF_I_15","0.5956","15次电弧炉谐波电流含有率"), - EAF_I_16("EAF_I_16","0.8234","16次电弧炉谐波电流含有率"), - EAF_I_17("EAF_I_17","5.4185","17次电弧炉谐波电流含有率"), - EAF_I_18("EAF_I_18","0.8848","18次电弧炉谐波电流含有率"), - EAF_I_19("EAF_I_19","2.3503","19次电弧炉谐波电流含有率"), - EAF_I_20("EAF_I_20","0.6789","20次电弧炉谐波电流含有率"), +// EAF_I_2("EAF_I_2","0.6112","2次电弧炉谐波电流含有率"), + EAF_I_3("EAF_I_3","0.13484","3次电弧炉谐波电流含有率"), +// EAF_I_4("EAF_I_4","0.9906","4次电弧炉谐波电流含有率"), + EAF_I_5("EAF_I_5","0.017327","5次电弧炉谐波电流含有率"), +// EAF_I_6("EAF_I_6","0.5750","6次电弧炉谐波电流含有率"), + EAF_I_7("EAF_I_7","0.015288","7次电弧炉谐波电流含有率"), +// EAF_I_8("EAF_I_8","0.4782","8次电弧炉谐波电流含有率"), + EAF_I_9("EAF_I_9","0.001495","9次电弧炉谐波电流含有率"), +// EAF_I_10("EAF_I_10","0.6003","10次电弧炉谐波电流含有率"), + EAF_I_11("EAF_I_11","0.001203","11次电弧炉谐波电流含有率"), +// EAF_I_12("EAF_I_12","0.5242","12次电弧炉谐波电流含有率"), + EAF_I_13("EAF_I_13","0.001407","13次电弧炉谐波电流含有率"), +// EAF_I_14("EAF_I_14","0.5720","14次电弧炉谐波电流含有率"), + EAF_I_15("EAF_I_15","0.001676","15次电弧炉谐波电流含有率"), +// EAF_I_16("EAF_I_16","0.8234","16次电弧炉谐波电流含有率"), + EAF_I_17("EAF_I_17","0.001555","17次电弧炉谐波电流含有率"), +// EAF_I_18("EAF_I_18","0.8848","18次电弧炉谐波电流含有率"), + EAF_I_19("EAF_I_19","0.001159","19次电弧炉谐波电流含有率"), +// EAF_I_20("EAF_I_20","0.6789","20次电弧炉谐波电流含有率"), //充电桩谐波电流含有率 - CP_I_2("CP_I_2","5.00","2次电弧炉谐波电流含有率"), - CP_I_3("CP_I_3","7.00","3次电弧炉谐波电流含有率"), - CP_I_4("CP_I_4","4.00","4次电弧炉谐波电流含有率"), - CP_I_5("CP_I_5","5.00","5次电弧炉谐波电流含有率"), - CP_I_6("CP_I_6","4.00","6次电弧炉谐波电流含有率"), - CP_I_7("CP_I_7","2.00","7次电弧炉谐波电流含有率"), - CP_I_8("CP_I_8","2.00","8次电弧炉谐波电流含有率"), - CP_I_9("CP_I_9","1.00","9次电弧炉谐波电流含有率"), - CP_I_10("CP_I_10","1.50","10次电弧炉谐波电流含有率"), - CP_I_11("CP_I_11","1.50","11次电弧炉谐波电流含有率"), - CP_I_12("CP_I_12","0.50","12次电弧炉谐波电流含有率"), - CP_I_13("CP_I_13","0.50","13次电弧炉谐波电流含有率"), - CP_I_14("CP_I_14","0.00","14次电弧炉谐波电流含有率"), - CP_I_15("CP_I_15","0.00","15次电弧炉谐波电流含有率"), - CP_I_16("CP_I_16","0.00","16次电弧炉谐波电流含有率"), - CP_I_17("CP_I_17","0.00","17次电弧炉谐波电流含有率"), - CP_I_18("CP_I_18","0.00","18次电弧炉谐波电流含有率"), - CP_I_19("CP_I_19","0.00","19次电弧炉谐波电流含有率"), - CP_I_20("CP_I_20","0.00","20次电弧炉谐波电流含有率"), +// CP_I_2("CP_I_2","5.00","2次电弧炉谐波电流含有率"), + CP_I_3("CP_I_3","0.2011","3次电弧炉谐波电流含有率"), +// CP_I_4("CP_I_4","4.00","4次电弧炉谐波电流含有率"), + CP_I_5("CP_I_5","0.1069","5次电弧炉谐波电流含有率"), +// CP_I_6("CP_I_6","4.00","6次电弧炉谐波电流含有率"), + CP_I_7("CP_I_7","0.0647","7次电弧炉谐波电流含有率"), +// CP_I_8("CP_I_8","2.00","8次电弧炉谐波电流含有率"), + CP_I_9("CP_I_9","0.0376","9次电弧炉谐波电流含有率"), +// CP_I_10("CP_I_10","1.50","10次电弧炉谐波电流含有率"), + CP_I_11("CP_I_11","0.0232","11次电弧炉谐波电流含有率"), +// CP_I_12("CP_I_12","0.50","12次电弧炉谐波电流含有率"), + CP_I_13("CP_I_13","0.0155","13次电弧炉谐波电流含有率"), +// CP_I_14("CP_I_14","0.00","14次电弧炉谐波电流含有率"), + CP_I_15("CP_I_15","0.005956","15次电弧炉谐波电流含有率"), +// CP_I_16("CP_I_16","0.00","16次电弧炉谐波电流含有率"), + CP_I_17("CP_I_17","0.054185","17次电弧炉谐波电流含有率"), +// CP_I_18("CP_I_18","0.00","18次电弧炉谐波电流含有率"), + CP_I_19("CP_I_19","0.023503","19次电弧炉谐波电流含有率"), +// CP_I_20("CP_I_20","0.00","20次电弧炉谐波电流含有率"), //电气化铁路典型 - ER_I_3("ER_I_3","20.11","3次电弧炉谐波电流含有率"), - ER_I_5("ER_I_5","10.69","5次电弧炉谐波电流含有率"), - ER_I_7("ER_I_7","6.47","7次电弧炉谐波电流含有率"), - ER_I_9("ER_I_9","3.76","9次电弧炉谐波电流含有率"), - ER_I_11("ER_I_11","2.32","11次电弧炉谐波电流含有率"), - ER_I_13("ER_I_13","1.55","13次电弧炉谐波电流含有率"), - ER_I_15("ER_I_15","1.17","15次电弧炉谐波电流含有率"), - ER_I_17("ER_I_17","0.95","17次电弧炉谐波电流含有率"), - ER_I_19("ER_I_19","0.80","19次电弧炉谐波电流含有率"), + ER_I_3("ER_I_3","0.0068935","3次电弧炉谐波电流含有率"), + ER_I_5("ER_I_5","0.069575","5次电弧炉谐波电流含有率"), + ER_I_7("ER_I_7","0.032731","7次电弧炉谐波电流含有率"), + ER_I_9("ER_I_9","0.005197","9次电弧炉谐波电流含有率"), + ER_I_11("ER_I_11","0.045631","11次电弧炉谐波电流含有率"), + ER_I_13("ER_I_13","0.029196","13次电弧炉谐波电流含有率"), + ER_I_15("ER_I_15","0.017","15次电弧炉谐波电流含有率"), + ER_I_17("ER_I_17","0.0095","17次电弧炉谐波电流含有率"), + ER_I_19("ER_I_19","0.0080","19次电弧炉谐波电流含有率"), ; /** diff --git a/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityDeviceParam.java b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityDeviceParam.java new file mode 100644 index 000000000..3e0e04d29 --- /dev/null +++ b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityDeviceParam.java @@ -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; + } +} \ No newline at end of file diff --git a/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityEvaluateParam.java b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityEvaluateParam.java index 2e68b6349..0c25ab6d4 100644 --- a/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityEvaluateParam.java +++ b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityEvaluateParam.java @@ -1,6 +1,6 @@ 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 lombok.AllArgsConstructor; import lombok.Data; @@ -46,6 +46,6 @@ public class CarryCapacityEvaluateParam { @ApiModelProperty(name = "deviceCapacity",value = "设备容量") private Float deviceCapacity; - @ApiModelProperty(name = "userList",value = "干扰源用户列表") - private List userList; + @ApiModelProperty(name = "userList",value = "干扰源用户设备列表") + private List devList; } \ No newline at end of file diff --git a/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityUserParam.java b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityUserParam.java index 5b1027c97..e4ba232b9 100644 --- a/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityUserParam.java +++ b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityUserParam.java @@ -12,6 +12,7 @@ import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; +import java.util.List; /** * @@ -95,6 +96,8 @@ public class CarryCapacityUserParam { @ApiModelProperty(value="结束时间") private String endTime; + + private List userTypeList; } } \ No newline at end of file diff --git a/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/po/CarryCapacityDevicePO.java b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/po/CarryCapacityDevicePO.java new file mode 100644 index 000000000..8d121ddae --- /dev/null +++ b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/po/CarryCapacityDevicePO.java @@ -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; + + + +} \ No newline at end of file diff --git a/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/vo/CarryCapacityDResultVO.java b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/vo/CarryCapacityDResultVO.java index 67a1af2be..a4a770cd9 100644 --- a/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/vo/CarryCapacityDResultVO.java +++ b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/vo/CarryCapacityDResultVO.java @@ -1,6 +1,5 @@ package com.njcn.advance.pojo.carrycapacity.vo; -import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -80,9 +79,9 @@ public class CarryCapacityDResultVO { private List iResultList; - @TableField(value = "pt_type") private String connectionMode; private Double k; + private String ptType; private String userMode; diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/carrycapacity/CarryCapacityController.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/carrycapacity/CarryCapacityController.java index f0589e304..c0d665362 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/carrycapacity/CarryCapacityController.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/carrycapacity/CarryCapacityController.java @@ -112,14 +112,14 @@ public class CarryCapacityController extends BaseController { - String sheetName = "数据集模版.xlsx"; + String sheetName = "数据集模版"; List excels = new ArrayList<>(); CarryCapcityDataEexcel exportHeadersExcel = new CarryCapcityDataEexcel(); excels.add(exportHeadersExcel); EasyExcel.write(response.getOutputStream(), CarryCapcityDataEexcel.class) .sheet(sheetName) .doWrite(excels); - EasyExcelUtil.writeWithSheetsWeb(response, "数据集模版"); + EasyExcelUtil.writeWithSheetsWeb(response, "数据集模版.xlsx"); diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/carrycapacity/CarryCapacityDevController.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/carrycapacity/CarryCapacityDevController.java new file mode 100644 index 000000000..c1b6caa5b --- /dev/null +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/carrycapacity/CarryCapacityDevController.java @@ -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 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 remove(@RequestParam("devIds") List 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 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> queyDeviceList(@RequestBody @Validated CarryCapacityDeviceParam.CarryCapacityDeviceQueryParam deviceParam) { + String methodDescribe = getMethodDescribe("queyDeviceList"); + List 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); + } + + + + +} diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/mapper/carrycapacity/CarryCapacityDevicePOMapper.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/mapper/carrycapacity/CarryCapacityDevicePOMapper.java new file mode 100644 index 000000000..92a1daf79 --- /dev/null +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/mapper/carrycapacity/CarryCapacityDevicePOMapper.java @@ -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 { +} \ No newline at end of file diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/mapper/carrycapacity/mapping/CarryCapacityDevicePOMapper.xml b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/mapper/carrycapacity/mapping/CarryCapacityDevicePOMapper.xml new file mode 100644 index 000000000..43e005307 --- /dev/null +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/mapper/carrycapacity/mapping/CarryCapacityDevicePOMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + dev_id, dev_name, protocol_capacity, create_by, create_time, update_by, update_time + + \ No newline at end of file diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/CarryCapacityDevicePOService.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/CarryCapacityDevicePOService.java new file mode 100644 index 000000000..f63d5513b --- /dev/null +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/CarryCapacityDevicePOService.java @@ -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{ + + + Boolean updateDevice(CarryCapacityDeviceParam.CarryCapacityDeviceUpdateParam deviceParam); + + Boolean add(CarryCapacityDeviceParam capacityDeviceParam); + } diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityDevicePOServiceImpl.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityDevicePOServiceImpl.java new file mode 100644 index 000000000..f0102ca7a --- /dev/null +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityDevicePOServiceImpl.java @@ -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 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; + } +} diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityResultPOServiceImpl.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityResultPOServiceImpl.java index 843fb7eff..94db896e9 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityResultPOServiceImpl.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityResultPOServiceImpl.java @@ -12,6 +12,8 @@ import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityUserPO; import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityDResultVO; import com.njcn.advance.service.carrycapacity.CarryCapacityResultPOService; 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 org.apache.commons.lang.StringUtils; import org.apache.commons.lang3.ObjectUtils; @@ -20,6 +22,7 @@ import org.springframework.stereotype.Service; import java.util.Arrays; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -34,7 +37,7 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class CarryCapacityResultPOServiceImpl extends ServiceImpl implements CarryCapacityResultPOService{ private final CarryCapacityUserPOService carryCapacityUserPOService; - + private final LineFeignClient lineFeignClient; @Override public IPage queryResultList(CarryCapacityResultParam.CarryCapacityResultPageParam queryParam) { Page returnpage = new Page<> (queryParam.getPageNum ( ), queryParam.getPageSize ( )); @@ -44,6 +47,7 @@ public class CarryCapacityResultPOServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); 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()) + .eq(CarryCapacityResultPO::getStatus,1) .orderByDesc(CarryCapacityResultPO::getEvaluateDate); IPage page = this.page(temppage, queryWrapper); @@ -61,6 +65,14 @@ public class CarryCapacityResultPOServiceImpl extends ServiceImpl list = JSONUtil.toList(JSONUtil.toJsonStr(iResultList), CarryCapacityDResultVO.CarryCapacityIResult.class); 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; }).collect(Collectors.toList()); returnpage.setRecords(collect); diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityStrategyDhlPOServiceImpl.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityStrategyDhlPOServiceImpl.java index 99d3694e9..ed62a3e08 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityStrategyDhlPOServiceImpl.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityStrategyDhlPOServiceImpl.java @@ -7,6 +7,7 @@ import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityStrategyDhlVO; import com.njcn.advance.service.carrycapacity.CarryCapacityStrategyDhlPOService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.stream.Collectors; @@ -31,9 +32,11 @@ public class CarryCapacityStrategyDhlPOServiceImpl extends ServiceImpl dataHarmPowerPList = null; -// List dataHarmPowerQList = null; -// -// Integer voltage = null; -// //数据清洗取近一周的配变每日9时~15时段的负载率数据中概率95%小值所对应时刻的有功功率和无功功率值 -// List listP = dataHarmPowerPList.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0))) -// .map(DataHarmPowerP::getP) -// .collect(Collectors.toList()); -// -// List 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 dataHarmPowerPList2 = null; -// List dataHarmPowerQList2 = null; -// List DataVList2 = null; -// List phaseType = Stream.of("A", "B", "C").collect(Collectors.toList()); -// //存储UA, UB,UC; -// List uList = new ArrayList<>(); -// -// phaseType.stream().forEach(phase -> { -// List 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 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 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_min,q_min -// List 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 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 i_Th_List = new ArrayList<>(); -// -// List dataIList = null; -// List 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 iList = new ArrayList<>(); -// phaseType.stream().forEach(phase -> { -// -// List 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 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 public CarryCapacityDataVO queryCarryCapacityData(CarryCapacityQueryDataParam queryParam) { @@ -930,24 +817,23 @@ public class CarryCapcityServiceImpl implements CarryCapcityService { CarryCapacityDResultVO vo = new CarryCapacityDResultVO(); List carryCapacityIResultList = new ArrayList<>(); - String userType = calParam.getUserList().get(0).getUserType(); + List 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(); //用户协议容量 - double sumCapacity = 0.00; - if (CollectionUtil.isEmpty(calParam.getUserList())){ + double sumCapacity = carryCapacityUserPO.getProtocolCapacity(); - throw new BusinessException(AdvanceResponseEnum.USER_LOST); - - }else { - sumCapacity = calParam.getUserList().stream().mapToDouble(CarryCapacityUserVO::getProtocolCapacity).sum(); - - } double rate = sumCapacity / calParam.getShortCapacity(); vo.setFirstResult(rate*100); CarryCapacityResultPO carryCapacityResultPO = new CarryCapacityResultPO(); 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.setEvaluateType(userType); carryCapacityResultPO.setStatus(1); @@ -962,7 +848,7 @@ public class CarryCapcityServiceImpl implements CarryCapcityService { carryCapacityResultPO.setStatus(1); if(rate<0.001){ - carryCapacityResultPO.setReslutLevel(6); + carryCapacityResultPO.setReslutLevel(1); carryCapacityResultPOService.save(carryCapacityResultPO); return vo; } @@ -974,18 +860,23 @@ public class CarryCapcityServiceImpl implements CarryCapcityService { //设备电压等级单位KV 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); //用户模式专变用户,公变用户 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 integerList = Stream.of( 3,5,7,9,11,13,15,17,19).collect(Collectors.toList()); - List 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(); 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->{ CarryCapacityDResultVO.CarryCapacityIResult carryCapacityIResultVO = new CarryCapacityDResultVO.CarryCapacityIResult(); - //低压侧 - Double I_h = I_1*(Double.valueOf(CarryingCapacityEnum.getValueByCode("CP_I_" + temp)))/100; - if(!DicDataEnum.YNyn.getCode().equals(connectionMode)&&temp%3==0){ - I_h =0.00; - }else { - //专变用户的话是经过变压器的高压侧进行考核,公变用户的正常是在低压侧进行考核 - if (DicDataEnum.SPECIAL_USER.getCode().equals(userMode)) { - I_h = I_h / (Double.valueOf(sacaleValue) * 1000 / userSacaleValue); + List Ilist = new ArrayList<>(); + devList.forEach(carryCapacityDevicePO -> { + DictData devScaledata = dicDataFeignClient.getDicDataById(carryCapacityDevicePO.getDevScale()).getData(); + Double devScaleValue = Float.valueOf(devScaledata.getValue())* (devScaledata.getCode().contains("k")?1:0.0001); + //基波电流I_1:设备容量(转成KVA*1000)*K(功率因数)(转成kW)/更号3*电压等级(转成Kv) + + Double I_1 = carryCapacityDevicePO.getProtocolCapacity()*1000*calParam.getK()/(Math.sqrt(3)*Double.valueOf(devScaleValue)); + //低压侧 + 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.setI(I_h); + carryCapacityIResultVO.setI(mergeI); double getUharm = PubUtils.getValueByMethod(overlimit, "getIharm", temp); carryCapacityIResultVO.setI_limit(getUharm); carryCapacityIResultList.add(carryCapacityIResultVO); @@ -1016,18 +922,32 @@ public class CarryCapcityServiceImpl implements CarryCapcityService { integerList.stream().forEach(temp->{ CarryCapacityDResultVO.CarryCapacityIResult carryCapacityIResultVO = new CarryCapacityDResultVO.CarryCapacityIResult(); - //低压侧 - Double I_h = I_1*(Double.valueOf(CarryingCapacityEnum.getValueByCode("EAF_I_" + temp)))/100; - if(!DicDataEnum.YNyn.getCode().equals(connectionMode)&&temp%3==0){ - I_h =0.00; - }else { - //专变用户的话是经过变压器的高压侧进行考核,公变用户的正常是在低压侧进行考核 - if (DicDataEnum.SPECIAL_USER.getCode().equals(userMode)) { - I_h = I_h / (Double.valueOf(sacaleValue) * 1000 / userSacaleValue); + List Ilist = new ArrayList<>(); + devList.forEach(carryCapacityDevicePO -> { + DictData devScaledata = dicDataFeignClient.getDicDataById(carryCapacityDevicePO.getDevScale()).getData(); + Double devScaleValue = Float.valueOf(devScaledata.getValue())* (devScaledata.getCode().contains("k")?1:0.0001); + //基波电流I_1:设备容量(转成KVA*1000)*K(功率因数)(转成kW)/更号3*电压等级(转成Kv) + Double I_1 = carryCapacityDevicePO.getProtocolCapacity()*1000*calParam.getK()/(Math.sqrt(3)*Double.valueOf(devScaleValue)); + //低压侧 + 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.setI(I_h); + carryCapacityIResultVO.setI(mergeI); double getUharm = PubUtils.getValueByMethod(overlimit, "getIharm", temp); carryCapacityIResultVO.setI_limit(getUharm); carryCapacityIResultList.add(carryCapacityIResultVO); @@ -1036,22 +956,33 @@ public class CarryCapcityServiceImpl implements CarryCapcityService { } else if (DicDataEnum.Electrified_Rail_Users.getCode().equals(code)) { integerList.stream().forEach(temp->{ - if(temp%2==0){ - return; - } CarryCapacityDResultVO.CarryCapacityIResult carryCapacityIResultVO = new CarryCapacityDResultVO.CarryCapacityIResult(); - //低压侧 - Double I_h = I_1*(Double.valueOf(CarryingCapacityEnum.getValueByCode("ER_I_" + temp)))/100; - if(!DicDataEnum.YNyn.getCode().equals(connectionMode)&&temp%3==0){ - I_h =0.00; - }else { - //专变用户的话是经过变压器的高压侧进行考核,公变用户的正常是在低压侧进行考核 - if (DicDataEnum.SPECIAL_USER.getCode().equals(userMode)) { - I_h = I_h / (Double.valueOf(sacaleValue) * 1000 / userSacaleValue); + List Ilist = new ArrayList<>(); + devList.forEach(carryCapacityDevicePO -> { + DictData devScaledata = dicDataFeignClient.getDicDataById(carryCapacityDevicePO.getDevScale()).getData(); + Double devScaleValue = Float.valueOf(devScaledata.getValue())* (devScaledata.getCode().contains("k")?1:0.0001); + //基波电流I_1:设备容量(转成KVA*1000)*K(功率因数)(转成kW)/更号3*电压等级(转成Kv) + Double I_1 = carryCapacityDevicePO.getProtocolCapacity()*1000*calParam.getK()/(Math.sqrt(3)*Double.valueOf(devScaleValue)); + //低压侧 + 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.setI(I_h); + carryCapacityIResultVO.setI(mergeI); double getUharm = PubUtils.getValueByMethod(overlimit, "getIharm", temp); carryCapacityIResultVO.setI_limit(getUharm); carryCapacityIResultList.add(carryCapacityIResultVO); @@ -1059,13 +990,34 @@ public class CarryCapcityServiceImpl implements CarryCapcityService { } vo.setIResultList(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); return vo; } + private Double mergeIList(List 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{ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/utils/NjcnDateUtils.java b/pqs-common/common-core/src/main/java/com/njcn/common/utils/NjcnDateUtils.java index ec16a9720..102db0b2a 100644 --- a/pqs-common/common-core/src/main/java/com/njcn/common/utils/NjcnDateUtils.java +++ b/pqs-common/common-core/src/main/java/com/njcn/common/utils/NjcnDateUtils.java @@ -65,4 +65,33 @@ public class NjcnDateUtils { } 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; + } }