diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EquipmentFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EquipmentFeignClient.java index cc6121d..5726148 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EquipmentFeignClient.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EquipmentFeignClient.java @@ -1,22 +1,14 @@ package com.njcn.csdevice.api; -import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.ServerInfo; -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.csdevice.api.fallback.EquipmentFeignClientFallbackFactory; import com.njcn.csdevice.pojo.dto.CsEquipmentDeliveryDTO; import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; import com.njcn.csdevice.pojo.vo.CsEquipmentDeliveryVO; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; -import springfox.documentation.annotations.ApiIgnore; import java.util.List; @@ -72,5 +64,5 @@ public interface EquipmentFeignClient { HttpResult updateCldDevStatus(@RequestParam("nodeId") String nodeId, @RequestParam("processNo") Integer processNo); @PostMapping("/flipCldDevStatus") - HttpResult flipCldDevStatus(@RequestParam("devId") String devId, @RequestParam("status") Integer status); + HttpResult flipCldDevStatus(@RequestParam("date") String date, @RequestParam("devId") String devId, @RequestParam("status") Integer status); } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EquipmentFeignClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EquipmentFeignClientFallbackFactory.java index 9f8485f..ce06ffc 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EquipmentFeignClientFallbackFactory.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EquipmentFeignClientFallbackFactory.java @@ -97,7 +97,7 @@ public class EquipmentFeignClientFallbackFactory implements FallbackFactory flipCldDevStatus(String devId, Integer status) { + public HttpResult flipCldDevStatus(String date, String devId, Integer status) { log.error("{}异常,降级处理,异常为:{}","云前置设备状态翻转",cause.toString()); throw new BusinessException(finalExceptionEnum); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java index b95ffc6..a927afc 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java @@ -395,13 +395,14 @@ public class EquipmentDeliveryController extends BaseController { @PostMapping("/flipCldDevStatus") @ApiOperation("云前置设备状态翻转") @ApiImplicitParams({ - @ApiImplicitParam(name = "devId", value = "设备id", required = true), - @ApiImplicitParam(name = "status", value = "状态", required = true) + @ApiImplicitParam(name = "date", value = "时间", required = true), + @ApiImplicitParam(name = "devId", value = "设备id", required = true), + @ApiImplicitParam(name = "status", value = "状态", required = true) }) @ApiIgnore - public HttpResult flipCldDevStatus(@RequestParam("devId") String devId, @RequestParam("status") Integer status){ + public HttpResult flipCldDevStatus(@RequestParam("date") String date, @RequestParam("devId") String devId, @RequestParam("status") Integer status){ String methodDescribe = getMethodDescribe("flipCldDevStatus"); - csEquipmentDeliveryService.flipCldDevStatus(devId,status); + csEquipmentDeliveryService.flipCldDevStatus(date,devId,status); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java index 0c84cd3..4a349b2 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java @@ -179,10 +179,11 @@ public interface CsEquipmentDeliveryService extends IService devList = this.list(lambdaQueryWrapper); if (CollectionUtil.isNotEmpty(devList)) { //修改设备运行状态 - devList.forEach(item->{item.setRunStatus(1);}); + devList.forEach(item->{ + item.setRunStatus(1); + insertPqsCommunicateRecord(LocalDateTime.now().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)), item.getNdid(), 0); + }); this.updateBatchById(devList); - //修改监测点运行状态 - //List devIdList = devList.stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList()); - //List lineList = csLinePOService.getLinesByDevList(devIdList); - //csLinePOService.updateCldLineStatus(lineList,2); } } @Override - public void flipCldDevStatus(String devId, Integer status) { + @Transactional(rollbackFor = Exception.class) + public void flipCldDevStatus(String time, String devId, Integer status) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(CsEquipmentDeliveryPO::getId,devId) .eq(CsEquipmentDeliveryPO::getUsageStatus,1) @@ -958,13 +962,22 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl lineList = csLinePOService.getLinesByDevList(Collections.singletonList(po.getId())); - //csLinePOService.updateCldLineStatus(lineList,status==1?2:0); + //修改设备的运行状态,则录入influxdb表数据 + int communicateType = status == 2 ? 1 : 0; + insertPqsCommunicateRecord(time, po.getNdid(), communicateType); } } + // 时序数据库写入数据 + private void insertPqsCommunicateRecord(String time, String devId, Integer status) { + PqsCommunicateDto pqsCommunicateDto = new PqsCommunicateDto(); + pqsCommunicateDto.setTime(time); + pqsCommunicateDto.setDevId(devId); + pqsCommunicateDto.setType(status); + pqsCommunicateDto.setDescription(status == 0 ? "通讯中断" : "通讯正常"); + csCommunicateService.insertion(pqsCommunicateDto); + } + @Override public List getDevListByProjectId(String projectId) { QueryWrapper csLedgerQueryWrapper = new QueryWrapper(); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/InfluxdbCsCommunicateServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/InfluxdbCsCommunicateServiceImpl.java index 41cda98..d789ba8 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/InfluxdbCsCommunicateServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/InfluxdbCsCommunicateServiceImpl.java @@ -1,13 +1,13 @@ package com.njcn.csdevice.service.impl; import cn.hutool.core.date.DatePattern; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.csdevice.mapper.CsEquipmentDeliveryMapper; import com.njcn.csdevice.param.LineCountEvaluateParam; import com.njcn.csdevice.pojo.dto.PqsCommunicateDto; import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; -import com.njcn.csdevice.service.CsEquipmentDeliveryService; import com.njcn.csdevice.service.ICsCommunicateService; import com.njcn.influx.imapper.PqsCommunicateMapper; -import com.njcn.influx.pojo.dto.StatisticalDataDTO; import com.njcn.influx.pojo.po.PqsCommunicate; import com.njcn.influx.query.InfluxQueryWrapper; import com.njcn.influx.utils.InfluxDbUtils; @@ -39,7 +39,7 @@ import java.util.concurrent.TimeUnit; public class InfluxdbCsCommunicateServiceImpl implements ICsCommunicateService { private final InfluxDbUtils influxDbUtils; - private final CsEquipmentDeliveryService csEquipmentDeliveryService; + private final CsEquipmentDeliveryMapper csEquipmentDeliveryMapper; @Resource private PqsCommunicateMapper pqsCommunicateMapper; private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault()); @@ -111,7 +111,10 @@ public class InfluxdbCsCommunicateServiceImpl implements ICsCommunicateService { @Override public void insertion(PqsCommunicateDto pqsCommunicateDto) { //根据NDID获取装置信息 - CsEquipmentDeliveryPO po = csEquipmentDeliveryService.findDevByNDid(pqsCommunicateDto.getDevId()); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(CsEquipmentDeliveryPO::getNdid,pqsCommunicateDto.getDevId()).ne(CsEquipmentDeliveryPO::getRunStatus,0); + CsEquipmentDeliveryPO po = csEquipmentDeliveryMapper.selectOne(lambdaQueryWrapper); + InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(PqsCommunicate.class); influxQueryWrapper.eq(PqsCommunicate::getDevId,po.getId()).timeDesc().limit(1); List pqsCommunicates = pqsCommunicateMapper.selectByQueryWrapper(influxQueryWrapper); @@ -138,7 +141,7 @@ public class InfluxdbCsCommunicateServiceImpl implements ICsCommunicateService { .select(PqsCommunicate::getDevId) .select(PqsCommunicate::getDescription) .select(PqsCommunicate::getType) - .between(PqsCommunicate::getTime, lineParam.getStartTime(), lineParam.getEndTime()) + .between(PqsCommunicate::getTime, lineParam.getStartTime() + " 00:00:00", lineParam.getEndTime() + " 23:59:59") .timeAsc(); return pqsCommunicateMapper.selectByQueryWrapper(influxQueryWrapper); }