1.物消息路由转发功能
2.物解析功能
This commit is contained in:
@@ -1,15 +1,13 @@
|
||||
package com.njcn.access.controller;
|
||||
|
||||
|
||||
import com.njcn.access.pojo.po.CsDataArrayPO;
|
||||
import com.njcn.access.pojo.po.CsDataSetPO;
|
||||
import com.njcn.access.service.ICsDataArrayService;
|
||||
import com.njcn.access.service.ICsDataSetService;
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.csdevice.pojo.po.CsDataArray;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
@@ -46,7 +44,7 @@ public class CsDataArrayController extends BaseController {
|
||||
@PostMapping("/add")
|
||||
@ApiOperation("新增详细数据集")
|
||||
@ApiImplicitParam(name = "csDataArrayPo", value = "数据集", required = true)
|
||||
public HttpResult<String> add(@RequestBody CsDataArrayPO csDataArrayPo){
|
||||
public HttpResult<String> add(@RequestBody CsDataArray csDataArrayPo){
|
||||
String methodDescribe = getMethodDescribe("add");
|
||||
csDataArrayService.add(csDataArrayPo);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
@@ -56,7 +54,7 @@ public class CsDataArrayController extends BaseController {
|
||||
@PostMapping("/addList")
|
||||
@ApiOperation("批量新增详细数据集")
|
||||
@ApiImplicitParam(name = "list", value = "数据集集合", required = true)
|
||||
public HttpResult<String> addList(@RequestBody List<CsDataArrayPO> list){
|
||||
public HttpResult<String> addList(@RequestBody List<CsDataArray> list){
|
||||
String methodDescribe = getMethodDescribe("addList");
|
||||
csDataArrayService.addList(list);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
|
||||
@@ -1,25 +1,23 @@
|
||||
package com.njcn.access.controller;
|
||||
|
||||
|
||||
import com.njcn.access.pojo.po.CsDataSetPO;
|
||||
import com.njcn.access.service.ICsDataSetService;
|
||||
import com.njcn.access.service.ICsDevModelService;
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.csdevice.pojo.po.CsDataSet;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import java.util.List;
|
||||
@@ -46,9 +44,9 @@ public class CsDataSetController extends BaseController {
|
||||
@PostMapping("/add")
|
||||
@ApiOperation("新增数据集")
|
||||
@ApiImplicitParam(name = "csDataSetPo", value = "数据集", required = true)
|
||||
public HttpResult<String> add(@RequestBody CsDataSetPO csDataSetPo){
|
||||
public HttpResult<String> add(@RequestBody CsDataSet csDataSet){
|
||||
String methodDescribe = getMethodDescribe("add");
|
||||
csDataSetService.add(csDataSetPo);
|
||||
csDataSetService.add(csDataSet);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
@@ -56,7 +54,7 @@ public class CsDataSetController extends BaseController {
|
||||
@PostMapping("/addList")
|
||||
@ApiOperation("批量新增数据集")
|
||||
@ApiImplicitParam(name = "list", value = "数据集集合", required = true)
|
||||
public HttpResult<String> addList(@RequestBody List<CsDataSetPO> list){
|
||||
public HttpResult<String> addList(@RequestBody List<CsDataSet> list){
|
||||
String methodDescribe = getMethodDescribe("addList");
|
||||
csDataSetService.addList(list);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.njcn.access.handler;
|
||||
|
||||
import com.alibaba.excel.util.CollectionUtils;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.nacos.shaded.com.google.gson.Gson;
|
||||
import com.github.tocrhz.mqtt.annotation.MqttSubscribe;
|
||||
import com.github.tocrhz.mqtt.annotation.NamedValue;
|
||||
@@ -20,13 +21,15 @@ import com.njcn.access.service.ICsEquipmentDeliveryService;
|
||||
import com.njcn.access.service.ICsLineModelService;
|
||||
import com.njcn.access.service.ICsTopicService;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.common.utils.PubUtils;
|
||||
import com.njcn.csdevice.api.DevModelFeignClient;
|
||||
import com.njcn.csdevice.pojo.po.CsDevModelPO;
|
||||
import com.njcn.mq.message.AppAutoDataMessage;
|
||||
import com.njcn.mq.template.AppAutoDataMessageTemplate;
|
||||
import com.njcn.redis.utils.RedisUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.eclipse.paho.client.mqttv3.MqttMessage;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -60,6 +63,8 @@ public class MqttMessageHandler {
|
||||
|
||||
private final ICsEquipmentDeliveryService csEquipmentDeliveryService;
|
||||
|
||||
private final AppAutoDataMessageTemplate appAutoDataMessageTemplate;
|
||||
|
||||
@Autowired
|
||||
Validator validator;
|
||||
|
||||
@@ -232,7 +237,7 @@ public class MqttMessageHandler {
|
||||
|
||||
|
||||
/**
|
||||
* 装置心跳
|
||||
* 装置心跳 && 主动数据上送
|
||||
* @param topic
|
||||
* @param message
|
||||
* @param version
|
||||
@@ -260,7 +265,7 @@ public class MqttMessageHandler {
|
||||
reqAndResParam.setType(Integer.parseInt(TypeEnum.TYPE_29.getCode()));
|
||||
reqAndResParam.setCode(200);
|
||||
reqAndResParam.setMsg(heartBeatDto);
|
||||
publisher.send("/Dev/DataRsp/"+version+"/"+nDid,PubUtils.obj2json(reqAndResParam),1,false);
|
||||
publisher.send("/Dev/DataRsp/"+version+"/"+nDid,gson.toJson(reqAndResParam),1,false);
|
||||
//处理业务逻辑
|
||||
Object object = res.getMsg();
|
||||
if (!Objects.isNull(object)){
|
||||
@@ -276,11 +281,25 @@ public class MqttMessageHandler {
|
||||
break;
|
||||
case 4866:
|
||||
//处理主动上送数据
|
||||
|
||||
//todo 将消息发送给rocketMQ,判断消息类型,需要回复
|
||||
AutoDataDto dataDto = gson.fromJson(new String(message.getPayload(), StandardCharsets.UTF_8), AutoDataDto.class);
|
||||
JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(dataDto));
|
||||
AppAutoDataMessage appAutoDataMessage = JSONObject.toJavaObject(jsonObject, AppAutoDataMessage.class);
|
||||
appAutoDataMessage.setId(nDid);
|
||||
appAutoDataMessageTemplate.sendMember(appAutoDataMessage);
|
||||
//mid大于0,则需要应答设备侧
|
||||
if (dataDto.getMid() > 0){
|
||||
ReqAndResDto.Res response = new ReqAndResDto.Res();
|
||||
response.setMid(dataDto.getMid());
|
||||
response.setDid(dataDto.getDid());
|
||||
response.setPri(AccessEnum.FIRST_CHANNEL.getCode());
|
||||
response.setType(Integer.parseInt(TypeEnum.TYPE_15.getCode()));
|
||||
response.setCode(200);
|
||||
publisher.send("/Dev/DataRsp/"+version+"/"+nDid,new Gson().toJson(response),1,false);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.njcn.access.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.access.pojo.po.CsDataArrayPO;
|
||||
import com.njcn.csdevice.pojo.po.CsDataArray;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -11,6 +11,6 @@ import com.njcn.access.pojo.po.CsDataArrayPO;
|
||||
* @author xuyang
|
||||
* @since 2023-08-01
|
||||
*/
|
||||
public interface CsDataArrayMapper extends BaseMapper<CsDataArrayPO> {
|
||||
public interface CsDataArrayMapper extends BaseMapper<CsDataArray> {
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.njcn.access.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.access.pojo.po.CsDataSetPO;
|
||||
import com.njcn.csdevice.pojo.po.CsDataSet;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -11,6 +11,6 @@ import com.njcn.access.pojo.po.CsDataSetPO;
|
||||
* @author xuyang
|
||||
* @since 2023-08-01
|
||||
*/
|
||||
public interface CsDataSetMapper extends BaseMapper<CsDataSetPO> {
|
||||
public interface CsDataSetMapper extends BaseMapper<CsDataSet> {
|
||||
|
||||
}
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
package com.njcn.access.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.access.pojo.po.CsDataArrayPO;
|
||||
import com.njcn.access.pojo.po.CsDataSetPO;
|
||||
import com.njcn.csdevice.pojo.po.CsDataArray;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -14,17 +13,17 @@ import java.util.List;
|
||||
* @author xuyang
|
||||
* @since 2023-08-01
|
||||
*/
|
||||
public interface ICsDataArrayService extends IService<CsDataArrayPO> {
|
||||
public interface ICsDataArrayService extends IService<CsDataArray> {
|
||||
/**
|
||||
* 新增详细数据集
|
||||
* @param csDataArrayPo
|
||||
*/
|
||||
void add(CsDataArrayPO csDataArrayPo);
|
||||
void add(CsDataArray csDataArrayPo);
|
||||
|
||||
/**
|
||||
* 批量新增数据集
|
||||
* @param list
|
||||
*/
|
||||
void addList(List<CsDataArrayPO> list);
|
||||
void addList(List<CsDataArray> list);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.njcn.access.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.access.pojo.po.CsDataSetPO;
|
||||
import com.njcn.csdevice.pojo.po.CsDataSet;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -13,17 +13,17 @@ import java.util.List;
|
||||
* @author xuyang
|
||||
* @since 2023-08-01
|
||||
*/
|
||||
public interface ICsDataSetService extends IService<CsDataSetPO> {
|
||||
public interface ICsDataSetService extends IService<CsDataSet> {
|
||||
/**
|
||||
* 新增数据集
|
||||
* @param csDataSetPo
|
||||
*/
|
||||
void add(CsDataSetPO csDataSetPo);
|
||||
void add(CsDataSet csDataSetPo);
|
||||
|
||||
/**
|
||||
* 批量新增数据集
|
||||
* @param list
|
||||
*/
|
||||
void addList(List<CsDataSetPO> list);
|
||||
void addList(List<CsDataSet> list);
|
||||
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@ package com.njcn.access.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.access.mapper.CsDataArrayMapper;
|
||||
import com.njcn.access.pojo.po.CsDataArrayPO;
|
||||
import com.njcn.access.service.ICsDataArrayService;
|
||||
import com.njcn.csdevice.pojo.po.CsDataArray;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
@@ -17,16 +17,16 @@ import java.util.List;
|
||||
* @since 2023-08-01
|
||||
*/
|
||||
@Service
|
||||
public class CsDataArrayServiceImpl extends ServiceImpl<CsDataArrayMapper, CsDataArrayPO> implements ICsDataArrayService {
|
||||
public class CsDataArrayServiceImpl extends ServiceImpl<CsDataArrayMapper, CsDataArray> implements ICsDataArrayService {
|
||||
|
||||
|
||||
@Override
|
||||
public void add(CsDataArrayPO csDataArrayPo) {
|
||||
public void add(CsDataArray csDataArrayPo) {
|
||||
this.save(csDataArrayPo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addList(List<CsDataArrayPO> list) {
|
||||
public void addList(List<CsDataArray> list) {
|
||||
this.saveBatch(list,1000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@ package com.njcn.access.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.access.mapper.CsDataSetMapper;
|
||||
import com.njcn.access.pojo.po.CsDataSetPO;
|
||||
import com.njcn.access.service.ICsDataSetService;
|
||||
import com.njcn.csdevice.pojo.po.CsDataSet;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
@@ -17,15 +17,15 @@ import java.util.List;
|
||||
* @since 2023-08-01
|
||||
*/
|
||||
@Service
|
||||
public class CsDataSetServiceImpl extends ServiceImpl<CsDataSetMapper, CsDataSetPO> implements ICsDataSetService {
|
||||
public class CsDataSetServiceImpl extends ServiceImpl<CsDataSetMapper, CsDataSet> implements ICsDataSetService {
|
||||
|
||||
@Override
|
||||
public void add(CsDataSetPO csDataSetPo) {
|
||||
public void add(CsDataSet csDataSetPo) {
|
||||
this.save(csDataSetPo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addList(List<CsDataSetPO> list) {
|
||||
public void addList(List<CsDataSet> list) {
|
||||
this.saveBatch(list,1000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,16 +8,12 @@ import com.njcn.access.enums.DataModel;
|
||||
import com.njcn.access.mapper.CsDevModelMapper;
|
||||
import com.njcn.access.pojo.dto.data.*;
|
||||
import com.njcn.access.pojo.dto.devModel.*;
|
||||
import com.njcn.access.pojo.po.CsDataArrayPO;
|
||||
import com.njcn.access.pojo.po.CsDataSetPO;
|
||||
import com.njcn.access.pojo.po.CsLineModel;
|
||||
import com.njcn.access.service.*;
|
||||
import com.njcn.access.utils.JsonUtil;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.csdevice.api.DevModelFeignClient;
|
||||
import com.njcn.csdevice.pojo.po.CsDevModelPO;
|
||||
import com.njcn.csdevice.pojo.po.CsGroArr;
|
||||
import com.njcn.csdevice.pojo.po.CsGroup;
|
||||
import com.njcn.csdevice.pojo.po.*;
|
||||
import com.njcn.oss.constant.OssPath;
|
||||
import com.njcn.oss.utils.FileStorageUtil;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
@@ -89,7 +85,6 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
|
||||
analysisDataSet(templateDto,csDevModelPo.getId());
|
||||
//3.录入监测点模板表(记录当前模板有几个监测点,治理类型的模板目前规定1个监测点,电能质量模板根据逻辑子设备来)
|
||||
addCsLineModel(templateDto,csDevModelPo.getId());
|
||||
//todo 这边软件信息和监测点信息需要接入后询问设备,然后记录
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -550,31 +545,31 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
|
||||
* 解析数据集、详细数据
|
||||
*/
|
||||
private void analysisDataSet(TemplateDto templateDto,String pId){
|
||||
List<CsDataSetPO> setList = new ArrayList<>();
|
||||
List<CsDataArrayPO> arrayList = new ArrayList<>();
|
||||
List<CsDataSet> setList = new ArrayList<>();
|
||||
List<CsDataArray> arrayList = new ArrayList<>();
|
||||
List<DataSetDto> dataSetList = templateDto.getDataSet();
|
||||
//逻辑设备录入
|
||||
if (CollectionUtil.isNotEmpty(dataSetList)){
|
||||
dataSetList.forEach(item1->{
|
||||
String id = IdUtil.fastSimpleUUID();
|
||||
CsDataSetPO csDataSetPo = new CsDataSetPO();
|
||||
csDataSetPo.setId(id);
|
||||
csDataSetPo.setPid(pId);
|
||||
csDataSetPo.setName(item1.getName());
|
||||
csDataSetPo.setAnotherName(dataSetName(item1.getName()));
|
||||
csDataSetPo.setIdx(item1.getIdx());
|
||||
csDataSetPo.setPeriod(item1.getPeriod());
|
||||
csDataSetPo.setStoreFlag(item1.getStoreFlag());
|
||||
csDataSetPo.setDataList(String.join(",",templateDto.getDataList()));
|
||||
csDataSetPo.setType(0);
|
||||
csDataSetPo.setClDev(0);
|
||||
setList.add(csDataSetPo);
|
||||
CsDataSet CsDataSet = new CsDataSet();
|
||||
CsDataSet.setId(id);
|
||||
CsDataSet.setPid(pId);
|
||||
CsDataSet.setName(item1.getName());
|
||||
CsDataSet.setAnotherName(dataSetName(item1.getName()));
|
||||
CsDataSet.setIdx(item1.getIdx());
|
||||
CsDataSet.setPeriod(item1.getPeriod());
|
||||
CsDataSet.setStoreFlag(item1.getStoreFlag());
|
||||
CsDataSet.setDataList(String.join(",",templateDto.getDataList()));
|
||||
CsDataSet.setType(0);
|
||||
CsDataSet.setClDev(0);
|
||||
setList.add(CsDataSet);
|
||||
List<DataArrayDto> list = item1.getDataArrayDtoList();
|
||||
if(CollectionUtil.isNotEmpty(list)) {
|
||||
int i = 0;
|
||||
for (DataArrayDto item2 : list) {
|
||||
List<CsDataArrayPO> po = findDict(id,templateDto,item2.getType(),item2.getIdx());
|
||||
for (CsDataArrayPO p : po) {
|
||||
List<CsDataArray> po = findDict(id,templateDto,item2.getType(),item2.getIdx());
|
||||
for (CsDataArray p : po) {
|
||||
p.setIdx(item2.getIdx());
|
||||
p.setSort(i);
|
||||
i++;
|
||||
@@ -592,30 +587,30 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
|
||||
if (CollectionUtil.isNotEmpty(clDataSetList)){
|
||||
clDataSetList.forEach(item4->{
|
||||
String id = IdUtil.fastSimpleUUID();
|
||||
CsDataSetPO csDataSetPo = new CsDataSetPO();
|
||||
csDataSetPo.setId(id);
|
||||
csDataSetPo.setPid(pId);
|
||||
csDataSetPo.setName(item4.getName());
|
||||
csDataSetPo.setAnotherName(dataSetName(item4.getName()));
|
||||
csDataSetPo.setIdx(item4.getIdx());
|
||||
csDataSetPo.setPeriod(item4.getPeriod());
|
||||
csDataSetPo.setStoreFlag(item4.getStoreFlag());
|
||||
csDataSetPo.setDataList(String.join(",",item3.getDataList()));
|
||||
CsDataSet CsDataSet = new CsDataSet();
|
||||
CsDataSet.setId(id);
|
||||
CsDataSet.setPid(pId);
|
||||
CsDataSet.setName(item4.getName());
|
||||
CsDataSet.setAnotherName(dataSetName(item4.getName()));
|
||||
CsDataSet.setIdx(item4.getIdx());
|
||||
CsDataSet.setPeriod(item4.getPeriod());
|
||||
CsDataSet.setStoreFlag(item4.getStoreFlag());
|
||||
CsDataSet.setDataList(String.join(",",item3.getDataList()));
|
||||
//fixme 先用数据类型来区分模板的类型
|
||||
if (item3.getDataList().contains("Apf") || item3.getDataList().contains("Dvr")){
|
||||
csDataSetPo.setType(1);
|
||||
CsDataSet.setType(1);
|
||||
} else {
|
||||
csDataSetPo.setType(2);
|
||||
CsDataSet.setType(2);
|
||||
}
|
||||
csDataSetPo.setClDev(item3.getClDid());
|
||||
setList.add(csDataSetPo);
|
||||
CsDataSet.setClDev(item3.getClDid());
|
||||
setList.add(CsDataSet);
|
||||
|
||||
List<DataArrayDto> list = item4.getDataArrayDtoList();
|
||||
if(CollectionUtil.isNotEmpty(list)) {
|
||||
int i = 0;
|
||||
for (DataArrayDto item2 : list) {
|
||||
List<CsDataArrayPO> po = findDict(id,templateDto,item2.getType(),item2.getIdx());
|
||||
for (CsDataArrayPO p : po) {
|
||||
List<CsDataArray> po = findDict(id,templateDto,item2.getType(),item2.getIdx());
|
||||
for (CsDataArray p : po) {
|
||||
p.setIdx(item2.getIdx());
|
||||
p.setSort(i);
|
||||
i++;
|
||||
@@ -634,10 +629,10 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
|
||||
csDataArrayService.addList(arrayList);
|
||||
List<CsGroup> ls = new ArrayList<>();
|
||||
List<CsGroArr> groArrList = new ArrayList<>();
|
||||
Map<String,List<CsDataArrayPO>> setMap = arrayList.stream().collect(Collectors.groupingBy(CsDataArrayPO::getPid,LinkedHashMap::new,Collectors.toList()));
|
||||
Map<String,List<CsDataArray>> setMap = arrayList.stream().collect(Collectors.groupingBy(CsDataArray::getPid,LinkedHashMap::new,Collectors.toList()));
|
||||
setMap.forEach((k0,v0)->{
|
||||
AtomicReference<Integer> sort = new AtomicReference<>(0);
|
||||
Map<String,List<CsDataArrayPO>> map = v0.stream().filter(a-> "avg".equals(a.getStatMethod()) || Objects.isNull(a.getStatMethod())).collect(Collectors.groupingBy(CsDataArrayPO::getAnotherName,LinkedHashMap::new,Collectors.toList()));
|
||||
Map<String,List<CsDataArray>> map = v0.stream().filter(a-> "avg".equals(a.getStatMethod()) || Objects.isNull(a.getStatMethod())).collect(Collectors.groupingBy(CsDataArray::getAnotherName,LinkedHashMap::new,Collectors.toList()));
|
||||
map.forEach((k,v)->{
|
||||
//录入组数据
|
||||
String groupId = IdUtil.simpleUUID();
|
||||
@@ -672,8 +667,8 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
|
||||
* @param type
|
||||
* @param idx
|
||||
*/
|
||||
private List<CsDataArrayPO> findDict(String pid, TemplateDto templateDto, String type, Integer idx) {
|
||||
List<CsDataArrayPO> list = new ArrayList<>();
|
||||
private List<CsDataArray> findDict(String pid, TemplateDto templateDto, String type, Integer idx) {
|
||||
List<CsDataArray> list = new ArrayList<>();
|
||||
String id = dicDataFeignClient.getDicDataByCode(type).getData().getId();
|
||||
String name = null,phase = null;
|
||||
switch (type) {
|
||||
@@ -783,26 +778,26 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
|
||||
if (!Objects.isNull(eleEpdPqd.getStatMethod())){
|
||||
String[] statMethodList = eleEpdPqd.getStatMethod().split(",");
|
||||
for (String stat : statMethodList) {
|
||||
CsDataArrayPO csDataArrayPo = new CsDataArrayPO();
|
||||
csDataArrayPo.setPid(pid);
|
||||
csDataArrayPo.setDataId(eleEpdPqd.getId());
|
||||
csDataArrayPo.setName(eleEpdPqd.getName() + "_" + i);
|
||||
csDataArrayPo.setAnotherName((i-0.5) + "次" +eleEpdPqd.getShowName());
|
||||
csDataArrayPo.setStatMethod(stat);
|
||||
csDataArrayPo.setDataType(eleEpdPqd.getDataType());
|
||||
csDataArrayPo.setPhase(eleEpdPqd.getPhase());
|
||||
list.add(csDataArrayPo);
|
||||
CsDataArray CsDataArray = new CsDataArray();
|
||||
CsDataArray.setPid(pid);
|
||||
CsDataArray.setDataId(eleEpdPqd.getId());
|
||||
CsDataArray.setName(eleEpdPqd.getName() + "_" + i);
|
||||
CsDataArray.setAnotherName((i-0.5) + "次" +eleEpdPqd.getShowName());
|
||||
CsDataArray.setStatMethod(stat);
|
||||
CsDataArray.setDataType(eleEpdPqd.getType());
|
||||
CsDataArray.setPhase(eleEpdPqd.getPhase());
|
||||
list.add(CsDataArray);
|
||||
}
|
||||
} else {
|
||||
CsDataArrayPO csDataArrayPo = new CsDataArrayPO();
|
||||
csDataArrayPo.setPid(pid);
|
||||
csDataArrayPo.setDataId(eleEpdPqd.getId());
|
||||
csDataArrayPo.setName(eleEpdPqd.getName() + "_" + i);
|
||||
csDataArrayPo.setAnotherName((i-0.5) + "次" +eleEpdPqd.getShowName());
|
||||
csDataArrayPo.setStatMethod("M");
|
||||
csDataArrayPo.setDataType(eleEpdPqd.getDataType());
|
||||
csDataArrayPo.setPhase(eleEpdPqd.getPhase());
|
||||
list.add(csDataArrayPo);
|
||||
CsDataArray CsDataArray = new CsDataArray();
|
||||
CsDataArray.setPid(pid);
|
||||
CsDataArray.setDataId(eleEpdPqd.getId());
|
||||
CsDataArray.setName(eleEpdPqd.getName() + "_" + i);
|
||||
CsDataArray.setAnotherName((i-0.5) + "次" +eleEpdPqd.getShowName());
|
||||
CsDataArray.setStatMethod("M");
|
||||
CsDataArray.setDataType(eleEpdPqd.getType());
|
||||
CsDataArray.setPhase(eleEpdPqd.getPhase());
|
||||
list.add(CsDataArray);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -810,26 +805,26 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
|
||||
if (!Objects.isNull(eleEpdPqd.getStatMethod())){
|
||||
String[] statMethodList = eleEpdPqd.getStatMethod().split(",");
|
||||
for (String stat : statMethodList) {
|
||||
CsDataArrayPO csDataArrayPo = new CsDataArrayPO();
|
||||
csDataArrayPo.setPid(pid);
|
||||
csDataArrayPo.setDataId(eleEpdPqd.getId());
|
||||
csDataArrayPo.setName(eleEpdPqd.getName() + "_" + i);
|
||||
csDataArrayPo.setAnotherName(i + "次" +eleEpdPqd.getShowName());
|
||||
csDataArrayPo.setStatMethod(stat);
|
||||
csDataArrayPo.setDataType(eleEpdPqd.getDataType());
|
||||
csDataArrayPo.setPhase(eleEpdPqd.getPhase());
|
||||
list.add(csDataArrayPo);
|
||||
CsDataArray CsDataArray = new CsDataArray();
|
||||
CsDataArray.setPid(pid);
|
||||
CsDataArray.setDataId(eleEpdPqd.getId());
|
||||
CsDataArray.setName(eleEpdPqd.getName() + "_" + i);
|
||||
CsDataArray.setAnotherName(i + "次" +eleEpdPqd.getShowName());
|
||||
CsDataArray.setStatMethod(stat);
|
||||
CsDataArray.setDataType(eleEpdPqd.getType());
|
||||
CsDataArray.setPhase(eleEpdPqd.getPhase());
|
||||
list.add(CsDataArray);
|
||||
}
|
||||
} else {
|
||||
CsDataArrayPO csDataArrayPo = new CsDataArrayPO();
|
||||
csDataArrayPo.setPid(pid);
|
||||
csDataArrayPo.setDataId(eleEpdPqd.getId());
|
||||
csDataArrayPo.setName(eleEpdPqd.getName() + "_" + i);
|
||||
csDataArrayPo.setAnotherName(i + "次" +eleEpdPqd.getShowName());
|
||||
csDataArrayPo.setStatMethod("M");
|
||||
csDataArrayPo.setDataType(eleEpdPqd.getDataType());
|
||||
csDataArrayPo.setPhase(eleEpdPqd.getPhase());
|
||||
list.add(csDataArrayPo);
|
||||
CsDataArray CsDataArray = new CsDataArray();
|
||||
CsDataArray.setPid(pid);
|
||||
CsDataArray.setDataId(eleEpdPqd.getId());
|
||||
CsDataArray.setName(eleEpdPqd.getName() + "_" + i);
|
||||
CsDataArray.setAnotherName(i + "次" +eleEpdPqd.getShowName());
|
||||
CsDataArray.setStatMethod("M");
|
||||
CsDataArray.setDataType(eleEpdPqd.getType());
|
||||
CsDataArray.setPhase(eleEpdPqd.getPhase());
|
||||
list.add(CsDataArray);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -837,26 +832,26 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
|
||||
if (!Objects.isNull(eleEpdPqd.getStatMethod())){
|
||||
List<String> statMethodList = Arrays.asList(eleEpdPqd.getStatMethod().split(","));
|
||||
statMethodList.forEach(stat->{
|
||||
CsDataArrayPO csDataArrayPo = new CsDataArrayPO();
|
||||
csDataArrayPo.setPid(pid);
|
||||
csDataArrayPo.setDataId(eleEpdPqd.getId());
|
||||
csDataArrayPo.setName(eleEpdPqd.getName());
|
||||
csDataArrayPo.setAnotherName(eleEpdPqd.getShowName());
|
||||
csDataArrayPo.setStatMethod(stat);
|
||||
csDataArrayPo.setDataType(eleEpdPqd.getDataType());
|
||||
csDataArrayPo.setPhase(eleEpdPqd.getPhase());
|
||||
list.add(csDataArrayPo);
|
||||
CsDataArray CsDataArray = new CsDataArray();
|
||||
CsDataArray.setPid(pid);
|
||||
CsDataArray.setDataId(eleEpdPqd.getId());
|
||||
CsDataArray.setName(eleEpdPqd.getName());
|
||||
CsDataArray.setAnotherName(eleEpdPqd.getShowName());
|
||||
CsDataArray.setStatMethod(stat);
|
||||
CsDataArray.setDataType(eleEpdPqd.getType());
|
||||
CsDataArray.setPhase(eleEpdPqd.getPhase());
|
||||
list.add(CsDataArray);
|
||||
});
|
||||
} else {
|
||||
CsDataArrayPO csDataArrayPo = new CsDataArrayPO();
|
||||
csDataArrayPo.setPid(pid);
|
||||
csDataArrayPo.setDataId(eleEpdPqd.getId());
|
||||
csDataArrayPo.setName(eleEpdPqd.getName());
|
||||
csDataArrayPo.setAnotherName(eleEpdPqd.getShowName());
|
||||
csDataArrayPo.setStatMethod("M");
|
||||
csDataArrayPo.setDataType(eleEpdPqd.getDataType());
|
||||
csDataArrayPo.setPhase(eleEpdPqd.getPhase());
|
||||
list.add(csDataArrayPo);
|
||||
CsDataArray CsDataArray = new CsDataArray();
|
||||
CsDataArray.setPid(pid);
|
||||
CsDataArray.setDataId(eleEpdPqd.getId());
|
||||
CsDataArray.setName(eleEpdPqd.getName());
|
||||
CsDataArray.setAnotherName(eleEpdPqd.getShowName());
|
||||
CsDataArray.setStatMethod("M");
|
||||
CsDataArray.setDataType(eleEpdPqd.getType());
|
||||
CsDataArray.setPhase(eleEpdPqd.getPhase());
|
||||
list.add(CsDataArray);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.njcn.access.service.impl;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.alibaba.excel.util.CollectionUtils;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.nacos.shaded.com.google.gson.Gson;
|
||||
import com.github.tocrhz.mqtt.publisher.MqttPublisher;
|
||||
import com.njcn.access.enums.AccessEnum;
|
||||
import com.njcn.access.enums.AccessResponseEnum;
|
||||
@@ -265,7 +266,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
|
||||
reqAndResParam.setPri(AccessEnum.FIRST_CHANNEL.getCode());
|
||||
reqAndResParam.setType(Integer.parseInt(TypeEnum.TYPE_5.getCode()));
|
||||
reqAndResParam.setExpire(-1);
|
||||
publisher.send("/Pfm/DevCmd/"+version+"/"+nDid, PubUtils.obj2json(reqAndResParam),1,false);
|
||||
publisher.send("/Pfm/DevCmd/"+version+"/"+nDid, new Gson().toJson(reqAndResParam),1,false);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -278,7 +279,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
|
||||
reqAndResParam.setPri(AccessEnum.FIRST_CHANNEL.getCode());
|
||||
reqAndResParam.setType(Integer.parseInt(TypeEnum.TYPE_1.getCode()));
|
||||
reqAndResParam.setExpire(-1);
|
||||
publisher.send("/Pfm/DevTopic/"+nDid, PubUtils.obj2json(reqAndResParam),1,false);
|
||||
publisher.send("/Pfm/DevTopic/"+nDid, new Gson().toJson(reqAndResParam),1,false);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -297,7 +298,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
|
||||
accessDto.setNDid(nDid);
|
||||
accessDto.setDevType(devType);
|
||||
reqAndResParam.setMsg(accessDto);
|
||||
publisher.send("/Pfm/DevReg/"+nDid, PubUtils.obj2json(reqAndResParam),1,false);
|
||||
publisher.send("/Pfm/DevReg/"+nDid, new Gson().toJson(reqAndResParam),1,false);
|
||||
}
|
||||
|
||||
public List<CsModelDto> objectToList(Object object) {
|
||||
@@ -347,7 +348,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
|
||||
askDataDto.setDataType(2);
|
||||
}
|
||||
reqAndResParam.setMsg(askDataDto);
|
||||
publisher.send("/Pfm/DevCmd/"+version+"/"+nDid, PubUtils.obj2json(reqAndResParam),1,false);
|
||||
publisher.send("/Pfm/DevCmd/"+version+"/"+nDid, new Gson().toJson(reqAndResParam),1,false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -4,7 +4,12 @@ import static org.junit.Assert.assertTrue;
|
||||
|
||||
import com.alibaba.nacos.shaded.com.google.common.reflect.TypeToken;
|
||||
import com.alibaba.nacos.shaded.com.google.gson.Gson;
|
||||
import com.github.tocrhz.mqtt.publisher.MqttPublisher;
|
||||
import com.graphbuilder.math.func.EFunction;
|
||||
import com.njcn.access.AccessBootApplication;
|
||||
import com.njcn.access.enums.AccessEnum;
|
||||
import com.njcn.access.enums.TypeEnum;
|
||||
import com.njcn.access.pojo.dto.ReqAndResDto;
|
||||
import com.njcn.access.pojo.dto.mqtt.MqttClientDto;
|
||||
import io.lettuce.core.protocol.CompleteableCommand;
|
||||
import okhttp3.Credentials;
|
||||
@@ -12,7 +17,12 @@ import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.test.context.web.WebAppConfiguration;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
@@ -26,6 +36,9 @@ import java.util.stream.Collectors;
|
||||
/**
|
||||
* Unit test for simple App.
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@WebAppConfiguration
|
||||
@SpringBootTest(classes = AccessBootApplication.class)
|
||||
public class AppTest
|
||||
{
|
||||
/**
|
||||
@@ -37,30 +50,43 @@ public class AppTest
|
||||
assertTrue( true );
|
||||
}
|
||||
|
||||
@Resource
|
||||
private MqttPublisher publisher;
|
||||
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String username = "ac760c62395cecec";
|
||||
String password = "k0vGfe5xOE2Bl4DCF73uahcknvcwoKOEDPnOkMvuSBB";
|
||||
|
||||
OkHttpClient client = new OkHttpClient();
|
||||
|
||||
Request request = new Request.Builder()
|
||||
.url("http://192.168.1.18:18083/api/v5/clients/access-boot123456")
|
||||
.header("Content-Type", "application/json")
|
||||
.header("Authorization", Credentials.basic(username, password))
|
||||
.build();
|
||||
|
||||
Response response = client.newCall(request).execute();
|
||||
response.body();
|
||||
String res = Objects.requireNonNull(response.body()).string();
|
||||
|
||||
Gson gson = new Gson();
|
||||
MqttClientDto mqttClientDto = gson.fromJson(res, new TypeToken<MqttClientDto>(){}.getType());
|
||||
System.out.println("mqttClientDto==:" + mqttClientDto.isConnected());
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@Test
|
||||
public void test() {
|
||||
ReqAndResDto reqAndResParam = new ReqAndResDto();
|
||||
reqAndResParam.setMid(1);
|
||||
reqAndResParam.setDid(0);
|
||||
reqAndResParam.setPri(AccessEnum.FIRST_CHANNEL.getCode());
|
||||
reqAndResParam.setType(4866);
|
||||
publisher.send("/Dev/Data1/V1/123", new Gson().toJson(reqAndResParam),1,false);
|
||||
}
|
||||
|
||||
// public static void main(String[] args) {
|
||||
// try {
|
||||
// String username = "ac760c62395cecec";
|
||||
// String password = "k0vGfe5xOE2Bl4DCF73uahcknvcwoKOEDPnOkMvuSBB";
|
||||
//
|
||||
// OkHttpClient client = new OkHttpClient();
|
||||
//
|
||||
// Request request = new Request.Builder()
|
||||
// .url("http://192.168.1.18:18083/api/v5/clients/access-boot123456")
|
||||
// .header("Content-Type", "application/json")
|
||||
// .header("Authorization", Credentials.basic(username, password))
|
||||
// .build();
|
||||
//
|
||||
// Response response = client.newCall(request).execute();
|
||||
// response.body();
|
||||
// String res = Objects.requireNonNull(response.body()).string();
|
||||
//
|
||||
// Gson gson = new Gson();
|
||||
// MqttClientDto mqttClientDto = gson.fromJson(res, new TypeToken<MqttClientDto>(){}.getType());
|
||||
// System.out.println("mqttClientDto==:" + mqttClientDto.isConnected());
|
||||
//
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user