diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/controller/PressConfigController.java b/src/main/java/com/casic/controller/PressConfigController.java new file mode 100644 index 0000000..de4c98a --- /dev/null +++ b/src/main/java/com/casic/controller/PressConfigController.java @@ -0,0 +1,23 @@ +package com.casic.controller; + +import com.casic.model.ResponseData; +import com.casic.service.PressConfigService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/casic") +@AllArgsConstructor +public class PressConfigController { + + private PressConfigService pressConfigService; + + @RequestMapping("/press/config") + @ApiOperation("状态下发查询") + public ResponseData nbPressConfig(String deviceId){ + return pressConfigService.nbPressConfig( deviceId); + } + +} diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/controller/PressConfigController.java b/src/main/java/com/casic/controller/PressConfigController.java new file mode 100644 index 0000000..de4c98a --- /dev/null +++ b/src/main/java/com/casic/controller/PressConfigController.java @@ -0,0 +1,23 @@ +package com.casic.controller; + +import com.casic.model.ResponseData; +import com.casic.service.PressConfigService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/casic") +@AllArgsConstructor +public class PressConfigController { + + private PressConfigService pressConfigService; + + @RequestMapping("/press/config") + @ApiOperation("状态下发查询") + public ResponseData nbPressConfig(String deviceId){ + return pressConfigService.nbPressConfig( deviceId); + } + +} diff --git a/src/main/java/com/casic/dao/NbPressMapper.java b/src/main/java/com/casic/dao/NbPressMapper.java new file mode 100644 index 0000000..b5db053 --- /dev/null +++ b/src/main/java/com/casic/dao/NbPressMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.NbPress; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NbPressMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/controller/PressConfigController.java b/src/main/java/com/casic/controller/PressConfigController.java new file mode 100644 index 0000000..de4c98a --- /dev/null +++ b/src/main/java/com/casic/controller/PressConfigController.java @@ -0,0 +1,23 @@ +package com.casic.controller; + +import com.casic.model.ResponseData; +import com.casic.service.PressConfigService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/casic") +@AllArgsConstructor +public class PressConfigController { + + private PressConfigService pressConfigService; + + @RequestMapping("/press/config") + @ApiOperation("状态下发查询") + public ResponseData nbPressConfig(String deviceId){ + return pressConfigService.nbPressConfig( deviceId); + } + +} diff --git a/src/main/java/com/casic/dao/NbPressMapper.java b/src/main/java/com/casic/dao/NbPressMapper.java new file mode 100644 index 0000000..b5db053 --- /dev/null +++ b/src/main/java/com/casic/dao/NbPressMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.NbPress; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NbPressMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/NbPress.java b/src/main/java/com/casic/entity/NbPress.java new file mode 100644 index 0000000..9650355 --- /dev/null +++ b/src/main/java/com/casic/entity/NbPress.java @@ -0,0 +1,20 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("nb_press") +public class NbPress { + private Long id; + private String productId; + private String deviceId; + private String tenantId; + private String imei; + private String configStatus; + private Date createTime; + private Date lastUpdate; + private String cell; +} diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/controller/PressConfigController.java b/src/main/java/com/casic/controller/PressConfigController.java new file mode 100644 index 0000000..de4c98a --- /dev/null +++ b/src/main/java/com/casic/controller/PressConfigController.java @@ -0,0 +1,23 @@ +package com.casic.controller; + +import com.casic.model.ResponseData; +import com.casic.service.PressConfigService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/casic") +@AllArgsConstructor +public class PressConfigController { + + private PressConfigService pressConfigService; + + @RequestMapping("/press/config") + @ApiOperation("状态下发查询") + public ResponseData nbPressConfig(String deviceId){ + return pressConfigService.nbPressConfig( deviceId); + } + +} diff --git a/src/main/java/com/casic/dao/NbPressMapper.java b/src/main/java/com/casic/dao/NbPressMapper.java new file mode 100644 index 0000000..b5db053 --- /dev/null +++ b/src/main/java/com/casic/dao/NbPressMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.NbPress; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NbPressMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/NbPress.java b/src/main/java/com/casic/entity/NbPress.java new file mode 100644 index 0000000..9650355 --- /dev/null +++ b/src/main/java/com/casic/entity/NbPress.java @@ -0,0 +1,20 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("nb_press") +public class NbPress { + private Long id; + private String productId; + private String deviceId; + private String tenantId; + private String imei; + private String configStatus; + private Date createTime; + private Date lastUpdate; + private String cell; +} diff --git a/src/main/java/com/casic/model/ResponseData.java b/src/main/java/com/casic/model/ResponseData.java index c09b2d2..74f2ddf 100644 --- a/src/main/java/com/casic/model/ResponseData.java +++ b/src/main/java/com/casic/model/ResponseData.java @@ -51,7 +51,13 @@ this.message = message; this.data = data; } - + public static ResponseData success(String message) { + ResponseData responseData=new ResponseData(); + responseData.success = true; + responseData.code = 200; + responseData.message = message; + return responseData; + } public static ErrorResponseData error(String message) { return new ErrorResponseData(message); } diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/controller/PressConfigController.java b/src/main/java/com/casic/controller/PressConfigController.java new file mode 100644 index 0000000..de4c98a --- /dev/null +++ b/src/main/java/com/casic/controller/PressConfigController.java @@ -0,0 +1,23 @@ +package com.casic.controller; + +import com.casic.model.ResponseData; +import com.casic.service.PressConfigService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/casic") +@AllArgsConstructor +public class PressConfigController { + + private PressConfigService pressConfigService; + + @RequestMapping("/press/config") + @ApiOperation("状态下发查询") + public ResponseData nbPressConfig(String deviceId){ + return pressConfigService.nbPressConfig( deviceId); + } + +} diff --git a/src/main/java/com/casic/dao/NbPressMapper.java b/src/main/java/com/casic/dao/NbPressMapper.java new file mode 100644 index 0000000..b5db053 --- /dev/null +++ b/src/main/java/com/casic/dao/NbPressMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.NbPress; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NbPressMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/NbPress.java b/src/main/java/com/casic/entity/NbPress.java new file mode 100644 index 0000000..9650355 --- /dev/null +++ b/src/main/java/com/casic/entity/NbPress.java @@ -0,0 +1,20 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("nb_press") +public class NbPress { + private Long id; + private String productId; + private String deviceId; + private String tenantId; + private String imei; + private String configStatus; + private Date createTime; + private Date lastUpdate; + private String cell; +} diff --git a/src/main/java/com/casic/model/ResponseData.java b/src/main/java/com/casic/model/ResponseData.java index c09b2d2..74f2ddf 100644 --- a/src/main/java/com/casic/model/ResponseData.java +++ b/src/main/java/com/casic/model/ResponseData.java @@ -51,7 +51,13 @@ this.message = message; this.data = data; } - + public static ResponseData success(String message) { + ResponseData responseData=new ResponseData(); + responseData.success = true; + responseData.code = 200; + responseData.message = message; + return responseData; + } public static ErrorResponseData error(String message) { return new ErrorResponseData(message); } diff --git a/src/main/java/com/casic/service/AepCommandSend.java b/src/main/java/com/casic/service/AepCommandSend.java new file mode 100644 index 0000000..9de59e4 --- /dev/null +++ b/src/main/java/com/casic/service/AepCommandSend.java @@ -0,0 +1,136 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.model.AlarmConfigParam; +import com.casic.model.BusConfigParam; +import com.casic.model.DataGasConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Component +@Slf4j +public class AepCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + + public void sendStatusNb(List dataGasConfigList) { + Map dataGasMap = new HashMap<>(); + Map queryMap = new HashMap<>(); + queryMap.put("query", 1); + dataGasMap.put("params", queryMap); + dataGasMap.put("serviceIdentifier", "DeviceQuery"); + dataGasConfigList.forEach( + dataGasConfigParam -> { + dataGasConfigParam.setLevel(1); + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + try { + dataGasConfigParam.setContent(dataGasMap); + dataGasConfigParam.setOperator("casic"); + dataGasConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); + request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); + System.out.println(client.CreateCommand(request)); + client.shutdown(); + } catch (Exception ex) { + log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return; + } + } else { + return; + } + } + ); + } + + public String sendConfig(BusConfigParam busConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "config"); + dataGasMap.put("params", busConfigParam.getQueryContent()); + busConfigParam.setContent(dataGasMap); + busConfigParam.setLevel(1); + busConfigParam.setOperator("casic"); + try { + busConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + } + + public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "alarmconfig"); + dataGasMap.put("params", alarmConfigParam.getQueryContent()); + alarmConfigParam.setContent(dataGasMap); + alarmConfigParam.setLevel(1); + alarmConfigParam.setOperator("casic"); + try { + alarmConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 + CreateCommandResponse msgResponse = client.CreateCommand(request); + System.out.println(msgResponse); + client.shutdown(); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + + } + + +} \ No newline at end of file diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/controller/PressConfigController.java b/src/main/java/com/casic/controller/PressConfigController.java new file mode 100644 index 0000000..de4c98a --- /dev/null +++ b/src/main/java/com/casic/controller/PressConfigController.java @@ -0,0 +1,23 @@ +package com.casic.controller; + +import com.casic.model.ResponseData; +import com.casic.service.PressConfigService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/casic") +@AllArgsConstructor +public class PressConfigController { + + private PressConfigService pressConfigService; + + @RequestMapping("/press/config") + @ApiOperation("状态下发查询") + public ResponseData nbPressConfig(String deviceId){ + return pressConfigService.nbPressConfig( deviceId); + } + +} diff --git a/src/main/java/com/casic/dao/NbPressMapper.java b/src/main/java/com/casic/dao/NbPressMapper.java new file mode 100644 index 0000000..b5db053 --- /dev/null +++ b/src/main/java/com/casic/dao/NbPressMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.NbPress; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NbPressMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/NbPress.java b/src/main/java/com/casic/entity/NbPress.java new file mode 100644 index 0000000..9650355 --- /dev/null +++ b/src/main/java/com/casic/entity/NbPress.java @@ -0,0 +1,20 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("nb_press") +public class NbPress { + private Long id; + private String productId; + private String deviceId; + private String tenantId; + private String imei; + private String configStatus; + private Date createTime; + private Date lastUpdate; + private String cell; +} diff --git a/src/main/java/com/casic/model/ResponseData.java b/src/main/java/com/casic/model/ResponseData.java index c09b2d2..74f2ddf 100644 --- a/src/main/java/com/casic/model/ResponseData.java +++ b/src/main/java/com/casic/model/ResponseData.java @@ -51,7 +51,13 @@ this.message = message; this.data = data; } - + public static ResponseData success(String message) { + ResponseData responseData=new ResponseData(); + responseData.success = true; + responseData.code = 200; + responseData.message = message; + return responseData; + } public static ErrorResponseData error(String message) { return new ErrorResponseData(message); } diff --git a/src/main/java/com/casic/service/AepCommandSend.java b/src/main/java/com/casic/service/AepCommandSend.java new file mode 100644 index 0000000..9de59e4 --- /dev/null +++ b/src/main/java/com/casic/service/AepCommandSend.java @@ -0,0 +1,136 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.model.AlarmConfigParam; +import com.casic.model.BusConfigParam; +import com.casic.model.DataGasConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Component +@Slf4j +public class AepCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + + public void sendStatusNb(List dataGasConfigList) { + Map dataGasMap = new HashMap<>(); + Map queryMap = new HashMap<>(); + queryMap.put("query", 1); + dataGasMap.put("params", queryMap); + dataGasMap.put("serviceIdentifier", "DeviceQuery"); + dataGasConfigList.forEach( + dataGasConfigParam -> { + dataGasConfigParam.setLevel(1); + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + try { + dataGasConfigParam.setContent(dataGasMap); + dataGasConfigParam.setOperator("casic"); + dataGasConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); + request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); + System.out.println(client.CreateCommand(request)); + client.shutdown(); + } catch (Exception ex) { + log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return; + } + } else { + return; + } + } + ); + } + + public String sendConfig(BusConfigParam busConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "config"); + dataGasMap.put("params", busConfigParam.getQueryContent()); + busConfigParam.setContent(dataGasMap); + busConfigParam.setLevel(1); + busConfigParam.setOperator("casic"); + try { + busConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + } + + public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "alarmconfig"); + dataGasMap.put("params", alarmConfigParam.getQueryContent()); + alarmConfigParam.setContent(dataGasMap); + alarmConfigParam.setLevel(1); + alarmConfigParam.setOperator("casic"); + try { + alarmConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 + CreateCommandResponse msgResponse = client.CreateCommand(request); + System.out.println(msgResponse); + client.shutdown(); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + + } + + +} \ No newline at end of file diff --git a/src/main/java/com/casic/service/PressCommandSend.java b/src/main/java/com/casic/service/PressCommandSend.java new file mode 100644 index 0000000..c63d2e8 --- /dev/null +++ b/src/main/java/com/casic/service/PressCommandSend.java @@ -0,0 +1,46 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.config.PressDeviceConfig; +import com.casic.model.BusConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandRequest; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + + +@Component +@Slf4j +public class PressCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + @Autowired + private PressDeviceConfig pressDeviceConfig; + + + public String sendConfig(BusConfigParam busConfigParam) { + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(pressDeviceConfig.getAepKey()).appSecret(pressDeviceConfig.getAepSecret()) + .build(); + try { + busConfigParam.setTtl(pressDeviceConfig.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(pressDeviceConfig.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.error("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "下发成功" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), pressDeviceConfig.getAepKey(), pressDeviceConfig.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } +} diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/controller/PressConfigController.java b/src/main/java/com/casic/controller/PressConfigController.java new file mode 100644 index 0000000..de4c98a --- /dev/null +++ b/src/main/java/com/casic/controller/PressConfigController.java @@ -0,0 +1,23 @@ +package com.casic.controller; + +import com.casic.model.ResponseData; +import com.casic.service.PressConfigService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/casic") +@AllArgsConstructor +public class PressConfigController { + + private PressConfigService pressConfigService; + + @RequestMapping("/press/config") + @ApiOperation("状态下发查询") + public ResponseData nbPressConfig(String deviceId){ + return pressConfigService.nbPressConfig( deviceId); + } + +} diff --git a/src/main/java/com/casic/dao/NbPressMapper.java b/src/main/java/com/casic/dao/NbPressMapper.java new file mode 100644 index 0000000..b5db053 --- /dev/null +++ b/src/main/java/com/casic/dao/NbPressMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.NbPress; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NbPressMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/NbPress.java b/src/main/java/com/casic/entity/NbPress.java new file mode 100644 index 0000000..9650355 --- /dev/null +++ b/src/main/java/com/casic/entity/NbPress.java @@ -0,0 +1,20 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("nb_press") +public class NbPress { + private Long id; + private String productId; + private String deviceId; + private String tenantId; + private String imei; + private String configStatus; + private Date createTime; + private Date lastUpdate; + private String cell; +} diff --git a/src/main/java/com/casic/model/ResponseData.java b/src/main/java/com/casic/model/ResponseData.java index c09b2d2..74f2ddf 100644 --- a/src/main/java/com/casic/model/ResponseData.java +++ b/src/main/java/com/casic/model/ResponseData.java @@ -51,7 +51,13 @@ this.message = message; this.data = data; } - + public static ResponseData success(String message) { + ResponseData responseData=new ResponseData(); + responseData.success = true; + responseData.code = 200; + responseData.message = message; + return responseData; + } public static ErrorResponseData error(String message) { return new ErrorResponseData(message); } diff --git a/src/main/java/com/casic/service/AepCommandSend.java b/src/main/java/com/casic/service/AepCommandSend.java new file mode 100644 index 0000000..9de59e4 --- /dev/null +++ b/src/main/java/com/casic/service/AepCommandSend.java @@ -0,0 +1,136 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.model.AlarmConfigParam; +import com.casic.model.BusConfigParam; +import com.casic.model.DataGasConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Component +@Slf4j +public class AepCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + + public void sendStatusNb(List dataGasConfigList) { + Map dataGasMap = new HashMap<>(); + Map queryMap = new HashMap<>(); + queryMap.put("query", 1); + dataGasMap.put("params", queryMap); + dataGasMap.put("serviceIdentifier", "DeviceQuery"); + dataGasConfigList.forEach( + dataGasConfigParam -> { + dataGasConfigParam.setLevel(1); + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + try { + dataGasConfigParam.setContent(dataGasMap); + dataGasConfigParam.setOperator("casic"); + dataGasConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); + request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); + System.out.println(client.CreateCommand(request)); + client.shutdown(); + } catch (Exception ex) { + log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return; + } + } else { + return; + } + } + ); + } + + public String sendConfig(BusConfigParam busConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "config"); + dataGasMap.put("params", busConfigParam.getQueryContent()); + busConfigParam.setContent(dataGasMap); + busConfigParam.setLevel(1); + busConfigParam.setOperator("casic"); + try { + busConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + } + + public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "alarmconfig"); + dataGasMap.put("params", alarmConfigParam.getQueryContent()); + alarmConfigParam.setContent(dataGasMap); + alarmConfigParam.setLevel(1); + alarmConfigParam.setOperator("casic"); + try { + alarmConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 + CreateCommandResponse msgResponse = client.CreateCommand(request); + System.out.println(msgResponse); + client.shutdown(); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + + } + + +} \ No newline at end of file diff --git a/src/main/java/com/casic/service/PressCommandSend.java b/src/main/java/com/casic/service/PressCommandSend.java new file mode 100644 index 0000000..c63d2e8 --- /dev/null +++ b/src/main/java/com/casic/service/PressCommandSend.java @@ -0,0 +1,46 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.config.PressDeviceConfig; +import com.casic.model.BusConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandRequest; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + + +@Component +@Slf4j +public class PressCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + @Autowired + private PressDeviceConfig pressDeviceConfig; + + + public String sendConfig(BusConfigParam busConfigParam) { + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(pressDeviceConfig.getAepKey()).appSecret(pressDeviceConfig.getAepSecret()) + .build(); + try { + busConfigParam.setTtl(pressDeviceConfig.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(pressDeviceConfig.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.error("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "下发成功" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), pressDeviceConfig.getAepKey(), pressDeviceConfig.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } +} diff --git a/src/main/java/com/casic/service/PressConfigService.java b/src/main/java/com/casic/service/PressConfigService.java new file mode 100644 index 0000000..e75a62d --- /dev/null +++ b/src/main/java/com/casic/service/PressConfigService.java @@ -0,0 +1,7 @@ +package com.casic.service; + +import com.casic.model.ResponseData; + +public interface PressConfigService { + ResponseData nbPressConfig(String deviceId); +} diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/controller/PressConfigController.java b/src/main/java/com/casic/controller/PressConfigController.java new file mode 100644 index 0000000..de4c98a --- /dev/null +++ b/src/main/java/com/casic/controller/PressConfigController.java @@ -0,0 +1,23 @@ +package com.casic.controller; + +import com.casic.model.ResponseData; +import com.casic.service.PressConfigService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/casic") +@AllArgsConstructor +public class PressConfigController { + + private PressConfigService pressConfigService; + + @RequestMapping("/press/config") + @ApiOperation("状态下发查询") + public ResponseData nbPressConfig(String deviceId){ + return pressConfigService.nbPressConfig( deviceId); + } + +} diff --git a/src/main/java/com/casic/dao/NbPressMapper.java b/src/main/java/com/casic/dao/NbPressMapper.java new file mode 100644 index 0000000..b5db053 --- /dev/null +++ b/src/main/java/com/casic/dao/NbPressMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.NbPress; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NbPressMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/NbPress.java b/src/main/java/com/casic/entity/NbPress.java new file mode 100644 index 0000000..9650355 --- /dev/null +++ b/src/main/java/com/casic/entity/NbPress.java @@ -0,0 +1,20 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("nb_press") +public class NbPress { + private Long id; + private String productId; + private String deviceId; + private String tenantId; + private String imei; + private String configStatus; + private Date createTime; + private Date lastUpdate; + private String cell; +} diff --git a/src/main/java/com/casic/model/ResponseData.java b/src/main/java/com/casic/model/ResponseData.java index c09b2d2..74f2ddf 100644 --- a/src/main/java/com/casic/model/ResponseData.java +++ b/src/main/java/com/casic/model/ResponseData.java @@ -51,7 +51,13 @@ this.message = message; this.data = data; } - + public static ResponseData success(String message) { + ResponseData responseData=new ResponseData(); + responseData.success = true; + responseData.code = 200; + responseData.message = message; + return responseData; + } public static ErrorResponseData error(String message) { return new ErrorResponseData(message); } diff --git a/src/main/java/com/casic/service/AepCommandSend.java b/src/main/java/com/casic/service/AepCommandSend.java new file mode 100644 index 0000000..9de59e4 --- /dev/null +++ b/src/main/java/com/casic/service/AepCommandSend.java @@ -0,0 +1,136 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.model.AlarmConfigParam; +import com.casic.model.BusConfigParam; +import com.casic.model.DataGasConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Component +@Slf4j +public class AepCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + + public void sendStatusNb(List dataGasConfigList) { + Map dataGasMap = new HashMap<>(); + Map queryMap = new HashMap<>(); + queryMap.put("query", 1); + dataGasMap.put("params", queryMap); + dataGasMap.put("serviceIdentifier", "DeviceQuery"); + dataGasConfigList.forEach( + dataGasConfigParam -> { + dataGasConfigParam.setLevel(1); + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + try { + dataGasConfigParam.setContent(dataGasMap); + dataGasConfigParam.setOperator("casic"); + dataGasConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); + request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); + System.out.println(client.CreateCommand(request)); + client.shutdown(); + } catch (Exception ex) { + log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return; + } + } else { + return; + } + } + ); + } + + public String sendConfig(BusConfigParam busConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "config"); + dataGasMap.put("params", busConfigParam.getQueryContent()); + busConfigParam.setContent(dataGasMap); + busConfigParam.setLevel(1); + busConfigParam.setOperator("casic"); + try { + busConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + } + + public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "alarmconfig"); + dataGasMap.put("params", alarmConfigParam.getQueryContent()); + alarmConfigParam.setContent(dataGasMap); + alarmConfigParam.setLevel(1); + alarmConfigParam.setOperator("casic"); + try { + alarmConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 + CreateCommandResponse msgResponse = client.CreateCommand(request); + System.out.println(msgResponse); + client.shutdown(); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + + } + + +} \ No newline at end of file diff --git a/src/main/java/com/casic/service/PressCommandSend.java b/src/main/java/com/casic/service/PressCommandSend.java new file mode 100644 index 0000000..c63d2e8 --- /dev/null +++ b/src/main/java/com/casic/service/PressCommandSend.java @@ -0,0 +1,46 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.config.PressDeviceConfig; +import com.casic.model.BusConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandRequest; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + + +@Component +@Slf4j +public class PressCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + @Autowired + private PressDeviceConfig pressDeviceConfig; + + + public String sendConfig(BusConfigParam busConfigParam) { + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(pressDeviceConfig.getAepKey()).appSecret(pressDeviceConfig.getAepSecret()) + .build(); + try { + busConfigParam.setTtl(pressDeviceConfig.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(pressDeviceConfig.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.error("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "下发成功" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), pressDeviceConfig.getAepKey(), pressDeviceConfig.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } +} diff --git a/src/main/java/com/casic/service/PressConfigService.java b/src/main/java/com/casic/service/PressConfigService.java new file mode 100644 index 0000000..e75a62d --- /dev/null +++ b/src/main/java/com/casic/service/PressConfigService.java @@ -0,0 +1,7 @@ +package com.casic.service; + +import com.casic.model.ResponseData; + +public interface PressConfigService { + ResponseData nbPressConfig(String deviceId); +} diff --git a/src/main/java/com/casic/service/impl/AepCommandSend.java b/src/main/java/com/casic/service/impl/AepCommandSend.java deleted file mode 100644 index aa96f68..0000000 --- a/src/main/java/com/casic/service/impl/AepCommandSend.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.fastjson.JSONObject; -import com.casic.config.AEPParamConfig; -import com.casic.config.DeviceGroup; -import com.casic.model.AlarmConfigParam; -import com.casic.model.BusConfigParam; -import com.casic.model.DataGasConfigParam; -import com.ctg.ag.sdk.biz.AepDeviceCommandClient; -import com.ctg.ag.sdk.biz.aep_device_command.*; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -@Component -@Slf4j -public class AepCommandSend { - - @Autowired - private AEPParamConfig aepParamConfig; - - public void sendStatusNb(List dataGasConfigList) { - Map dataGasMap = new HashMap<>(); - Map queryMap = new HashMap<>(); - queryMap.put("query", 1); - dataGasMap.put("params", queryMap); - dataGasMap.put("serviceIdentifier", "DeviceQuery"); - dataGasConfigList.forEach( - dataGasConfigParam -> { - dataGasConfigParam.setLevel(1); - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - try { - dataGasConfigParam.setContent(dataGasMap); - dataGasConfigParam.setOperator("casic"); - dataGasConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); - request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); - System.out.println(client.CreateCommand(request)); - client.shutdown(); - } catch (Exception ex) { - log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return; - } - } else { - return; - } - } - ); - } - - public String sendConfig(BusConfigParam busConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "config"); - dataGasMap.put("params", busConfigParam.getQueryContent()); - busConfigParam.setContent(dataGasMap); - busConfigParam.setLevel(1); - busConfigParam.setOperator("casic"); - try { - busConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); - CreateCommandResponse msgResponse = client.CreateCommand(request); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - } - - public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "alarmconfig"); - dataGasMap.put("params", alarmConfigParam.getQueryContent()); - alarmConfigParam.setContent(dataGasMap); - alarmConfigParam.setLevel(1); - alarmConfigParam.setOperator("casic"); - try { - alarmConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 - CreateCommandResponse msgResponse = client.CreateCommand(request); - System.out.println(msgResponse); - client.shutdown(); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - - } - - -} \ No newline at end of file diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/controller/PressConfigController.java b/src/main/java/com/casic/controller/PressConfigController.java new file mode 100644 index 0000000..de4c98a --- /dev/null +++ b/src/main/java/com/casic/controller/PressConfigController.java @@ -0,0 +1,23 @@ +package com.casic.controller; + +import com.casic.model.ResponseData; +import com.casic.service.PressConfigService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/casic") +@AllArgsConstructor +public class PressConfigController { + + private PressConfigService pressConfigService; + + @RequestMapping("/press/config") + @ApiOperation("状态下发查询") + public ResponseData nbPressConfig(String deviceId){ + return pressConfigService.nbPressConfig( deviceId); + } + +} diff --git a/src/main/java/com/casic/dao/NbPressMapper.java b/src/main/java/com/casic/dao/NbPressMapper.java new file mode 100644 index 0000000..b5db053 --- /dev/null +++ b/src/main/java/com/casic/dao/NbPressMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.NbPress; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NbPressMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/NbPress.java b/src/main/java/com/casic/entity/NbPress.java new file mode 100644 index 0000000..9650355 --- /dev/null +++ b/src/main/java/com/casic/entity/NbPress.java @@ -0,0 +1,20 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("nb_press") +public class NbPress { + private Long id; + private String productId; + private String deviceId; + private String tenantId; + private String imei; + private String configStatus; + private Date createTime; + private Date lastUpdate; + private String cell; +} diff --git a/src/main/java/com/casic/model/ResponseData.java b/src/main/java/com/casic/model/ResponseData.java index c09b2d2..74f2ddf 100644 --- a/src/main/java/com/casic/model/ResponseData.java +++ b/src/main/java/com/casic/model/ResponseData.java @@ -51,7 +51,13 @@ this.message = message; this.data = data; } - + public static ResponseData success(String message) { + ResponseData responseData=new ResponseData(); + responseData.success = true; + responseData.code = 200; + responseData.message = message; + return responseData; + } public static ErrorResponseData error(String message) { return new ErrorResponseData(message); } diff --git a/src/main/java/com/casic/service/AepCommandSend.java b/src/main/java/com/casic/service/AepCommandSend.java new file mode 100644 index 0000000..9de59e4 --- /dev/null +++ b/src/main/java/com/casic/service/AepCommandSend.java @@ -0,0 +1,136 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.model.AlarmConfigParam; +import com.casic.model.BusConfigParam; +import com.casic.model.DataGasConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Component +@Slf4j +public class AepCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + + public void sendStatusNb(List dataGasConfigList) { + Map dataGasMap = new HashMap<>(); + Map queryMap = new HashMap<>(); + queryMap.put("query", 1); + dataGasMap.put("params", queryMap); + dataGasMap.put("serviceIdentifier", "DeviceQuery"); + dataGasConfigList.forEach( + dataGasConfigParam -> { + dataGasConfigParam.setLevel(1); + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + try { + dataGasConfigParam.setContent(dataGasMap); + dataGasConfigParam.setOperator("casic"); + dataGasConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); + request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); + System.out.println(client.CreateCommand(request)); + client.shutdown(); + } catch (Exception ex) { + log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return; + } + } else { + return; + } + } + ); + } + + public String sendConfig(BusConfigParam busConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "config"); + dataGasMap.put("params", busConfigParam.getQueryContent()); + busConfigParam.setContent(dataGasMap); + busConfigParam.setLevel(1); + busConfigParam.setOperator("casic"); + try { + busConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + } + + public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "alarmconfig"); + dataGasMap.put("params", alarmConfigParam.getQueryContent()); + alarmConfigParam.setContent(dataGasMap); + alarmConfigParam.setLevel(1); + alarmConfigParam.setOperator("casic"); + try { + alarmConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 + CreateCommandResponse msgResponse = client.CreateCommand(request); + System.out.println(msgResponse); + client.shutdown(); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + + } + + +} \ No newline at end of file diff --git a/src/main/java/com/casic/service/PressCommandSend.java b/src/main/java/com/casic/service/PressCommandSend.java new file mode 100644 index 0000000..c63d2e8 --- /dev/null +++ b/src/main/java/com/casic/service/PressCommandSend.java @@ -0,0 +1,46 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.config.PressDeviceConfig; +import com.casic.model.BusConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandRequest; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + + +@Component +@Slf4j +public class PressCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + @Autowired + private PressDeviceConfig pressDeviceConfig; + + + public String sendConfig(BusConfigParam busConfigParam) { + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(pressDeviceConfig.getAepKey()).appSecret(pressDeviceConfig.getAepSecret()) + .build(); + try { + busConfigParam.setTtl(pressDeviceConfig.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(pressDeviceConfig.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.error("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "下发成功" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), pressDeviceConfig.getAepKey(), pressDeviceConfig.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } +} diff --git a/src/main/java/com/casic/service/PressConfigService.java b/src/main/java/com/casic/service/PressConfigService.java new file mode 100644 index 0000000..e75a62d --- /dev/null +++ b/src/main/java/com/casic/service/PressConfigService.java @@ -0,0 +1,7 @@ +package com.casic.service; + +import com.casic.model.ResponseData; + +public interface PressConfigService { + ResponseData nbPressConfig(String deviceId); +} diff --git a/src/main/java/com/casic/service/impl/AepCommandSend.java b/src/main/java/com/casic/service/impl/AepCommandSend.java deleted file mode 100644 index aa96f68..0000000 --- a/src/main/java/com/casic/service/impl/AepCommandSend.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.fastjson.JSONObject; -import com.casic.config.AEPParamConfig; -import com.casic.config.DeviceGroup; -import com.casic.model.AlarmConfigParam; -import com.casic.model.BusConfigParam; -import com.casic.model.DataGasConfigParam; -import com.ctg.ag.sdk.biz.AepDeviceCommandClient; -import com.ctg.ag.sdk.biz.aep_device_command.*; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -@Component -@Slf4j -public class AepCommandSend { - - @Autowired - private AEPParamConfig aepParamConfig; - - public void sendStatusNb(List dataGasConfigList) { - Map dataGasMap = new HashMap<>(); - Map queryMap = new HashMap<>(); - queryMap.put("query", 1); - dataGasMap.put("params", queryMap); - dataGasMap.put("serviceIdentifier", "DeviceQuery"); - dataGasConfigList.forEach( - dataGasConfigParam -> { - dataGasConfigParam.setLevel(1); - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - try { - dataGasConfigParam.setContent(dataGasMap); - dataGasConfigParam.setOperator("casic"); - dataGasConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); - request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); - System.out.println(client.CreateCommand(request)); - client.shutdown(); - } catch (Exception ex) { - log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return; - } - } else { - return; - } - } - ); - } - - public String sendConfig(BusConfigParam busConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "config"); - dataGasMap.put("params", busConfigParam.getQueryContent()); - busConfigParam.setContent(dataGasMap); - busConfigParam.setLevel(1); - busConfigParam.setOperator("casic"); - try { - busConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); - CreateCommandResponse msgResponse = client.CreateCommand(request); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - } - - public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "alarmconfig"); - dataGasMap.put("params", alarmConfigParam.getQueryContent()); - alarmConfigParam.setContent(dataGasMap); - alarmConfigParam.setLevel(1); - alarmConfigParam.setOperator("casic"); - try { - alarmConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 - CreateCommandResponse msgResponse = client.CreateCommand(request); - System.out.println(msgResponse); - client.shutdown(); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - - } - - -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java index eadfa04..82cf30c 100644 --- a/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java +++ b/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java @@ -10,6 +10,7 @@ import com.casic.model.AlarmConfigParam; import com.casic.model.AlarmContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.AlarmConfigService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/controller/PressConfigController.java b/src/main/java/com/casic/controller/PressConfigController.java new file mode 100644 index 0000000..de4c98a --- /dev/null +++ b/src/main/java/com/casic/controller/PressConfigController.java @@ -0,0 +1,23 @@ +package com.casic.controller; + +import com.casic.model.ResponseData; +import com.casic.service.PressConfigService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/casic") +@AllArgsConstructor +public class PressConfigController { + + private PressConfigService pressConfigService; + + @RequestMapping("/press/config") + @ApiOperation("状态下发查询") + public ResponseData nbPressConfig(String deviceId){ + return pressConfigService.nbPressConfig( deviceId); + } + +} diff --git a/src/main/java/com/casic/dao/NbPressMapper.java b/src/main/java/com/casic/dao/NbPressMapper.java new file mode 100644 index 0000000..b5db053 --- /dev/null +++ b/src/main/java/com/casic/dao/NbPressMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.NbPress; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NbPressMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/NbPress.java b/src/main/java/com/casic/entity/NbPress.java new file mode 100644 index 0000000..9650355 --- /dev/null +++ b/src/main/java/com/casic/entity/NbPress.java @@ -0,0 +1,20 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("nb_press") +public class NbPress { + private Long id; + private String productId; + private String deviceId; + private String tenantId; + private String imei; + private String configStatus; + private Date createTime; + private Date lastUpdate; + private String cell; +} diff --git a/src/main/java/com/casic/model/ResponseData.java b/src/main/java/com/casic/model/ResponseData.java index c09b2d2..74f2ddf 100644 --- a/src/main/java/com/casic/model/ResponseData.java +++ b/src/main/java/com/casic/model/ResponseData.java @@ -51,7 +51,13 @@ this.message = message; this.data = data; } - + public static ResponseData success(String message) { + ResponseData responseData=new ResponseData(); + responseData.success = true; + responseData.code = 200; + responseData.message = message; + return responseData; + } public static ErrorResponseData error(String message) { return new ErrorResponseData(message); } diff --git a/src/main/java/com/casic/service/AepCommandSend.java b/src/main/java/com/casic/service/AepCommandSend.java new file mode 100644 index 0000000..9de59e4 --- /dev/null +++ b/src/main/java/com/casic/service/AepCommandSend.java @@ -0,0 +1,136 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.model.AlarmConfigParam; +import com.casic.model.BusConfigParam; +import com.casic.model.DataGasConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Component +@Slf4j +public class AepCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + + public void sendStatusNb(List dataGasConfigList) { + Map dataGasMap = new HashMap<>(); + Map queryMap = new HashMap<>(); + queryMap.put("query", 1); + dataGasMap.put("params", queryMap); + dataGasMap.put("serviceIdentifier", "DeviceQuery"); + dataGasConfigList.forEach( + dataGasConfigParam -> { + dataGasConfigParam.setLevel(1); + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + try { + dataGasConfigParam.setContent(dataGasMap); + dataGasConfigParam.setOperator("casic"); + dataGasConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); + request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); + System.out.println(client.CreateCommand(request)); + client.shutdown(); + } catch (Exception ex) { + log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return; + } + } else { + return; + } + } + ); + } + + public String sendConfig(BusConfigParam busConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "config"); + dataGasMap.put("params", busConfigParam.getQueryContent()); + busConfigParam.setContent(dataGasMap); + busConfigParam.setLevel(1); + busConfigParam.setOperator("casic"); + try { + busConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + } + + public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "alarmconfig"); + dataGasMap.put("params", alarmConfigParam.getQueryContent()); + alarmConfigParam.setContent(dataGasMap); + alarmConfigParam.setLevel(1); + alarmConfigParam.setOperator("casic"); + try { + alarmConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 + CreateCommandResponse msgResponse = client.CreateCommand(request); + System.out.println(msgResponse); + client.shutdown(); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + + } + + +} \ No newline at end of file diff --git a/src/main/java/com/casic/service/PressCommandSend.java b/src/main/java/com/casic/service/PressCommandSend.java new file mode 100644 index 0000000..c63d2e8 --- /dev/null +++ b/src/main/java/com/casic/service/PressCommandSend.java @@ -0,0 +1,46 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.config.PressDeviceConfig; +import com.casic.model.BusConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandRequest; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + + +@Component +@Slf4j +public class PressCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + @Autowired + private PressDeviceConfig pressDeviceConfig; + + + public String sendConfig(BusConfigParam busConfigParam) { + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(pressDeviceConfig.getAepKey()).appSecret(pressDeviceConfig.getAepSecret()) + .build(); + try { + busConfigParam.setTtl(pressDeviceConfig.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(pressDeviceConfig.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.error("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "下发成功" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), pressDeviceConfig.getAepKey(), pressDeviceConfig.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } +} diff --git a/src/main/java/com/casic/service/PressConfigService.java b/src/main/java/com/casic/service/PressConfigService.java new file mode 100644 index 0000000..e75a62d --- /dev/null +++ b/src/main/java/com/casic/service/PressConfigService.java @@ -0,0 +1,7 @@ +package com.casic.service; + +import com.casic.model.ResponseData; + +public interface PressConfigService { + ResponseData nbPressConfig(String deviceId); +} diff --git a/src/main/java/com/casic/service/impl/AepCommandSend.java b/src/main/java/com/casic/service/impl/AepCommandSend.java deleted file mode 100644 index aa96f68..0000000 --- a/src/main/java/com/casic/service/impl/AepCommandSend.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.fastjson.JSONObject; -import com.casic.config.AEPParamConfig; -import com.casic.config.DeviceGroup; -import com.casic.model.AlarmConfigParam; -import com.casic.model.BusConfigParam; -import com.casic.model.DataGasConfigParam; -import com.ctg.ag.sdk.biz.AepDeviceCommandClient; -import com.ctg.ag.sdk.biz.aep_device_command.*; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -@Component -@Slf4j -public class AepCommandSend { - - @Autowired - private AEPParamConfig aepParamConfig; - - public void sendStatusNb(List dataGasConfigList) { - Map dataGasMap = new HashMap<>(); - Map queryMap = new HashMap<>(); - queryMap.put("query", 1); - dataGasMap.put("params", queryMap); - dataGasMap.put("serviceIdentifier", "DeviceQuery"); - dataGasConfigList.forEach( - dataGasConfigParam -> { - dataGasConfigParam.setLevel(1); - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - try { - dataGasConfigParam.setContent(dataGasMap); - dataGasConfigParam.setOperator("casic"); - dataGasConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); - request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); - System.out.println(client.CreateCommand(request)); - client.shutdown(); - } catch (Exception ex) { - log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return; - } - } else { - return; - } - } - ); - } - - public String sendConfig(BusConfigParam busConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "config"); - dataGasMap.put("params", busConfigParam.getQueryContent()); - busConfigParam.setContent(dataGasMap); - busConfigParam.setLevel(1); - busConfigParam.setOperator("casic"); - try { - busConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); - CreateCommandResponse msgResponse = client.CreateCommand(request); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - } - - public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "alarmconfig"); - dataGasMap.put("params", alarmConfigParam.getQueryContent()); - alarmConfigParam.setContent(dataGasMap); - alarmConfigParam.setLevel(1); - alarmConfigParam.setOperator("casic"); - try { - alarmConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 - CreateCommandResponse msgResponse = client.CreateCommand(request); - System.out.println(msgResponse); - client.shutdown(); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - - } - - -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java index eadfa04..82cf30c 100644 --- a/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java +++ b/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java @@ -10,6 +10,7 @@ import com.casic.model.AlarmConfigParam; import com.casic.model.AlarmContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.AlarmConfigService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java index 57d13f0..78751c7 100644 --- a/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java @@ -9,6 +9,7 @@ import com.casic.model.BusConfigParam; import com.casic.model.QueryContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.DeviceConfigService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/controller/PressConfigController.java b/src/main/java/com/casic/controller/PressConfigController.java new file mode 100644 index 0000000..de4c98a --- /dev/null +++ b/src/main/java/com/casic/controller/PressConfigController.java @@ -0,0 +1,23 @@ +package com.casic.controller; + +import com.casic.model.ResponseData; +import com.casic.service.PressConfigService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/casic") +@AllArgsConstructor +public class PressConfigController { + + private PressConfigService pressConfigService; + + @RequestMapping("/press/config") + @ApiOperation("状态下发查询") + public ResponseData nbPressConfig(String deviceId){ + return pressConfigService.nbPressConfig( deviceId); + } + +} diff --git a/src/main/java/com/casic/dao/NbPressMapper.java b/src/main/java/com/casic/dao/NbPressMapper.java new file mode 100644 index 0000000..b5db053 --- /dev/null +++ b/src/main/java/com/casic/dao/NbPressMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.NbPress; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NbPressMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/NbPress.java b/src/main/java/com/casic/entity/NbPress.java new file mode 100644 index 0000000..9650355 --- /dev/null +++ b/src/main/java/com/casic/entity/NbPress.java @@ -0,0 +1,20 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("nb_press") +public class NbPress { + private Long id; + private String productId; + private String deviceId; + private String tenantId; + private String imei; + private String configStatus; + private Date createTime; + private Date lastUpdate; + private String cell; +} diff --git a/src/main/java/com/casic/model/ResponseData.java b/src/main/java/com/casic/model/ResponseData.java index c09b2d2..74f2ddf 100644 --- a/src/main/java/com/casic/model/ResponseData.java +++ b/src/main/java/com/casic/model/ResponseData.java @@ -51,7 +51,13 @@ this.message = message; this.data = data; } - + public static ResponseData success(String message) { + ResponseData responseData=new ResponseData(); + responseData.success = true; + responseData.code = 200; + responseData.message = message; + return responseData; + } public static ErrorResponseData error(String message) { return new ErrorResponseData(message); } diff --git a/src/main/java/com/casic/service/AepCommandSend.java b/src/main/java/com/casic/service/AepCommandSend.java new file mode 100644 index 0000000..9de59e4 --- /dev/null +++ b/src/main/java/com/casic/service/AepCommandSend.java @@ -0,0 +1,136 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.model.AlarmConfigParam; +import com.casic.model.BusConfigParam; +import com.casic.model.DataGasConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Component +@Slf4j +public class AepCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + + public void sendStatusNb(List dataGasConfigList) { + Map dataGasMap = new HashMap<>(); + Map queryMap = new HashMap<>(); + queryMap.put("query", 1); + dataGasMap.put("params", queryMap); + dataGasMap.put("serviceIdentifier", "DeviceQuery"); + dataGasConfigList.forEach( + dataGasConfigParam -> { + dataGasConfigParam.setLevel(1); + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + try { + dataGasConfigParam.setContent(dataGasMap); + dataGasConfigParam.setOperator("casic"); + dataGasConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); + request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); + System.out.println(client.CreateCommand(request)); + client.shutdown(); + } catch (Exception ex) { + log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return; + } + } else { + return; + } + } + ); + } + + public String sendConfig(BusConfigParam busConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "config"); + dataGasMap.put("params", busConfigParam.getQueryContent()); + busConfigParam.setContent(dataGasMap); + busConfigParam.setLevel(1); + busConfigParam.setOperator("casic"); + try { + busConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + } + + public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "alarmconfig"); + dataGasMap.put("params", alarmConfigParam.getQueryContent()); + alarmConfigParam.setContent(dataGasMap); + alarmConfigParam.setLevel(1); + alarmConfigParam.setOperator("casic"); + try { + alarmConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 + CreateCommandResponse msgResponse = client.CreateCommand(request); + System.out.println(msgResponse); + client.shutdown(); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + + } + + +} \ No newline at end of file diff --git a/src/main/java/com/casic/service/PressCommandSend.java b/src/main/java/com/casic/service/PressCommandSend.java new file mode 100644 index 0000000..c63d2e8 --- /dev/null +++ b/src/main/java/com/casic/service/PressCommandSend.java @@ -0,0 +1,46 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.config.PressDeviceConfig; +import com.casic.model.BusConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandRequest; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + + +@Component +@Slf4j +public class PressCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + @Autowired + private PressDeviceConfig pressDeviceConfig; + + + public String sendConfig(BusConfigParam busConfigParam) { + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(pressDeviceConfig.getAepKey()).appSecret(pressDeviceConfig.getAepSecret()) + .build(); + try { + busConfigParam.setTtl(pressDeviceConfig.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(pressDeviceConfig.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.error("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "下发成功" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), pressDeviceConfig.getAepKey(), pressDeviceConfig.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } +} diff --git a/src/main/java/com/casic/service/PressConfigService.java b/src/main/java/com/casic/service/PressConfigService.java new file mode 100644 index 0000000..e75a62d --- /dev/null +++ b/src/main/java/com/casic/service/PressConfigService.java @@ -0,0 +1,7 @@ +package com.casic.service; + +import com.casic.model.ResponseData; + +public interface PressConfigService { + ResponseData nbPressConfig(String deviceId); +} diff --git a/src/main/java/com/casic/service/impl/AepCommandSend.java b/src/main/java/com/casic/service/impl/AepCommandSend.java deleted file mode 100644 index aa96f68..0000000 --- a/src/main/java/com/casic/service/impl/AepCommandSend.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.fastjson.JSONObject; -import com.casic.config.AEPParamConfig; -import com.casic.config.DeviceGroup; -import com.casic.model.AlarmConfigParam; -import com.casic.model.BusConfigParam; -import com.casic.model.DataGasConfigParam; -import com.ctg.ag.sdk.biz.AepDeviceCommandClient; -import com.ctg.ag.sdk.biz.aep_device_command.*; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -@Component -@Slf4j -public class AepCommandSend { - - @Autowired - private AEPParamConfig aepParamConfig; - - public void sendStatusNb(List dataGasConfigList) { - Map dataGasMap = new HashMap<>(); - Map queryMap = new HashMap<>(); - queryMap.put("query", 1); - dataGasMap.put("params", queryMap); - dataGasMap.put("serviceIdentifier", "DeviceQuery"); - dataGasConfigList.forEach( - dataGasConfigParam -> { - dataGasConfigParam.setLevel(1); - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - try { - dataGasConfigParam.setContent(dataGasMap); - dataGasConfigParam.setOperator("casic"); - dataGasConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); - request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); - System.out.println(client.CreateCommand(request)); - client.shutdown(); - } catch (Exception ex) { - log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return; - } - } else { - return; - } - } - ); - } - - public String sendConfig(BusConfigParam busConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "config"); - dataGasMap.put("params", busConfigParam.getQueryContent()); - busConfigParam.setContent(dataGasMap); - busConfigParam.setLevel(1); - busConfigParam.setOperator("casic"); - try { - busConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); - CreateCommandResponse msgResponse = client.CreateCommand(request); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - } - - public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "alarmconfig"); - dataGasMap.put("params", alarmConfigParam.getQueryContent()); - alarmConfigParam.setContent(dataGasMap); - alarmConfigParam.setLevel(1); - alarmConfigParam.setOperator("casic"); - try { - alarmConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 - CreateCommandResponse msgResponse = client.CreateCommand(request); - System.out.println(msgResponse); - client.shutdown(); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - - } - - -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java index eadfa04..82cf30c 100644 --- a/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java +++ b/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java @@ -10,6 +10,7 @@ import com.casic.model.AlarmConfigParam; import com.casic.model.AlarmContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.AlarmConfigService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java index 57d13f0..78751c7 100644 --- a/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java @@ -9,6 +9,7 @@ import com.casic.model.BusConfigParam; import com.casic.model.QueryContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.DeviceConfigService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java b/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java index 5f279e4..0bc20ed 100644 --- a/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java +++ b/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java @@ -10,6 +10,7 @@ import com.casic.entity.NbDevice; import com.casic.model.DataGasConfigParam; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.GasDataRecvService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/controller/PressConfigController.java b/src/main/java/com/casic/controller/PressConfigController.java new file mode 100644 index 0000000..de4c98a --- /dev/null +++ b/src/main/java/com/casic/controller/PressConfigController.java @@ -0,0 +1,23 @@ +package com.casic.controller; + +import com.casic.model.ResponseData; +import com.casic.service.PressConfigService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/casic") +@AllArgsConstructor +public class PressConfigController { + + private PressConfigService pressConfigService; + + @RequestMapping("/press/config") + @ApiOperation("状态下发查询") + public ResponseData nbPressConfig(String deviceId){ + return pressConfigService.nbPressConfig( deviceId); + } + +} diff --git a/src/main/java/com/casic/dao/NbPressMapper.java b/src/main/java/com/casic/dao/NbPressMapper.java new file mode 100644 index 0000000..b5db053 --- /dev/null +++ b/src/main/java/com/casic/dao/NbPressMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.NbPress; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NbPressMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/NbPress.java b/src/main/java/com/casic/entity/NbPress.java new file mode 100644 index 0000000..9650355 --- /dev/null +++ b/src/main/java/com/casic/entity/NbPress.java @@ -0,0 +1,20 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("nb_press") +public class NbPress { + private Long id; + private String productId; + private String deviceId; + private String tenantId; + private String imei; + private String configStatus; + private Date createTime; + private Date lastUpdate; + private String cell; +} diff --git a/src/main/java/com/casic/model/ResponseData.java b/src/main/java/com/casic/model/ResponseData.java index c09b2d2..74f2ddf 100644 --- a/src/main/java/com/casic/model/ResponseData.java +++ b/src/main/java/com/casic/model/ResponseData.java @@ -51,7 +51,13 @@ this.message = message; this.data = data; } - + public static ResponseData success(String message) { + ResponseData responseData=new ResponseData(); + responseData.success = true; + responseData.code = 200; + responseData.message = message; + return responseData; + } public static ErrorResponseData error(String message) { return new ErrorResponseData(message); } diff --git a/src/main/java/com/casic/service/AepCommandSend.java b/src/main/java/com/casic/service/AepCommandSend.java new file mode 100644 index 0000000..9de59e4 --- /dev/null +++ b/src/main/java/com/casic/service/AepCommandSend.java @@ -0,0 +1,136 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.model.AlarmConfigParam; +import com.casic.model.BusConfigParam; +import com.casic.model.DataGasConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Component +@Slf4j +public class AepCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + + public void sendStatusNb(List dataGasConfigList) { + Map dataGasMap = new HashMap<>(); + Map queryMap = new HashMap<>(); + queryMap.put("query", 1); + dataGasMap.put("params", queryMap); + dataGasMap.put("serviceIdentifier", "DeviceQuery"); + dataGasConfigList.forEach( + dataGasConfigParam -> { + dataGasConfigParam.setLevel(1); + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + try { + dataGasConfigParam.setContent(dataGasMap); + dataGasConfigParam.setOperator("casic"); + dataGasConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); + request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); + System.out.println(client.CreateCommand(request)); + client.shutdown(); + } catch (Exception ex) { + log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return; + } + } else { + return; + } + } + ); + } + + public String sendConfig(BusConfigParam busConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "config"); + dataGasMap.put("params", busConfigParam.getQueryContent()); + busConfigParam.setContent(dataGasMap); + busConfigParam.setLevel(1); + busConfigParam.setOperator("casic"); + try { + busConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + } + + public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "alarmconfig"); + dataGasMap.put("params", alarmConfigParam.getQueryContent()); + alarmConfigParam.setContent(dataGasMap); + alarmConfigParam.setLevel(1); + alarmConfigParam.setOperator("casic"); + try { + alarmConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 + CreateCommandResponse msgResponse = client.CreateCommand(request); + System.out.println(msgResponse); + client.shutdown(); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + + } + + +} \ No newline at end of file diff --git a/src/main/java/com/casic/service/PressCommandSend.java b/src/main/java/com/casic/service/PressCommandSend.java new file mode 100644 index 0000000..c63d2e8 --- /dev/null +++ b/src/main/java/com/casic/service/PressCommandSend.java @@ -0,0 +1,46 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.config.PressDeviceConfig; +import com.casic.model.BusConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandRequest; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + + +@Component +@Slf4j +public class PressCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + @Autowired + private PressDeviceConfig pressDeviceConfig; + + + public String sendConfig(BusConfigParam busConfigParam) { + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(pressDeviceConfig.getAepKey()).appSecret(pressDeviceConfig.getAepSecret()) + .build(); + try { + busConfigParam.setTtl(pressDeviceConfig.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(pressDeviceConfig.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.error("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "下发成功" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), pressDeviceConfig.getAepKey(), pressDeviceConfig.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } +} diff --git a/src/main/java/com/casic/service/PressConfigService.java b/src/main/java/com/casic/service/PressConfigService.java new file mode 100644 index 0000000..e75a62d --- /dev/null +++ b/src/main/java/com/casic/service/PressConfigService.java @@ -0,0 +1,7 @@ +package com.casic.service; + +import com.casic.model.ResponseData; + +public interface PressConfigService { + ResponseData nbPressConfig(String deviceId); +} diff --git a/src/main/java/com/casic/service/impl/AepCommandSend.java b/src/main/java/com/casic/service/impl/AepCommandSend.java deleted file mode 100644 index aa96f68..0000000 --- a/src/main/java/com/casic/service/impl/AepCommandSend.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.fastjson.JSONObject; -import com.casic.config.AEPParamConfig; -import com.casic.config.DeviceGroup; -import com.casic.model.AlarmConfigParam; -import com.casic.model.BusConfigParam; -import com.casic.model.DataGasConfigParam; -import com.ctg.ag.sdk.biz.AepDeviceCommandClient; -import com.ctg.ag.sdk.biz.aep_device_command.*; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -@Component -@Slf4j -public class AepCommandSend { - - @Autowired - private AEPParamConfig aepParamConfig; - - public void sendStatusNb(List dataGasConfigList) { - Map dataGasMap = new HashMap<>(); - Map queryMap = new HashMap<>(); - queryMap.put("query", 1); - dataGasMap.put("params", queryMap); - dataGasMap.put("serviceIdentifier", "DeviceQuery"); - dataGasConfigList.forEach( - dataGasConfigParam -> { - dataGasConfigParam.setLevel(1); - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - try { - dataGasConfigParam.setContent(dataGasMap); - dataGasConfigParam.setOperator("casic"); - dataGasConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); - request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); - System.out.println(client.CreateCommand(request)); - client.shutdown(); - } catch (Exception ex) { - log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return; - } - } else { - return; - } - } - ); - } - - public String sendConfig(BusConfigParam busConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "config"); - dataGasMap.put("params", busConfigParam.getQueryContent()); - busConfigParam.setContent(dataGasMap); - busConfigParam.setLevel(1); - busConfigParam.setOperator("casic"); - try { - busConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); - CreateCommandResponse msgResponse = client.CreateCommand(request); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - } - - public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "alarmconfig"); - dataGasMap.put("params", alarmConfigParam.getQueryContent()); - alarmConfigParam.setContent(dataGasMap); - alarmConfigParam.setLevel(1); - alarmConfigParam.setOperator("casic"); - try { - alarmConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 - CreateCommandResponse msgResponse = client.CreateCommand(request); - System.out.println(msgResponse); - client.shutdown(); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - - } - - -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java index eadfa04..82cf30c 100644 --- a/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java +++ b/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java @@ -10,6 +10,7 @@ import com.casic.model.AlarmConfigParam; import com.casic.model.AlarmContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.AlarmConfigService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java index 57d13f0..78751c7 100644 --- a/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java @@ -9,6 +9,7 @@ import com.casic.model.BusConfigParam; import com.casic.model.QueryContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.DeviceConfigService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java b/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java index 5f279e4..0bc20ed 100644 --- a/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java +++ b/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java @@ -10,6 +10,7 @@ import com.casic.entity.NbDevice; import com.casic.model.DataGasConfigParam; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.GasDataRecvService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java b/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java index 7cc59bb..5c03575 100644 --- a/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java +++ b/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java @@ -5,12 +5,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.dao.NbConfigMapper; import com.casic.dao.NbDeviceMapper; -import com.casic.entity.NbConfig; import com.casic.entity.NbDevice; -import com.casic.model.BusConfigParam; import com.casic.model.DataGasConfigParam; -import com.casic.model.QueryContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.GasDeviceService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/controller/PressConfigController.java b/src/main/java/com/casic/controller/PressConfigController.java new file mode 100644 index 0000000..de4c98a --- /dev/null +++ b/src/main/java/com/casic/controller/PressConfigController.java @@ -0,0 +1,23 @@ +package com.casic.controller; + +import com.casic.model.ResponseData; +import com.casic.service.PressConfigService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/casic") +@AllArgsConstructor +public class PressConfigController { + + private PressConfigService pressConfigService; + + @RequestMapping("/press/config") + @ApiOperation("状态下发查询") + public ResponseData nbPressConfig(String deviceId){ + return pressConfigService.nbPressConfig( deviceId); + } + +} diff --git a/src/main/java/com/casic/dao/NbPressMapper.java b/src/main/java/com/casic/dao/NbPressMapper.java new file mode 100644 index 0000000..b5db053 --- /dev/null +++ b/src/main/java/com/casic/dao/NbPressMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.NbPress; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NbPressMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/NbPress.java b/src/main/java/com/casic/entity/NbPress.java new file mode 100644 index 0000000..9650355 --- /dev/null +++ b/src/main/java/com/casic/entity/NbPress.java @@ -0,0 +1,20 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("nb_press") +public class NbPress { + private Long id; + private String productId; + private String deviceId; + private String tenantId; + private String imei; + private String configStatus; + private Date createTime; + private Date lastUpdate; + private String cell; +} diff --git a/src/main/java/com/casic/model/ResponseData.java b/src/main/java/com/casic/model/ResponseData.java index c09b2d2..74f2ddf 100644 --- a/src/main/java/com/casic/model/ResponseData.java +++ b/src/main/java/com/casic/model/ResponseData.java @@ -51,7 +51,13 @@ this.message = message; this.data = data; } - + public static ResponseData success(String message) { + ResponseData responseData=new ResponseData(); + responseData.success = true; + responseData.code = 200; + responseData.message = message; + return responseData; + } public static ErrorResponseData error(String message) { return new ErrorResponseData(message); } diff --git a/src/main/java/com/casic/service/AepCommandSend.java b/src/main/java/com/casic/service/AepCommandSend.java new file mode 100644 index 0000000..9de59e4 --- /dev/null +++ b/src/main/java/com/casic/service/AepCommandSend.java @@ -0,0 +1,136 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.model.AlarmConfigParam; +import com.casic.model.BusConfigParam; +import com.casic.model.DataGasConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Component +@Slf4j +public class AepCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + + public void sendStatusNb(List dataGasConfigList) { + Map dataGasMap = new HashMap<>(); + Map queryMap = new HashMap<>(); + queryMap.put("query", 1); + dataGasMap.put("params", queryMap); + dataGasMap.put("serviceIdentifier", "DeviceQuery"); + dataGasConfigList.forEach( + dataGasConfigParam -> { + dataGasConfigParam.setLevel(1); + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + try { + dataGasConfigParam.setContent(dataGasMap); + dataGasConfigParam.setOperator("casic"); + dataGasConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); + request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); + System.out.println(client.CreateCommand(request)); + client.shutdown(); + } catch (Exception ex) { + log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return; + } + } else { + return; + } + } + ); + } + + public String sendConfig(BusConfigParam busConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "config"); + dataGasMap.put("params", busConfigParam.getQueryContent()); + busConfigParam.setContent(dataGasMap); + busConfigParam.setLevel(1); + busConfigParam.setOperator("casic"); + try { + busConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + } + + public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "alarmconfig"); + dataGasMap.put("params", alarmConfigParam.getQueryContent()); + alarmConfigParam.setContent(dataGasMap); + alarmConfigParam.setLevel(1); + alarmConfigParam.setOperator("casic"); + try { + alarmConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 + CreateCommandResponse msgResponse = client.CreateCommand(request); + System.out.println(msgResponse); + client.shutdown(); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + + } + + +} \ No newline at end of file diff --git a/src/main/java/com/casic/service/PressCommandSend.java b/src/main/java/com/casic/service/PressCommandSend.java new file mode 100644 index 0000000..c63d2e8 --- /dev/null +++ b/src/main/java/com/casic/service/PressCommandSend.java @@ -0,0 +1,46 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.config.PressDeviceConfig; +import com.casic.model.BusConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandRequest; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + + +@Component +@Slf4j +public class PressCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + @Autowired + private PressDeviceConfig pressDeviceConfig; + + + public String sendConfig(BusConfigParam busConfigParam) { + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(pressDeviceConfig.getAepKey()).appSecret(pressDeviceConfig.getAepSecret()) + .build(); + try { + busConfigParam.setTtl(pressDeviceConfig.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(pressDeviceConfig.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.error("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "下发成功" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), pressDeviceConfig.getAepKey(), pressDeviceConfig.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } +} diff --git a/src/main/java/com/casic/service/PressConfigService.java b/src/main/java/com/casic/service/PressConfigService.java new file mode 100644 index 0000000..e75a62d --- /dev/null +++ b/src/main/java/com/casic/service/PressConfigService.java @@ -0,0 +1,7 @@ +package com.casic.service; + +import com.casic.model.ResponseData; + +public interface PressConfigService { + ResponseData nbPressConfig(String deviceId); +} diff --git a/src/main/java/com/casic/service/impl/AepCommandSend.java b/src/main/java/com/casic/service/impl/AepCommandSend.java deleted file mode 100644 index aa96f68..0000000 --- a/src/main/java/com/casic/service/impl/AepCommandSend.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.fastjson.JSONObject; -import com.casic.config.AEPParamConfig; -import com.casic.config.DeviceGroup; -import com.casic.model.AlarmConfigParam; -import com.casic.model.BusConfigParam; -import com.casic.model.DataGasConfigParam; -import com.ctg.ag.sdk.biz.AepDeviceCommandClient; -import com.ctg.ag.sdk.biz.aep_device_command.*; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -@Component -@Slf4j -public class AepCommandSend { - - @Autowired - private AEPParamConfig aepParamConfig; - - public void sendStatusNb(List dataGasConfigList) { - Map dataGasMap = new HashMap<>(); - Map queryMap = new HashMap<>(); - queryMap.put("query", 1); - dataGasMap.put("params", queryMap); - dataGasMap.put("serviceIdentifier", "DeviceQuery"); - dataGasConfigList.forEach( - dataGasConfigParam -> { - dataGasConfigParam.setLevel(1); - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - try { - dataGasConfigParam.setContent(dataGasMap); - dataGasConfigParam.setOperator("casic"); - dataGasConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); - request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); - System.out.println(client.CreateCommand(request)); - client.shutdown(); - } catch (Exception ex) { - log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return; - } - } else { - return; - } - } - ); - } - - public String sendConfig(BusConfigParam busConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "config"); - dataGasMap.put("params", busConfigParam.getQueryContent()); - busConfigParam.setContent(dataGasMap); - busConfigParam.setLevel(1); - busConfigParam.setOperator("casic"); - try { - busConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); - CreateCommandResponse msgResponse = client.CreateCommand(request); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - } - - public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "alarmconfig"); - dataGasMap.put("params", alarmConfigParam.getQueryContent()); - alarmConfigParam.setContent(dataGasMap); - alarmConfigParam.setLevel(1); - alarmConfigParam.setOperator("casic"); - try { - alarmConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 - CreateCommandResponse msgResponse = client.CreateCommand(request); - System.out.println(msgResponse); - client.shutdown(); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - - } - - -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java index eadfa04..82cf30c 100644 --- a/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java +++ b/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java @@ -10,6 +10,7 @@ import com.casic.model.AlarmConfigParam; import com.casic.model.AlarmContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.AlarmConfigService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java index 57d13f0..78751c7 100644 --- a/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java @@ -9,6 +9,7 @@ import com.casic.model.BusConfigParam; import com.casic.model.QueryContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.DeviceConfigService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java b/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java index 5f279e4..0bc20ed 100644 --- a/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java +++ b/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java @@ -10,6 +10,7 @@ import com.casic.entity.NbDevice; import com.casic.model.DataGasConfigParam; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.GasDataRecvService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java b/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java index 7cc59bb..5c03575 100644 --- a/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java +++ b/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java @@ -5,12 +5,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.dao.NbConfigMapper; import com.casic.dao.NbDeviceMapper; -import com.casic.entity.NbConfig; import com.casic.entity.NbDevice; -import com.casic.model.BusConfigParam; import com.casic.model.DataGasConfigParam; -import com.casic.model.QueryContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.GasDeviceService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/PressConfigServiceImpl.java b/src/main/java/com/casic/service/impl/PressConfigServiceImpl.java new file mode 100644 index 0000000..308f556 --- /dev/null +++ b/src/main/java/com/casic/service/impl/PressConfigServiceImpl.java @@ -0,0 +1,71 @@ +package com.casic.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.dao.NbPressMapper; +import com.casic.entity.NbPress; +import com.casic.model.BusConfigParam; +import com.casic.model.ResponseData; +import com.casic.service.PressCommandSend; +import com.casic.service.PressConfigService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +@AllArgsConstructor +public class PressConfigServiceImpl extends ServiceImpl implements PressConfigService { + private final PressCommandSend pressCommandSend; + @Override + @Transactional + public ResponseData nbPressConfig(String deviceId) { + BusConfigParam busConfigParam=nbPressConfigCreator(); + if(StringUtils.isEmpty(deviceId)){ + List nbPressList = this.baseMapper.selectList(null); + for (NbPress nbPress : nbPressList) { + busConfigParam.setProductId(nbPress.getProductId()); + busConfigParam.setDeviceId(nbPress.getDeviceId()); + String status = pressCommandSend.sendConfig(busConfigParam); + nbPress.setConfigStatus(status); + } + this.saveOrUpdateBatch(nbPressList); + return ResponseData.success("批量下发成功"); + }else { + QueryWrapper nbPressWrapper= new QueryWrapper().eq("device_id",deviceId); + List nbPressList = this.baseMapper.selectList(nbPressWrapper); + if(CollectionUtils.isEmpty(nbPressList)){ + return ResponseData.error("id不存在"); + }else { + NbPress nbPress=nbPressList.stream().findFirst().get(); + busConfigParam.setProductId(nbPress.getProductId()); + busConfigParam.setDeviceId(nbPress.getDeviceId()); + String status = pressCommandSend.sendConfig(busConfigParam); + nbPress.setConfigStatus(status); + this.baseMapper.updateById(nbPress); + return ResponseData.success("下发成功"); + } + } + } + + private BusConfigParam nbPressConfigCreator() { + BusConfigParam busConfigParam = new BusConfigParam(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "parameter"); + Map params = new HashMap<>(); + params.put("BR","1"); + dataGasMap.put("params", params); + busConfigParam.setContent(dataGasMap); + busConfigParam.setLevel(1); + busConfigParam.setOperator("casic"); + return busConfigParam; + } + +} diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/controller/PressConfigController.java b/src/main/java/com/casic/controller/PressConfigController.java new file mode 100644 index 0000000..de4c98a --- /dev/null +++ b/src/main/java/com/casic/controller/PressConfigController.java @@ -0,0 +1,23 @@ +package com.casic.controller; + +import com.casic.model.ResponseData; +import com.casic.service.PressConfigService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/casic") +@AllArgsConstructor +public class PressConfigController { + + private PressConfigService pressConfigService; + + @RequestMapping("/press/config") + @ApiOperation("状态下发查询") + public ResponseData nbPressConfig(String deviceId){ + return pressConfigService.nbPressConfig( deviceId); + } + +} diff --git a/src/main/java/com/casic/dao/NbPressMapper.java b/src/main/java/com/casic/dao/NbPressMapper.java new file mode 100644 index 0000000..b5db053 --- /dev/null +++ b/src/main/java/com/casic/dao/NbPressMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.NbPress; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NbPressMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/NbPress.java b/src/main/java/com/casic/entity/NbPress.java new file mode 100644 index 0000000..9650355 --- /dev/null +++ b/src/main/java/com/casic/entity/NbPress.java @@ -0,0 +1,20 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("nb_press") +public class NbPress { + private Long id; + private String productId; + private String deviceId; + private String tenantId; + private String imei; + private String configStatus; + private Date createTime; + private Date lastUpdate; + private String cell; +} diff --git a/src/main/java/com/casic/model/ResponseData.java b/src/main/java/com/casic/model/ResponseData.java index c09b2d2..74f2ddf 100644 --- a/src/main/java/com/casic/model/ResponseData.java +++ b/src/main/java/com/casic/model/ResponseData.java @@ -51,7 +51,13 @@ this.message = message; this.data = data; } - + public static ResponseData success(String message) { + ResponseData responseData=new ResponseData(); + responseData.success = true; + responseData.code = 200; + responseData.message = message; + return responseData; + } public static ErrorResponseData error(String message) { return new ErrorResponseData(message); } diff --git a/src/main/java/com/casic/service/AepCommandSend.java b/src/main/java/com/casic/service/AepCommandSend.java new file mode 100644 index 0000000..9de59e4 --- /dev/null +++ b/src/main/java/com/casic/service/AepCommandSend.java @@ -0,0 +1,136 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.model.AlarmConfigParam; +import com.casic.model.BusConfigParam; +import com.casic.model.DataGasConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Component +@Slf4j +public class AepCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + + public void sendStatusNb(List dataGasConfigList) { + Map dataGasMap = new HashMap<>(); + Map queryMap = new HashMap<>(); + queryMap.put("query", 1); + dataGasMap.put("params", queryMap); + dataGasMap.put("serviceIdentifier", "DeviceQuery"); + dataGasConfigList.forEach( + dataGasConfigParam -> { + dataGasConfigParam.setLevel(1); + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + try { + dataGasConfigParam.setContent(dataGasMap); + dataGasConfigParam.setOperator("casic"); + dataGasConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); + request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); + System.out.println(client.CreateCommand(request)); + client.shutdown(); + } catch (Exception ex) { + log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return; + } + } else { + return; + } + } + ); + } + + public String sendConfig(BusConfigParam busConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "config"); + dataGasMap.put("params", busConfigParam.getQueryContent()); + busConfigParam.setContent(dataGasMap); + busConfigParam.setLevel(1); + busConfigParam.setOperator("casic"); + try { + busConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + } + + public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "alarmconfig"); + dataGasMap.put("params", alarmConfigParam.getQueryContent()); + alarmConfigParam.setContent(dataGasMap); + alarmConfigParam.setLevel(1); + alarmConfigParam.setOperator("casic"); + try { + alarmConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 + CreateCommandResponse msgResponse = client.CreateCommand(request); + System.out.println(msgResponse); + client.shutdown(); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + + } + + +} \ No newline at end of file diff --git a/src/main/java/com/casic/service/PressCommandSend.java b/src/main/java/com/casic/service/PressCommandSend.java new file mode 100644 index 0000000..c63d2e8 --- /dev/null +++ b/src/main/java/com/casic/service/PressCommandSend.java @@ -0,0 +1,46 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.config.PressDeviceConfig; +import com.casic.model.BusConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandRequest; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + + +@Component +@Slf4j +public class PressCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + @Autowired + private PressDeviceConfig pressDeviceConfig; + + + public String sendConfig(BusConfigParam busConfigParam) { + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(pressDeviceConfig.getAepKey()).appSecret(pressDeviceConfig.getAepSecret()) + .build(); + try { + busConfigParam.setTtl(pressDeviceConfig.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(pressDeviceConfig.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.error("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "下发成功" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), pressDeviceConfig.getAepKey(), pressDeviceConfig.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } +} diff --git a/src/main/java/com/casic/service/PressConfigService.java b/src/main/java/com/casic/service/PressConfigService.java new file mode 100644 index 0000000..e75a62d --- /dev/null +++ b/src/main/java/com/casic/service/PressConfigService.java @@ -0,0 +1,7 @@ +package com.casic.service; + +import com.casic.model.ResponseData; + +public interface PressConfigService { + ResponseData nbPressConfig(String deviceId); +} diff --git a/src/main/java/com/casic/service/impl/AepCommandSend.java b/src/main/java/com/casic/service/impl/AepCommandSend.java deleted file mode 100644 index aa96f68..0000000 --- a/src/main/java/com/casic/service/impl/AepCommandSend.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.fastjson.JSONObject; -import com.casic.config.AEPParamConfig; -import com.casic.config.DeviceGroup; -import com.casic.model.AlarmConfigParam; -import com.casic.model.BusConfigParam; -import com.casic.model.DataGasConfigParam; -import com.ctg.ag.sdk.biz.AepDeviceCommandClient; -import com.ctg.ag.sdk.biz.aep_device_command.*; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -@Component -@Slf4j -public class AepCommandSend { - - @Autowired - private AEPParamConfig aepParamConfig; - - public void sendStatusNb(List dataGasConfigList) { - Map dataGasMap = new HashMap<>(); - Map queryMap = new HashMap<>(); - queryMap.put("query", 1); - dataGasMap.put("params", queryMap); - dataGasMap.put("serviceIdentifier", "DeviceQuery"); - dataGasConfigList.forEach( - dataGasConfigParam -> { - dataGasConfigParam.setLevel(1); - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - try { - dataGasConfigParam.setContent(dataGasMap); - dataGasConfigParam.setOperator("casic"); - dataGasConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); - request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); - System.out.println(client.CreateCommand(request)); - client.shutdown(); - } catch (Exception ex) { - log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return; - } - } else { - return; - } - } - ); - } - - public String sendConfig(BusConfigParam busConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "config"); - dataGasMap.put("params", busConfigParam.getQueryContent()); - busConfigParam.setContent(dataGasMap); - busConfigParam.setLevel(1); - busConfigParam.setOperator("casic"); - try { - busConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); - CreateCommandResponse msgResponse = client.CreateCommand(request); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - } - - public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "alarmconfig"); - dataGasMap.put("params", alarmConfigParam.getQueryContent()); - alarmConfigParam.setContent(dataGasMap); - alarmConfigParam.setLevel(1); - alarmConfigParam.setOperator("casic"); - try { - alarmConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 - CreateCommandResponse msgResponse = client.CreateCommand(request); - System.out.println(msgResponse); - client.shutdown(); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - - } - - -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java index eadfa04..82cf30c 100644 --- a/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java +++ b/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java @@ -10,6 +10,7 @@ import com.casic.model.AlarmConfigParam; import com.casic.model.AlarmContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.AlarmConfigService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java index 57d13f0..78751c7 100644 --- a/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java @@ -9,6 +9,7 @@ import com.casic.model.BusConfigParam; import com.casic.model.QueryContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.DeviceConfigService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java b/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java index 5f279e4..0bc20ed 100644 --- a/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java +++ b/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java @@ -10,6 +10,7 @@ import com.casic.entity.NbDevice; import com.casic.model.DataGasConfigParam; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.GasDataRecvService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java b/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java index 7cc59bb..5c03575 100644 --- a/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java +++ b/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java @@ -5,12 +5,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.dao.NbConfigMapper; import com.casic.dao.NbDeviceMapper; -import com.casic.entity.NbConfig; import com.casic.entity.NbDevice; -import com.casic.model.BusConfigParam; import com.casic.model.DataGasConfigParam; -import com.casic.model.QueryContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.GasDeviceService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/PressConfigServiceImpl.java b/src/main/java/com/casic/service/impl/PressConfigServiceImpl.java new file mode 100644 index 0000000..308f556 --- /dev/null +++ b/src/main/java/com/casic/service/impl/PressConfigServiceImpl.java @@ -0,0 +1,71 @@ +package com.casic.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.dao.NbPressMapper; +import com.casic.entity.NbPress; +import com.casic.model.BusConfigParam; +import com.casic.model.ResponseData; +import com.casic.service.PressCommandSend; +import com.casic.service.PressConfigService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +@AllArgsConstructor +public class PressConfigServiceImpl extends ServiceImpl implements PressConfigService { + private final PressCommandSend pressCommandSend; + @Override + @Transactional + public ResponseData nbPressConfig(String deviceId) { + BusConfigParam busConfigParam=nbPressConfigCreator(); + if(StringUtils.isEmpty(deviceId)){ + List nbPressList = this.baseMapper.selectList(null); + for (NbPress nbPress : nbPressList) { + busConfigParam.setProductId(nbPress.getProductId()); + busConfigParam.setDeviceId(nbPress.getDeviceId()); + String status = pressCommandSend.sendConfig(busConfigParam); + nbPress.setConfigStatus(status); + } + this.saveOrUpdateBatch(nbPressList); + return ResponseData.success("批量下发成功"); + }else { + QueryWrapper nbPressWrapper= new QueryWrapper().eq("device_id",deviceId); + List nbPressList = this.baseMapper.selectList(nbPressWrapper); + if(CollectionUtils.isEmpty(nbPressList)){ + return ResponseData.error("id不存在"); + }else { + NbPress nbPress=nbPressList.stream().findFirst().get(); + busConfigParam.setProductId(nbPress.getProductId()); + busConfigParam.setDeviceId(nbPress.getDeviceId()); + String status = pressCommandSend.sendConfig(busConfigParam); + nbPress.setConfigStatus(status); + this.baseMapper.updateById(nbPress); + return ResponseData.success("下发成功"); + } + } + } + + private BusConfigParam nbPressConfigCreator() { + BusConfigParam busConfigParam = new BusConfigParam(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "parameter"); + Map params = new HashMap<>(); + params.put("BR","1"); + dataGasMap.put("params", params); + busConfigParam.setContent(dataGasMap); + busConfigParam.setLevel(1); + busConfigParam.setOperator("casic"); + return busConfigParam; + } + +} diff --git a/src/main/java/com/casic/service/impl/PressDataRecvServiceImpl.java b/src/main/java/com/casic/service/impl/PressDataRecvServiceImpl.java index 6308428..365222f 100644 --- a/src/main/java/com/casic/service/impl/PressDataRecvServiceImpl.java +++ b/src/main/java/com/casic/service/impl/PressDataRecvServiceImpl.java @@ -1,14 +1,22 @@ package com.casic.service.impl; import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.dao.GasPressDataMapper; +import com.casic.dao.NbPressMapper; import com.casic.entity.GasPressData; +import com.casic.entity.NbDevice; +import com.casic.entity.NbPress; import com.casic.model.ResponseData; import com.casic.service.PressDataRecvService; +import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; +import java.sql.Wrapper; import java.util.Date; import java.util.List; import java.util.Map; @@ -16,8 +24,10 @@ @Service @Slf4j +@AllArgsConstructor public class PressDataRecvServiceImpl extends ServiceImpl implements PressDataRecvService { + private final NbPressMapper nbPressMapper; @Override public Object saveRev(Map recvDataMap) { ResponseData responseData = new ResponseData(); @@ -61,6 +71,7 @@ .bv(String.valueOf(contentMap.get("bv"))) .build(); this.baseMapper.insert(gasPressData); + flushNbPressStatus(recvDataMap,gasPressData.getCell()); return true; } @@ -78,7 +89,34 @@ .build(); this.baseMapper.insert(historyGasPressData); } + flushNbPressStatus(recvDataMap,null); return true; } + + private void flushNbPressStatus(Map recvDataMap,Double cell){ + QueryWrapper nbPressWrapper= new QueryWrapper().eq("device_id",String.valueOf(recvDataMap.get("deviceId"))); + List nbPressList=this.nbPressMapper.selectList(nbPressWrapper); + if(CollectionUtils.isEmpty(nbPressList)){ + NbPress nbPress=new NbPress(); + nbPress.setDeviceId(String.valueOf(recvDataMap.get("deviceId"))); + nbPress.setImei(String.valueOf(recvDataMap.get("IMEI"))); + nbPress.setProductId(String.valueOf(recvDataMap.get("productId"))); + nbPress.setTenantId(String.valueOf(recvDataMap.get("tenantId"))); + if(!ObjectUtils.isEmpty(cell)){ + nbPress.setCell(String.valueOf(cell)); + } + this.nbPressMapper.insert(nbPress); + }else { + NbPress nbPress=nbPressList.stream().findFirst().get(); + if(ObjectUtils.isEmpty(cell)){ + return; + }else { + nbPress.setCell(String.valueOf(cell)); + } + this.nbPressMapper.updateById(nbPress); + } + } + + } diff --git a/src/main/java/com/casic/config/DeviceGroup.java b/src/main/java/com/casic/config/DeviceGroup.java index 8a8a3f6..04e073c 100644 --- a/src/main/java/com/casic/config/DeviceGroup.java +++ b/src/main/java/com/casic/config/DeviceGroup.java @@ -1,7 +1,6 @@ package com.casic.config; import lombok.Data; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** diff --git a/src/main/java/com/casic/config/PressDeviceConfig.java b/src/main/java/com/casic/config/PressDeviceConfig.java new file mode 100644 index 0000000..3f7f22d --- /dev/null +++ b/src/main/java/com/casic/config/PressDeviceConfig.java @@ -0,0 +1,18 @@ +package com.casic.config; + +import lombok.Data; +import lombok.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@ConfigurationProperties(prefix ="press-device") +@Data +public class PressDeviceConfig { + private String productId; + private String masterKey; + private String aepSecret; + private String aepKey; + private Integer ttl; +} diff --git a/src/main/java/com/casic/controller/PressConfigController.java b/src/main/java/com/casic/controller/PressConfigController.java new file mode 100644 index 0000000..de4c98a --- /dev/null +++ b/src/main/java/com/casic/controller/PressConfigController.java @@ -0,0 +1,23 @@ +package com.casic.controller; + +import com.casic.model.ResponseData; +import com.casic.service.PressConfigService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/casic") +@AllArgsConstructor +public class PressConfigController { + + private PressConfigService pressConfigService; + + @RequestMapping("/press/config") + @ApiOperation("状态下发查询") + public ResponseData nbPressConfig(String deviceId){ + return pressConfigService.nbPressConfig( deviceId); + } + +} diff --git a/src/main/java/com/casic/dao/NbPressMapper.java b/src/main/java/com/casic/dao/NbPressMapper.java new file mode 100644 index 0000000..b5db053 --- /dev/null +++ b/src/main/java/com/casic/dao/NbPressMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.NbPress; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NbPressMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/NbPress.java b/src/main/java/com/casic/entity/NbPress.java new file mode 100644 index 0000000..9650355 --- /dev/null +++ b/src/main/java/com/casic/entity/NbPress.java @@ -0,0 +1,20 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("nb_press") +public class NbPress { + private Long id; + private String productId; + private String deviceId; + private String tenantId; + private String imei; + private String configStatus; + private Date createTime; + private Date lastUpdate; + private String cell; +} diff --git a/src/main/java/com/casic/model/ResponseData.java b/src/main/java/com/casic/model/ResponseData.java index c09b2d2..74f2ddf 100644 --- a/src/main/java/com/casic/model/ResponseData.java +++ b/src/main/java/com/casic/model/ResponseData.java @@ -51,7 +51,13 @@ this.message = message; this.data = data; } - + public static ResponseData success(String message) { + ResponseData responseData=new ResponseData(); + responseData.success = true; + responseData.code = 200; + responseData.message = message; + return responseData; + } public static ErrorResponseData error(String message) { return new ErrorResponseData(message); } diff --git a/src/main/java/com/casic/service/AepCommandSend.java b/src/main/java/com/casic/service/AepCommandSend.java new file mode 100644 index 0000000..9de59e4 --- /dev/null +++ b/src/main/java/com/casic/service/AepCommandSend.java @@ -0,0 +1,136 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.model.AlarmConfigParam; +import com.casic.model.BusConfigParam; +import com.casic.model.DataGasConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Component +@Slf4j +public class AepCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + + public void sendStatusNb(List dataGasConfigList) { + Map dataGasMap = new HashMap<>(); + Map queryMap = new HashMap<>(); + queryMap.put("query", 1); + dataGasMap.put("params", queryMap); + dataGasMap.put("serviceIdentifier", "DeviceQuery"); + dataGasConfigList.forEach( + dataGasConfigParam -> { + dataGasConfigParam.setLevel(1); + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + try { + dataGasConfigParam.setContent(dataGasMap); + dataGasConfigParam.setOperator("casic"); + dataGasConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); + request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); + System.out.println(client.CreateCommand(request)); + client.shutdown(); + } catch (Exception ex) { + log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return; + } + } else { + return; + } + } + ); + } + + public String sendConfig(BusConfigParam busConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "config"); + dataGasMap.put("params", busConfigParam.getQueryContent()); + busConfigParam.setContent(dataGasMap); + busConfigParam.setLevel(1); + busConfigParam.setOperator("casic"); + try { + busConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + } + + public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { + Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() + .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); + if (deviceGroups.isPresent()) { + DeviceGroup deviceGroup = deviceGroups.get(); + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) + .build(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "alarmconfig"); + dataGasMap.put("params", alarmConfigParam.getQueryContent()); + alarmConfigParam.setContent(dataGasMap); + alarmConfigParam.setLevel(1); + alarmConfigParam.setOperator("casic"); + try { + alarmConfigParam.setTtl(deviceGroup.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(deviceGroup.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 + CreateCommandResponse msgResponse = client.CreateCommand(request); + System.out.println(msgResponse); + client.shutdown(); + log.debug("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; + } catch (Exception ex) { + log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } else { + return "下发异常"; + } + + } + + +} \ No newline at end of file diff --git a/src/main/java/com/casic/service/PressCommandSend.java b/src/main/java/com/casic/service/PressCommandSend.java new file mode 100644 index 0000000..c63d2e8 --- /dev/null +++ b/src/main/java/com/casic/service/PressCommandSend.java @@ -0,0 +1,46 @@ +package com.casic.service; + +import com.alibaba.fastjson.JSONObject; +import com.casic.config.AEPParamConfig; +import com.casic.config.DeviceGroup; +import com.casic.config.PressDeviceConfig; +import com.casic.model.BusConfigParam; +import com.ctg.ag.sdk.biz.AepDeviceCommandClient; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandRequest; +import com.ctg.ag.sdk.biz.aep_device_command.CreateCommandResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + + +@Component +@Slf4j +public class PressCommandSend { + + @Autowired + private AEPParamConfig aepParamConfig; + @Autowired + private PressDeviceConfig pressDeviceConfig; + + + public String sendConfig(BusConfigParam busConfigParam) { + AepDeviceCommandClient client = AepDeviceCommandClient.newClient() + .appKey(pressDeviceConfig.getAepKey()).appSecret(pressDeviceConfig.getAepSecret()) + .build(); + try { + busConfigParam.setTtl(pressDeviceConfig.getTtl()); + CreateCommandRequest request = new CreateCommandRequest(); + request.setParamMasterKey(pressDeviceConfig.getMasterKey()); // single value + request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); + CreateCommandResponse msgResponse = client.CreateCommand(request); + log.error("-----" + msgResponse.getMessage()); + return msgResponse.getStatusCode() == 200 ? "下发成功" : "下发异常"; + } catch (Exception ex) { + log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", + JSONObject.toJSONString(busConfigParam), pressDeviceConfig.getAepKey(), pressDeviceConfig.getAepSecret()); + return "下发异常"; + } finally { + client.shutdown(); + } + } +} diff --git a/src/main/java/com/casic/service/PressConfigService.java b/src/main/java/com/casic/service/PressConfigService.java new file mode 100644 index 0000000..e75a62d --- /dev/null +++ b/src/main/java/com/casic/service/PressConfigService.java @@ -0,0 +1,7 @@ +package com.casic.service; + +import com.casic.model.ResponseData; + +public interface PressConfigService { + ResponseData nbPressConfig(String deviceId); +} diff --git a/src/main/java/com/casic/service/impl/AepCommandSend.java b/src/main/java/com/casic/service/impl/AepCommandSend.java deleted file mode 100644 index aa96f68..0000000 --- a/src/main/java/com/casic/service/impl/AepCommandSend.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.fastjson.JSONObject; -import com.casic.config.AEPParamConfig; -import com.casic.config.DeviceGroup; -import com.casic.model.AlarmConfigParam; -import com.casic.model.BusConfigParam; -import com.casic.model.DataGasConfigParam; -import com.ctg.ag.sdk.biz.AepDeviceCommandClient; -import com.ctg.ag.sdk.biz.aep_device_command.*; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -@Component -@Slf4j -public class AepCommandSend { - - @Autowired - private AEPParamConfig aepParamConfig; - - public void sendStatusNb(List dataGasConfigList) { - Map dataGasMap = new HashMap<>(); - Map queryMap = new HashMap<>(); - queryMap.put("query", 1); - dataGasMap.put("params", queryMap); - dataGasMap.put("serviceIdentifier", "DeviceQuery"); - dataGasConfigList.forEach( - dataGasConfigParam -> { - dataGasConfigParam.setLevel(1); - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(dataGasConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - try { - dataGasConfigParam.setContent(dataGasMap); - dataGasConfigParam.setOperator("casic"); - dataGasConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); - request.setBody(JSONObject.toJSONString(dataGasConfigParam).getBytes()); - System.out.println(client.CreateCommand(request)); - client.shutdown(); - } catch (Exception ex) { - log.error("状态下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(dataGasConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return; - } - } else { - return; - } - } - ); - } - - public String sendConfig(BusConfigParam busConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(busConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "config"); - dataGasMap.put("params", busConfigParam.getQueryContent()); - busConfigParam.setContent(dataGasMap); - busConfigParam.setLevel(1); - busConfigParam.setOperator("casic"); - try { - busConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(busConfigParam).getBytes()); - CreateCommandResponse msgResponse = client.CreateCommand(request); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备命令下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(busConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - } - - public String sendAlarmConfig(AlarmConfigParam alarmConfigParam) { - Optional deviceGroups = aepParamConfig.getDeviceGroups().stream() - .filter(deviceGroup -> deviceGroup.getProductId().equals(alarmConfigParam.getProductId())).findFirst(); - if (deviceGroups.isPresent()) { - DeviceGroup deviceGroup = deviceGroups.get(); - AepDeviceCommandClient client = AepDeviceCommandClient.newClient() - .appKey(deviceGroup.getAepKey()).appSecret(deviceGroup.getAepSecret()) - .build(); - Map dataGasMap = new HashMap<>(); - dataGasMap.put("serviceIdentifier", "alarmconfig"); - dataGasMap.put("params", alarmConfigParam.getQueryContent()); - alarmConfigParam.setContent(dataGasMap); - alarmConfigParam.setLevel(1); - alarmConfigParam.setOperator("casic"); - try { - alarmConfigParam.setTtl(deviceGroup.getTtl()); - CreateCommandRequest request = new CreateCommandRequest(); - request.setParamMasterKey(deviceGroup.getMasterKey()); // single value - request.setBody(JSONObject.toJSONString(alarmConfigParam).getBytes()); //具体格式见前面请求body说明 - CreateCommandResponse msgResponse = client.CreateCommand(request); - System.out.println(msgResponse); - client.shutdown(); - log.debug("-----" + msgResponse.getMessage()); - return msgResponse.getStatusCode() == 200 ? "未下发" : "下发异常"; - } catch (Exception ex) { - log.error("设备报警下发配置异常,下发配置内容{},aepKey{},aepScret{},异常信息{}", - JSONObject.toJSONString(alarmConfigParam), deviceGroup.getAepKey(), deviceGroup.getAepSecret()); - return "下发异常"; - } finally { - client.shutdown(); - } - } else { - return "下发异常"; - } - - } - - -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java index eadfa04..82cf30c 100644 --- a/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java +++ b/src/main/java/com/casic/service/impl/AlarmConfigServiceImpl.java @@ -10,6 +10,7 @@ import com.casic.model.AlarmConfigParam; import com.casic.model.AlarmContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.AlarmConfigService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java index 57d13f0..78751c7 100644 --- a/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceConfigServiceImpl.java @@ -9,6 +9,7 @@ import com.casic.model.BusConfigParam; import com.casic.model.QueryContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.DeviceConfigService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java b/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java index 5f279e4..0bc20ed 100644 --- a/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java +++ b/src/main/java/com/casic/service/impl/GasDataRecvServiceImpl.java @@ -10,6 +10,7 @@ import com.casic.entity.NbDevice; import com.casic.model.DataGasConfigParam; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.GasDataRecvService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java b/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java index 7cc59bb..5c03575 100644 --- a/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java +++ b/src/main/java/com/casic/service/impl/GasDeviceServiceImpl.java @@ -5,12 +5,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.dao.NbConfigMapper; import com.casic.dao.NbDeviceMapper; -import com.casic.entity.NbConfig; import com.casic.entity.NbDevice; -import com.casic.model.BusConfigParam; import com.casic.model.DataGasConfigParam; -import com.casic.model.QueryContent; import com.casic.model.ResponseData; +import com.casic.service.AepCommandSend; import com.casic.service.GasDeviceService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/casic/service/impl/PressConfigServiceImpl.java b/src/main/java/com/casic/service/impl/PressConfigServiceImpl.java new file mode 100644 index 0000000..308f556 --- /dev/null +++ b/src/main/java/com/casic/service/impl/PressConfigServiceImpl.java @@ -0,0 +1,71 @@ +package com.casic.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.dao.NbPressMapper; +import com.casic.entity.NbPress; +import com.casic.model.BusConfigParam; +import com.casic.model.ResponseData; +import com.casic.service.PressCommandSend; +import com.casic.service.PressConfigService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +@AllArgsConstructor +public class PressConfigServiceImpl extends ServiceImpl implements PressConfigService { + private final PressCommandSend pressCommandSend; + @Override + @Transactional + public ResponseData nbPressConfig(String deviceId) { + BusConfigParam busConfigParam=nbPressConfigCreator(); + if(StringUtils.isEmpty(deviceId)){ + List nbPressList = this.baseMapper.selectList(null); + for (NbPress nbPress : nbPressList) { + busConfigParam.setProductId(nbPress.getProductId()); + busConfigParam.setDeviceId(nbPress.getDeviceId()); + String status = pressCommandSend.sendConfig(busConfigParam); + nbPress.setConfigStatus(status); + } + this.saveOrUpdateBatch(nbPressList); + return ResponseData.success("批量下发成功"); + }else { + QueryWrapper nbPressWrapper= new QueryWrapper().eq("device_id",deviceId); + List nbPressList = this.baseMapper.selectList(nbPressWrapper); + if(CollectionUtils.isEmpty(nbPressList)){ + return ResponseData.error("id不存在"); + }else { + NbPress nbPress=nbPressList.stream().findFirst().get(); + busConfigParam.setProductId(nbPress.getProductId()); + busConfigParam.setDeviceId(nbPress.getDeviceId()); + String status = pressCommandSend.sendConfig(busConfigParam); + nbPress.setConfigStatus(status); + this.baseMapper.updateById(nbPress); + return ResponseData.success("下发成功"); + } + } + } + + private BusConfigParam nbPressConfigCreator() { + BusConfigParam busConfigParam = new BusConfigParam(); + Map dataGasMap = new HashMap<>(); + dataGasMap.put("serviceIdentifier", "parameter"); + Map params = new HashMap<>(); + params.put("BR","1"); + dataGasMap.put("params", params); + busConfigParam.setContent(dataGasMap); + busConfigParam.setLevel(1); + busConfigParam.setOperator("casic"); + return busConfigParam; + } + +} diff --git a/src/main/java/com/casic/service/impl/PressDataRecvServiceImpl.java b/src/main/java/com/casic/service/impl/PressDataRecvServiceImpl.java index 6308428..365222f 100644 --- a/src/main/java/com/casic/service/impl/PressDataRecvServiceImpl.java +++ b/src/main/java/com/casic/service/impl/PressDataRecvServiceImpl.java @@ -1,14 +1,22 @@ package com.casic.service.impl; import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.dao.GasPressDataMapper; +import com.casic.dao.NbPressMapper; import com.casic.entity.GasPressData; +import com.casic.entity.NbDevice; +import com.casic.entity.NbPress; import com.casic.model.ResponseData; import com.casic.service.PressDataRecvService; +import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; +import java.sql.Wrapper; import java.util.Date; import java.util.List; import java.util.Map; @@ -16,8 +24,10 @@ @Service @Slf4j +@AllArgsConstructor public class PressDataRecvServiceImpl extends ServiceImpl implements PressDataRecvService { + private final NbPressMapper nbPressMapper; @Override public Object saveRev(Map recvDataMap) { ResponseData responseData = new ResponseData(); @@ -61,6 +71,7 @@ .bv(String.valueOf(contentMap.get("bv"))) .build(); this.baseMapper.insert(gasPressData); + flushNbPressStatus(recvDataMap,gasPressData.getCell()); return true; } @@ -78,7 +89,34 @@ .build(); this.baseMapper.insert(historyGasPressData); } + flushNbPressStatus(recvDataMap,null); return true; } + + private void flushNbPressStatus(Map recvDataMap,Double cell){ + QueryWrapper nbPressWrapper= new QueryWrapper().eq("device_id",String.valueOf(recvDataMap.get("deviceId"))); + List nbPressList=this.nbPressMapper.selectList(nbPressWrapper); + if(CollectionUtils.isEmpty(nbPressList)){ + NbPress nbPress=new NbPress(); + nbPress.setDeviceId(String.valueOf(recvDataMap.get("deviceId"))); + nbPress.setImei(String.valueOf(recvDataMap.get("IMEI"))); + nbPress.setProductId(String.valueOf(recvDataMap.get("productId"))); + nbPress.setTenantId(String.valueOf(recvDataMap.get("tenantId"))); + if(!ObjectUtils.isEmpty(cell)){ + nbPress.setCell(String.valueOf(cell)); + } + this.nbPressMapper.insert(nbPress); + }else { + NbPress nbPress=nbPressList.stream().findFirst().get(); + if(ObjectUtils.isEmpty(cell)){ + return; + }else { + nbPress.setCell(String.valueOf(cell)); + } + this.nbPressMapper.updateById(nbPress); + } + } + + } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index cb200d7..721f85b 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -30,8 +30,16 @@ ttl: 86400 aep-key: YQTX3kLIdJ4 aep-secret: FN0n9BLyb2 + - product-id: 15432101 MasterKey: 46eb5fd9f7364b9abe41b26e369149f3 ttl: 86400 aep-key: YQTX3kLIdJ4 - aep-secret: FN0n9BLyb2 \ No newline at end of file + aep-secret: FN0n9BLyb2 +# 第三方压力厂商的配置 +press-device: + product-id: 15435713 + MasterKey: 1572ef616a0840379d7284b516d903a6 + ttl: 86400 + aep-key: ke4zM3hld29 + aep-secret: 35ykNutA1t \ No newline at end of file