电能质量代码调整
This commit is contained in:
@@ -19,6 +19,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
@@ -59,4 +60,27 @@ public class DevVersionController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/find")
|
||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
||||
@ApiOperation("获取网关下所有模板")
|
||||
@ApiImplicitParam(name = "nDId", value = "网关id", required = true)
|
||||
public HttpResult<List<DevVersion>> find(@RequestParam String nDId){
|
||||
String methodDescribe = getMethodDescribe("find");
|
||||
LogUtil.njcnDebug(log, "{},网关id:{}", methodDescribe, nDId);
|
||||
List<DevVersion> list = IDevVersionService.findListById(nDId);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
|
||||
@PostMapping("/deleteById")
|
||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
||||
@ApiOperation("根据网关删除所有模板")
|
||||
@ApiImplicitParam(name = "nDId", value = "网关id", required = true)
|
||||
public HttpResult<Boolean> deleteById(@RequestParam String nDId){
|
||||
String methodDescribe = getMethodDescribe("deleteById");
|
||||
LogUtil.njcnDebug(log, "{},网关id:{}", methodDescribe, nDId);
|
||||
boolean result = IDevVersionService.deleteById(nDId);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -258,16 +258,16 @@ public class LogicDeviceLineController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
@DeleteMapping("/deleteByVersionId")
|
||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.DELETE)
|
||||
@ApiOperation("根据版本id删除逻辑设备")
|
||||
@ApiImplicitParam(name = "id", value = "逻辑设备版本id", required = true)
|
||||
public HttpResult<Boolean> deleteByVersionId(@RequestParam String id){
|
||||
String methodDescribe = getMethodDescribe("deleteByVersionId");
|
||||
LogUtil.njcnDebug(log, "{},设备的did:{}", methodDescribe, id);
|
||||
boolean result = iLogicDeviceLineService.deleteByVersionId(id);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
// @DeleteMapping("/deleteByVersionId")
|
||||
// @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.DELETE)
|
||||
// @ApiOperation("根据版本id删除逻辑设备")
|
||||
// @ApiImplicitParam(name = "id", value = "逻辑设备版本id", required = true)
|
||||
// public HttpResult<Boolean> deleteByVersionId(@RequestParam String id){
|
||||
// String methodDescribe = getMethodDescribe("deleteByVersionId");
|
||||
// LogUtil.njcnDebug(log, "{},设备的did:{}", methodDescribe, id);
|
||||
// boolean result = iLogicDeviceLineService.deleteByVersionId(id);
|
||||
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
// }
|
||||
|
||||
@GetMapping("/getLogicDevByVersionId")
|
||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
||||
|
||||
@@ -3,6 +3,8 @@ package com.njcn.quality.service;
|
||||
import com.njcn.quality.param.DevVersionParam;
|
||||
import com.njcn.quality.pojo.po.DevVersion;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author 徐扬
|
||||
*/
|
||||
@@ -26,4 +28,22 @@ public interface IDevVersionService {
|
||||
*/
|
||||
boolean deleteDevVersion(String id);
|
||||
|
||||
/**
|
||||
* 功能描述: 获取网关下所有模板
|
||||
* @author xy
|
||||
* @param id 网关id
|
||||
* @date 2022/7/13 15:58
|
||||
* @return
|
||||
*/
|
||||
List<DevVersion> findListById(String id);
|
||||
|
||||
/**
|
||||
* 功能描述: 根据网关删除所有模板
|
||||
* @author xy
|
||||
* @param id 网关id
|
||||
* @date 2022/7/13 15:58
|
||||
* @return
|
||||
*/
|
||||
boolean deleteById(String id);
|
||||
|
||||
}
|
||||
|
||||
@@ -164,14 +164,14 @@ public interface ILogicDeviceLineService {
|
||||
List<LogicDev> getLogicDevByPid(List<String> list);
|
||||
|
||||
/**
|
||||
* 功能描述: 根据版本id删除逻辑设备
|
||||
* 功能描述: 根据网关id删除逻辑设备
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
* @author xy
|
||||
* @date 2022/3/17 14:45
|
||||
*/
|
||||
boolean deleteByVersionId(String id);
|
||||
boolean deleteByNDid(String id);
|
||||
|
||||
/**
|
||||
* 功能描述: 根据版本id查询逻辑设备
|
||||
|
||||
@@ -4,7 +4,6 @@ package com.njcn.quality.service;
|
||||
import com.njcn.quality.param.UpdateDeviceVersion;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
/**
|
||||
* @author 徐扬
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.njcn.quality.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||
import com.njcn.quality.mapper.DevVersionMapper;
|
||||
@@ -9,6 +10,8 @@ import com.njcn.quality.service.IDevVersionService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 类的介绍:
|
||||
*
|
||||
@@ -20,7 +23,6 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class DevVersionServiceImpl extends ServiceImpl<DevVersionMapper, DevVersion> implements IDevVersionService {
|
||||
|
||||
|
||||
@Override
|
||||
public DevVersion addDevVersion(DevVersionParam devVersionParam) {
|
||||
DevVersion devVersion = new DevVersion();
|
||||
@@ -34,4 +36,18 @@ public class DevVersionServiceImpl extends ServiceImpl<DevVersionMapper, DevVers
|
||||
public boolean deleteDevVersion(String id) {
|
||||
return this.removeById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DevVersion> findListById(String id) {
|
||||
LambdaQueryWrapper<DevVersion> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(DevVersion::getNdid,id);
|
||||
return this.baseMapper.selectList(lambdaQueryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteById(String id) {
|
||||
LambdaQueryWrapper<DevVersion> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(DevVersion::getNdid,id);
|
||||
return this.remove(lambdaQueryWrapper);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,9 @@ public class EleInformationServiceImpl extends ServiceImpl<EleInformationMapper,
|
||||
|
||||
@Override
|
||||
public void addInformation(List<EleInformation> list) {
|
||||
this.saveBatch(list);
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
list.forEach(this::save);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -572,9 +572,9 @@ public class LogicDeviceLineServiceImpl extends ServiceImpl<LogicDeviceLineMappe
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteByVersionId(String id) {
|
||||
public boolean deleteByNDid(String id) {
|
||||
QueryWrapper<LogicDev> logicDevQueryWrapper = new QueryWrapper<>();
|
||||
logicDevQueryWrapper.eq("Version_Id", id);
|
||||
logicDevQueryWrapper.eq("Pid", id);
|
||||
return this.remove(logicDevQueryWrapper);
|
||||
}
|
||||
|
||||
|
||||
@@ -311,18 +311,35 @@ public class ModelServiceImpl implements IModelService {
|
||||
return gson.toJson(response);
|
||||
}
|
||||
}
|
||||
//判断所有模板版本
|
||||
List<TpListDTO> tpList = access.getParam().getTpList();
|
||||
tpList.forEach(item->{
|
||||
versionSet.add(item.getName() + "+" +item.getVersion() + "+" + item.getTime());
|
||||
});
|
||||
for (String item: versionSet) {
|
||||
QueryWrapper<DataMould> dataMouldQueryWrapper = new QueryWrapper<>();
|
||||
dataMouldQueryWrapper.eq("Name",item.split("\\+")[0]).eq("Version", item.split("\\+")[1]).eq("Time", item.split("\\+")[2]);
|
||||
DataMould dataMould = dataMouldMapper.selectOne(dataMouldQueryWrapper);
|
||||
if (Objects.isNull(dataMould)) {
|
||||
if (CollectionUtils.isEmpty(tpList)){
|
||||
response.setCode(Integer.parseInt(EnergyResponseEnum.NO_MODEL_FIND.getCode()));
|
||||
response.setMsg(EnergyResponseEnum.NO_MODEL_FIND.getMessage());
|
||||
return gson.toJson(response);
|
||||
} else {
|
||||
//获取当前网关下的所有模板
|
||||
List<DevVersion> devVersions = devVersionService.findListById(ndid);
|
||||
if (CollectionUtils.isEmpty(devVersions)){
|
||||
response.setCode(Integer.parseInt(EnergyResponseEnum.NO_MODEL_FIND.getCode()));
|
||||
response.setMsg(EnergyResponseEnum.NO_MODEL_FIND.getMessage());
|
||||
return gson.toJson(response);
|
||||
} else {
|
||||
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
Map<String,String> map1 = new HashMap<>(),map2 = new HashMap<>();
|
||||
tpList.forEach(item->{
|
||||
map1.put(item.getName(),item.getName()+item.getVersion()+item.getTime());
|
||||
});
|
||||
devVersions.forEach(item->{
|
||||
map2.put(item.getName(),item.getName()+item.getVersion()+df.format(item.getTime()));
|
||||
});
|
||||
for (String item:map1.keySet()) {
|
||||
if (Objects.isNull(map2.get(item)) || !Objects.equals(map1.get(item),map2.get(item))){
|
||||
response.setCode(Integer.parseInt(EnergyResponseEnum.MODEL_UPGRADE.getCode()));
|
||||
response.setMsg(EnergyResponseEnum.MODEL_UPGRADE.getMessage());
|
||||
return gson.toJson(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//将接入的装置添加模板装置id
|
||||
@@ -377,10 +394,14 @@ public class ModelServiceImpl implements IModelService {
|
||||
Gson gson = new Gson();
|
||||
AskDataDTO.AskDataResponse response = gson.fromJson(json,AskDataDTO.AskDataResponse.class);
|
||||
if (Objects.equals(response.getCode(),Integer.parseInt(EnergyResponseEnum.SUCCESS.getCode()))){
|
||||
NetDevDTO netDevDTO = response.getParam().getDataArray().get(0).getTemplate().getNetDev();
|
||||
/**
|
||||
* 删除模板记录
|
||||
*/
|
||||
devVersionService.deleteById(netDevDTO.getNDid());
|
||||
/**
|
||||
* 解析联网(网关)模板
|
||||
*/
|
||||
NetDevDTO netDevDTO = response.getParam().getDataArray().get(0).getTemplate().getNetDev();
|
||||
//获取联网设备信息
|
||||
LambdaQueryWrapper<NetDev> netDevQueryWrapper = new LambdaQueryWrapper<>();
|
||||
netDevQueryWrapper.eq(NetDev::getNdid,netDevDTO.getNDid()).eq(NetDev::getState,DataStateEnum.ENABLE.getCode());
|
||||
@@ -388,10 +409,6 @@ public class ModelServiceImpl implements IModelService {
|
||||
if(Objects.isNull(netDev)){
|
||||
throw new BusinessException(EnergyResponseEnum.NET_DEV_MODEL_ERROR);
|
||||
}
|
||||
//根据网关的versionId判断,如果存在,更新的时候就先根据id删除版本表记录,重新生成一个,再给网关赋予这个id;如果不存在id,就直接生成一个,再赋予网关
|
||||
if (StringUtils.isNotBlank(netDev.getVersionId())){
|
||||
devVersionService.deleteDevVersion(netDev.getVersionId());
|
||||
}
|
||||
//新增系统版本表
|
||||
DevVersionParam devVersionParam = new DevVersionParam();
|
||||
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
@@ -400,6 +417,7 @@ public class ModelServiceImpl implements IModelService {
|
||||
devVersionParam.setVersion(netDevDTO.getVersion());
|
||||
devVersionParam.setTime(LocalDateTime.parse(netDevDTO.getTime(),df));
|
||||
devVersionParam.setCreateTime(LocalDateTime.now());
|
||||
devVersionParam.setName(netDevDTO.getName());
|
||||
DevVersion netDevVersion = devVersionService.addDevVersion(devVersionParam);
|
||||
//更新网关设备表
|
||||
netDev.setVersionId(netDevVersion.getId());
|
||||
@@ -426,34 +444,33 @@ public class ModelServiceImpl implements IModelService {
|
||||
* 解析装置模板
|
||||
*/
|
||||
List<DevDTO> devList = response.getParam().getDataArray().get(0).getTemplate().getDev();
|
||||
Map<String,String> map = analyzeDev(devList);
|
||||
Map<String,String> map = analyzeDev(devList,netDevDTO.getNDid());
|
||||
/**
|
||||
* 解析逻辑模板
|
||||
*/
|
||||
DevCfgDTO devCfgDTO = response.getParam().getDataArray().get(0).getTemplate().getDevCfg();
|
||||
//获取当前网关下的逻辑设备版本信息
|
||||
QueryWrapper<DevVersion> devVersionQueryWrapper = new QueryWrapper<>();
|
||||
devVersionQueryWrapper.eq("NDID",netDevDTO.getNDid()).eq("Type",ModelState.LOGIC_DEV).eq("State",DataStateEnum.ENABLE.getCode());
|
||||
DevVersion devCfgVersion = devVersionMapper.selectOne(devVersionQueryWrapper);
|
||||
//如果版本信息为空,直接写入;如果不为空,就先删除之前的数据,然后重新录入信息
|
||||
if (!Objects.isNull(devCfgVersion)){
|
||||
List<String> logicList = logicDeviceLineService.getLogicDevByVersionId(devCfgVersion.getId()).stream().map(LogicDev::getId).collect(Collectors.toList());
|
||||
//删除逻辑设备信息
|
||||
logicDeviceLineService.deleteByVersionId(devCfgVersion.getId());
|
||||
//删除逻辑设备版本信息
|
||||
devVersionService.deleteDevVersion(devCfgVersion.getId());
|
||||
//删除监测点信息
|
||||
lineService.deleteByList(logicList);
|
||||
//删除硬件信息
|
||||
hardwareService.deleteHardware(logicList);
|
||||
}
|
||||
DevVersionParam devCfgVersionParam = new DevVersionParam();
|
||||
BeanUtil.copyProperties(devCfgDTO,devCfgVersionParam);
|
||||
devCfgVersionParam.setType(ModelState.LOGIC_DEV);
|
||||
devCfgVersionParam.setCreateTime(LocalDateTime.now());
|
||||
devCfgVersionParam.setNdid(netDevDTO.getNDid());
|
||||
devCfgVersionParam.setName(devCfgDTO.getName());
|
||||
devCfgVersionParam.setType(ModelState.LOGIC_DEV);
|
||||
devCfgVersionParam.setVersion(devCfgDTO.getVersion());
|
||||
devCfgVersionParam.setTime(LocalDateTime.parse(devCfgDTO.getTime(),df));
|
||||
devCfgVersionParam.setCreateTime(LocalDateTime.now());
|
||||
//逻辑设备入库->设备版本信息表
|
||||
DevVersion devVersion = devVersionService.addDevVersion(devCfgVersionParam);
|
||||
List<String> nDidList = Collections.singletonList(netDevService.findByNdid(netDevDTO.getNDid()).getId());
|
||||
if (!CollectionUtils.isEmpty(nDidList)){
|
||||
List<LogicDev> logicDevList =logicDeviceLineService.getLogicDevByPid(nDidList);
|
||||
if (!CollectionUtils.isEmpty(logicDevList)){
|
||||
List<String> list =logicDevList.stream().map(LogicDev::getId).collect(Collectors.toList());
|
||||
//删除逻辑设备信息
|
||||
logicDeviceLineService.deleteByNDid(nDidList.get(0));
|
||||
//删除监测点信息
|
||||
lineService.deleteByList(list);
|
||||
//删除硬件信息
|
||||
hardwareService.deleteHardware(list);
|
||||
}
|
||||
}
|
||||
List<DeviceDTO> list = devCfgDTO.getCfg();
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
list.forEach(item->{
|
||||
@@ -466,7 +483,10 @@ public class ModelServiceImpl implements IModelService {
|
||||
}
|
||||
devCfgParam.setDid(item.getId());
|
||||
devCfgParam.setVersionId(devVersion.getId());
|
||||
if (Objects.isNull(map.get(item.getName() + item.getVersion() + item.getTime()))){
|
||||
// if (Objects.isNull(map.get(item.getName() + item.getVersion() + item.getTime()))){
|
||||
// throw new BusinessException(EnergyResponseEnum.MODEL_ERROR);
|
||||
// }
|
||||
if (Objects.isNull(map.get(item.getName()))){
|
||||
throw new BusinessException(EnergyResponseEnum.MODEL_ERROR);
|
||||
}
|
||||
devCfgParam.setIdx(map.get(item.getName() + item.getVersion() + item.getTime()));
|
||||
@@ -500,6 +520,17 @@ public class ModelServiceImpl implements IModelService {
|
||||
}
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 解析用户模板
|
||||
*/
|
||||
UserCfgDTO userCfgDTO = response.getParam().getDataArray().get(0).getTemplate().getUserCfg();
|
||||
DevVersionParam devCfgVersionParam2 = new DevVersionParam();
|
||||
BeanUtil.copyProperties(userCfgDTO,devCfgVersionParam2);
|
||||
devCfgVersionParam2.setType(ModelState.USER);
|
||||
devCfgVersionParam2.setCreateTime(LocalDateTime.now());
|
||||
devCfgVersionParam2.setNdid(netDevDTO.getNDid());
|
||||
//逻辑设备入库->设备版本信息表
|
||||
devVersionService.addDevVersion(devCfgVersionParam2);
|
||||
} else {
|
||||
log.error("获取数据失败");
|
||||
}
|
||||
@@ -652,9 +683,19 @@ public class ModelServiceImpl implements IModelService {
|
||||
/**
|
||||
* 解析设备模板
|
||||
*/
|
||||
public Map<String,String> analyzeDev(List<DevDTO> devList){
|
||||
public Map<String,String> analyzeDev(List<DevDTO> devList,String ndid){
|
||||
Map<String,String> map = new HashMap<>();
|
||||
devList.forEach(item->{
|
||||
//装置模板库录入
|
||||
DevVersionParam devVersionParam = new DevVersionParam();
|
||||
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
devVersionParam.setNdid(ndid);
|
||||
devVersionParam.setName(item.getName());
|
||||
devVersionParam.setType(ModelState.DICTIONARY);
|
||||
devVersionParam.setVersion(item.getVersion());
|
||||
devVersionParam.setTime(LocalDateTime.parse(item.getTime(),df));
|
||||
devVersionParam.setCreateTime(LocalDateTime.now());
|
||||
devVersionService.addDevVersion(devVersionParam);
|
||||
//先将数据类型入库
|
||||
addDataType(item);
|
||||
QueryWrapper<DataMould> dataMouldQueryWrapper = new QueryWrapper<>();
|
||||
@@ -685,7 +726,8 @@ public class ModelServiceImpl implements IModelService {
|
||||
if (!Objects.isNull(mould)){
|
||||
logicDeviceLineService.updateLogicDevice(mould.getId(),dataMould.getId());
|
||||
}
|
||||
String tmp = item.getName() + item.getVersion() + item.getTime();
|
||||
// String tmp = item.getName() + item.getVersion() + item.getTime();
|
||||
String tmp = item.getName();
|
||||
map.put(tmp,dataMould.getId());
|
||||
//入库->ele_data_set
|
||||
if (!CollectionUtils.isEmpty(item.getDataSet())){
|
||||
|
||||
@@ -104,7 +104,7 @@ public class NetDevServiceImpl extends ServiceImpl<NetDevMapper, NetDev> impleme
|
||||
public void offlineNetDev(String netDev) {
|
||||
this.lambdaUpdate()
|
||||
.set(NetDev::getComFlag, ModelState.UNREGISTER)
|
||||
.eq(NetDev::getId,netDev)
|
||||
.eq(NetDev::getNdid,netDev)
|
||||
.update();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user