From caf2599a9869244ded811018811c37a2aabac3fc Mon Sep 17 00:00:00 2001 From: vince <757871790@qq.com> Date: 星期三, 08 一月 2025 11:29:05 +0800 Subject: [PATCH] 优化测温协议 --- src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java | 107 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 86 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java b/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java index 2210aed..067e3d9 100644 --- a/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java +++ b/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java @@ -3,20 +3,22 @@ import com.bstek.dorado.annotation.DataProvider; import com.bstek.dorado.annotation.DataResolver; import com.bstek.dorado.annotation.Expose; +import com.fzzy.api.Constant; +import com.fzzy.api.data.ApiCommonDevice; +import com.fzzy.api.data.DepotType; +import com.fzzy.api.data.GatewayDeviceType; import com.fzzy.api.utils.ContextUtil; -import com.fzzy.async.fzzy40.Fzzy40CommonService; import com.fzzy.gateway.GatewayUtils; -import com.fzzy.gateway.api.GatewayRemoteManager; import com.fzzy.gateway.entity.GatewayDevice; import com.fzzy.gateway.service.repository.GatewayDeviceRep; -import com.fzzy.mqtt.MqttProviderConfig; -import com.fzzy.mqtt.MqttPublishService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; import java.util.List; @Slf4j @@ -34,24 +36,27 @@ @DataProvider public List<GatewayDevice> listAll() { Sort sort = new Sort(Sort.Direction.ASC, "deviceId"); - return gatewayDeviceRep.findAll(sort); - } -// /** -// * gatewayDeviceService#getQuery -// * -// * @return -// */ -// @DataProvider -// public GateWayTestParam getQuery() { -// GateWayTestParam param = new GateWayTestParam(); -// param.setDayTime(new Date()); -// param.setCarNumber("宸滱12345"); -// param.setEnd(new Date()); -// param.setStart(new Date()); -// param.setWeight(25000.00); -// return param; -// } + + List<GatewayDevice> list = gatewayDeviceRep.findAll(sort); + + if (null == list || list.isEmpty()) return list; + + List<GatewayDevice> result = new ArrayList<>(); + + ApiCommonDevice commonDevice; + for (GatewayDevice device : list) { + commonDevice = Constant.getCommonDeviceCache(device.getDeviceSn()); + if (null != commonDevice) { + device.setIp(commonDevice.getIp()); + device.setPort(commonDevice.getPort()); + device.setStatus(commonDevice.getStatus()); + device.setOnlineTime(commonDevice.getOnlineTime()); + } + result.add(device); + } + return result; + } /** * gatewayDeviceService#updateSave @@ -63,12 +68,26 @@ GatewayDevice data2 = new GatewayDevice(); BeanUtils.copyProperties(data, data2); + + if (null == data2.getStatus()) { + data.setStatus(Constant.YN_Y); + + if (GatewayDeviceType.TYPE_07.equals(data2.getType())) { + data.setStatus(Constant.YN_N); + } + + } + if (null == data2.getDeviceSn()) { if (null != data2.getIp()) { data.setDeviceSn(data2.getIp()); } else { data.setDeviceSn(data2.getDeviceId()); } + } + + if (null == data2.getDepotType()) { + data2.setDepotType(DepotType.TYPE_01.getCode()); } if (null == data2.getId()) { @@ -79,6 +98,15 @@ } flushCache(); } + + public void updateData(GatewayDevice device) { + device.setStatus(Constant.YN_Y); + + gatewayDeviceRep.save(device); + + flushCacheOne(device); + } + /** * gatewayDeviceService#delData @@ -105,10 +133,47 @@ } } + private void flushCacheOne(GatewayDevice device) { + GatewayUtils.add2Cache(device); + } + @Expose public String test() { log.info("-----------test-------------------"); return "SUCCESS"; } + + /** + * 鏍规嵁瀹為檯閫氳鍒嗘満璁剧疆锛屽綋鍓嶅垎鏈哄湪绾� + * + * @param commonDevice 瀹為檯閫氳璁惧 + */ + public void onlineByCommonDevice(ApiCommonDevice commonDevice) { + List<GatewayDevice> list = GatewayUtils.getCacheByDeviceSn2(commonDevice.getSn()); + if (null == list || list.isEmpty()) return; + + for (GatewayDevice device : list) { + device.setIp(commonDevice.getIp()); + device.setPort(commonDevice.getPort()); + device.setOnlineTime(new Date()); + device.setStatus(Constant.YN_Y); + device.setDeviceSn(commonDevice.getSn()); + GatewayUtils.add2Cache(device); + } + } + + public void OfflineByCommonDevice(ApiCommonDevice commonDevice) { + List<GatewayDevice> list = GatewayUtils.getCacheByDeviceSn2(commonDevice.getSn()); + if (null == list || list.isEmpty()) return; + + for (GatewayDevice device : list) { + device.setIp(commonDevice.getIp()); + device.setPort(commonDevice.getPort()); + device.setStatus(Constant.YN_N); + GatewayUtils.add2Cache(device); + } + } + + } -- Gitblit v1.9.3