From 114137f4a22238e0ea679c4a1a8e59014ef5772f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=95=B8=E9=9D=9E?= <13281114856@qq.com> Date: Tue, 7 Mar 2023 17:28:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A5=E5=BF=97=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mortals/xhx/common/key/Constant.java | 4 + .../module/device/service/DeviceService.java | 4 +- .../service/impl/DeviceServiceImpl.java | 80 ++++++++++--------- 3 files changed, 50 insertions(+), 38 deletions(-) diff --git a/device-manager/src/main/java/com/mortals/xhx/common/key/Constant.java b/device-manager/src/main/java/com/mortals/xhx/common/key/Constant.java index 7b20e2ec..0fdb8194 100644 --- a/device-manager/src/main/java/com/mortals/xhx/common/key/Constant.java +++ b/device-manager/src/main/java/com/mortals/xhx/common/key/Constant.java @@ -125,6 +125,10 @@ public final class Constant { */ public static final String MESSAGETYPE_NOTIFY_RESTART_APP = "restartapp"; + public static final String MESSAGETYPE_WAIT = "wait"; + + public static final String MESSAGETYPE_WAITQUEUE = "waitqueue"; + /** * 娑堟伅绫诲瀷(upgread) */ diff --git a/device-manager/src/main/java/com/mortals/xhx/module/device/service/DeviceService.java b/device-manager/src/main/java/com/mortals/xhx/module/device/service/DeviceService.java index 376bada9..a39c4f41 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/device/service/DeviceService.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/device/service/DeviceService.java @@ -1,4 +1,6 @@ package com.mortals.xhx.module.device.service; + +import com.mortals.framework.common.Rest; import com.mortals.framework.model.Context; import com.mortals.framework.service.ICRUDCacheService; import com.mortals.xhx.busiz.rsp.ApiResp; @@ -56,7 +58,7 @@ public interface DeviceService extends ICRUDCacheService<DeviceEntity,Long>{ - void sendThirdParty(DeviceEntity entity, ProductEntity productEntity, PlatformEntity platformEntity, DeviceMethodEnum update); + Rest<String> sendThirdParty(DeviceEntity entity, ProductEntity productEntity, PlatformEntity platformEntity, DeviceMethodEnum update); void putCache(String key,DeviceEntity deviceEntity); diff --git a/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java b/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java index 22df532d..3139b4c1 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java @@ -331,18 +331,22 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D } @Override - public void sendThirdParty(DeviceEntity entity, ProductEntity productEntity, PlatformEntity platformEntity, DeviceMethodEnum update) { + public Rest<String> sendThirdParty(DeviceEntity entity, ProductEntity productEntity, PlatformEntity platformEntity, DeviceMethodEnum update) { DeviceReq deviceReq = new DeviceReq(); BeanUtils.copyProperties(entity, deviceReq, BeanUtil.getNullPropertyNames(entity)); deviceReq.setDeviceStatus(update.getValue()); deviceReq.setProductCode(productEntity.getProductCode()); - deviceReq.setDeviceInBuilding(entity.getDeviceInBuilding()==null?0:entity.getDeviceInBuilding()); - deviceReq.setDeviceInFloor(entity.getDeviceInFloor()==null?0:entity.getDeviceInFloor()); + deviceReq.setDeviceInBuilding(entity.getDeviceInBuilding() == null ? 0 : entity.getDeviceInBuilding()); + deviceReq.setDeviceInFloor(entity.getDeviceInFloor() == null ? 0 : entity.getDeviceInFloor()); //http://192.168.0.98:8090/inter/device/deviceIn String phpInUrl = GlobalSysInfo.getParamValue(PARAM_SERVER_PHP_IN_HTTP_URL, "http://172.15.28.116:8090"); ApiResp<String> resp = messageService.sendThirdParty(UrlBuilder.of(phpInUrl).addPath(thirdPartyPath).build(), deviceReq); log.info("sendThirtyis resp ==>{}", JSON.toJSONString(resp)); + if (resp.getCode() == YesNoEnum.YES.getValue()) { + return Rest.ok("鎴愬姛锛�"); + } + return Rest.fail(resp.getMsg()); } @Override @@ -377,7 +381,7 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D deviceStatEntity.setCreateTime(new Date()); deviceStatEntity.setYear(calendar.get(Calendar.YEAR)); - deviceStatEntity.setMonth(calendar.get(Calendar.MONTH)+1); + deviceStatEntity.setMonth(calendar.get(Calendar.MONTH) + 1); deviceStatEntity.setDay(calendar.get(Calendar.DAY_OF_MONTH)); } @@ -391,7 +395,7 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D yesterdayDeviceStat = new DeviceStatEntity(); yesterdayDeviceStat.initAttrValue(); yesterdayDeviceStat.setSiteId(siteId); - // yesterdayDeviceStat.setYear(DateUtil.year(DateUtil.yesterday())); + // yesterdayDeviceStat.setYear(DateUtil.year(DateUtil.yesterday())); yesterdayDeviceStat.setYear(calendar.get(Calendar.YEAR)); } try { @@ -433,7 +437,7 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D deviceStatEntity.setDeviceOnlineCount(deviceOnlineCount.intValue()); //鍦ㄧ嚎鐜�=鍦ㄧ嚎璁惧/鎵€鏈夋縺娲昏澶� if (deviceActiveCount > 0) { - deviceStatEntity.setDeviceOnlineRatio(new BigDecimal(deviceOnlineCount).divide(new BigDecimal(deviceActiveCount),2, ROUND_HALF_DOWN)); + deviceStatEntity.setDeviceOnlineRatio(new BigDecimal(deviceOnlineCount).divide(new BigDecimal(deviceActiveCount), 2, ROUND_HALF_DOWN)); } //绂荤嚎鏁伴噺 @@ -444,7 +448,7 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D .count(); deviceStatEntity.setDeviceOfflineCount(deviceOfflineCount.intValue()); if (deviceActiveCount > 0) { - deviceStatEntity.setDeviceOfflineRatio(new BigDecimal(deviceOfflineCount).divide(new BigDecimal(deviceActiveCount),2, ROUND_HALF_DOWN)); + deviceStatEntity.setDeviceOfflineRatio(new BigDecimal(deviceOfflineCount).divide(new BigDecimal(deviceActiveCount), 2, ROUND_HALF_DOWN)); } //鍋滅敤鏁伴噺 Long deviceStopCount = deviceList.parallelStream() @@ -453,13 +457,13 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D .count(); deviceStatEntity.setDeviceStopCount(deviceStopCount.intValue()); if (deviceActiveCount > 0) { - deviceStatEntity.setDeviceStopRatio(new BigDecimal(deviceStopCount).divide(new BigDecimal(deviceActiveCount),2, ROUND_HALF_DOWN)); + deviceStatEntity.setDeviceStopRatio(new BigDecimal(deviceStopCount).divide(new BigDecimal(deviceActiveCount), 2, ROUND_HALF_DOWN)); } deviceStatEntity.setDeviceUnActiveCount(deviceUnActiveCount.intValue()); if (deviceActiveCount > 0) { - deviceStatEntity.setDeviceUnActiveRatio(new BigDecimal(deviceUnActiveCount).divide(new BigDecimal(deviceActiveCount),2, ROUND_HALF_DOWN)); + deviceStatEntity.setDeviceUnActiveRatio(new BigDecimal(deviceUnActiveCount).divide(new BigDecimal(deviceActiveCount), 2, ROUND_HALF_DOWN)); } //浠婃棩鍛婅鏁伴噺 @@ -573,38 +577,40 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D @Override protected void removeBefore(Long[] ids, Context context) throws AppException { - Arrays.asList(ids).stream().forEach(id -> { + + Long[] removeIds = Arrays.asList(ids).stream().map(id -> { DeviceEntity deviceEntity = this.get(id, context); if (!ObjectUtils.isEmpty(deviceEntity)) { - TbQueueCallback callback = new TbQueueCallback() { - @Override - public void onSuccess(TbQueueMsgMetadata metadata) { - log.info("闃熷垪鍒犻櫎鎴愬姛"); - } - - @Override - public void onFailure(Throwable t) { - log.error("闃熷垪鍒犻櫎澶辫触", t); - - } - }; - - messageProducer.queueDelete(Constant.UPLOAD_TOPIC + deviceEntity.getDeviceCode()); - messageProducer.queueDelete(Constant.DOWN_TOPIC + deviceEntity.getDeviceCode()); - - //messageService.delQueue(Constant.UPLOAD_TOPIC + deviceEntity.getDeviceCode(), callback); - //messageService.delQueue(Constant.DOWN_TOPIC + deviceEntity.getDeviceCode(), callback); - PlatformEntity platformEntity = platformService.get(deviceEntity.getPlatformId()); ProductEntity productEntity = productService.get(deviceEntity.getProductId()); if (!ObjectUtils.isEmpty(platformEntity) && !ObjectUtils.isEmpty(productEntity)) { - sendThirdParty(deviceEntity, productEntity, platformEntity, DeviceMethodEnum.DEL); + Rest<String> thirtyRest = sendThirdParty(deviceEntity, productEntity, platformEntity, DeviceMethodEnum.DEL); + if (YesNoEnum.YES.getValue() == thirtyRest.getCode()) { + + TbQueueCallback callback = new TbQueueCallback() { + @Override + public void onSuccess(TbQueueMsgMetadata metadata) { + log.info("闃熷垪鍒犻櫎鎴愬姛"); + } + + @Override + public void onFailure(Throwable t) { + log.error("闃熷垪鍒犻櫎澶辫触", t); + + } + }; + messageProducer.queueDelete(Constant.UPLOAD_TOPIC + deviceEntity.getDeviceCode()); + messageProducer.queueDelete(Constant.DOWN_TOPIC + deviceEntity.getDeviceCode()); + + //鍒犻櫎鎵╁睍extKey + this.removeCache(deviceEntity.getDeviceCode()); + return id; + } } - //鍒犻櫎鎵╁睍extKey - this.removeCache(deviceEntity.getDeviceCode()); } - }); - super.removeBefore(ids, context); + return null; + }).toArray(Long[]::new); + super.removeBefore(removeIds, context); } @Override @@ -756,15 +762,15 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D System.out.println(add.toString()); - int deviceOnlineCount=157; + int deviceOnlineCount = 157; - int deviceActiveCount=637; + int deviceActiveCount = 637; BigDecimal bigDecimalend = new BigDecimal(deviceOnlineCount); BigDecimal bigDecimal2 = new BigDecimal(deviceActiveCount); - BigDecimal bigDecimal1 = bigDecimalend.divide(bigDecimal2,2, ROUND_HALF_DOWN); + BigDecimal bigDecimal1 = bigDecimalend.divide(bigDecimal2, 2, ROUND_HALF_DOWN); System.out.println(bigDecimal1.toString()); -- 2.24.3