From 851a9cbdfa609001f40872b0880d694f24de998c Mon Sep 17 00:00:00 2001 From: xia Date: Fri, 9 Sep 2022 14:14:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ArchivesController.java | 18 ++++++ .../archives/controller/RFIDController.java | 10 +-- .../service/impl/ArchivesTagServiceImpl.java | 2 +- .../device/controller/DeviceController.java | 22 +++++-- .../device/service/impl/DeviceImpl.java | 63 +++++++++++++++++-- .../service/impl/DeviceSpecParamImpl.java | 2 +- 6 files changed, 99 insertions(+), 18 deletions(-) diff --git a/archives/src/main/java/com/storeroom/modules/archives/controller/ArchivesController.java b/archives/src/main/java/com/storeroom/modules/archives/controller/ArchivesController.java index 0337c73..749a4f5 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/controller/ArchivesController.java +++ b/archives/src/main/java/com/storeroom/modules/archives/controller/ArchivesController.java @@ -1,9 +1,11 @@ package com.storeroom.modules.archives.controller; import com.storeroom.annotaion.rest.AnonymousGetMapping; +import com.storeroom.annotaion.rest.AnonymousPostMapping; import com.storeroom.annotation.Log; import com.storeroom.modules.archives.service.ArchivesService; import com.storeroom.modules.archives.service.dto.ArchivesDTO; +import com.storeroom.modules.archives.service.dto.ArchivesExternalGetDTO; import com.storeroom.modules.archives.service.dto.ArchivesFileDTO; import com.storeroom.modules.common.ArchivesTypeEnum; import com.storeroom.modules.common.ExcelUtil; @@ -323,6 +325,22 @@ public class ArchivesController { return ApiResponse.success("/"+path); } + @ApiOperation("1.从系统服务获取档案信息") + @AnonymousPostMapping("/get") + @Log(value = "第三方:从系统服务获取档案信息",apiAddress = "/api/archives/get") + public Object externalGet( + @Validated @RequestBody ArchivesExternalGetDTO dto + ){ + return archivesService.externalGet(dto); + } + @ApiOperation("2.获取密集架当前区在库不在库数量") + @AnonymousPostMapping("/getArchivesCount") + @Log(value = "第三方:获取密集架当前区在库不在库数量",apiAddress = "/api/archives/getArchivesCount") + public Object externalGetArchivesCount( + @Validated @RequestBody ArchivesExternalGetDTO dto + ){ + return archivesService.externalGetArchivesCount(dto); + } } diff --git a/archives/src/main/java/com/storeroom/modules/archives/controller/RFIDController.java b/archives/src/main/java/com/storeroom/modules/archives/controller/RFIDController.java index c449495..d200788 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/controller/RFIDController.java +++ b/archives/src/main/java/com/storeroom/modules/archives/controller/RFIDController.java @@ -44,8 +44,8 @@ import java.util.regex.Pattern; @RequestMapping("/api/RFID") public class RFIDController { - @Value("${hand-held.ip}") - private String ip; +// @Value("${hand-held.ip}") +// private String ip; private final DeviceService deviceService; private final DeviceSpecParamService deviceSpecParamService; @@ -55,7 +55,7 @@ public class RFIDController { @ApiOperation("读取epc和Tid号") @GetMapping("/ReadEpc") - public ApiResponse ReadEpc(String op, String sDevID) throws IOException { + public ApiResponse ReadEpc(String ip,String op, String sDevID) throws IOException { String result = ""; try { HttpClient client = HttpClients.createDefault(); @@ -91,7 +91,7 @@ public class RFIDController { @ApiOperation("写epc") @GetMapping("/WriteEPC") - public ApiResponse WriteEPC(String op, String sDevID, String EAS, String Type, String Code, String Tid) throws IOException { + public ApiResponse WriteEPC(String ip,String op, String sDevID, String EAS, String Type, String Code, String Tid) throws IOException { String result = ""; try { HttpClient client = HttpClients.createDefault(); @@ -146,7 +146,7 @@ public class RFIDController { @ApiOperation("读写器状态检测") @GetMapping("/CheckStatus") - public ApiResponse CheckStatus(String op, String sDevID) throws IOException { + public ApiResponse CheckStatus(String ip,String op, String sDevID) throws IOException { String result = ""; try { HttpClient client = HttpClients.createDefault(); diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesTagServiceImpl.java b/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesTagServiceImpl.java index 6ea197b..0050c31 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesTagServiceImpl.java +++ b/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesTagServiceImpl.java @@ -131,7 +131,7 @@ public class ArchivesTagServiceImpl implements ArchivesTagService { break; } //清空原本tid - if(!StringUtils.isEmpty(oldTid)){ + if(!StringUtils.isEmpty(oldTid) && !tid.equals(oldTid)){ archivesTagRepository.unbindTag(oldTid); } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java b/storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java index 7726008..5e263c4 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java @@ -1,6 +1,7 @@ package com.storeroom.modules.device.controller; +import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.annotation.JsonProperty; import com.storeroom.annotaion.rest.AnonymousDeleteMapping; import com.storeroom.annotaion.rest.AnonymousGetMapping; @@ -14,11 +15,14 @@ import com.storeroom.modules.device.service.OperatingStateService; import com.storeroom.modules.storeroom3d.service.AlarmInfoService; import com.storeroom.modules.storeroom3d.service.ThirdApiService; import com.storeroom.utils.ApiResponse; +import com.storeroom.utils.HttpUtils; import com.storeroom.utils.StringUtils; import com.storeroom.utils.enums.ResponseStatus; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import org.apache.http.HttpResponse; +import org.apache.http.util.EntityUtils; import org.springframework.data.domain.Pageable; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.RequestBody; @@ -114,14 +118,20 @@ public class DeviceController { if (StringUtils.isEmpty(storeroomCode)) { storeroomCode = "12345678"; } - Object obj = thirdApiService.getCabinetState(url1, storeroomCode, QuNo); - if (ObjectUtils.isEmpty(obj)) { - count = 0; - } else { +// Object obj = thirdApiService.getCabinetState(url1, storeroomCode, QuNo); + JSONObject json = new JSONObject(); + json.put("StoreCode", storeroomCode); + json.put("QuNo",QuNo); + try { + HashMap map = new HashMap<>(); + map.put("Content-type", "application/json"); + HttpResponse response = HttpUtils.doPost(url1, "/IntelligentCabinetAPIServer/ReportStatus", + "POST", map, null, json.toJSONString()); + String retust = EntityUtils.toString(response.getEntity()); count = deviceService.getDeviceTypeNum("DD656054BE3D1DF1E2F1FC"); + }catch (Exception e){ + count = 0; } - - count += deviceService.getDeviceTypeNum("65D1886B0F864291766421"); count += deviceService.getDeviceTypeNum("7305DE3D273B0CAC079538"); if (!StringUtils.isEmpty(token)) { diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java index c4be22b..5ff1c93 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java @@ -1,5 +1,6 @@ package com.storeroom.modules.device.service.impl; +import com.alibaba.fastjson.JSONObject; import com.storeroom.exception.BaseException; import com.storeroom.modules.device.domain.*; import com.storeroom.modules.device.repository.*; @@ -8,10 +9,14 @@ import com.storeroom.modules.device.service.dto.DeviceInfoDto; import com.storeroom.modules.device.service.dto.DeviceTypeDto; import com.storeroom.modules.device.service.mapstruct.DeviceInfoMapper; import com.storeroom.modules.device.service.mapstruct.DeviceTypeMapper; +import com.storeroom.modules.storeroom3d.service.AlarmInfoService; +import com.storeroom.modules.storeroom3d.service.ThirdApiService; import com.storeroom.modules.storeroom3d.service.impl.AlarmInfoServiceImpl; import com.storeroom.modules.storeroom3d.service.impl.ThirdApiServiceImpl; import com.storeroom.utils.*; import lombok.RequiredArgsConstructor; +import org.apache.http.HttpResponse; +import org.apache.http.util.EntityUtils; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -27,7 +32,8 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class DeviceImpl implements DeviceService { - + private final AlarmInfoService alarmInfoService; + private final ThirdApiService thirdApiService; private final DeviceInfoRepository deviceInfoRepository; private final DeviceInfoMapper deviceInfoMapper; private final OperatingStateRepository operatingStateRepository; @@ -55,7 +61,8 @@ public class DeviceImpl implements DeviceService { item.setDeviceState(0); }); } - return PageUtil.toPage(page.map(deviceInfoMapper::toDto)); + Map map = PageUtil.toPage(page.map(deviceInfoMapper::toDto)); + return this.transformationDeviceState(map); } @Override @@ -71,7 +78,8 @@ public class DeviceImpl implements DeviceService { item.setDeviceState(0); }); } - return PageUtil.toPage(page.map(deviceInfoMapper::toDto)); + Map map = PageUtil.toPage(page.map(deviceInfoMapper::toDto)); + return this.transformationDeviceState(map); } @Override @@ -88,7 +96,8 @@ public class DeviceImpl implements DeviceService { item.setDeviceState(0); }); } - return PageUtil.toPage(page.map(deviceInfoMapper::toDto)); + Map map = PageUtil.toPage(page.map(deviceInfoMapper::toDto)); + return this.transformationDeviceState(map); } @Override @@ -104,7 +113,8 @@ public class DeviceImpl implements DeviceService { item.setDeviceState(0); }); } - return PageUtil.toPage(page.map(deviceInfoMapper::toDto)); + Map map = PageUtil.toPage(page.map(deviceInfoMapper::toDto)); + return this.transformationDeviceState(map); } @@ -562,5 +572,48 @@ public class DeviceImpl implements DeviceService { } } + public Map transformationDeviceState(Map map){ + String url = alarmInfoService.getAddressUrl(); + String token = thirdApiService.getToken(url); + List list = (List) map.get("content"); + List newList = new ArrayList<>(); + for(DeviceInfoDto deviceInfo:list){ + String deviceInfoTypeId = deviceInfo.getDeviceTypeId().getId(); + //密集架 + if("DD656054BE3D1DF1E2F1FC".equals(deviceInfo.getDeviceTypeId())){ + JSONObject json = new JSONObject(); + json.put("StoreCode", deviceInfo.getStoreroomCode() == null?"12345678":deviceInfo.getStoreroomCode()); + json.put("QuNo",deviceInfo.getAreaNo()); + try { + String url1 = "http://" + deviceInfo.getDeviceIp() + ":" + deviceInfo.getDevicePort(); + HashMap llmap = new HashMap<>(); + llmap.put("Content-type", "application/json"); + HttpResponse response = HttpUtils.doPost(url1, "/IntelligentCabinetAPIServer/ReportStatus", + "POST", llmap, null, json.toJSONString()); + String retust = EntityUtils.toString(response.getEntity()); + deviceInfo.setDeviceState(1); + }catch (Exception e){ + deviceInfo.setDeviceState(2); + } + //通道门 摄像头 + }else if("65D1886B0F864291766421".equals(deviceInfoTypeId) || "7305DE3D273B0CAC079538".equals(deviceInfoTypeId)){ + deviceInfo.setDeviceState(1); + //空调 恒湿机 漏水传感器 温湿度感应器 空气质量检测设备 + }else if("7882487E0C15304A3758AF".equals(deviceInfoTypeId) || "250AE644EC43E4EC954A81".equals(deviceInfoTypeId) || + "C09A1946216E496BB3FA88".equals(deviceInfoTypeId) || "89284777EFADA87FA342A7".equals(deviceInfoTypeId) || + "E58C8D7C896BCB9A408A78".equals(deviceInfoTypeId)){ + if (!StringUtils.isEmpty(token)) { + deviceInfo.setDeviceState(1); + }else{ + deviceInfo.setDeviceState(0); + } + }else{ + deviceInfo.setDeviceState(0); + } + newList.add(deviceInfo); + } + map.put("content",newList); + return map; + } } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceSpecParamImpl.java b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceSpecParamImpl.java index 484f569..7bf639d 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceSpecParamImpl.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceSpecParamImpl.java @@ -74,7 +74,7 @@ public class DeviceSpecParamImpl implements DeviceSpecParamService { public void bindMac(DeviceMacDto deviceMacDto) { DeviceInfo deviceInfo = deviceInfoRepository.findById(deviceMacDto.getDeviceId()).orElseGet(DeviceInfo::new); String mac = deviceMacDto.getMacAddress(); - String deviceId = deviceInfo.getDeviceId(); + String deviceId = deviceInfo.getId(); DeviceSpecParam deviceSpecParam = deviceSpecParamRepository.findFirstByDeviceInfoId(deviceId); if(null == deviceSpecParam){ deviceSpecParam = new DeviceSpecParam();