diff --git a/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/excel/CarryCapcityDataEexcel.java b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/excel/CarryCapcityDataEexcel.java index 1f03eb5be..e36fde828 100644 --- a/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/excel/CarryCapcityDataEexcel.java +++ b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/excel/CarryCapcityDataEexcel.java @@ -1,11 +1,12 @@ package com.njcn.advance.pojo.carrycapacity.excel; +import com.alibaba.excel.EasyExcel; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.converters.localdatetime.LocalDateTimeStringConverter; -import com.njcn.advance.utils.EasyExcelUtil; import lombok.Data; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; /** @@ -266,17 +267,20 @@ public class CarryCapcityDataEexcel { private Double i25_c; public static void main(String[] args) { - List objects = EasyExcelUtil.syncReadModel("C:\\Users\\无名\\Desktop\\11.xlsx", CarryCapcityDataEexcel.class, 0,3); - System.out.println(objects); +// List objects = EasyExcelUtil.syncReadModel("C:\\Users\\无名\\Desktop\\11.xlsx", CarryCapcityDataEexcel.class, 0,3); +// System.out.println(objects); -// String sheetName = "sheetName"; -// List excels = new ArrayList<>(); -// CarryCapcityDataEexcel exportHeadersExcel = new CarryCapcityDataEexcel(); -// excels.add(exportHeadersExcel); -// -// EasyExcel.write("C:\\\\Users\\\\无名\\\\Desktop\\\\22.xlsx", CarryCapcityDataEexcel.class) -// .sheet(sheetName) -// .doWrite(excels); + String sheetName = "sheetName"; + List excels = new ArrayList<>(); + CarryCapcityDataEexcel exportHeadersExcel = new CarryCapcityDataEexcel(); + excels.add(exportHeadersExcel); + + EasyExcel.write("C:\\\\Users\\\\无名\\\\Desktop\\\\22.xlsx", CarryCapcityDataEexcel.class) + .sheet(sheetName) + .doWrite(excels); + EasyExcel.write("C:\\\\Users\\\\无名\\\\Desktop\\\\22.xlsx", CarryCapcityDataEexcel.class) + .sheet("sheetName2") + .doWrite(excels); } diff --git a/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityDeviceParam.java b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityDeviceParam.java index 3e0e04d29..23f3168a8 100644 --- a/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityDeviceParam.java +++ b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityDeviceParam.java @@ -23,6 +23,7 @@ public class CarryCapacityDeviceParam { /** * 设备名称 */ + @Pattern(regexp = PatternRegex.DES32_REGEX, message = ValidMessage.DATA_TOO_LONG) private String devName; private String devScale; diff --git a/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityUserParam.java b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityUserParam.java index e4ba232b9..07d6f39ef 100644 --- a/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityUserParam.java +++ b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/carrycapacity/param/CarryCapacityUserParam.java @@ -31,6 +31,7 @@ public class CarryCapacityUserParam { /** * 用户名称 */ + @Pattern(regexp = PatternRegex.DES32_REGEX, message = ValidMessage.DATA_TOO_LONG) private String userName; /** diff --git a/pqs-advance/advance-api/src/main/java/com/njcn/advance/utils/EasyExcelUtil.java b/pqs-advance/advance-api/src/main/java/com/njcn/advance/utils/EasyExcelUtil.java index f73bd9cac..fe8207345 100644 --- a/pqs-advance/advance-api/src/main/java/com/njcn/advance/utils/EasyExcelUtil.java +++ b/pqs-advance/advance-api/src/main/java/com/njcn/advance/utils/EasyExcelUtil.java @@ -376,4 +376,9 @@ public class EasyExcelUtil { return new EasyExcelWriteTool(response.getOutputStream()); } + + public static void main(String[] args) { + List> maps = EasyExcelUtil.syncRead("C:\\Users\\无名\\Desktop\\11.xlsx"); + System.out.println(maps); + } } diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/carrycapacity/CarryCapacityController.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/carrycapacity/CarryCapacityController.java index b710a3c2f..62edb4b4b 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/carrycapacity/CarryCapacityController.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/carrycapacity/CarryCapacityController.java @@ -56,15 +56,7 @@ public class CarryCapacityController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, carryCapacityDataVO, methodDescribe); } - @OperateInfo(info = LogEnum.BUSINESS_COMMON) - @PostMapping("/modelTraining") - @ApiOperation("承载能力评估模型训练") - @ApiImplicitParam(name = "queryParam", value = "查询参数", required = true) - public HttpResult modelTraining(@RequestBody @Validated CarryCapacityQueryDataParam queryParam) { - String methodDescribe = getMethodDescribe("modelTraining"); - CarryCapacityDataVO carryCapacityDataVO = carryCapcityService.modelTraining(queryParam); - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, carryCapacityDataVO, methodDescribe); - } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/queryCarryCapacityQData") @@ -72,7 +64,7 @@ public class CarryCapacityController extends BaseController { @ApiImplicitParam(name = "queryParam", value = "查询参数", required = true) public HttpResult queryCarryCapacityQData(@RequestBody @Validated CarryCapacityQueryDataParam queryParam) { String methodDescribe = getMethodDescribe("queryCarryCapacityQData"); - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, carryCapcityService.queryCarryCapacityQData(queryParam), methodDescribe); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, carryCapcityService.queryCarryCapacityqData(queryParam), methodDescribe); } @OperateInfo(info = LogEnum.BUSINESS_COMMON) @@ -81,7 +73,7 @@ public class CarryCapacityController extends BaseController { @ApiImplicitParam(name = "queryParam", value = "查询参数", required = true) public HttpResult queryCarryCapacityIData(@RequestBody @Validated CarryCapacityQueryDataParam queryParam) { String methodDescribe = getMethodDescribe("queryCarryCapacityIData"); - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, carryCapcityService.queryCarryCapacityIData(queryParam), methodDescribe); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, carryCapcityService.queryCarryCapacityiData(queryParam), methodDescribe); } @OperateInfo(info = LogEnum.BUSINESS_COMMON) diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/CarryCapacityService.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/CarryCapacityService.java index b18073b16..4721d2e42 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/CarryCapacityService.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/CarryCapacityService.java @@ -21,9 +21,9 @@ public interface CarryCapacityService { CarryCapacityDataVO queryCarryCapacityData(CarryCapacityQueryDataParam queryParam); - CarryCapacityDataQVO queryCarryCapacityQData(CarryCapacityQueryDataParam queryParam); + CarryCapacityDataQVO queryCarryCapacityqData(CarryCapacityQueryDataParam queryParam); - CarryCapacityDataIVO queryCarryCapacityIData(CarryCapacityQueryDataParam queryParam); + CarryCapacityDataIVO queryCarryCapacityiData(CarryCapacityQueryDataParam queryParam); CarryCapacityDResultVO carryCapacityCal(CarryCapacityCalParam calParam); @@ -31,7 +31,6 @@ public interface CarryCapacityService { boolean uploadExcel(ExcelDataParam excelDataParam) throws Exception; - CarryCapacityDataVO modelTraining(CarryCapacityQueryDataParam queryParam); CarryCapacityDResultVO carryCapacityEvaluate(CarryCapacityEvaluateParam calParam); } diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityDevicePOServiceImpl.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityDevicePOServiceImpl.java index 19b177dba..f00738106 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityDevicePOServiceImpl.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityDevicePOServiceImpl.java @@ -1,10 +1,17 @@ package com.njcn.advance.service.carrycapacity.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.advance.enums.AdvanceResponseEnum; import com.njcn.advance.mapper.carrycapacity.CarryCapacityDevicePOMapper; import com.njcn.advance.pojo.carrycapacity.param.CarryCapacityDeviceParam; +import com.njcn.advance.pojo.carrycapacity.param.CarryCapacityUserParam; import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityDevicePO; +import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityUserPO; import com.njcn.advance.service.carrycapacity.CarryCapacityDevicePOService; +import com.njcn.common.pojo.enums.common.DataStateEnum; +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; @@ -23,6 +30,10 @@ public class CarryCapacityDevicePOServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + //条件组合:where state = 1 and name = ? + lambdaQueryWrapper.eq(CarryCapacityDevicePO::getUserId,carryCapacityDeviceParam.getUserId()).eq(CarryCapacityDevicePO::getDevName, carryCapacityDeviceParam.getDevName()); + + //and id <> ? + if (isUpdate) { + if (carryCapacityDeviceParam instanceof CarryCapacityDeviceParam.CarryCapacityDeviceUpdateParam) { + lambdaQueryWrapper.ne(CarryCapacityDevicePO::getDevId, ((CarryCapacityDeviceParam.CarryCapacityDeviceUpdateParam) carryCapacityDeviceParam).getDevId()); + } + } + + //若存在条件数据抛出异常 + int count = this.getBaseMapper().selectCount(lambdaQueryWrapper); + if (count > 0) { + throw new BusinessException("干扰源设备名称已存在"); + } + } } diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityResultPOServiceImpl.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityResultPOServiceImpl.java index 9fc85ff0c..528910c7c 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityResultPOServiceImpl.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityResultPOServiceImpl.java @@ -56,8 +56,8 @@ public class CarryCapacityResultPOServiceImpl extends ServiceImpl collect1 = Arrays.stream(split).sequential().map(userId -> { - CarryCapacityUserPO carryCapacityUserPO = carryCapacityUserPOService.queyDetailUserById(userId); - return carryCapacityUserPO.getUserName(); + CarryCapacityUserPO carryCapacityUser = carryCapacityUserPOService.queyDetailUserById(userId); + return carryCapacityUser.getUserName(); }).collect(Collectors.toList()); vo.setUserName(String.join(",", collect1)); if (ObjectUtils.isNotEmpty(temp.getIResultList()) ){ diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityServiceImpl.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityServiceImpl.java index a7174d212..8c608b3b4 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityServiceImpl.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityServiceImpl.java @@ -47,7 +47,6 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.Resource; import java.io.InputStream; import java.time.LocalDate; import java.time.LocalTime; @@ -74,16 +73,12 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { private final LineFeignClient lineFeignClient; private final DeviceTreeClient deviceTreeClient; - @Resource - private DataHarmPowerQMapper dataHarmPowerQMapper; + private final DataHarmPowerQMapper dataHarmPowerqMapper; - @Resource - private DataHarmPowerPMapper dataHarmPowerPMapper; - @Resource - private DataVMapper dataVMapper; + private final DataHarmPowerPMapper dataHarmPowerpMapper; + private final DataVMapper datavMapper; - @Resource - private DataIMapper dataIMapper; + private final DataIMapper dataiMapper; private final CarryCapacityStrategyPOService carryCapacityStrategyPOService; private final CarryCapacityDataPOService carryCapacityDataPOService; @@ -101,23 +96,19 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { public CarryCapacityDataVO queryCarryCapacityData(CarryCapacityQueryDataParam queryParam) { //前一周数据 - List dataHarmPowerPList = new ArrayList<>(); - List dataHarmPowerQList = new ArrayList<>(); - List dataIList = new ArrayList<>(); + List dataHarmPowerpList; + List dataHarmPowerqList; //前2周的数据 - List dataHarmPowerP2List = new ArrayList<>(); - List dataHarmPowerQ2List = new ArrayList<>(); - List dataHarmPowerU2List = new ArrayList<>(); + List dataHarmPowerP2List; + List dataHarmPowerQ2List; + List dataHarmPowerU2List ; CarryCapacityDataVO carryCapacityDataVO = new CarryCapacityDataVO(); String lineId = queryParam.getLineId(); LineDetailDataVO data = lineFeignClient.getLineDetailData(lineId).getData(); // //时间间隔 Integer timeInterval = data.getTimeInterval(); -// Integer timeInterval =10; - //根据时间间隔算出最低数据量 7天*6小时*60分钟*3项*90%/时间间隔 - int minDataNum = 7 * 6 * 60 * 3 * 90 / (100 * timeInterval); -// int minDataNum = 0; + LocalDate startDate = queryParam.getStartTime(); LocalDate endDate = queryParam.getEndTime(); //前2周的时间 @@ -130,12 +121,12 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { String endTime = LocalDateTimeUtil.format(queryParam.getEndTime(), formatter) + " 23:59:00"; //先重redis读取数据,无数据,查看是否存在文件,不存在文件查数据库,数据校验补通过上传文件 - dataHarmPowerPList = (List) redisUtil.getObjectByKey(lineId + "#" + LocalDateTimeUtil.format(startDate, formatter) + "#" + LocalDateTimeUtil.format(endDate, formatter) + "#" + "P"); + dataHarmPowerpList = (List) redisUtil.getObjectByKey(lineId + "#" + LocalDateTimeUtil.format(startDate, formatter) + "#" + LocalDateTimeUtil.format(endDate, formatter) + "#" + "P"); dataHarmPowerP2List = (List) redisUtil.getObjectByKey(lineId + "#" + LocalDateTimeUtil.format(startDate2, formatter) + "#" + LocalDateTimeUtil.format(endDate2, formatter) + "#" + "P"); dataHarmPowerQ2List = (List) redisUtil.getObjectByKey(lineId + "#" + LocalDateTimeUtil.format(startDate2, formatter) + "#" + LocalDateTimeUtil.format(endDate2, formatter) + "#" + "Q"); dataHarmPowerU2List = (List) redisUtil.getObjectByKey(lineId + "#" + LocalDateTimeUtil.format(startDate2, formatter) + "#" + LocalDateTimeUtil.format(endDate2, formatter) + "#" + "U"); - if (CollectionUtil.isEmpty(dataHarmPowerPList) || + if (CollectionUtil.isEmpty(dataHarmPowerpList) || CollectionUtil.isEmpty(dataHarmPowerP2List) || CollectionUtil.isEmpty(dataHarmPowerQ2List) || CollectionUtil.isEmpty(dataHarmPowerU2List)) { @@ -145,10 +136,8 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { if (Objects.nonNull(one)) { //todo 调用查询文件 InputStream fileStream = fileStorageUtil.getFileStream(one.getDateList()); - ExcelDataDTO excelDataDTO = ParsingFile(one.getStartTime(), one.getEndTime(), fileStream); - dataHarmPowerPList = excelDataDTO.getDataHarmPowerPList(); - dataHarmPowerQList = excelDataDTO.getDataHarmPowerQList(); - dataIList = excelDataDTO.getDataIList(); + ExcelDataDTO excelDataDTO = parsingFile(one.getStartTime(), one.getEndTime(), fileStream); + dataHarmPowerpList = excelDataDTO.getDataHarmPowerPList(); dataHarmPowerP2List = excelDataDTO.getDataHarmPowerP2List(); dataHarmPowerQ2List = excelDataDTO.getDataHarmPowerQ2List(); dataHarmPowerU2List = excelDataDTO.getDataHarmPowerU2List(); @@ -158,44 +147,44 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { /* 近一周的数据包括电流,电压,有功功率,无功功率,数据完整性校验就取有功功率一组数据校验,因为,要有都有要没有都没有,数据查询按时间间隔和tag分组, 缺失布置3.1415926,后边更具3.1415926个数来判断数据完整性,及进行数据补充*/ //有功功率 - String SqlP1 = "select mean(p)*1000 as value from data_harmpower_p where value_type='CP95' and phasic_type!='T' and line_id='" + lineId + + String sqlP1 = "select mean(p)*1000 as value from data_harmpower_p where value_type='CP95' and phasic_type!='T' and line_id='" + lineId + "' and time >= '" + startTime + "'and time <= '" + endTime + "'" + "group by time(" + timeInterval + "m) ,* fill(0.0031415926)" + InfluxDbSqlConstant.TZ; - dataHarmPowerPList = dataHarmPowerPMapper.getSqlResult(SqlP1); + dataHarmPowerpList = dataHarmPowerpMapper.getSqlResult(sqlP1); //数据校验 - if (CollectionUtil.isEmpty(dataHarmPowerPList)) { + if (CollectionUtil.isEmpty(dataHarmPowerpList)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } else { - if (!checkData(dataHarmPowerPList, startDate, endDate, timeInterval)) { + if (checkData(dataHarmPowerpList, startDate, endDate, timeInterval)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } } //数据缺失填补 - linearInterpolation(dataHarmPowerPList); + linearInterpolation(dataHarmPowerpList); // redisUtil.saveByKey(lineId+"#"+LocalDateTimeUtil.format(startDate, formatter)+"#"+LocalDateTimeUtil.format(endDate, formatter)+"#"+"P", // dataHarmPowerPList); //无功功率 - String SqlQ1 = "select mean(q)*1000 as value from data_harmpower_q where value_type='CP95' and phasic_type!='T' and line_id='" + lineId + + String sqlQ1 = "select mean(q)*1000 as value from data_harmpower_q where value_type='CP95' and phasic_type!='T' and line_id='" + lineId + "' and time >= '" + startTime + "'and time <= '" + endTime + "'" + "group by time(" + timeInterval + "m) ,* fill(0.0031415926)" + InfluxDbSqlConstant.TZ; - dataHarmPowerQList = dataHarmPowerQMapper.getSqlResult(SqlQ1); + dataHarmPowerqList = dataHarmPowerqMapper.getSqlResult(sqlQ1); //数据缺失填补 //数据校验 - if (CollectionUtil.isEmpty(dataHarmPowerQList)) { + if (CollectionUtil.isEmpty(dataHarmPowerqList)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } else { - if (!checkData(dataHarmPowerQList, startDate, endDate, timeInterval)) { + if (checkData(dataHarmPowerqList, startDate, endDate, timeInterval)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } } - linearInterpolation(dataHarmPowerQList); + linearInterpolation(dataHarmPowerqList); // redisUtil.saveByKey(lineId+"#"+LocalDateTimeUtil.format(startDate, formatter)+"#"+LocalDateTimeUtil.format(endDate, formatter)+"#"+"Q", -// dataHarmPowerQList); +// dataHarmPowerqList); //前2周的数据用于计算首端电流模型参数 @@ -206,15 +195,15 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { .plusWeeks(-1) , formatter) + " 23:59:00"; - String SqlP2 = "select mean(p)*1000 as value from data_harmpower_p where value_type='CP95' and phasic_type!='T' and line_id='" + lineId + + String sqlP2 = "select mean(p)*1000 as value from data_harmpower_p where value_type='CP95' and phasic_type!='T' and line_id='" + lineId + "' and time >= '" + forwardStartTime + "'and time <= '" + forwardEndTime + "'" + "group by time(" + timeInterval + "m) ,* fill(0.0031415926)" + InfluxDbSqlConstant.TZ; - dataHarmPowerP2List = dataHarmPowerPMapper.getSqlResult(SqlP2); + dataHarmPowerP2List = dataHarmPowerpMapper.getSqlResult(sqlP2); //数据校验 if (CollectionUtil.isEmpty(dataHarmPowerP2List)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } else { - if (!checkData(dataHarmPowerP2List, startDate2, endDate2, timeInterval)) { + if (checkData(dataHarmPowerP2List, startDate2, endDate2, timeInterval)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } @@ -225,16 +214,16 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { //无功功率 - String SqlQ2 = "select mean(q)*1000 as value from data_harmpower_q where value_type='CP95' and phasic_type!='T' and line_id='" + lineId + + String sqlQ2 = "select mean(q)*1000 as value from data_harmpower_q where value_type='CP95' and phasic_type!='T' and line_id='" + lineId + "' and time >= '" + forwardStartTime + "'and time <= '" + forwardEndTime + "'" + "group by time(" + timeInterval + "m) ,* fill(0.0031415926)" + InfluxDbSqlConstant.TZ; - dataHarmPowerQ2List = dataHarmPowerQMapper.getSqlResult(SqlQ2); + dataHarmPowerQ2List = dataHarmPowerqMapper.getSqlResult(sqlQ2); //数据校验 //数据校验 if (CollectionUtil.isEmpty(dataHarmPowerQ2List)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } else { - if (!checkData(dataHarmPowerQ2List, startDate2, endDate2, timeInterval)) { + if (checkData(dataHarmPowerQ2List, startDate2, endDate2, timeInterval)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } @@ -245,16 +234,16 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { //电压 - String SqlU2 = "select mean(rms)*1000 as value from data_v where value_type='CP95' and phasic_type!='T' and line_id='" + lineId + + String sqlU2 = "select mean(rms)*1000 as value from data_v where value_type='CP95' and phasic_type!='T' and line_id='" + lineId + "' and time >= '" + forwardStartTime + "'and time <= '" + forwardEndTime + "'" + "group by time(" + timeInterval + "m) ,* fill(0.0031415926)" + InfluxDbSqlConstant.TZ; - dataHarmPowerU2List = dataVMapper.getSqlResult(SqlU2); + dataHarmPowerU2List = datavMapper.getSqlResult(sqlU2); //数据校验 //数据校验 if (CollectionUtil.isEmpty(dataHarmPowerU2List)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } else { - if (!checkData(dataHarmPowerU2List, startDate2, endDate2, timeInterval)) { + if (checkData(dataHarmPowerU2List, startDate2, endDate2, timeInterval)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } @@ -262,7 +251,7 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { //数据缺失填补 linearInterpolation(dataHarmPowerU2List); redisUtil.saveByKey(lineId + "#" + LocalDateTimeUtil.format(startDate, formatter) + "#" + LocalDateTimeUtil.format(endDate, formatter) + "#" + "P", - dataHarmPowerPList); + dataHarmPowerpList); redisUtil.saveByKey(lineId + "#" + LocalDateTimeUtil.format(startDate2, formatter) + "#" + LocalDateTimeUtil.format(endDate2, formatter) + "#" + "P", dataHarmPowerP2List); redisUtil.saveByKey(lineId + "#" + LocalDateTimeUtil.format(startDate2, formatter) + "#" + LocalDateTimeUtil.format(endDate2, formatter) + "#" + "Q", @@ -275,38 +264,38 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { } - carryCapacityDataVO.setData(dataHarmPowerPList); + carryCapacityDataVO.setData(dataHarmPowerpList); List phaseType = Stream.of("A", "B", "C").collect(Collectors.toList()); Map results = new HashMap<>(4); //计算最小Cp95值用于评估 - List finalDataHarmPowerPList = dataHarmPowerPList; - phaseType.stream().forEach(phase -> { - List listP = finalDataHarmPowerPList.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0))) + List finalDataHarmPowerpList = dataHarmPowerpList; + phaseType.forEach(phase -> { + List listP = finalDataHarmPowerpList.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0))) .filter(temp -> temp.getValue() != DEFAULTVALUE && Objects.nonNull(temp.getValue())) .filter(temp -> Objects.equals(temp.getPhaseType(), phase)) .map(CarryCapcityData::getValue) .collect(Collectors.toList()); - double P_βmin = CZNLPG.calculatePercentile(listP, 1); - results.put(phase, P_βmin); + double pMin = CZNLPG.calculatePercentile(listP, 1); + results.put(phase, pMin); }); carryCapacityDataVO.setP_βminMap(results); //用前2周的数据计算C,a,b - Map stringMap = calUParam(dataHarmPowerP2List, dataHarmPowerQ2List, dataHarmPowerU2List); + Map stringMap = caluParam(dataHarmPowerP2List, dataHarmPowerQ2List, dataHarmPowerU2List); carryCapacityDataVO.setStringMap(stringMap); return carryCapacityDataVO; } @Override - public CarryCapacityDataQVO queryCarryCapacityQData(CarryCapacityQueryDataParam queryParam) { + public CarryCapacityDataQVO queryCarryCapacityqData(CarryCapacityQueryDataParam queryParam) { - CarryCapacityDataQVO carryCapacityDataQVO = new CarryCapacityDataQVO(); + CarryCapacityDataQVO carryCapacityDataqVO = new CarryCapacityDataQVO(); String lineId = queryParam.getLineId(); LineDetailDataVO data = lineFeignClient.getLineDetailData(lineId).getData(); //时间间隔 @@ -314,66 +303,62 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { // Integer timeInterval =10; //根据时间间隔算出最低数据量 7天*6小时*60分钟*3项*90%/时间间隔 - int minDataNum = 7 * 6 * 60 * 3 * 90 / (100 * timeInterval); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate startDate = queryParam.getStartTime(); LocalDate endDate = queryParam.getEndTime(); String startTime = LocalDateTimeUtil.format(queryParam.getStartTime(), formatter) + " 00:00:00"; String endTime = LocalDateTimeUtil.format(queryParam.getEndTime(), formatter) + " 23:59:00"; - List dataHarmPowerQList = new ArrayList<>(); - dataHarmPowerQList = (List) redisUtil.getObjectByKey(lineId + "#" + LocalDateTimeUtil.format(startDate, formatter) + "#" + LocalDateTimeUtil.format(endDate, formatter) + "#" + "Q"); - if (CollectionUtil.isEmpty(dataHarmPowerQList)) { + List dataHarmPowerqList = new ArrayList<>(); + dataHarmPowerqList = (List) redisUtil.getObjectByKey(lineId + "#" + LocalDateTimeUtil.format(startDate, formatter) + "#" + LocalDateTimeUtil.format(endDate, formatter) + "#" + "Q"); + if (CollectionUtil.isEmpty(dataHarmPowerqList)) { //无功功率 - String SqlQ1 = "select mean(q)*1000 as value from data_harmpower_q where value_type='CP95' and phasic_type!='T' and line_id='" + lineId + + String sqlQ1 = "select mean(q)*1000 as value from data_harmpower_q where value_type='CP95' and phasic_type!='T' and line_id='" + lineId + "' and time >= '" + startTime + "'and time <= '" + endTime + "'" + "group by time(" + timeInterval + "m) ,* fill(0.0031415926)" + InfluxDbSqlConstant.TZ; - dataHarmPowerQList = dataHarmPowerQMapper.getSqlResult(SqlQ1); - if (CollectionUtil.isEmpty(dataHarmPowerQList)) { + dataHarmPowerqList = dataHarmPowerqMapper.getSqlResult(sqlQ1); + if (CollectionUtil.isEmpty(dataHarmPowerqList)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } else { - if (!checkData(dataHarmPowerQList, startDate, endDate, timeInterval)) { + if (checkData(dataHarmPowerqList, startDate, endDate, timeInterval)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } } //数据缺失填补 - linearInterpolation(dataHarmPowerQList); + linearInterpolation(dataHarmPowerqList); redisUtil.saveByKey(lineId + "#" + LocalDateTimeUtil.format(startDate, formatter) + "#" + LocalDateTimeUtil.format(endDate, formatter) + "#" + "Q", - dataHarmPowerQList); + dataHarmPowerqList); } - carryCapacityDataQVO.setData(dataHarmPowerQList); + carryCapacityDataqVO.setData(dataHarmPowerqList); List phaseType = Stream.of("A", "B", "C").collect(Collectors.toList()); Map results = new HashMap<>(4); //计算最小Cp95值用于评估 - List finalDataHarmPowerQList = dataHarmPowerQList; - phaseType.stream().forEach(phase -> { - List listQ = finalDataHarmPowerQList.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0))) + List finalDataHarmPowerqList = dataHarmPowerqList; + phaseType.forEach(phase -> { + List listQ = finalDataHarmPowerqList.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0))) .filter(temp -> temp.getValue() != DEFAULTVALUE && Objects.nonNull(temp.getValue())) .filter(temp -> Objects.equals(temp.getPhaseType(), phase)) .map(CarryCapcityData::getValue) .collect(Collectors.toList()); - double Q_βmin = CZNLPG.calculatePercentile(listQ, 1); - results.put(phase, Q_βmin); + double qMin = CZNLPG.calculatePercentile(listQ, 1); + results.put(phase, qMin); }); - carryCapacityDataQVO.setQ_βminMap(results); - return carryCapacityDataQVO; + carryCapacityDataqVO.setQ_βminMap(results); + return carryCapacityDataqVO; } @Override - public CarryCapacityDataIVO queryCarryCapacityIData(CarryCapacityQueryDataParam queryParam) { - CarryCapacityDataIVO carryCapacityDataIVO = new CarryCapacityDataIVO(); + public CarryCapacityDataIVO queryCarryCapacityiData(CarryCapacityQueryDataParam queryParam) { + CarryCapacityDataIVO carryCapacityDataiVO = new CarryCapacityDataIVO(); String lineId = queryParam.getLineId(); LineDetailDataVO data = lineFeignClient.getLineDetailData(lineId).getData(); //时间间隔 Integer timeInterval = data.getTimeInterval(); -// Integer timeInterval =10; - //根据时间间隔算出最低数据量 7天*6小时*60分钟*3项*90%/时间间隔 - int minDataNum = 7 * 6 * 60 * 3 * 90 / (100 * timeInterval); LocalDate startDate = queryParam.getStartTime(); LocalDate endDate = queryParam.getEndTime(); @@ -397,17 +382,17 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { } stringBuilder2.append("line_id='").append(lineId).append("' and ").append(InfluxDbSqlConstant.TIME + " >= '").append(startTime).append("' and ").append(InfluxDbSqlConstant.TIME).append(" <= '").append(endTime).append("' group by time(").append(timeInterval).append("m),* fill(3.1415926) ").append(InfluxDbSqlConstant.TZ); String sqlI1 = "select " + stringBuilder1 + " from " + InfluxDBTableConstant.DATA_I + " where value_type='CP95' and phasic_type!='T' and " + stringBuilder2; - dataI = dataIMapper.getSqlResult(sqlI1); + dataI = dataiMapper.getSqlResult(sqlI1); if (CollectionUtil.isEmpty(dataI)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } else { - List i_list = dataI.stream().map(temp -> { + List iList = dataI.stream().map(temp -> { CarryCapcityData carryCapcityData = new CarryCapcityData(); BeanUtils.copyProperties(temp, carryCapcityData); carryCapcityData.setValue(temp.getI2()); return carryCapcityData; }).collect(Collectors.toList()); - if (!checkData(i_list, startDate, endDate, timeInterval)) { + if (checkData(iList, startDate, endDate, timeInterval)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } @@ -419,148 +404,141 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { } - List i_list = dataI.stream().map(temp -> { + List iList = dataI.stream().map(temp -> { CarryCapcityData carryCapcityData = new CarryCapcityData(); BeanUtils.copyProperties(temp, carryCapcityData); carryCapcityData.setValue(Utils.getAttributeValueByPropertyName(temp, "i" + queryParam.getTime())); return carryCapcityData; }).collect(Collectors.toList()); - carryCapacityDataIVO.setData(i_list); + carryCapacityDataiVO.setData(iList); - List I_βmax = new ArrayList<>(); + List iMaxList = new ArrayList<>(); List integerList = Stream.of(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25).collect(Collectors.toList()); List phaseType = Stream.of("A", "B", "C").collect(Collectors.toList()); List finalDataI = dataI; - integerList.stream().forEach(temp -> { - List iList = new ArrayList<>(); - phaseType.stream().forEach(phase -> { + integerList.forEach(temp -> { + List tempList = new ArrayList<>(); + phaseType.forEach(phase -> { - List tempDataIList = finalDataI.stream().filter(temp1 -> Utils.isTimeInRange(temp1.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0))) + List tempDataiList = finalDataI.stream().filter(temp1 -> Utils.isTimeInRange(temp1.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0))) .filter(temp1 -> temp1.getPhaseType().equals(phase)) .collect(Collectors.toList()); - List attributeValueByPropertyName = Utils.getAttributeValueByPropertyName(tempDataIList, "i" + temp); - double I_cp95 = CZNLPG.calculatePercentile(attributeValueByPropertyName, 0); - iList.add(I_cp95); + List attributeValueByPropertyName = Utils.getAttributeValueByPropertyName(tempDataiList, "i" + temp); + double iCp95 = CZNLPG.calculatePercentile(attributeValueByPropertyName, 0); + tempList.add(iCp95); }); //取uList最大值 - double i_Max = iList.stream().mapToDouble(Double::doubleValue) + double iMax = tempList.stream().mapToDouble(Double::doubleValue) .max() .getAsDouble(); - I_βmax.add(i_Max); + iMaxList.add(iMax); }); - carryCapacityDataIVO.setI_βmax(I_βmax); + carryCapacityDataiVO.setI_βmax(iMaxList); - return carryCapacityDataIVO; + return carryCapacityDataiVO; } @Override @Transactional(rollbackFor = Exception.class) public CarryCapacityDResultVO carryCapacityCal(CarryCapacityCalParam calParam) { - CarryCapacityDResultVO carryCapacityDResultVO = new CarryCapacityDResultVO(); + CarryCapacityDResultVO carryCapacitydResultVO = new CarryCapacityDResultVO(); String scale = calParam.getScale(); String scaleValue = dicDataFeignClient.getDicDataById(scale).getData().getValue(); //todo S_T查询监测点的容量 - Double S_T = calParam.getS_T(); - Double S_pv = calParam.getS_pv(); - Double P_pv = calParam.getS_pv() * Double.valueOf(CarryingCapacityEnum.K.getValue()); + Double sT = calParam.getS_T(); + Double sPv = calParam.getS_pv(); + Double pPv = calParam.getS_pv() * Double.valueOf(CarryingCapacityEnum.K.getValue()); List phaseType = Stream.of("A", "B", "C").collect(Collectors.toList()); List uList = new ArrayList<>(); - List BtList = new ArrayList<>(); - List PF_TList = new ArrayList<>(); + List pftList = new ArrayList<>(); for (String phase : phaseType) { - Double P_βmin = calParam.getP_βminMap().get(phase); - Double Q_βmin = calParam.getQ_βminMap().get(phase); + Double pMin = calParam.getP_βminMap().get(phase); + Double qMin = calParam.getQ_βminMap().get(phase); Double[] res = calParam.getStringMap().get(phase); - double Bt = CZNLPG.calculateB(P_βmin, Q_βmin, Double.valueOf(CarryingCapacityEnum.K.getValue()), S_T, S_pv, P_pv); - BtList.add(Bt); - double PF_T = CZNLPG.calculatePF_T(P_βmin, Q_βmin, Double.valueOf(CarryingCapacityEnum.K.getValue()), S_pv); - PF_TList.add(PF_T); - double U = CZNLPG.calculateU(res[0], res[1], res[2], P_βmin, Double.valueOf(CarryingCapacityEnum.K.getValue()), Q_βmin, S_pv, Double.valueOf(scaleValue)); - uList.add(U); +// double bt = CZNLPG.calculateB(pMin, qMin, Double.parseDouble(CarryingCapacityEnum.K.getValue()), sT, sPv, pPv); + double pft = CZNLPG.calculatePF_T(pMin, qMin, Double.parseDouble(CarryingCapacityEnum.K.getValue()), sPv); + pftList.add(pft); + double u = CZNLPG.calculateU(res[0], res[1], res[2], pMin, Double.parseDouble(CarryingCapacityEnum.K.getValue()), qMin, sPv, Double.parseDouble(scaleValue)); + uList.add(u); } //取uList最大值 - double U_T_Max = uList.stream().mapToDouble(Double::doubleValue) + double utMax = uList.stream().mapToDouble(Double::doubleValue) .max() .getAsDouble(); - double Bt_Max = BtList.stream().mapToDouble(Double::doubleValue) - .max() - .getAsDouble(); - double PF_T_Max = PF_TList.stream().mapToDouble(Double::doubleValue) - .max() - .getAsDouble(); - Integer uTLevel = CZNLPG.evaluateVoltageLevel(U_T_Max); - carryCapacityDResultVO.setUTLevel(uTLevel); - Integer pfTLevel = CZNLPG.evaluatePowerFactorLevel(PF_T_Max); - carryCapacityDResultVO.setPfTLevel(pfTLevel); + double pftMax = pftList.stream().mapToDouble(Double::doubleValue) + .max() + .getAsDouble(); + Integer utLevel = CZNLPG.evaluateVoltageLevel(utMax); + carryCapacitydResultVO.setUTLevel(utLevel); - Integer bTLevel = CZNLPG.evaluateEquivalentLoadRateLevel(PF_T_Max); - carryCapacityDResultVO.setBTLevel(bTLevel); + Integer pftLevel = CZNLPG.evaluatePowerFactorLevel(pftMax); + carryCapacitydResultVO.setPfTLevel(pftLevel); + + Integer btLevel = CZNLPG.evaluateEquivalentLoadRateLevel(pftMax); + carryCapacitydResultVO.setBTLevel(btLevel); //谐波电流幅值判断 //获取限值 Overlimit overlimit = lineFeignClient.getOverLimitData(calParam.getLineId()).getData(); //各次谐波电流 均小于国标限值 返回1 存在某次谐波电流幅值 超出限值,但在1.25倍限值内 返回2 存在某次谐波电流幅值超出限值1.25倍以上 返回3 存在多次谐波电流幅值均超出限值1.25倍以上 返回4 //i_count1小于国标限值的个数,i_count2>=国标限值<=1.25倍的国标限值,i_count3>1.25倍的国标限值 - int i_count1 = 0, i_count2 = 0, i_count3 = 0; + int iCount1 = 0, iCount2 = 0, iCount3 = 0; for (int i = 0; i < calParam.getI_βmax().size(); i++) { - double I_TM = CZNLPG.calculateITm(calParam.getI_βmax().get(i), Double.valueOf(CarryingCapacityEnum.K.getValue()), - Double.valueOf(scaleValue), S_pv, Double.valueOf(CarryingCapacityEnum.getValueByCode("K_H_" + (i + 2))), - Double.valueOf(CarryingCapacityEnum.getValueByCode("I_INV_" + (i + 2)))); + double itm = CZNLPG.calculateITm(calParam.getI_βmax().get(i), Double.parseDouble(CarryingCapacityEnum.K.getValue()), + Double.parseDouble(scaleValue), sPv, Double.parseDouble(Objects.requireNonNull(CarryingCapacityEnum.getValueByCode("K_H_" + (i + 2)))), + Double.parseDouble(Objects.requireNonNull(CarryingCapacityEnum.getValueByCode("I_INV_" + (i + 2))))); double getUharm = PubUtils.getValueByMethod(overlimit, "getIharm", i + 2); - if (I_TM < getUharm) { - i_count1++; - } else if (I_TM >= getUharm && I_TM <= 1.25 * getUharm) { - i_count2++; - } else if (I_TM > 1.25 * getUharm) { - i_count3++; + if (itm < getUharm) { + iCount1++; + } else if (itm >= getUharm && itm <= 1.25 * getUharm) { + iCount2++; + } else if (itm > 1.25 * getUharm) { + iCount3++; } } - Integer iLevel = 1; - if (i_count3 > 1) { + int iLevel = 1; + if (iCount3 > 1) { iLevel = 4; - } else if (i_count3 == 1) { + } else if (iCount3 == 1) { iLevel = 3; - } else if (i_count2 == 1) { + } else if (iCount2 == 1) { iLevel = 2; - } else { - iLevel = 1; } - carryCapacityDResultVO.setILevel(iLevel); + carryCapacitydResultVO.setILevel(iLevel); //统计安全,3级预警,2级预警1级预警个数 - List list = Stream.of(uTLevel, pfTLevel, bTLevel, iLevel).collect(Collectors.toList()); - int safe_count = 0, warn_count3 = 0, warn_count2 = 0, warn_count1 = 0; - safe_count = (int) list.stream() + List list = Stream.of(utLevel, pftLevel, btLevel, iLevel).collect(Collectors.toList()); + int safeCount, warnCount3 , warnCount2 , warnCount1 ; + safeCount = (int) list.stream() .filter(temp -> temp == 1) .count(); - warn_count3 = (int) list.stream() + warnCount3 = (int) list.stream() .filter(temp -> temp == 2) .count(); - warn_count2 = (int) list.stream() + warnCount2 = (int) list.stream() .filter(temp -> temp == 3) .count(); - warn_count1 = (int) list.stream() + warnCount1 = (int) list.stream() .filter(temp -> temp == 4) .count(); List carryCapacityStrategyVOList = carryCapacityStrategyPOService.queyDetail(); - carryCapacityDResultVO.setReslutLevel(5); + carryCapacitydResultVO.setReslutLevel(5); //1-安全,2-III级预警,3-II级预警,4-I 级预警,依次执行策略看是否符合 for (int i = 1; i < 5; i++) { - int finalI = i; - boolean b = StrategyReslut(carryCapacityStrategyVOList, i, safe_count, warn_count1, warn_count2, warn_count3); + boolean b = strategyReslut(carryCapacityStrategyVOList, i, safeCount, warnCount1, warnCount2, warnCount3); if (b) { - carryCapacityDResultVO.setReslutLevel(i); + carryCapacitydResultVO.setReslutLevel(i); break; } } - CarryCapacityResultPO carryCapacityResultPO = new CarryCapacityResultPO(); + CarryCapacityResultPO carryCapacityResult = new CarryCapacityResultPO(); List list1 = carryCapacityResultPOService.lambdaQuery().eq(CarryCapacityResultPO::getLineId, calParam.getLineId()) .eq(CarryCapacityResultPO::getUserId, calParam.getUserId()) .eq(CarryCapacityResultPO::getStartTime, calParam.getStartTime()) @@ -571,46 +549,37 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { } - carryCapacityResultPO.setLineId(calParam.getLineId()); - carryCapacityResultPO.setUserId(calParam.getUserId()); + carryCapacityResult.setLineId(calParam.getLineId()); + carryCapacityResult.setUserId(calParam.getUserId()); // - CarryCapacityUserPO carryCapacityUserPO = carryCapacityUserPOService.queyDetailUserById(calParam.getUserId()); - carryCapacityResultPO.setEvaluateType(carryCapacityUserPO.getUserType()); + CarryCapacityUserPO carryCapacityUser = carryCapacityUserPOService.queyDetailUserById(calParam.getUserId()); + carryCapacityResult.setEvaluateType(carryCapacityUser.getUserType()); - carryCapacityResultPO.setStartTime(calParam.getStartTime()); - carryCapacityResultPO.setEndTime(calParam.getEndTime()); - carryCapacityResultPO.setUTLevel(carryCapacityDResultVO.getUTLevel()); - carryCapacityResultPO.setPfTLevel(carryCapacityDResultVO.getPfTLevel()); - carryCapacityResultPO.setBTLevel(carryCapacityDResultVO.getBTLevel()); - carryCapacityResultPO.setILevel(carryCapacityDResultVO.getILevel()); - carryCapacityResultPO.setReslutLevel(carryCapacityDResultVO.getReslutLevel()); - carryCapacityResultPO.setEvaluateDate(LocalDate.now()); - carryCapacityResultPO.setStatus(1); - carryCapacityResultPOService.save(carryCapacityResultPO); + carryCapacityResult.setStartTime(calParam.getStartTime()); + carryCapacityResult.setEndTime(calParam.getEndTime()); + carryCapacityResult.setUTLevel(carryCapacitydResultVO.getUTLevel()); + carryCapacityResult.setPfTLevel(carryCapacitydResultVO.getPfTLevel()); + carryCapacityResult.setBTLevel(carryCapacitydResultVO.getBTLevel()); + carryCapacityResult.setILevel(carryCapacitydResultVO.getILevel()); + carryCapacityResult.setReslutLevel(carryCapacitydResultVO.getReslutLevel()); + carryCapacityResult.setEvaluateDate(LocalDate.now()); + carryCapacityResult.setStatus(1); + carryCapacityResultPOService.save(carryCapacityResult); - return carryCapacityDResultVO; + return carryCapacitydResultVO; } @Override public List carryCapacityTree() { List data = deviceTreeClient.getTerminalTree().getData(); - data.forEach(temp -> { - temp.getChildren().forEach(temp1 -> { - temp1.getChildren().forEach(temp2 -> { - temp2.getChildren().forEach(temp3 -> { - temp3.getChildren().forEach(temp4 -> { - List collect = temp4.getChildren().stream() - .map(TerminalTree::getChildren).flatMap(Collection::stream) - .map(TerminalTree::getChildren).flatMap(Collection::stream) - .collect(Collectors.toList()); - temp4.setChildren(collect); + data.forEach(temp -> temp.getChildren().forEach(temp1 -> temp1.getChildren().forEach(temp2 -> temp2.getChildren().forEach(temp3 -> temp3.getChildren().forEach(temp4 -> { + List collect = temp4.getChildren().stream() + .map(TerminalTree::getChildren).flatMap(Collection::stream) + .map(TerminalTree::getChildren).flatMap(Collection::stream) + .collect(Collectors.toList()); + temp4.setChildren(collect); - }); - }); - - }); - }); - }); + }))))); return data; } @@ -620,12 +589,9 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { String lineId = excelDataParam.getLineId(); LineDetailDataVO data = lineFeignClient.getLineDetailData(lineId).getData(); -// //时间间隔 + //时间间隔 Integer timeInterval = data.getTimeInterval(); -// Integer timeInterval =10; - //根据时间间隔算出最低数据量 7天*6小时*60分钟*3项*90%/时间间隔 -// int minDataNum = 7*6*60*3*90/(100*timeInterval); - int minDataNum = 0; + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate startDate = LocalDate.parse(excelDataParam.getStartTime(), formatter); @@ -636,243 +602,154 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { //前一周的数据 - ExcelDataDTO excelDataDTO = ParsingFile(startDate, endDate, excelDataParam.getFile().getInputStream()); - List dataHarmPowerPList = excelDataDTO.getDataHarmPowerPList(); - List dataHarmPowerQList = excelDataDTO.getDataHarmPowerQList(); - List dataIList = excelDataDTO.getDataIList(); + ExcelDataDTO excelDataDTO = parsingFile(startDate, endDate, excelDataParam.getFile().getInputStream()); + List dataHarmPowerpList = excelDataDTO.getDataHarmPowerPList(); + List dataHarmPowerqList = excelDataDTO.getDataHarmPowerQList(); + List dataiList = excelDataDTO.getDataIList(); ////前2周的数据 - List dataHarmPowerP2List = excelDataDTO.getDataHarmPowerP2List(); - List dataHarmPowerQ2List = excelDataDTO.getDataHarmPowerQ2List(); - List dataHarmPowerUList = excelDataDTO.getDataHarmPowerU2List(); + List dataHarmPowerp2List = excelDataDTO.getDataHarmPowerP2List(); + List dataHarmPowerq2List = excelDataDTO.getDataHarmPowerQ2List(); + List dataHarmPoweruList = excelDataDTO.getDataHarmPowerU2List(); //数据校验 - if (CollectionUtil.isEmpty(dataHarmPowerPList)) { + if (CollectionUtil.isEmpty(dataHarmPowerpList)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } else { - if (!checkData(dataHarmPowerPList, startDate, endDate, timeInterval)) { + if (checkData(dataHarmPowerpList, startDate, endDate, timeInterval)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } } - linearInterpolation(dataHarmPowerPList); + linearInterpolation(dataHarmPowerpList); //数据校验 - if (CollectionUtil.isEmpty(dataHarmPowerP2List)) { + if (CollectionUtil.isEmpty(dataHarmPowerp2List)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } else { - if (!checkData(dataHarmPowerP2List, startDate2, endDate2, timeInterval)) { + if (checkData(dataHarmPowerp2List, startDate2, endDate2, timeInterval)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } } - linearInterpolation(dataHarmPowerP2List); + linearInterpolation(dataHarmPowerp2List); //数据校验 - if (CollectionUtil.isEmpty(dataHarmPowerQList)) { + if (CollectionUtil.isEmpty(dataHarmPowerqList)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } else { - if (!checkData(dataHarmPowerQList, startDate, endDate, timeInterval)) { + if (checkData(dataHarmPowerqList, startDate, endDate, timeInterval)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } } - linearInterpolation(dataHarmPowerQList); + linearInterpolation(dataHarmPowerqList); //数据校验 - if (CollectionUtil.isEmpty(dataHarmPowerQ2List)) { + if (CollectionUtil.isEmpty(dataHarmPowerq2List)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } else { - if (!checkData(dataHarmPowerQ2List, startDate2, endDate2, timeInterval)) { + if (checkData(dataHarmPowerq2List, startDate2, endDate2, timeInterval)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } } - linearInterpolation(dataHarmPowerQ2List); + linearInterpolation(dataHarmPowerq2List); //数据校验 - if (CollectionUtil.isEmpty(dataHarmPowerUList)) { + if (CollectionUtil.isEmpty(dataHarmPoweruList)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } else { - if (!checkData(dataHarmPowerUList, startDate2, endDate2, timeInterval)) { + if (checkData(dataHarmPoweruList, startDate2, endDate2, timeInterval)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } } - linearInterpolation(dataHarmPowerUList); + linearInterpolation(dataHarmPoweruList); - if (CollectionUtil.isEmpty(dataIList)) { + if (CollectionUtil.isEmpty(dataiList)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } else { - List i_list = dataIList.stream().map(temp -> { + List iList = dataiList.stream().map(temp -> { CarryCapcityData carryCapcityData = new CarryCapcityData(); BeanUtils.copyProperties(temp, carryCapcityData); carryCapcityData.setValue(temp.getI2()); return carryCapcityData; }).collect(Collectors.toList()); - if (!checkData(i_list, startDate, endDate, timeInterval)) { + if (checkData(iList, startDate, endDate, timeInterval)) { throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); } } - linearInterpolationI(dataIList); + linearInterpolationI(dataiList); // 存入redis redisUtil.saveByKey(lineId + "#" + LocalDateTimeUtil.format(startDate, formatter) + "#" + LocalDateTimeUtil.format(endDate, formatter) + "#" + "P", - dataHarmPowerPList); + dataHarmPowerpList); redisUtil.saveByKey(lineId + "#" + LocalDateTimeUtil.format(startDate2, formatter) + "#" + LocalDateTimeUtil.format(endDate2, formatter) + "#" + "P", - dataHarmPowerP2List); + dataHarmPowerp2List); redisUtil.saveByKey(lineId + "#" + LocalDateTimeUtil.format(startDate, formatter) + "#" + LocalDateTimeUtil.format(endDate, formatter) + "#" + "Q", - dataHarmPowerQList); + dataHarmPowerqList); redisUtil.saveByKey(lineId + "#" + LocalDateTimeUtil.format(startDate2, formatter) + "#" + LocalDateTimeUtil.format(endDate2, formatter) + "#" + "Q", - dataHarmPowerQ2List); + dataHarmPowerq2List); redisUtil.saveByKey(lineId + "#" + LocalDateTimeUtil.format(startDate2, formatter) + "#" + LocalDateTimeUtil.format(endDate2, formatter) + "#" + "U", - dataHarmPowerUList); + dataHarmPoweruList); redisUtil.saveByKey(lineId + "#" + LocalDateTimeUtil.format(startDate, formatter) + "#" + LocalDateTimeUtil.format(endDate, formatter) + "#" + "I", - dataIList); + dataiList); //todo 将文件存入文件服务器获取url String filePath = fileStorageUtil.uploadMultipart(excelDataParam.getFile(), OssPath.CARRY_CAPCITY_DATA); // String url = "temp"; - CarryCapacityDataPO carryCapacityDataPO = new CarryCapacityDataPO(lineId, startDate, endDate, filePath); - carryCapacityDataPOService.saveOrUpdateByMultiId(carryCapacityDataPO); + CarryCapacityDataPO carryCapacityData = new CarryCapacityDataPO(lineId, startDate, endDate, filePath); + carryCapacityDataPOService.saveOrUpdateByMultiId(carryCapacityData); return true; } - @Override - public CarryCapacityDataVO modelTraining(CarryCapacityQueryDataParam queryParam) { - CarryCapacityDataVO carryCapacityDataVO = new CarryCapacityDataVO(); - //前2周的数据 - List dataHarmPowerP2List = new ArrayList<>(); - List dataHarmPowerQ2List = new ArrayList<>(); - List dataHarmPowerU2List = new ArrayList<>(); - - String lineId = queryParam.getLineId(); -// LineDetailDataVO data = lineFeignClient.getLineDetailData(lineId).getData(); -// //时间间隔 -// Integer timeInterval = data.getTimeInterval(); - Integer timeInterval = 10; - //根据时间间隔算出最低数据量 7天*6小时*60分钟*3项*90%/时间间隔 -// int minDataNum = 7*6*60*3*90/(100*timeInterval); - int minDataNum = 0; - LocalDate startDate = queryParam.getStartTime(); - LocalDate endDate = queryParam.getEndTime(); - //前2周的时间 - LocalDate startDate2 = startDate.plusWeeks(-1); - LocalDate endDate2 = endDate.plusWeeks(-1); - - - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - String startTime = LocalDateTimeUtil.format(queryParam.getStartTime(), formatter) + " 00:00:00"; - String endTime = LocalDateTimeUtil.format(queryParam.getEndTime(), formatter) + " 23:59:00"; - - - CarryCapacityDataPO one = carryCapacityDataPOService.lambdaQuery().eq(CarryCapacityDataPO::getLineId, lineId) - .eq(CarryCapacityDataPO::getStartTime, startTime) - .eq(CarryCapacityDataPO::getEndTime, endTime).one(); - if (Objects.nonNull(one)) { - //todo 调用查询文件 - - } else { - - //前2周的数据用于计算首端电流模型参数 - String forwardStartTime = LocalDateTimeUtil.format(queryParam.getStartTime() -// .plusWeeks(-1) - , formatter) + " 00:00:00"; - String forwardEndTime = LocalDateTimeUtil.format(queryParam.getEndTime() -// .plusWeeks(-1) - , formatter) + " 23:59:00"; - - String SqlP2 = "select mean(p)*1000 as value from data_harmpower_p where value_type='CP95' and phasic_type!='T' and line_id='" + lineId + - "' and time >= '" + forwardStartTime + "'and time <= '" + forwardEndTime + "'" + "group by time(" + timeInterval + "m) ,* fill(0.0031415926)" + InfluxDbSqlConstant.TZ; - dataHarmPowerP2List = dataHarmPowerPMapper.getSqlResult(SqlP2); - //数据校验 - if (CollectionUtil.isEmpty(dataHarmPowerP2List)) { - throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); - } else { - //数据清洗取近一周的配变每日9时~15时段的负载率数据中概率95%小值所对应时刻的有功功率和无功功率值 - List listP = dataHarmPowerP2List.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0))) - .filter(temp -> temp.getValue() != DEFAULTVALUE && Objects.nonNull(temp.getValue())) - .map(CarryCapcityData::getValue) - .collect(Collectors.toList()); - if (listP.size() < minDataNum) { - - throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND); - } - } - //数据缺失填补 - linearInterpolation(dataHarmPowerP2List); - - - //无功功率 - String SqlQ2 = "select mean(q)*1000 as value from data_harmpower_q where value_type='CP95' and phasic_type!='T' and line_id='" + lineId + - "' and time >= '" + forwardStartTime + "'and time <= '" + forwardEndTime + "'" + "group by time(" + timeInterval + "m) ,* fill(0.0031415926)" + InfluxDbSqlConstant.TZ; - dataHarmPowerQ2List = dataHarmPowerQMapper.getSqlResult(SqlQ2); - //数据校验 - //数据缺失填补 - linearInterpolation(dataHarmPowerQ2List); - //电压 - String SqlU2 = "select mean(rms)*1000 as value from data_v where value_type='CP95' and phasic_type!='T' and line_id='" + lineId + - "' and time >= '" + forwardStartTime + "'and time <= '" + forwardEndTime + "'" + "group by time(" + timeInterval + "m) ,* fill(0.0031415926)" + InfluxDbSqlConstant.TZ; - dataHarmPowerU2List = dataVMapper.getSqlResult(SqlU2); - //数据校验 - - //数据缺失填补 - linearInterpolation(dataHarmPowerU2List); - - } - - //用前2周的数据计算C,a,b - Map stringMap = calUParam(dataHarmPowerP2List, dataHarmPowerQ2List, dataHarmPowerU2List); - carryCapacityDataVO.setStringMap(stringMap); - - return carryCapacityDataVO; - } @Override public CarryCapacityDResultVO carryCapacityEvaluate(CarryCapacityEvaluateParam calParam) { CarryCapacityDResultVO vo = new CarryCapacityDResultVO(); - List carryCapacityIResultList = new ArrayList<>(); + List carryCapacityiResultList = new ArrayList<>(); List devList = calParam.getDevList(); if (CollectionUtil.isEmpty(devList)) { throw new BusinessException(AdvanceResponseEnum.DEVICE_LOST); } String userId = devList.get(0).getUserId(); - CarryCapacityUserPO carryCapacityUserPO = carryCapacityUserPOService.queyDetailUserById(userId); - String userType = carryCapacityUserPO.getUserType(); + CarryCapacityUserPO carryCapacityUser = carryCapacityUserPOService.queyDetailUserById(userId); + String userType = carryCapacityUser.getUserType(); String code = dicDataFeignClient.getDicDataById(userType).getData().getCode(); //用户协议容量 - double sumCapacity = carryCapacityUserPO.getProtocolCapacity(); + double sumCapacity = carryCapacityUser.getProtocolCapacity(); double rate = sumCapacity / calParam.getShortCapacity(); vo.setFirstResult(rate * 100); - CarryCapacityResultPO carryCapacityResultPO = new CarryCapacityResultPO(); - carryCapacityResultPO.setFirstResult(rate * 100); - carryCapacityResultPO.setUserId(userId); - carryCapacityResultPO.setEvaluateDate(LocalDate.now()); - carryCapacityResultPO.setEvaluateType(userType); - carryCapacityResultPO.setStatus(1); - carryCapacityResultPO.setPtType(calParam.getPtType()); - carryCapacityResultPO.setConnectionMode(calParam.getConnectionMode()); - carryCapacityResultPO.setK(calParam.getK()); - carryCapacityResultPO.setUserMode(calParam.getUserMode()); - carryCapacityResultPO.setScale(calParam.getScale()); - carryCapacityResultPO.setShortCapacity(calParam.getShortCapacity()); - carryCapacityResultPO.setDeviceCapacity(calParam.getDeviceCapacity()); + CarryCapacityResultPO carryCapacityResult = new CarryCapacityResultPO(); + carryCapacityResult.setFirstResult(rate * 100); + carryCapacityResult.setUserId(userId); + carryCapacityResult.setEvaluateDate(LocalDate.now()); + carryCapacityResult.setEvaluateType(userType); + carryCapacityResult.setStatus(1); + carryCapacityResult.setPtType(calParam.getPtType()); + carryCapacityResult.setConnectionMode(calParam.getConnectionMode()); + carryCapacityResult.setK(calParam.getK()); + carryCapacityResult.setUserMode(calParam.getUserMode()); + carryCapacityResult.setScale(calParam.getScale()); + carryCapacityResult.setShortCapacity(calParam.getShortCapacity()); + carryCapacityResult.setDeviceCapacity(calParam.getDeviceCapacity()); - carryCapacityResultPO.setStatus(1); + carryCapacityResult.setStatus(1); if (rate < 0.001) { - carryCapacityResultPO.setReslutLevel(6); - carryCapacityResultPOService.save(carryCapacityResultPO); + carryCapacityResult.setReslutLevel(6); + carryCapacityResultPOService.save(carryCapacityResult); return vo; } @@ -884,9 +761,9 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { String sacaleValue = dicDataFeignClient.getDicDataById(calParam.getScale()).getData().getValue(); // //用户电压等级 - DictData data = dicDataFeignClient.getDicDataById(carryCapacityUserPO.getVoltage()).getData(); + DictData data = dicDataFeignClient.getDicDataById(carryCapacityUser.getVoltage()).getData(); - float userSacaleValue = Float.valueOf(data.getValue()) * (data.getCode().contains("k") ? 1000 : 1); + float userSacaleValue = Float.parseFloat(data.getValue()) * (data.getCode().contains("k") ? 1000 : 1); //用户模式专变用户,公变用户 String userMode = dicDataFeignClient.getDicDataById(calParam.getUserMode()).getData().getCode(); //变压器连接方式接线方式 @@ -907,128 +784,128 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { if (DicDataEnum.Charging_Station_Users.getCode().equals(code)) { - integerList.stream().forEach(temp -> { - CarryCapacityDResultVO.CarryCapacityIResult carryCapacityIResultVO = new CarryCapacityDResultVO.CarryCapacityIResult(); - List Ilist = new ArrayList<>(); - devList.forEach(carryCapacityDevicePO -> { - DictData devScaledata = dicDataFeignClient.getDicDataById(carryCapacityDevicePO.getDevScale()).getData(); - Double devScaleValue = Float.valueOf(devScaledata.getValue()) * (devScaledata.getCode().contains("k") ? 1 : 0.0001); + integerList.forEach(temp -> { + CarryCapacityDResultVO.CarryCapacityIResult carryCapacityiResultVO = new CarryCapacityDResultVO.CarryCapacityIResult(); + List ilist = new ArrayList<>(); + devList.forEach(dev -> { + DictData devScaledata = dicDataFeignClient.getDicDataById(dev.getDevScale()).getData(); + double devScaleValue = Float.parseFloat(devScaledata.getValue()) * (devScaledata.getCode().contains("k") ? 1 : 0.0001); //基波电流I_1:设备容量(转成KVA*1000)*K(功率因数)(转成kW)/更号3*电压等级(转成Kv) - Double I_1 = carryCapacityDevicePO.getProtocolCapacity() * 1000 * calParam.getK() / (Math.sqrt(3) * Double.valueOf(devScaleValue)); + double i1 = dev.getProtocolCapacity() * 1000 * calParam.getK() / (Math.sqrt(3) * devScaleValue); //低压侧 - Double I_h = I_1 * (Double.valueOf(CarryingCapacityEnum.getValueByCode("CP_I_" + temp))) / 100; + double iH = i1 * (Double.parseDouble(Objects.requireNonNull(CarryingCapacityEnum.getValueByCode("CP_I_" + temp)))) / 100; //当变压器连接方式为YNyn零序电流可以流通计算变压器高压侧的谐波电流(零序电流次数为3、6、9、12、)否则为0 if (!DicDataEnum.YNyn.getCode().equals(connectionMode) && temp % 3 == 0) { - I_h = 0.00; + iH = 0.00; } - Ilist.add(I_h); + ilist.add(iH); }); //将变压器下多个设备电流合并 - Double mergeI = mergeIList(Ilist, temp); + Double mergeI = mergeiList(ilist); //专变用户的话是经过变压器的高压侧进行考核,公变用户的正常是在低压侧进行考核 if (DicDataEnum.SPECIAL_USER.getCode().equals(userMode)) { - mergeI = mergeI / (Double.valueOf(sacaleValue) * 1000 / userSacaleValue); + mergeI = mergeI / (Double.parseDouble(sacaleValue) * 1000 / userSacaleValue); } - carryCapacityIResultVO.setTime(temp); - carryCapacityIResultVO.setI(mergeI); + carryCapacityiResultVO.setTime(temp); + carryCapacityiResultVO.setI(mergeI); double getUharm = PubUtils.getValueByMethod(overlimit, "getIharm", temp); - carryCapacityIResultVO.setI_limit(getUharm); - carryCapacityIResultList.add(carryCapacityIResultVO); + carryCapacityiResultVO.setI_limit(getUharm); + carryCapacityiResultList.add(carryCapacityiResultVO); }); } else if (DicDataEnum.Electric_Heating_Load_Users.getCode().equals(code)) { - integerList.stream().forEach(temp -> { - CarryCapacityDResultVO.CarryCapacityIResult carryCapacityIResultVO = new CarryCapacityDResultVO.CarryCapacityIResult(); - List Ilist = new ArrayList<>(); - devList.forEach(carryCapacityDevicePO -> { - DictData devScaledata = dicDataFeignClient.getDicDataById(carryCapacityDevicePO.getDevScale()).getData(); - Double devScaleValue = Float.valueOf(devScaledata.getValue()) * (devScaledata.getCode().contains("k") ? 1 : 0.0001); + integerList.forEach(temp -> { + CarryCapacityDResultVO.CarryCapacityIResult carryCapacityiResultVO = new CarryCapacityDResultVO.CarryCapacityIResult(); + List ilist = new ArrayList<>(); + devList.forEach(dev -> { + DictData devScaledata = dicDataFeignClient.getDicDataById(dev.getDevScale()).getData(); + double devScaleValue = Float.parseFloat(devScaledata.getValue()) * (devScaledata.getCode().contains("k") ? 1 : 0.0001); //基波电流I_1:设备容量(转成KVA*1000)*K(功率因数)(转成kW)/更号3*电压等级(转成Kv) - Double I_1 = carryCapacityDevicePO.getProtocolCapacity() * 1000 * calParam.getK() / (Math.sqrt(3) * Double.valueOf(devScaleValue)); + double i1 = dev.getProtocolCapacity() * 1000 * calParam.getK() / (Math.sqrt(3) * devScaleValue); //低压侧 - Double I_h = I_1 * (Double.valueOf(CarryingCapacityEnum.getValueByCode("EAF_I_" + temp))) / 100; + double iH = i1 * (Double.parseDouble(Objects.requireNonNull(CarryingCapacityEnum.getValueByCode("EAF_I_" + temp)))) / 100; //当变压器连接方式为YNyn零序电流可以流通计算变压器高压侧的谐波电流(零序电流次数为3、6、9、12、)否则为0 if (!DicDataEnum.YNyn.getCode().equals(connectionMode) && temp % 3 == 0) { - I_h = 0.00; + iH = 0.00; } - Ilist.add(I_h); + ilist.add(iH); }); //将变压器下多个设备电流合并 - Double mergeI = mergeIList(Ilist, temp); + Double mergeI = mergeiList(ilist); //专变用户的话是经过变压器的高压侧进行考核,公变用户的正常是在低压侧进行考核 if (DicDataEnum.SPECIAL_USER.getCode().equals(userMode)) { - mergeI = mergeI / (Double.valueOf(sacaleValue) * 1000 / userSacaleValue); + mergeI = mergeI / (Double.parseDouble(sacaleValue) * 1000 / userSacaleValue); } - carryCapacityIResultVO.setTime(temp); - carryCapacityIResultVO.setI(mergeI); + carryCapacityiResultVO.setTime(temp); + carryCapacityiResultVO.setI(mergeI); double getUharm = PubUtils.getValueByMethod(overlimit, "getIharm", temp); - carryCapacityIResultVO.setI_limit(getUharm); - carryCapacityIResultList.add(carryCapacityIResultVO); + carryCapacityiResultVO.setI_limit(getUharm); + carryCapacityiResultList.add(carryCapacityiResultVO); }); } else if (DicDataEnum.Electrified_Rail_Users.getCode().equals(code)) { - integerList.stream().forEach(temp -> { - CarryCapacityDResultVO.CarryCapacityIResult carryCapacityIResultVO = new CarryCapacityDResultVO.CarryCapacityIResult(); - List Ilist = new ArrayList<>(); - devList.forEach(carryCapacityDevicePO -> { - DictData devScaledata = dicDataFeignClient.getDicDataById(carryCapacityDevicePO.getDevScale()).getData(); - Double devScaleValue = Float.valueOf(devScaledata.getValue()) * (devScaledata.getCode().contains("k") ? 1 : 0.0001); + integerList.forEach(temp -> { + CarryCapacityDResultVO.CarryCapacityIResult carryCapacityiResult = new CarryCapacityDResultVO.CarryCapacityIResult(); + List ilist = new ArrayList<>(); + devList.forEach(dev -> { + DictData devScaledata = dicDataFeignClient.getDicDataById(dev.getDevScale()).getData(); + double devScaleValue = Float.parseFloat(devScaledata.getValue()) * (devScaledata.getCode().contains("k") ? 1 : 0.0001); //基波电流I_1:设备容量(转成KVA*1000)*K(功率因数)(转成kW)/更号3*电压等级(转成Kv) - Double I_1 = carryCapacityDevicePO.getProtocolCapacity() * 1000 * calParam.getK() / (Math.sqrt(3) * Double.valueOf(devScaleValue)); + double i1 = dev.getProtocolCapacity() * 1000 * calParam.getK() / (Math.sqrt(3) * devScaleValue); //低压侧 - Double I_h = I_1 * (Double.valueOf(CarryingCapacityEnum.getValueByCode("ER_I_" + temp))) / 100; + double iH = i1 * (Double.parseDouble(Objects.requireNonNull(CarryingCapacityEnum.getValueByCode("ER_I_" + temp)))) / 100; //当变压器连接方式为YNyn零序电流可以流通计算变压器高压侧的谐波电流(零序电流次数为3、6、9、12、)否则为0 if (!DicDataEnum.YNyn.getCode().equals(connectionMode) && temp % 3 == 0) { - I_h = 0.00; + iH = 0.00; } - Ilist.add(I_h); + ilist.add(iH); }); //将变压器下多个设备电流合并 - Double mergeI = mergeIList(Ilist, temp); + Double mergeI = mergeiList(ilist); //专变用户的话是经过变压器的高压侧进行考核,公变用户的正常是在低压侧进行考核 if (DicDataEnum.SPECIAL_USER.getCode().equals(userMode)) { - mergeI = mergeI / (Double.valueOf(sacaleValue) * 1000 / userSacaleValue); + mergeI = mergeI / (Double.parseDouble(sacaleValue) * 1000 / userSacaleValue); } - carryCapacityIResultVO.setTime(temp); - carryCapacityIResultVO.setI(mergeI); + carryCapacityiResult.setTime(temp); + carryCapacityiResult.setI(mergeI); double getUharm = PubUtils.getValueByMethod(overlimit, "getIharm", temp); - carryCapacityIResultVO.setI_limit(getUharm); - carryCapacityIResultList.add(carryCapacityIResultVO); + carryCapacityiResult.setI_limit(getUharm); + carryCapacityiResultList.add(carryCapacityiResult); }); } - vo.setIResultList(carryCapacityIResultList); - carryCapacityResultPO.setIResultList(JSONUtil.toJsonStr(carryCapacityIResultList)); - long count = carryCapacityIResultList.stream().filter(temp -> temp.getI() > temp.getI_limit()).count(); - carryCapacityResultPO.setReslutLevel(count == 0 ? 6 : 5); + vo.setIResultList(carryCapacityiResultList); + carryCapacityResult.setIResultList(JSONUtil.toJsonStr(carryCapacityiResultList)); + long count = carryCapacityiResultList.stream().filter(temp -> temp.getI() > temp.getI_limit()).count(); + carryCapacityResult.setReslutLevel(count == 0 ? 6 : 5); vo.setReslutLevel(count == 0 ? 6 : 5); - carryCapacityResultPOService.save(carryCapacityResultPO); + carryCapacityResultPOService.save(carryCapacityResult); return vo; } - private Double mergeIList(List ilist, Integer temp) { - Double result = 0.00; + private Double mergeiList(List ilist) { + Double result; if (ilist.size() == 1) { return ilist.get(0); } else { result = ilist.get(0); for (int i = 1; i < ilist.size(); i++) { - Double sum = result * result + ilist.get(i) * ilist.get(i) + Double.valueOf(CarryingCapacityEnum.getValueByCode("K_H_" + (i + 2))) * result * ilist.get(i); + double sum = result * result + ilist.get(i) * ilist.get(i) + Double.parseDouble(Objects.requireNonNull(CarryingCapacityEnum.getValueByCode("K_H_" + (i + 2)))) * result * ilist.get(i); result = Math.sqrt(sum); } @@ -1039,20 +916,20 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { } - public static ExcelDataDTO ParsingFile(LocalDate startDate, LocalDate endDate, InputStream is) { - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - List dataHarmPowerPList = new ArrayList<>(); - List dataHarmPowerQList = new ArrayList<>(); - List dataIList = new ArrayList<>(); + public static ExcelDataDTO parsingFile(LocalDate startDate, LocalDate endDate, InputStream is) { +// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + List dataHarmPowerpList ; + List dataHarmPowerqList ; + List dataiList ; //前2周的时间 LocalDate startDate2 = startDate.plusWeeks(-1); LocalDate endDate2 = endDate.plusWeeks(-1); //前一周的数据 - List dataHarmPowerP2List = new ArrayList<>(); - List dataHarmPowerQ2List = new ArrayList<>(); - List dataHarmPowerU2List = new ArrayList<>(); + List dataHarmPowerP2List ; + List dataHarmPowerQ2List ; + List dataHarmPowerU2List ; try { List objects = EasyExcelUtil.syncReadModel(is, CarryCapcityDataEexcel.class, 0, 3); @@ -1060,50 +937,50 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { List vEexcelList = new ArrayList<>(); List pEexcelList = new ArrayList<>(); List qEexcelList = new ArrayList<>(); - objects.stream().forEach(temp -> { - CarryCapcityDataIEexcel carryCapcityDataIEexcel = new CarryCapcityDataIEexcel(); - CarryCapcityDataVEexcel carryCapcityDataVEexcel = new CarryCapcityDataVEexcel(); - CarryCapcityDataPEexcel carryCapcityDataPEexcel = new CarryCapcityDataPEexcel(); - CarryCapcityDataQEexcel carryCapcityDataQEexcel = new CarryCapcityDataQEexcel(); + objects.forEach(temp -> { + CarryCapcityDataIEexcel carryCapcityDataiEexcel = new CarryCapcityDataIEexcel(); + CarryCapcityDataVEexcel carryCapcityDatavEexcel = new CarryCapcityDataVEexcel(); + CarryCapcityDataPEexcel carryCapcityDatapEexcel = new CarryCapcityDataPEexcel(); + CarryCapcityDataQEexcel carryCapcityDataqEexcel = new CarryCapcityDataQEexcel(); - BeanUtils.copyProperties(temp, carryCapcityDataIEexcel); - carryCapcityDataIEexcel.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toInstant()); - carryCapcityDataIEexcel.setValueType("CP95"); + BeanUtils.copyProperties(temp, carryCapcityDataiEexcel); + carryCapcityDataiEexcel.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toInstant()); + carryCapcityDataiEexcel.setValueType("CP95"); - carryCapcityDataVEexcel.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toInstant()); - carryCapcityDataVEexcel.setValueType("CP95"); - carryCapcityDataVEexcel.setValue_a(Double.valueOf(temp.getU_a())); - carryCapcityDataVEexcel.setValue_b(Double.valueOf(temp.getU_b())); - carryCapcityDataVEexcel.setValue_c(Double.valueOf(temp.getU_c())); + carryCapcityDatavEexcel.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toInstant()); + carryCapcityDatavEexcel.setValueType("CP95"); + carryCapcityDatavEexcel.setValue_a(temp.getU_a()); + carryCapcityDatavEexcel.setValue_b(temp.getU_b()); + carryCapcityDatavEexcel.setValue_c(temp.getU_c()); - carryCapcityDataPEexcel.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toInstant()); - carryCapcityDataPEexcel.setValueType("CP95"); - carryCapcityDataPEexcel.setValue_a(Double.valueOf(temp.getP_a())); - carryCapcityDataPEexcel.setValue_b(Double.valueOf(temp.getP_b())); - carryCapcityDataPEexcel.setValue_c(Double.valueOf(temp.getP_c())); + carryCapcityDatapEexcel.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toInstant()); + carryCapcityDatapEexcel.setValueType("CP95"); + carryCapcityDatapEexcel.setValue_a(temp.getP_a()); + carryCapcityDatapEexcel.setValue_b(temp.getP_b()); + carryCapcityDatapEexcel.setValue_c(temp.getP_c()); - carryCapcityDataQEexcel.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toInstant()); - carryCapcityDataQEexcel.setValueType("CP95"); - carryCapcityDataQEexcel.setValue_a(Double.valueOf(temp.getQ_a())); - carryCapcityDataQEexcel.setValue_b(Double.valueOf(temp.getQ_b())); - carryCapcityDataQEexcel.setValue_c(Double.valueOf(temp.getQ_c())); - iEexcelList.add(carryCapcityDataIEexcel); - vEexcelList.add(carryCapcityDataVEexcel); - pEexcelList.add(carryCapcityDataPEexcel); - qEexcelList.add(carryCapcityDataQEexcel); + carryCapcityDataqEexcel.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toInstant()); + carryCapcityDataqEexcel.setValueType("CP95"); + carryCapcityDataqEexcel.setValue_a(temp.getQ_a()); + carryCapcityDataqEexcel.setValue_b(temp.getQ_b()); + carryCapcityDataqEexcel.setValue_c(temp.getQ_c()); + iEexcelList.add(carryCapcityDataiEexcel); + vEexcelList.add(carryCapcityDatavEexcel); + pEexcelList.add(carryCapcityDatapEexcel); + qEexcelList.add(carryCapcityDataqEexcel); }); - List collect = iEexcelList.stream().map(CarryCapcityDataIEexcel::excelToPO).flatMap(Collection::stream).collect(Collectors.toList()); - dataIList = collect.stream().filter( + List collect = iEexcelList.stream().map(CarryCapcityDataIEexcel::excelToPO).filter(Objects::nonNull).flatMap(Collection::stream).collect(Collectors.toList()); + dataiList = collect.stream().filter( item -> Utils.isTimeInRange(item.getTime(), startDate, endDate) ).collect(Collectors.toList()); // 校验合格的数据 - List collect2 = vEexcelList.stream().map(CarryCapcityDataVEexcel::excelToPO).flatMap(Collection::stream).collect(Collectors.toList()); + List collect2 = vEexcelList.stream().map(CarryCapcityDataVEexcel::excelToPO).filter(Objects::nonNull).flatMap(Collection::stream).collect(Collectors.toList()); // 业务逻辑 dataHarmPowerU2List = collect2.stream().filter( item -> Utils.isTimeInRange(item.getTime(), startDate2, endDate2) @@ -1111,8 +988,8 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { // 校验合格的数据 - List collect3 = pEexcelList.stream().map(CarryCapcityDataPEexcel::excelToPO).flatMap(Collection::stream).collect(Collectors.toList()); - dataHarmPowerPList = collect3.stream().filter( + List collect3 = pEexcelList.stream().map(CarryCapcityDataPEexcel::excelToPO).filter(Objects::nonNull).flatMap(Collection::stream).collect(Collectors.toList()); + dataHarmPowerpList = collect3.stream().filter( item -> Utils.isTimeInRange(item.getTime(), startDate, endDate) ).collect(Collectors.toList()); dataHarmPowerP2List = collect3.stream().filter( @@ -1120,8 +997,8 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { ).collect(Collectors.toList()); - List collect4 = qEexcelList.stream().map(CarryCapcityDataQEexcel::excelToPO).flatMap(Collection::stream).collect(Collectors.toList()); - dataHarmPowerQList = collect4.stream().filter( + List collect4 = qEexcelList.stream().map(CarryCapcityDataQEexcel::excelToPO).filter(Objects::nonNull).flatMap(Collection::stream).collect(Collectors.toList()); + dataHarmPowerqList = collect4.stream().filter( item -> Utils.isTimeInRange(item.getTime(), startDate, endDate) ).collect(Collectors.toList()); dataHarmPowerQ2List = collect4.stream().filter( @@ -1132,9 +1009,9 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { throw new BusinessException(AdvanceResponseEnum.DOCUMENT_FORMAT_ERROR); } ExcelDataDTO dto = new ExcelDataDTO(); - dto.setDataHarmPowerPList(dataHarmPowerPList); - dto.setDataHarmPowerQList(dataHarmPowerQList); - dto.setDataIList(dataIList); + dto.setDataHarmPowerPList(dataHarmPowerpList); + dto.setDataHarmPowerQList(dataHarmPowerqList); + dto.setDataIList(dataiList); dto.setDataHarmPowerP2List(dataHarmPowerP2List); dto.setDataHarmPowerQ2List(dataHarmPowerQ2List); dto.setDataHarmPowerU2List(dataHarmPowerU2List); @@ -1267,24 +1144,23 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { * @Author: clam * @Date: 2024/2/29 */ - public static Map calUParam(List dataHarmPowerPList2, List dataHarmPowerQList2, List DataVList2) { + public static Map caluParam(List dataHarmPowerpList2, List dataHarmPowerqList2, List datavList2) { Map results = new HashMap<>(4); List phaseType = Stream.of("A", "B", "C").collect(Collectors.toList()); - //存储UA, UB,UC; - List uList = new ArrayList<>(); - phaseType.stream().forEach(phase -> { - List listP2 = dataHarmPowerPList2.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0))) + + phaseType.forEach(phase -> { + List listP2 = dataHarmPowerpList2.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0))) .filter(temp -> temp.getPhaseType().equals(phase)) .map(CarryCapcityData::getValue) .collect(Collectors.toList()); - List listQ2 = dataHarmPowerQList2.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0))) + List listQ2 = dataHarmPowerqList2.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0))) .filter(temp -> temp.getPhaseType().equals(phase)) .map(CarryCapcityData::getValue) .collect(Collectors.toList()); - List listV2 = DataVList2.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0))) + List listV2 = datavList2.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0))) .filter(temp -> temp.getPhaseType().equals(phase)) .map(CarryCapcityData::getValue) .collect(Collectors.toList()); @@ -1299,29 +1175,29 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { } private static boolean compareNumbers(int num1, int num2, String operator) { - if (operator.equals("/")) { + if ("/".equals(operator)) { return true; - } else if (operator.equals("<")) { + } else if ("<".equals(operator)) { return num1 < num2; - } else if (operator.equals(">")) { + } else if (">".equals(operator)) { return num1 > num2; - } else if (operator.equals("<=")) { + } else if ("<=".equals(operator)) { return num1 <= num2; - } else if (operator.equals(">=")) { + } else if (">=".equals(operator)) { return num1 >= num2; - } else if (operator.equals("==")) { + } else if ("==".equals(operator)) { return num1 == num2; - } else if (operator.equals("!=")) { + } else if ("!=".equals(operator)) { return num1 != num2; } else { throw new IllegalArgumentException("无效的操作符"); } } - private static boolean StrategyReslut(List carryCapacityStrategyVOList, int result_level, int safe_count, int warn_count1, int warn_count2, int warn_count3) { + private static boolean strategyReslut(List carryCapacityStrategyVOList, int resultLevel, int safeCount, int warnCount1, int warnCount2, int warnCount3) { CarryCapacityStrategyVO carryCapacityStrategyVO = carryCapacityStrategyVOList.stream() - .filter(temp -> temp.getResult() == result_level) + .filter(temp -> temp.getResult() == resultLevel) .collect(Collectors.toList()).get(0); //每个策略组结果 List list = new ArrayList<>(); @@ -1330,26 +1206,26 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { CarryCapacityStrategysingleVO.CarryCapacityStrategyIndexVO carryCapacityStrategyIndexVO = temp.getCarryCapacityStrategyIndexVOList().stream() .filter(temp1 -> temp1.getIndexResult() == 1) .collect(Collectors.toList()).get(0); - boolean b1 = compareNumbers(safe_count, carryCapacityStrategyIndexVO.getCount(), carryCapacityStrategyIndexVO.getComparisonOperators()); - CarryCapacityStrategysingleVO.CarryCapacityStrategyIndexVO carryCapacityStrategyIndexVO2 = temp.getCarryCapacityStrategyIndexVOList().stream() + boolean b1 = compareNumbers(safeCount, carryCapacityStrategyIndexVO.getCount(), carryCapacityStrategyIndexVO.getComparisonOperators()); + CarryCapacityStrategysingleVO.CarryCapacityStrategyIndexVO vo2 = temp.getCarryCapacityStrategyIndexVOList().stream() .filter(temp1 -> temp1.getIndexResult() == 2) .collect(Collectors.toList()).get(0); - boolean b2 = compareNumbers(warn_count3, carryCapacityStrategyIndexVO2.getCount(), carryCapacityStrategyIndexVO2.getComparisonOperators()); + boolean b2 = compareNumbers(warnCount3, vo2.getCount(), vo2.getComparisonOperators()); - CarryCapacityStrategysingleVO.CarryCapacityStrategyIndexVO carryCapacityStrategyIndexVO3 = temp.getCarryCapacityStrategyIndexVOList().stream() + CarryCapacityStrategysingleVO.CarryCapacityStrategyIndexVO vo3 = temp.getCarryCapacityStrategyIndexVOList().stream() .filter(temp1 -> temp1.getIndexResult() == 3) .collect(Collectors.toList()).get(0); - boolean b3 = compareNumbers(warn_count2, carryCapacityStrategyIndexVO3.getCount(), carryCapacityStrategyIndexVO3.getComparisonOperators()); + boolean b3 = compareNumbers(warnCount2, vo3.getCount(), vo3.getComparisonOperators()); - CarryCapacityStrategysingleVO.CarryCapacityStrategyIndexVO carryCapacityStrategyIndexVO4 = temp.getCarryCapacityStrategyIndexVOList().stream() + CarryCapacityStrategysingleVO.CarryCapacityStrategyIndexVO vo4 = temp.getCarryCapacityStrategyIndexVOList().stream() .filter(temp1 -> temp1.getIndexResult() == 4) .collect(Collectors.toList()).get(0); - boolean b4 = compareNumbers(warn_count1, carryCapacityStrategyIndexVO4.getCount(), carryCapacityStrategyIndexVO4.getComparisonOperators()); + boolean b4 = compareNumbers(warnCount1, vo4.getCount(), vo4.getComparisonOperators()); Boolean flag = b1 && b2 && b3 && b4; list.add(flag); }); - long count = list.stream().filter(temp -> temp == true).count(); + long count = list.stream().filter(temp -> temp).count(); return count > 0; } @@ -1357,7 +1233,7 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { boolean flag = false; long daysBetween = ChronoUnit.DAYS.between(startTime, endTime); //根据时间间隔算出最低数据量 1天*6小时*60分钟*90%/时间间隔算出一天一个的数据 - int minDataNum = 1 * 6 * 60 * 3 * 80 / (100 * timeInterval); + int minDataNum = 6 * 60 * 3 * 80 / (100 * timeInterval); //合格天数》=3通过 int days = 0; @@ -1376,7 +1252,7 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { flag = true; } - return flag; + return !flag; } diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityStrategyDhlPOServiceImpl.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityStrategyDhlPOServiceImpl.java index ed62a3e08..458ff442c 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityStrategyDhlPOServiceImpl.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityStrategyDhlPOServiceImpl.java @@ -27,7 +27,7 @@ public class CarryCapacityStrategyDhlPOServiceImpl extends ServiceImpl queyDetailDhl() { List list = this.lambdaQuery().eq(CarryCapacityStrategyDhlPO::getUserFlag, 1).list(); - List collect = list.stream().map(t -> { + return list.stream().map(t -> { CarryCapacityStrategyDhlVO vo = new CarryCapacityStrategyDhlVO(); vo.setCount1(t.getCount1()); vo.setCount2(t.getCount2()); @@ -42,7 +42,6 @@ public class CarryCapacityStrategyDhlPOServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + //条件组合:where state = 1 and name = ? + lambdaQueryWrapper.eq(CarryCapacityUserPO::getStatus, DataStateEnum.ENABLE.getCode()).eq(CarryCapacityUserPO::getUserName, carryCapacityUserParam.getUserName()); + + //and id <> ? + if (isUpdate) { + if (carryCapacityUserParam instanceof CarryCapacityUserParam.CarryCapacityUserUpdateParam) { + lambdaQueryWrapper.ne(CarryCapacityUserPO::getUserId, ((CarryCapacityUserParam.CarryCapacityUserUpdateParam) carryCapacityUserParam).getUserId()); + } + } + + //若存在条件数据抛出异常 + int count = this.getBaseMapper().selectCount(lambdaQueryWrapper); + if (count > 0) { throw new BusinessException(AdvanceResponseEnum.USER_NAME_EXIST); } - carryCapacityUserPO.setStatus(1); - boolean save = this.save(carryCapacityUserPO); - return save; + } @Override @Transactional(rollbackFor = Exception.class) public Boolean updateUser(CarryCapacityUserParam.CarryCapacityUserUpdateParam userUpdateParam) { - CarryCapacityUserPO carryCapacityUserPO = new CarryCapacityUserPO(); - BeanUtils.copyProperties(userUpdateParam, carryCapacityUserPO); - CarryCapacityUserPO one = this.lambdaQuery().eq(CarryCapacityUserPO::getUserName, userUpdateParam.getUserName()).ne(CarryCapacityUserPO::getUserId,userUpdateParam.getUserId()).one(); - if(Objects.nonNull(one)){ - throw new BusinessException(AdvanceResponseEnum.USER_NAME_EXIST); + if(StringUtils.isBlank(userUpdateParam.getUserName())){ + throw new BusinessException("用户称不能为空"); } + checkName(userUpdateParam,false); + CarryCapacityUserPO carryCapacityUser = new CarryCapacityUserPO(); + BeanUtils.copyProperties(userUpdateParam, carryCapacityUser); - boolean save = this.updateById(carryCapacityUserPO); - return save; + + return this.updateById(carryCapacityUser); } @Override diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/impl/EventRelevantAnalysisServiceImpl.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/impl/EventRelevantAnalysisServiceImpl.java index ef2e031e3..4530d4d5f 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/impl/EventRelevantAnalysisServiceImpl.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/impl/EventRelevantAnalysisServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.date.TimeInterval; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -274,6 +275,10 @@ public class EventRelevantAnalysisServiceImpl extends ServiceImpl queryEventsAssPage(BaseParam baseParam) { List timeV = PubUtils.checkLocalDate(baseParam.getSearchBeginTime(), baseParam.getSearchEndTime()); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + if (StrUtil.isNotBlank(baseParam.getSearchValue())) { + lambdaQueryWrapper.like(RmpEventDetailAssPO::getContentDes, baseParam.getSearchValue()); + + } lambdaQueryWrapper.between(RmpEventDetailAssPO::getTimeId, timeV.get(0), timeV.get(1)) .orderByAsc(RmpEventDetailAssPO::getTimeId); return rmpEventDetailAssMapper.selectPage(new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam)), lambdaQueryWrapper); diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java index a28ff3a9f..c177514bb 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java @@ -71,7 +71,9 @@ import java.math.RoundingMode; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.ExecutionException; @@ -963,7 +965,13 @@ public class CustomReportServiceImpl implements CustomReportService { String tem = v.replace("&", ""); if (Objects.nonNull(finalTerminalMap)) { if ("statis_time".equals(tem)) { - son.set("v", reportSearchParam.getStartTime() + InfluxDbSqlConstant.START_TIME + "_" + reportSearchParam.getEndTime() + InfluxDbSqlConstant.END_TIME); + //如何时间是大于当前时间则用当前时间 + String localTime = InfluxDbSqlConstant.END_TIME; + LocalDate localDate = LocalDateTimeUtil.parseDate(reportSearchParam.getEndTime(), DatePattern.NORM_DATE_PATTERN); + if(LocalDate.now().isEqual(localDate)){ + localTime = LocalTime.now().format(DatePattern.NORM_TIME_FORMATTER); + } + son.set("v", reportSearchParam.getStartTime() + InfluxDbSqlConstant.START_TIME + "_" + reportSearchParam.getEndTime() + localTime); } else { //台账信息 son.set("v", finalTerminalMap.getOrDefault(tem, "/"));