diff --git a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/DevModelFeignClient.java b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/DevModelFeignClient.java index 12d2496f6..f9fd325d3 100644 --- a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/DevModelFeignClient.java +++ b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/DevModelFeignClient.java @@ -3,6 +3,7 @@ package com.njcn.algorithm.api; import com.njcn.algorithm.api.fallback.DevModelFeignClientFallbackFactory; import com.njcn.algorithm.pojo.param.CsDevModelAddParm; import com.njcn.algorithm.pojo.param.CsDevModelQueryListParm; +import com.njcn.algorithm.pojo.po.CsDevModelPO; import com.njcn.algorithm.pojo.vo.CsDevModelPageVO; import com.njcn.common.pojo.constant.ServerInfo; import com.njcn.common.pojo.response.HttpResult; @@ -19,7 +20,7 @@ import org.springframework.web.bind.annotation.RequestBody; public interface DevModelFeignClient { @PostMapping("/addDevModel") - HttpResult addDevModel(@RequestBody @Validated CsDevModelAddParm csDevModelAddParm); + HttpResult addDevModel(@RequestBody @Validated CsDevModelAddParm csDevModelAddParm); @PostMapping("/queryDevModelOne") HttpResult queryDevModelOne(@RequestBody CsDevModelQueryListParm csDevModelQueryListParm); diff --git a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/EquipmentFeignClient.java b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/EquipmentFeignClient.java index 61f192864..d69fec602 100644 --- a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/EquipmentFeignClient.java +++ b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/EquipmentFeignClient.java @@ -18,4 +18,7 @@ public interface EquipmentFeignClient { @PostMapping("/queryEquipmentByndid") HttpResult queryEquipmentByndid(@RequestParam("ndid") String ndid); + @PostMapping("/updateStatusBynDid") + HttpResult updateStatusBynDid(@RequestParam("nDId") String nDid,@RequestParam("status") Integer status); + } diff --git a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/fallback/DevModelFeignClientFallbackFactory.java b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/fallback/DevModelFeignClientFallbackFactory.java index d3e24b9c1..a688fed43 100644 --- a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/fallback/DevModelFeignClientFallbackFactory.java +++ b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/fallback/DevModelFeignClientFallbackFactory.java @@ -3,6 +3,7 @@ package com.njcn.algorithm.api.fallback; import com.njcn.algorithm.api.DevModelFeignClient; import com.njcn.algorithm.pojo.param.CsDevModelAddParm; import com.njcn.algorithm.pojo.param.CsDevModelQueryListParm; +import com.njcn.algorithm.pojo.po.CsDevModelPO; import com.njcn.algorithm.pojo.vo.CsDevModelPageVO; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; @@ -35,7 +36,7 @@ public class DevModelFeignClientFallbackFactory implements FallbackFactory addDevModel(CsDevModelAddParm csDevModelAddParm) { + public HttpResult addDevModel(CsDevModelAddParm csDevModelAddParm) { log.error("{}异常,降级处理,异常为:{}","新增装置模板版本信息",cause.toString()); throw new BusinessException(finalExceptionEnum); } diff --git a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/fallback/EquipmentFeignClientFallbackFactory.java b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/fallback/EquipmentFeignClientFallbackFactory.java index d204e56fc..52a5fdb99 100644 --- a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/fallback/EquipmentFeignClientFallbackFactory.java +++ b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/api/fallback/EquipmentFeignClientFallbackFactory.java @@ -8,6 +8,7 @@ import com.njcn.common.pojo.response.HttpResult; import feign.hystrix.FallbackFactory; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.RequestParam; /** * @author xy @@ -31,6 +32,12 @@ public class EquipmentFeignClientFallbackFactory implements FallbackFactory updateStatusBynDid(String nDid, Integer status) { + log.error("{}异常,降级处理,异常为:{}","通过ndid修改装置的状态",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } }; } } diff --git a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/enums/AlgorithmResponseEnum.java b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/enums/AlgorithmResponseEnum.java index 8b6dad52f..282daa43d 100644 --- a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/enums/AlgorithmResponseEnum.java +++ b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/enums/AlgorithmResponseEnum.java @@ -17,7 +17,7 @@ public enum AlgorithmResponseEnum { PROJECT_COMMON_ERROR("A00500","同一用户下项目名不能相同"), DICT_DATA_ERROR("A00501","暂无此字典表类型"), NDID_ERROR("A00502","存在相同的ndid"), - + DATA_ERROR("A00503","存在相同的数据"), ; diff --git a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDataEffectiveAddParm.java b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDataEffectiveAddParm.java new file mode 100644 index 000000000..0f96759e6 --- /dev/null +++ b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDataEffectiveAddParm.java @@ -0,0 +1,57 @@ +package com.njcn.algorithm.pojo.param; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotBlank; +import java.util.Date; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 9:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ + + +@ApiModel(value="装置数据有效性新增model") +@Data +public class CsDataEffectiveAddParm { + /** + * 项目id + */ + @ApiModelProperty(value="项目id") + @NotBlank(message="项目id不能为空!") + private String projectId; + + /** + * 设备id + */ + @ApiModelProperty(value="设备id") + @NotBlank(message="设备id不能为空!") + private String devId; + + /** + * 注册时间 + */ + @ApiModelProperty(value="注册时间") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date registerTime; + + /** + * 退役时间 + */ + @ApiModelProperty(value="退役时间") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date retireeTime; + + +} \ No newline at end of file diff --git a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDataEffectiveAuditParm.java b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDataEffectiveAuditParm.java new file mode 100644 index 000000000..52af8480f --- /dev/null +++ b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDataEffectiveAuditParm.java @@ -0,0 +1,62 @@ +package com.njcn.algorithm.pojo.param; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotBlank; +import java.util.Date; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 9:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ + + +@ApiModel(value="装置数据有效性修改model") +@Data +public class CsDataEffectiveAuditParm { + + + @ApiModelProperty(value = "id") + @NotBlank(message="id不能为空!") + private String id; + /** + * 项目id + */ + @ApiModelProperty(value="项目id") + @NotBlank(message="项目id不能为空!") + private String projectId; + + /** + * 设备id + */ + @ApiModelProperty(value="设备id") + @NotBlank(message="设备id不能为空!") + private String devId; + + /** + * 注册时间 + */ + @ApiModelProperty(value="注册时间") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date registerTime; + + /** + * 退役时间 + */ + @ApiModelProperty(value="退役时间") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date retireeTime; + + +} \ No newline at end of file diff --git a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDataEffectiveQueryParm.java b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDataEffectiveQueryParm.java new file mode 100644 index 000000000..1063692a5 --- /dev/null +++ b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDataEffectiveQueryParm.java @@ -0,0 +1,39 @@ +package com.njcn.algorithm.pojo.param; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 9:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ + + +@ApiModel(value="装置数据查询有效性model") +@Data +public class CsDataEffectiveQueryParm { + + @ApiModelProperty(value = "id") + private String id; + /** + * 项目id + */ + @ApiModelProperty(value="项目id") + private String projectId; + + /** + * 设备id + */ + @ApiModelProperty(value="设备id") + private String devId; + + + + +} \ No newline at end of file diff --git a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDevModelRelationAddParm.java b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDevModelRelationAddParm.java new file mode 100644 index 000000000..0e95b91bf --- /dev/null +++ b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDevModelRelationAddParm.java @@ -0,0 +1,32 @@ +package com.njcn.algorithm.pojo.param; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 13:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@ApiModel(value="装置与模板表新增Model") +@Data +public class CsDevModelRelationAddParm { + + + @ApiModelProperty(value="装置 id") + @NotNull(message="装置 id不能为空!") + private String devId; + + @ApiModelProperty(value="模板 id") + @NotNull(message="模板 id不能为空!") + private String modelId; + + +} \ No newline at end of file diff --git a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDevModelRelationAuidtParm.java b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDevModelRelationAuidtParm.java new file mode 100644 index 000000000..c2be7e2f3 --- /dev/null +++ b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDevModelRelationAuidtParm.java @@ -0,0 +1,32 @@ +package com.njcn.algorithm.pojo.param; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 13:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@ApiModel(value="装置与模板表修改Model") +@Data +public class CsDevModelRelationAuidtParm { + @NotBlank(message="id不能为空!") + @ApiModelProperty(value="id") + private String id; + @NotBlank(message="装置id不能为空!") + private String devId; + + @ApiModelProperty(value="模板 id") + private String modelId; + + @ApiModelProperty(value="状态(0:删除 1:正常)") + private String status; +} \ No newline at end of file diff --git a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDevModelRelationQueryParm.java b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDevModelRelationQueryParm.java new file mode 100644 index 000000000..16450617b --- /dev/null +++ b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/CsDevModelRelationQueryParm.java @@ -0,0 +1,28 @@ +package com.njcn.algorithm.pojo.param; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 13:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class CsDevModelRelationQueryParm { + + @ApiModelProperty(value="id") + private String id; + @ApiModelProperty(value="装置 id") + private String devId; + + @ApiModelProperty(value="模板 id") + private String modelId; + + @ApiModelProperty(value="状态(0:删除 1:正常)") + private String status; +} \ No newline at end of file diff --git a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/po/CsDataEffectivePO.java b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/po/CsDataEffectivePO.java new file mode 100644 index 000000000..cb0bae0c8 --- /dev/null +++ b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/po/CsDataEffectivePO.java @@ -0,0 +1,62 @@ +package com.njcn.algorithm.pojo.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.fasterxml.jackson.annotation.JsonFormat; +import com.njcn.db.bo.BaseEntity; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 9:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +/** + * 装置数据有效性表 + */ +@Data +@TableName(value = "cs_data_effective") +public class CsDataEffectivePO extends BaseEntity { + + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + /** + * 项目id + */ + @TableField(value = "project_id") + private String projectId; + + /** + * 设备id + */ + @TableField(value = "dev_id") + private String devId; + + /** + * 注册时间 + */ + @TableField(value = "register_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date registerTime; + + /** + * 退役时间 + */ + @TableField(value = "retiree_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date retireeTime; + + +} \ No newline at end of file diff --git a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/po/CsDevModelRelationPO.java b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/po/CsDevModelRelationPO.java new file mode 100644 index 000000000..9714e7701 --- /dev/null +++ b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/po/CsDevModelRelationPO.java @@ -0,0 +1,41 @@ +package com.njcn.algorithm.pojo.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 io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 13:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@TableName(value = "cs_dev_model_relation") +public class CsDevModelRelationPO extends BaseEntity { + /** + * id + */ + @TableId(value = "id",type = IdType.ASSIGN_UUID) + private String id; + + @TableField(value = "dev_id") + private String devId; + + @TableField(value = "model_id") + private String modelId; + + /** + * 状态(0:删除 1:正常) + */ + @TableField(value = "status") + @ApiModelProperty(value="状态(0:删除 1:正常)") + private String status; +} \ No newline at end of file diff --git a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/vo/CsDataEffectiveVO.java b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/vo/CsDataEffectiveVO.java new file mode 100644 index 000000000..23bd555d0 --- /dev/null +++ b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/vo/CsDataEffectiveVO.java @@ -0,0 +1,58 @@ +package com.njcn.algorithm.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.njcn.db.bo.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 9:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ + + +@ApiModel(value="装置数据Modle") +@Data +public class CsDataEffectiveVO extends BaseEntity { + + @ApiModelProperty(value = "id") + private String id; + /** + * 项目id + */ + @ApiModelProperty(value="项目id") + private String projectId; + + /** + * 设备id + */ + @ApiModelProperty(value="设备id") + private String devId; + + /** + * 注册时间 + */ + @ApiModelProperty(value="注册时间") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date registerTime; + + /** + * 退役时间 + */ + @ApiModelProperty(value="退役时间") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date retireeTime; + + +} \ No newline at end of file diff --git a/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/vo/CsDevModelRelationVO.java b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/vo/CsDevModelRelationVO.java new file mode 100644 index 000000000..bd602d7ad --- /dev/null +++ b/pqs-algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/vo/CsDevModelRelationVO.java @@ -0,0 +1,37 @@ +package com.njcn.algorithm.pojo.vo; + +import com.njcn.db.bo.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 13:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@ApiModel(value="装置与模板表的对应Model") +@Data +public class CsDevModelRelationVO extends BaseEntity { + /** + * id + */ + @ApiModelProperty(value="id") + private String id; + + @ApiModelProperty(value="装置 id") + private String devId; + + @ApiModelProperty(value="模板 id") + private String modelId; + + /** + * 状态(0:删除 1:正常) + */ + @ApiModelProperty(value="状态(0:删除 1:正常)") + private String status; +} \ No newline at end of file diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/Equipment/DevModelController.java b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/Equipment/DevModelController.java index a68f57fb5..f3e2725f0 100644 --- a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/Equipment/DevModelController.java +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/Equipment/DevModelController.java @@ -5,6 +5,7 @@ import com.njcn.algorithm.pojo.param.CsDevModelAddParm; import com.njcn.algorithm.pojo.param.CsDevModelAuditParm; import com.njcn.algorithm.pojo.param.CsDevModelQueryListParm; import com.njcn.algorithm.pojo.param.CsDevModelQueryParm; +import com.njcn.algorithm.pojo.po.CsDevModelPO; import com.njcn.algorithm.pojo.vo.CsDevModelPageVO; import com.njcn.algorithm.service.CsDevModelService; import com.njcn.common.pojo.annotation.OperateInfo; @@ -45,10 +46,9 @@ public class DevModelController extends BaseController { @PostMapping("/addDevModel") @ApiOperation("新增设备模板") @ApiImplicitParam(name = "csDevModelAddParm", value = "新增设备模板参数", required = true) - public HttpResult addDevModel(@RequestBody @Validated CsDevModelAddParm csDevModelAddParm){ + public HttpResult addDevModel(@RequestBody @Validated CsDevModelAddParm csDevModelAddParm){ String methodDescribe = getMethodDescribe("addDevModel"); - - Boolean flag = csDevModelService.addDevModel (csDevModelAddParm); + CsDevModelPO flag = csDevModelService.addDevModel (csDevModelAddParm); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); } diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/Equipment/DevModelRelationController.java b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/Equipment/DevModelRelationController.java new file mode 100644 index 000000000..a330a5450 --- /dev/null +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/Equipment/DevModelRelationController.java @@ -0,0 +1,84 @@ +package com.njcn.algorithm.controller.Equipment; + +import com.njcn.algorithm.pojo.param.CsDevModelRelationAddParm; +import com.njcn.algorithm.pojo.param.CsDevModelRelationAuidtParm; +import com.njcn.algorithm.pojo.param.CsDevModelRelationQueryParm; +import com.njcn.algorithm.pojo.po.CsDevModelRelationPO; +import com.njcn.algorithm.pojo.vo.CsDevModelRelationVO; +import com.njcn.algorithm.service.CsDevModelRelationService; +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.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/3/27 15:31【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Slf4j +@RestController +@RequestMapping("/devmodelRelation") +@Api(tags = "设备模板关联") +@AllArgsConstructor +public class DevModelRelationController extends BaseController { + + private final CsDevModelRelationService csDevModelRelationService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/addDevModelRelation") + @ApiOperation("绑定设备与模板") + @ApiImplicitParam(name = "addParm", value = "新增参数", required = true) + public HttpResult addDevModelRelation(@RequestBody @Validated CsDevModelRelationAddParm addParm){ + String methodDescribe = getMethodDescribe("addDevModelRelation"); + CsDevModelRelationPO flag = csDevModelRelationService.addDevModelRelation (addParm); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/AuditDevModelRelation") + @ApiOperation("更新/删除出厂设备") + @ApiImplicitParam(name = "auditParm", value = "更新/删除参数", required = true) + public HttpResult AuditDevModelRelation(@RequestBody @Validated CsDevModelRelationAuidtParm auditParm ){ + String methodDescribe = getMethodDescribe("AuditDevModelRelation"); + + Boolean flag = csDevModelRelationService.AuditDevModelRelation(auditParm); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } + + + + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/queryDevModelRelationList") + @ApiOperation("设备模板查询") + @ApiImplicitParam(name = "queryParm", value = "查询参数", required = true) + public HttpResult> queryDevModelRelationList(@RequestBody CsDevModelRelationQueryParm queryParm){ + String methodDescribe = getMethodDescribe("queryDevModelRelationList"); + + List list = csDevModelRelationService.queryDevModelRelation(queryParm); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + + +} diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/Equipment/EquipmentDeliveryController.java b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/Equipment/EquipmentDeliveryController.java index 9d816f355..3258486f1 100644 --- a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/Equipment/EquipmentDeliveryController.java +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/Equipment/EquipmentDeliveryController.java @@ -15,6 +15,7 @@ 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.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -95,6 +96,18 @@ public class EquipmentDeliveryController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, projectEquipmentVOS, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/updateStatusBynDid") + @ApiOperation("根据网关id调整设备状态") + @ApiImplicitParams({ + @ApiImplicitParam(name = "nDId", value = "网关id", required = true), + @ApiImplicitParam(name = "status", value = "状态", required = true) + }) + public HttpResult updateStatusBynDid(@RequestParam("nDId") String nDid,@RequestParam("status") Integer status){ + String methodDescribe = getMethodDescribe("updateStatusBynDid"); + csEquipmentDeliveryService.updateStatusBynDid(nDid,status); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } } diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/data/DataEffectiveController.java b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/data/DataEffectiveController.java new file mode 100644 index 000000000..e4be2dd9f --- /dev/null +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/data/DataEffectiveController.java @@ -0,0 +1,79 @@ +package com.njcn.algorithm.controller.data; + +import com.njcn.algorithm.pojo.param.CsDataEffectiveAddParm; +import com.njcn.algorithm.pojo.param.CsDataEffectiveAuditParm; +import com.njcn.algorithm.pojo.param.CsDataEffectiveQueryParm; +import com.njcn.algorithm.pojo.vo.AppBaseInformationVO; +import com.njcn.algorithm.pojo.vo.CsDataEffectiveVO; +import com.njcn.algorithm.service.CsDataEffectiveService; +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.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/4 9:02【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Slf4j +@RestController +@RequestMapping("/dataEffective") +@Api(tags = "数据有效性") +@AllArgsConstructor +public class DataEffectiveController extends BaseController { + + private final CsDataEffectiveService csDataEffectiveService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/addDataEffective") + @ApiOperation("新增app数据有效性表") + @ApiImplicitParam(name = "csDataEffectiveAddParm", value = "新增app数据有效性表参数", required = true) + public HttpResult addDataEffective(@RequestBody @Validated CsDataEffectiveAddParm csDataEffectiveAddParm){ + String methodDescribe = getMethodDescribe("addDataEffective"); + + boolean save = csDataEffectiveService.add (csDataEffectiveAddParm); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, save, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/auditDataEffective") + @ApiOperation("修改app数据有效性表") + @ApiImplicitParam(name = "auditParm", value = "修改app数据有效性表参数", required = true) + public HttpResult auditDataEffective(@RequestBody @Validated CsDataEffectiveAuditParm auditParm){ + String methodDescribe = getMethodDescribe("auditDataEffective"); + + boolean save = csDataEffectiveService.auditDataEffective (auditParm); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, save, methodDescribe); + } + + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/queryDataEffective") + @ApiOperation("查询app数据有效性表") + @ApiImplicitParam(name = "csDataEffectiveQueryParm", value = "查询app数据有效性表参数", required = true) + public HttpResult> queryDataEffective(@RequestBody @Validated CsDataEffectiveQueryParm csDataEffectiveQueryParm ){ + String methodDescribe = getMethodDescribe("queryDataEffective"); + AppBaseInformationVO appBaseInformationVO = new AppBaseInformationVO(); + List list = csDataEffectiveService.queryDataEffective(csDataEffectiveQueryParm); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } +} diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/dict/DictDataController.java b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/dict/DictDataController.java index c91df009c..5618d5c76 100644 --- a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/dict/DictDataController.java +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/dict/DictDataController.java @@ -1,23 +1,11 @@ package com.njcn.algorithm.controller.dict; -import com.njcn.algorithm.pojo.param.CsDictAddParm; -import com.njcn.algorithm.pojo.vo.CsDictVO; -import com.njcn.algorithm.service.CsDictService; -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.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** * Description: @@ -30,28 +18,28 @@ import java.util.List; @Slf4j @RestController @RequestMapping("/dict") -@Api(tags = "字典表") +@Api(tags = "字典表/表结构更改弃用") @AllArgsConstructor public class DictDataController extends BaseController { - private final CsDictService csDictService; - @OperateInfo(info = LogEnum.BUSINESS_COMMON) - @PostMapping("/addDict") - @ApiOperation("新增字典") - @ApiImplicitParam(name = "csDictAddParms", value = "新增项目参数", required = true) - public HttpResult addDict(@RequestBody @Validated List csDictAddParms){ - String methodDescribe = getMethodDescribe("addDictType"); - Boolean flag = csDictService.addDict(csDictAddParms); - - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); - } - @OperateInfo(info = LogEnum.BUSINESS_COMMON) - @PostMapping("/queryDictData") - @ApiOperation("查询字典") - @ApiImplicitParam(name = "dictType", value = "字典类型", required = true) - public HttpResult> queryDictData(@RequestParam("dictType")String dictType ){ - String methodDescribe = getMethodDescribe("queryDictData"); - List csDictVOList = csDictService.queryDictData(dictType); - - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csDictVOList, methodDescribe); - } +// private final CsDictService csDictService; +// @OperateInfo(info = LogEnum.BUSINESS_COMMON) +// @PostMapping("/addDict") +// @ApiOperation("新增字典") +// @ApiImplicitParam(name = "csDictAddParms", value = "新增项目参数", required = true) +// public HttpResult addDict(@RequestBody @Validated List csDictAddParms){ +// String methodDescribe = getMethodDescribe("addDictType"); +// Boolean flag = csDictService.addDict(csDictAddParms); +// +// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); +// } +// @OperateInfo(info = LogEnum.BUSINESS_COMMON) +// @PostMapping("/queryDictData") +// @ApiOperation("查询字典") +// @ApiImplicitParam(name = "dictType", value = "字典类型", required = true) +// public HttpResult> queryDictData(@RequestParam("dictType")String dictType ){ +// String methodDescribe = getMethodDescribe("queryDictData"); +// List csDictVOList = csDictService.queryDictData(dictType); +// +// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csDictVOList, methodDescribe); +// } } diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/mapper/CsDataEffectiveMapper.java b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/mapper/CsDataEffectiveMapper.java new file mode 100644 index 000000000..4f9bf8d4c --- /dev/null +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/mapper/CsDataEffectiveMapper.java @@ -0,0 +1,16 @@ +package com.njcn.algorithm.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.algorithm.pojo.po.CsDataEffectivePO; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 9:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface CsDataEffectiveMapper extends BaseMapper { +} \ No newline at end of file diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/mapper/CsDevModelRelationMapper.java b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/mapper/CsDevModelRelationMapper.java new file mode 100644 index 000000000..2e8cfc918 --- /dev/null +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/mapper/CsDevModelRelationMapper.java @@ -0,0 +1,16 @@ +package com.njcn.algorithm.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.algorithm.pojo.po.CsDevModelRelationPO; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 13:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface CsDevModelRelationMapper extends BaseMapper { +} \ No newline at end of file diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/mapper/mapping/CsDataEffectiveMapper.xml b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/mapper/mapping/CsDataEffectiveMapper.xml new file mode 100644 index 000000000..815f42c47 --- /dev/null +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/mapper/mapping/CsDataEffectiveMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + project_id, dev_id, register_time, retiree_time, create_by, create_time, update_by, + update_time + + \ No newline at end of file diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/mapper/mapping/CsDevModelRelationMapper.xml b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/mapper/mapping/CsDevModelRelationMapper.xml new file mode 100644 index 000000000..511be2730 --- /dev/null +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/mapper/mapping/CsDevModelRelationMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + id, dev_id, `model id`, create_by, create_time, update_by, update_time, `status` + + \ No newline at end of file diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/CsDataEffectiveService.java b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/CsDataEffectiveService.java new file mode 100644 index 000000000..f251e1700 --- /dev/null +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/CsDataEffectiveService.java @@ -0,0 +1,47 @@ +package com.njcn.algorithm.service; + +import com.njcn.algorithm.pojo.param.CsDataEffectiveAddParm; +import com.njcn.algorithm.pojo.param.CsDataEffectiveAuditParm; +import com.njcn.algorithm.pojo.param.CsDataEffectiveQueryParm; +import com.njcn.algorithm.pojo.po.CsDataEffectivePO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.algorithm.pojo.vo.CsDataEffectiveVO; + +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 9:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface CsDataEffectiveService extends IService{ + + /** + * @Description: add + * @Param: [csDataEffectiveAddParm] + * @return: boolean + * @Author: clam + * @Date: 2023/4/18 + */ + boolean add(CsDataEffectiveAddParm csDataEffectiveAddParm); + /** + * @Description: queryDataEffective + * @Param: [csDataEffectiveQueryParm] + * @return: java.util.List + * @Author: clam + * @Date: 2023/4/18 + */ + List queryDataEffective(CsDataEffectiveQueryParm csDataEffectiveQueryParm); + /** + * @Description: auditDataEffective + * @Param: [auditParm] + * @return: boolean + * @Author: clam + * @Date: 2023/4/18 + */ + boolean auditDataEffective(CsDataEffectiveAuditParm auditParm); +} diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/CsDevModelRelationService.java b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/CsDevModelRelationService.java new file mode 100644 index 000000000..6fcac744f --- /dev/null +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/CsDevModelRelationService.java @@ -0,0 +1,41 @@ +package com.njcn.algorithm.service; + +import com.njcn.algorithm.pojo.param.CsDevModelRelationAddParm; +import com.njcn.algorithm.pojo.param.CsDevModelRelationAuidtParm; +import com.njcn.algorithm.pojo.param.CsDevModelRelationQueryParm; +import com.njcn.algorithm.pojo.po.CsDevModelRelationPO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.algorithm.pojo.vo.CsDevModelRelationVO; + +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 13:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface CsDevModelRelationService extends IService{ + + /** + * @Description: addDevModelRelation + * @Param: [addParm] + * @return: com.njcn.algorithm.pojo.po.CsDevModelRelationPO + * @Author: clam + * @Date: 2023/4/18 + */ + CsDevModelRelationPO addDevModelRelation(CsDevModelRelationAddParm addParm); + /** + * @Description: AuditDevModelRelation + * @Param: [auditParm] + * @return: java.lang.Boolean + * @Author: clam + * @Date: 2023/4/18 + */ + Boolean AuditDevModelRelation(CsDevModelRelationAuidtParm auditParm); + + List queryDevModelRelation(CsDevModelRelationQueryParm queryParm); + } diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/CsDevModelService.java b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/CsDevModelService.java index e938b4481..54e158556 100644 --- a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/CsDevModelService.java +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/CsDevModelService.java @@ -26,8 +26,8 @@ public interface CsDevModelService extends IService{ * @return: java.lang.Boolean * @Author: clam * @Date: 2023/4/10 - */ - Boolean addDevModel(CsDevModelAddParm csDevModelAddParm); + */ + CsDevModelPO addDevModel(CsDevModelAddParm csDevModelAddParm); /** * @Description: AuditDevModel * @Param: [csDevModelAuditParm] diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/CsEquipmentDeliveryService.java b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/CsEquipmentDeliveryService.java index 1e7e7e54c..dce9a4973 100644 --- a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/CsEquipmentDeliveryService.java +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/CsEquipmentDeliveryService.java @@ -54,4 +54,10 @@ public interface CsEquipmentDeliveryService extends IService queryEquipmentByProject(ProjectEquipmentQueryParm projectEquipmentQueryParm); Boolean updateEquipmentDelivery(CsEquipmentDeliveryAuditParm csEquipmentDeliveryAuditParm); + + /** + * 根据网关id修改装置的状态 + * @param nDid 网关id + */ + void updateStatusBynDid(String nDid,Integer status); } diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/impl/CsDataEffectiveServiceImpl.java b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/impl/CsDataEffectiveServiceImpl.java new file mode 100644 index 000000000..b5b9c73bb --- /dev/null +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/impl/CsDataEffectiveServiceImpl.java @@ -0,0 +1,84 @@ +package com.njcn.algorithm.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.algorithm.enums.AlgorithmResponseEnum; +import com.njcn.algorithm.mapper.CsDataEffectiveMapper; +import com.njcn.algorithm.pojo.param.CsDataEffectiveAddParm; +import com.njcn.algorithm.pojo.param.CsDataEffectiveAuditParm; +import com.njcn.algorithm.pojo.param.CsDataEffectiveQueryParm; +import com.njcn.algorithm.pojo.po.CsDataEffectivePO; +import com.njcn.algorithm.pojo.vo.CsDataEffectiveVO; +import com.njcn.algorithm.service.CsDataEffectiveService; +import com.njcn.common.pojo.exception.BusinessException; +import org.apache.commons.lang.StringUtils; +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; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 9:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class CsDataEffectiveServiceImpl extends ServiceImpl implements CsDataEffectiveService{ + + @Override + @Transactional(rollbackFor = {Exception.class}) + public boolean add(CsDataEffectiveAddParm csDataEffectiveAddParm) { + + CsDataEffectiveQueryParm csDataEffectiveQueryParm = new CsDataEffectiveQueryParm(); + csDataEffectiveQueryParm.setDevId (csDataEffectiveAddParm.getDevId ()); + csDataEffectiveQueryParm.setProjectId (csDataEffectiveAddParm.getProjectId ()); + List list = this.queryDataEffective (csDataEffectiveQueryParm); + if(list.size ()>0){ + throw new BusinessException (AlgorithmResponseEnum.DATA_ERROR); + } + CsDataEffectivePO csDataEffectivePO = new CsDataEffectivePO (); + + BeanUtils.copyProperties (csDataEffectiveAddParm, csDataEffectivePO); + boolean save = this.save (csDataEffectivePO); + return save; + } + + @Override + public List queryDataEffective(CsDataEffectiveQueryParm csDataEffectiveQueryParm) { + QueryWrapper queryWrapper = new QueryWrapper<> (); + queryWrapper.eq (StringUtils.isNotBlank (csDataEffectiveQueryParm.getId ()),"id",csDataEffectiveQueryParm.getId ()). + eq (StringUtils.isNotBlank (csDataEffectiveQueryParm.getProjectId ()),"project_id",csDataEffectiveQueryParm.getProjectId ()). + eq (StringUtils.isNotBlank (csDataEffectiveQueryParm.getDevId ()),"dev_id",csDataEffectiveQueryParm.getDevId ()); + List csDataEffectivePOS = this.getBaseMapper ( ).selectList (queryWrapper); + List collect = csDataEffectivePOS.stream ( ).map (temp -> { + CsDataEffectiveVO vo = new CsDataEffectiveVO ( ); + BeanUtils.copyProperties (temp, vo); + return vo; + }).collect (Collectors.toList ( )); + return collect; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean auditDataEffective(CsDataEffectiveAuditParm auditParm) { + CsDataEffectiveQueryParm csDataEffectiveQueryParm = new CsDataEffectiveQueryParm(); + csDataEffectiveQueryParm.setDevId (auditParm.getDevId ()); + csDataEffectiveQueryParm.setProjectId (auditParm.getProjectId ()); + List list = this.queryDataEffective (csDataEffectiveQueryParm); + if(list.size ()>0){ + throw new BusinessException (AlgorithmResponseEnum.DATA_ERROR); + } + CsDataEffectivePO csDataEffectivePO = new CsDataEffectivePO (); + + BeanUtils.copyProperties (auditParm, csDataEffectivePO); + boolean flag = this.updateById (csDataEffectivePO); + return flag; + } + +} diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/impl/CsDevModelRelationServiceImpl.java b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/impl/CsDevModelRelationServiceImpl.java new file mode 100644 index 000000000..c124a5f50 --- /dev/null +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/impl/CsDevModelRelationServiceImpl.java @@ -0,0 +1,90 @@ +package com.njcn.algorithm.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.algorithm.enums.AlgorithmResponseEnum; +import com.njcn.algorithm.mapper.CsDevModelRelationMapper; +import com.njcn.algorithm.pojo.param.CsDevModelRelationAddParm; +import com.njcn.algorithm.pojo.param.CsDevModelRelationAuidtParm; +import com.njcn.algorithm.pojo.param.CsDevModelRelationQueryParm; +import com.njcn.algorithm.pojo.po.CsDevModelRelationPO; +import com.njcn.algorithm.pojo.vo.CsDevModelRelationVO; +import com.njcn.algorithm.service.CsDevModelRelationService; +import com.njcn.common.pojo.exception.BusinessException; +import org.apache.commons.lang.StringUtils; +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; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/4/18 13:49【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class CsDevModelRelationServiceImpl extends ServiceImpl implements CsDevModelRelationService{ + + @Override + @Transactional(rollbackFor = Exception.class) + public CsDevModelRelationPO addDevModelRelation(CsDevModelRelationAddParm addParm) { + CsDevModelRelationQueryParm queryParm = new CsDevModelRelationQueryParm(); + queryParm.setDevId (addParm.getDevId ()); + queryParm.setModelId (addParm.getModelId ()); + queryParm.setStatus ("1"); + List csDevModelRelationVOS = this.queryDevModelRelation (queryParm); + if(csDevModelRelationVOS.size ()>0){ + throw new BusinessException (AlgorithmResponseEnum.DATA_ERROR); + + } + CsDevModelRelationPO csDevModelRelationPO = new CsDevModelRelationPO(); + BeanUtils.copyProperties (addParm, csDevModelRelationPO); + csDevModelRelationPO.setStatus ("1"); + this.save (csDevModelRelationPO); + return csDevModelRelationPO; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean AuditDevModelRelation(CsDevModelRelationAuidtParm auditParm) { + CsDevModelRelationQueryParm queryParm = new CsDevModelRelationQueryParm(); + queryParm.setId (auditParm.getId ()); + List csDevModelRelationVOS = this.queryDevModelRelation (queryParm); + CsDevModelRelationVO csDevModelRelationVO = csDevModelRelationVOS.get (0); + CsDevModelRelationQueryParm queryParm2 = new CsDevModelRelationQueryParm(); + queryParm2.setDevId (StringUtils.isNotBlank (auditParm.getDevId ())?auditParm.getDevId ():csDevModelRelationVO.getDevId ()); + queryParm2.setModelId (StringUtils.isNotBlank (auditParm.getModelId ())?auditParm.getModelId ():csDevModelRelationVO.getModelId ()); + queryParm2.setStatus ("1"); + List csDevModelRelationVOS2 = this.queryDevModelRelation (queryParm2); + if(csDevModelRelationVOS.size ()>0){ + throw new BusinessException (AlgorithmResponseEnum.DATA_ERROR); + } + CsDevModelRelationPO csDevModelRelationPO = new CsDevModelRelationPO(); + BeanUtils.copyProperties (auditParm, csDevModelRelationPO); + boolean b = this.updateById (csDevModelRelationPO); + return b; + } + + @Override + public List queryDevModelRelation(CsDevModelRelationQueryParm queryParm) { + QueryWrapper queryWrapper = new QueryWrapper<> (); + queryWrapper.eq (StringUtils.isNotBlank (queryParm.getId ()),"id",queryParm.getId ()). + eq (StringUtils.isNotBlank (queryParm.getModelId ()),"model_id",queryParm.getModelId ()). + eq (StringUtils.isNotBlank (queryParm.getDevId ()),"dev_id",queryParm.getDevId ()). + eq (StringUtils.isNotBlank (queryParm.getStatus ()),"status",queryParm.getStatus ()); + + List csDevModelRelationPOS = this.getBaseMapper ( ).selectList (queryWrapper); + List collect = csDevModelRelationPOS.stream ( ).map (temp -> { + CsDevModelRelationVO vo = new CsDevModelRelationVO ( ); + BeanUtils.copyProperties (temp, vo); + return vo; + }).collect (Collectors.toList ( )); + return collect; + } +} diff --git a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/impl/CsDevModelServiceImpl.java b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/impl/CsDevModelServiceImpl.java index b77bf3a1e..7c949fbcf 100644 --- a/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/impl/CsDevModelServiceImpl.java +++ b/pqs-algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/impl/CsDevModelServiceImpl.java @@ -29,13 +29,12 @@ public class CsDevModelServiceImpl extends ServiceImpl lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.set(CsEquipmentDeliveryPO::getStatus,status).eq(CsEquipmentDeliveryPO::getNdid,nDId); + this.update(lambdaUpdateWrapper); + } + } diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/DeviceParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/DeviceParam.java index b5200bc17..e032ce032 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/DeviceParam.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/DeviceParam.java @@ -9,6 +9,7 @@ import lombok.Data; import org.hibernate.validator.constraints.Range; import javax.validation.Valid; +import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; @@ -118,6 +119,7 @@ public class DeviceParam { @ApiModelProperty(name = "sort",value = "排序",required = true) @NotNull(message = "排序不可为空") + @Min(value = 0,message = "排序格式有误") private Integer sort; diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/GdInformationParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/GdInformationParam.java index 4e8365c1f..35d93ab31 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/GdInformationParam.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/GdInformationParam.java @@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; @@ -29,6 +30,7 @@ public class GdInformationParam { @ApiModelProperty(name = "sort",value = "排序",required = true) @NotNull(message = "排序不可为空") + @Min(value = 0,message = "排序格式有误") private Integer sort; /** diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LineParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LineParam.java index ab1b26cd5..b8c7caf0f 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LineParam.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LineParam.java @@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.hibernate.validator.constraints.Range; +import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; @@ -33,6 +34,7 @@ public class LineParam { */ @ApiModelProperty(name = "pt1",value = "PT一次变比",required = true) @NotNull(message = "PT一次变比不可为空") + @Min(value = 1,message = "PT一次变比最小值应大于等于1") private Float pt1; /** @@ -40,6 +42,7 @@ public class LineParam { */ @ApiModelProperty(name = "pt2",value = "PT二次变比",required = true) @NotNull(message = "PT二次变比不可为空") + @Min(value = 1,message = "PT二次变比最小值应大于等于1") private Float pt2; /** @@ -47,6 +50,7 @@ public class LineParam { */ @ApiModelProperty(name = "ct1",value = "CT一次变比",required = true) @NotNull(message = "CT一次变比不可为空") + @Min(value = 1,message = "CT一次变比最小值应大于等于1") private Float ct1; /** @@ -54,6 +58,7 @@ public class LineParam { */ @ApiModelProperty(name = "ct2",value = "CT二次变比",required = true) @NotNull(message = "CT二次变比不可为空") + @Min(value = 1,message = "CT二次变比最小值应大于等于1") private Float ct2; /** @@ -61,6 +66,7 @@ public class LineParam { */ @ApiModelProperty(name = "devCapacity",value = "设备容量",required = true) @NotNull(message = "设备容量不可为空") + @Min(value = 1,message = "设备容量格式有误") private Float devCapacity; /** @@ -68,6 +74,7 @@ public class LineParam { */ @ApiModelProperty(name = "shortCapacity",value = "短路容量",required = true) @NotNull(message = "短路容量不可为空") + @Min(value = 1,message = "设备容量格式有误") private Float shortCapacity; /** @@ -75,6 +82,7 @@ public class LineParam { */ @ApiModelProperty(name = "dealCapacity",value = "协议容量",required = true) @NotNull(message = "协议容量不可为空") + @Min(value = 1,message = "设备容量格式有误") private Float dealCapacity; /** @@ -82,6 +90,7 @@ public class LineParam { */ @ApiModelProperty(name = "standardCapacity",value = "基准容量新增时候可为空",required = true) @NotNull(message = "基准容量不可为空") + @Min(value = 1,message = "设备容量格式有误") private Float standardCapacity; @@ -117,6 +126,7 @@ public class LineParam { */ @ApiModelProperty(name = "ptType",value = "接线类型(0:星型接法;1:三角型接法;2:开口三角型接法)",required = true) @NotNull(message = "接线类型不可为空") + @Range(min = 0,max = 2,message = "接线类型有误") private Integer ptType; @ApiModelProperty(name = "num",value = "监测点序列",required = true) @@ -125,8 +135,9 @@ public class LineParam { @ApiModelProperty(name = "sort",value = "排序",required = true) @NotNull(message = "排序不可为空") + @Min(value = 0,message = "排序格式有误") private Integer sort; - + /** * 电压上偏差限值 */ diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/ProvinceParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/ProvinceParam.java index d72195f5a..7a774b49b 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/ProvinceParam.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/ProvinceParam.java @@ -8,6 +8,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; @@ -29,6 +30,7 @@ public class ProvinceParam { @ApiModelProperty(name = "sort",value = "排序",required = true) @NotNull(message = "排序不可为空") + @Min(value = 0,message = "排序格式有误") private Integer sort; /** diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/SubStationParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/SubStationParam.java index 9cab4ebbe..f538c923d 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/SubStationParam.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/SubStationParam.java @@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; @@ -31,6 +32,7 @@ public class SubStationParam { @ApiModelProperty(name = "sort",value = "排序",required = true) @NotNull(message = "排序不可为空") + @Min(value = 0,message = "排序格式有误") private Integer sort; /** diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/SubVoltageParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/SubVoltageParam.java index d30bafa65..705c17179 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/SubVoltageParam.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/SubVoltageParam.java @@ -7,6 +7,7 @@ import lombok.Data; import org.hibernate.validator.constraints.Range; import javax.validation.Valid; +import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; @@ -52,6 +53,7 @@ public class SubVoltageParam { @ApiModelProperty(name = "sort",value = "排序",required = true) @NotNull(message = "排序不可为空") + @Min(value = 0,message = "排序格式有误") private Integer sort; @ApiModelProperty(name = "lineParam",value = "监测点集合") diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/TerminalOnlineRateDataParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/TerminalOnlineRateDataParam.java index b42061be8..1ebf8637c 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/TerminalOnlineRateDataParam.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/TerminalOnlineRateDataParam.java @@ -21,13 +21,6 @@ public class TerminalOnlineRateDataParam extends DeviceInfoParam.BusinessParam{ - - /** - * 字段表监测点等级 - */ - @ApiModelProperty(name = "lineGrade",value = "字段表监测点等级,0:极重要 1:重要 2:普通 3:不重要") - private String lineGrade; - /** * 调用模块分类 */ diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/EventListVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/EventListVO.java new file mode 100644 index 000000000..4be42d7fb --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/EventListVO.java @@ -0,0 +1,30 @@ +package com.njcn.device.pq.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @version 1.0.0 + * @author: zbj + * @date: 2023/04/18 + */ +@Data +public class EventListVO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 结果集合 + */ + @ApiModelProperty("结果集合") + private List list; + + /** + * 总次数 + */ + @ApiModelProperty("总次数") + private Integer size; +} diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/MiddleLimitRateListVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/MiddleLimitRateListVO.java new file mode 100644 index 000000000..74581bb56 --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/MiddleLimitRateListVO.java @@ -0,0 +1,30 @@ +package com.njcn.device.pq.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @version 1.0.0 + * @author: zbj + * @date: 2023/04/18 + */ +@Data +public class MiddleLimitRateListVO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 结果集合 + */ + @ApiModelProperty("结果集合") + private List list; + + /** + * 总次数 + */ + @ApiModelProperty("总次数") + private Integer size; +} diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/MiddleTerminalListVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/MiddleTerminalListVO.java new file mode 100644 index 000000000..a83692f64 --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/MiddleTerminalListVO.java @@ -0,0 +1,31 @@ +package com.njcn.device.pq.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @version 1.0.0 + * @author: zbj + * @date: 2023/04/18 + */ +@Data +public class MiddleTerminalListVO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 结果集合 + */ + @ApiModelProperty("结果集合") + private List list; + + /** + * 总次数 + */ + @ApiModelProperty("总次数") + private Integer size; + +} diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java index a57a3f036..38a85460e 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java @@ -489,8 +489,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple throw new BusinessException(DeviceResponseEnum.PROVINCE_EMPTY); } Line province = new Line(); - province.setId(updateTerminalParam.getProjectUpdateParam().getProjectIndex()); - province.setSort(updateTerminalParam.getProjectUpdateParam().getSort()); + province.setId(updateTerminalParam.getProvinceUpdateParam().getProvinceIndex()); + province.setSort(updateTerminalParam.getProvinceUpdateParam().getSort()); this.updateById(province); } @@ -517,6 +517,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple Line subStation = new Line(); subStation.setId(updateTerminalParam.getSubStationUpdateParam().getSubIndex()); subStation.setName(updateTerminalParam.getSubStationUpdateParam().getName()); + subStation.setSort(updateTerminalParam.getSubStationUpdateParam().getSort()); checkUpdateName(updateTerminalParam, 3, subStationRes.getPid()); this.updateById(subStation); @@ -701,10 +702,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple //获取用户信息 String userName = RequestUtil.getUsername(); String index = RequestUtil.getUserIndex(); - //String userName = "zbj"; - //String index = "123456"; - LineDetail lineDetailResOld = lineDetailMapper.selectById(lineId); - queryUpdateAndInsertLog(userName, index, lineDetailRes, lineDetailResOld); + queryUpdateAndInsertLog(userName, index, lineDetail, lineDetailRes); } } } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalTreeServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalTreeServiceImpl.java index 872743f6c..8c285f8d0 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalTreeServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalTreeServiceImpl.java @@ -239,8 +239,15 @@ public class TerminalTreeServiceImpl implements TerminalTreeService { String areaId = areaDetail.getId(); if (CollectionUtil.isNotEmpty(allList)) { - List projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && lineMapper.selectProject(areaId).contains(item.getId())).collect(Collectors.toList()); - List provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode()) && item.getName().equals(areaId)).collect(Collectors.toList()); + List projectList; + List provinceList; + if(!"0".equals(areaId)){ + projectList=allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && lineMapper.selectProject(areaId).contains(item.getId())).collect(Collectors.toList()); + provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode()) && item.getName().equals(areaId)).collect(Collectors.toList()); + }else{ + projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).collect(Collectors.toList()); + provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode())).collect(Collectors.toList()); + } for (TerminalTree terminalTree : provinceList) { terminalTree.setName(lineMapper.getProviceName(terminalTree.getName())); } @@ -314,8 +321,15 @@ public class TerminalTreeServiceImpl implements TerminalTreeService { String areaId = areaDetail.getId(); if (CollectionUtil.isNotEmpty(allList)) { - List projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && lineMapper.selectProject(areaId).contains(item.getId())).collect(Collectors.toList()); - List provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode()) && item.getName().equals(areaId)).collect(Collectors.toList()); + List projectList; + List provinceList; + if(!"0".equals(areaId)){ + projectList=allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && lineMapper.selectProject(areaId).contains(item.getId())).collect(Collectors.toList()); + provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode()) && item.getName().equals(areaId)).collect(Collectors.toList()); + }else{ + projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).collect(Collectors.toList()); + provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode())).collect(Collectors.toList()); + } for (TerminalTree terminalTree : provinceList) { terminalTree.setName(lineMapper.getProviceName(terminalTree.getName())); } @@ -380,8 +394,15 @@ public class TerminalTreeServiceImpl implements TerminalTreeService { String areaId = areaDetail.getId(); if (CollectionUtil.isNotEmpty(allList)) { - List projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && lineMapper.selectProject(areaId).contains(item.getId())).collect(Collectors.toList()); - List provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode()) && item.getName().equals(areaId)).collect(Collectors.toList()); + List projectList; + List provinceList; + if(!"0".equals(areaId)){ + projectList=allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && lineMapper.selectProject(areaId).contains(item.getId())).collect(Collectors.toList()); + provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode()) && item.getName().equals(areaId)).collect(Collectors.toList()); + }else{ + projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).collect(Collectors.toList()); + provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode())).collect(Collectors.toList()); + } for (TerminalTree terminalTree : provinceList) { terminalTree.setName(lineMapper.getProviceName(terminalTree.getName())); } @@ -454,8 +475,15 @@ public class TerminalTreeServiceImpl implements TerminalTreeService { String areaId = areaDetail.getId(); if (CollectionUtil.isNotEmpty(allList)) { - List projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && lineMapper.selectProject(areaId).contains(item.getId())).collect(Collectors.toList()); - List provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode()) && item.getName().equals(areaId)).collect(Collectors.toList()); + List projectList; + List provinceList; + if(!"0".equals(areaId)){ + projectList=allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && lineMapper.selectProject(areaId).contains(item.getId())).collect(Collectors.toList()); + provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode()) && item.getName().equals(areaId)).collect(Collectors.toList()); + }else{ + projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).collect(Collectors.toList()); + provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode())).collect(Collectors.toList()); + } for (TerminalTree terminalTree : provinceList) { terminalTree.setName(lineMapper.getProviceName(terminalTree.getName())); } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/LargeScreenController.java b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/LargeScreenController.java index 950a0bedf..7a5eb1492 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/LargeScreenController.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/LargeScreenController.java @@ -109,9 +109,9 @@ public class LargeScreenController extends BaseController { @PostMapping("/getMiddleDown") @ApiOperation("大屏中间暂态") @ApiImplicitParam(name = "largeScreenParam", value = "大屏中间暂态", required = true) - public HttpResult> getMiddleDown(@RequestBody @Validated LargeScreenParam largeScreenParam) { + public HttpResult getMiddleDown(@RequestBody @Validated LargeScreenParam largeScreenParam) { String methodDescribe = getMethodDescribe("getMiddleDown"); - List result = largeScreenService.getMiddleDown(largeScreenParam); + EventListVO result = largeScreenService.getMiddleDown(largeScreenParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } @@ -122,9 +122,9 @@ public class LargeScreenController extends BaseController { @PostMapping("/getMiddleTerminal") @ApiOperation("大屏中间终端异常信息") @ApiImplicitParam(name = "largeScreenParam", value = "大屏中间终端异常信息", required = true) - public HttpResult> getMiddleTerminal(@RequestBody @Validated LargeScreenParam largeScreenParam) { + public HttpResult getMiddleTerminal(@RequestBody @Validated LargeScreenParam largeScreenParam) { String methodDescribe = getMethodDescribe("getMiddleTerminal"); - List result = largeScreenService.getMiddleTerminal(largeScreenParam); + MiddleTerminalListVO result = largeScreenService.getMiddleTerminal(largeScreenParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } @@ -135,9 +135,9 @@ public class LargeScreenController extends BaseController { @PostMapping("/getMiddleLimitRate") @ApiOperation("大屏中间稳态越线信息") @ApiImplicitParam(name = "largeScreenParam", value = "大屏中间稳态越线信息", required = true) - public HttpResult> getMiddleLimitRate(@RequestBody @Validated LargeScreenParam largeScreenParam) { + public HttpResult getMiddleLimitRate(@RequestBody @Validated LargeScreenParam largeScreenParam) { String methodDescribe = getMethodDescribe("getMiddleLimitRate"); - List result = largeScreenService.getMiddleLimitRate(largeScreenParam); + MiddleLimitRateListVO result = largeScreenService.getMiddleLimitRate(largeScreenParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java index ada8e31ec..52cd46660 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java @@ -32,10 +32,16 @@ public interface LargeScreenMapper { List getMiddleDown (Page page,@Param("lineIds") List lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime); + List getMiddleDownChind (@Param("lineIds") List lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime); + List getMiddleTerminal (Page page,@Param("deviceIds") List deviceIds, @Param("startTime") String startTime, @Param("endTime") String endTime); + List getMiddleTerminalChild (@Param("deviceIds") List deviceIds, @Param("startTime") String startTime, @Param("endTime") String endTime); + List getMiddleLimitRate (Page page,@Param("lineIds") List deviceIds, @Param("startTime") String startTime, @Param("endTime") String endTime); + List getMiddleLimitRateChild (@Param("lineIds") List deviceIds, @Param("startTime") String startTime, @Param("endTime") String endTime); + List> getHomeostasisArea (@Param("indexIds") List indexIds, @Param("startTime") String startTime, @Param("endTime") String endTime); /** diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml index ba5659583..a93710cfe 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml @@ -108,11 +108,14 @@ + + + + + + + diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java index 2086f70ca..d76b49155 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java @@ -357,7 +357,7 @@ public class LargeScreenServiceImpl implements LargeScreenService { * 大屏中间暂态 */ @Override - public List getMiddleDown(LargeScreenParam largeScreenParam) { + public EventListVO getMiddleDown(LargeScreenParam largeScreenParam) { DeviceInfoParam.BusinessParam deviceInfoParam = new DeviceInfoParam.BusinessParam(); //部门索引 deviceInfoParam.setDeptIndex(largeScreenParam.getDeptIndex()); @@ -374,14 +374,20 @@ public class LargeScreenServiceImpl implements LargeScreenService { List generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData(); //获取所有监测点集合 List lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList()); - return largeScreenMapper.getMiddleDown(new Page<>(largeScreenParam.getPageNum(), largeScreenParam.getPageSize()),lineIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); + List eventVOS = largeScreenMapper.getMiddleDown(new Page<>(largeScreenParam.getPageNum(), largeScreenParam.getPageSize()), lineIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); + //获取没分页前的总数据 + List chind = largeScreenMapper.getMiddleDownChind(lineIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); + EventListVO listVO = new EventListVO(); + listVO.setList(eventVOS); + listVO.setSize(chind.size()); + return listVO; } /** * 大屏中间终端异常信息 */ @Override - public List getMiddleTerminal(LargeScreenParam largeScreenParam) { + public MiddleTerminalListVO getMiddleTerminal(LargeScreenParam largeScreenParam) { //创建返回VO List result = new ArrayList<>(); DeviceInfoParam.BusinessParam deviceInfoParam = new DeviceInfoParam.BusinessParam(); @@ -399,7 +405,9 @@ public class LargeScreenServiceImpl implements LargeScreenService { List generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData(); //获取所有监测点集合 List deviceIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getDeviceIndexes().stream()).collect(Collectors.toList()); - List map = largeScreenMapper.getMiddleTerminal(new Page<>(largeScreenParam.getPageNum(), largeScreenParam.getPageSize()),deviceIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); + List map = largeScreenMapper.getMiddleTerminal(new Page<>(largeScreenParam.getPageNum(), largeScreenParam.getPageSize()), deviceIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); + //获取没分页前的总数据 + List child = largeScreenMapper.getMiddleTerminalChild(deviceIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); float base = 0.0f; float ream = 0.0f; @@ -421,7 +429,10 @@ public class LargeScreenServiceImpl implements LargeScreenService { vo.setProportion(s); result.add(vo); } - return result; + MiddleTerminalListVO listVO = new MiddleTerminalListVO(); + listVO.setList(result); + listVO.setSize(child.size()); + return listVO; } public static String formatFloat(Float value) { @@ -436,7 +447,7 @@ public class LargeScreenServiceImpl implements LargeScreenService { * 大屏中间稳态越线信息 */ @Override - public List getMiddleLimitRate(LargeScreenParam largeScreenParam) { + public MiddleLimitRateListVO getMiddleLimitRate(LargeScreenParam largeScreenParam) { DeviceInfoParam.BusinessParam deviceInfoParam = new DeviceInfoParam.BusinessParam(); //部门索引 deviceInfoParam.setDeptIndex(largeScreenParam.getDeptIndex()); @@ -452,7 +463,13 @@ public class LargeScreenServiceImpl implements LargeScreenService { List generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData(); //获取所有监测点集合 List lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList()); - return largeScreenMapper.getMiddleLimitRate(new Page<>(largeScreenParam.getPageNum(), largeScreenParam.getPageSize()),lineIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); + List middleLimitRate = largeScreenMapper.getMiddleLimitRate(new Page<>(largeScreenParam.getPageNum(), largeScreenParam.getPageSize()), lineIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); + //获取没分页前的总数据 + List child = largeScreenMapper.getMiddleLimitRateChild(lineIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); + MiddleLimitRateListVO listVO = new MiddleLimitRateListVO(); + listVO.setList(middleLimitRate); + listVO.setSize(child.size()); + return listVO; } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java index 135304ae3..bc8c7bafe 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java @@ -294,32 +294,39 @@ public class TransientServiceImpl implements TransientService { //按部门分类的实际运行终端综合信息 List generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(transientParam).getData(); + if (!CollectionUtils.isEmpty(generalDeviceDTOList)) { //获取按终端分类的监测点索引集合 List lineList = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList()); if(CollUtil.isNotEmpty(lineList)){ - Page pageInfo = eventDetailService.page(new Page<>(transientParam.getPageNum(), transientParam.getPageSize()), new LambdaQueryWrapper() + LambdaQueryWrapper wrapper = new LambdaQueryWrapper() .in(RmpEventDetailPO::getMeasurementPointId, lineList) - .ge(StringUtils.isNotBlank(transientParam.getSearchBeginTime()), RmpEventDetailPO::getStartTime,DateUtil.beginOfDay(DateUtil.parse(transientParam.getSearchBeginTime()))) + .ge(StringUtils.isNotBlank(transientParam.getSearchBeginTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(transientParam.getSearchBeginTime()))) .le(StringUtils.isNotBlank(transientParam.getSearchEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(transientParam.getSearchEndTime()))) - - //暂态幅值最小值 - .ge(Objects.nonNull(transientParam.getEventValueMin().divide(new BigDecimal(100),2,BigDecimal.ROUND_UP)),RmpEventDetailPO::getFeatureAmplitude, transientParam.getEventValueMin().divide(new BigDecimal(100),2,BigDecimal.ROUND_UP)) - .le(Objects.nonNull(transientParam.getEventValueMax().divide(new BigDecimal(100),2,BigDecimal.ROUND_UP)),RmpEventDetailPO::getFeatureAmplitude, transientParam.getEventValueMax().divide(new BigDecimal(100),2,BigDecimal.ROUND_UP)) - //持续时间最小值 - .ge(Objects.nonNull(transientParam.getPersistMin()),RmpEventDetailPO::getDuration, transientParam.getPersistMin()) - .le(Objects.nonNull(transientParam.getPersistMax()),RmpEventDetailPO::getDuration, transientParam.getPersistMax()) - //严重度最小值 - .ge(Objects.nonNull(transientParam.getSeverityMin()),RmpEventDetailPO::getSeverity, transientParam.getSeverityMin()) - .le(Objects.nonNull(transientParam.getSeverityMax()),RmpEventDetailPO::getSeverity, transientParam.getSeverityMax()) - //波形文件 - .eq(Objects.nonNull(transientParam.getFileFlag()),RmpEventDetailPO::getFileFlag, transientParam.getFileFlag()) //事件 - .in(CollUtil.isNotEmpty(transientParam.getWaveType()),RmpEventDetailPO::getEventType, transientParam.getWaveType()) - .in(CollUtil.isNotEmpty(transientParam.getEventReason()),RmpEventDetailPO::getAdvanceReason, transientParam.getEventReason()) - .in(CollUtil.isNotEmpty(transientParam.getEventType()),RmpEventDetailPO::getAdvanceType, transientParam.getEventType()) - .orderByDesc(RmpEventDetailPO::getStartTime) - ); + .in(CollUtil.isNotEmpty(transientParam.getWaveType()), RmpEventDetailPO::getEventType, transientParam.getWaveType()) + .in(CollUtil.isNotEmpty(transientParam.getEventReason()), RmpEventDetailPO::getAdvanceReason, transientParam.getEventReason()) + .in(CollUtil.isNotEmpty(transientParam.getEventType()), RmpEventDetailPO::getAdvanceType, transientParam.getEventType()) + .orderByDesc(RmpEventDetailPO::getStartTime); + //暂态幅值 + if (Objects.nonNull(transientParam.getEventValueMin())) { + wrapper.ge(RmpEventDetailPO::getFeatureAmplitude, transientParam.getEventValueMin().divide(new BigDecimal(100), 2, BigDecimal.ROUND_UP)); + } + if (Objects.nonNull(transientParam.getEventValueMax())) { + wrapper.le(RmpEventDetailPO::getFeatureAmplitude, transientParam.getEventValueMax().divide(new BigDecimal(100), 2, BigDecimal.ROUND_UP)); + } + if (Objects.nonNull(transientParam.getPersistMin()) && Objects.nonNull(transientParam.getSeverityMax())) { + wrapper.ge(RmpEventDetailPO::getDuration, transientParam.getPersistMin()).le(RmpEventDetailPO::getDuration, transientParam.getPersistMax()); + } + //严重度 + if (Objects.nonNull(transientParam.getSeverityMin()) && Objects.nonNull(transientParam.getSeverityMax())) { + wrapper.ge(RmpEventDetailPO::getSeverity, transientParam.getSeverityMin()).le(Objects.nonNull(transientParam.getSeverityMax()), RmpEventDetailPO::getSeverity, transientParam.getSeverityMax()); + } + //波形文件 + if (Objects.nonNull(transientParam.getFileFlag())) { + wrapper.eq(Objects.nonNull(transientParam.getFileFlag()), RmpEventDetailPO::getFileFlag, transientParam.getFileFlag()); + } + Page pageInfo = eventDetailService.page(new Page<>(transientParam.getPageNum(), transientParam.getPageSize()),wrapper); List eventDetailData=BeanUtil.copyToList(pageInfo.getRecords(),EventDetailNew.class); page= BeanUtil.copyProperties(pageInfo,Page.class); diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/LargeScreenService.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/LargeScreenService.java index 18214b37b..0d211e4e7 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/LargeScreenService.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/LargeScreenService.java @@ -25,11 +25,11 @@ public interface LargeScreenService { List getAllData(LargeScreenParam largeScreenParam); - List getMiddleDown(LargeScreenParam largeScreenParam); + EventListVO getMiddleDown(LargeScreenParam largeScreenParam); - List getMiddleTerminal(LargeScreenParam largeScreenParam); + MiddleTerminalListVO getMiddleTerminal(LargeScreenParam largeScreenParam); - List getMiddleLimitRate(LargeScreenParam largeScreenParam); + MiddleLimitRateListVO getMiddleLimitRate(LargeScreenParam largeScreenParam); List getComAccessData(List lineIndexes, String searchBeginTime, String searchEndTime); diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/ReportQueryParam.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/ReportQueryParam.java index 1d23b33dc..c68aa4c47 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/ReportQueryParam.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/ReportQueryParam.java @@ -27,4 +27,10 @@ public class ReportQueryParam { @NotBlank(message = "结束时间不可为空") private String endTime; + @ApiModelProperty(name = "b",value = "判断时间是否是当天(true 当天 false不是当天)") + private Boolean b ; + + @ApiModelProperty(name = "lineId",value = "95条数取值") + private double count; + } diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/report/DataI.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/report/DataI.java new file mode 100644 index 000000000..1a5cc50af --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/report/DataI.java @@ -0,0 +1,81 @@ +package com.njcn.harmonic.pojo.po.report; + +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * data_v influxDB别名映射表 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/10/27 15:27 + */ +@Data +@Measurement(name = "data_i") +public class DataI { + + @Column(name = "time") + private Instant time; + + @Column(name = "phasic_type") + private String phaseType; + + @Column(name = "value_type") + private String valueType; + + @Column(name = "rms") + private Double rms; + + @Column(name = "line_id") + private String lineId; + + @Column(name = "freq_max") + private Double frepMAX; + + @Column(name = "freq_min") + private Double frepMIN; + + @Column(name = "rms_max") + private Double rmsMAX; + + @Column(name = "rms_min") + private Double rmsMIN; + + @Column(name = "rms_lvr_max") + private Double rmsLvrMAX; + + @Column(name = "rms_lvr_min") + private Double rmsLvrMIN; + + @Column(name = "v_thd_max") + private Double vThdMAX; + + @Column(name = "v_thd_min") + private Double vThdMIN; + + @Column(name = "v_unbalance_max") + private Double vUnbalanceMAX; + + @Column(name = "v_unbalance_min") + private Double vUnbalanceMIN; + + @Column(name = "freq_count") + private Integer freqCount; + + @Column(name = "rms_count") + private Integer rmsCount; + + @Column(name = "rms_lvr_count") + private Integer rmsLvrCount; + + @Column(name = "v_thd_count") + private Integer vThdCount; + + @Column(name = "v_unbalance_count") + private Integer vUnbalanceCount; + + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/report/EnumPass.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/report/EnumPass.java new file mode 100644 index 000000000..1c6171ee7 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/report/EnumPass.java @@ -0,0 +1,35 @@ +package com.njcn.harmonic.pojo.po.report; + +public enum EnumPass { + MAX(1, "使用最大值与国标限值比较,判断指标是否合格"), + MIN(2, "使用最小值与国标限值比较,判断指标是否合格"), + MEAN(3, "使用平均值与国标限值比较,判断指标是否合格"), + CP95(4, "使用CP95值与国标限值比较,判断指标是否合格"), + DEFAULT(5, "不作比较"), + PASS(0, "合格"), + FPYVALUE(98, "合格率限值"), + FPYV(1, "UHARM_0_OVERTIME"), + FPYI(2, "IHARM_0_OVERTIME"), + FPYVOLTAGE(3, "VOLTAGE_DEV_OVERTIME"), + FPYTHREE(4, "UBALANCE_OVERTIME"), + FPYTHDV(5, "UABERRANCE_OVERTIME"), + FPYRATE(6, "FREQ_DEV_OVERTIME"), + FPYFLICKER(7, "FLICKER_OVERTIME"), + NOPASS(-1, "不合格"); + + private Integer code; + private String describe; + + EnumPass(Integer code, String describe) { + this.code = code; + this.describe = describe; + } + + public Integer getCode() { + return code; + } + + public String getDescribe() { + return describe; + } +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/report/OverLimitInfo.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/report/OverLimitInfo.java new file mode 100644 index 000000000..21b73c54e --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/report/OverLimitInfo.java @@ -0,0 +1,20 @@ +package com.njcn.harmonic.pojo.po.report; + + +import com.njcn.device.pq.pojo.po.Overlimit; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class OverLimitInfo implements Serializable { + private static final long serialVersionUID = 7466469972886414616L; + private List overLimitRate; + private Double count; + private Double pltCount; + private Double pstCount; + private List list; + private String mode; + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/report/Pass.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/report/Pass.java new file mode 100644 index 000000000..90817a2e2 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/report/Pass.java @@ -0,0 +1,24 @@ +package com.njcn.harmonic.pojo.po.report; + +import lombok.Data; + +/** + * @author wr + * @description + * @date 2023/4/12 11:40 + */ +@Data +public class Pass { + private Float overLimit; + private Integer code; + + public Pass(Float overLimit) { + this.code = EnumPass.DEFAULT.getCode(); + this.overLimit = overLimit; + } + + public Pass(Float overLimit, Integer code) { + this.overLimit = overLimit; + this.code = code; + } +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/report/ReportTarget.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/report/ReportTarget.java new file mode 100644 index 000000000..54ab783be --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/report/ReportTarget.java @@ -0,0 +1,17 @@ +package com.njcn.harmonic.pojo.po.report; + +import com.njcn.harmonic.pojo.vo.ReportValue; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; +@Data +public class ReportTarget implements Serializable { + + private static final long serialVersionUID = -6931764660060228127L; + private List list; + private Float overLimit; //指标的国标限值 + private Integer pass; + + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/ReportValue.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/ReportValue.java new file mode 100644 index 000000000..284e2164b --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/ReportValue.java @@ -0,0 +1,77 @@ +package com.njcn.harmonic.pojo.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author wr + * @description + * @date 2023/4/10 15:36 + */ +@NoArgsConstructor +public class ReportValue implements Serializable { + + private String phaseType; //A(AB)相,B(BC)相,C(CA)相,T总功 + private Float fmaxValue; //最大值 + private Float minValue; //最小值 + private Float meanValue; //平均值 + private Float cp95Value; //CP95值 + + public String getPhaseType() { + return phaseType; + } + + public Float getFmaxValue() { + return fmaxValue; + } + + public Float getMinValue() { + return minValue; + } + + public Float getMeanValue() { + return meanValue; + } + + public Float getCp95Value() { + return cp95Value; + } + + public void setPhaseType(String phaseType) { + this.phaseType = phaseType; + } + + public void setFmaxValue(Float fmaxValue) { + this.fmaxValue = transData(fmaxValue); + } + + public void setMinValue(Float minValue) { + this.minValue = transData(minValue); + } + + public void setMeanValue(Float meanValue) { + this.meanValue = transData(meanValue); + } + + public void setCp95Value(Float cp95Value) { + this.cp95Value = transData(cp95Value); + } + + public ReportValue(String phaseType, Float maxValue, Float minValue, Float meanValue, Float cp95Value) { + this.phaseType = phaseType; + this.fmaxValue = transData(maxValue); + this.minValue = transData(minValue); + this.meanValue = transData(meanValue); + this.cp95Value = transData(cp95Value); + } + private Float transData(Float f) { + if (f == null) { + return f; + } + float f1 = (float) (Math.round(f.floatValue() * 100)) / 100; + return new Float(f1); + } +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/ClearPathUtil.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/ClearPathUtil.java new file mode 100644 index 000000000..b21898e7b --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/ClearPathUtil.java @@ -0,0 +1,141 @@ +package com.njcn.harmonic.utils; + +/** + * @author hongawen + * @date: 2020/8/20 13:36 + */ +public class ClearPathUtil { + + /** + * 针对漏洞,新增的特殊字符替换的扫描方法 + */ + public static String cleanString(String str) { + if (str == null){ + return null; + } + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < str.length(); ++i) { + sb.append(cleanChar(str.charAt(i))); + } + return sb.toString(); + } + + private static char cleanChar(char ch) { + + // 0 - 9 + for (int i = 48; i < 58; ++i) { + if (ch == i) { + return (char) i; + } + } + + // 'A' - 'Z' + for (int i = 65; i < 91; ++i) { + if (ch == i) { + return (char) i; + } + } + + // 'a' - 'z' + for (int i = 97; i < 123; ++i) { + if (ch == i) { + return (char) i; + } + } + + // other valid characters + switch (ch) { + case '/': + return '/'; + case '.': + return '.'; + case '-': + return '-'; + case '_': + return '_'; + case ',': + return ','; + case ' ': + return ' '; + case '!': + return '!'; + case '@': + return '@'; + case '#': + return '#'; + case '$': + return '$'; + case '%': + return '%'; + case '^': + return '^'; + case '&': + return '&'; + case '*': + return '*'; + case '(': + return '('; + case ')': + return ')'; + case '+': + return '+'; + case '=': + return '='; + case ':': + return ':'; + case ';': + return ';'; + case '?': + return '?'; + case '"': + return '"'; + case '<': + return '<'; + case '>': + return '>'; + case '`': + return '`'; + case '\\': + return '/'; + case 'I': + return 'I'; + case 'Ⅱ': + return 'Ⅱ'; + case 'Ⅲ': + return 'Ⅲ'; + case 'Ⅳ': + return 'Ⅳ'; + case 'Ⅴ': + return 'Ⅴ'; + case 'Ⅵ': + return 'Ⅵ'; + case 'Ⅶ': + return 'Ⅶ'; + case 'Ⅷ': + return 'Ⅷ'; + case 'Ⅸ': + return 'Ⅸ'; + + case 'V': + return 'V'; + case 'X': + return 'X'; + case 'Ⅹ': + return 'Ⅹ'; + } + if (isChineseChar(ch)){ + return ch; + } + return '%'; + } + + // 根据Unicode编码判断中文汉字和符号 + private static boolean isChineseChar(char c) { + Character.UnicodeBlock ub = Character.UnicodeBlock.of(c); + return ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS + || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B + || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS + || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION; + } + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/CustomXWPFDocument.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/CustomXWPFDocument.java new file mode 100644 index 000000000..b39b65f1e --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/CustomXWPFDocument.java @@ -0,0 +1,83 @@ +package com.njcn.harmonic.utils; + +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.openxml4j.opc.OPCPackage; +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.apache.poi.xwpf.usermodel.XWPFParagraph; +import org.apache.xmlbeans.XmlException; +import org.apache.xmlbeans.XmlToken; +import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps; +import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D; +import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline; + +import java.io.IOException; +import java.io.InputStream; + +@Slf4j +public class CustomXWPFDocument extends XWPFDocument { + // 日志记录 + public CustomXWPFDocument(InputStream in) throws IOException { + super(in); + } + + public CustomXWPFDocument() { + super(); + } + + public CustomXWPFDocument(OPCPackage pkg) throws IOException { + super(pkg); + } + + /** + * @param id + * @param width + * 宽 + * @param height + * 高 + * @param paragraph + * 段落 + */ + public void createPicture(int id, int width, int height,String blipId, XWPFParagraph paragraph) { + final int EMU = 9525; + width *= EMU; + height *= EMU; +// String blipId = getAllPictures().get(id).getPackageRelationship().getId(); + CTInline inline = paragraph.createRun().getCTR().addNewDrawing().addNewInline(); + String picXml = "" + "" + + " " + + " " + + " " + " " + + " " + " " + " " + + " " + + " " + " " + " " + + " " + " " + " " + + " " + " " + " " + " " + + " " + " " + " " + + " " + " " + ""; + + inline.addNewGraphic().addNewGraphicData(); + XmlToken xmlToken = null; + try { + xmlToken = XmlToken.Factory.parse(picXml); + } catch (XmlException xe) { + log.error("生成报表发生异常,异常是"+xe.getMessage()); + } + inline.set(xmlToken); + + inline.setDistT(0); + inline.setDistB(0); + inline.setDistL(0); + inline.setDistR(0); + + CTPositiveSize2D extent = inline.addNewExtent(); + extent.setCx(width); + extent.setCy(height); + + CTNonVisualDrawingProps docPr = inline.addNewDocPr(); + docPr.setId(id); + docPr.setName("图片" + id); + docPr.setDescr("测试"); + } +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/PubUtils.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/PubUtils.java new file mode 100644 index 000000000..3ca5d7702 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/PubUtils.java @@ -0,0 +1,88 @@ +package com.njcn.harmonic.utils; + +import lombok.extern.slf4j.Slf4j; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.Socket; +import java.util.Properties; + +/** + * @author wr + * @description + * @date 2023/4/10 17:39 + */ +@Slf4j +public class PubUtils { + public static boolean createFile(String destFileName) { + File file = new File(destFileName); + if (file.exists()) { + log.warn("创建单个文件" + destFileName + "失败,目标文件已存在!"); + return false; + } + if (destFileName.endsWith(File.separator)) { + log.warn("创建单个文件" + destFileName + "失败,目标文件不能为目录!"); + return false; + } + //判断目标文件所在的目录是否存在 + if (!file.getParentFile().exists()) { + //如果目标文件所在的目录不存在,则创建父目录 + log.warn("目标文件所在目录不存在,准备创建它!"); + if (!file.getParentFile().mkdirs()) { + log.warn("创建目标文件所在目录失败!"); + return false; + } + } + //创建目标文件 + try { + if (file.createNewFile()) { + log.warn("创建单个文件" + destFileName + "成功!"); + return true; + } else { + log.warn("创建单个文件" + destFileName + "失败!"); + return false; + } + } catch (IOException e) { + log.warn("创建单个文件" + destFileName + "失败!" + e.getMessage()); + return false; + } + } + + /** + * 读取配置文件 + * + * @param cl 类名字 + * @param strPropertiesName 配置文件名称 + */ + public static Properties readProperties(ClassLoader cl, String strPropertiesName) { + Properties pros = new Properties(); + InputStream in = null; + try { + in = cl.getResourceAsStream(strPropertiesName); + pros.load(in); + } catch (Exception e) { + log.error("读取配置文件失败失败:" + e.getMessage()); + } finally { + if (in != null) { + PubUtils.safeClose(in, "安全关闭读取配置文件失败,异常为:"); + } + } + return pros; + } + + /** + * 安全关闭InputStream + * + * @param s + */ + public static void safeClose(InputStream s, String strError) { + if (s != null) { + try { + s.close(); + } catch (IOException e) { + log.error(strError + e.toString()); + } + } + } +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/WordUtil2.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/WordUtil2.java new file mode 100644 index 000000000..a3c08f89a --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/WordUtil2.java @@ -0,0 +1,360 @@ +package com.njcn.harmonic.utils; + +import org.apache.poi.xwpf.usermodel.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.*; +import java.net.URLEncoder; +import java.util.*; +import java.util.Map.Entry; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + +public class WordUtil2 { + // 日志记录 + private static final Logger logger = LoggerFactory.getLogger(WordUtil2.class); + + public void getWord(String path, Map params, String fileName, HttpServletResponse response, HttpSession session) + throws Exception { + path = ClearPathUtil.cleanString(path); + File file = new File(path); + InputStream inStream = null; + CustomXWPFDocument doc = null; + //读取报告模板 + try { + inStream = new FileInputStream(file); + doc = new CustomXWPFDocument(inStream); + this.replaceInTable(doc, params); // 替换表格里面的变量 + this.replaceInPara(doc, params); // 替换文本里面的变量 + } catch (IOException e) { + logger.error("获取报告模板异常,原因为:" + e.toString()); + } finally { + if (null != inStream) { + inStream.close(); + } + } +// //读取配置文件 +// Properties pros = PubUtils.readProperties(getClass().getClassLoader(), "java.properties"); +// String tmpPath = pros.get("TMP_PATH").toString() +File.separator+ "offlinereoprt"; +// tmpPath= ClearPathUtil.cleanString(tmpPath); +// OutputStream os = null; +// File tmpfile = new File(tmpPath); +// if(!tmpfile.exists()){ +// tmpfile.mkdir(); +// } +// tmpPath = tmpPath +File.separator+ fileName; +// tmpPath= ClearPathUtil.cleanString(tmpPath); +// File tmp = new File(tmpPath); +// if(tmp.exists()){ +// tmp.delete(); +// } +// PubUtils.createFile(tmpPath); + try { +// os = new FileOutputStream(tmpPath); +// if (doc != null) { +// doc.write(os); +// } + ServletOutputStream outputStream = response.getOutputStream(); + response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); + response.setContentType("application/octet-stream;charset=UTF-8"); + doc.write(outputStream); + outputStream.close(); + +// session.setAttribute("tmpPath", tmpPath); +// session.setAttribute("fileName", fileName); + } catch (Exception e) { + session.setAttribute("tmpPath", ""); + session.setAttribute("fileName", ""); + logger.error("输出稳态报告异常,原因为:" + e.toString()); + } finally { +// if (os != null) { +// os.close(); +// } + if (doc != null) { + doc.close(); + } + } + } + + /** + * 替换段落里面的变量 + * + * @param doc 要替换的文档 + * @param params 参数 + */ + private void replaceInPara(CustomXWPFDocument doc, Map params) { + Iterator iterator = doc.getParagraphsIterator(); + List paragraphList = new ArrayList<>(); + XWPFParagraph para; + while (iterator.hasNext()) { + para = iterator.next(); + paragraphList.add(para); + } + processParagraphs(paragraphList, params, doc); + } + + private void replaceInTable(CustomXWPFDocument doc, Map params) { + Iterator it = doc.getTablesIterator(); + while (it.hasNext()) { + XWPFTable table = it.next(); + List rows = table.getRows(); + for (XWPFTableRow row : rows) { + List cells = row.getTableCells(); + for (XWPFTableCell cell : cells) { + List paragraphListTable = cell.getParagraphs(); + processParagraphs(paragraphListTable, params, doc); + } + } + } + } + + public static void processParagraphs(List paragraphList, Map param, + CustomXWPFDocument doc) { + if (paragraphList != null && paragraphList.size() > 0) { + for (XWPFParagraph paragraph : paragraphList) { + List runs = paragraph.getRuns(); + if (runs.size() > 0) { + for (XWPFRun run : runs) { + String bflag = ""; + String text = run.getText(0); + if (text != null) { + boolean isSetText = false; + for (Entry entry : param.entrySet()) { + String key = entry.getKey(); + if (text.indexOf(key) != -1) { + isSetText = true; + Object value = entry.getValue(); + if (value instanceof String) {// 文本替换 + text = text.replace(key, value.toString()); + } else if (value instanceof Map) {// 图片替换 + text = text.replace(key, ""); + Map pic = (Map) value; + int width = Integer.parseInt(pic.get("width").toString()); + int height = Integer.parseInt(pic.get("height").toString()); + int picType = getPictureType(pic.get("type").toString()); + byte[] byteArray = (byte[]) pic.get("content"); + ByteArrayInputStream byteInputStream = new ByteArrayInputStream(byteArray); + try { + String s = doc.addPictureData(byteInputStream, picType); + + doc.createPicture(doc.getAllPictures().size() - 1, width, height, + s,paragraph); + bflag = "break"; + } catch (Exception e) { + logger.error("文本替换发生异常,异常是" + e.getMessage()); + } + } + } + } + if (isSetText) { + run.setText(text, 0); + } + } + if (bflag == "break") { + break; + } + } + } + } + } + } + + /** + * 替换段落里面的变量 + * + * @param para 要替换的段落 + * @param params 参数 + */ + private void replaceInPara(XWPFParagraph para, Map params, CustomXWPFDocument doc) { + List runs; + Matcher matcher; + // if (this.matcher(para.getParagraphText()).find()) { + runs = para.getRuns(); + int start = -1; + int end = -1; + String str = ""; + for (int i = 0; i < runs.size(); i++) { + XWPFRun run = runs.get(i); + String runText = run.toString(); + if ('$' == runText.charAt(0) && '{' == runText.charAt(1)) { + start = i; + } + if ((start != -1)) { + str += runText; + } + if ('}' == runText.charAt(runText.length() - 1)) { + if (start != -1) { + end = i; + break; + } + } + } + + for (int i = start; i <= end; i++) { + para.removeRun(i); + i--; + end--; + } + + for (Entry entry : params.entrySet()) { + String key = entry.getKey(); + if (str.indexOf(key) != -1) { + Object value = entry.getValue(); + if (value instanceof String) { + str = str.replace(key, value.toString()); + para.createRun().setText(str, 0); + break; + } else if (value instanceof Map) { + str = str.replace(key, ""); + Map pic = (Map) value; + int width = Integer.parseInt(pic.get("width").toString()); + int height = Integer.parseInt(pic.get("height").toString()); + int picType = getPictureType(pic.get("type").toString()); + byte[] byteArray = (byte[]) pic.get("content"); + ByteArrayInputStream byteInputStream = new ByteArrayInputStream(byteArray); + try { + // int ind = doc.addPicture(byteInputStream,picType); + // doc.createPicture(ind, width , height,para); + String s = doc.addPictureData(byteInputStream, picType); + doc.createPicture(doc.getAllPictures().size() - 1, width, height,s, para); + para.createRun().setText(str, 0); + break; + } catch (Exception e) { + logger.error("文件替换发生异常,异常是" + e.getMessage()); + } + } + } + } + // } + } + + /** + * 为表格插入数据,行数不够添加新行 + * + * @param table 需要插入数据的表格 + * @param tableList 插入数据集合 + */ + private static void insertTable(XWPFTable table, List tableList) { + // 创建行,根据需要插入的数据添加新行,不处理表头 + for (int i = 0; i < tableList.size(); i++) { + XWPFTableRow row = table.createRow(); + } + // 遍历表格插入数据 + List rows = table.getRows(); + int length = table.getRows().size(); + for (int i = 1; i < length - 1; i++) { + XWPFTableRow newRow = table.getRow(i); + List cells = newRow.getTableCells(); + for (int j = 0; j < cells.size(); j++) { + XWPFTableCell cell = cells.get(j); + String s = tableList.get(i - 1)[j]; + cell.setText(s); + } + } + } + + /** + * 替换表格里面的变量 + * + * @param doc 要替换的文档 + * @param params 参数 + */ + private void replaceInTable(CustomXWPFDocument doc, Map params, List tableList) { + Iterator iterator = doc.getTablesIterator(); + XWPFTable table; + List rows; + List cells; + List paras; + while (iterator.hasNext()) { + table = iterator.next(); + if (table.getRows().size() > 1) { + // 判断表格是需要替换还是需要插入,判断逻辑有$为替换,表格无$为插入 + if (this.matcher(table.getText()).find()) { + rows = table.getRows(); + for (XWPFTableRow row : rows) { + cells = row.getTableCells(); + for (XWPFTableCell cell : cells) { + paras = cell.getParagraphs(); + for (XWPFParagraph para : paras) { + this.replaceInPara(para, params, doc); + } + } + } + } else { + insertTable(table, tableList); // 插入数据 + } + } + } + } + + /** + * 正则匹配字符串 + * + * @param str + * @return + */ + private Matcher matcher(String str) { + Pattern pattern = Pattern.compile("\\$\\{(.+?)\\}", Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(str); + return matcher; + } + + /** + * 根据图片类型,取得对应的图片类型代码 + * + * @param picType + * @return int + */ + private static int getPictureType(String picType) { + int res = CustomXWPFDocument.PICTURE_TYPE_PICT; + if (picType != null) { + if (picType.equalsIgnoreCase("image/png")) { + res = CustomXWPFDocument.PICTURE_TYPE_PNG; + } else if (picType.equalsIgnoreCase("image/dib")) { + res = CustomXWPFDocument.PICTURE_TYPE_DIB; + } else if (picType.equalsIgnoreCase("image/emf")) { + res = CustomXWPFDocument.PICTURE_TYPE_EMF; + } else if (picType.equalsIgnoreCase("image/jpg") || picType.equalsIgnoreCase("image/jpeg")) { + res = CustomXWPFDocument.PICTURE_TYPE_JPEG; + } else if (picType.equalsIgnoreCase("image/wmf")) { + res = CustomXWPFDocument.PICTURE_TYPE_WMF; + } + } + return res; + } + + /** + * 关闭输入流 + * + * @param is + */ + private void close(InputStream is) { + if (is != null) { + try { + is.close(); + } catch (IOException e) { + logger.error("关闭输入流发生异常,异常是" + e.getMessage()); + } + } + } + + /** + * 关闭输出流 + * + * @param os + */ + private void close(OutputStream os) { + if (os != null) { + try { + os.close(); + } catch (IOException e) { + logger.error("关闭输出流发生异常,异常是" + e.getMessage()); + } + } + } +} diff --git a/pqs-harmonic/harmonic-boot/pom.xml b/pqs-harmonic/harmonic-boot/pom.xml index f107874a8..50cfdd39d 100644 --- a/pqs-harmonic/harmonic-boot/pom.xml +++ b/pqs-harmonic/harmonic-boot/pom.xml @@ -95,6 +95,16 @@ harmonicboot + + org.apache.maven.plugins + maven-resources-plugin + + UTF-8 + + docx + + + org.apache.maven.plugins maven-compiler-plugin diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/ExportModelController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/ExportModelController.java new file mode 100644 index 000000000..ef4d8e3a8 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/ExportModelController.java @@ -0,0 +1,1536 @@ +package com.njcn.harmonic.controller; + + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.utils.PubUtils; +import com.njcn.device.pms.api.MonitorClient; +import com.njcn.device.pms.pojo.po.Monitor; +import com.njcn.device.pq.api.LineFeignClient; +import com.njcn.device.pq.pojo.po.Overlimit; +import com.njcn.device.pq.pojo.vo.LineDetailDataVO; +import com.njcn.event.enums.EventResponseEnum; +import com.njcn.harmonic.pojo.param.ReportQueryParam; +import com.njcn.harmonic.pojo.po.report.EnumPass; +import com.njcn.harmonic.pojo.po.report.OverLimitInfo; +import com.njcn.harmonic.pojo.po.report.Pass; +import com.njcn.harmonic.pojo.po.report.ReportTarget; +import com.njcn.harmonic.pojo.vo.ReportValue; +import com.njcn.harmonic.service.ReportService; +import com.njcn.harmonic.utils.WordUtil2; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.api.ThemeFeignClient; +import com.njcn.system.pojo.po.Theme; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import sun.misc.BASE64Encoder; + +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.*; +import java.text.SimpleDateFormat; +import java.util.*; + + +@Slf4j +@RestController +@RequestMapping("/exportmodel") +@Api(tags = "word报告") +@AllArgsConstructor +public class ExportModelController extends BaseController { + + + + // 非谐波数据 + List listVirtual; + List listPower; + List listFlicker; + List listDistortion; + List listVdeviation; + List listFrequency; + List listThreephase; + // 谐波电压数据 + List listVoltageRate; + // 谐波电流数据 + List listICurrent; + + + private final LineFeignClient lineFeignClient; + private final MonitorClient monitorClient; + private final DicDataFeignClient dicDataFeignClient; + private final ThemeFeignClient themeFeignClient; + private final ReportService reportService; + + @PostMapping("/exportModel") + @ApiOperation("word报告") + public String exportworld(HttpSession session, HttpServletResponse response, + String startTime, String endTime, Integer type, String lineIndex, + String name, String reportNumber, String crmName, + MultipartFile file) throws IOException { + + //获取监测点信息 + String bdname = ""; + Integer pttype = 0; + String areaName = ""; + String atype = ""; + String btype = ""; + String ctype = ""; + LineDetailDataVO lineDto = new LineDetailDataVO(); + if (type == 0) { + lineDto = lineFeignClient.getLineDetailData(lineIndex).getData(); + if (ObjectUtil.isNull(lineDto)) { + throw new BusinessException(EventResponseEnum.NOT_FOUND); + } + bdname = lineDto.getBdName(); + areaName = lineDto.getAreaName(); + pttype = PubUtils.ptTypeName(lineDto.getPtType()); + } else { + List monitorList = monitorClient.getMonitorList(Arrays.asList(lineIndex)).getData(); + if (ObjectUtil.isNull(monitorList)) { + throw new BusinessException(EventResponseEnum.NOT_FOUND); + } + Monitor monitor = monitorList.get(0); + bdname = monitor.getPowerrName(); + areaName = monitor.getOrgName(); + String terminalWiringMethod = dicDataFeignClient.getDicDataById(monitor.getTerminalWiringMethod()).getData().getName(); + pttype = PubUtils.ptTypeName(terminalWiringMethod); + lineDto.setPt(monitor.getPt1() + "/" + monitor.getPt2()); + lineDto.setCt(monitor.getCt1() + "/" + monitor.getCt2()); + //基准容量 + lineDto.setStandardCapacity(monitor.getStandShortCapacity()); + //短路容量 + lineDto.setShortCapacity(monitor.getMinShortCircuitCapacity()); + //协议容量 + lineDto.setDealCapacity(monitor.getUserAgreementCapacity()); + //设备容量 + lineDto.setDevCapacity(monitor.getPowerSupplyEqCapacity()); + //电压等级 + lineDto.setScale(dicDataFeignClient.getDicDataById(monitor.getVoltageLevel()).getData().getName()); + + } + if (pttype == 0) { + atype = "A相"; + btype = "B相"; + ctype = "C相"; + } else if (pttype == 1) { + atype = "AB相"; + btype = "BC相"; + ctype = "CA相"; + } else if (pttype == 2) { + atype = "AB相"; + btype = "BC相"; + ctype = "-"; + + } + DateTime startDate = DateUtil.beginOfDay(DateUtil.parse(startTime)); + DateTime endDate = DateUtil.endOfDay(DateUtil.parse(endTime)); + long day = DateUtil.betweenDay(startDate, endDate, false); + //通用查询条件 + ReportQueryParam param = new ReportQueryParam(); + param.setLineId(lineIndex); + param.setStartTime(DateUtil.format(startDate, "yyyy-MM-dd HH:mm:ss")); + param.setEndTime(DateUtil.format(endDate, "yyyy-MM-dd HH:mm:ss")); + param.setB(day == 0); + + //限值 + OverLimitInfo overLimitData = reportService.getOverLimitData(param); + Overlimit overLimit; + if (type == 0) { + overLimit = lineFeignClient.getOverLimitData(param.getLineId()).getData(); + } else { + overLimit = monitorClient.getOverLimitData(param.getLineId()).getData(); + } + param.setCount(overLimitData.getCount()); + overLimitData.setOverLimitRate(Arrays.asList(overLimit)); + + + if (0 == overLimitData.getOverLimitRate().size()) { + return "datafail"; + } + + String rtfPath = ""; + String picPath = "file/default.jpg"; + boolean flagPath = false; + + Theme theme = themeFeignClient.getTheme().getData(); + if (theme.getRemark().equals("国网")) { + rtfPath = "file/reportModelGW.docx"; + } else if (theme.getRemark().equals("南网")) { + rtfPath = "file/reportModelNW.docx"; + } else if (theme.getRemark().equals("灿能")) { + rtfPath = "file/reportModelCN.docx"; + } else { + rtfPath = "file/reportModel.docx"; + } + + try { + rtfPath = getClass().getClassLoader().getResource(rtfPath).getPath(); + picPath = getClass().getClassLoader().getResource(picPath).getPath(); + rtfPath = rtfPath.replaceAll("%20", " "); + picPath = picPath.replaceAll("%20", " "); + } catch (Exception e1) { + log.info("获取报表发生异常,异常是" + e1.getMessage()); + } + File tmpfile = new File(rtfPath); + if (!tmpfile.exists()) { + return "pathfail"; + } + + InputStream ins = null; + try { + ins = new FileInputStream(rtfPath); + if (null != ins) { + flagPath = true; + } + } catch (FileNotFoundException e) { + flagPath = false; + return "readerror"; + } finally { + if (ins != null) { + ins.close(); + } + } + + Map reportmap = new HashMap();// 报告Map + + reportmap.put("$atype$", atype); + reportmap.put("$btype$", btype); + reportmap.put("$ctype$", ctype); + + Map header = new HashMap(); + if (ObjectUtil.isNotEmpty(file)) { + byte[] bytes = file.getBytes(); + +// byte[] image = (byte[]) session.getAttribute("image"); +// String contentType = (String) session.getAttribute("contentType"); + header.put("width", 400); + header.put("height", 250); + header.put("type", file.getContentType()); + header.put("content", bytes); + } else { + InputStream inStream = null; + byte[] data = null; + try { + inStream = new FileInputStream(new File(picPath)); + data = new byte[inStream.available()]; + inStream.read(data); + } catch (FileNotFoundException e) { + log.info("读取报表信息失败:" + e.getMessage()); + } finally { + if (inStream != null) { + inStream.close(); + } + } + String contentType = "application/x-jpg"; + header.put("width", 400); + header.put("height", 250); + header.put("type", contentType); + header.put("content", data); + } + + reportmap.put("$image$", header); + + getVirtualData(param); + ReportValue voltage1 = (ReportValue) this.listVirtual.get(0).getList().get(0);// 电压幅值 + ReportValue voltage2 = (ReportValue) this.listVirtual.get(0).getList().get(1);// 电压幅值 + ReportValue voltage3 = (ReportValue) this.listVirtual.get(0).getList().get(2);// 电压幅值 + ReportValue current1 = (ReportValue) this.listVirtual.get(1).getList().get(0);// 电流幅值 + ReportValue current2 = (ReportValue) this.listVirtual.get(1).getList().get(1);// 电流幅值 + ReportValue current3 = (ReportValue) this.listVirtual.get(1).getList().get(2);// 电流幅值 + + String strLineBaseName = String.format("%s%s", new String[]{bdname + "_", name}); + String strAnalysis = "";// 分析建议 + String strError = "";// 报表错误 + + /************************************************************** + **** 基波电压/电流有效值表格 + ************************************** + ************************************** + * 一、用基波电压和基波电流做是否有值的判断, 判断策略为所有的基波电压和基波电流都为空 + * ************************************* + * ************************************* 二、基本数据判断 + * ①、(最大值>=最小值、平均值、95%概率值) ②、(平均值>=最小值) ③、(95%概率值>=最小值) + ***************************************************************/ + String strBaseVIResult = ""; + // 基波电压最大值 + + reportmap.put("$B" + "V0" + "X" + "_A$", judgeNull(voltage1.getFmaxValue())); + + reportmap.put("$B" + "V0" + "X" + "_B$", judgeNull(voltage2.getFmaxValue())); + reportmap.put("$B" + "V0" + "X" + "_C$", judgeNull(voltage3.getFmaxValue())); + + // 基波电流最大值 + reportmap.put("$B" + "I0" + "X" + "_A$", judgeNull(current1.getFmaxValue())); + reportmap.put("$B" + "I0" + "X" + "_B$", judgeNull(current2.getFmaxValue())); + reportmap.put("$B" + "I0" + "X" + "_C$", judgeNull(current3.getFmaxValue())); + + /************************************************************** + **** 三张大表基础数据幅值 + ***************************************************************/ + // 基波电压最大值 + reportmap.put("$C" + "V0" + "X" + "_A$", judgeNull(voltage1.getFmaxValue())); + reportmap.put("$C" + "V0" + "X" + "_B$", judgeNull(voltage2.getFmaxValue())); + reportmap.put("$C" + "V0" + "X" + "_C$", judgeNull(voltage3.getFmaxValue())); + + // 基波电流最大值 + reportmap.put("$C" + "I0" + "X" + "_A$", judgeNull(current1.getFmaxValue())); + reportmap.put("$C" + "I0" + "X" + "_B$", judgeNull(current2.getFmaxValue())); + reportmap.put("$C" + "I0" + "X" + "_C$", judgeNull(current3.getFmaxValue())); + + // 基波电压最小值 + reportmap.put("$B" + "V0" + "N" + "_A$", judgeNull(voltage1.getMinValue())); + reportmap.put("$B" + "V0" + "N" + "_B$", judgeNull(voltage2.getMinValue())); + reportmap.put("$B" + "V0" + "N" + "_C$", judgeNull(voltage3.getMinValue())); + + // 基波电流最小值 + reportmap.put("$B" + "I0" + "N" + "_A$", judgeNull(current1.getMinValue())); + reportmap.put("$B" + "I0" + "N" + "_B$", judgeNull(current2.getMinValue())); + reportmap.put("$B" + "I0" + "N" + "_C$", judgeNull(current3.getMinValue())); + + /************************************************************** + **** 三张大表基础数据幅值 + ***************************************************************/ + // 基波电压最小值 + reportmap.put("$C" + "V0" + "N" + "_A$", judgeNull(voltage1.getMinValue())); + reportmap.put("$C" + "V0" + "N" + "_B$", judgeNull(voltage2.getMinValue())); + reportmap.put("$C" + "V0" + "N" + "_C$", judgeNull(voltage3.getMinValue())); + + // 基波电流最小值 + reportmap.put("$C" + "I0" + "N" + "_A$", judgeNull(current1.getMinValue())); + reportmap.put("$C" + "I0" + "N" + "_B$", judgeNull(current2.getMinValue())); + reportmap.put("$C" + "I0" + "N" + "_C$", judgeNull(current3.getMinValue())); + + // 基波电压平均值 + reportmap.put("$B" + "V0" + "E" + "_A$", judgeNull(voltage1.getMeanValue())); + reportmap.put("$B" + "V0" + "E" + "_B$", judgeNull(voltage2.getMeanValue())); + reportmap.put("$B" + "V0" + "E" + "_C$", judgeNull(voltage3.getMeanValue())); + + // 基波电流平均值 + reportmap.put("$B" + "I0" + "E" + "_A$", judgeNull(current1.getMeanValue())); + reportmap.put("$B" + "I0" + "E" + "_B$", judgeNull(current2.getMeanValue())); + reportmap.put("$B" + "I0" + "E" + "_C$", judgeNull(current3.getMeanValue())); + + /************************************************************** + **** 三张大表基础数据幅值 + ***************************************************************/ + // 基波电压平均值 + reportmap.put("$C" + "V0" + "E" + "_A$", judgeNull(voltage1.getMeanValue())); + reportmap.put("$C" + "V0" + "E" + "_B$", judgeNull(voltage2.getMeanValue())); + reportmap.put("$C" + "V0" + "E" + "_C$", judgeNull(voltage3.getMeanValue())); + + // 基波电流平均值 + reportmap.put("$C" + "I0" + "E" + "_A$", judgeNull(current1.getMeanValue())); + reportmap.put("$C" + "I0" + "E" + "_B$", judgeNull(current2.getMeanValue())); + reportmap.put("$C" + "I0" + "E" + "_C$", judgeNull(current3.getMeanValue())); + + // 基波电压cp95值 + reportmap.put("$B" + "V0" + "%" + "_A$", judgeNull(voltage1.getCp95Value())); + reportmap.put("$B" + "V0" + "%" + "_B$", judgeNull(voltage2.getCp95Value())); + reportmap.put("$B" + "V0" + "%" + "_C$", judgeNull(voltage3.getCp95Value())); + + // 基波电流cp95值 + reportmap.put("$B" + "I0" + "%" + "_A$", judgeNull(current1.getCp95Value())); + reportmap.put("$B" + "I0" + "%" + "_B$", judgeNull(current2.getCp95Value())); + reportmap.put("$B" + "I0" + "%" + "_C$", judgeNull(current3.getCp95Value())); + + /************************************************************** + **** 三张大表基础数据幅值 + ***************************************************************/ + // 基波电压cp95值 + reportmap.put("$C" + "V0" + "%" + "_A$", judgeNull(voltage1.getCp95Value())); + reportmap.put("$C" + "V0" + "%" + "_B$", judgeNull(voltage2.getCp95Value())); + reportmap.put("$C" + "V0" + "%" + "_C$", judgeNull(voltage3.getCp95Value())); + + // 基波电流cp95值 + reportmap.put("$C" + "I0" + "%" + "_A$", judgeNull(current1.getCp95Value())); + reportmap.put("$C" + "I0" + "%" + "_B$", judgeNull(current2.getCp95Value())); + reportmap.put("$C" + "I0" + "%" + "_C$", judgeNull(current3.getCp95Value())); + + // 遍历map中的值 + int iCount = 0; + // 判断所取的基波电压、基波电流值是否为null + for (Object value : reportmap.values()) { + if (value == null) + iCount++; + } + // 假如所有的数据都为null,则返回(所选的时间段内未找到数据) + if (iCount == reportmap.size()) + return "exportworld";// 未找到数据 + + // 基本数据判断 + for (int i = 0; i < 3; i++) { + String tmpstrMap = "A"; + switch (i) { + case 0: + tmpstrMap = "A"; + break; + case 1: + tmpstrMap = "B"; + break; + case 2: + tmpstrMap = "C"; + break; + } + try { + // 基波电压 + Double vmaxValue = Double.parseDouble(reportmap.get("$BV0X_" + tmpstrMap + "$").toString()); + Double vminValue = Double.parseDouble(reportmap.get("$BV0N_" + tmpstrMap + "$").toString()); + Double vaveValue = Double.parseDouble(reportmap.get("$BV0E_" + tmpstrMap + "$").toString()); + Double vcp95Value = Double.parseDouble(reportmap.get("$BV0%_" + tmpstrMap + "$").toString()); + // 基波电流 + Double imaxValue = Double.parseDouble(reportmap.get("$BI0X_" + tmpstrMap + "$").toString()); + Double iminValue = Double.parseDouble(reportmap.get("$BI0N_" + tmpstrMap + "$").toString()); + Double iaveValue = Double.parseDouble(reportmap.get("$BI0E_" + tmpstrMap + "$").toString()); + Double icp95Value = Double.parseDouble(reportmap.get("$BI0%_" + tmpstrMap + "$").toString()); + + if (!(vmaxValue >= vminValue && vmaxValue >= vaveValue && vmaxValue >= vcp95Value)) { + strBaseVIResult += "注意:从上表中可以看出" + strLineBaseName + + "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。"; + break; + } else if (vaveValue < vminValue) { + strBaseVIResult += "注意:从上表中可以看出" + strLineBaseName + + "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。"; + break; + } else if (vcp95Value < vminValue) { + strBaseVIResult += "注意:从上表中可以看出" + strLineBaseName + + "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。"; + break; + } else if (!(imaxValue >= iminValue && imaxValue >= iaveValue && imaxValue >= icp95Value)) { + strBaseVIResult += "注意:从上表中可以看出" + strLineBaseName + + "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。"; + break; + } else if (iaveValue < iminValue) { + strBaseVIResult += "注意:从上表中可以看出" + strLineBaseName + + "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。"; + break; + } else if (icp95Value < iminValue) { + strBaseVIResult += "注意:从上表中可以看出" + strLineBaseName + + "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。"; + break; + } + } catch (Exception e) { + strBaseVIResult += "注意:从上表中可以看出" + strLineBaseName + "基波电压/电流数据存在异常(不是数值类型)。"; + break; + } + } + reportmap.put("$BaseVIResult$", strBaseVIResult); + if (!"".equals(strBaseVIResult)) + strError += strBaseVIResult; + + /************************************************************** + **** 所选的时间段内有数据存在则进行其他加载 + ***************************************************************/ + +// Depts dep = R.getCurrentDept(); +// String detpName = dep.getArea(); + reportmap.put("$detpName$", areaName); // 区域名称 + // 获取报告生成时间 + Date currentTime = new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");// 报告时分秒格式 + String strTime = String.format("%s——%s。", + new String[]{DateUtil.format(startDate, "yyyy年MM月dd日 HH时mm分ss秒"), + DateUtil.format(endDate, "yyyy年MM月dd日 HH时mm分ss秒")}); + reportmap.put("$number$", reportNumber); // 报告编号 + reportmap.put("$titlePoint$", crmName); // 客户名称 + + reportmap.put("$TitleTime$", formatter.format(currentTime)); // 报告生成时间 + reportmap.put("$ReportTitle$", + String.format("对该地区%s电能质量在线监测数据进行分析, 以判断电能质量指标是否满足国标。", new String[]{strLineBaseName}));// 报告标题 + reportmap.put("$ReportTime$", strTime);// 报告分析时间段 + reportmap.put("$RunBaseName$", String.format("以下将对%s电能质量统计数据进行分析,数据包括基波电压/电流、谐波电压/电流、电压偏差、三相电压不平衡度、电压闪变、频率偏差。", + new String[]{strLineBaseName}));// 运行数据分析 + reportmap.put("$BaseVITable$", String.format("报告分析时间段内%s的基波电压/电流分钟统计数据见下表。", new String[]{strLineBaseName}));// 基波电压和电流 + reportmap.put("$VDTable$", String.format("报告分析时间段内%s的电压偏差统计数据见下表。", new String[]{strLineBaseName}));// 供电电压偏差 + reportmap.put("$FRETable$", String.format("报告分析时间段内%s的频率偏差统计数据见下表。", new String[]{strLineBaseName}));// 频率偏差 + reportmap.put("$THETable$", String.format("报告分析时间段内%s的三相电压不平衡度统计数据见下表。", new String[]{strLineBaseName}));// 三相电压不平衡度 + reportmap.put("$PLTTable$", String.format("报告分析时间段内%s的闪变统计数据见下表。", new String[]{strLineBaseName}));// 闪变 + reportmap.put("$RVTable$", + String.format("报告分析时间段内%s的2-25次谐波电压含有率CP95概率值统计数据见下表。", new String[]{strLineBaseName}));// 谐波电压 + reportmap.put("$RITable$", + String.format("报告分析时间段内%s的2-25次谐波电流幅值CP95概率值统计数据见下表。", new String[]{strLineBaseName}));// 谐波电流 + + reportmap.put("$LineName1$", name);// 监测点名称1 + reportmap.put("$LineName2$", name);// 监测点名称2 + reportmap.put("$LineName3$", name);// 监测点名称3 + reportmap.put("$LineName4$", name);// 监测点名称4 + reportmap.put("$LineName5$", name);// 监测点名称5 + + /********************** + **** 数据获取 + ***********************/ + + getPowerData(param); + getFlicker(param, overLimit); + getVdeviation(param, overLimit); + getDistortion(param, overLimit); + getFre(param, overLimit); + getThreePhase(param, overLimit); + getVoltageRate(param, overLimit); + getCurrentRate(param, overLimit); + + ReportValue pst1 = (ReportValue) this.listFlicker.get(0).getList().get(0);// 短闪 + ReportValue pst2 = (ReportValue) this.listFlicker.get(0).getList().get(1);// 短闪 + ReportValue pst3 = (ReportValue) this.listFlicker.get(0).getList().get(2);// 短闪 + ReportValue plt1 = (ReportValue) this.listFlicker.get(1).getList().get(0);// 长闪 + ReportValue plt2 = (ReportValue) this.listFlicker.get(1).getList().get(1);// 长闪 + ReportValue plt3 = (ReportValue) this.listFlicker.get(1).getList().get(2);// 长闪 + + reportmap.put("$LineBase$", String.format("%s%s,CT变比为:%s,PT变比为:%s。", + new String[]{bdname, name, lineDto.getCt(), lineDto.getPt()}));// 监测点基本信息 + + /************************************************************** + **** 三张大表基础数据幅值 + ***************************************************************/ + reportmap.put("$CI_JCD$", bdname); + reportmap.put("$bdTitle$", bdname); + + reportmap.put("$CI_Time$", strTime); + reportmap.put("$CI_JCXL$", name); + reportmap.put("$CI_PT$", lineDto.getPt()); + reportmap.put("$CI_DYDJ$", lineDto.getScale()); + reportmap.put("$CI_CT$", lineDto.getCt()); + reportmap.put("$CI_JZRL$", String.valueOf(lineDto.getStandardCapacity())); + reportmap.put("$CI_DLRL$", String.valueOf(lineDto.getShortCapacity())); + reportmap.put("$CI_XYRL$", String.valueOf(lineDto.getDealCapacity())); + reportmap.put("$CI_SBRL$", String.valueOf(lineDto.getDevCapacity())); + + reportmap.put("$CV_JCD$", bdname); + reportmap.put("$CV_Time$", strTime); + reportmap.put("$CV_JCXL$", name); + reportmap.put("$CV_PT$", lineDto.getPt()); + reportmap.put("$CV_DYDJ$", lineDto.getScale()); + reportmap.put("$CV_CT$", lineDto.getCt()); + reportmap.put("$CV_JZRL$", String.valueOf(lineDto.getStandardCapacity())); + reportmap.put("$CV_DLRL$", String.valueOf(lineDto.getShortCapacity())); + reportmap.put("$CV_XYRL$", String.valueOf(lineDto.getDealCapacity())); + reportmap.put("$CV_SBRL$", String.valueOf(lineDto.getDevCapacity())); + + reportmap.put("$FV_JCD$", bdname); + reportmap.put("$FV_Time$", strTime); + reportmap.put("$FV_JCXL$", name); + reportmap.put("$FV_PT$", lineDto.getPt()); + reportmap.put("$FV_DYDJ$", lineDto.getScale()); + reportmap.put("$FV_CT$", lineDto.getCt()); + reportmap.put("$FV_JZRL$", String.valueOf(lineDto.getStandardCapacity())); + reportmap.put("$FV_DLRL$", String.valueOf(lineDto.getShortCapacity())); + reportmap.put("$FV_XYRL$", String.valueOf(lineDto.getDealCapacity())); + reportmap.put("$FV_SBRL$", String.valueOf(lineDto.getDevCapacity())); + + Double maxValue = 0.00; + Double minValue = 0.00; + Double aveValue = 0.00; + Double cp95Value = 0.00; + Double cp95ValueA = 0.00; + Double cp95ValueB = 0.00; + Double cp95ValueC = 0.00; + Double limit = 0.00; + /************************************************************** + **** 电压偏差(上偏差和下偏差) + ***************************************************************/ + ReportValue vdeviation1 = (ReportValue) this.listVdeviation.get(0).getList().get(0); + ReportValue vdeviation2 = (ReportValue) this.listVdeviation.get(0).getList().get(1); + ReportValue vdeviation3 = (ReportValue) this.listVdeviation.get(0).getList().get(2); + String vdeviationLimit = judgeNull(this.listVdeviation.get(0).getOverLimit());// 获取电压上下偏差的国标限值 + reportmap.put("$VD_L$", vdeviationLimit); + String strResultVdeviationdata = ""; + String tmpstrResultVdeviationdata = ""; + String strResultVdeviationdataValue = ""; + // 获取电压偏差 + String tmpstrMap = ""; + reportmap.put("$VDTX_A$", judgeNull(vdeviation1.getFmaxValue())); + reportmap.put("$VDTN_A$", judgeNull(vdeviation1.getMinValue())); + reportmap.put("$VDTE_A$", judgeNull(vdeviation1.getMeanValue())); + reportmap.put("$VDT%_A$", judgeNull(vdeviation1.getCp95Value())); + reportmap.put("$VDTX_B$", judgeNull(vdeviation2.getFmaxValue())); + reportmap.put("$VDTN_B$", judgeNull(vdeviation2.getMinValue())); + reportmap.put("$VDTE_B$", judgeNull(vdeviation2.getMeanValue())); + reportmap.put("$VDT%_B$", judgeNull(vdeviation2.getCp95Value())); + if (pttype != 2) { + reportmap.put("$VDTX_C$", judgeNull(vdeviation3.getFmaxValue())); + reportmap.put("$VDTN_C$", judgeNull(vdeviation3.getMinValue())); + reportmap.put("$VDTE_C$", judgeNull(vdeviation3.getMeanValue())); + reportmap.put("$VDT%_C$", judgeNull(vdeviation3.getCp95Value())); + } else { + reportmap.put("$VDTX_C$", "-"); + reportmap.put("$VDTN_C$", "-"); + reportmap.put("$VDTE_C$", "-"); + reportmap.put("$VDT%_C$", "-"); + } + + // 值错误判断 + try { + maxValue = Math.abs(Double.parseDouble(vdeviation1.getFmaxValue().toString())); + minValue = Math.abs(Double.parseDouble(vdeviation1.getMinValue().toString())); + aveValue = Math.abs(Double.parseDouble(vdeviation1.getMeanValue().toString())); + cp95Value = Math.abs(Double.parseDouble(vdeviation1.getCp95Value().toString())); + limit = Math.abs(Double.parseDouble(vdeviationLimit)); + } catch (Exception e) { + strResultVdeviationdataValue += "注意:从上表中可以看出" + strLineBaseName + "电压偏差数据存在异常(不是数值类型)。"; + } + + if ("".equals(strResultVdeviationdataValue)) { + if (!(maxValue >= minValue && maxValue >= aveValue && maxValue >= cp95Value)) { + strResultVdeviationdataValue += "注意:从上表中可以看出" + strLineBaseName + + "电压偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。"; + } else if (aveValue < minValue) { + strResultVdeviationdataValue += "注意:从上表中可以看出" + strLineBaseName + + "电压偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。"; + } else if (cp95Value < minValue) { + strResultVdeviationdataValue += "注意:从上表中可以看出" + strLineBaseName + + "电压偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。"; + } + } + // 限值判断 + if (maxValue > limit) { + if (!"".equals(tmpstrResultVdeviationdata)) + tmpstrResultVdeviationdata += "、"; + tmpstrResultVdeviationdata += tmpstrMap + "相"; + } + + // 假如为空则所有的都满足 + if ("".equals(tmpstrResultVdeviationdata)) { + strResultVdeviationdata += "从上表中可以看出" + strLineBaseName + "A、B、C三相电压偏差满足国标限值(10%)的要求。"; + } else { + strAnalysis += tmpstrResultVdeviationdata + "电压偏差不满足国标限值(10%)的要求。"; + strResultVdeviationdata += "从上表中可以看出" + strLineBaseName + tmpstrResultVdeviationdata + + "电压偏差不满足国标限值(10%)的要求。"; + } + + reportmap.put("$ResultVdeviationdata$", strResultVdeviationdata); + reportmap.put("$ResultVdeviationdataValue$", strResultVdeviationdataValue); + strError += strResultVdeviationdataValue; + + /************************************************************** + **** 频率偏差 + ***************************************************************/ + ReportValue valueOfFreValue = (ReportValue) this.listFrequency.get(1).getList().get(0); + String valueOfFreLimit = judgeNull(this.listFrequency.get(1).getOverLimit());// 获取频率偏差国标限值 + reportmap.put("$FRE_L$", valueOfFreLimit); + String strResultFre = ""; + String tmpstrResultFre = ""; + String strResultFreValue = ""; + + reportmap.put("$FREX$", judgeNull(valueOfFreValue.getFmaxValue())); + reportmap.put("$FREN$", judgeNull(valueOfFreValue.getMinValue())); + reportmap.put("$FREE$", judgeNull(valueOfFreValue.getMeanValue())); + reportmap.put("$FRE%$", judgeNull(valueOfFreValue.getCp95Value())); + + /************************************ + **** 三张大表取值 + **************************************/ + reportmap.put("$FV0L$", valueOfFreLimit); + reportmap.put("$FV0X$", judgeNull(valueOfFreValue.getFmaxValue())); + reportmap.put("$FV0N$", judgeNull(valueOfFreValue.getMinValue())); + reportmap.put("$FV0E$", judgeNull(valueOfFreValue.getMeanValue())); + reportmap.put("$FV0%$", judgeNull(valueOfFreValue.getCp95Value())); + + try { + maxValue = Math.abs(Double.parseDouble(valueOfFreValue.getFmaxValue().toString())); + minValue = Math.abs(Double.parseDouble(valueOfFreValue.getMinValue().toString())); + aveValue = Math.abs(Double.parseDouble(valueOfFreValue.getMeanValue().toString())); + cp95Value = Math.abs(Double.parseDouble(valueOfFreValue.getCp95Value().toString())); + limit = Math.abs(Double.parseDouble(valueOfFreLimit)); + } catch (Exception e) { + strResultFreValue += "注意:从上表中可以看出" + strLineBaseName + "频率偏差数据存在异常(不是数值类型)。"; + } + + if (maxValue > limit) { + tmpstrResultFre += "最大值为:" + valueOfFreValue.getFmaxValue().toString() + "Hz"; + } + if (minValue > limit) { + tmpstrResultFre += "最小值为:" + valueOfFreValue.getMinValue().toString() + "Hz"; + } + if (aveValue > limit) { + tmpstrResultFre += "平均值为:" + valueOfFreValue.getMeanValue().toString() + "Hz"; + } + if (cp95Value > limit) { + tmpstrResultFre += "95%概率值为:" + valueOfFreValue.getCp95Value().toString() + "Hz"; + } + + if (!(maxValue >= minValue && maxValue >= aveValue && maxValue >= cp95Value)) { + strResultFreValue += "注意:从上表中可以看出" + strLineBaseName + + "频率偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。"; + } else if (aveValue < minValue) { + strResultFreValue += "注意:从上表中可以看出" + strLineBaseName + + "频率偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。"; + } else if (cp95Value < minValue) { + strResultFreValue += "注意:从上表中可以看出" + strLineBaseName + + "频率偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。"; + } + + if ("".equals(tmpstrResultFre)) { + reportmap.put("$FV0R$", "合格");// 三张大表取值 + strResultFre += "从上表中可以看出" + strLineBaseName + "频率偏差均满足国标限值(±" + valueOfFreLimit + "Hz)的要求。"; + } else { + reportmap.put("$FV0R$", "不合格");// 三张大表取值 + strAnalysis += tmpstrResultFre + ",均不满足国标限值(±" + valueOfFreLimit + "Hz)的要求。"; + strResultFre += "从上表中可以看出" + strLineBaseName + "频率偏差" + tmpstrResultFre + ",均不满足国标限值(±" + valueOfFreLimit + + "Hz)的要求。"; + } + + reportmap.put("$ResultFre$", strResultFre); + reportmap.put("$ResultFreValue$", strResultFreValue); + strError += strResultFreValue; + + /************************************************************** + **** 三相电压不平衡度 + ***************************************************************/ + ReportValue valueOfThree = (ReportValue) this.listThreephase.get(0).getList().get(0); + String valueOfThreeLimit = judgeNull(this.listThreephase.get(0).getOverLimit());// 获取三相电压不平衡度国标限值 + reportmap.put("$THE_L$", valueOfThreeLimit); + String strResultThree = ""; + String tmpstrResultThree = ""; + String strResultThreeValue = ""; + reportmap.put("$THEX$", judgeNull(valueOfThree.getFmaxValue())); + reportmap.put("$THEN$", judgeNull(valueOfThree.getMinValue())); + reportmap.put("$THEE$", judgeNull(valueOfThree.getMeanValue())); + reportmap.put("$THE%$", judgeNull(valueOfThree.getCp95Value())); + + /************************************ + **** 三张大表取值 + **************************************/ + reportmap.put("$TV0L$", valueOfThreeLimit); + reportmap.put("$TV0X$", judgeNull(valueOfThree.getFmaxValue())); + reportmap.put("$TV0N$", judgeNull(valueOfThree.getMinValue())); + reportmap.put("$TV0E$", judgeNull(valueOfThree.getMeanValue())); + reportmap.put("$TV0%$", judgeNull(valueOfThree.getCp95Value())); + + try { + maxValue = Double.parseDouble(valueOfThree.getFmaxValue().toString()); + minValue = Double.parseDouble(valueOfThree.getMinValue().toString()); + aveValue = Double.parseDouble(valueOfThree.getMeanValue().toString()); + cp95Value = Double.parseDouble(valueOfThree.getCp95Value().toString()); + limit = Double.parseDouble(valueOfThreeLimit); + } catch (Exception e) { + strResultThreeValue += "注意:从上表中可以看出" + strLineBaseName + "三相电压不平衡度数据存在异常(不是数值类型)。"; + } + if (cp95Value > limit) { + reportmap.put("$TV0R$", "不合格");// 三张大表取值 + tmpstrResultThree += "三相电压不平衡度95%概率值为:" + valueOfThree.getCp95Value().toString(); + } else { + reportmap.put("$TV0R$", "合格");// 三张大表取值 + } + + if (!(maxValue >= minValue && maxValue >= aveValue && maxValue >= cp95Value)) { + strResultThreeValue += "注意:从上表中可以看出" + strLineBaseName + + "三相电压不平衡度数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。"; + } else if (aveValue < minValue) { + strResultThreeValue += "注意:从上表中可以看出" + strLineBaseName + + "三相电压不平衡度数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。"; + } else if (cp95Value < minValue) { + strResultThreeValue += "注意:从上表中可以看出" + strLineBaseName + + "三相电压不平衡度数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。"; + } + + if ("".equals(tmpstrResultThree)) { + strResultThree += "三相电压不平衡度根据国标标准测量结果以95%概率值作为判断是否合格的依据,从上表中可以看出" + strLineBaseName + tmpstrResultThree + + ",满足国标限值(" + valueOfThreeLimit + "%)的要求。"; + } else { + strAnalysis += tmpstrResultThree + ",不满足国标限值(" + valueOfThreeLimit + "%)的要求。"; + strResultThree += "三相电压不平衡度根据国标标准测量结果以95%概率值作为判断是否合格的依据,从上表中可以看出" + strLineBaseName + tmpstrResultThree + + ",不满足国标限值(" + valueOfThreeLimit + "%)的要求。"; + } + + reportmap.put("$ResultThree$", strResultThree); + reportmap.put("$ResultThreeValue$", strResultThreeValue); + strError += strResultThreeValue; + + /************************************************************** + **** 电压闪变 + ***************************************************************/ + String valueOfFlickerLimit = judgeNull(this.listFlicker.get(1).getOverLimit());// 获取电压长时闪变的限值 + reportmap.put("$PLT_L$", valueOfFlickerLimit); + String strResultFlicker = ""; + String tmpstrResultFlicker = ""; + String strResultFlickerValue = ""; + String strPhase = "";// 相别,A、B、C + String strType = "";// 长闪还是短闪;S:短闪;L:长闪 + String strValueType = "";// 值类型,最大,最小,平均,95%概率值 + try { + if (Double.parseDouble(plt1.getFmaxValue().toString()) > Double.parseDouble(valueOfFlickerLimit)) { + if (!"".equals(tmpstrResultFlicker)) + tmpstrResultFlicker += ","; + tmpstrResultFlicker += atype + "最大值为:" + plt1.getFmaxValue().toString(); + reportmap.put("$" + "L" + "V0R_" + "A" + "$", "不合格"); + } else { + reportmap.put("$" + "L" + "V0R_" + "A" + "$", "合格"); + } + + if (Double.parseDouble(plt2.getFmaxValue().toString()) > Double.parseDouble(valueOfFlickerLimit)) { + if (!"".equals(tmpstrResultFlicker)) + tmpstrResultFlicker += ","; + tmpstrResultFlicker += btype + "最大值为:" + plt2.getFmaxValue().toString(); + reportmap.put("$" + "L" + "V0R_" + "B" + "$", "不合格"); + } else { + reportmap.put("$" + "L" + "V0R_" + "B" + "$", "合格"); + } + + if (Double.parseDouble(plt3.getFmaxValue().toString()) > Double.parseDouble(valueOfFlickerLimit) && pttype != 2) { + if (!"".equals(tmpstrResultFlicker)) + tmpstrResultFlicker += ","; + tmpstrResultFlicker += ctype + "最大值为:" + plt3.getFmaxValue().toString(); + reportmap.put("$" + "L" + "V0R_" + "C" + "$", "不合格"); + } else { + reportmap.put("$" + "L" + "V0R_" + "C" + "$", "合格"); + } + } catch (Exception e) { + if ("".equals(strResultFlickerValue)) + strResultFlickerValue += "注意:从上表中可以看出" + strLineBaseName + "长时闪变数据存在异常(不是数值类型)。"; + } + + reportmap.put("$PSTX_A$", judgeNull(pst1.getFmaxValue())); + reportmap.put("$PSTN_A$", judgeNull(pst1.getMinValue())); + reportmap.put("$PSTE_A$", judgeNull(pst1.getMeanValue())); + reportmap.put("$PST%_A$", judgeNull(pst1.getCp95Value())); + reportmap.put("$PSTX_B$", judgeNull(pst2.getFmaxValue())); + reportmap.put("$PSTN_B$", judgeNull(pst2.getMinValue())); + reportmap.put("$PSTE_B$", judgeNull(pst2.getMeanValue())); + reportmap.put("$PST%_B$", judgeNull(pst2.getCp95Value())); + if (pttype != 2) { + reportmap.put("$PSTX_C$", judgeNull(pst3.getFmaxValue())); + reportmap.put("$PSTN_C$", judgeNull(pst3.getMinValue())); + reportmap.put("$PSTE_C$", judgeNull(pst3.getMeanValue())); + reportmap.put("$PST%_C$", judgeNull(pst3.getCp95Value())); + } else { + reportmap.put("$PSTX_C$", "-"); + reportmap.put("$PSTN_C$", "-"); + reportmap.put("$PSTE_C$", "-"); + reportmap.put("$PST%_C$", "-"); + } + + reportmap.put("$PLTX_A$", judgeNull(plt1.getFmaxValue())); + reportmap.put("$PLTN_A$", judgeNull(plt1.getMinValue())); + reportmap.put("$PLTE_A$", judgeNull(plt1.getMeanValue())); + reportmap.put("$PLT%_A$", judgeNull(plt1.getCp95Value())); + reportmap.put("$PLTX_B$", judgeNull(plt2.getFmaxValue())); + reportmap.put("$PLTN_B$", judgeNull(plt2.getMinValue())); + reportmap.put("$PLTE_B$", judgeNull(plt2.getMeanValue())); + reportmap.put("$PLT%_B$", judgeNull(plt2.getCp95Value())); + if (pttype != 2) { + reportmap.put("$PLTX_C$", judgeNull(plt3.getFmaxValue())); + reportmap.put("$PLTN_C$", judgeNull(plt3.getMinValue())); + reportmap.put("$PLTE_C$", judgeNull(plt3.getMeanValue())); + reportmap.put("$PLT%_C$", judgeNull(plt3.getCp95Value())); + } else { + reportmap.put("$PLTX_C$", "-"); + reportmap.put("$PLTN_C$", "-"); + reportmap.put("$PLTE_C$", "-"); + reportmap.put("$PLT%_C$", "-"); + } + reportmap.put("$PLT_L$", valueOfFlickerLimit); + + /************************************ + **** 三张大表取值 + **************************************/ + reportmap.put("$" + "L" + "V0" + "X" + "_" + "A" + "$", judgeNull(plt1.getFmaxValue())); + reportmap.put("$" + "L" + "V0" + "E" + "_" + "A" + "$", judgeNull(plt1.getMeanValue())); + reportmap.put("$" + "L" + "V0" + "N" + "_" + "A" + "$", judgeNull(plt1.getMinValue())); + reportmap.put("$" + "L" + "V0" + "%" + "_" + "A" + "$", judgeNull(plt1.getCp95Value())); + reportmap.put("$" + "L" + "V0" + "X" + "_" + "B" + "$", judgeNull(plt2.getFmaxValue())); + reportmap.put("$" + "L" + "V0" + "E" + "_" + "B" + "$", judgeNull(plt2.getMeanValue())); + reportmap.put("$" + "L" + "V0" + "N" + "_" + "B" + "$", judgeNull(plt2.getMinValue())); + reportmap.put("$" + "L" + "V0" + "%" + "_" + "B" + "$", judgeNull(plt2.getCp95Value())); + reportmap.put("$" + "L" + "V0" + "X" + "_" + "C" + "$", judgeNull(plt3.getFmaxValue())); + reportmap.put("$" + "L" + "V0" + "E" + "_" + "C" + "$", judgeNull(plt3.getMeanValue())); + reportmap.put("$" + "L" + "V0" + "N" + "_" + "C" + "$", judgeNull(plt3.getMinValue())); + reportmap.put("$" + "L" + "V0" + "%" + "_" + "C" + "$", judgeNull(plt3.getCp95Value())); + reportmap.put("$LV0%_L$", valueOfFlickerLimit); + + reportmap.put("$" + "S" + "V0" + "X" + "_" + "A" + "$", judgeNull(pst1.getFmaxValue())); + reportmap.put("$" + "S" + "V0" + "E" + "_" + "A" + "$", judgeNull(pst1.getMeanValue())); + reportmap.put("$" + "S" + "V0" + "N" + "_" + "A" + "$", judgeNull(pst1.getMinValue())); + reportmap.put("$" + "S" + "V0" + "%" + "_" + "A" + "$", judgeNull(pst1.getCp95Value())); + reportmap.put("$" + "S" + "V0" + "X" + "_" + "B" + "$", judgeNull(pst2.getFmaxValue())); + reportmap.put("$" + "S" + "V0" + "E" + "_" + "B" + "$", judgeNull(pst2.getMeanValue())); + reportmap.put("$" + "S" + "V0" + "N" + "_" + "B" + "$", judgeNull(pst2.getMinValue())); + reportmap.put("$" + "S" + "V0" + "%" + "_" + "B" + "$", judgeNull(pst2.getCp95Value())); + reportmap.put("$" + "S" + "V0" + "X" + "_" + "C" + "$", judgeNull(pst3.getFmaxValue())); + reportmap.put("$" + "S" + "V0" + "E" + "_" + "C" + "$", judgeNull(pst3.getMeanValue())); + reportmap.put("$" + "S" + "V0" + "N" + "_" + "C" + "$", judgeNull(pst3.getMinValue())); + reportmap.put("$" + "S" + "V0" + "%" + "_" + "C" + "$", judgeNull(pst3.getCp95Value())); + + if ("".equals(tmpstrResultFlicker)) { + strResultFlicker += "电压长时闪变根据国标标准测量结果以最大值、最小值、95%概率值作为判断是否合格的依据,从上表中可以看出" + strLineBaseName + "长时闪变" + + tmpstrResultFlicker + ",其满足国标限值(" + valueOfFlickerLimit + ")的要求。"; + } else { + strAnalysis += "长时闪变" + tmpstrResultFlicker + ",其不满足国标限值(" + valueOfFlickerLimit + ")的要求。"; + strResultFlicker += "电压长时闪变根据国标标准测量结果以最大值、最小值、95%概率值作为判断是否合格的依据,从上表中可以看出" + strLineBaseName + "长时闪变" + + tmpstrResultFlicker + ",其不满足国标限值(" + valueOfFlickerLimit + ")的要求。"; + } + + reportmap.put("$ResultFlicker$", strResultFlicker); + reportmap.put("$ResultFlickerValue$", strResultFlickerValue); + strError += strResultFlickerValue; + + /************************************************************** + **** 电压含有率 + ***************************************************************/ + String strResultVoltageRate = ""; + String tmpstrResultVoltageRate = ""; + String strResultVoltageRateValue = ""; + String strCurrentA, strCurrentB, strCurrentC, strLimit; + // 获取25次谐波 + for (int i = 1; i < 25; i++) { + String strMap = "$RV"; + String strCurrentRate = strMap + (i + 1) + "%"; + + // 基波电压含有率 + strCurrentA = judgeNull(((ReportValue) this.listVoltageRate.get(i).getList().get(0)).getCp95Value()); + strCurrentB = judgeNull(((ReportValue) this.listVoltageRate.get(i).getList().get(1)).getCp95Value()); + strCurrentC = judgeNull(((ReportValue) this.listVoltageRate.get(i).getList().get(2)).getCp95Value()); + strLimit = judgeNull(this.listVoltageRate.get(i).getOverLimit()); + + reportmap.put(strCurrentRate + "_A$", strCurrentA); + reportmap.put(strCurrentRate + "_B$", strCurrentB); + if (pttype != 2) { + reportmap.put(strCurrentRate + "_C$", strCurrentC); + } else { + reportmap.put(strCurrentRate + "_C$", "-"); + } + reportmap.put(strCurrentRate + "_L$", strLimit); + + /************************************ + **** 三张大表取值 + **************************************/ + reportmap.put("$CV" + (i + 1) + "X_A$", + judgeNull(((ReportValue) this.listVoltageRate.get(i).getList().get(0)).getFmaxValue())); + reportmap.put("$CV" + (i + 1) + "X_B$", + judgeNull(((ReportValue) this.listVoltageRate.get(i).getList().get(1)).getFmaxValue())); + + reportmap.put("$CV" + (i + 1) + "N_A$", + judgeNull(((ReportValue) this.listVoltageRate.get(i).getList().get(0)).getMinValue())); + reportmap.put("$CV" + (i + 1) + "N_B$", + judgeNull(((ReportValue) this.listVoltageRate.get(i).getList().get(1)).getMinValue())); + + reportmap.put("$CV" + (i + 1) + "E_A$", + judgeNull(((ReportValue) this.listVoltageRate.get(i).getList().get(0)).getMeanValue())); + reportmap.put("$CV" + (i + 1) + "E_B$", + judgeNull(((ReportValue) this.listVoltageRate.get(i).getList().get(1)).getMeanValue())); + + if (pttype != 2) { + reportmap.put("$CV" + (i + 1) + "X_C$", + judgeNull(((ReportValue) this.listVoltageRate.get(i).getList().get(2)).getFmaxValue())); + reportmap.put("$CV" + (i + 1) + "N_C$", + judgeNull(((ReportValue) this.listVoltageRate.get(i).getList().get(2)).getMinValue())); + reportmap.put("$CV" + (i + 1) + "E_C$", + judgeNull(((ReportValue) this.listVoltageRate.get(i).getList().get(2)).getMeanValue())); + reportmap.put("$CV" + (i + 1) + "%_C$", strCurrentC); + } else { + reportmap.put("$CV" + (i + 1) + "X_C$", "-"); + reportmap.put("$CV" + (i + 1) + "N_C$", "-"); + reportmap.put("$CV" + (i + 1) + "E_C$", "-"); + reportmap.put("$CV" + (i + 1) + "%_C$", "-"); + } + + reportmap.put("$CV" + (i + 1) + "%_A$", strCurrentA); + reportmap.put("$CV" + (i + 1) + "%_B$", strCurrentB); + reportmap.put("$CV" + (i + 1) + "L$", strLimit); + + try { + maxValue = Double.parseDouble(strCurrentA); + minValue = Double.parseDouble(strCurrentB); + aveValue = Double.parseDouble(strCurrentC); + limit = Double.parseDouble(strLimit); + } catch (Exception e) { + strResultVoltageRateValue += "注意:从上表中可以看出" + strLineBaseName + "谐波电压含有率95%概率值数据存在异常(不是数值类型)。"; + } + + String tmpstrResult = ""; + if (maxValue > limit) { + if (!"".equals(tmpstrResult)) + tmpstrResult += "、"; + tmpstrResult += "A"; + reportmap.put("$CV" + (i + 1) + "R_A$", "不合格");// 三张大表取值 + } else + reportmap.put("$CV" + (i + 1) + "R_A$", "合格");// 三张大表取值 + if (minValue > limit) { + if (!"".equals(tmpstrResult)) + tmpstrResult += "、"; + tmpstrResult += "B"; + reportmap.put("$CV" + (i + 1) + "R_B$", "不合格");// 三张大表取值 + } else + reportmap.put("$CV" + (i + 1) + "R_B$", "合格");// 三张大表取值 + if (aveValue > limit) { + if (!"".equals(tmpstrResult)) + tmpstrResult += "、"; + tmpstrResult += "C"; + reportmap.put("$CV" + (i + 1) + "R_C$", "不合格");// 三张大表取值 + } else + reportmap.put("$CV" + (i + 1) + "R_C$", "合格");// 三张大表取值 + // 判断单个结论是否存在 + if (!"".equals(tmpstrResult)) { + tmpstrResultVoltageRate += (i + 1) + "次谐波电压含有率95%概率值" + tmpstrResult + ";"; + } + } + + // 假如为空则所有的都满足 + if ("".equals(tmpstrResultVoltageRate)) { + strResultVoltageRate += "从上表中可以看出" + strLineBaseName + "2-25次谐波电压含有率95%概率值均满足国标限值要求。"; + } else { + strAnalysis += tmpstrResultVoltageRate + "2-25次谐波电压含有率95%概率值均不满足国标限值要求。"; + strResultVoltageRate += "从上表中可以看出" + strLineBaseName + tmpstrResultVoltageRate + "均不满足国标限值要求。"; + } + + /************************************************************** + **** 电压总谐波畸变率(THD) + ***************************************************************/ + ReportValue distortion1 = (ReportValue) this.listDistortion.get(0).getList().get(0); + ReportValue distortion2 = (ReportValue) this.listDistortion.get(0).getList().get(1); + ReportValue distortion3 = (ReportValue) this.listDistortion.get(0).getList().get(2); + String distortionLimit = judgeNull(this.listDistortion.get(0).getOverLimit()); + reportmap.put("$DV0%_L$", distortionLimit); + + String strResultDistortion = ""; + String tmpstrResultDistortion = ""; + String strResultDistortionValue = ""; + + reportmap.put("$DV0%_A$", judgeNull(distortion1.getCp95Value())); + reportmap.put("$DV0%_B$", judgeNull(distortion2.getCp95Value())); + reportmap.put("$DV0%_C$", judgeNull(distortion3.getCp95Value())); + + /************************************ + **** 三张大表取值 + **************************************/ + reportmap.put("$TV0X_L$", distortionLimit); + reportmap.put("$TV0X_A$", judgeNull(distortion1.getFmaxValue())); + reportmap.put("$TV0E_A$", judgeNull(distortion1.getMeanValue())); + reportmap.put("$TV0N_A$", judgeNull(distortion1.getMinValue())); + reportmap.put("$TV0%_A$", judgeNull(distortion1.getCp95Value())); + + reportmap.put("$TV0X_B$", judgeNull(distortion2.getFmaxValue())); + reportmap.put("$TV0E_B$", judgeNull(distortion2.getMeanValue())); + reportmap.put("$TV0N_B$", judgeNull(distortion2.getMinValue())); + reportmap.put("$TV0%_B$", judgeNull(distortion2.getCp95Value())); + + reportmap.put("$TV0X_C$", judgeNull(distortion3.getFmaxValue())); + reportmap.put("$TV0E_C$", judgeNull(distortion3.getMeanValue())); + reportmap.put("$TV0N_C$", judgeNull(distortion3.getMinValue())); + reportmap.put("$TV0%_C$", judgeNull(distortion3.getCp95Value())); + + // 值错误判断 + try { + cp95ValueA = Math.abs(Double.parseDouble(distortion1.getCp95Value().toString())); + cp95ValueB = Math.abs(Double.parseDouble(distortion2.getCp95Value().toString())); + cp95ValueC = Math.abs(Double.parseDouble(distortion3.getCp95Value().toString())); + limit = Math.abs(Double.parseDouble(distortionLimit)); + } catch (Exception e) { + strResultDistortionValue += "注意:从上表中可以看出" + strLineBaseName + "电压总谐波畸变率(THD)数据存在异常(不是数值类型)。"; + } + // 限值判断 + if (cp95ValueA > limit) { + if (!"".equals(tmpstrResultDistortion)) + tmpstrResultDistortion += "、"; + tmpstrResultDistortion += atype; + reportmap.put("$TV0R_A$", "不合格");// 三张大表取值 + } else { + reportmap.put("$TV0R_A$", "合格");// 三张大表取值 + } + if (cp95ValueB > limit) { + if (!"".equals(tmpstrResultDistortion)) + tmpstrResultDistortion += "、"; + tmpstrResultDistortion += btype; + reportmap.put("$TV0R_B$", "不合格");// 三张大表取值 + } else { + reportmap.put("$TV0R_B$", "合格");// 三张大表取值 + } + if (cp95ValueC > limit && pttype != 2) { + if (!"".equals(tmpstrResultDistortion)) + tmpstrResultDistortion += "、"; + tmpstrResultDistortion += ctype; + reportmap.put("$TV0R_C$", "不合格");// 三张大表取值 + } else { + reportmap.put("$TV0R_C$", "合格");// 三张大表取值 + } + + // 假如为空则所有的都满足 + if ("".equals(tmpstrResultDistortion)) { + strResultDistortion += "电压总谐波畸变率(THD)95%概率值均满足国标限值要求。"; + } else { + strAnalysis += "电压总谐波畸变率(THD)95%概率值" + tmpstrResultDistortion + "均不满足国标限值要求。"; + strResultDistortion += "电压总谐波畸变率(THD)95%概率值" + tmpstrResultDistortion + "均不满足国标限值要求。"; + } + reportmap.put("$ResultVoltageRate$", strResultVoltageRate + strResultDistortion); + reportmap.put("$ResultVoltageRateValue$", strResultVoltageRateValue + strResultDistortionValue); + strError += strResultVoltageRateValue + strResultDistortionValue; + + /************************************************************** + **** 谐波电流幅值 + ***************************************************************/ + String strResultCurrent = ""; + String tmpstrResultCurrent = ""; + String strResultCurrentValue = ""; + // 获取25次谐波 + for (int i = 1; i < 25; i++) { + String strMap = "$RI"; + String strCurrent = strMap + (i + 1) + "%"; + + // 基波电压含有率 + strCurrentA = judgeNull(((ReportValue) this.listICurrent.get(i).getList().get(0)).getCp95Value()); + strCurrentB = judgeNull(((ReportValue) this.listICurrent.get(i).getList().get(1)).getCp95Value()); + strCurrentC = judgeNull(((ReportValue) this.listICurrent.get(i).getList().get(2)).getCp95Value()); + strLimit = judgeNull(this.listICurrent.get(i).getOverLimit()); + + reportmap.put(strCurrent + "_A$", strCurrentA); + reportmap.put(strCurrent + "_B$", strCurrentB); + reportmap.put(strCurrent + "_C$", strCurrentC); + reportmap.put(strCurrent + "_L$", strLimit); + + /************************************ + **** 三张大表取值 + **************************************/ + reportmap.put("$CI" + (i + 1) + "X_A$", judgeNull(((ReportValue) this.listICurrent.get(i).getList().get(0)).getFmaxValue())); + reportmap.put("$CI" + (i + 1) + "X_B$", judgeNull(((ReportValue) this.listICurrent.get(i).getList().get(1)).getFmaxValue())); + reportmap.put("$CI" + (i + 1) + "X_C$", judgeNull(((ReportValue) this.listICurrent.get(i).getList().get(2)).getFmaxValue())); + + reportmap.put("$CI" + (i + 1) + "N_A$", judgeNull(((ReportValue) this.listICurrent.get(i).getList().get(0)).getMinValue())); + reportmap.put("$CI" + (i + 1) + "N_B$", judgeNull(((ReportValue) this.listICurrent.get(i).getList().get(1)).getMinValue())); + reportmap.put("$CI" + (i + 1) + "N_C$", judgeNull(((ReportValue) this.listICurrent.get(i).getList().get(2)).getMinValue())); + + reportmap.put("$CI" + (i + 1) + "E_A$", judgeNull(((ReportValue) this.listICurrent.get(i).getList().get(0)).getMeanValue())); + reportmap.put("$CI" + (i + 1) + "E_B$", judgeNull(((ReportValue) this.listICurrent.get(i).getList().get(1)).getMeanValue())); + reportmap.put("$CI" + (i + 1) + "E_C$", judgeNull(((ReportValue) this.listICurrent.get(i).getList().get(2)).getMeanValue())); + + reportmap.put("$CI" + (i + 1) + "%_A$", strCurrentA); + reportmap.put("$CI" + (i + 1) + "%_B$", strCurrentB); + reportmap.put("$CI" + (i + 1) + "%_C$", strCurrentC); + reportmap.put("$CI" + (i + 1) + "L$", strLimit); + + try { + maxValue = Double.parseDouble(strCurrentA); + minValue = Double.parseDouble(strCurrentB); + aveValue = Double.parseDouble(strCurrentC); + limit = Double.parseDouble(strLimit); + } catch (Exception e) { + strResultCurrentValue += "注意:从上表中可以看出" + strLineBaseName + "谐波电流幅值95%概率值数据存在异常(不是数值类型)。"; + } + + String tmpstrResult = ""; + if (maxValue > limit) { + if (!"".equals(tmpstrResult)) + tmpstrResult += "、"; + tmpstrResult += "A"; + reportmap.put("$CI" + (i + 1) + "R_A$", "不合格");// 三张大表取值 + } else + reportmap.put("$CI" + (i + 1) + "R_A$", "合格");// 三张大表取值 + if (minValue > limit) { + if (!"".equals(tmpstrResult)) + tmpstrResult += "、"; + tmpstrResult += "B"; + reportmap.put("$CI" + (i + 1) + "R_B$", "不合格");// 三张大表取值 + } else + reportmap.put("$CI" + (i + 1) + "R_B$", "合格");// 三张大表取值 + if (aveValue > limit) { + if (!"".equals(tmpstrResult)) + tmpstrResult += "、"; + tmpstrResult += "C"; + reportmap.put("$CI" + (i + 1) + "R_C$", "不合格");// 三张大表取值 + } else + reportmap.put("$CI" + (i + 1) + "R_C$", "合格");// 三张大表取值 + // 判断单个结论是否存在 + if (!"".equals(tmpstrResult)) { + tmpstrResultCurrent += (i + 1) + "次谐波电流幅值95%概率值" + tmpstrResult + ";"; + } + } + + // 假如为空则所有的都满足 + if ("".equals(tmpstrResultCurrent)) { + strResultCurrent += "从上表中可以看出" + strLineBaseName + "2-25次谐波电流幅值95%概率值均满足国标限值要求。"; + } else { + strAnalysis += tmpstrResultCurrent + "均不满足国标限值要求。"; + strResultCurrent += "从上表中可以看出" + strLineBaseName + tmpstrResultCurrent + "均不满足国标限值要求。"; + } + + reportmap.put("$ResultCurrent$", strResultCurrent); + reportmap.put("$ResultCurrentValue$", strResultCurrentValue); + strError += strResultCurrentValue; + + // 测试结果填写 + reportmap.put("$ResultTitle$", String.format("通过对(%s——%s)时间段内%s电能质量统计数据分析后得出以下结论:", + new String[]{DateUtil.format(startDate, "yyyy年MM月dd日 HH时mm分ss秒"), + DateUtil.format(endDate, "yyyy年MM月dd日 HH时mm分ss秒"),strLineBaseName}));// 结论标题 + reportmap.put("$Result_VD$", String.format("(1)电压偏差:%s", new String[]{strResultVdeviationdata}));// 电压偏差 + reportmap.put("$Result_FRE$", String.format("(2)频率偏差:%s", new String[]{strResultFre}));// 频率偏差 + reportmap.put("$Result_THE$", String.format("(3)三相电压不平衡度:%s", new String[]{strResultThree}));// 三相电压不平衡度 + reportmap.put("$Result_FIC$", String.format("(4)电压长时闪变:%s", new String[]{strResultFlicker}));// 电压长时闪变 + reportmap.put("$Result_VOL$", String.format("(5)谐波电压:%s", new String[]{strResultVoltageRate}));// 谐波电压 + reportmap.put("$Result_CUR$", String.format("(6)谐波电流:%s", new String[]{strResultCurrent}));// 谐波电流 + // 分析建议填写 + if (!"".equals(strAnalysis) || !"".equals(strError)) { + reportmap.put("$Analysis$", "根据统计数据结果分析,监测点为:" + name + "," + strAnalysis + strError);// 分析建议 + } else { + reportmap.put("$Analysis$", "根据统计数据结果分析,监测点为:" + name + ",电能质量数据满足国标限值要求。");// 分析建议 + } + + /************************************ + **** 三张大表取值 有功:0-11 无功:12-23 视在:24-31 基波有功汇总:32-35 基波无功汇总:36-39 + * 基波视在汇总:40-43 功率因数:44-46 + **************************************/ + ReportValue powerDto1 = (ReportValue) this.listPower.get(0).getList().get(3); + ReportValue powerDto2 = (ReportValue) this.listPower.get(1).getList().get(3); + ReportValue powerDto3 = (ReportValue) this.listPower.get(2).getList().get(3); + ReportValue powerDto4 = (ReportValue) this.listPower.get(3).getList().get(3); + reportmap.put("$BF0X$", judgeNull(powerDto1.getFmaxValue())); + reportmap.put("$BF0N$", judgeNull(powerDto1.getMinValue())); + reportmap.put("$BF0E$", judgeNull(powerDto1.getMeanValue())); + + reportmap.put("$NF0X$", judgeNull(powerDto2.getFmaxValue())); + reportmap.put("$NF0N$", judgeNull(powerDto2.getMinValue())); + reportmap.put("$NF0E$", judgeNull(powerDto2.getMeanValue())); + + reportmap.put("$SF0X$", judgeNull(powerDto3.getFmaxValue())); + reportmap.put("$SF0N$", judgeNull(powerDto3.getMinValue())); + reportmap.put("$SF0E$", judgeNull(powerDto3.getMeanValue())); + + reportmap.put("$YF0X$", judgeNull(powerDto4.getFmaxValue())); + reportmap.put("$YF0N$", judgeNull(powerDto4.getMinValue())); + reportmap.put("$YF0E$", judgeNull(powerDto4.getMeanValue())); + formatter = new SimpleDateFormat("yyyyMMddHHmmss");// 报告时分秒格式 + + WordUtil2 oRTF = new WordUtil2(); + try { + oRTF.getWord(rtfPath, reportmap, name + formatter.format(currentTime) + ".docx", response, session); + } catch (Exception e) { + log.error("获取报告发生异常,异常是" + e.getMessage()); + } + + return "success"; + } + + /** + * 解析base64,返回图片所在路径 + * + * @param base64Info + * @return + */ + @SuppressWarnings("restriction") + private String decodeBase64(byte[] base64Info) { + if (base64Info.length == 0) { + return null; + } + BASE64Encoder decoder = new BASE64Encoder(); + + return decoder.encode(base64Info); + } + + private void transformData(List list, List listValue, List listOverlimit, boolean... b) { + int offset = b[0] ? 3 : 1; + offset = (b.length == 2 && !b[1]) ? 4 : offset; + int i = 0; + + for (int index = 0; index < listValue.size(); index += offset) { + if (i == listOverlimit.size()) { + break; + } + ReportTarget reportTarget = new ReportTarget(); + reportTarget.setList(listValue.subList(index, index + offset)); + Float overLimit = listOverlimit.get(i).getOverLimit(); + reportTarget.setOverLimit(overLimit); + + switch (listOverlimit.get(i).getCode()) { + case 1: + for (int k = 0; k < reportTarget.getList().size(); k++) { + if (null == reportTarget.getList().get(k).getFmaxValue()) { + break; + } else if (reportTarget.getList().get(k).getFmaxValue().floatValue() > overLimit.floatValue()) { + reportTarget.setPass(EnumPass.NOPASS.getCode()); + break; + } else { + reportTarget.setPass(EnumPass.PASS.getCode()); + } + } + break; + case 2: + for (int k = 0; k < reportTarget.getList().size(); k++) { + if (null == reportTarget.getList().get(k).getMinValue()) { + break; + } else if (reportTarget.getList().get(k).getMinValue().floatValue() > overLimit.floatValue()) { + reportTarget.setPass(EnumPass.NOPASS.getCode()); + break; + } else { + reportTarget.setPass(EnumPass.PASS.getCode()); + } + } + break; + case 3: + for (int k = 0; k < reportTarget.getList().size(); k++) { + if (null == reportTarget.getList().get(k).getMeanValue()) { + break; + } else if (reportTarget.getList().get(k).getMeanValue().floatValue() > overLimit.floatValue()) { + reportTarget.setPass(EnumPass.NOPASS.getCode()); + break; + } else { + reportTarget.setPass(EnumPass.PASS.getCode()); + } + } + break; + case 4: + for (int k = 0; k < reportTarget.getList().size(); k++) { + if (null == reportTarget.getList().get(k).getCp95Value()) { + break; + } else if (reportTarget.getList().get(k).getCp95Value().floatValue() > overLimit.floatValue()) { + reportTarget.setPass(EnumPass.NOPASS.getCode()); + break; + } else { + reportTarget.setPass(EnumPass.PASS.getCode()); + } + } + break; + default: + break; + } + + i++; + list.add(reportTarget); + } + } + + // 基波幅值 + public void getVirtualData(ReportQueryParam param) { + + List listVirtual = reportService.getVirtualData(param); + + List list = new ArrayList<>(); + + for (int i = 0; i < 3; i++) { + Pass pass = new Pass(null); + list.add(pass); + } + + this.listVirtual = new ArrayList<>(); + + transformData(this.listVirtual, listVirtual, list, true); + + + } + + // 功率 + public void getPowerData(ReportQueryParam param) { + List listPower = reportService.getPowerData(param); + + List list = new ArrayList<>(); + + for (int i = 0; i < 4; i++) { + Pass pass = new Pass(null); + list.add(pass); + } + this.listPower = new ArrayList<>(); + transformData(this.listPower, listPower, list, true, false); + } + + // 闪变 + public void getFlicker(ReportQueryParam param, Overlimit overLimit) { + List listFlicker = reportService.getFlickerData(param); + List list = new ArrayList<>(); + for (int i = 0; i < 2; i++) { + Pass pass; + if (i == 1) { + pass = new Pass(overLimit.getFlicker(), EnumPass.MAX.getCode()); + } else { + pass = new Pass(null); + } + list.add(pass); + } + this.listFlicker = new ArrayList<>(); + transformData(this.listFlicker, listFlicker, list, true); + } + + // 电压偏差 + public void getVdeviation(ReportQueryParam param, Overlimit overLimit) { + List listVdeviation = reportService.getVdeviation(param); + List list = new ArrayList<>(); + for (int i = 0; i < 2; i++) { + Pass pass; + pass = new Pass(overLimit.getVoltageDev(), EnumPass.MAX.getCode()); + list.add(pass); + } + this.listVdeviation = new ArrayList<>(); + transformData(this.listVdeviation, listVdeviation, list, true); + } + + // 畸变率 + public void getDistortion(ReportQueryParam param, Overlimit overLimit) { + List listDistortion = reportService.getDistortionData(param); + List list = new ArrayList<>(); + for (int i = 0; i < 2; i++) { + Pass pass; + + if (i == 0) { + pass = new Pass(overLimit.getUaberrance(), EnumPass.MAX.getCode()); + } else { + pass = new Pass(null); + } + + list.add(pass); + } + this.listDistortion = new ArrayList<>(); + transformData(this.listDistortion, listDistortion, list, true); + } + + // 频率 + public void getFre(ReportQueryParam param, Overlimit overLimit) { + List listFrequency = reportService.getFrequencyData(param); + + List list = new ArrayList<>(); + + for (int i = 0; i < 2; i++) { + Pass pass; + if (i == 1) { + pass = new Pass(overLimit.getFreqDev(), EnumPass.MAX.getCode()); + } else { + pass = new Pass(null); + } + list.add(pass); + } + + this.listFrequency = new ArrayList<>(); + transformData(this.listFrequency, listFrequency, list, false); + } + + + // 三相不平衡 + public void getThreePhase(ReportQueryParam param, Overlimit overLimit) { + List listThreephase = reportService.getThreephase(param); + + List list = new ArrayList<>(); + + for (int i = 0; i < 8; i++) { + Pass pass; + + if (i == 0) { + pass = new Pass(overLimit.getUbalance(), EnumPass.CP95.getCode()); + } else { + pass = new Pass(null); + } + + list.add(pass); + } + + this.listThreephase = new ArrayList<>(); + transformData(this.listThreephase, listThreephase, list, false); + } + + + // 谐波电流 + public void getCurrentRate(ReportQueryParam param, Overlimit overLimit) { + List listICurrent = reportService.getICurrent(param); + + List list = new ArrayList<>(); + List iHarmList = getIHarmList(overLimit); + for (int i = 0; i < 50; i++) { + Pass pass; + if (i 0) { + pass = new Pass(iHarmList.get(i - 1), + EnumPass.CP95.getCode()); + } else { + pass = new Pass(null); + } + list.add(pass); + } + + this.listICurrent = new ArrayList<>(); + transformData(this.listICurrent, listICurrent, list, true); + } + // 谐波电压 + public void getVoltageRate(ReportQueryParam param, Overlimit overLimit) { + List listVoltageRate = reportService.getVoltageRate(param); + + List list = new ArrayList<>(); + List vHarmList = getVHarmList(overLimit); + for (int i = 0; i < 51; i++) { + Pass pass; + + if (i == 0) { + pass = new Pass(null); + } else if (i == 50) { + pass = new Pass(overLimit.getUaberrance(), EnumPass.MAX.getCode()); + } else if (i < vHarmList.size() + 1) { + pass = new Pass(vHarmList.get(i - 1), + EnumPass.CP95.getCode()); + } else { + pass = new Pass(null); + } + + list.add(pass); + } + + this.listVoltageRate = new ArrayList<>(); + transformData(this.listVoltageRate, listVoltageRate, list, true); + } + public String judgeNull(Float result) { + return (result == null) ? "/" : result.toString(); + } + + /** + * 谐波电流限值 + * @param overLimit + * @return + */ + public List getIHarmList(Overlimit overLimit) { + List list = new ArrayList<>(); + list.add(overLimit.getIharm2()); + list.add(overLimit.getIharm3()); + list.add(overLimit.getIharm4()); + list.add(overLimit.getIharm5()); + list.add(overLimit.getIharm6()); + list.add(overLimit.getIharm7()); + list.add(overLimit.getIharm8()); + list.add(overLimit.getIharm9()); + list.add(overLimit.getIharm10()); + list.add(overLimit.getIharm11()); + list.add(overLimit.getIharm12()); + list.add(overLimit.getIharm13()); + list.add(overLimit.getIharm14()); + list.add(overLimit.getIharm15()); + list.add(overLimit.getIharm16()); + list.add(overLimit.getIharm17()); + list.add(overLimit.getIharm18()); + list.add(overLimit.getIharm19()); + list.add(overLimit.getIharm20()); + list.add(overLimit.getIharm21()); + list.add(overLimit.getIharm22()); + list.add(overLimit.getIharm23()); + list.add(overLimit.getIharm24()); + list.add(overLimit.getIharm25()); + return list; + } + + /** + * 谐波电压限值 + * @return + */ + public List getVHarmList(Overlimit overLimit) { + List list = new ArrayList<>(); + list.add(overLimit.getUharm2()); + list.add(overLimit.getUharm3()); + list.add(overLimit.getUharm4()); + list.add(overLimit.getUharm5()); + list.add(overLimit.getUharm6()); + list.add(overLimit.getUharm7()); + list.add(overLimit.getUharm8()); + list.add(overLimit.getUharm9()); + list.add(overLimit.getUharm10()); + list.add(overLimit.getUharm11()); + list.add(overLimit.getUharm12()); + list.add(overLimit.getUharm13()); + list.add(overLimit.getUharm14()); + list.add(overLimit.getUharm15()); + list.add(overLimit.getUharm16()); + list.add(overLimit.getUharm17()); + list.add(overLimit.getUharm18()); + list.add(overLimit.getUharm19()); + list.add(overLimit.getUharm20()); + list.add(overLimit.getUharm21()); + list.add(overLimit.getUharm22()); + list.add(overLimit.getUharm23()); + list.add(overLimit.getUharm24()); + list.add(overLimit.getUharm25()); + return list; + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatDataIDMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatDataIDMapper.java new file mode 100644 index 000000000..9ddcf978e --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatDataIDMapper.java @@ -0,0 +1,16 @@ +package com.njcn.harmonic.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.day.RStatDataIDPO; + +/** + *

+ * Mapper 接口 + *

+ * + * @author wr + * @since 2023-04-17 + */ +public interface RStatDataIDMapper extends BaseMapper { + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/ReportMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/ReportMapper.java new file mode 100644 index 000000000..15047c89b --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/ReportMapper.java @@ -0,0 +1,130 @@ +package com.njcn.harmonic.mapper; + +import com.njcn.harmonic.pojo.param.ReportQueryParam; +import com.njcn.harmonic.pojo.vo.ReportValue; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 谐波报告查询 + */ +public interface ReportMapper { + /** + * 获取电流有效值 + * @return + */ + List getVirtualDataI(@Param("param") ReportQueryParam param); + + /** + * 获取电压有效值 + * @return + */ + List getVirtualDataV(@Param("param") ReportQueryParam param); + + /** + * CP95条数 + * @param param + * @return + */ + Integer getTotalCP95Day(@Param("param")ReportQueryParam param); + /** + * CP95条数 + * @param param + * @return + */ + Integer getTotalPltCP95Day(@Param("param")ReportQueryParam param); + /** + * CP95条数 + * @param param + * @return + */ + Integer getTotalPstCP95Day(@Param("param")ReportQueryParam param); + + + List getVVirtualData(@Param("param")ReportQueryParam param); + + /** + * 获取有功功率 + * @param param + * @return + */ + List getPowerP(@Param("param")ReportQueryParam param); + + /** + * 无功功率 + * @param param + * @return + */ + List getPowerQ(@Param("param")ReportQueryParam param); + + /** + * 视在功率 + * @param param + * @return + */ + List getPowerS(@Param("param")ReportQueryParam param); + + /** + * 功率因数 + * @param param + * @return + */ + List getPF(@Param("param")ReportQueryParam param); + + /** + * 短时闪变 + * @param param + * @return + */ + List getFlickerData(@Param("param")ReportQueryParam param); + + /** + * 长时闪变 + * @param param + * @return + */ + List getLFlickerData(@Param("param")ReportQueryParam param); + + /** + * 电压负偏差 + * @param param + * @return + */ + List getUVdeviationData(@Param("param")ReportQueryParam param); + + /** + * 电压正偏差 + * @param param + * @return + */ + List getLVdeviationData(@Param("param")ReportQueryParam param); + + /** + * 获取电压畸变率 + * @param param + * @return + */ + List getDistortionDataV(@Param("param")ReportQueryParam param); + + /** + * 获取电流畸变率 + * @param param + * @return + */ + List getDistortionDataI(@Param("param")ReportQueryParam param); + + /** + *频率 + * @param param + * @return + */ + List getFrequencyData(@Param("param")ReportQueryParam param); + + /** + * + * @param param + * @return + */ + List getDEVFrequencyData(@Param("param")ReportQueryParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatDataIDMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatDataIDMapper.xml new file mode 100644 index 000000000..5cbe60639 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatDataIDMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/ReportMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/ReportMapper.xml new file mode 100644 index 000000000..8ea2a3998 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/ReportMapper.xml @@ -0,0 +1,905 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/ReportService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/ReportService.java new file mode 100644 index 000000000..67795d509 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/ReportService.java @@ -0,0 +1,83 @@ +package com.njcn.harmonic.service; + +import com.njcn.harmonic.pojo.param.ReportQueryParam; +import com.njcn.harmonic.pojo.po.report.OverLimitInfo; +import com.njcn.harmonic.pojo.vo.ReportValue; + +import java.util.List; + +/** + * 谐波报告 + */ +public interface ReportService { + + /** + * + * @param param + * @return + */ + OverLimitInfo getOverLimitData(ReportQueryParam param); + + /** + * 基波增幅 + * @param param + * @return + */ + List getVirtualData(ReportQueryParam param); + + /** + * 功率 + * @param param + * @return + */ + List getPowerData(ReportQueryParam param); + + /** + * 闪变 + * @param param + * @return + */ + List getFlickerData(ReportQueryParam param); + + /** + * 电压偏差 + * @param param + * @return + */ + List getVdeviation(ReportQueryParam param); + + /** + * 畸变率 + * @param param + * @return + */ + List getDistortionData(ReportQueryParam param); + + /** + * 频率 + * @param param + * @return + */ + List getFrequencyData(ReportQueryParam param); + + /** + * 三相不平衡 + * @param param + * @return + */ + List getThreephase(ReportQueryParam param); + + /** + * 谐波电流 + * @param param + * @return + */ + List getICurrent(ReportQueryParam param); + + /** + * 谐波电压 + * @param param + * @return + */ + List getVoltageRate(ReportQueryParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/RegroupData.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/RegroupData.java new file mode 100644 index 000000000..829a0639e --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/RegroupData.java @@ -0,0 +1,44 @@ +package com.njcn.harmonic.service.impl; + +import com.njcn.harmonic.pojo.vo.ReportValue; + +import java.util.List; + +public class RegroupData { + public static void regroupData(List list, boolean... b) { + if (1 == b.length || (2 == b.length && b[1] == false)) { + if (0 < list.size()) { + return; + } + } + + Float value = null; + int length = b[0] ? 3 : 1; + + length = (b.length == 2 && !b[1]) ? 4 : length; + + for (int i = 0; i < length; i++) { + String str = null; + + if (b[0]) { + switch (i) { + case 0: + str = "A"; + break; + case 1: + str = "B"; + break; + case 2: + str = "C"; + break; + case 3: + str = "T"; + break; + } + } + + ReportValue reportValue = new ReportValue(str, value, value, value, value); + list.add(reportValue); + } + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/ReportServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/ReportServiceImpl.java new file mode 100644 index 000000000..b7e64433a --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/ReportServiceImpl.java @@ -0,0 +1,484 @@ +package com.njcn.harmonic.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.harmonic.mapper.RStatDataIDMapper; +import com.njcn.harmonic.mapper.ReportMapper; +import com.njcn.harmonic.pojo.po.RStatDataVD; +import com.njcn.harmonic.pojo.po.day.RStatDataIDPO; +import com.njcn.harmonic.pojo.param.ReportQueryParam; +import com.njcn.harmonic.pojo.po.report.OverLimitInfo; +import com.njcn.harmonic.pojo.vo.ReportValue; +import com.njcn.harmonic.service.IRStatDataVDService; +import com.njcn.harmonic.service.ReportService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.lang.reflect.Field; +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +@Service +@AllArgsConstructor +public class ReportServiceImpl implements ReportService { + + private final ReportMapper reportMapper; + private final IRStatDataVDService statDataVDService; + private final RStatDataIDMapper rStatDataIDMapper; + + @Override + public OverLimitInfo getOverLimitData(ReportQueryParam param) { + + + OverLimitInfo overLimitInfo = new OverLimitInfo(); + + //查询时间段内共有多少条记录,并*0.95取整处理,用来计算CP95值 降序*0.05进一位计算 + double count = 0; + double pstCount = 0; + double pltCount = 0; + if (param.getB()) { + count = Math.ceil(1); + pltCount = Math.ceil(1); + pstCount = Math.ceil(1); + } else { + count = Math.ceil(reportMapper.getTotalCP95Day(param).intValue() * 0.05); + pltCount = Math.ceil(reportMapper.getTotalPltCP95Day(param).intValue() * 0.05); + pstCount = Math.ceil(reportMapper.getTotalPstCP95Day(param).intValue() * 0.05); + } + overLimitInfo.setCount(count); + overLimitInfo.setPltCount(pltCount); + overLimitInfo.setPstCount(pstCount); + return overLimitInfo; + } + + @Override + public List getVirtualData(ReportQueryParam param) { + List list = new ArrayList<>(); + + // 获取电流有效值 + List listI = reportMapper.getVirtualDataI(param); + //获取电压有效值 + List listV = reportMapper.getVirtualDataV(param); + //获取线电压有效值 + List listVV = reportMapper.getVVirtualData(param); + + RegroupData.regroupData(listV, true); + RegroupData.regroupData(listI, true); + RegroupData.regroupData(listVV, true); + list.addAll(listV); + list.addAll(listI); + list.addAll(listVV); + + return list; + } + + @Override + public List getPowerData(ReportQueryParam param) { + List list = new ArrayList<>(); + //获取有功功率 + List listP = reportMapper.getPowerP(param); + //获取无功功率 + List listQ = reportMapper.getPowerQ(param); + //获取视在功率 + List listS = reportMapper.getPowerS(param); + //获取功率因数 + List listF = reportMapper.getPF(param); + + RegroupData.regroupData(listP, true, false); + RegroupData.regroupData(listQ, true, false); + RegroupData.regroupData(listS, true, false); + RegroupData.regroupData(listF, true, false); + list.addAll(listP); + list.addAll(listQ); + list.addAll(listS); + list.addAll(listF); + return list; + } + + @Override + public List getFlickerData(ReportQueryParam param) { + List list = new ArrayList<>(); + + //短时闪变 + List listFlicker = reportMapper.getFlickerData(param); + //长时闪变 + List listLFlicker = reportMapper.getLFlickerData(param); + + RegroupData.regroupData(listFlicker, true); + RegroupData.regroupData(listLFlicker, true); + list.addAll(listFlicker); + list.addAll(listLFlicker); + + return list; + } + + @Override + public List getVdeviation(ReportQueryParam param) { + List list = new ArrayList<>(); + + //获取电压偏差 + List listU = reportMapper.getUVdeviationData(param); + List listL = reportMapper.getLVdeviationData(param); + + RegroupData.regroupData(listU, true); + RegroupData.regroupData(listL, true); + list.addAll(listU); + list.addAll(listL); + return list; + } + + @Override + public List getDistortionData(ReportQueryParam param) { + List list = new ArrayList<>(); + //获取电压畸变率 + List listU = reportMapper.getDistortionDataV(param); + //获取电流畸变率 + List listI = reportMapper.getDistortionDataI(param); + + //添加之前判断数据库是否有数据,如果没有数据模拟数据添加到集合中 + RegroupData.regroupData(listU, true); + RegroupData.regroupData(listI, true); + list.addAll(listU); + list.addAll(listI); + + return list; + } + + @Override + public List getFrequencyData(ReportQueryParam param) { + List list = new ArrayList<>(); + + List listFre = reportMapper.getFrequencyData(param); + List listFreDEV = reportMapper.getDEVFrequencyData(param); + + + RegroupData.regroupData(listFre, true); + RegroupData.regroupData(listFreDEV, true); + list.addAll(listFre); + list.addAll(listFreDEV); + return list; + } + + @Override + public List getThreephase(ReportQueryParam param) { + List list = new ArrayList<>(); + //电压三相不平衡度 + List listV = dataV(param, Arrays.asList("T"),1, 5,true,0); + //电流三相不平衡度 + List listI = dataI(param, Arrays.asList("T"),1, 5,true,0); + + if (CollUtil.isNotEmpty(listV)) { + list.addAll(listV); + } else { + regroupData(list); + } + + if (CollUtil.isNotEmpty(listI)) { + list.addAll(listI); + } else { + regroupData(list); + } + return list; + } + + @Override + public List getICurrent(ReportQueryParam param) { + List list = new ArrayList<>(); + + //获取电流幅值,包含基波 + List listI = dataI(param, Arrays.asList("A","B","C"),1, 51,false,0); + if (CollUtil.isEmpty(listI)) { + for (int i = 0; i < 50; i++) { + RegroupData.regroupData(list, true, true); + } + } else { + list.addAll(listI); + } + return list; + } + + @Override + public List getVoltageRate(ReportQueryParam param) { + List list = new ArrayList<>(); + + //获取基波电压幅值,单位kV + List listV = dataV(param, Arrays.asList("A","B","C"),0, 1,true,5); + + if (CollUtil.isEmpty(listV)) { + RegroupData.regroupData(list, true, true); + } else { + list.addAll(listV); + } + + //获取电压含有率,不包含基波 + List listRate = dataV(param, Arrays.asList("A","B","C"),2, 51,false,1); + + if (CollUtil.isEmpty(listRate)) { + for (int i = 0; i < 49; i++) { + RegroupData.regroupData(list, true, true); + } + } else { + list.addAll(listRate); + } + + //获取电压畸变率 + List listU = reportMapper.getDistortionDataV(param); + RegroupData.regroupData(listU, true); + list.addAll(listU); + return list; + } + + private void regroupData(List list) { + for (int i = 0; i < 4; i++) { + List list1 = new ArrayList<>(); + RegroupData.regroupData(list1, false); + list.addAll(list1); + } + } + + /** + * 电压信息 + * @param param 查询条件 + * @param valueTypes 区分类别 例如"A","B","C" + * @param num 循环开始 + * @param size 循环结束 + * @param fly 否是启用获取属性电压 + * @param index 获取属性位置名称 + * @return + */ + private List dataV(ReportQueryParam param,List valueTypes,Integer num,Integer size,Boolean fly,Integer index){ + List rStatDataVDS = statDataVDService.list(new LambdaQueryWrapper() + .eq(RStatDataVD::getLineId, param.getLineId()) + .in(CollUtil.isNotEmpty(valueTypes),RStatDataVD::getPhasicType,valueTypes) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatDataVD::getTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime()))) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatDataVD::getTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime()))) + ); + String max = "MAX"; + String avg = "AVG"; + String min = "MIN"; + String cp95 = "CP95"; + List a = new ArrayList<>(); + Map> collect = rStatDataVDS.stream().collect(Collectors.groupingBy(RStatDataVD::getPhasicType)); + collect.forEach((key, value) -> { + Map> valueTypeMap = value.stream().collect(Collectors.groupingBy(RStatDataVD::getValueType)); + + for (int i = num; i < size; i++) { + ReportValue reportValue = new ReportValue(); + String attribute=""; + if(fly){ + if (index==0){ + attribute = attributeV(i); + }else{ + attribute = attributeV(index); + } + }else{ + attribute = "v"+i; + } + + if (valueTypeMap.containsKey(max)) { + List aa = reflectDataV(valueTypeMap.get(max), max,attribute); + reportValue.setPhaseType(key); + Float maxNum = aa.stream().distinct().max(Float::compareTo).get(); + reportValue.setFmaxValue(maxNum); + } + if (valueTypeMap.containsKey(avg)) { + List aa = reflectDataV(valueTypeMap.get(avg), avg,attribute); + reportValue.setPhaseType(key); + Double avgNum = aa.stream().distinct().collect(Collectors.averagingDouble(Float::doubleValue)); + reportValue.setMeanValue(avgNum.floatValue()); + } + if (valueTypeMap.containsKey(min)) { + List aa = reflectDataV(valueTypeMap.get(min), min,attribute); + reportValue.setPhaseType(key); + double minNum = aa.stream().distinct().min(Float::compareTo).get(); + reportValue.setMinValue((float) minNum); + } + if (valueTypeMap.containsKey(cp95)) { + List aa = reflectDataV(valueTypeMap.get(cp95), cp95,attribute); + reportValue.setPhaseType(key); + List cp95Num = aa.stream().distinct().sorted(Comparator.comparing(Float::doubleValue).reversed()).collect(Collectors.toList()); + reportValue.setCp95Value(cp95Num.get(0).floatValue()); + } + a.add(reportValue); + } + }); + return a; + } + + /** + * 电压反射取属性值 + * + * @param value + * @param name + * @return + */ + private List reflectDataV(List value, String name,String attribute) { + Field field = null; + try { + field = RStatDataVD.class.getDeclaredField(attribute); + } catch (NoSuchFieldException e) { + throw new RuntimeException(e); + } + field.setAccessible(true); + + Field finalField = field; + return value.stream().filter(x -> x.getValueType().equals(name)).map(temp -> { + BigDecimal o = null; + try { + o = (BigDecimal) finalField.get(temp); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + + return o.floatValue(); + }).collect(Collectors.toList()); + } + + /** + * 电流信息 + * @param param + * @return + */ + private List dataI(ReportQueryParam param,List valueTypes,Integer num,Integer size,Boolean fly,Integer index){ + List rStatDataVDS = rStatDataIDMapper.selectList(new LambdaQueryWrapper() + .eq(RStatDataIDPO::getLineId, param.getLineId()) + .in(CollUtil.isNotEmpty(valueTypes),RStatDataIDPO::getPhaseType,valueTypes) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatDataIDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime()))) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatDataIDPO::getTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime()))) + ); + String max = "MAX"; + String avg = "AVG"; + String min = "MIN"; + String cp95 = "CP95"; + List a = new ArrayList<>(); + Map> collect = rStatDataVDS.stream().collect(Collectors.groupingBy(RStatDataIDPO::getPhaseType)); + collect.forEach((key, value) -> { + Map> valueTypeMap = value.stream().collect(Collectors.groupingBy(RStatDataIDPO::getValueType)); + + for (int i = num; i < size; i++) { + ReportValue reportValue = new ReportValue(); + String attribute=""; + if(fly){ + if (index==0){ + attribute = attributeI(i); + }else{ + attribute = attributeI(index); + } + }else{ + attribute = "i"+i; + } + if (valueTypeMap.containsKey(max)) { + List aa = reflectDataI(valueTypeMap.get(max), max,attribute); + reportValue.setPhaseType(key); + Float maxNum = aa.stream().distinct().max(Float::compareTo).get(); + reportValue.setFmaxValue(maxNum); + } + if (valueTypeMap.containsKey(avg)) { + List aa = reflectDataI(valueTypeMap.get(avg), avg,attribute); + reportValue.setPhaseType(key); + Double avgNum = aa.stream().distinct().collect(Collectors.averagingDouble(Float::doubleValue)); + reportValue.setMeanValue(avgNum.floatValue()); + } + if (valueTypeMap.containsKey(min)) { + List aa = reflectDataI(valueTypeMap.get(min), min,attribute); + reportValue.setPhaseType(key); + double minNum = aa.stream().distinct().min(Float::compareTo).get(); + reportValue.setMinValue((float) minNum); + } + if (valueTypeMap.containsKey(cp95)) { + List aa = reflectDataI(valueTypeMap.get(cp95), cp95,attribute); + reportValue.setPhaseType(key); + List cp95Num = aa.stream().distinct().sorted(Comparator.comparing(Float::doubleValue).reversed()).collect(Collectors.toList()); + reportValue.setCp95Value(cp95Num.get(0).floatValue()); + } + a.add(reportValue); + } + }); + return a; + } + + /** + * 电流反射取属性值 + * + * @param value + * @param name + * @return + */ + private List reflectDataI(List value, String name, String attribute) { + Field field = null; + try { + field = RStatDataIDPO.class.getDeclaredField(attribute); + } catch (NoSuchFieldException e) { + throw new RuntimeException(e); + } + field.setAccessible(true); + Field finalField = field; + return value.stream().filter(x -> x.getValueType().equals(name)).map(temp -> { + Double o = null; + try { + o = (Double) finalField.get(temp); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + + return o.floatValue(); + }).collect(Collectors.toList()); + } + + /** + * 获取属性电压 + * @param i + * @return + */ + private String attributeV(Integer i) { + String str=null; + switch (i) { + case 1: + str = "vUnbalance"; + break; + case 2: + str = "vPos"; + break; + case 3: + str = "vNeg"; + break; + case 4: + str = "vZero"; + break; + case 5: + str = "v1"; + break; + default: + break; + } + return str; + } + /** + * 获取属性电流 + * @param i + * @return + */ + private String attributeI(Integer i) { + String str=null; + switch (i) { + case 1: + str = "iUnbalance"; + break; + case 2: + str = "iPos"; + break; + case 3: + str = "iNeg"; + break; + case 4: + str = "iZero"; + break; + default: + break; + } + return str; + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/resources/file/default.jpg b/pqs-harmonic/harmonic-boot/src/main/resources/file/default.jpg new file mode 100644 index 000000000..0cb20c96c Binary files /dev/null and b/pqs-harmonic/harmonic-boot/src/main/resources/file/default.jpg differ diff --git a/pqs-harmonic/harmonic-boot/src/main/resources/file/reportModel.docx b/pqs-harmonic/harmonic-boot/src/main/resources/file/reportModel.docx new file mode 100644 index 000000000..5039b2457 Binary files /dev/null and b/pqs-harmonic/harmonic-boot/src/main/resources/file/reportModel.docx differ diff --git a/pqs-harmonic/harmonic-boot/src/main/resources/file/reportModelCN.docx b/pqs-harmonic/harmonic-boot/src/main/resources/file/reportModelCN.docx new file mode 100644 index 000000000..c2cee8df6 Binary files /dev/null and b/pqs-harmonic/harmonic-boot/src/main/resources/file/reportModelCN.docx differ diff --git a/pqs-harmonic/harmonic-boot/src/main/resources/file/reportModelGW.docx b/pqs-harmonic/harmonic-boot/src/main/resources/file/reportModelGW.docx new file mode 100644 index 000000000..bc8453ca1 Binary files /dev/null and b/pqs-harmonic/harmonic-boot/src/main/resources/file/reportModelGW.docx differ diff --git a/pqs-harmonic/harmonic-boot/src/main/resources/file/reportModelNW.docx b/pqs-harmonic/harmonic-boot/src/main/resources/file/reportModelNW.docx new file mode 100644 index 000000000..533f86ad8 Binary files /dev/null and b/pqs-harmonic/harmonic-boot/src/main/resources/file/reportModelNW.docx differ diff --git a/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/DayJob.java b/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/DayJob.java index 2b69612d9..e10178fd5 100644 --- a/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/DayJob.java +++ b/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/DayJob.java @@ -1,2482 +1,2482 @@ -package com.njcn.executor.handler; - -import com.njcn.common.pojo.constant.PatternRegex; -import com.njcn.device.pq.api.LineFeignClient; -import com.njcn.executor.pojo.vo.*; -import com.njcn.influxdb.config.InfluxDbConfig; -import com.njcn.influxdb.param.InfluxDBPublicParam; -import com.njcn.influxdb.utils.InfluxDbUtils; -import com.xxl.job.core.context.XxlJobHelper; -import com.xxl.job.core.handler.annotation.XxlJob; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.influxdb.InfluxDB; -import org.influxdb.dto.BatchPoints; -import org.influxdb.dto.Point; -import org.influxdb.dto.QueryResult; -import org.influxdb.impl.InfluxDBResultMapper; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.concurrent.TimeUnit; -import java.util.regex.Pattern; - -/** - * 类的介绍: - * - * @author xuyang - * @version 1.0.0 - * @createTime 2022/5/10 14:10 - */ -@Slf4j -@Component -@AllArgsConstructor -public class DayJob { - - private final InfluxDbUtils influxDbUtils; - - private final LineFeignClient lineFeignClient; - - private final InfluxDbConfig influxDbConfig; - - @XxlJob("dayJobHandler") - public void getDayData() throws ParseException { - List paramList = new ArrayList<>(); - List lineList = new ArrayList<>(); - String command = XxlJobHelper.getJobParam(); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Calendar calendar = Calendar.getInstance(); - calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)-1, 0, 0, 0); - calendar.set(Calendar.MILLISECOND, 0); - Calendar calendar2 = Calendar.getInstance(); - calendar2.set(calendar2.get(Calendar.YEAR), calendar2.get(Calendar.MONTH), calendar2.get(Calendar.DAY_OF_MONTH)-1, 23, 59, 59); - calendar2.set(Calendar.MILLISECOND, 0); - String startTime = format.format(calendar.getTime()); - String endTime = format.format(calendar2.getTime()); - if (!StringUtils.isEmpty(command)){ - paramList = Arrays.asList(command.split(",")); - startTime = paramList.get(0); - endTime = paramList.get(1); - lineList = paramList.subList(2,paramList.size()); - if (CollectionUtils.isEmpty(lineList)){ - log.info("补招传入的参数,未传监测点id"); - lineList = lineFeignClient.getLineList().getData(); - } - boolean s1 = Pattern.matches(PatternRegex.TIME_FORMAT,startTime); - boolean e1 = Pattern.matches(PatternRegex.TIME_FORMAT,endTime); - if (!s1 || !e1){ - log.error("补招时间格式错误"); - return; - } else { - startTime = startTime + " 00:00:00"; - endTime = endTime + " 23:59:59"; - } - } else { - lineList = lineFeignClient.getLineList().getData(); - } - long diff,diffDays,a,b = 0; - Date d1 = format.parse(startTime); - Date d2 = format.parse(endTime); - diff = d2.getTime() - d1.getTime(); - diffDays = diff / (24 * 60 * 60 * 1000-1000); - int days = (int) diffDays; - for (int i = 1; i <= days; i++) { - a = d1.getTime() + (long)(i-1)*(24 * 60 * 60) * 1000; - b = d1.getTime() + (long)i*(24 * 60 * 60) * 1000-1000; - startTime = format.format(a); - endTime = format.format(b); - //生成dayV表 - List dataV = getDataV(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataV)){ - insertDayV(dataV,a); - } - //生成dayI表 - List dataI = getDataI(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataI)){ - insertDayI(dataI,a); - } - //生成dayFlicker表 - List dataFlicker = getDataFlicker(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataFlicker)){ - insertDayFlicker(dataFlicker,a); - } - //生成dayFluc表 - List dataFluc = getDataFluc(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataFluc)){ - insertDayFluc(dataFluc,a); - } - //生成dayHarmphasicI表 - List dataHarmphasicI = getDataHarmphasicI(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataHarmphasicI)){ - insertDayHarmphasicI(dataHarmphasicI,a); - } - //生成dayHarmphasicV表 - List dataHarmphasicV = getDataHarmphasicV(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataHarmphasicV)){ - insertDayHarmphasicV(dataHarmphasicV,a); - } - //生成dayHarmPowerP表 - List dataHarmPowerP = getDataHarmPowerP(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataHarmPowerP)){ - insertDayHarmPowerP(dataHarmPowerP,a); - } - //生成dayHarmPowerQ表 - List dataHarmPowerQ = getDataHarmPowerQ(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataHarmPowerQ)){ - insertDayHarmPowerQ(dataHarmPowerQ,a); - } - //生成dayHarmPowerS表 - List dataHarmPowerS = getDataHarmPowerS(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataHarmPowerS)){ - insertDayHarmPowerS(dataHarmPowerS,a); - } - //生成dayHarmRateI - List dataHarmRateI = getDataHarmRateI(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataHarmRateI)){ - insertDayHarmRateI(dataHarmRateI,a); - } - //生成dayHarmRateV - List dataHarmRateV = getDataHarmRateV(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataHarmRateV)){ - insertDayHarmRateV(dataHarmRateV,a); - } - //生成dayInHarmI - List dataInHarmI = getDataInHarmI(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataInHarmI)){ - insertDayInHarmI(dataInHarmI,a); - } - //生成dayInHarmV - List dataInHarmV = getDataInHarmV(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataInHarmV)){ - insertDayInHarmV(dataInHarmV,a); - } - //生成dayInHarmRateI - List dataInHarmRateI = getDataInHarmRateI(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataInHarmRateI)){ - insertDayInHarmRateI(dataInHarmRateI,a); - } - //生成dayInHarmRateV - List dataInHarmRateV = getDataInHarmRateV(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataInHarmRateV)){ - insertDayInHarmRateV(dataInHarmRateV,a); - } - //生成dayPlt - List dataPlt = getDataPlt(lineList,startTime,endTime); - if (!CollectionUtils.isEmpty(dataPlt)){ - insertDayPlt(dataPlt,a); - } - } - } - - /** - * 功能描述:获取dataV数据 - * @author xy - * @param lineList 监测点集合 - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataV(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - StringBuilder stringBuilder1 = new StringBuilder(); - StringBuilder stringBuilder2 = new StringBuilder(); - stringBuilder1.append("min(freq) AS freq,min(freq_dev) AS freq_dev,min(rms) AS rms,min(rms_lvr) AS rms_lvr,min(v_neg) AS v_neg,min(v_pos) AS v_pos,min(v_thd) AS v_thd,min(v_unbalance) AS v_unbalance,min(v_zero) AS v_zero,min(vl_dev) AS vl_dev,min(vu_dev) AS vu_dev,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i); - } else { - stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i).append(","); - } - } - stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_V+" where "+stringBuilder+stringBuilder2; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataV.class); - //最大值 - StringBuilder stringBuilder3 = new StringBuilder(); - StringBuilder stringBuilder4 = new StringBuilder(); - stringBuilder3.append("max(freq) AS freq,max(freq_dev) AS freq_dev,max(rms) AS rms,max(rms_lvr) AS rms_lvr,max(v_neg) AS v_neg,max(v_pos) AS v_pos,max(v_thd) AS v_thd,max(v_unbalance) AS v_unbalance,max(v_zero) AS v_zero,max(vl_dev) AS vl_dev,max(vu_dev) AS vu_dev,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i); - } else { - stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i).append(","); - } - } - stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_V+" where "+stringBuilder+stringBuilder4; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataV.class); - //平均值 - StringBuilder stringBuilder5 = new StringBuilder(); - StringBuilder stringBuilder6 = new StringBuilder(); - stringBuilder5.append("mean(freq) AS freq,mean(freq_dev) AS freq_dev,mean(rms) AS rms,mean(rms_lvr) AS rms_lvr,mean(v_neg) AS v_neg,mean(v_pos) AS v_pos,mean(v_thd) AS v_thd,mean(v_unbalance) AS v_unbalance,mean(v_zero) AS v_zero,mean(vl_dev) AS vl_dev,mean(vu_dev) AS vu_dev,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i); - } else { - stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i).append(","); - } - } - stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_V+" where "+stringBuilder+stringBuilder6; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataV.class); - //CP95值 - StringBuilder stringBuilder7 = new StringBuilder(); - StringBuilder stringBuilder8 = new StringBuilder(); - stringBuilder7.append("percentile(freq,95) AS freq,percentile(freq_dev,95) AS freq_dev,percentile(rms,95) AS rms,percentile(rms_lvr,95) AS rms_lvr,percentile(v_neg,95) AS v_neg,percentile(v_pos,95) AS v_pos,percentile(v_thd,95) AS v_thd,percentile(v_unbalance,95) AS v_unbalance,percentile(v_zero,95) AS v_zero,percentile(vl_dev,95) AS vl_dev,percentile(vu_dev,95) AS vu_dev,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i); - } else { - stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i).append(","); - } - } - stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_V+" where "+stringBuilder+stringBuilder8; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataV.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入dayV表数据 - * @author xy - * @param list dataV集合 - * @param time 时间戳 - * @date 2022/5/11 14:55 - */ - private void insertDayV(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("freq",item.getFreq()); - fields.put("freq_dev",item.getFreqDev()); - fields.put("rms",item.getRms()); - fields.put("rms_lvr",item.getRmsLvr()); - fields.put("v_neg",item.getVNeg()); - fields.put("v_pos",item.getVPos()); - fields.put("v_thd",item.getVThd()); - fields.put("v_unbalance",item.getVUnbalance()); - fields.put("v_zero",item.getVZero()); - fields.put("vl_dev",item.getVlDev()); - fields.put("vu_dev",item.getVuDev()); - fields.put("v_1",item.getV1()); - fields.put("v_2",item.getV2()); - fields.put("v_3",item.getV3()); - fields.put("v_4",item.getV4()); - fields.put("v_5",item.getV5()); - fields.put("v_6",item.getV6()); - fields.put("v_7",item.getV7()); - fields.put("v_8",item.getV8()); - fields.put("v_9",item.getV9()); - fields.put("v_10",item.getV10()); - fields.put("v_11",item.getV11()); - fields.put("v_12",item.getV12()); - fields.put("v_13",item.getV13()); - fields.put("v_14",item.getV14()); - fields.put("v_15",item.getV15()); - fields.put("v_16",item.getV16()); - fields.put("v_17",item.getV17()); - fields.put("v_18",item.getV18()); - fields.put("v_19",item.getV19()); - fields.put("v_20",item.getV20()); - fields.put("v_21",item.getV21()); - fields.put("v_22",item.getV22()); - fields.put("v_23",item.getV23()); - fields.put("v_24",item.getV24()); - fields.put("v_25",item.getV25()); - fields.put("v_26",item.getV26()); - fields.put("v_27",item.getV27()); - fields.put("v_28",item.getV28()); - fields.put("v_29",item.getV29()); - fields.put("v_30",item.getV30()); - fields.put("v_31",item.getV31()); - fields.put("v_32",item.getV32()); - fields.put("v_33",item.getV33()); - fields.put("v_34",item.getV34()); - fields.put("v_35",item.getV35()); - fields.put("v_36",item.getV36()); - fields.put("v_37",item.getV37()); - fields.put("v_38",item.getV38()); - fields.put("v_39",item.getV39()); - fields.put("v_40",item.getV40()); - fields.put("v_41",item.getV41()); - fields.put("v_42",item.getV42()); - fields.put("v_43",item.getV43()); - fields.put("v_44",item.getV44()); - fields.put("v_45",item.getV45()); - fields.put("v_46",item.getV46()); - fields.put("v_47",item.getV47()); - fields.put("v_48",item.getV48()); - fields.put("v_49",item.getV49()); - fields.put("v_50",item.getV50()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_V, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - - /** - * 功能描述:获取dataI数据 - * @author xy - * @param lineList 监测点集合 - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataI(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - StringBuilder stringBuilder1 = new StringBuilder(); - StringBuilder stringBuilder2 = new StringBuilder(); - stringBuilder1.append("min(rms) AS rms,min(i_neg) AS i_neg,min(i_pos) AS i_pos,min(i_thd) AS i_thd,min(i_unbalance) AS i_unbalance,min(i_zero) AS i_zero,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i); - } else { - stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i).append(","); - } - } - stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_I+" where "+stringBuilder+stringBuilder2; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataI.class); - //最大值 - StringBuilder stringBuilder3 = new StringBuilder(); - StringBuilder stringBuilder4 = new StringBuilder(); - stringBuilder3.append("max(rms) AS rms,max(i_neg) AS i_neg,max(i_pos) AS i_pos,max(i_thd) AS i_thd,max(i_unbalance) AS i_unbalance,max(i_zero) AS i_zero,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i); - } else { - stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i).append(","); - } - } - stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_I+" where "+stringBuilder+stringBuilder4; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataI.class); - //平均值 - StringBuilder stringBuilder5 = new StringBuilder(); - StringBuilder stringBuilder6 = new StringBuilder(); - stringBuilder5.append("mean(rms) AS rms,mean(i_neg) AS i_neg,mean(i_pos) AS i_pos,mean(i_thd) AS i_thd,mean(i_unbalance) AS i_unbalance,mean(i_zero) AS i_zero,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i); - } else { - stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i).append(","); - } - } - stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_I+" where "+stringBuilder+stringBuilder6; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataI.class); - //CP95值 - StringBuilder stringBuilder7 = new StringBuilder(); - StringBuilder stringBuilder8 = new StringBuilder(); - stringBuilder7.append("percentile(rms,95) AS rms,percentile(i_neg,95) AS i_neg,percentile(i_pos,95) AS i_pos,percentile(i_thd,95) AS i_thd,percentile(i_unbalance,95) AS i_unbalance,percentile(i_zero,95) AS i_zero,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i); - } else { - stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i).append(","); - } - } - stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_I+" where "+stringBuilder+stringBuilder8; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataI.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入dayI表数据 - * @author xy - * @param list dataI集合 - * @param time 时间戳 - * @date 2022/5/11 14:55 - */ - private void insertDayI(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("rms",item.getRms()); - fields.put("i_neg",item.getINeg()); - fields.put("i_pos",item.getIPos()); - fields.put("i_thd",item.getIThd()); - fields.put("i_unbalance",item.getIUnbalance()); - fields.put("i_zero",item.getIZero()); - fields.put("i_1",item.getI1()); - fields.put("i_2",item.getI2()); - fields.put("i_3",item.getI3()); - fields.put("i_4",item.getI4()); - fields.put("i_5",item.getI5()); - fields.put("i_6",item.getI6()); - fields.put("i_7",item.getI7()); - fields.put("i_8",item.getI8()); - fields.put("i_9",item.getI9()); - fields.put("i_10",item.getI10()); - fields.put("i_11",item.getI11()); - fields.put("i_12",item.getI12()); - fields.put("i_13",item.getI13()); - fields.put("i_14",item.getI14()); - fields.put("i_15",item.getI15()); - fields.put("i_16",item.getI16()); - fields.put("i_17",item.getI17()); - fields.put("i_18",item.getI18()); - fields.put("i_19",item.getI19()); - fields.put("i_20",item.getI20()); - fields.put("i_21",item.getI21()); - fields.put("i_22",item.getI22()); - fields.put("i_23",item.getI23()); - fields.put("i_24",item.getI24()); - fields.put("i_25",item.getI25()); - fields.put("i_26",item.getI26()); - fields.put("i_27",item.getI27()); - fields.put("i_28",item.getI28()); - fields.put("i_29",item.getI29()); - fields.put("i_30",item.getI30()); - fields.put("i_31",item.getI31()); - fields.put("i_32",item.getI32()); - fields.put("i_33",item.getI33()); - fields.put("i_34",item.getI34()); - fields.put("i_35",item.getI35()); - fields.put("i_36",item.getI36()); - fields.put("i_37",item.getI37()); - fields.put("i_38",item.getI38()); - fields.put("i_39",item.getI39()); - fields.put("i_40",item.getI40()); - fields.put("i_41",item.getI41()); - fields.put("i_42",item.getI42()); - fields.put("i_43",item.getI43()); - fields.put("i_44",item.getI44()); - fields.put("i_45",item.getI45()); - fields.put("i_46",item.getI46()); - fields.put("i_47",item.getI47()); - fields.put("i_48",item.getI48()); - fields.put("i_49",item.getI49()); - fields.put("i_50",item.getI50()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_I, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - - /** - * 功能描述:获取dataFlicker数据 - * @author xy - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataFlicker(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - String sql1 = "select min(fluc) AS fluc,min(plt) AS plt,min(pst) AS pst from "+ InfluxDBPublicParam.DATA_FLICKER+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataFlicker.class); - list1.forEach(item->{ - item.setValueType("MIN"); - }); - //最大值 - String sql2 = "select max(fluc) AS fluc,max(plt) AS plt,max(pst) AS pst from "+ InfluxDBPublicParam.DATA_FLICKER+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataFlicker.class); - list2.forEach(item->{ - item.setValueType("MAX"); - }); - //平均值 - String sql3 = "select mean(fluc) AS fluc,mean(plt) AS plt,mean(pst) AS pst from "+ InfluxDBPublicParam.DATA_FLICKER+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3= new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataFlicker.class); - list3.forEach(item->{ - item.setValueType("AVG"); - }); - //CP95值 - String sql4 = "select percentile(fluc,95) AS fluc,percentile(plt,95) AS plt,percentile(pst,95) AS pst from "+ InfluxDBPublicParam.DATA_FLICKER+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE;; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4= new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataFlicker.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入dayFlicker表数据 - * @author xy - * @param list dataFlicker集合 - * @param time 时间戳 - * @date 2022/5/11 14:55 - */ - private void insertDayFlicker(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("fluc",item.getFluc()); - fields.put("plt",item.getPlt()); - fields.put("pst",item.getPst()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_FLICKER, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - - /** - * 功能描述:获取dataFluc数据 - * @author xy - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataFluc(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - String sql1 = "select min(fluc) AS fluc,min(fluccf) AS fluccf from "+ InfluxDBPublicParam.DATA_FLUC+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataFluc.class); - list1.forEach(item->{ - item.setValueType("MIN"); - }); - //最大值 - String sql2 = "select max(fluc) AS fluc,max(fluccf) AS fluccf from "+ InfluxDBPublicParam.DATA_FLUC+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataFluc.class); - list2.forEach(item->{ - item.setValueType("MAX"); - }); - //平均值 - String sql3 = "select mean(fluc) AS fluc,mean(fluccf) AS fluccf from "+ InfluxDBPublicParam.DATA_FLUC+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3= new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataFluc.class); - list3.forEach(item->{ - item.setValueType("AVG"); - }); - //CP95值 - String sql4 = "select percentile(fluc,95) AS fluc,percentile(fluccf,95) AS fluccf from "+ InfluxDBPublicParam.DATA_FLUC+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4= new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataFluc.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入dayFluc表数据 - * @author xy - * @param list dataFluc集合 - * @param time 时间戳 - * @date 2022/5/12 8:55 - */ - private void insertDayFluc(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("fluc",item.getFluc()); - fields.put("fluccf",item.getFluccf()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_FLUC, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - - /** - * 功能描述:获取data_harmphasic_i数据 - * @author xy - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataHarmphasicI(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - StringBuilder stringBuilder1 = new StringBuilder(); - StringBuilder stringBuilder2 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i); - } else { - stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i).append(","); - } - } - stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_I+" where "+stringBuilder+stringBuilder2; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataHarmPhasicI.class); - //最大值 - StringBuilder stringBuilder3 = new StringBuilder(); - StringBuilder stringBuilder4 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i); - } else { - stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i).append(","); - } - } - stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_I+" where "+stringBuilder+stringBuilder4; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataHarmPhasicI.class); - //平均值 - StringBuilder stringBuilder5 = new StringBuilder(); - StringBuilder stringBuilder6 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i); - } else { - stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i).append(","); - } - } - stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_I+" where "+stringBuilder+stringBuilder6; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataHarmPhasicI.class); - //CP95值 - StringBuilder stringBuilder7 = new StringBuilder(); - StringBuilder stringBuilder8 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i); - } else { - stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i).append(","); - } - } - stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_I+" where "+stringBuilder+stringBuilder8; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataHarmPhasicI.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入day_harmphasic_i表数据 - * @author xy - * @param list data_harmphasic_i表数据 - * @param time 时间戳 - * @date 2022/5/12 8:55 - */ - private void insertDayHarmphasicI(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("i_1",item.getI1()); - fields.put("i_2",item.getI2()); - fields.put("i_3",item.getI3()); - fields.put("i_4",item.getI4()); - fields.put("i_5",item.getI5()); - fields.put("i_6",item.getI6()); - fields.put("i_7",item.getI7()); - fields.put("i_8",item.getI8()); - fields.put("i_9",item.getI9()); - fields.put("i_10",item.getI10()); - fields.put("i_11",item.getI11()); - fields.put("i_12",item.getI12()); - fields.put("i_13",item.getI13()); - fields.put("i_14",item.getI14()); - fields.put("i_15",item.getI15()); - fields.put("i_16",item.getI16()); - fields.put("i_17",item.getI17()); - fields.put("i_18",item.getI18()); - fields.put("i_19",item.getI19()); - fields.put("i_20",item.getI20()); - fields.put("i_21",item.getI21()); - fields.put("i_22",item.getI22()); - fields.put("i_23",item.getI23()); - fields.put("i_24",item.getI24()); - fields.put("i_25",item.getI25()); - fields.put("i_26",item.getI26()); - fields.put("i_27",item.getI27()); - fields.put("i_28",item.getI28()); - fields.put("i_29",item.getI29()); - fields.put("i_30",item.getI30()); - fields.put("i_31",item.getI31()); - fields.put("i_32",item.getI32()); - fields.put("i_33",item.getI33()); - fields.put("i_34",item.getI34()); - fields.put("i_35",item.getI35()); - fields.put("i_36",item.getI36()); - fields.put("i_37",item.getI37()); - fields.put("i_38",item.getI38()); - fields.put("i_39",item.getI39()); - fields.put("i_40",item.getI40()); - fields.put("i_41",item.getI41()); - fields.put("i_42",item.getI42()); - fields.put("i_43",item.getI43()); - fields.put("i_44",item.getI44()); - fields.put("i_45",item.getI45()); - fields.put("i_46",item.getI46()); - fields.put("i_47",item.getI47()); - fields.put("i_48",item.getI48()); - fields.put("i_49",item.getI49()); - fields.put("i_50",item.getI50()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_HARM_PHASIC_I, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - /** - * 功能描述:获取data_harmphasic_v数据 - * @author xy - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataHarmphasicV(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - StringBuilder stringBuilder1 = new StringBuilder(); - StringBuilder stringBuilder2 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i); - } else { - stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i).append(","); - } - } - stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_V+" where "+stringBuilder+stringBuilder2; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataHarmPhasicV.class); - //最大值 - StringBuilder stringBuilder3 = new StringBuilder(); - StringBuilder stringBuilder4 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i); - } else { - stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i).append(","); - } - } - stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_V+" where "+stringBuilder+stringBuilder4; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataHarmPhasicV.class); - //平均值 - StringBuilder stringBuilder5 = new StringBuilder(); - StringBuilder stringBuilder6 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i); - } else { - stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i).append(","); - } - } - stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_V+" where "+stringBuilder+stringBuilder6; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataHarmPhasicV.class); - //CP95值 - StringBuilder stringBuilder7 = new StringBuilder(); - StringBuilder stringBuilder8 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i); - } else { - stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i).append(","); - } - } - stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_V+" where "+stringBuilder+stringBuilder8; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataHarmPhasicV.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入day_harmphasic_V表数据 - * @author xy - * @param list data_harmphasic_V表数据 - * @param time 时间戳 - * @date 2022/5/12 8:55 - */ - private void insertDayHarmphasicV(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("v_1",item.getV1()); - fields.put("v_2",item.getV2()); - fields.put("v_3",item.getV3()); - fields.put("v_4",item.getV4()); - fields.put("v_5",item.getV5()); - fields.put("v_6",item.getV6()); - fields.put("v_7",item.getV7()); - fields.put("v_8",item.getV8()); - fields.put("v_9",item.getV9()); - fields.put("v_10",item.getV10()); - fields.put("v_11",item.getV11()); - fields.put("v_12",item.getV12()); - fields.put("v_13",item.getV13()); - fields.put("v_14",item.getV14()); - fields.put("v_15",item.getV15()); - fields.put("v_16",item.getV16()); - fields.put("v_17",item.getV17()); - fields.put("v_18",item.getV18()); - fields.put("v_19",item.getV19()); - fields.put("v_20",item.getV20()); - fields.put("v_21",item.getV21()); - fields.put("v_22",item.getV22()); - fields.put("v_23",item.getV23()); - fields.put("v_24",item.getV24()); - fields.put("v_25",item.getV25()); - fields.put("v_26",item.getV26()); - fields.put("v_27",item.getV27()); - fields.put("v_28",item.getV28()); - fields.put("v_29",item.getV29()); - fields.put("v_30",item.getV30()); - fields.put("v_31",item.getV31()); - fields.put("v_32",item.getV32()); - fields.put("v_33",item.getV33()); - fields.put("v_34",item.getV34()); - fields.put("v_35",item.getV35()); - fields.put("v_36",item.getV36()); - fields.put("v_37",item.getV37()); - fields.put("v_38",item.getV38()); - fields.put("v_39",item.getV39()); - fields.put("v_40",item.getV40()); - fields.put("v_41",item.getV41()); - fields.put("v_42",item.getV42()); - fields.put("v_43",item.getV43()); - fields.put("v_44",item.getV44()); - fields.put("v_45",item.getV45()); - fields.put("v_46",item.getV46()); - fields.put("v_47",item.getV47()); - fields.put("v_48",item.getV48()); - fields.put("v_49",item.getV49()); - fields.put("v_50",item.getV50()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_HARM_PHASIC_V, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - /** - * 功能描述:获取data_harmpower_p数据 - * @author xy - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataHarmPowerP(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - StringBuilder stringBuilder1 = new StringBuilder(); - StringBuilder stringBuilder2 = new StringBuilder(); - stringBuilder1.append("min(p) AS p,min(df) AS df,min(pf) AS pf,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder1.append("min(p_").append(i).append(") AS p_").append(i); - } else { - stringBuilder1.append("min(p_").append(i).append(") AS p_").append(i).append(","); - } - } - stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_P+" where "+stringBuilder+stringBuilder2; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataHarmPowerP.class); - //最大值 - StringBuilder stringBuilder3 = new StringBuilder(); - StringBuilder stringBuilder4 = new StringBuilder(); - stringBuilder3.append("max(p) AS p,max(df) AS df,max(pf) AS pf,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder3.append("max(p_").append(i).append(") AS p_").append(i); - } else { - stringBuilder3.append("max(p_").append(i).append(") AS p_").append(i).append(","); - } - } - stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_P+" where "+stringBuilder+stringBuilder4; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataHarmPowerP.class); - //平均值 - StringBuilder stringBuilder5 = new StringBuilder(); - StringBuilder stringBuilder6 = new StringBuilder(); - stringBuilder5.append("mean(p) AS p,mean(df) AS df,mean(pf) AS pf,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder5.append("mean(p_").append(i).append(") AS p_").append(i); - } else { - stringBuilder5.append("mean(p_").append(i).append(") AS p_").append(i).append(","); - } - } - stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_P+" where "+stringBuilder+stringBuilder6; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataHarmPowerP.class); - //CP95值 - StringBuilder stringBuilder7 = new StringBuilder(); - StringBuilder stringBuilder8 = new StringBuilder(); - stringBuilder7.append("percentile(p,95) AS p,percentile(df,95) AS df,percentile(pf,95) AS pf,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder7.append("percentile(p_").append(i).append(",95) AS p_").append(i); - } else { - stringBuilder7.append("percentile(p_").append(i).append(",95) AS p_").append(i).append(","); - } - } - stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_P+" where "+stringBuilder+stringBuilder8; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataHarmPowerP.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入day_harmpower_p表数据 - * @author xy - * @param list data_harmpower_p表数据 - * @param time 时间戳 - * @date 2022/5/12 8:55 - */ - private void insertDayHarmPowerP(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("df",item.getDf()); - fields.put("pf",item.getPf()); - fields.put("p",item.getP()); - fields.put("p_1",item.getP1()); - fields.put("p_2",item.getP2()); - fields.put("p_3",item.getP3()); - fields.put("p_4",item.getP4()); - fields.put("p_5",item.getP5()); - fields.put("p_6",item.getP6()); - fields.put("p_7",item.getP7()); - fields.put("p_8",item.getP8()); - fields.put("p_9",item.getP9()); - fields.put("p_10",item.getP10()); - fields.put("p_11",item.getP11()); - fields.put("p_12",item.getP12()); - fields.put("p_13",item.getP13()); - fields.put("p_14",item.getP14()); - fields.put("p_15",item.getP15()); - fields.put("p_16",item.getP16()); - fields.put("p_17",item.getP17()); - fields.put("p_18",item.getP18()); - fields.put("p_19",item.getP19()); - fields.put("p_20",item.getP20()); - fields.put("p_21",item.getP21()); - fields.put("p_22",item.getP22()); - fields.put("p_23",item.getP23()); - fields.put("p_24",item.getP24()); - fields.put("p_25",item.getP25()); - fields.put("p_26",item.getP26()); - fields.put("p_27",item.getP27()); - fields.put("p_28",item.getP28()); - fields.put("p_29",item.getP29()); - fields.put("p_30",item.getP30()); - fields.put("p_31",item.getP31()); - fields.put("p_32",item.getP32()); - fields.put("p_33",item.getP33()); - fields.put("p_34",item.getP34()); - fields.put("p_35",item.getP35()); - fields.put("p_36",item.getP36()); - fields.put("p_37",item.getP37()); - fields.put("p_38",item.getP38()); - fields.put("p_39",item.getP39()); - fields.put("p_40",item.getP40()); - fields.put("p_41",item.getP41()); - fields.put("p_42",item.getP42()); - fields.put("p_43",item.getP43()); - fields.put("p_44",item.getP44()); - fields.put("p_45",item.getP45()); - fields.put("p_46",item.getP46()); - fields.put("p_47",item.getP47()); - fields.put("p_48",item.getP48()); - fields.put("p_49",item.getP49()); - fields.put("p_50",item.getP50()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_HARM_POWER_P, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - - /** - * 功能描述:获取data_harmpower_q数据 - * @author xy - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataHarmPowerQ(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - StringBuilder stringBuilder1 = new StringBuilder(); - StringBuilder stringBuilder2 = new StringBuilder(); - stringBuilder1.append("min(q) AS q,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder1.append("min(q_").append(i).append(") AS q_").append(i); - } else { - stringBuilder1.append("min(q_").append(i).append(") AS q_").append(i).append(","); - } - } - stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_Q+" where "+stringBuilder+stringBuilder2; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataHarmPowerQ.class); - //最大值 - StringBuilder stringBuilder3 = new StringBuilder(); - StringBuilder stringBuilder4 = new StringBuilder(); - stringBuilder3.append("max(q) AS q,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder3.append("max(q_").append(i).append(") AS q_").append(i); - } else { - stringBuilder3.append("max(q_").append(i).append(") AS q_").append(i).append(","); - } - } - stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_Q+" where "+stringBuilder+stringBuilder4; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataHarmPowerQ.class); - //平均值 - StringBuilder stringBuilder5 = new StringBuilder(); - StringBuilder stringBuilder6 = new StringBuilder(); - stringBuilder5.append("mean(q) AS q,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder5.append("mean(q_").append(i).append(") AS q_").append(i); - } else { - stringBuilder5.append("mean(q_").append(i).append(") AS q_").append(i).append(","); - } - } - stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_Q+" where "+stringBuilder+stringBuilder6; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataHarmPowerQ.class); - //CP95值 - StringBuilder stringBuilder7 = new StringBuilder(); - StringBuilder stringBuilder8 = new StringBuilder(); - stringBuilder7.append("percentile(q,95) AS q,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder7.append("percentile(q_").append(i).append(",95) AS q_").append(i); - } else { - stringBuilder7.append("percentile(q_").append(i).append(",95) AS q_").append(i).append(","); - } - } - stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_Q+" where "+stringBuilder+stringBuilder8; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataHarmPowerQ.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入day_harmpower_q表数据 - * @author xy - * @param list data_harmpower_q表数据 - * @param time 时间戳 - * @date 2022/5/12 8:55 - */ - private void insertDayHarmPowerQ(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("q",item.getQ()); - fields.put("q_1",item.getQ1()); - fields.put("q_2",item.getQ2()); - fields.put("q_3",item.getQ3()); - fields.put("q_4",item.getQ4()); - fields.put("q_5",item.getQ5()); - fields.put("q_6",item.getQ6()); - fields.put("q_7",item.getQ7()); - fields.put("q_8",item.getQ8()); - fields.put("q_9",item.getQ9()); - fields.put("q_10",item.getQ10()); - fields.put("q_11",item.getQ11()); - fields.put("q_12",item.getQ12()); - fields.put("q_13",item.getQ13()); - fields.put("q_14",item.getQ14()); - fields.put("q_15",item.getQ15()); - fields.put("q_16",item.getQ16()); - fields.put("q_17",item.getQ17()); - fields.put("q_18",item.getQ18()); - fields.put("q_19",item.getQ19()); - fields.put("q_20",item.getQ20()); - fields.put("q_21",item.getQ21()); - fields.put("q_22",item.getQ22()); - fields.put("q_23",item.getQ23()); - fields.put("q_24",item.getQ24()); - fields.put("q_25",item.getQ25()); - fields.put("q_26",item.getQ26()); - fields.put("q_27",item.getQ27()); - fields.put("q_28",item.getQ28()); - fields.put("q_29",item.getQ29()); - fields.put("q_30",item.getQ30()); - fields.put("q_31",item.getQ31()); - fields.put("q_32",item.getQ32()); - fields.put("q_33",item.getQ33()); - fields.put("q_34",item.getQ34()); - fields.put("q_35",item.getQ35()); - fields.put("q_36",item.getQ36()); - fields.put("q_37",item.getQ37()); - fields.put("q_38",item.getQ38()); - fields.put("q_39",item.getQ39()); - fields.put("q_40",item.getQ40()); - fields.put("q_41",item.getQ41()); - fields.put("q_42",item.getQ42()); - fields.put("q_43",item.getQ43()); - fields.put("q_44",item.getQ44()); - fields.put("q_45",item.getQ45()); - fields.put("q_46",item.getQ46()); - fields.put("q_47",item.getQ47()); - fields.put("q_48",item.getQ48()); - fields.put("q_49",item.getQ49()); - fields.put("q_50",item.getQ50()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_HARM_POWER_Q, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - /** - * 功能描述:获取data_harmpower_s数据 - * @author xy - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataHarmPowerS(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - StringBuilder stringBuilder1 = new StringBuilder(); - StringBuilder stringBuilder2 = new StringBuilder(); - stringBuilder1.append("min(s) AS s,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder1.append("min(s_").append(i).append(") AS s_").append(i); - } else { - stringBuilder1.append("min(s_").append(i).append(") AS s_").append(i).append(","); - } - } - stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_S+" where "+stringBuilder+stringBuilder2; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataHarmPowerS.class); - //最大值 - StringBuilder stringBuilder3 = new StringBuilder(); - StringBuilder stringBuilder4 = new StringBuilder(); - stringBuilder3.append("max(s) AS s,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder3.append("max(s_").append(i).append(") AS s_").append(i); - } else { - stringBuilder3.append("max(s_").append(i).append(") AS s_").append(i).append(","); - } - } - stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_S+" where "+stringBuilder+stringBuilder4; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataHarmPowerS.class); - //平均值 - StringBuilder stringBuilder5 = new StringBuilder(); - StringBuilder stringBuilder6 = new StringBuilder(); - stringBuilder5.append("mean(s) AS s,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder5.append("mean(s_").append(i).append(") AS s_").append(i); - } else { - stringBuilder5.append("mean(s_").append(i).append(") AS s_").append(i).append(","); - } - } - stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_S+" where "+stringBuilder+stringBuilder6; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataHarmPowerS.class); - //CP95值 - StringBuilder stringBuilder7 = new StringBuilder(); - StringBuilder stringBuilder8 = new StringBuilder(); - stringBuilder7.append("percentile(s,95) AS s,"); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder7.append("percentile(s_").append(i).append(",95) AS s_").append(i); - } else { - stringBuilder7.append("percentile(s_").append(i).append(",95) AS s_").append(i).append(","); - } - } - stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_S+" where "+stringBuilder+stringBuilder8; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataHarmPowerS.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入day_harmpower_q表数据 - * @author xy - * @param list data_harmpower_q表数据 - * @param time 时间戳 - * @date 2022/5/12 8:55 - */ - private void insertDayHarmPowerS(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("s",item.getS()); - fields.put("s_1",item.getS1()); - fields.put("s_2",item.getS2()); - fields.put("s_3",item.getS3()); - fields.put("s_4",item.getS4()); - fields.put("s_5",item.getS5()); - fields.put("s_6",item.getS6()); - fields.put("s_7",item.getS7()); - fields.put("s_8",item.getS8()); - fields.put("s_9",item.getS9()); - fields.put("s_10",item.getS10()); - fields.put("s_11",item.getS11()); - fields.put("s_12",item.getS12()); - fields.put("s_13",item.getS13()); - fields.put("s_14",item.getS14()); - fields.put("s_15",item.getS15()); - fields.put("s_16",item.getS16()); - fields.put("s_17",item.getS17()); - fields.put("s_18",item.getS18()); - fields.put("s_19",item.getS19()); - fields.put("s_20",item.getS20()); - fields.put("s_21",item.getS21()); - fields.put("s_22",item.getS22()); - fields.put("s_23",item.getS23()); - fields.put("s_24",item.getS24()); - fields.put("s_25",item.getS25()); - fields.put("s_26",item.getS26()); - fields.put("s_27",item.getS27()); - fields.put("s_28",item.getS28()); - fields.put("s_29",item.getS29()); - fields.put("s_30",item.getS30()); - fields.put("s_31",item.getS31()); - fields.put("s_32",item.getS32()); - fields.put("s_33",item.getS33()); - fields.put("s_34",item.getS34()); - fields.put("s_35",item.getS35()); - fields.put("s_36",item.getS36()); - fields.put("s_37",item.getS37()); - fields.put("s_38",item.getS38()); - fields.put("s_39",item.getS39()); - fields.put("s_40",item.getS40()); - fields.put("s_41",item.getS41()); - fields.put("s_42",item.getS42()); - fields.put("s_43",item.getS43()); - fields.put("s_44",item.getS44()); - fields.put("s_45",item.getS45()); - fields.put("s_46",item.getS46()); - fields.put("s_47",item.getS47()); - fields.put("s_48",item.getS48()); - fields.put("s_49",item.getS49()); - fields.put("s_50",item.getS50()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_HARM_POWER_S, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - /** - * 功能描述:获取data_harmrate_i数据 - * @author xy - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataHarmRateI(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - StringBuilder stringBuilder1 = new StringBuilder(); - StringBuilder stringBuilder2 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i); - } else { - stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i).append(","); - } - } - stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_I+" where "+stringBuilder+stringBuilder2; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataHarmRateI.class); - //最大值 - StringBuilder stringBuilder3 = new StringBuilder(); - StringBuilder stringBuilder4 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i); - } else { - stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i).append(","); - } - } - stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_I+" where "+stringBuilder+stringBuilder4; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataHarmRateI.class); - //平均值 - StringBuilder stringBuilder5 = new StringBuilder(); - StringBuilder stringBuilder6 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i); - } else { - stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i).append(","); - } - } - stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_I+" where "+stringBuilder+stringBuilder6; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataHarmRateI.class); - //CP95值 - StringBuilder stringBuilder7 = new StringBuilder(); - StringBuilder stringBuilder8 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i); - } else { - stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i).append(","); - } - } - stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_I+" where "+stringBuilder+stringBuilder8; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataHarmRateI.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入day_harmrate_i表数据 - * @author xy - * @param list data_harmrate_i表数据 - * @param time 时间戳 - * @date 2022/5/12 8:55 - */ - private void insertDayHarmRateI(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("i_1",item.getI1()); - fields.put("i_2",item.getI2()); - fields.put("i_3",item.getI3()); - fields.put("i_4",item.getI4()); - fields.put("i_5",item.getI5()); - fields.put("i_6",item.getI6()); - fields.put("i_7",item.getI7()); - fields.put("i_8",item.getI8()); - fields.put("i_9",item.getI9()); - fields.put("i_10",item.getI10()); - fields.put("i_11",item.getI11()); - fields.put("i_12",item.getI12()); - fields.put("i_13",item.getI13()); - fields.put("i_14",item.getI14()); - fields.put("i_15",item.getI15()); - fields.put("i_16",item.getI16()); - fields.put("i_17",item.getI17()); - fields.put("i_18",item.getI18()); - fields.put("i_19",item.getI19()); - fields.put("i_20",item.getI20()); - fields.put("i_21",item.getI21()); - fields.put("i_22",item.getI22()); - fields.put("i_23",item.getI23()); - fields.put("i_24",item.getI24()); - fields.put("i_25",item.getI25()); - fields.put("i_26",item.getI26()); - fields.put("i_27",item.getI27()); - fields.put("i_28",item.getI28()); - fields.put("i_29",item.getI29()); - fields.put("i_30",item.getI30()); - fields.put("i_31",item.getI31()); - fields.put("i_32",item.getI32()); - fields.put("i_33",item.getI33()); - fields.put("i_34",item.getI34()); - fields.put("i_35",item.getI35()); - fields.put("i_36",item.getI36()); - fields.put("i_37",item.getI37()); - fields.put("i_38",item.getI38()); - fields.put("i_39",item.getI39()); - fields.put("i_40",item.getI40()); - fields.put("i_41",item.getI41()); - fields.put("i_42",item.getI42()); - fields.put("i_43",item.getI43()); - fields.put("i_44",item.getI44()); - fields.put("i_45",item.getI45()); - fields.put("i_46",item.getI46()); - fields.put("i_47",item.getI47()); - fields.put("i_48",item.getI48()); - fields.put("i_49",item.getI49()); - fields.put("i_50",item.getI50()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_HARM_RATE_I, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - /** - * 功能描述:获取data_harmrate_v数据 - * @author xy - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataHarmRateV(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - StringBuilder stringBuilder1 = new StringBuilder(); - StringBuilder stringBuilder2 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i); - } else { - stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i).append(","); - } - } - stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_V+" where "+stringBuilder+stringBuilder2; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataHarmRateV.class); - //最大值 - StringBuilder stringBuilder3 = new StringBuilder(); - StringBuilder stringBuilder4 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i); - } else { - stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i).append(","); - } - } - stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_V+" where "+stringBuilder+stringBuilder4; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataHarmRateV.class); - //平均值 - StringBuilder stringBuilder5 = new StringBuilder(); - StringBuilder stringBuilder6 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i); - } else { - stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i).append(","); - } - } - stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_V+" where "+stringBuilder+stringBuilder6; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataHarmRateV.class); - //CP95值 - StringBuilder stringBuilder7 = new StringBuilder(); - StringBuilder stringBuilder8 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i); - } else { - stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i).append(","); - } - } - stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_V+" where "+stringBuilder+stringBuilder8; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataHarmRateV.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入day_harmrate_v表数据 - * @author xy - * @param list data_harmrate_v表数据 - * @param time 时间戳 - * @date 2022/5/12 8:55 - */ - private void insertDayHarmRateV(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("v_1",item.getV1()); - fields.put("v_2",item.getV2()); - fields.put("v_3",item.getV3()); - fields.put("v_4",item.getV4()); - fields.put("v_5",item.getV5()); - fields.put("v_6",item.getV6()); - fields.put("v_7",item.getV7()); - fields.put("v_8",item.getV8()); - fields.put("v_9",item.getV9()); - fields.put("v_10",item.getV10()); - fields.put("v_11",item.getV11()); - fields.put("v_12",item.getV12()); - fields.put("v_13",item.getV13()); - fields.put("v_14",item.getV14()); - fields.put("v_15",item.getV15()); - fields.put("v_16",item.getV16()); - fields.put("v_17",item.getV17()); - fields.put("v_18",item.getV18()); - fields.put("v_19",item.getV19()); - fields.put("v_20",item.getV20()); - fields.put("v_21",item.getV21()); - fields.put("v_22",item.getV22()); - fields.put("v_23",item.getV23()); - fields.put("v_24",item.getV24()); - fields.put("v_25",item.getV25()); - fields.put("v_26",item.getV26()); - fields.put("v_27",item.getV27()); - fields.put("v_28",item.getV28()); - fields.put("v_29",item.getV29()); - fields.put("v_30",item.getV30()); - fields.put("v_31",item.getV31()); - fields.put("v_32",item.getV32()); - fields.put("v_33",item.getV33()); - fields.put("v_34",item.getV34()); - fields.put("v_35",item.getV35()); - fields.put("v_36",item.getV36()); - fields.put("v_37",item.getV37()); - fields.put("v_38",item.getV38()); - fields.put("v_39",item.getV39()); - fields.put("v_40",item.getV40()); - fields.put("v_41",item.getV41()); - fields.put("v_42",item.getV42()); - fields.put("v_43",item.getV43()); - fields.put("v_44",item.getV44()); - fields.put("v_45",item.getV45()); - fields.put("v_46",item.getV46()); - fields.put("v_47",item.getV47()); - fields.put("v_48",item.getV48()); - fields.put("v_49",item.getV49()); - fields.put("v_50",item.getV50()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_HARM_RATE_V, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - /** - * 功能描述:获取data_inharm_i数据 - * @author xy - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataInHarmI(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - StringBuilder stringBuilder1 = new StringBuilder(); - StringBuilder stringBuilder2 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i); - } else { - stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i).append(","); - } - } - stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder2; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataInHarmI.class); - //最大值 - StringBuilder stringBuilder3 = new StringBuilder(); - StringBuilder stringBuilder4 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i); - } else { - stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i).append(","); - } - } - stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder4; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataInHarmI.class); - //平均值 - StringBuilder stringBuilder5 = new StringBuilder(); - StringBuilder stringBuilder6 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i); - } else { - stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i).append(","); - } - } - stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder6; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataInHarmI.class); - //CP95值 - StringBuilder stringBuilder7 = new StringBuilder(); - StringBuilder stringBuilder8 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i); - } else { - stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i).append(","); - } - } - stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder8; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataInHarmI.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入day_inharm_i表数据 - * @author xy - * @param list data_inharm_i表数据 - * @param time 时间戳 - * @date 2022/5/12 8:55 - */ - private void insertDayInHarmI(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("i_1",item.getI1()); - fields.put("i_2",item.getI2()); - fields.put("i_3",item.getI3()); - fields.put("i_4",item.getI4()); - fields.put("i_5",item.getI5()); - fields.put("i_6",item.getI6()); - fields.put("i_7",item.getI7()); - fields.put("i_8",item.getI8()); - fields.put("i_9",item.getI9()); - fields.put("i_10",item.getI10()); - fields.put("i_11",item.getI11()); - fields.put("i_12",item.getI12()); - fields.put("i_13",item.getI13()); - fields.put("i_14",item.getI14()); - fields.put("i_15",item.getI15()); - fields.put("i_16",item.getI16()); - fields.put("i_17",item.getI17()); - fields.put("i_18",item.getI18()); - fields.put("i_19",item.getI19()); - fields.put("i_20",item.getI20()); - fields.put("i_21",item.getI21()); - fields.put("i_22",item.getI22()); - fields.put("i_23",item.getI23()); - fields.put("i_24",item.getI24()); - fields.put("i_25",item.getI25()); - fields.put("i_26",item.getI26()); - fields.put("i_27",item.getI27()); - fields.put("i_28",item.getI28()); - fields.put("i_29",item.getI29()); - fields.put("i_30",item.getI30()); - fields.put("i_31",item.getI31()); - fields.put("i_32",item.getI32()); - fields.put("i_33",item.getI33()); - fields.put("i_34",item.getI34()); - fields.put("i_35",item.getI35()); - fields.put("i_36",item.getI36()); - fields.put("i_37",item.getI37()); - fields.put("i_38",item.getI38()); - fields.put("i_39",item.getI39()); - fields.put("i_40",item.getI40()); - fields.put("i_41",item.getI41()); - fields.put("i_42",item.getI42()); - fields.put("i_43",item.getI43()); - fields.put("i_44",item.getI44()); - fields.put("i_45",item.getI45()); - fields.put("i_46",item.getI46()); - fields.put("i_47",item.getI47()); - fields.put("i_48",item.getI48()); - fields.put("i_49",item.getI49()); - fields.put("i_50",item.getI50()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_IN_HARM_I, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - /** - * 功能描述:获取data_inharm_v数据 - * @author xy - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataInHarmV(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - StringBuilder stringBuilder1 = new StringBuilder(); - StringBuilder stringBuilder2 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i); - } else { - stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i).append(","); - } - } - stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder2; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataInHarmV.class); - //最大值 - StringBuilder stringBuilder3 = new StringBuilder(); - StringBuilder stringBuilder4 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i); - } else { - stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i).append(","); - } - } - stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder4; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataInHarmV.class); - //平均值 - StringBuilder stringBuilder5 = new StringBuilder(); - StringBuilder stringBuilder6 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i); - } else { - stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i).append(","); - } - } - stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder6; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataInHarmV.class); - //CP95值 - StringBuilder stringBuilder7 = new StringBuilder(); - StringBuilder stringBuilder8 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i); - } else { - stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i).append(","); - } - } - stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder8; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataInHarmV.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入day_inharm_v表数据 - * @author xy - * @param list data_inharm_v表数据 - * @param time 时间戳 - * @date 2022/5/12 8:55 - */ - private void insertDayInHarmV(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("v_1",item.getV1()); - fields.put("v_2",item.getV2()); - fields.put("v_3",item.getV3()); - fields.put("v_4",item.getV4()); - fields.put("v_5",item.getV5()); - fields.put("v_6",item.getV6()); - fields.put("v_7",item.getV7()); - fields.put("v_8",item.getV8()); - fields.put("v_9",item.getV9()); - fields.put("v_10",item.getV10()); - fields.put("v_11",item.getV11()); - fields.put("v_12",item.getV12()); - fields.put("v_13",item.getV13()); - fields.put("v_14",item.getV14()); - fields.put("v_15",item.getV15()); - fields.put("v_16",item.getV16()); - fields.put("v_17",item.getV17()); - fields.put("v_18",item.getV18()); - fields.put("v_19",item.getV19()); - fields.put("v_20",item.getV20()); - fields.put("v_21",item.getV21()); - fields.put("v_22",item.getV22()); - fields.put("v_23",item.getV23()); - fields.put("v_24",item.getV24()); - fields.put("v_25",item.getV25()); - fields.put("v_26",item.getV26()); - fields.put("v_27",item.getV27()); - fields.put("v_28",item.getV28()); - fields.put("v_29",item.getV29()); - fields.put("v_30",item.getV30()); - fields.put("v_31",item.getV31()); - fields.put("v_32",item.getV32()); - fields.put("v_33",item.getV33()); - fields.put("v_34",item.getV34()); - fields.put("v_35",item.getV35()); - fields.put("v_36",item.getV36()); - fields.put("v_37",item.getV37()); - fields.put("v_38",item.getV38()); - fields.put("v_39",item.getV39()); - fields.put("v_40",item.getV40()); - fields.put("v_41",item.getV41()); - fields.put("v_42",item.getV42()); - fields.put("v_43",item.getV43()); - fields.put("v_44",item.getV44()); - fields.put("v_45",item.getV45()); - fields.put("v_46",item.getV46()); - fields.put("v_47",item.getV47()); - fields.put("v_48",item.getV48()); - fields.put("v_49",item.getV49()); - fields.put("v_50",item.getV50()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_IN_HARM_V, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - - /** - * 功能描述:获取data_inharmrate_i数据 - * @author xy - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataInHarmRateI(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - StringBuilder stringBuilder1 = new StringBuilder(); - StringBuilder stringBuilder2 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i); - } else { - stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i).append(","); - } - } - stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder2; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataInHarmRateI.class); - //最大值 - StringBuilder stringBuilder3 = new StringBuilder(); - StringBuilder stringBuilder4 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i); - } else { - stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i).append(","); - } - } - stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder4; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataInHarmRateI.class); - //平均值 - StringBuilder stringBuilder5 = new StringBuilder(); - StringBuilder stringBuilder6 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i); - } else { - stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i).append(","); - } - } - stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder6; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataInHarmRateI.class); - //CP95值 - StringBuilder stringBuilder7 = new StringBuilder(); - StringBuilder stringBuilder8 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i); - } else { - stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i).append(","); - } - } - stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder8; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataInHarmRateI.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入day_inharmrate_i表数据 - * @author xy - * @param list data_inharmrate_i表数据 - * @param time 时间戳 - * @date 2022/5/12 8:55 - */ - private void insertDayInHarmRateI(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("i_1",item.getI1()); - fields.put("i_2",item.getI2()); - fields.put("i_3",item.getI3()); - fields.put("i_4",item.getI4()); - fields.put("i_5",item.getI5()); - fields.put("i_6",item.getI6()); - fields.put("i_7",item.getI7()); - fields.put("i_8",item.getI8()); - fields.put("i_9",item.getI9()); - fields.put("i_10",item.getI10()); - fields.put("i_11",item.getI11()); - fields.put("i_12",item.getI12()); - fields.put("i_13",item.getI13()); - fields.put("i_14",item.getI14()); - fields.put("i_15",item.getI15()); - fields.put("i_16",item.getI16()); - fields.put("i_17",item.getI17()); - fields.put("i_18",item.getI18()); - fields.put("i_19",item.getI19()); - fields.put("i_20",item.getI20()); - fields.put("i_21",item.getI21()); - fields.put("i_22",item.getI22()); - fields.put("i_23",item.getI23()); - fields.put("i_24",item.getI24()); - fields.put("i_25",item.getI25()); - fields.put("i_26",item.getI26()); - fields.put("i_27",item.getI27()); - fields.put("i_28",item.getI28()); - fields.put("i_29",item.getI29()); - fields.put("i_30",item.getI30()); - fields.put("i_31",item.getI31()); - fields.put("i_32",item.getI32()); - fields.put("i_33",item.getI33()); - fields.put("i_34",item.getI34()); - fields.put("i_35",item.getI35()); - fields.put("i_36",item.getI36()); - fields.put("i_37",item.getI37()); - fields.put("i_38",item.getI38()); - fields.put("i_39",item.getI39()); - fields.put("i_40",item.getI40()); - fields.put("i_41",item.getI41()); - fields.put("i_42",item.getI42()); - fields.put("i_43",item.getI43()); - fields.put("i_44",item.getI44()); - fields.put("i_45",item.getI45()); - fields.put("i_46",item.getI46()); - fields.put("i_47",item.getI47()); - fields.put("i_48",item.getI48()); - fields.put("i_49",item.getI49()); - fields.put("i_50",item.getI50()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_IN_HARM_I, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - /** - * 功能描述:获取data_inharmrate_v数据 - * @author xy - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataInHarmRateV(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - StringBuilder stringBuilder1 = new StringBuilder(); - StringBuilder stringBuilder2 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i); - } else { - stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i).append(","); - } - } - stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder2; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataInHarmRateV.class); - //最大值 - StringBuilder stringBuilder3 = new StringBuilder(); - StringBuilder stringBuilder4 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i); - } else { - stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i).append(","); - } - } - stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder4; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataInHarmRateV.class); - //平均值 - StringBuilder stringBuilder5 = new StringBuilder(); - StringBuilder stringBuilder6 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i); - } else { - stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i).append(","); - } - } - stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder6; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataInHarmRateV.class); - //CP95值 - StringBuilder stringBuilder7 = new StringBuilder(); - StringBuilder stringBuilder8 = new StringBuilder(); - for (int i = 1; i <=50 ; i++) { - if (i==50){ - stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i); - } else { - stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i).append(","); - } - } - stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); - String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder8; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataInHarmRateV.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入day_inharmrate_v表数据 - * @author xy - * @param list data_inharmrate_v表数据 - * @param time 时间戳 - * @date 2022/5/12 8:55 - */ - private void insertDayInHarmRateV(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("v_1",item.getV1()); - fields.put("v_2",item.getV2()); - fields.put("v_3",item.getV3()); - fields.put("v_4",item.getV4()); - fields.put("v_5",item.getV5()); - fields.put("v_6",item.getV6()); - fields.put("v_7",item.getV7()); - fields.put("v_8",item.getV8()); - fields.put("v_9",item.getV9()); - fields.put("v_10",item.getV10()); - fields.put("v_11",item.getV11()); - fields.put("v_12",item.getV12()); - fields.put("v_13",item.getV13()); - fields.put("v_14",item.getV14()); - fields.put("v_15",item.getV15()); - fields.put("v_16",item.getV16()); - fields.put("v_17",item.getV17()); - fields.put("v_18",item.getV18()); - fields.put("v_19",item.getV19()); - fields.put("v_20",item.getV20()); - fields.put("v_21",item.getV21()); - fields.put("v_22",item.getV22()); - fields.put("v_23",item.getV23()); - fields.put("v_24",item.getV24()); - fields.put("v_25",item.getV25()); - fields.put("v_26",item.getV26()); - fields.put("v_27",item.getV27()); - fields.put("v_28",item.getV28()); - fields.put("v_29",item.getV29()); - fields.put("v_30",item.getV30()); - fields.put("v_31",item.getV31()); - fields.put("v_32",item.getV32()); - fields.put("v_33",item.getV33()); - fields.put("v_34",item.getV34()); - fields.put("v_35",item.getV35()); - fields.put("v_36",item.getV36()); - fields.put("v_37",item.getV37()); - fields.put("v_38",item.getV38()); - fields.put("v_39",item.getV39()); - fields.put("v_40",item.getV40()); - fields.put("v_41",item.getV41()); - fields.put("v_42",item.getV42()); - fields.put("v_43",item.getV43()); - fields.put("v_44",item.getV44()); - fields.put("v_45",item.getV45()); - fields.put("v_46",item.getV46()); - fields.put("v_47",item.getV47()); - fields.put("v_48",item.getV48()); - fields.put("v_49",item.getV49()); - fields.put("v_50",item.getV50()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DATA_IN_HARM_V, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - /** - * 功能描述:获取data_plt数据 - * @author xy - * @param startTime 起始时间 - * @param endTime 结束时间 - * @date 2022/5/10 14:56 - * @return List - */ - public List getDataPlt(List lineList, String startTime, String endTime){ - List result = new ArrayList<>(); - StringBuilder stringBuilder = lineStringBuilder(lineList); - //最小值 - String sql1 = "select min(plt) AS plt from "+ InfluxDBPublicParam.DATA_PLT+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; - QueryResult sqlResult1 = influxDbUtils.query(sql1); - InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); - List list1 = resultMapper1.toPOJO(sqlResult1, DataPlt.class); - list1.forEach(item->{ - item.setValueType("MIN"); - }); - //最大值 - String sql2 = "select max(plt) AS plt from "+ InfluxDBPublicParam.DATA_PLT+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; - QueryResult sqlResult2 = influxDbUtils.query(sql2); - InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); - List list2 = resultMapper2.toPOJO(sqlResult2, DataPlt.class); - list2.forEach(item->{ - item.setValueType("MAX"); - }); - //平均值 - String sql3 = "select mean(plt) AS plt from "+ InfluxDBPublicParam.DATA_PLT+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; - QueryResult sqlResult3 = influxDbUtils.query(sql3); - InfluxDBResultMapper resultMapper3= new InfluxDBResultMapper(); - List list3 = resultMapper3.toPOJO(sqlResult3, DataPlt.class); - list3.forEach(item->{ - item.setValueType("AVG"); - }); - //CP95值 - String sql4 = "select percentile(plt,95) AS plt from "+ InfluxDBPublicParam.DATA_PLT+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; - QueryResult sqlResult4 = influxDbUtils.query(sql4); - InfluxDBResultMapper resultMapper4= new InfluxDBResultMapper(); - List list4 = resultMapper4.toPOJO(sqlResult4, DataPlt.class); - list4.forEach(item->{ - item.setValueType("CP95"); - }); - result.addAll(list1); - result.addAll(list2); - result.addAll(list3); - result.addAll(list4); - return result; - } - - /** - * 功能描述:插入day_plt表数据 - * @author xy - * @param list data_plt集合 - * @param time 时间戳 - * @date 2022/5/12 8:55 - */ - private void insertDayPlt(List list, long time){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getLineId()); - tags.put("phasic_type",item.getPhaseType()); - tags.put("quality_flag",item.getQualityFlag()); - tags.put("value_type",item.getValueType()); - fields.put("plt",item.getPlt()); - Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_PLT, time, TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - - public StringBuilder lineStringBuilder(List list) { - StringBuilder stringBuilder = new StringBuilder(); - if (!CollectionUtils.isEmpty(list)){ - stringBuilder.append("("); - for (int i = 0; i < list.size(); i++) { - if (list.size() - i != 1) { - stringBuilder.append("line_id ='").append(list.get(i)).append("' or "); - } else { - stringBuilder.append("line_id ='").append(list.get(i)).append("') and "); - } - } - } - return stringBuilder; - } -} +//package com.njcn.executor.handler; +// +//import com.njcn.common.pojo.constant.PatternRegex; +//import com.njcn.device.pq.api.LineFeignClient; +//import com.njcn.executor.pojo.vo.*; +//import com.njcn.influxdb.config.InfluxDbConfig; +//import com.njcn.influxdb.param.InfluxDBPublicParam; +//import com.njcn.influxdb.utils.InfluxDbUtils; +//import com.xxl.job.core.context.XxlJobHelper; +//import com.xxl.job.core.handler.annotation.XxlJob; +//import lombok.AllArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.influxdb.InfluxDB; +//import org.influxdb.dto.BatchPoints; +//import org.influxdb.dto.Point; +//import org.influxdb.dto.QueryResult; +//import org.influxdb.impl.InfluxDBResultMapper; +//import org.springframework.stereotype.Component; +//import org.springframework.util.CollectionUtils; +//import org.springframework.util.StringUtils; +// +//import java.text.ParseException; +//import java.text.SimpleDateFormat; +//import java.util.*; +//import java.util.concurrent.TimeUnit; +//import java.util.regex.Pattern; +// +///** +// * 类的介绍: +// * +// * @author xuyang +// * @version 1.0.0 +// * @createTime 2022/5/10 14:10 +// */ +//@Slf4j +//@Component +//@AllArgsConstructor +//public class DayJob { +// +// private final InfluxDbUtils influxDbUtils; +// +// private final LineFeignClient lineFeignClient; +// +// private final InfluxDbConfig influxDbConfig; +// +// @XxlJob("dayJobHandler") +// public void getDayData() throws ParseException { +// List paramList = new ArrayList<>(); +// List lineList = new ArrayList<>(); +// String command = XxlJobHelper.getJobParam(); +// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); +// Calendar calendar = Calendar.getInstance(); +// calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)-1, 0, 0, 0); +// calendar.set(Calendar.MILLISECOND, 0); +// Calendar calendar2 = Calendar.getInstance(); +// calendar2.set(calendar2.get(Calendar.YEAR), calendar2.get(Calendar.MONTH), calendar2.get(Calendar.DAY_OF_MONTH)-1, 23, 59, 59); +// calendar2.set(Calendar.MILLISECOND, 0); +// String startTime = format.format(calendar.getTime()); +// String endTime = format.format(calendar2.getTime()); +// if (!StringUtils.isEmpty(command)){ +// paramList = Arrays.asList(command.split(",")); +// startTime = paramList.get(0); +// endTime = paramList.get(1); +// lineList = paramList.subList(2,paramList.size()); +// if (CollectionUtils.isEmpty(lineList)){ +// log.info("补招传入的参数,未传监测点id"); +// lineList = lineFeignClient.getLineList().getData(); +// } +// boolean s1 = Pattern.matches(PatternRegex.TIME_FORMAT,startTime); +// boolean e1 = Pattern.matches(PatternRegex.TIME_FORMAT,endTime); +// if (!s1 || !e1){ +// log.error("补招时间格式错误"); +// return; +// } else { +// startTime = startTime + " 00:00:00"; +// endTime = endTime + " 23:59:59"; +// } +// } else { +// lineList = lineFeignClient.getLineList().getData(); +// } +// long diff,diffDays,a,b = 0; +// Date d1 = format.parse(startTime); +// Date d2 = format.parse(endTime); +// diff = d2.getTime() - d1.getTime(); +// diffDays = diff / (24 * 60 * 60 * 1000-1000); +// int days = (int) diffDays; +// for (int i = 1; i <= days; i++) { +// a = d1.getTime() + (long)(i-1)*(24 * 60 * 60) * 1000; +// b = d1.getTime() + (long)i*(24 * 60 * 60) * 1000-1000; +// startTime = format.format(a); +// endTime = format.format(b); +// //生成dayV表 +// List dataV = getDataV(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataV)){ +// insertDayV(dataV,a); +// } +// //生成dayI表 +// List dataI = getDataI(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataI)){ +// insertDayI(dataI,a); +// } +// //生成dayFlicker表 +// List dataFlicker = getDataFlicker(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataFlicker)){ +// insertDayFlicker(dataFlicker,a); +// } +// //生成dayFluc表 +// List dataFluc = getDataFluc(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataFluc)){ +// insertDayFluc(dataFluc,a); +// } +// //生成dayHarmphasicI表 +// List dataHarmphasicI = getDataHarmphasicI(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataHarmphasicI)){ +// insertDayHarmphasicI(dataHarmphasicI,a); +// } +// //生成dayHarmphasicV表 +// List dataHarmphasicV = getDataHarmphasicV(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataHarmphasicV)){ +// insertDayHarmphasicV(dataHarmphasicV,a); +// } +// //生成dayHarmPowerP表 +// List dataHarmPowerP = getDataHarmPowerP(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataHarmPowerP)){ +// insertDayHarmPowerP(dataHarmPowerP,a); +// } +// //生成dayHarmPowerQ表 +// List dataHarmPowerQ = getDataHarmPowerQ(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataHarmPowerQ)){ +// insertDayHarmPowerQ(dataHarmPowerQ,a); +// } +// //生成dayHarmPowerS表 +// List dataHarmPowerS = getDataHarmPowerS(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataHarmPowerS)){ +// insertDayHarmPowerS(dataHarmPowerS,a); +// } +// //生成dayHarmRateI +// List dataHarmRateI = getDataHarmRateI(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataHarmRateI)){ +// insertDayHarmRateI(dataHarmRateI,a); +// } +// //生成dayHarmRateV +// List dataHarmRateV = getDataHarmRateV(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataHarmRateV)){ +// insertDayHarmRateV(dataHarmRateV,a); +// } +// //生成dayInHarmI +// List dataInHarmI = getDataInHarmI(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataInHarmI)){ +// insertDayInHarmI(dataInHarmI,a); +// } +// //生成dayInHarmV +// List dataInHarmV = getDataInHarmV(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataInHarmV)){ +// insertDayInHarmV(dataInHarmV,a); +// } +// //生成dayInHarmRateI +// List dataInHarmRateI = getDataInHarmRateI(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataInHarmRateI)){ +// insertDayInHarmRateI(dataInHarmRateI,a); +// } +// //生成dayInHarmRateV +// List dataInHarmRateV = getDataInHarmRateV(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataInHarmRateV)){ +// insertDayInHarmRateV(dataInHarmRateV,a); +// } +// //生成dayPlt +// List dataPlt = getDataPlt(lineList,startTime,endTime); +// if (!CollectionUtils.isEmpty(dataPlt)){ +// insertDayPlt(dataPlt,a); +// } +// } +// } +// +// /** +// * 功能描述:获取dataV数据 +// * @author xy +// * @param lineList 监测点集合 +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataV(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// StringBuilder stringBuilder1 = new StringBuilder(); +// StringBuilder stringBuilder2 = new StringBuilder(); +// stringBuilder1.append("min(freq) AS freq,min(freq_dev) AS freq_dev,min(rms) AS rms,min(rms_lvr) AS rms_lvr,min(v_neg) AS v_neg,min(v_pos) AS v_pos,min(v_thd) AS v_thd,min(v_unbalance) AS v_unbalance,min(v_zero) AS v_zero,min(vl_dev) AS vl_dev,min(vu_dev) AS vu_dev,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i); +// } else { +// stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i).append(","); +// } +// } +// stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_V+" where "+stringBuilder+stringBuilder2; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataV.class); +// //最大值 +// StringBuilder stringBuilder3 = new StringBuilder(); +// StringBuilder stringBuilder4 = new StringBuilder(); +// stringBuilder3.append("max(freq) AS freq,max(freq_dev) AS freq_dev,max(rms) AS rms,max(rms_lvr) AS rms_lvr,max(v_neg) AS v_neg,max(v_pos) AS v_pos,max(v_thd) AS v_thd,max(v_unbalance) AS v_unbalance,max(v_zero) AS v_zero,max(vl_dev) AS vl_dev,max(vu_dev) AS vu_dev,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i); +// } else { +// stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i).append(","); +// } +// } +// stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_V+" where "+stringBuilder+stringBuilder4; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataV.class); +// //平均值 +// StringBuilder stringBuilder5 = new StringBuilder(); +// StringBuilder stringBuilder6 = new StringBuilder(); +// stringBuilder5.append("mean(freq) AS freq,mean(freq_dev) AS freq_dev,mean(rms) AS rms,mean(rms_lvr) AS rms_lvr,mean(v_neg) AS v_neg,mean(v_pos) AS v_pos,mean(v_thd) AS v_thd,mean(v_unbalance) AS v_unbalance,mean(v_zero) AS v_zero,mean(vl_dev) AS vl_dev,mean(vu_dev) AS vu_dev,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i); +// } else { +// stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i).append(","); +// } +// } +// stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_V+" where "+stringBuilder+stringBuilder6; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataV.class); +// //CP95值 +// StringBuilder stringBuilder7 = new StringBuilder(); +// StringBuilder stringBuilder8 = new StringBuilder(); +// stringBuilder7.append("percentile(freq,95) AS freq,percentile(freq_dev,95) AS freq_dev,percentile(rms,95) AS rms,percentile(rms_lvr,95) AS rms_lvr,percentile(v_neg,95) AS v_neg,percentile(v_pos,95) AS v_pos,percentile(v_thd,95) AS v_thd,percentile(v_unbalance,95) AS v_unbalance,percentile(v_zero,95) AS v_zero,percentile(vl_dev,95) AS vl_dev,percentile(vu_dev,95) AS vu_dev,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i); +// } else { +// stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i).append(","); +// } +// } +// stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_V+" where "+stringBuilder+stringBuilder8; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataV.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入dayV表数据 +// * @author xy +// * @param list dataV集合 +// * @param time 时间戳 +// * @date 2022/5/11 14:55 +// */ +// private void insertDayV(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("freq",item.getFreq()); +// fields.put("freq_dev",item.getFreqDev()); +// fields.put("rms",item.getRms()); +// fields.put("rms_lvr",item.getRmsLvr()); +// fields.put("v_neg",item.getVNeg()); +// fields.put("v_pos",item.getVPos()); +// fields.put("v_thd",item.getVThd()); +// fields.put("v_unbalance",item.getVUnbalance()); +// fields.put("v_zero",item.getVZero()); +// fields.put("vl_dev",item.getVlDev()); +// fields.put("vu_dev",item.getVuDev()); +// fields.put("v_1",item.getV1()); +// fields.put("v_2",item.getV2()); +// fields.put("v_3",item.getV3()); +// fields.put("v_4",item.getV4()); +// fields.put("v_5",item.getV5()); +// fields.put("v_6",item.getV6()); +// fields.put("v_7",item.getV7()); +// fields.put("v_8",item.getV8()); +// fields.put("v_9",item.getV9()); +// fields.put("v_10",item.getV10()); +// fields.put("v_11",item.getV11()); +// fields.put("v_12",item.getV12()); +// fields.put("v_13",item.getV13()); +// fields.put("v_14",item.getV14()); +// fields.put("v_15",item.getV15()); +// fields.put("v_16",item.getV16()); +// fields.put("v_17",item.getV17()); +// fields.put("v_18",item.getV18()); +// fields.put("v_19",item.getV19()); +// fields.put("v_20",item.getV20()); +// fields.put("v_21",item.getV21()); +// fields.put("v_22",item.getV22()); +// fields.put("v_23",item.getV23()); +// fields.put("v_24",item.getV24()); +// fields.put("v_25",item.getV25()); +// fields.put("v_26",item.getV26()); +// fields.put("v_27",item.getV27()); +// fields.put("v_28",item.getV28()); +// fields.put("v_29",item.getV29()); +// fields.put("v_30",item.getV30()); +// fields.put("v_31",item.getV31()); +// fields.put("v_32",item.getV32()); +// fields.put("v_33",item.getV33()); +// fields.put("v_34",item.getV34()); +// fields.put("v_35",item.getV35()); +// fields.put("v_36",item.getV36()); +// fields.put("v_37",item.getV37()); +// fields.put("v_38",item.getV38()); +// fields.put("v_39",item.getV39()); +// fields.put("v_40",item.getV40()); +// fields.put("v_41",item.getV41()); +// fields.put("v_42",item.getV42()); +// fields.put("v_43",item.getV43()); +// fields.put("v_44",item.getV44()); +// fields.put("v_45",item.getV45()); +// fields.put("v_46",item.getV46()); +// fields.put("v_47",item.getV47()); +// fields.put("v_48",item.getV48()); +// fields.put("v_49",item.getV49()); +// fields.put("v_50",item.getV50()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_V, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// +// /** +// * 功能描述:获取dataI数据 +// * @author xy +// * @param lineList 监测点集合 +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataI(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// StringBuilder stringBuilder1 = new StringBuilder(); +// StringBuilder stringBuilder2 = new StringBuilder(); +// stringBuilder1.append("min(rms) AS rms,min(i_neg) AS i_neg,min(i_pos) AS i_pos,min(i_thd) AS i_thd,min(i_unbalance) AS i_unbalance,min(i_zero) AS i_zero,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i); +// } else { +// stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i).append(","); +// } +// } +// stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_I+" where "+stringBuilder+stringBuilder2; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataI.class); +// //最大值 +// StringBuilder stringBuilder3 = new StringBuilder(); +// StringBuilder stringBuilder4 = new StringBuilder(); +// stringBuilder3.append("max(rms) AS rms,max(i_neg) AS i_neg,max(i_pos) AS i_pos,max(i_thd) AS i_thd,max(i_unbalance) AS i_unbalance,max(i_zero) AS i_zero,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i); +// } else { +// stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i).append(","); +// } +// } +// stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_I+" where "+stringBuilder+stringBuilder4; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataI.class); +// //平均值 +// StringBuilder stringBuilder5 = new StringBuilder(); +// StringBuilder stringBuilder6 = new StringBuilder(); +// stringBuilder5.append("mean(rms) AS rms,mean(i_neg) AS i_neg,mean(i_pos) AS i_pos,mean(i_thd) AS i_thd,mean(i_unbalance) AS i_unbalance,mean(i_zero) AS i_zero,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i); +// } else { +// stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i).append(","); +// } +// } +// stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_I+" where "+stringBuilder+stringBuilder6; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataI.class); +// //CP95值 +// StringBuilder stringBuilder7 = new StringBuilder(); +// StringBuilder stringBuilder8 = new StringBuilder(); +// stringBuilder7.append("percentile(rms,95) AS rms,percentile(i_neg,95) AS i_neg,percentile(i_pos,95) AS i_pos,percentile(i_thd,95) AS i_thd,percentile(i_unbalance,95) AS i_unbalance,percentile(i_zero,95) AS i_zero,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i); +// } else { +// stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i).append(","); +// } +// } +// stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_I+" where "+stringBuilder+stringBuilder8; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataI.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入dayI表数据 +// * @author xy +// * @param list dataI集合 +// * @param time 时间戳 +// * @date 2022/5/11 14:55 +// */ +// private void insertDayI(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("rms",item.getRms()); +// fields.put("i_neg",item.getINeg()); +// fields.put("i_pos",item.getIPos()); +// fields.put("i_thd",item.getIThd()); +// fields.put("i_unbalance",item.getIUnbalance()); +// fields.put("i_zero",item.getIZero()); +// fields.put("i_1",item.getI1()); +// fields.put("i_2",item.getI2()); +// fields.put("i_3",item.getI3()); +// fields.put("i_4",item.getI4()); +// fields.put("i_5",item.getI5()); +// fields.put("i_6",item.getI6()); +// fields.put("i_7",item.getI7()); +// fields.put("i_8",item.getI8()); +// fields.put("i_9",item.getI9()); +// fields.put("i_10",item.getI10()); +// fields.put("i_11",item.getI11()); +// fields.put("i_12",item.getI12()); +// fields.put("i_13",item.getI13()); +// fields.put("i_14",item.getI14()); +// fields.put("i_15",item.getI15()); +// fields.put("i_16",item.getI16()); +// fields.put("i_17",item.getI17()); +// fields.put("i_18",item.getI18()); +// fields.put("i_19",item.getI19()); +// fields.put("i_20",item.getI20()); +// fields.put("i_21",item.getI21()); +// fields.put("i_22",item.getI22()); +// fields.put("i_23",item.getI23()); +// fields.put("i_24",item.getI24()); +// fields.put("i_25",item.getI25()); +// fields.put("i_26",item.getI26()); +// fields.put("i_27",item.getI27()); +// fields.put("i_28",item.getI28()); +// fields.put("i_29",item.getI29()); +// fields.put("i_30",item.getI30()); +// fields.put("i_31",item.getI31()); +// fields.put("i_32",item.getI32()); +// fields.put("i_33",item.getI33()); +// fields.put("i_34",item.getI34()); +// fields.put("i_35",item.getI35()); +// fields.put("i_36",item.getI36()); +// fields.put("i_37",item.getI37()); +// fields.put("i_38",item.getI38()); +// fields.put("i_39",item.getI39()); +// fields.put("i_40",item.getI40()); +// fields.put("i_41",item.getI41()); +// fields.put("i_42",item.getI42()); +// fields.put("i_43",item.getI43()); +// fields.put("i_44",item.getI44()); +// fields.put("i_45",item.getI45()); +// fields.put("i_46",item.getI46()); +// fields.put("i_47",item.getI47()); +// fields.put("i_48",item.getI48()); +// fields.put("i_49",item.getI49()); +// fields.put("i_50",item.getI50()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_I, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// +// /** +// * 功能描述:获取dataFlicker数据 +// * @author xy +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataFlicker(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// String sql1 = "select min(fluc) AS fluc,min(plt) AS plt,min(pst) AS pst from "+ InfluxDBPublicParam.DATA_FLICKER+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataFlicker.class); +// list1.forEach(item->{ +// item.setValueType("MIN"); +// }); +// //最大值 +// String sql2 = "select max(fluc) AS fluc,max(plt) AS plt,max(pst) AS pst from "+ InfluxDBPublicParam.DATA_FLICKER+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataFlicker.class); +// list2.forEach(item->{ +// item.setValueType("MAX"); +// }); +// //平均值 +// String sql3 = "select mean(fluc) AS fluc,mean(plt) AS plt,mean(pst) AS pst from "+ InfluxDBPublicParam.DATA_FLICKER+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3= new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataFlicker.class); +// list3.forEach(item->{ +// item.setValueType("AVG"); +// }); +// //CP95值 +// String sql4 = "select percentile(fluc,95) AS fluc,percentile(plt,95) AS plt,percentile(pst,95) AS pst from "+ InfluxDBPublicParam.DATA_FLICKER+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE;; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4= new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataFlicker.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入dayFlicker表数据 +// * @author xy +// * @param list dataFlicker集合 +// * @param time 时间戳 +// * @date 2022/5/11 14:55 +// */ +// private void insertDayFlicker(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("fluc",item.getFluc()); +// fields.put("plt",item.getPlt()); +// fields.put("pst",item.getPst()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_FLICKER, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// +// /** +// * 功能描述:获取dataFluc数据 +// * @author xy +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataFluc(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// String sql1 = "select min(fluc) AS fluc,min(fluccf) AS fluccf from "+ InfluxDBPublicParam.DATA_FLUC+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataFluc.class); +// list1.forEach(item->{ +// item.setValueType("MIN"); +// }); +// //最大值 +// String sql2 = "select max(fluc) AS fluc,max(fluccf) AS fluccf from "+ InfluxDBPublicParam.DATA_FLUC+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataFluc.class); +// list2.forEach(item->{ +// item.setValueType("MAX"); +// }); +// //平均值 +// String sql3 = "select mean(fluc) AS fluc,mean(fluccf) AS fluccf from "+ InfluxDBPublicParam.DATA_FLUC+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3= new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataFluc.class); +// list3.forEach(item->{ +// item.setValueType("AVG"); +// }); +// //CP95值 +// String sql4 = "select percentile(fluc,95) AS fluc,percentile(fluccf,95) AS fluccf from "+ InfluxDBPublicParam.DATA_FLUC+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4= new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataFluc.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入dayFluc表数据 +// * @author xy +// * @param list dataFluc集合 +// * @param time 时间戳 +// * @date 2022/5/12 8:55 +// */ +// private void insertDayFluc(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("fluc",item.getFluc()); +// fields.put("fluccf",item.getFluccf()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_FLUC, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// +// /** +// * 功能描述:获取data_harmphasic_i数据 +// * @author xy +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataHarmphasicI(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// StringBuilder stringBuilder1 = new StringBuilder(); +// StringBuilder stringBuilder2 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i); +// } else { +// stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i).append(","); +// } +// } +// stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_I+" where "+stringBuilder+stringBuilder2; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataHarmPhasicI.class); +// //最大值 +// StringBuilder stringBuilder3 = new StringBuilder(); +// StringBuilder stringBuilder4 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i); +// } else { +// stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i).append(","); +// } +// } +// stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_I+" where "+stringBuilder+stringBuilder4; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataHarmPhasicI.class); +// //平均值 +// StringBuilder stringBuilder5 = new StringBuilder(); +// StringBuilder stringBuilder6 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i); +// } else { +// stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i).append(","); +// } +// } +// stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_I+" where "+stringBuilder+stringBuilder6; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataHarmPhasicI.class); +// //CP95值 +// StringBuilder stringBuilder7 = new StringBuilder(); +// StringBuilder stringBuilder8 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i); +// } else { +// stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i).append(","); +// } +// } +// stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_I+" where "+stringBuilder+stringBuilder8; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataHarmPhasicI.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入day_harmphasic_i表数据 +// * @author xy +// * @param list data_harmphasic_i表数据 +// * @param time 时间戳 +// * @date 2022/5/12 8:55 +// */ +// private void insertDayHarmphasicI(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("i_1",item.getI1()); +// fields.put("i_2",item.getI2()); +// fields.put("i_3",item.getI3()); +// fields.put("i_4",item.getI4()); +// fields.put("i_5",item.getI5()); +// fields.put("i_6",item.getI6()); +// fields.put("i_7",item.getI7()); +// fields.put("i_8",item.getI8()); +// fields.put("i_9",item.getI9()); +// fields.put("i_10",item.getI10()); +// fields.put("i_11",item.getI11()); +// fields.put("i_12",item.getI12()); +// fields.put("i_13",item.getI13()); +// fields.put("i_14",item.getI14()); +// fields.put("i_15",item.getI15()); +// fields.put("i_16",item.getI16()); +// fields.put("i_17",item.getI17()); +// fields.put("i_18",item.getI18()); +// fields.put("i_19",item.getI19()); +// fields.put("i_20",item.getI20()); +// fields.put("i_21",item.getI21()); +// fields.put("i_22",item.getI22()); +// fields.put("i_23",item.getI23()); +// fields.put("i_24",item.getI24()); +// fields.put("i_25",item.getI25()); +// fields.put("i_26",item.getI26()); +// fields.put("i_27",item.getI27()); +// fields.put("i_28",item.getI28()); +// fields.put("i_29",item.getI29()); +// fields.put("i_30",item.getI30()); +// fields.put("i_31",item.getI31()); +// fields.put("i_32",item.getI32()); +// fields.put("i_33",item.getI33()); +// fields.put("i_34",item.getI34()); +// fields.put("i_35",item.getI35()); +// fields.put("i_36",item.getI36()); +// fields.put("i_37",item.getI37()); +// fields.put("i_38",item.getI38()); +// fields.put("i_39",item.getI39()); +// fields.put("i_40",item.getI40()); +// fields.put("i_41",item.getI41()); +// fields.put("i_42",item.getI42()); +// fields.put("i_43",item.getI43()); +// fields.put("i_44",item.getI44()); +// fields.put("i_45",item.getI45()); +// fields.put("i_46",item.getI46()); +// fields.put("i_47",item.getI47()); +// fields.put("i_48",item.getI48()); +// fields.put("i_49",item.getI49()); +// fields.put("i_50",item.getI50()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_HARM_PHASIC_I, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// /** +// * 功能描述:获取data_harmphasic_v数据 +// * @author xy +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataHarmphasicV(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// StringBuilder stringBuilder1 = new StringBuilder(); +// StringBuilder stringBuilder2 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i); +// } else { +// stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i).append(","); +// } +// } +// stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_V+" where "+stringBuilder+stringBuilder2; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataHarmPhasicV.class); +// //最大值 +// StringBuilder stringBuilder3 = new StringBuilder(); +// StringBuilder stringBuilder4 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i); +// } else { +// stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i).append(","); +// } +// } +// stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_V+" where "+stringBuilder+stringBuilder4; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataHarmPhasicV.class); +// //平均值 +// StringBuilder stringBuilder5 = new StringBuilder(); +// StringBuilder stringBuilder6 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i); +// } else { +// stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i).append(","); +// } +// } +// stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_V+" where "+stringBuilder+stringBuilder6; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataHarmPhasicV.class); +// //CP95值 +// StringBuilder stringBuilder7 = new StringBuilder(); +// StringBuilder stringBuilder8 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i); +// } else { +// stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i).append(","); +// } +// } +// stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_HARM_PHASIC_V+" where "+stringBuilder+stringBuilder8; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataHarmPhasicV.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入day_harmphasic_V表数据 +// * @author xy +// * @param list data_harmphasic_V表数据 +// * @param time 时间戳 +// * @date 2022/5/12 8:55 +// */ +// private void insertDayHarmphasicV(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("v_1",item.getV1()); +// fields.put("v_2",item.getV2()); +// fields.put("v_3",item.getV3()); +// fields.put("v_4",item.getV4()); +// fields.put("v_5",item.getV5()); +// fields.put("v_6",item.getV6()); +// fields.put("v_7",item.getV7()); +// fields.put("v_8",item.getV8()); +// fields.put("v_9",item.getV9()); +// fields.put("v_10",item.getV10()); +// fields.put("v_11",item.getV11()); +// fields.put("v_12",item.getV12()); +// fields.put("v_13",item.getV13()); +// fields.put("v_14",item.getV14()); +// fields.put("v_15",item.getV15()); +// fields.put("v_16",item.getV16()); +// fields.put("v_17",item.getV17()); +// fields.put("v_18",item.getV18()); +// fields.put("v_19",item.getV19()); +// fields.put("v_20",item.getV20()); +// fields.put("v_21",item.getV21()); +// fields.put("v_22",item.getV22()); +// fields.put("v_23",item.getV23()); +// fields.put("v_24",item.getV24()); +// fields.put("v_25",item.getV25()); +// fields.put("v_26",item.getV26()); +// fields.put("v_27",item.getV27()); +// fields.put("v_28",item.getV28()); +// fields.put("v_29",item.getV29()); +// fields.put("v_30",item.getV30()); +// fields.put("v_31",item.getV31()); +// fields.put("v_32",item.getV32()); +// fields.put("v_33",item.getV33()); +// fields.put("v_34",item.getV34()); +// fields.put("v_35",item.getV35()); +// fields.put("v_36",item.getV36()); +// fields.put("v_37",item.getV37()); +// fields.put("v_38",item.getV38()); +// fields.put("v_39",item.getV39()); +// fields.put("v_40",item.getV40()); +// fields.put("v_41",item.getV41()); +// fields.put("v_42",item.getV42()); +// fields.put("v_43",item.getV43()); +// fields.put("v_44",item.getV44()); +// fields.put("v_45",item.getV45()); +// fields.put("v_46",item.getV46()); +// fields.put("v_47",item.getV47()); +// fields.put("v_48",item.getV48()); +// fields.put("v_49",item.getV49()); +// fields.put("v_50",item.getV50()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_HARM_PHASIC_V, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// /** +// * 功能描述:获取data_harmpower_p数据 +// * @author xy +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataHarmPowerP(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// StringBuilder stringBuilder1 = new StringBuilder(); +// StringBuilder stringBuilder2 = new StringBuilder(); +// stringBuilder1.append("min(p) AS p,min(df) AS df,min(pf) AS pf,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder1.append("min(p_").append(i).append(") AS p_").append(i); +// } else { +// stringBuilder1.append("min(p_").append(i).append(") AS p_").append(i).append(","); +// } +// } +// stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_P+" where "+stringBuilder+stringBuilder2; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataHarmPowerP.class); +// //最大值 +// StringBuilder stringBuilder3 = new StringBuilder(); +// StringBuilder stringBuilder4 = new StringBuilder(); +// stringBuilder3.append("max(p) AS p,max(df) AS df,max(pf) AS pf,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder3.append("max(p_").append(i).append(") AS p_").append(i); +// } else { +// stringBuilder3.append("max(p_").append(i).append(") AS p_").append(i).append(","); +// } +// } +// stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_P+" where "+stringBuilder+stringBuilder4; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataHarmPowerP.class); +// //平均值 +// StringBuilder stringBuilder5 = new StringBuilder(); +// StringBuilder stringBuilder6 = new StringBuilder(); +// stringBuilder5.append("mean(p) AS p,mean(df) AS df,mean(pf) AS pf,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder5.append("mean(p_").append(i).append(") AS p_").append(i); +// } else { +// stringBuilder5.append("mean(p_").append(i).append(") AS p_").append(i).append(","); +// } +// } +// stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_P+" where "+stringBuilder+stringBuilder6; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataHarmPowerP.class); +// //CP95值 +// StringBuilder stringBuilder7 = new StringBuilder(); +// StringBuilder stringBuilder8 = new StringBuilder(); +// stringBuilder7.append("percentile(p,95) AS p,percentile(df,95) AS df,percentile(pf,95) AS pf,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder7.append("percentile(p_").append(i).append(",95) AS p_").append(i); +// } else { +// stringBuilder7.append("percentile(p_").append(i).append(",95) AS p_").append(i).append(","); +// } +// } +// stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_P+" where "+stringBuilder+stringBuilder8; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataHarmPowerP.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入day_harmpower_p表数据 +// * @author xy +// * @param list data_harmpower_p表数据 +// * @param time 时间戳 +// * @date 2022/5/12 8:55 +// */ +// private void insertDayHarmPowerP(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("df",item.getDf()); +// fields.put("pf",item.getPf()); +// fields.put("p",item.getP()); +// fields.put("p_1",item.getP1()); +// fields.put("p_2",item.getP2()); +// fields.put("p_3",item.getP3()); +// fields.put("p_4",item.getP4()); +// fields.put("p_5",item.getP5()); +// fields.put("p_6",item.getP6()); +// fields.put("p_7",item.getP7()); +// fields.put("p_8",item.getP8()); +// fields.put("p_9",item.getP9()); +// fields.put("p_10",item.getP10()); +// fields.put("p_11",item.getP11()); +// fields.put("p_12",item.getP12()); +// fields.put("p_13",item.getP13()); +// fields.put("p_14",item.getP14()); +// fields.put("p_15",item.getP15()); +// fields.put("p_16",item.getP16()); +// fields.put("p_17",item.getP17()); +// fields.put("p_18",item.getP18()); +// fields.put("p_19",item.getP19()); +// fields.put("p_20",item.getP20()); +// fields.put("p_21",item.getP21()); +// fields.put("p_22",item.getP22()); +// fields.put("p_23",item.getP23()); +// fields.put("p_24",item.getP24()); +// fields.put("p_25",item.getP25()); +// fields.put("p_26",item.getP26()); +// fields.put("p_27",item.getP27()); +// fields.put("p_28",item.getP28()); +// fields.put("p_29",item.getP29()); +// fields.put("p_30",item.getP30()); +// fields.put("p_31",item.getP31()); +// fields.put("p_32",item.getP32()); +// fields.put("p_33",item.getP33()); +// fields.put("p_34",item.getP34()); +// fields.put("p_35",item.getP35()); +// fields.put("p_36",item.getP36()); +// fields.put("p_37",item.getP37()); +// fields.put("p_38",item.getP38()); +// fields.put("p_39",item.getP39()); +// fields.put("p_40",item.getP40()); +// fields.put("p_41",item.getP41()); +// fields.put("p_42",item.getP42()); +// fields.put("p_43",item.getP43()); +// fields.put("p_44",item.getP44()); +// fields.put("p_45",item.getP45()); +// fields.put("p_46",item.getP46()); +// fields.put("p_47",item.getP47()); +// fields.put("p_48",item.getP48()); +// fields.put("p_49",item.getP49()); +// fields.put("p_50",item.getP50()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_HARM_POWER_P, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// +// /** +// * 功能描述:获取data_harmpower_q数据 +// * @author xy +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataHarmPowerQ(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// StringBuilder stringBuilder1 = new StringBuilder(); +// StringBuilder stringBuilder2 = new StringBuilder(); +// stringBuilder1.append("min(q) AS q,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder1.append("min(q_").append(i).append(") AS q_").append(i); +// } else { +// stringBuilder1.append("min(q_").append(i).append(") AS q_").append(i).append(","); +// } +// } +// stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_Q+" where "+stringBuilder+stringBuilder2; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataHarmPowerQ.class); +// //最大值 +// StringBuilder stringBuilder3 = new StringBuilder(); +// StringBuilder stringBuilder4 = new StringBuilder(); +// stringBuilder3.append("max(q) AS q,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder3.append("max(q_").append(i).append(") AS q_").append(i); +// } else { +// stringBuilder3.append("max(q_").append(i).append(") AS q_").append(i).append(","); +// } +// } +// stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_Q+" where "+stringBuilder+stringBuilder4; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataHarmPowerQ.class); +// //平均值 +// StringBuilder stringBuilder5 = new StringBuilder(); +// StringBuilder stringBuilder6 = new StringBuilder(); +// stringBuilder5.append("mean(q) AS q,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder5.append("mean(q_").append(i).append(") AS q_").append(i); +// } else { +// stringBuilder5.append("mean(q_").append(i).append(") AS q_").append(i).append(","); +// } +// } +// stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_Q+" where "+stringBuilder+stringBuilder6; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataHarmPowerQ.class); +// //CP95值 +// StringBuilder stringBuilder7 = new StringBuilder(); +// StringBuilder stringBuilder8 = new StringBuilder(); +// stringBuilder7.append("percentile(q,95) AS q,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder7.append("percentile(q_").append(i).append(",95) AS q_").append(i); +// } else { +// stringBuilder7.append("percentile(q_").append(i).append(",95) AS q_").append(i).append(","); +// } +// } +// stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_Q+" where "+stringBuilder+stringBuilder8; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataHarmPowerQ.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入day_harmpower_q表数据 +// * @author xy +// * @param list data_harmpower_q表数据 +// * @param time 时间戳 +// * @date 2022/5/12 8:55 +// */ +// private void insertDayHarmPowerQ(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("q",item.getQ()); +// fields.put("q_1",item.getQ1()); +// fields.put("q_2",item.getQ2()); +// fields.put("q_3",item.getQ3()); +// fields.put("q_4",item.getQ4()); +// fields.put("q_5",item.getQ5()); +// fields.put("q_6",item.getQ6()); +// fields.put("q_7",item.getQ7()); +// fields.put("q_8",item.getQ8()); +// fields.put("q_9",item.getQ9()); +// fields.put("q_10",item.getQ10()); +// fields.put("q_11",item.getQ11()); +// fields.put("q_12",item.getQ12()); +// fields.put("q_13",item.getQ13()); +// fields.put("q_14",item.getQ14()); +// fields.put("q_15",item.getQ15()); +// fields.put("q_16",item.getQ16()); +// fields.put("q_17",item.getQ17()); +// fields.put("q_18",item.getQ18()); +// fields.put("q_19",item.getQ19()); +// fields.put("q_20",item.getQ20()); +// fields.put("q_21",item.getQ21()); +// fields.put("q_22",item.getQ22()); +// fields.put("q_23",item.getQ23()); +// fields.put("q_24",item.getQ24()); +// fields.put("q_25",item.getQ25()); +// fields.put("q_26",item.getQ26()); +// fields.put("q_27",item.getQ27()); +// fields.put("q_28",item.getQ28()); +// fields.put("q_29",item.getQ29()); +// fields.put("q_30",item.getQ30()); +// fields.put("q_31",item.getQ31()); +// fields.put("q_32",item.getQ32()); +// fields.put("q_33",item.getQ33()); +// fields.put("q_34",item.getQ34()); +// fields.put("q_35",item.getQ35()); +// fields.put("q_36",item.getQ36()); +// fields.put("q_37",item.getQ37()); +// fields.put("q_38",item.getQ38()); +// fields.put("q_39",item.getQ39()); +// fields.put("q_40",item.getQ40()); +// fields.put("q_41",item.getQ41()); +// fields.put("q_42",item.getQ42()); +// fields.put("q_43",item.getQ43()); +// fields.put("q_44",item.getQ44()); +// fields.put("q_45",item.getQ45()); +// fields.put("q_46",item.getQ46()); +// fields.put("q_47",item.getQ47()); +// fields.put("q_48",item.getQ48()); +// fields.put("q_49",item.getQ49()); +// fields.put("q_50",item.getQ50()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_HARM_POWER_Q, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// /** +// * 功能描述:获取data_harmpower_s数据 +// * @author xy +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataHarmPowerS(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// StringBuilder stringBuilder1 = new StringBuilder(); +// StringBuilder stringBuilder2 = new StringBuilder(); +// stringBuilder1.append("min(s) AS s,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder1.append("min(s_").append(i).append(") AS s_").append(i); +// } else { +// stringBuilder1.append("min(s_").append(i).append(") AS s_").append(i).append(","); +// } +// } +// stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_S+" where "+stringBuilder+stringBuilder2; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataHarmPowerS.class); +// //最大值 +// StringBuilder stringBuilder3 = new StringBuilder(); +// StringBuilder stringBuilder4 = new StringBuilder(); +// stringBuilder3.append("max(s) AS s,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder3.append("max(s_").append(i).append(") AS s_").append(i); +// } else { +// stringBuilder3.append("max(s_").append(i).append(") AS s_").append(i).append(","); +// } +// } +// stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_S+" where "+stringBuilder+stringBuilder4; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataHarmPowerS.class); +// //平均值 +// StringBuilder stringBuilder5 = new StringBuilder(); +// StringBuilder stringBuilder6 = new StringBuilder(); +// stringBuilder5.append("mean(s) AS s,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder5.append("mean(s_").append(i).append(") AS s_").append(i); +// } else { +// stringBuilder5.append("mean(s_").append(i).append(") AS s_").append(i).append(","); +// } +// } +// stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_S+" where "+stringBuilder+stringBuilder6; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataHarmPowerS.class); +// //CP95值 +// StringBuilder stringBuilder7 = new StringBuilder(); +// StringBuilder stringBuilder8 = new StringBuilder(); +// stringBuilder7.append("percentile(s,95) AS s,"); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder7.append("percentile(s_").append(i).append(",95) AS s_").append(i); +// } else { +// stringBuilder7.append("percentile(s_").append(i).append(",95) AS s_").append(i).append(","); +// } +// } +// stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_HARM_POWER_S+" where "+stringBuilder+stringBuilder8; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataHarmPowerS.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入day_harmpower_q表数据 +// * @author xy +// * @param list data_harmpower_q表数据 +// * @param time 时间戳 +// * @date 2022/5/12 8:55 +// */ +// private void insertDayHarmPowerS(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("s",item.getS()); +// fields.put("s_1",item.getS1()); +// fields.put("s_2",item.getS2()); +// fields.put("s_3",item.getS3()); +// fields.put("s_4",item.getS4()); +// fields.put("s_5",item.getS5()); +// fields.put("s_6",item.getS6()); +// fields.put("s_7",item.getS7()); +// fields.put("s_8",item.getS8()); +// fields.put("s_9",item.getS9()); +// fields.put("s_10",item.getS10()); +// fields.put("s_11",item.getS11()); +// fields.put("s_12",item.getS12()); +// fields.put("s_13",item.getS13()); +// fields.put("s_14",item.getS14()); +// fields.put("s_15",item.getS15()); +// fields.put("s_16",item.getS16()); +// fields.put("s_17",item.getS17()); +// fields.put("s_18",item.getS18()); +// fields.put("s_19",item.getS19()); +// fields.put("s_20",item.getS20()); +// fields.put("s_21",item.getS21()); +// fields.put("s_22",item.getS22()); +// fields.put("s_23",item.getS23()); +// fields.put("s_24",item.getS24()); +// fields.put("s_25",item.getS25()); +// fields.put("s_26",item.getS26()); +// fields.put("s_27",item.getS27()); +// fields.put("s_28",item.getS28()); +// fields.put("s_29",item.getS29()); +// fields.put("s_30",item.getS30()); +// fields.put("s_31",item.getS31()); +// fields.put("s_32",item.getS32()); +// fields.put("s_33",item.getS33()); +// fields.put("s_34",item.getS34()); +// fields.put("s_35",item.getS35()); +// fields.put("s_36",item.getS36()); +// fields.put("s_37",item.getS37()); +// fields.put("s_38",item.getS38()); +// fields.put("s_39",item.getS39()); +// fields.put("s_40",item.getS40()); +// fields.put("s_41",item.getS41()); +// fields.put("s_42",item.getS42()); +// fields.put("s_43",item.getS43()); +// fields.put("s_44",item.getS44()); +// fields.put("s_45",item.getS45()); +// fields.put("s_46",item.getS46()); +// fields.put("s_47",item.getS47()); +// fields.put("s_48",item.getS48()); +// fields.put("s_49",item.getS49()); +// fields.put("s_50",item.getS50()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_HARM_POWER_S, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// /** +// * 功能描述:获取data_harmrate_i数据 +// * @author xy +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataHarmRateI(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// StringBuilder stringBuilder1 = new StringBuilder(); +// StringBuilder stringBuilder2 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i); +// } else { +// stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i).append(","); +// } +// } +// stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_I+" where "+stringBuilder+stringBuilder2; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataHarmRateI.class); +// //最大值 +// StringBuilder stringBuilder3 = new StringBuilder(); +// StringBuilder stringBuilder4 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i); +// } else { +// stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i).append(","); +// } +// } +// stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_I+" where "+stringBuilder+stringBuilder4; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataHarmRateI.class); +// //平均值 +// StringBuilder stringBuilder5 = new StringBuilder(); +// StringBuilder stringBuilder6 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i); +// } else { +// stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i).append(","); +// } +// } +// stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_I+" where "+stringBuilder+stringBuilder6; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataHarmRateI.class); +// //CP95值 +// StringBuilder stringBuilder7 = new StringBuilder(); +// StringBuilder stringBuilder8 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i); +// } else { +// stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i).append(","); +// } +// } +// stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_I+" where "+stringBuilder+stringBuilder8; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataHarmRateI.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入day_harmrate_i表数据 +// * @author xy +// * @param list data_harmrate_i表数据 +// * @param time 时间戳 +// * @date 2022/5/12 8:55 +// */ +// private void insertDayHarmRateI(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("i_1",item.getI1()); +// fields.put("i_2",item.getI2()); +// fields.put("i_3",item.getI3()); +// fields.put("i_4",item.getI4()); +// fields.put("i_5",item.getI5()); +// fields.put("i_6",item.getI6()); +// fields.put("i_7",item.getI7()); +// fields.put("i_8",item.getI8()); +// fields.put("i_9",item.getI9()); +// fields.put("i_10",item.getI10()); +// fields.put("i_11",item.getI11()); +// fields.put("i_12",item.getI12()); +// fields.put("i_13",item.getI13()); +// fields.put("i_14",item.getI14()); +// fields.put("i_15",item.getI15()); +// fields.put("i_16",item.getI16()); +// fields.put("i_17",item.getI17()); +// fields.put("i_18",item.getI18()); +// fields.put("i_19",item.getI19()); +// fields.put("i_20",item.getI20()); +// fields.put("i_21",item.getI21()); +// fields.put("i_22",item.getI22()); +// fields.put("i_23",item.getI23()); +// fields.put("i_24",item.getI24()); +// fields.put("i_25",item.getI25()); +// fields.put("i_26",item.getI26()); +// fields.put("i_27",item.getI27()); +// fields.put("i_28",item.getI28()); +// fields.put("i_29",item.getI29()); +// fields.put("i_30",item.getI30()); +// fields.put("i_31",item.getI31()); +// fields.put("i_32",item.getI32()); +// fields.put("i_33",item.getI33()); +// fields.put("i_34",item.getI34()); +// fields.put("i_35",item.getI35()); +// fields.put("i_36",item.getI36()); +// fields.put("i_37",item.getI37()); +// fields.put("i_38",item.getI38()); +// fields.put("i_39",item.getI39()); +// fields.put("i_40",item.getI40()); +// fields.put("i_41",item.getI41()); +// fields.put("i_42",item.getI42()); +// fields.put("i_43",item.getI43()); +// fields.put("i_44",item.getI44()); +// fields.put("i_45",item.getI45()); +// fields.put("i_46",item.getI46()); +// fields.put("i_47",item.getI47()); +// fields.put("i_48",item.getI48()); +// fields.put("i_49",item.getI49()); +// fields.put("i_50",item.getI50()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_HARM_RATE_I, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// /** +// * 功能描述:获取data_harmrate_v数据 +// * @author xy +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataHarmRateV(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// StringBuilder stringBuilder1 = new StringBuilder(); +// StringBuilder stringBuilder2 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i); +// } else { +// stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i).append(","); +// } +// } +// stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_V+" where "+stringBuilder+stringBuilder2; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataHarmRateV.class); +// //最大值 +// StringBuilder stringBuilder3 = new StringBuilder(); +// StringBuilder stringBuilder4 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i); +// } else { +// stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i).append(","); +// } +// } +// stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_V+" where "+stringBuilder+stringBuilder4; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataHarmRateV.class); +// //平均值 +// StringBuilder stringBuilder5 = new StringBuilder(); +// StringBuilder stringBuilder6 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i); +// } else { +// stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i).append(","); +// } +// } +// stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_V+" where "+stringBuilder+stringBuilder6; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataHarmRateV.class); +// //CP95值 +// StringBuilder stringBuilder7 = new StringBuilder(); +// StringBuilder stringBuilder8 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i); +// } else { +// stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i).append(","); +// } +// } +// stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_HARM_RATE_V+" where "+stringBuilder+stringBuilder8; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataHarmRateV.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入day_harmrate_v表数据 +// * @author xy +// * @param list data_harmrate_v表数据 +// * @param time 时间戳 +// * @date 2022/5/12 8:55 +// */ +// private void insertDayHarmRateV(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("v_1",item.getV1()); +// fields.put("v_2",item.getV2()); +// fields.put("v_3",item.getV3()); +// fields.put("v_4",item.getV4()); +// fields.put("v_5",item.getV5()); +// fields.put("v_6",item.getV6()); +// fields.put("v_7",item.getV7()); +// fields.put("v_8",item.getV8()); +// fields.put("v_9",item.getV9()); +// fields.put("v_10",item.getV10()); +// fields.put("v_11",item.getV11()); +// fields.put("v_12",item.getV12()); +// fields.put("v_13",item.getV13()); +// fields.put("v_14",item.getV14()); +// fields.put("v_15",item.getV15()); +// fields.put("v_16",item.getV16()); +// fields.put("v_17",item.getV17()); +// fields.put("v_18",item.getV18()); +// fields.put("v_19",item.getV19()); +// fields.put("v_20",item.getV20()); +// fields.put("v_21",item.getV21()); +// fields.put("v_22",item.getV22()); +// fields.put("v_23",item.getV23()); +// fields.put("v_24",item.getV24()); +// fields.put("v_25",item.getV25()); +// fields.put("v_26",item.getV26()); +// fields.put("v_27",item.getV27()); +// fields.put("v_28",item.getV28()); +// fields.put("v_29",item.getV29()); +// fields.put("v_30",item.getV30()); +// fields.put("v_31",item.getV31()); +// fields.put("v_32",item.getV32()); +// fields.put("v_33",item.getV33()); +// fields.put("v_34",item.getV34()); +// fields.put("v_35",item.getV35()); +// fields.put("v_36",item.getV36()); +// fields.put("v_37",item.getV37()); +// fields.put("v_38",item.getV38()); +// fields.put("v_39",item.getV39()); +// fields.put("v_40",item.getV40()); +// fields.put("v_41",item.getV41()); +// fields.put("v_42",item.getV42()); +// fields.put("v_43",item.getV43()); +// fields.put("v_44",item.getV44()); +// fields.put("v_45",item.getV45()); +// fields.put("v_46",item.getV46()); +// fields.put("v_47",item.getV47()); +// fields.put("v_48",item.getV48()); +// fields.put("v_49",item.getV49()); +// fields.put("v_50",item.getV50()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_HARM_RATE_V, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// /** +// * 功能描述:获取data_inharm_i数据 +// * @author xy +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataInHarmI(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// StringBuilder stringBuilder1 = new StringBuilder(); +// StringBuilder stringBuilder2 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i); +// } else { +// stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i).append(","); +// } +// } +// stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder2; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataInHarmI.class); +// //最大值 +// StringBuilder stringBuilder3 = new StringBuilder(); +// StringBuilder stringBuilder4 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i); +// } else { +// stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i).append(","); +// } +// } +// stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder4; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataInHarmI.class); +// //平均值 +// StringBuilder stringBuilder5 = new StringBuilder(); +// StringBuilder stringBuilder6 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i); +// } else { +// stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i).append(","); +// } +// } +// stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder6; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataInHarmI.class); +// //CP95值 +// StringBuilder stringBuilder7 = new StringBuilder(); +// StringBuilder stringBuilder8 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i); +// } else { +// stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i).append(","); +// } +// } +// stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder8; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataInHarmI.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入day_inharm_i表数据 +// * @author xy +// * @param list data_inharm_i表数据 +// * @param time 时间戳 +// * @date 2022/5/12 8:55 +// */ +// private void insertDayInHarmI(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("i_1",item.getI1()); +// fields.put("i_2",item.getI2()); +// fields.put("i_3",item.getI3()); +// fields.put("i_4",item.getI4()); +// fields.put("i_5",item.getI5()); +// fields.put("i_6",item.getI6()); +// fields.put("i_7",item.getI7()); +// fields.put("i_8",item.getI8()); +// fields.put("i_9",item.getI9()); +// fields.put("i_10",item.getI10()); +// fields.put("i_11",item.getI11()); +// fields.put("i_12",item.getI12()); +// fields.put("i_13",item.getI13()); +// fields.put("i_14",item.getI14()); +// fields.put("i_15",item.getI15()); +// fields.put("i_16",item.getI16()); +// fields.put("i_17",item.getI17()); +// fields.put("i_18",item.getI18()); +// fields.put("i_19",item.getI19()); +// fields.put("i_20",item.getI20()); +// fields.put("i_21",item.getI21()); +// fields.put("i_22",item.getI22()); +// fields.put("i_23",item.getI23()); +// fields.put("i_24",item.getI24()); +// fields.put("i_25",item.getI25()); +// fields.put("i_26",item.getI26()); +// fields.put("i_27",item.getI27()); +// fields.put("i_28",item.getI28()); +// fields.put("i_29",item.getI29()); +// fields.put("i_30",item.getI30()); +// fields.put("i_31",item.getI31()); +// fields.put("i_32",item.getI32()); +// fields.put("i_33",item.getI33()); +// fields.put("i_34",item.getI34()); +// fields.put("i_35",item.getI35()); +// fields.put("i_36",item.getI36()); +// fields.put("i_37",item.getI37()); +// fields.put("i_38",item.getI38()); +// fields.put("i_39",item.getI39()); +// fields.put("i_40",item.getI40()); +// fields.put("i_41",item.getI41()); +// fields.put("i_42",item.getI42()); +// fields.put("i_43",item.getI43()); +// fields.put("i_44",item.getI44()); +// fields.put("i_45",item.getI45()); +// fields.put("i_46",item.getI46()); +// fields.put("i_47",item.getI47()); +// fields.put("i_48",item.getI48()); +// fields.put("i_49",item.getI49()); +// fields.put("i_50",item.getI50()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_IN_HARM_I, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// /** +// * 功能描述:获取data_inharm_v数据 +// * @author xy +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataInHarmV(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// StringBuilder stringBuilder1 = new StringBuilder(); +// StringBuilder stringBuilder2 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i); +// } else { +// stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i).append(","); +// } +// } +// stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder2; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataInHarmV.class); +// //最大值 +// StringBuilder stringBuilder3 = new StringBuilder(); +// StringBuilder stringBuilder4 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i); +// } else { +// stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i).append(","); +// } +// } +// stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder4; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataInHarmV.class); +// //平均值 +// StringBuilder stringBuilder5 = new StringBuilder(); +// StringBuilder stringBuilder6 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i); +// } else { +// stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i).append(","); +// } +// } +// stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder6; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataInHarmV.class); +// //CP95值 +// StringBuilder stringBuilder7 = new StringBuilder(); +// StringBuilder stringBuilder8 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i); +// } else { +// stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i).append(","); +// } +// } +// stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder8; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataInHarmV.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入day_inharm_v表数据 +// * @author xy +// * @param list data_inharm_v表数据 +// * @param time 时间戳 +// * @date 2022/5/12 8:55 +// */ +// private void insertDayInHarmV(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("v_1",item.getV1()); +// fields.put("v_2",item.getV2()); +// fields.put("v_3",item.getV3()); +// fields.put("v_4",item.getV4()); +// fields.put("v_5",item.getV5()); +// fields.put("v_6",item.getV6()); +// fields.put("v_7",item.getV7()); +// fields.put("v_8",item.getV8()); +// fields.put("v_9",item.getV9()); +// fields.put("v_10",item.getV10()); +// fields.put("v_11",item.getV11()); +// fields.put("v_12",item.getV12()); +// fields.put("v_13",item.getV13()); +// fields.put("v_14",item.getV14()); +// fields.put("v_15",item.getV15()); +// fields.put("v_16",item.getV16()); +// fields.put("v_17",item.getV17()); +// fields.put("v_18",item.getV18()); +// fields.put("v_19",item.getV19()); +// fields.put("v_20",item.getV20()); +// fields.put("v_21",item.getV21()); +// fields.put("v_22",item.getV22()); +// fields.put("v_23",item.getV23()); +// fields.put("v_24",item.getV24()); +// fields.put("v_25",item.getV25()); +// fields.put("v_26",item.getV26()); +// fields.put("v_27",item.getV27()); +// fields.put("v_28",item.getV28()); +// fields.put("v_29",item.getV29()); +// fields.put("v_30",item.getV30()); +// fields.put("v_31",item.getV31()); +// fields.put("v_32",item.getV32()); +// fields.put("v_33",item.getV33()); +// fields.put("v_34",item.getV34()); +// fields.put("v_35",item.getV35()); +// fields.put("v_36",item.getV36()); +// fields.put("v_37",item.getV37()); +// fields.put("v_38",item.getV38()); +// fields.put("v_39",item.getV39()); +// fields.put("v_40",item.getV40()); +// fields.put("v_41",item.getV41()); +// fields.put("v_42",item.getV42()); +// fields.put("v_43",item.getV43()); +// fields.put("v_44",item.getV44()); +// fields.put("v_45",item.getV45()); +// fields.put("v_46",item.getV46()); +// fields.put("v_47",item.getV47()); +// fields.put("v_48",item.getV48()); +// fields.put("v_49",item.getV49()); +// fields.put("v_50",item.getV50()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_IN_HARM_V, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// +// /** +// * 功能描述:获取data_inharmrate_i数据 +// * @author xy +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataInHarmRateI(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// StringBuilder stringBuilder1 = new StringBuilder(); +// StringBuilder stringBuilder2 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i); +// } else { +// stringBuilder1.append("min(i_").append(i).append(") AS i_").append(i).append(","); +// } +// } +// stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder2; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataInHarmRateI.class); +// //最大值 +// StringBuilder stringBuilder3 = new StringBuilder(); +// StringBuilder stringBuilder4 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i); +// } else { +// stringBuilder3.append("max(i_").append(i).append(") AS i_").append(i).append(","); +// } +// } +// stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder4; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataInHarmRateI.class); +// //平均值 +// StringBuilder stringBuilder5 = new StringBuilder(); +// StringBuilder stringBuilder6 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i); +// } else { +// stringBuilder5.append("mean(i_").append(i).append(") AS i_").append(i).append(","); +// } +// } +// stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder6; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataInHarmRateI.class); +// //CP95值 +// StringBuilder stringBuilder7 = new StringBuilder(); +// StringBuilder stringBuilder8 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i); +// } else { +// stringBuilder7.append("percentile(i_").append(i).append(",95) AS i_").append(i).append(","); +// } +// } +// stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_IN_HARM_I+" where "+stringBuilder+stringBuilder8; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataInHarmRateI.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入day_inharmrate_i表数据 +// * @author xy +// * @param list data_inharmrate_i表数据 +// * @param time 时间戳 +// * @date 2022/5/12 8:55 +// */ +// private void insertDayInHarmRateI(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("i_1",item.getI1()); +// fields.put("i_2",item.getI2()); +// fields.put("i_3",item.getI3()); +// fields.put("i_4",item.getI4()); +// fields.put("i_5",item.getI5()); +// fields.put("i_6",item.getI6()); +// fields.put("i_7",item.getI7()); +// fields.put("i_8",item.getI8()); +// fields.put("i_9",item.getI9()); +// fields.put("i_10",item.getI10()); +// fields.put("i_11",item.getI11()); +// fields.put("i_12",item.getI12()); +// fields.put("i_13",item.getI13()); +// fields.put("i_14",item.getI14()); +// fields.put("i_15",item.getI15()); +// fields.put("i_16",item.getI16()); +// fields.put("i_17",item.getI17()); +// fields.put("i_18",item.getI18()); +// fields.put("i_19",item.getI19()); +// fields.put("i_20",item.getI20()); +// fields.put("i_21",item.getI21()); +// fields.put("i_22",item.getI22()); +// fields.put("i_23",item.getI23()); +// fields.put("i_24",item.getI24()); +// fields.put("i_25",item.getI25()); +// fields.put("i_26",item.getI26()); +// fields.put("i_27",item.getI27()); +// fields.put("i_28",item.getI28()); +// fields.put("i_29",item.getI29()); +// fields.put("i_30",item.getI30()); +// fields.put("i_31",item.getI31()); +// fields.put("i_32",item.getI32()); +// fields.put("i_33",item.getI33()); +// fields.put("i_34",item.getI34()); +// fields.put("i_35",item.getI35()); +// fields.put("i_36",item.getI36()); +// fields.put("i_37",item.getI37()); +// fields.put("i_38",item.getI38()); +// fields.put("i_39",item.getI39()); +// fields.put("i_40",item.getI40()); +// fields.put("i_41",item.getI41()); +// fields.put("i_42",item.getI42()); +// fields.put("i_43",item.getI43()); +// fields.put("i_44",item.getI44()); +// fields.put("i_45",item.getI45()); +// fields.put("i_46",item.getI46()); +// fields.put("i_47",item.getI47()); +// fields.put("i_48",item.getI48()); +// fields.put("i_49",item.getI49()); +// fields.put("i_50",item.getI50()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_IN_HARM_I, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// /** +// * 功能描述:获取data_inharmrate_v数据 +// * @author xy +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataInHarmRateV(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// StringBuilder stringBuilder1 = new StringBuilder(); +// StringBuilder stringBuilder2 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i); +// } else { +// stringBuilder1.append("min(v_").append(i).append(") AS v_").append(i).append(","); +// } +// } +// stringBuilder2.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MIN' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder2; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataInHarmRateV.class); +// //最大值 +// StringBuilder stringBuilder3 = new StringBuilder(); +// StringBuilder stringBuilder4 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i); +// } else { +// stringBuilder3.append("max(v_").append(i).append(") AS v_").append(i).append(","); +// } +// } +// stringBuilder4.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'MAX' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql2 = "select "+stringBuilder3+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder4; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataInHarmRateV.class); +// //平均值 +// StringBuilder stringBuilder5 = new StringBuilder(); +// StringBuilder stringBuilder6 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i); +// } else { +// stringBuilder5.append("mean(v_").append(i).append(") AS v_").append(i).append(","); +// } +// } +// stringBuilder6.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql3 = "select "+stringBuilder5+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder6; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataInHarmRateV.class); +// //CP95值 +// StringBuilder stringBuilder7 = new StringBuilder(); +// StringBuilder stringBuilder8 = new StringBuilder(); +// for (int i = 1; i <=50 ; i++) { +// if (i==50){ +// stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i); +// } else { +// stringBuilder7.append("percentile(v_").append(i).append(",95) AS v_").append(i).append(","); +// } +// } +// stringBuilder8.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' and value_type = 'AVG' group by line_id,phasic_type,value_type,quality_flag ").append(InfluxDBPublicParam.TIME_ZONE); +// String sql4 = "select "+stringBuilder7+" from "+ InfluxDBPublicParam.DATA_IN_HARM_V+" where "+stringBuilder+stringBuilder8; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataInHarmRateV.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入day_inharmrate_v表数据 +// * @author xy +// * @param list data_inharmrate_v表数据 +// * @param time 时间戳 +// * @date 2022/5/12 8:55 +// */ +// private void insertDayInHarmRateV(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("v_1",item.getV1()); +// fields.put("v_2",item.getV2()); +// fields.put("v_3",item.getV3()); +// fields.put("v_4",item.getV4()); +// fields.put("v_5",item.getV5()); +// fields.put("v_6",item.getV6()); +// fields.put("v_7",item.getV7()); +// fields.put("v_8",item.getV8()); +// fields.put("v_9",item.getV9()); +// fields.put("v_10",item.getV10()); +// fields.put("v_11",item.getV11()); +// fields.put("v_12",item.getV12()); +// fields.put("v_13",item.getV13()); +// fields.put("v_14",item.getV14()); +// fields.put("v_15",item.getV15()); +// fields.put("v_16",item.getV16()); +// fields.put("v_17",item.getV17()); +// fields.put("v_18",item.getV18()); +// fields.put("v_19",item.getV19()); +// fields.put("v_20",item.getV20()); +// fields.put("v_21",item.getV21()); +// fields.put("v_22",item.getV22()); +// fields.put("v_23",item.getV23()); +// fields.put("v_24",item.getV24()); +// fields.put("v_25",item.getV25()); +// fields.put("v_26",item.getV26()); +// fields.put("v_27",item.getV27()); +// fields.put("v_28",item.getV28()); +// fields.put("v_29",item.getV29()); +// fields.put("v_30",item.getV30()); +// fields.put("v_31",item.getV31()); +// fields.put("v_32",item.getV32()); +// fields.put("v_33",item.getV33()); +// fields.put("v_34",item.getV34()); +// fields.put("v_35",item.getV35()); +// fields.put("v_36",item.getV36()); +// fields.put("v_37",item.getV37()); +// fields.put("v_38",item.getV38()); +// fields.put("v_39",item.getV39()); +// fields.put("v_40",item.getV40()); +// fields.put("v_41",item.getV41()); +// fields.put("v_42",item.getV42()); +// fields.put("v_43",item.getV43()); +// fields.put("v_44",item.getV44()); +// fields.put("v_45",item.getV45()); +// fields.put("v_46",item.getV46()); +// fields.put("v_47",item.getV47()); +// fields.put("v_48",item.getV48()); +// fields.put("v_49",item.getV49()); +// fields.put("v_50",item.getV50()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DATA_IN_HARM_V, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// /** +// * 功能描述:获取data_plt数据 +// * @author xy +// * @param startTime 起始时间 +// * @param endTime 结束时间 +// * @date 2022/5/10 14:56 +// * @return List +// */ +// public List getDataPlt(List lineList, String startTime, String endTime){ +// List result = new ArrayList<>(); +// StringBuilder stringBuilder = lineStringBuilder(lineList); +// //最小值 +// String sql1 = "select min(plt) AS plt from "+ InfluxDBPublicParam.DATA_PLT+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataPlt.class); +// list1.forEach(item->{ +// item.setValueType("MIN"); +// }); +// //最大值 +// String sql2 = "select max(plt) AS plt from "+ InfluxDBPublicParam.DATA_PLT+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataPlt.class); +// list2.forEach(item->{ +// item.setValueType("MAX"); +// }); +// //平均值 +// String sql3 = "select mean(plt) AS plt from "+ InfluxDBPublicParam.DATA_PLT+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3= new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataPlt.class); +// list3.forEach(item->{ +// item.setValueType("AVG"); +// }); +// //CP95值 +// String sql4 = "select percentile(plt,95) AS plt from "+ InfluxDBPublicParam.DATA_PLT+" where "+stringBuilder+" time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag "+ InfluxDBPublicParam.TIME_ZONE; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4= new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataPlt.class); +// list4.forEach(item->{ +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); +// return result; +// } +// +// /** +// * 功能描述:插入day_plt表数据 +// * @author xy +// * @param list data_plt集合 +// * @param time 时间戳 +// * @date 2022/5/12 8:55 +// */ +// private void insertDayPlt(List list, long time){ +// List records = new ArrayList<>(); +// list.forEach(item->{ +// Map tags = new HashMap<>(); +// Map fields = new HashMap<>(); +// tags.put("line_id",item.getLineId()); +// tags.put("phasic_type",item.getPhaseType()); +// tags.put("quality_flag",item.getQualityFlag()); +// tags.put("value_type",item.getValueType()); +// fields.put("plt",item.getPlt()); +// Point point = influxDbUtils.pointBuilder(InfluxDBPublicParam.DAY_PLT, time, TimeUnit.MILLISECONDS, tags, fields); +// BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(InfluxDBPublicParam.LINE_ID, item.getLineId()).tag(InfluxDBPublicParam.PHASIC_TYPE,item.getPhaseType()).tag(InfluxDBPublicParam.QUALITY_FLAG,item.getQualityFlag()).tag(InfluxDBPublicParam.VALUE_TYPE,item.getValueType()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); +// batchPoints.point(point); +// records.add(batchPoints.lineProtocol()); +// }); +// influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); +// } +// +// public StringBuilder lineStringBuilder(List list) { +// StringBuilder stringBuilder = new StringBuilder(); +// if (!CollectionUtils.isEmpty(list)){ +// stringBuilder.append("("); +// for (int i = 0; i < list.size(); i++) { +// if (list.size() - i != 1) { +// stringBuilder.append("line_id ='").append(list.get(i)).append("' or "); +// } else { +// stringBuilder.append("line_id ='").append(list.get(i)).append("') and "); +// } +// } +// } +// return stringBuilder; +// } +//} diff --git a/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/DeviceAbnormalStatisticsJob.java b/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/DeviceAbnormalStatisticsJob.java index 6a2960227..a8e6cfc87 100644 --- a/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/DeviceAbnormalStatisticsJob.java +++ b/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/DeviceAbnormalStatisticsJob.java @@ -12,6 +12,10 @@ import java.time.format.DateTimeFormatter; @Slf4j @Component @AllArgsConstructor +/** + * 终端装置异常告警每日统计 + * @date 2023/4/18 + */ public class DeviceAbnormalStatisticsJob { private final DeviceAbnormalFeignClient deviceAbnormalFeignClient; diff --git a/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/DistortionRateJob.java b/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/DistortionRateJob.java deleted file mode 100644 index be783996b..000000000 --- a/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/DistortionRateJob.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.njcn.executor.handler; - -import com.njcn.prepare.harmonic.api.line.DistortionRateFeignClient; -import com.njcn.prepare.harmonic.pojo.param.LineParam; -import com.xxl.job.core.handler.annotation.XxlJob; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; -import java.util.Date; - -@Slf4j -@Component -@AllArgsConstructor -public class DistortionRateJob { - private final DistortionRateFeignClient distortionRateFeignClient; - - @XxlJob("DistortionRateJob") - public void DistortionRateJob () { - log.info("===================DistortionRateJob Start==================="); - LineParam lineParam = new LineParam(); - lineParam.setDataDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); - log.info(lineParam.toString()); - distortionRateFeignClient.distortionRate(lineParam); - log.info("===================DistortionRateJob End====================="); - } -} diff --git a/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/PollutionJob.java b/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/PollutionJob.java deleted file mode 100644 index a15902dcc..000000000 --- a/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/PollutionJob.java +++ /dev/null @@ -1,592 +0,0 @@ -/* -package com.njcn.executor.handler; - -import com.njcn.device.pq.api.LineFeignClient; -import com.njcn.device.pq.pojo.po.Overlimit; -import com.njcn.executor.pojo.dto.PollutionDTO; -import com.njcn.executor.pojo.vo.*; -import com.njcn.harmonic.pojo.dto.PublicDTO; -import com.njcn.influxdb.config.InfluxDbConfig; -import com.njcn.influxdb.utils.InfluxDbUtils; -import com.xxl.job.core.handler.annotation.XxlJob; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.influxdb.InfluxDB; -import org.influxdb.dto.BatchPoints; -import org.influxdb.dto.Point; -import org.influxdb.dto.QueryResult; -import org.influxdb.impl.InfluxDBResultMapper; -import org.influxdb.querybuilder.SelectQueryImpl; -import org.influxdb.querybuilder.WhereNested; -import org.influxdb.querybuilder.WhereQueryImpl; -import org.influxdb.querybuilder.clauses.Clause; -import org.springframework.stereotype.Component; - -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.*; -import java.util.concurrent.TimeUnit; -import java.util.function.BinaryOperator; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -*/ -/** - * @author xuy - * @version 1.0.0 - * @date 2022年04月07日 09:54 - *//* - -@Slf4j -@Component -@AllArgsConstructor -public class PollutionJob { - - private final InfluxDbConfig influxDbConfig; - - private final InfluxDbUtils influxDbUtils; - - private final LineFeignClient lineFeignClient; - - */ -/** - * 监测点污染指标 - *//* - - @XxlJob("pollutionJobHandler") - public void pollutionJobHandler() { - List list = new ArrayList<>(); - //谐波电压 - List uaberranceList = new ArrayList<>(); - //谐波电流 - List iHarmList = new ArrayList<>(); - //频率偏差 - List freqList = new ArrayList<>(); - //电压偏差 - List devList = new ArrayList<>(); - //三相电压不平衡度 - List uBalanceList = new ArrayList<>(); - //负序电流 - List iNegList = new ArrayList<>(); - //间谐波电压含有率 - List iNuharmList = new ArrayList<>(); - //长时电压闪变 - List flickerList = new ArrayList<>(); - List lineList = getAllLinesLimitData().stream().map(Overlimit::getId).collect(Collectors.toList()); - List pollutionList = new ArrayList<>(); - lineList.forEach(item->{ - PollutionDTO pollutionDTO = new PollutionDTO(); - pollutionDTO.setId(item); - pollutionList.add(pollutionDTO); - }); - //谐波电压污染数值 - Map> map1 = getDistortionData(); - for (String key : map1.keySet()) { - list.add(map1.get(key).get()); - } - Map> map2 = getContentData(); - for (String key : map2.keySet()) { - list.add(map2.get(key).get()); - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - Map> result = list.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - for (String key : result.keySet()) { - uaberranceList.add(result.get(key).get()); - } - //谐波电流污染数值 - Map> map3 = getIharm(); - for (String key : map3.keySet()) { - iHarmList.add(map3.get(key).get()); - } - //频率偏差污染数值 - Map> map4 = getFreq(); - for (String key : map4.keySet()) { - freqList.add(map4.get(key).get()); - } - //电压偏差 - Map> map5 = getDev(); - for (String key : map5.keySet()) { - devList.add(map5.get(key).get()); - } - //三相电压不平衡度 - Map> map6 = getUbalance(); - for (String key : map6.keySet()) { - uBalanceList.add(map6.get(key).get()); - } - //负序电流 - Map> map7 = getIneg(); - for (String key : map7.keySet()) { - iNegList.add(map7.get(key).get()); - } - //间谐波电压含有率 - Map> map8 = getInuharm(); - for (String key : map8.keySet()) { - iNuharmList.add(map8.get(key).get()); - } - //长时电压闪变 - Map> map9 = getFlicker(); - for (String key : map9.keySet()) { - flickerList.add(map9.get(key).get()); - } - //组装数据 - for (PollutionDTO item1 : pollutionList) { - for (PublicDTO item2 : uaberranceList) { - if (Objects.equals(item1.getId(),item2.getId())){ - item1.setData5(BigDecimal.valueOf(item2.getData()).setScale(4, RoundingMode.HALF_UP).doubleValue()); - } - } - } - for (PollutionDTO item1 : pollutionList) { - for (PublicDTO item2 : iHarmList) { - if (Objects.equals(item1.getId(),item2.getId())){ - item1.setData6(BigDecimal.valueOf(item2.getData()).setScale(4, RoundingMode.HALF_UP).doubleValue()); - } - } - } - for (PollutionDTO item1 : pollutionList) { - for (PublicDTO item2 : freqList) { - if (Objects.equals(item1.getId(),item2.getId())){ - item1.setData1(BigDecimal.valueOf(item2.getData()).setScale(4, RoundingMode.HALF_UP).doubleValue()); - } - } - } - for (PollutionDTO item1 : pollutionList) { - for (PublicDTO item2 : devList) { - if (Objects.equals(item1.getId(),item2.getId())){ - item1.setData2(BigDecimal.valueOf(item2.getData()).setScale(4, RoundingMode.HALF_UP).doubleValue()); - } - } - } - for (PollutionDTO item1 : pollutionList) { - for (PublicDTO item2 : uBalanceList) { - if (Objects.equals(item1.getId(),item2.getId())){ - item1.setData3(BigDecimal.valueOf(item2.getData()).setScale(4, RoundingMode.HALF_UP).doubleValue()); - } - } - } - for (PollutionDTO item1 : pollutionList) { - for (PublicDTO item2 : iNegList) { - if (Objects.equals(item1.getId(),item2.getId())){ - item1.setData4(BigDecimal.valueOf(item2.getData()).setScale(4, RoundingMode.HALF_UP).doubleValue()); - } - } - } - for (PollutionDTO item1 : pollutionList) { - for (PublicDTO item2 : iNuharmList) { - if (Objects.equals(item1.getId(),item2.getId())){ - item1.setData7(BigDecimal.valueOf(item2.getData()).setScale(4, RoundingMode.HALF_UP).doubleValue()); - } - } - } - for (PollutionDTO item1 : pollutionList) { - for (PublicDTO item2 : flickerList) { - if (Objects.equals(item1.getId(),item2.getId())){ - item1.setData8(BigDecimal.valueOf(item2.getData()).setScale(4, RoundingMode.HALF_UP).doubleValue()); - } - } - } - //将处理好的数据存入influxDB表中 - Calendar calendar = Calendar.getInstance(); - calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)-1, 0, 0, 0); - calendar.set(Calendar.MILLISECOND,0); - createMeasurement(pollutionList,calendar.getTimeInMillis()); - } - - - */ -/** - * 获取限值表中的所有监测点信息 - *//* - - private List getAllLinesLimitData() { - return lineFeignClient.getAllLineOverLimit("harmonic-boot","").getData(); - } - - private void whereAndNested(List clauses, WhereQueryImpl whereQuery) { - WhereNested> andNested = whereQuery.andNested(); - for (Clause clause : clauses) { - andNested.or(clause); - } - andNested.close(); - } - - */ -/** - * 谐波电压 -> 电压总谐波畸变率 - * 各监测点最新的A、B、C三相数据 - * 按照监测点分组,每个监测点取最大 - *//* - - private Map> getDistortionData(){ - String sql = "SELECT * FROM day_v where value_type = 'CP95' and (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') group by line_id order by time desc limit 3 tz('Asia/Shanghai')"; - QueryResult sqlResult = influxDbUtils.query(sql); - InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); - List list = resultMapper.toPOJO(sqlResult, DayV.class); - List overLimitList = getAllLinesLimitData(); - for (DayV item1 : list) { - for (Overlimit item2 : overLimitList) { - if (Objects.equals(item1.getLineId(),item2.getId())){ - double vUnbalance = item1.getVUnbalance()/item2.getUaberrance(); - data = Stream.of(vUnbalance).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(item1.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - return lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - } - - */ -/** - * 谐波电压 -> 各次谐波电压含有率(2~25次) - * 各监测点最新的A、B、C三相数据 - *//* - - private Map> getContentData(){ - String sql = "SELECT * FROM day_harmrate_v where value_type = 'CP95' and (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') group by line_id order by time desc limit 3 tz('Asia/Shanghai')"; - QueryResult sqlResult = influxDbUtils.query(sql); - InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); - List list = resultMapper.toPOJO(sqlResult, DayHarmrateV.class); - List overLimitList = getAllLinesLimitData(); - for (DayHarmrateV dayHarmrateV : list) { - for (Overlimit overlimit : overLimitList) { - if (Objects.equals(dayHarmrateV.getLineId(),overlimit.getId())){ - double v2 = dayHarmrateV.getV2()/overlimit.getUharm2(); - double v3 = dayHarmrateV.getV3()/overlimit.getUharm3(); - double v4 = dayHarmrateV.getV4()/overlimit.getUharm4(); - double v5 = dayHarmrateV.getV5()/overlimit.getUharm5(); - double v6 = dayHarmrateV.getV6()/overlimit.getUharm6(); - double v7 = dayHarmrateV.getV7()/overlimit.getUharm7(); - double v8 = dayHarmrateV.getV8()/overlimit.getUharm8(); - double v9 = dayHarmrateV.getV9()/overlimit.getUharm9(); - double v10 = dayHarmrateV.getV10()/overlimit.getUharm10(); - double v11 = dayHarmrateV.getV11()/overlimit.getUharm11(); - double v12 = dayHarmrateV.getV12()/overlimit.getUharm12(); - double v13 = dayHarmrateV.getV13()/overlimit.getUharm13(); - double v14 = dayHarmrateV.getV14()/overlimit.getUharm14(); - double v15 = dayHarmrateV.getV15()/overlimit.getUharm15(); - double v16 = dayHarmrateV.getV16()/overlimit.getUharm16(); - double v17 = dayHarmrateV.getV17()/overlimit.getUharm17(); - double v18 = dayHarmrateV.getV18()/overlimit.getUharm18(); - double v19 = dayHarmrateV.getV19()/overlimit.getUharm19(); - double v20 = dayHarmrateV.getV20()/overlimit.getUharm20(); - double v21 = dayHarmrateV.getV21()/overlimit.getUharm21(); - double v22 = dayHarmrateV.getV22()/overlimit.getUharm22(); - double v23 = dayHarmrateV.getV23()/overlimit.getUharm23(); - double v24 = dayHarmrateV.getV24()/overlimit.getUharm24(); - double v25 = dayHarmrateV.getV25()/overlimit.getUharm25(); - data = Stream.of(v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(dayHarmrateV.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - return lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - } - - */ -/** - * 谐波电流 -> 各次谐波电流(2~25次) - * 各监测点最新的A、B、C三相数据 - *//* - - private Map> getIharm(){ - String sql = "SELECT * FROM day_i where value_type = 'CP95' and (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') group by line_id order by time desc limit 3 tz('Asia/Shanghai')"; - QueryResult sqlResult = influxDbUtils.query(sql); - InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); - List list = resultMapper.toPOJO(sqlResult, DayI.class); - List overLimitList = getAllLinesLimitData(); - for (DayI dayI : list) { - for (Overlimit overlimit : overLimitList) { - if (Objects.equals(dayI.getLineId(),overlimit.getId())){ - double v2 = dayI.getI2()/overlimit.getIharm2(); - double v3 = dayI.getI3()/overlimit.getIharm3(); - double v4 = dayI.getI4()/overlimit.getIharm4(); - double v5 = dayI.getI5()/overlimit.getIharm5(); - double v6 = dayI.getI6()/overlimit.getIharm6(); - double v7 = dayI.getI7()/overlimit.getIharm7(); - double v8 = dayI.getI8()/overlimit.getIharm8(); - double v9 = dayI.getI9()/overlimit.getIharm9(); - double v10 = dayI.getI10()/overlimit.getIharm10(); - double v11 = dayI.getI11()/overlimit.getIharm11(); - double v12 = dayI.getI12()/overlimit.getIharm12(); - double v13 = dayI.getI13()/overlimit.getIharm13(); - double v14 = dayI.getI14()/overlimit.getIharm14(); - double v15 = dayI.getI15()/overlimit.getIharm15(); - double v16 = dayI.getI16()/overlimit.getIharm16(); - double v17 = dayI.getI17()/overlimit.getIharm17(); - double v18 = dayI.getI18()/overlimit.getIharm18(); - double v19 = dayI.getI19()/overlimit.getIharm19(); - double v20 = dayI.getI20()/overlimit.getIharm20(); - double v21 = dayI.getI21()/overlimit.getIharm21(); - double v22 = dayI.getI22()/overlimit.getIharm22(); - double v23 = dayI.getI23()/overlimit.getIharm23(); - double v24 = dayI.getI24()/overlimit.getIharm24(); - double v25 = dayI.getI25()/overlimit.getIharm25(); - data = Stream.of(v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(dayI.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - return lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - } - - */ -/** - * 频率偏差 -> 绝对值 - * 各监测点最新的T相数据 - *//* - - private Map> getFreq(){ - String sql = "SELECT line_id,abs(freq_dev) AS freq_dev FROM day_v where phasic_type = 'T' and (value_type = 'MIN' or value_type = 'MAX') group by line_id order by time desc limit 2 tz('Asia/Shanghai')"; - QueryResult sqlResult = influxDbUtils.query(sql); - InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); - List list = resultMapper.toPOJO(sqlResult, DayV.class); - List overLimitList = getAllLinesLimitData(); - for (DayV dayV : list) { - for (Overlimit overlimit : overLimitList) { - if (Objects.equals(dayV.getLineId(),overlimit.getId())){ - double freqDev = dayV.getFreqDev()/overlimit.getFreqDev(); - data = Stream.of(freqDev).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(dayV.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - return lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - } - - */ -/** - * 电压偏差 -> 绝对值 - * 各监测点最新的A、B、C三相数据 - *//* - - private Map> getDev(){ - String sql = "SELECT line_id,vu_dev,vl_dev,value_type FROM day_v where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and (value_type = 'MIN' or value_type = 'MAX') group by line_id order by time desc limit 6 tz('Asia/Shanghai')"; - QueryResult sqlResult = influxDbUtils.query(sql); - InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); - List list = resultMapper.toPOJO(sqlResult, DayV.class); - List overLimitList = getAllLinesLimitData(); - for (DayV dayV : list) { - for (Overlimit overlimit : overLimitList) { - if (Objects.equals(dayV.getLineId(),overlimit.getId())){ - double vlDev = Math.abs(dayV.getVlDev()/overlimit.getUvoltageDev()); - double vuDev = Math.abs(dayV.getVuDev()/overlimit.getVoltageDev()); - data = Stream.of(vuDev,vlDev).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(dayV.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - return lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - } - - */ -/** - * 三相电压不平衡度 - * 各监测点最新的T相数据 - *//* - - private Map> getUbalance(){ - String sql = "SELECT line_id,v_unbalance,value_type FROM day_v where phasic_type = 'T' and (value_type = 'CP95' or value_type = 'MAX') group by line_id order by time desc limit 2 tz('Asia/Shanghai')"; - QueryResult sqlResult = influxDbUtils.query(sql); - InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); - List list = resultMapper.toPOJO(sqlResult, DayV.class); - List overLimitList = getAllLinesLimitData(); - for (DayV dayV : list) { - for (Overlimit overlimit : overLimitList) { - if (Objects.equals(dayV.getLineId(),overlimit.getId())){ - double vUnbalance = Math.abs(dayV.getVUnbalance()/overlimit.getUbalance()); - data = Stream.of(vUnbalance).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(dayV.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - return lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - } - - */ -/** - * 负序电流 - * 各监测点最新的T相数据 - *//* - - private Map> getIneg(){ - String sql = "SELECT line_id,i_neg,value_type FROM day_i where phasic_type = 'T' and (value_type = 'CP95' or value_type = 'MAX') group by line_id order by time desc limit 2 tz('Asia/Shanghai')"; - QueryResult sqlResult = influxDbUtils.query(sql); - InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); - List list = resultMapper.toPOJO(sqlResult, DayI.class); - List overLimitList = getAllLinesLimitData(); - for (DayI dayI : list) { - for (Overlimit overlimit : overLimitList) { - if (Objects.equals(dayI.getLineId(),overlimit.getId())){ - double iNeg = Math.abs(dayI.getINeg()/overlimit.getINeg()); - data = Stream.of(iNeg).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(dayI.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - return lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - } - - */ -/** - * 间谐波电压含有率 - * 各监测点最新的A、B、C三相数据 - *//* - - private Map> getInuharm(){ - String sql = "SELECT * FROM day_inharm_v where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and value_type = 'CP95' group by line_id order by time desc limit 3 tz('Asia/Shanghai')"; - QueryResult sqlResult = influxDbUtils.query(sql); - InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); - List list = resultMapper.toPOJO(sqlResult, DayInharmV.class); - List overLimitList = getAllLinesLimitData(); - for (DayInharmV dayInharmV : list) { - for (Overlimit overlimit : overLimitList) { - if (Objects.equals(dayInharmV.getLineId(),overlimit.getId())){ - double v1 = Math.abs(dayInharmV.getV1()/overlimit.getInuharm1()); - double v2 = Math.abs(dayInharmV.getV2()/overlimit.getInuharm2()); - double v3 = Math.abs(dayInharmV.getV3()/overlimit.getInuharm3()); - double v4 = Math.abs(dayInharmV.getV4()/overlimit.getInuharm4()); - double v5 = Math.abs(dayInharmV.getV5()/overlimit.getInuharm5()); - double v6 = Math.abs(dayInharmV.getV6()/overlimit.getInuharm6()); - double v7 = Math.abs(dayInharmV.getV7()/overlimit.getInuharm7()); - double v8 = Math.abs(dayInharmV.getV8()/overlimit.getInuharm8()); - double v9 = Math.abs(dayInharmV.getV9()/overlimit.getInuharm9()); - double v10 = Math.abs(dayInharmV.getV10()/overlimit.getInuharm10()); - double v11 = Math.abs(dayInharmV.getV11()/overlimit.getInuharm11()); - double v12 = Math.abs(dayInharmV.getV12()/overlimit.getInuharm12()); - double v13 = Math.abs(dayInharmV.getV13()/overlimit.getInuharm13()); - double v14 = Math.abs(dayInharmV.getV14()/overlimit.getInuharm14()); - double v15 = Math.abs(dayInharmV.getV15()/overlimit.getInuharm15()); - double v16 = Math.abs(dayInharmV.getV16()/overlimit.getInuharm16()); - data = Stream.of(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(dayInharmV.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - return lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - } - - */ -/** - * 长时电压闪变 - * 各监测点最新的A、B、C三相数据 - *//* - - private Map> getFlicker(){ - String sql = "SELECT * FROM day_plt where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and value_type = 'CP95' group by line_id order by time desc limit 3 tz('Asia/Shanghai')"; - QueryResult sqlResult = influxDbUtils.query(sql); - InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); - List list = resultMapper.toPOJO(sqlResult, DayPlt.class); - List overLimitList = getAllLinesLimitData(); - for (DayPlt dayPlt : list) { - for (Overlimit overlimit : overLimitList) { - if (Objects.equals(dayPlt.getLineId(),overlimit.getId())){ - double plt = Math.abs(dayPlt.getPlt()/overlimit.getFlicker()); - data = Stream.of(plt).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(dayPlt.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - return lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - } - - - */ -/** - * 生成谐波污区图污染指标表 - *//* - - private void createMeasurement(List list, long time){ - List records = new ArrayList(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put("line_id",item.getId()); - fields.put("freq",item.getData1()); - fields.put("freq_dev",item.getData2()); - fields.put("unbalance",item.getData3()); - fields.put("ineg",item.getData4()); - fields.put("harmonic_v",item.getData5()); - fields.put("harmonic_i",item.getData6()); - fields.put("inuharm",item.getData7()); - fields.put("flicker",item.getData8()); - Point point = influxDbUtils.pointBuilder("harmonic_pollution", time, TimeUnit.MILLISECONDS,tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag("line_id", item.getId()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } -} -*/ diff --git a/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/PqsIntegrityJob.java b/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/PqsIntegrityJob.java deleted file mode 100644 index 21970e7c2..000000000 --- a/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/PqsIntegrityJob.java +++ /dev/null @@ -1,191 +0,0 @@ -/* -package com.njcn.executor.handler; - -import com.njcn.common.pojo.constant.PatternRegex; -import com.njcn.device.pq.api.LineFeignClient; -import com.njcn.device.pq.pojo.po.LineDetail; -import com.njcn.executor.pojo.vo.*; -import com.njcn.influxdb.config.InfluxDbConfig; -import com.njcn.influxdb.param.InfluxDBPublicParam; -import com.njcn.influxdb.utils.InfluxDbUtils; -import com.xxl.job.core.context.XxlJobHelper; -import com.xxl.job.core.handler.annotation.XxlJob; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.influxdb.InfluxDB; -import org.influxdb.dto.BatchPoints; -import org.influxdb.dto.Point; -import org.influxdb.dto.QueryResult; -import org.influxdb.impl.InfluxDBResultMapper; -import org.influxdb.querybuilder.SelectQueryImpl; -import org.influxdb.querybuilder.WhereNested; -import org.influxdb.querybuilder.WhereQueryImpl; -import org.influxdb.querybuilder.clauses.Clause; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.time.Instant; -import java.util.*; -import java.util.concurrent.TimeUnit; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - -import static com.njcn.influxdb.param.InfluxDBPublicParam.*; -import static com.njcn.influxdb.param.InfluxDBPublicParam.LINE_ID; -import static org.influxdb.querybuilder.BuiltQuery.QueryBuilder.*; -import static org.influxdb.querybuilder.BuiltQuery.QueryBuilder.eq; - -*/ -/** - * 类的介绍: - * - * @author xuyang - * @version 1.0.0 - * @createTime 2022/7/8 13:44 - *//* - -@Slf4j -@Component -@AllArgsConstructor -public class PqsIntegrityJob { - - private final InfluxDbUtils influxDbUtils; - - private final InfluxDbConfig influxDbConfig; - - private final LineFeignClient lineFeignClient; - - @XxlJob("pqsIntegrityJobHandler") - public void pqsIntegrityJobHandler() throws ParseException { - List result = new ArrayList<>(); - List paramList = new ArrayList<>(),lineList = new ArrayList<>(); - List dataList = new ArrayList<>(); - String command = XxlJobHelper.getJobParam(); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Calendar calendar = Calendar.getInstance(); - calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)-1, 0, 0, 0); - calendar.set(Calendar.MILLISECOND, 0); - Calendar calendar2 = Calendar.getInstance(); - calendar2.set(calendar2.get(Calendar.YEAR), calendar2.get(Calendar.MONTH), calendar2.get(Calendar.DAY_OF_MONTH)-1, 23, 59, 59); - calendar2.set(Calendar.MILLISECOND, 0); - String startTime = format.format(calendar.getTime()); - String endTime = format.format(calendar2.getTime()); - if (!StringUtils.isEmpty(command)){ - paramList = Arrays.asList(command.split(",")); - startTime = paramList.get(0); - endTime = paramList.get(1); - lineList = paramList.subList(2,paramList.size()); - boolean s1 = Pattern.matches(PatternRegex.TIME_FORMAT,startTime); - boolean e1 = Pattern.matches(PatternRegex.TIME_FORMAT,endTime); - if (!s1 || !e1){ - log.error("补招时间格式错误"); - return; - } else { - startTime = startTime + START_TIME; - endTime = endTime + END_TIME; - } - } - List lineDetail = lineFeignClient.getLineDetail(lineList).getData(); - if (!CollectionUtils.isEmpty(lineDetail)){ - //获取dataV表中监测点的数据数量 - lineList = lineDetail.stream().map(LineDetail::getId).collect(Collectors.toList()); - long diff,diffDays,a,b = 0; - Date d1 = format.parse(startTime); - Date d2 = format.parse(endTime); - diff = d2.getTime() - d1.getTime(); - diffDays = diff / (24 * 60 * 60 * 1000-1000); - int days = (int) diffDays; - for (int i = 1; i <= days; i++) { - a = d1.getTime() + (long)(i-1)*(24 * 60 * 60) * 1000; - b = d1.getTime() + (long)i*(24 * 60 * 60) * 1000-1000; - startTime = format.format(a); - endTime = format.format(b); - dataList = getDataV(lineList,startTime,endTime); - for (LineDetail detail : lineDetail) { - PqsIntegrity pqsIntegrity = new PqsIntegrity(); - pqsIntegrity.setTime(Instant.ofEpochMilli(a)); - pqsIntegrity.setLineId(detail.getId()); - pqsIntegrity.setDue(DAY_MINUTE/detail.getTimeInterval()); - if (!CollectionUtils.isEmpty(dataList)){ - Map> lineMap = dataList.stream().collect(Collectors.groupingBy(DataV::getLineId)); - List l1 = lineMap.get(detail.getId()); - if (!CollectionUtils.isEmpty(l1)){ - Map> timeMap = l1.stream().collect(Collectors.groupingBy(DataV::getTime)); - pqsIntegrity.setReal(timeMap.size()); - } - } - result.add(pqsIntegrity); - } - } - } - insertData(result); - } - - - */ -/** - * 获取dataV数据 - * @param list 监测点集合 - * @return dataV数据 - *//* - - private List getDataV(List list, String startTime, String endTime){ - SelectQueryImpl selectQuery = select().from(influxDbConfig.getDatabase(), DATA_V); - WhereQueryImpl where = selectQuery.where(); - whereAndNested(list, where); - where.and(gte(TIME, startTime)).and(lte(TIME, endTime)); - where.tz(TZ); - QueryResult queryResult = influxDbUtils.query(selectQuery.getCommand()); - InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); - return resultMapper.toPOJO(queryResult, DataV.class); - } - - */ -/** - * 拼接监测点条件 - * @param list 监测点集合 - * @param whereQuery WhereQueryImpl - *//* - - private void whereAndNested(List list, WhereQueryImpl whereQuery) { - List clauses = new ArrayList<>(); - list.forEach(item->{ - Clause clause = eq(LINE_ID, item); - clauses.add(clause); - }); - WhereNested> andNested = whereQuery.andNested(); - for (Clause clause : clauses) { - andNested.or(clause); - } - andNested.close(); - } - - */ -/** - * 功能描述:插入pqs_integrity表数据 - * @author xy - * @param list 数据集合 - * @date 2022/5/12 8:55 - *//* - - private void insertData(List list){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put(LINE_ID,item.getLineId()); - fields.put(DUE,item.getDue()); - fields.put(REAL,item.getReal()); - Point point = influxDbUtils.pointBuilder(PQS_INTEGRITY, item.getTime().toEpochMilli(), TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(LINE_ID, item.getLineId()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } - -} -*/ diff --git a/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/PqsOnlineRateJob.java b/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/PqsOnlineRateJob.java deleted file mode 100644 index d3d7bdc65..000000000 --- a/pqs-job/job-executor/src/main/java/com/njcn/executor/handler/PqsOnlineRateJob.java +++ /dev/null @@ -1,294 +0,0 @@ -/* -package com.njcn.executor.handler; - -import com.njcn.common.pojo.constant.PatternRegex; -import com.njcn.device.pq.api.LineFeignClient; -import com.njcn.energy.pojo.constant.ModelState; -import com.njcn.executor.pojo.vo.PqsCommunicate; -import com.njcn.executor.pojo.vo.PqsOnlineRate; -import com.njcn.influxdb.config.InfluxDbConfig; -import com.njcn.influxdb.utils.InfluxDbUtils; -import com.xxl.job.core.context.XxlJobHelper; -import com.xxl.job.core.handler.annotation.XxlJob; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.influxdb.InfluxDB; -import org.influxdb.dto.BatchPoints; -import org.influxdb.dto.Point; -import org.influxdb.dto.QueryResult; -import org.influxdb.impl.InfluxDBResultMapper; -import org.influxdb.querybuilder.SelectQueryImpl; -import org.influxdb.querybuilder.WhereNested; -import org.influxdb.querybuilder.WhereQueryImpl; -import org.influxdb.querybuilder.clauses.Clause; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.time.Instant; -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.util.*; -import java.util.concurrent.TimeUnit; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - -import static com.njcn.influxdb.param.InfluxDBPublicParam.*; -import static org.influxdb.querybuilder.BuiltQuery.QueryBuilder.*; - -*/ -/** - * 类的介绍: - * - * @author xuyang - * @version 1.0.0 - * @createTime 2022/7/8 13:43 - *//* - -@Slf4j -@Component -@AllArgsConstructor -public class PqsOnlineRateJob { - - private final InfluxDbUtils influxDbUtils; - - private final InfluxDbConfig influxDbConfig; - - private final LineFeignClient lineFeignClient; - - @XxlJob("pqsOnlineRateJobHandler") - public void pqsOnlineRateJobHandler() throws ParseException { - List result = new ArrayList<>(); - List paramList = new ArrayList<>(),deviceList = new ArrayList<>(); - String command = XxlJobHelper.getJobParam(); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Calendar calendar = Calendar.getInstance(); - calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)-1, 0, 0, 0); - calendar.set(Calendar.MILLISECOND, 0); - Calendar calendar2 = Calendar.getInstance(); - calendar2.set(calendar2.get(Calendar.YEAR), calendar2.get(Calendar.MONTH), calendar2.get(Calendar.DAY_OF_MONTH)-1, 23, 59, 59); - calendar2.set(Calendar.MILLISECOND, 0); - String startTime = format.format(calendar.getTime()); - String endTime = format.format(calendar2.getTime()); - if (!StringUtils.isEmpty(command)){ - paramList = Arrays.asList(command.split(",")); - startTime = paramList.get(0); - endTime = paramList.get(1); - deviceList = paramList.subList(2,paramList.size()); - boolean s1 = Pattern.matches(PatternRegex.TIME_FORMAT,startTime); - boolean e1 = Pattern.matches(PatternRegex.TIME_FORMAT,endTime); - if (!s1 || !e1){ - log.error("补招时间格式错误"); - return; - } else { - startTime = startTime + START_TIME; - endTime = endTime + END_TIME; - } - } - if (CollectionUtils.isEmpty(deviceList)){ - deviceList = lineFeignClient.getDeviceList().getData(); - } - if (!CollectionUtils.isEmpty(deviceList)){ - long diff,diffDays,a,b = 0; - List l1 = new ArrayList<>(),l2 = new ArrayList<>(); - Date d1 = format.parse(startTime); - Date d2 = format.parse(endTime); - diff = d2.getTime() - d1.getTime(); - diffDays = diff / (24 * 60 * 60 * 1000-1000); - int days = (int) diffDays; - for (int i = 1; i <= days; i++) { - a = d1.getTime() + (long)(i-1)*(24 * 60 * 60) * 1000; - b = d1.getTime() + (long)i*(24 * 60 * 60) * 1000-1000; - startTime = format.format(a); - endTime = format.format(b); - //获取装置的最新的一条数据 - List latestList = getData(deviceList); - if (!CollectionUtils.isEmpty(latestList)){ - for (PqsCommunicate item : latestList) { - if (item.getTime().toEpochMilli() < a){ - l1.add(item); - } else if (a <= item.getTime().toEpochMilli() && item.getTime().toEpochMilli() < b){ - l2.add(item); - } - } - } - if (!CollectionUtils.isEmpty(l1)){ - for (PqsCommunicate item : l1) { - PqsOnlineRate onlineRate = new PqsOnlineRate(); - if (Objects.equals(item.getType(), ModelState.offline)){ - onlineRate.setOfflineMin(DAY_MINUTE); - onlineRate.setOnlineMin(0); - onlineRate.setOnlineRate(0.0); - } else { - onlineRate.setOfflineMin(0); - onlineRate.setOnlineMin(DAY_MINUTE); - onlineRate.setOnlineRate(100.0); - } - onlineRate.setTime(Instant.ofEpochMilli(a)); - onlineRate.setDevId(item.getDevId()); - result.add(onlineRate); - } - } - if (!CollectionUtils.isEmpty(l2)){ - List devList = l2.stream().map(PqsCommunicate::getDevId).collect(Collectors.toList()); - List list = getPqsCommunicate(devList,startTime,endTime); - //根据装置的id进行分组 - Map> groupMap = list.stream().collect(Collectors.groupingBy(PqsCommunicate::getDevId)); - try { - if (!CollectionUtils.isEmpty(groupMap)){ - for (String key : groupMap.keySet()) { - int offTime = 0; - int onTime = 0; - PqsOnlineRate onlineRate = new PqsOnlineRate(); - List infoList = groupMap.get(key); - if (infoList.size() > 1){ - //获取最早一条记录 - PqsCommunicate first = infoList.stream().min(Comparator.comparing(PqsCommunicate::getTime)).get(); - //将上线和下线分组 - Map> typeMap = infoList.stream().collect(Collectors.groupingBy(PqsCommunicate::getType)); - List off = typeMap.get(0); - List on = typeMap.get(1); - if (first.getType() == 0){ - if (off.size() == on.size()){ - for (int j = 0; j < off.size(); j++) { - offTime = offTime + (int) (on.get(j).getTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() + 1000L - off.get(j).getTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / (1000*60); - } - } else { - for (int j = 0; j < off.size(); j++) { - if (j == off.size() - 1){ - offTime = offTime + (int) (format.parse(endTime).getTime() + 1000L - off.get(j).getTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / (1000*60); - } else { - offTime = offTime + (int) (on.get(j).getTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() + 1000L - off.get(j).getTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / (1000*60); - } - } - } - onTime = DAY_MINUTE-offTime; - } else { - if (off.size() == on.size()){ - for (int j = 0; j < on.size(); j++) { - onTime = onTime + (int) (off.get(j).getTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() + 1000L - on.get(j).getTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / (1000*60); - } - } else { - for (int j = 0; j < on.size(); j++) { - if (j == on.size() - 1){ - onTime = onTime + (int) (format.parse(endTime).getTime() + 1000L - on.get(j).getTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / (1000*60); - } else { - onTime = onTime + (int) (off.get(j).getTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() + 1000L - on.get(j).getTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / (1000*60); - } - } - } - offTime = DAY_MINUTE-onTime; - } - } else { - LocalDateTime updateTime = LocalDateTime.ofInstant(infoList.get(0).getTime(), ZoneId.systemDefault()); - if (Objects.equals(infoList.get(0).getType(),0)) { - onTime = 0; - offTime = (int) (format.parse(endTime).getTime() + 1000L - updateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / (1000*60); - } else { - offTime = 0; - onTime = (int) (format.parse(endTime).getTime() + 1000L - updateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / (1000*60); - } - } - onlineRate.setDevId(infoList.get(0).getDevId()); - onlineRate.setOnlineMin(onTime); - onlineRate.setOfflineMin(offTime); - onlineRate.setOnlineRate(Double.parseDouble(String.format("%.2f",onTime*1.0/DAY_MINUTE*100))); - onlineRate.setTime(Instant.ofEpochMilli(a)); - result.add(onlineRate); - } - } - } catch (ParseException e) { - e.getMessage(); - } - } - } - } - insertData(result); - } - - */ -/** - * 获取pqs_communicate数据 - * @param list 装置集合 - * @param startTime 开始时间 - * @param endTime 结束时间 - * @return pqs_communicate数据 - *//* - - private List getPqsCommunicate(List list, String startTime, String endTime){ - SelectQueryImpl selectQuery = select().from(influxDbConfig.getDatabase(), PQS_COMMUNICATE); - WhereQueryImpl where = selectQuery.where(); - whereAndNested(list, where); - where.and(gte(TIME, startTime)).and(lte(TIME, endTime)); - where.tz(TZ); - QueryResult queryResult = influxDbUtils.query(selectQuery.getCommand()); - InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); - return resultMapper.toPOJO(queryResult, PqsCommunicate.class); - } - - */ -/** - * 拼接装置条件 - * @param list 装置集合 - * @param whereQuery WhereQueryImpl - *//* - - private void whereAndNested(List list, WhereQueryImpl whereQuery) { - List clauses = new ArrayList<>(); - list.forEach(item->{ - Clause clause = eq(DEV_ID, item); - clauses.add(clause); - }); - WhereNested> andNested = whereQuery.andNested(); - for (Clause clause : clauses) { - andNested.or(clause); - } - andNested.close(); - } - - */ -/** - * 获取pqs_communicate数据最新一条数据 - * @param list 装置id集合 - * @return pqs_communicate数据 - *//* - - private List getData(List list){ - SelectQueryImpl selectQuery = select().from(influxDbConfig.getDatabase(), PQS_COMMUNICATE); - WhereQueryImpl where = selectQuery.where(); - whereAndNested(list, where); - where.groupBy(DEV_ID).orderBy(desc()).limit(1); - where.tz(TZ); - QueryResult queryResult = influxDbUtils.query(selectQuery.getCommand()); - InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); - return resultMapper.toPOJO(queryResult, PqsCommunicate.class); - } - - */ -/** - * 功能描述:插入pqs_integrity表数据 - * @author xy - * @param list 数据集合 - * @date 2022/5/12 8:55 - *//* - - private void insertData(List list){ - List records = new ArrayList<>(); - list.forEach(item->{ - Map tags = new HashMap<>(); - Map fields = new HashMap<>(); - tags.put(DEV_ID,item.getDevId()); - fields.put(ONLINE_MIN,item.getOnlineMin()); - fields.put(OFFLINE_MIN,item.getOfflineMin()); - fields.put(ONLINE_RATE,item.getOnlineRate()); - Point point = influxDbUtils.pointBuilder(PQS_ONLINERATE, item.getTime().toEpochMilli(), TimeUnit.MILLISECONDS, tags, fields); - BatchPoints batchPoints = BatchPoints.database(influxDbConfig.getDatabase()).tag(DEV_ID, item.getDevId()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); - batchPoints.point(point); - records.add(batchPoints.lineProtocol()); - }); - influxDbUtils.batchInsert(influxDbConfig.getDatabase(),"", InfluxDB.ConsistencyLevel.ALL, records); - } -} -*/ diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/pojo/param/EventTemplateParam.java b/pqs-system/system-api/src/main/java/com/njcn/system/pojo/param/EventTemplateParam.java index 2bd41ec4a..224ec0bec 100644 --- a/pqs-system/system-api/src/main/java/com/njcn/system/pojo/param/EventTemplateParam.java +++ b/pqs-system/system-api/src/main/java/com/njcn/system/pojo/param/EventTemplateParam.java @@ -56,6 +56,7 @@ public class EventTemplateParam { /** * 区分监测点与区域报告 */ + @NotNull(message = "type不能为空") private Integer type; } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/ConfigController.java b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/ConfigController.java index 45ca4e862..dddd5193c 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/ConfigController.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/ConfigController.java @@ -1,6 +1,7 @@ package com.njcn.system.controller; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.OperateType; @@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** *

@@ -45,6 +47,7 @@ public class ConfigController extends BaseController { private final IConfigService iConfigService; + @OperateInfo(info = LogEnum.SYSTEM_COMMON) @GetMapping("/getSysConfig") @ApiOperation("获取系统配置") @@ -68,7 +71,8 @@ public class ConfigController extends BaseController { public HttpResult> getSysConfigData() { String methodDescribe = getMethodDescribe("getSysConfigData"); LogUtil.njcnDebug(log, "{}", methodDescribe, methodDescribe); - List res = iConfigService.list(); + List res = iConfigService.getList(); + if (CollectionUtils.isEmpty(res)) { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.NO_DATA, null, methodDescribe); } else { diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/ResourceAdministrationController.java b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/ResourceAdministrationController.java index c98742291..c2d58e637 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/ResourceAdministrationController.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/ResourceAdministrationController.java @@ -5,17 +5,19 @@ 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.system.pojo.po.Resinformation; import com.njcn.system.service.IResourceAdministrationService; import com.njcn.web.controller.BaseController; +import com.njcn.web.pojo.param.BaseParam; import io.swagger.annotations.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestPart; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.util.List; + /** * @version 1.0.0 @@ -46,4 +48,17 @@ public class ResourceAdministrationController extends BaseController { Boolean flag = iResourceAdministrationService.uploadFile(multipartFile, name, type, describe, systemType); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); } + + /** + * 查询数据 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/queryData") + @ApiOperation("查询数据") + @ApiImplicitParam(name = "baseParam",value = "查询数据",required = true) + public HttpResult> queryData(@RequestBody @Validated BaseParam baseParam) { + String methodDescribe = getMethodDescribe("queryData"); + List result = iResourceAdministrationService.queryData(baseParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/ConfigMapper.java b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/ConfigMapper.java index fc16262c8..cdd30f5bd 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/ConfigMapper.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/ConfigMapper.java @@ -1,8 +1,11 @@ package com.njcn.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.system.pojo.po.Config; +import java.util.List; + /** *

* Mapper 接口 @@ -13,4 +16,5 @@ import com.njcn.system.pojo.po.Config; */ public interface ConfigMapper extends BaseMapper { + List getList(); } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/ResourceAdministrationMapper.java b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/ResourceAdministrationMapper.java index d858a4e97..e4495a0b6 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/ResourceAdministrationMapper.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/ResourceAdministrationMapper.java @@ -12,5 +12,4 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface ResourceAdministrationMapper extends BaseMapper { - } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/ConfigMapper.xml b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/ConfigMapper.xml index d138f6edd..0ee2662c9 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/ConfigMapper.xml +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/ConfigMapper.xml @@ -2,4 +2,19 @@ + + diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/ResourceAdministrationMapper.xml b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/ResourceAdministrationMapper.xml index 5882096fe..b6301e2f5 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/ResourceAdministrationMapper.xml +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/ResourceAdministrationMapper.xml @@ -1,4 +1,5 @@ + diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/IConfigService.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/IConfigService.java index 77f0a64ef..cdf410e47 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/IConfigService.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/IConfigService.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.njcn.system.pojo.param.ConfigParam; import com.njcn.system.pojo.po.Config; +import java.util.List; + /** *

* 服务类 @@ -26,4 +28,6 @@ public interface IConfigService extends IService { * @return */ boolean updateSysConfig(ConfigParam.ConfigUpdateParam configUpdateParam); + + List getList(); } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/IResourceAdministrationService.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/IResourceAdministrationService.java index 65bf7d118..bce4ed65b 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/IResourceAdministrationService.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/IResourceAdministrationService.java @@ -3,8 +3,11 @@ package com.njcn.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.njcn.system.pojo.po.Resinformation; +import com.njcn.web.pojo.param.BaseParam; import org.springframework.web.multipart.MultipartFile; +import java.util.List; + /** * @version 1.0.0 * @author: zbj @@ -14,4 +17,5 @@ public interface IResourceAdministrationService extends IService Boolean uploadFile(MultipartFile multipartFile, String name, String type, String describe,String systemType); + List queryData(BaseParam baseParam); } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/AreaServiceImpl.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/AreaServiceImpl.java index 3016f9f83..76a6cf251 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/AreaServiceImpl.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/AreaServiceImpl.java @@ -208,6 +208,9 @@ public class AreaServiceImpl extends ServiceImpl implements IA areaQueryWrapper.eq("sys_area.type", type); areaQueryWrapper.eq("sys_area.state", DataStateEnum.ENABLE.getCode()); Area area = this.baseMapper.selectOne(areaQueryWrapper); + if (area.getPid().equals("-1")) { + return area; + } if (!area.getPid().equals("0")) { id = area.getPid(); area = areaPro(id, type); diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/ConfigServiceImpl.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/ConfigServiceImpl.java index c03d3a7af..8c1030411 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/ConfigServiceImpl.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/ConfigServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.time.LocalDateTime; +import java.util.List; import java.util.Objects; /** @@ -50,5 +51,10 @@ public class ConfigServiceImpl extends ServiceImpl impleme return false; } + @Override + public List getList() { + return this.baseMapper.getList(); + } + } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/ResourceAdministrationServiceImpl.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/ResourceAdministrationServiceImpl.java index 6bf1def06..fa6e826b9 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/ResourceAdministrationServiceImpl.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/ResourceAdministrationServiceImpl.java @@ -1,18 +1,23 @@ package com.njcn.system.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.oss.constant.OssPath; import com.njcn.oss.utils.FileStorageUtil; import com.njcn.system.mapper.ResourceAdministrationMapper; import com.njcn.system.pojo.po.Resinformation; import com.njcn.system.service.IResourceAdministrationService; +import com.njcn.web.pojo.param.BaseParam; import com.njcn.web.utils.RequestUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.time.LocalDateTime; +import java.util.List; import java.util.Objects; /** @@ -50,4 +55,15 @@ public class ResourceAdministrationServiceImpl extends ServiceImpl queryData(BaseParam baseParam) { + if (!StringUtils.isBlank(baseParam.getSearchValue())) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Resinformation::getType, baseParam.getSearchValue()); + return resourceAdministrationMapper.selectPage(new Page<>(baseParam.getPageNum(), baseParam.getPageSize()), wrapper).getRecords(); + } else { + return this.page(new Page<>(baseParam.getPageNum(), baseParam.getPageSize())).getRecords(); + } + } }