diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/MonitorLimitDTO.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/MonitorLimitDTO.java new file mode 100644 index 000000000..58aac069a --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/MonitorLimitDTO.java @@ -0,0 +1,93 @@ +package com.njcn.device.pms.pojo.dto; + +import lombok.Data; + + +import java.math.BigDecimal; +import java.util.Date; + + +/** + * pqs + * + * @author cdf + * @date 2023/12/13 + */ +@Data +public class MonitorLimitDTO { + + + private String id; + private Date ocDate; + private String monitorId; + private String voltage; + private Integer ct; + private Integer pt; + private BigDecimal voldelimiteUp; + private BigDecimal voldelimiteLow; + private BigDecimal pltLimit; + private BigDecimal freqLimit; + private BigDecimal ratedeLimiteUp; + private BigDecimal ratedeLimiteDown; + private BigDecimal vthdLimit; + private BigDecimal flucLimit; + private BigDecimal deltaLimit; + private BigDecimal vunbanLimit; + private BigDecimal oddHamVPerate; + private BigDecimal eveHamVPerate; + private BigDecimal i2Limit; + private BigDecimal i3Limit; + private BigDecimal i4Limit; + private BigDecimal i5Limit; + private BigDecimal i6Limit; + private BigDecimal i7Limit; + private BigDecimal i8Limit; + private BigDecimal i9Limit; + private BigDecimal i10Limit; + private BigDecimal i11Limit; + private BigDecimal i12Limit; + private BigDecimal i13Limit; + private BigDecimal i14Limit; + private BigDecimal i15Limit; + private BigDecimal i16Limit; + private BigDecimal i17Limit; + private BigDecimal i18Limit; + private BigDecimal i19Limit; + private BigDecimal i20Limit; + private BigDecimal i21Limit; + private BigDecimal i22Limit; + private BigDecimal i23Limit; + private BigDecimal i25Limit; + private BigDecimal harmonicVoltageLimit2; + private BigDecimal harmonicVoltageLimit3to16; + private BigDecimal shortNegatiVUnbalan_limit; + private BigDecimal normNegatiVUnbalanLimit; + private BigDecimal negatiCUnbalanCp95; + private BigDecimal negatiCUnbalanMax; + private BigDecimal i24Limit; + private BigDecimal i26Limit; + private BigDecimal i27Limit; + private BigDecimal i28Limit; + private BigDecimal i29Limit; + private BigDecimal i30Limit; + private BigDecimal i31Limit; + private BigDecimal i32Limit; + private BigDecimal i33Limit; + private BigDecimal i34Limit; + private BigDecimal i35Limit; + private BigDecimal i36Limit; + private BigDecimal i37Limit; + private BigDecimal i38Limit; + private BigDecimal i39Limit; + private BigDecimal i40Limit; + private BigDecimal i41Limit; + private BigDecimal i42Limit; + private BigDecimal i43Limit; + private BigDecimal i44Limit; + private BigDecimal i45Limit; + private BigDecimal i46Limit; + private BigDecimal i47Limit; + private BigDecimal i48Limit; + private BigDecimal i49Limit; + private BigDecimal i50Limit; +} diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/PushMonitorDTO.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/PushMonitorDTO.java new file mode 100644 index 000000000..f16a2a11a --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/PushMonitorDTO.java @@ -0,0 +1,62 @@ +package com.njcn.device.pms.pojo.dto; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * pqs + * + * @author cdf + * @date 2023/12/11 + */ +@Data +public class PushMonitorDTO { + + private String id; + private String monitorName; + private String monitorId; + private String terminalCode; + private BigDecimal monitorLocal; + private String objectType; + private String voltageLevel; + private BigDecimal minShortCapacity; + private BigDecimal bmShortCapacity; + private BigDecimal supplyEquipCapacity; + private BigDecimal userProtocolCapacity; + private String customName; + private String status; + private Date ctime; + private Date updateTime; + private String lineId; + private String chv; + private String chi; + private String evtType; + private String terminalConnect; + private String neutralGround; + private String isLine; + private String monitorType; + private String breakerName; + private String breakerId; + private String passTime; + private String objTypePre; + private String objTypePrePre; + private String isMajorNet; + private String cityId; + private String maintOrg; + private String statisticalInterval; + private String busId; + private String monitorTag; + private String monitorObjId; + private String transId; + private String nameType; + private String measPointId; + private String convertorStationId; + private String logicalDeviceSeq; + private String substationId; + private String substationName; + private String subVoltageLevel; + private String provinceId; + private String provinceName; +} diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java index 4e4f4bd6e..7573a9d57 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java @@ -136,7 +136,7 @@ public class Monitor extends BaseEntity { private Integer isSpecialSupplyElectricity; /** - * 监测对象类型 + * 监测点标签 */ private String monitorTag; diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/gwPush/GwMonitorPushController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/gwPush/GwMonitorPushController.java new file mode 100644 index 000000000..428e195da --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/gwPush/GwMonitorPushController.java @@ -0,0 +1,74 @@ +package com.njcn.device.pms.controller.gwPush; + +import cn.hutool.core.collection.CollectionUtil; +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.device.pms.pojo.dto.PmsGeneralDeviceDTO; +import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam; +import com.njcn.device.pms.service.gwPush.GwMonitorPushService; +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.RequiredArgsConstructor; +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; + +/** + * pqs + * 台账国网推送 + * + * @author cdf + * @date 2023/12/11 + */ +@Slf4j +@Api(tags = "台账国网推送") +@RestController +@RequestMapping("/gwTerminalPush") +@RequiredArgsConstructor +public class GwMonitorPushController extends BaseController { + + private final GwMonitorPushService gwMonitorPushService; + + + /** + * 推送主网监测点 + * + * @author cdf + * @date 2023/12/11 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/pushMonitor") + @ApiOperation("推送主网监测点") + @ApiImplicitParam(name = "ids", value = "主网监测点id集合", required = true) + public HttpResult pushMonitor(@RequestBody List ids) { + String methodDescribe = getMethodDescribe("pushMonitor"); + String msg = gwMonitorPushService.pushMonitor(ids); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, msg, methodDescribe); + } + + /** + * 推送监测点限值台账数据接口 + * @author cdf + * @date 2023/12/13 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/pushMonitorOverLimit") + @ApiOperation("推送主网监测点") + @ApiImplicitParam(name = "ids", value = "主网监测点id集合", required = true) + public HttpResult pushMonitorOverLimit(@RequestBody List ids) { + String methodDescribe = getMethodDescribe("pushMonitorOverLimit"); + String msg = gwMonitorPushService.pushMonitor(ids); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, msg, methodDescribe); + } +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/GwMonitorPushService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/GwMonitorPushService.java new file mode 100644 index 000000000..43bd278d0 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/GwMonitorPushService.java @@ -0,0 +1,18 @@ +package com.njcn.device.pms.service.gwPush; + +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2023/12/11 + */ +public interface GwMonitorPushService { + + + String pushMonitor(List ids); + + + String pushMonitorOverLimit(List ids); +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/GwMonitorPushServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/GwMonitorPushServiceImpl.java new file mode 100644 index 000000000..995c55853 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/GwMonitorPushServiceImpl.java @@ -0,0 +1,313 @@ +package com.njcn.device.pms.service.gwPush.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.UUID; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.device.biz.pojo.po.Overlimit; +import com.njcn.device.pms.mapper.majornetwork.MonitorMapper; +import com.njcn.device.pms.mapper.majornetwork.OverlimitMapper; +import com.njcn.device.pms.pojo.dto.MonitorLimitDTO; +import com.njcn.device.pms.pojo.dto.PushMonitorDTO; +import com.njcn.device.pms.pojo.po.Monitor; +import com.njcn.device.pms.service.gwPush.GwMonitorPushService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import com.njcn.web.enums.GWSendEnum; +import com.njcn.web.pojo.param.SendParam; +import com.njcn.web.utils.GwSendUtil; +import lombok.Data; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * pqs + * + * @author cdf + * @date 2023/12/11 + */ +@Service +@RequiredArgsConstructor +public class GwMonitorPushServiceImpl implements GwMonitorPushService { + + private final MonitorMapper monitorMapper; + + private final OverlimitMapper overlimitMapper; + + private DicDataFeignClient dicDataFeignClient; + + + @Override + public String pushMonitor(List ids) { + + List pushResult = new ArrayList<>(); + + //电压等级 + List voltageDicList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + Map voltageMap = voltageDicList.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + //监测点对象 + List objTagDicList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData(); + Map objTagMap = objTagDicList.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + //监测点状态 + List statusDicList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData(); + Map statusMap = statusDicList.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + //电压互感类型 + List tranDicList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.VOLTAGE_TRANSFORMER.getCode()).getData(); + Map tranMap = tranDicList.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(Monitor::getId, ids).eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode()); + List monitorList = monitorMapper.selectList(lambdaQueryWrapper); + + for (Monitor item : monitorList) { + PushMonitorDTO pushMonitorDTO = new PushMonitorDTO(); + pushMonitorDTO.setId(IdUtil.simpleUUID()); + pushMonitorDTO.setMonitorId(item.getId()); + pushMonitorDTO.setMonitorName(item.getName()); + pushMonitorDTO.setTerminalCode(item.getTerminalId()); + // pushMonitorDTO.setObjectType(); + + if(Objects.nonNull(item.getMinShortCircuitCapacity())){ + pushMonitorDTO.setMinShortCapacity(BigDecimal.valueOf(item.getMinShortCircuitCapacity())); + } + if(Objects.nonNull(item.getStandShortCapacity())){ + pushMonitorDTO.setBmShortCapacity(BigDecimal.valueOf(item.getStandShortCapacity())); + } + if(Objects.nonNull(item.getPowerSupplyEqCapacity())){ + pushMonitorDTO.setSupplyEquipCapacity(BigDecimal.valueOf(item.getPowerSupplyEqCapacity())); + } + if(Objects.nonNull(item.getUserAgreementCapacity())){ + pushMonitorDTO.setUserProtocolCapacity(BigDecimal.valueOf(item.getUserAgreementCapacity())); + } + + if(Objects.nonNull(item.getMonitorObjectName())){ + pushMonitorDTO.setCustomName(item.getMonitorObjectName()); + } + + if(statusMap.containsKey(item.getMonitorState())){ + pushMonitorDTO.setStatus(statusMap.get(item.getMonitorState()).getValue()); + } + + if(tranMap.containsKey(item.getPotentialTransFormerType())) { + pushMonitorDTO.setEvtType(tranMap.get(item.getPotentialTransFormerType()).getValue()); + } + + if (voltageMap.containsKey(item.getVoltageLevel())) { + pushMonitorDTO.setVoltageLevel(String.format("%02d", voltageMap.get(item.getVoltageLevel()).getAlgoDescribe())); + } + + if(tranMap.containsKey(item.getPotentialTransFormerType())) { + pushMonitorDTO.setEvtType(tranMap.get(item.getPotentialTransFormerType()).getValue()); + } + + if(objTagMap.containsKey(item.getMonitorTag())){ + pushMonitorDTO.setObjTypePre(objTagMap.get(item.getMonitorTag()).getValue()); + pushMonitorDTO.setObjTypePrePre(objTagMap.get(item.getMonitorTag()).getValue()); + } + + pushMonitorDTO.setIsMajorNet("1"); + pushMonitorDTO.setCityId(item.getOrgId()); + if(StrUtil.isNotBlank(item.getOperationId())){ + pushMonitorDTO.setMaintOrg(item.getOperationId()); + } + if(Objects.nonNull(item.getStatisticalInterval())){ + pushMonitorDTO.setStatisticalInterval(item.getStatisticalInterval().toString()); + } + + pushMonitorDTO.setBusId(item.getLineId()); + pushMonitorDTO.setMonitorTag(objTagMap.get(item.getMonitorTag()).getValue()); + + if(StrUtil.isNotBlank(item.getMonitorObjectId())){ + pushMonitorDTO.setMonitorObjId(item.getMonitorObjectId()); + } + pushResult.add(pushMonitorDTO); + } + + + SendParam sendParam = new SendParam(); + sendParam.setStats(pushResult); + Map sendRes = GwSendUtil.send(sendParam, GWSendEnum.MONITOR); + if (sendRes.containsKey("succeed")) { + String succeed = sendRes.get("succeed"); + if (succeed.contains("\\\"")) { + succeed = succeed.replace("\\\"", "\""); + } + Map mapRes = JSON.parseObject(succeed, Map.class); + String status = mapRes.get("status").toString(); + if ("000000".equals(status)) { + /* for (SupvReportM supvReportM : supvReportMList) { + supvReportMMapper.updateId(1, supvReportM.getMonthReportId()); + }*/ + String result = mapRes.get("result").toString(); + Map mapCount = JSON.parseObject(result, Map.class); + String count = mapCount.get("count").toString(); + return "操作成功:成功数据" + count + "条"; + } else { + String errors = mapRes.get("errors").toString(); + throw new BusinessException("操作失败:" + status + "_" + errors); + } + } else { + throw new BusinessException("当前时间段国网上送请求过多,请稍后再试"); + } + + return "推送成功"; + } + + @Override + public String pushMonitorOverLimit(List ids) { + List pushResult = new ArrayList<>(); + + //电压等级 + List voltageDicList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + Map voltageMap = voltageDicList.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(Monitor::getId, ids).eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode()); + List monitorList = monitorMapper.selectList(lambdaQueryWrapper); + + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(Overlimit::getId, ids); + List overlimitList = overlimitMapper.selectList(queryWrapper); + Map map = overlimitList.stream().collect(Collectors.toMap(Overlimit::getId,Function.identity())); + + if(CollUtil.isNotEmpty(monitorList)){ + for(Monitor monitor : monitorList){ + MonitorLimitDTO monitorLimitDTO = new MonitorLimitDTO(); + monitorLimitDTO.setId(monitor.getId()); + monitorLimitDTO.setOcDate(new Date()); + monitorLimitDTO.setMonitorId(monitor.getId()); + + if (voltageMap.containsKey(monitor.getVoltageLevel())) { + monitorLimitDTO.setVoltage(String.format("%02d", voltageMap.get(monitor.getVoltageLevel()).getAlgoDescribe())); + } + + monitorLimitDTO.setVoldelimiteUp(BigDecimal.valueOf(monitor.getVoltageDeviationUpperLimit())); + monitorLimitDTO.setVoldelimiteLow(BigDecimal.valueOf(monitor.getVoltageDeviationLowerLimit())); + + Overlimit overlimit = map.get(monitor.getId()); + + monitorLimitDTO.setPltLimit(BigDecimal.valueOf(overlimit.getFlicker())); + monitorLimitDTO.setRatedeLimiteUp(BigDecimal.valueOf(overlimit.getFreqDev())); + monitorLimitDTO.setRatedeLimiteDown(BigDecimal.valueOf(-overlimit.getFreqDev())); + + monitorLimitDTO.setVthdLimit(BigDecimal.valueOf(overlimit.getUaberrance())); + monitorLimitDTO.setFlucLimit(BigDecimal.valueOf(overlimit.getVoltageFluctuation())); + monitorLimitDTO.setDeltaLimit(BigDecimal.valueOf(overlimit.getVoltageDev())); + + monitorLimitDTO.setVunbanLimit(BigDecimal.valueOf(overlimit.getUbalance())); + monitorLimitDTO.setOddHamVPerate(BigDecimal.valueOf(overlimit.getUharm3())); + monitorLimitDTO.setEveHamVPerate(BigDecimal.valueOf(overlimit.getUharm2())); + + monitorLimitDTO.setI2Limit(BigDecimal.valueOf(overlimit.getIharm2())); + monitorLimitDTO.setI3Limit(BigDecimal.valueOf(overlimit.getIharm3())); + monitorLimitDTO.setI4Limit(BigDecimal.valueOf(overlimit.getIharm4())); + monitorLimitDTO.setI5Limit(BigDecimal.valueOf(overlimit.getIharm5())); + monitorLimitDTO.setI6Limit(BigDecimal.valueOf(overlimit.getIharm6())); + monitorLimitDTO.setI7Limit(BigDecimal.valueOf(overlimit.getIharm7())); + monitorLimitDTO.setI8Limit(BigDecimal.valueOf(overlimit.getIharm8())); + monitorLimitDTO.setI9Limit(BigDecimal.valueOf(overlimit.getIharm9())); + monitorLimitDTO.setI10Limit(BigDecimal.valueOf(overlimit.getIharm10())); + monitorLimitDTO.setI11Limit(BigDecimal.valueOf(overlimit.getIharm11())); + + monitorLimitDTO.setI12Limit(BigDecimal.valueOf(overlimit.getIharm12())); + monitorLimitDTO.setI13Limit(BigDecimal.valueOf(overlimit.getIharm13())); + monitorLimitDTO.setI14Limit(BigDecimal.valueOf(overlimit.getIharm14())); + monitorLimitDTO.setI15Limit(BigDecimal.valueOf(overlimit.getIharm15())); + monitorLimitDTO.setI16Limit(BigDecimal.valueOf(overlimit.getIharm16())); + monitorLimitDTO.setI17Limit(BigDecimal.valueOf(overlimit.getIharm17())); + monitorLimitDTO.setI18Limit(BigDecimal.valueOf(overlimit.getIharm18())); + monitorLimitDTO.setI19Limit(BigDecimal.valueOf(overlimit.getIharm19())); + monitorLimitDTO.setI20Limit(BigDecimal.valueOf(overlimit.getIharm20())); + monitorLimitDTO.setI21Limit(BigDecimal.valueOf(overlimit.getIharm21())); + + monitorLimitDTO.setI22Limit(BigDecimal.valueOf(overlimit.getIharm22())); + monitorLimitDTO.setI23Limit(BigDecimal.valueOf(overlimit.getIharm23())); + monitorLimitDTO.setI24Limit(BigDecimal.valueOf(overlimit.getIharm24())); + monitorLimitDTO.setI25Limit(BigDecimal.valueOf(overlimit.getIharm25())); + monitorLimitDTO.setI26Limit(BigDecimal.valueOf(overlimit.getIharm26())); + monitorLimitDTO.setI27Limit(BigDecimal.valueOf(overlimit.getIharm27())); + monitorLimitDTO.setI28Limit(BigDecimal.valueOf(overlimit.getIharm28())); + monitorLimitDTO.setI29Limit(BigDecimal.valueOf(overlimit.getIharm29())); + monitorLimitDTO.setI30Limit(BigDecimal.valueOf(overlimit.getIharm30())); + monitorLimitDTO.setI31Limit(BigDecimal.valueOf(overlimit.getIharm31())); + + monitorLimitDTO.setI32Limit(BigDecimal.valueOf(overlimit.getIharm32())); + monitorLimitDTO.setI33Limit(BigDecimal.valueOf(overlimit.getIharm33())); + monitorLimitDTO.setI34Limit(BigDecimal.valueOf(overlimit.getIharm34())); + monitorLimitDTO.setI35Limit(BigDecimal.valueOf(overlimit.getIharm35())); + monitorLimitDTO.setI36Limit(BigDecimal.valueOf(overlimit.getIharm36())); + monitorLimitDTO.setI37Limit(BigDecimal.valueOf(overlimit.getIharm37())); + monitorLimitDTO.setI38Limit(BigDecimal.valueOf(overlimit.getIharm38())); + monitorLimitDTO.setI39Limit(BigDecimal.valueOf(overlimit.getIharm39())); + monitorLimitDTO.setI40Limit(BigDecimal.valueOf(overlimit.getIharm40())); + monitorLimitDTO.setI41Limit(BigDecimal.valueOf(overlimit.getIharm41())); + + monitorLimitDTO.setI42Limit(BigDecimal.valueOf(overlimit.getIharm42())); + monitorLimitDTO.setI43Limit(BigDecimal.valueOf(overlimit.getIharm43())); + monitorLimitDTO.setI44Limit(BigDecimal.valueOf(overlimit.getIharm44())); + monitorLimitDTO.setI45Limit(BigDecimal.valueOf(overlimit.getIharm45())); + monitorLimitDTO.setI46Limit(BigDecimal.valueOf(overlimit.getIharm46())); + monitorLimitDTO.setI47Limit(BigDecimal.valueOf(overlimit.getIharm47())); + monitorLimitDTO.setI48Limit(BigDecimal.valueOf(overlimit.getIharm48())); + monitorLimitDTO.setI49Limit(BigDecimal.valueOf(overlimit.getIharm49())); + monitorLimitDTO.setI50Limit(BigDecimal.valueOf(overlimit.getIharm50())); + + monitorLimitDTO.setHarmonicVoltageLimit2(BigDecimal.valueOf(overlimit.getInuharm1())); + monitorLimitDTO.setHarmonicVoltageLimit3to16(BigDecimal.valueOf(overlimit.getInuharm3())); + + + pushResult.add(monitorLimitDTO); + } + + SendParam sendParam = new SendParam(); + sendParam.setStats(pushResult); + Map sendRes = GwSendUtil.send(sendParam, GWSendEnum.MONITOR); + + + if (sendRes.containsKey("succeed")) { + String succeed = sendRes.get("succeed"); + if (succeed.contains("\\\"")) { + succeed = succeed.replace("\\\"", "\""); + } + Map mapRes = JSON.parseObject(succeed, Map.class); + String status = mapRes.get("status").toString(); + if ("000000".equals(status)) { + /* for (SupvReportM supvReportM : supvReportMList) { + supvReportMMapper.updateId(1, supvReportM.getMonthReportId()); + }*/ + String result = mapRes.get("result").toString(); + Map mapCount = JSON.parseObject(result, Map.class); + String count = mapCount.get("count").toString(); + return "操作成功:成功数据" + count + "条"; + } else { + String errors = mapRes.get("errors").toString(); + throw new BusinessException("操作失败:" + status + "_" + errors); + } + } else { + throw new BusinessException("当前时间段国网上送请求过多,请稍后再试"); + } + }else { + throw new BusinessException("暂无监测点信息"); + } + + } +}