1.定值管理

2.终端性能查看
3.监测点实时数据
4.终端升级
This commit is contained in:
wr
2023-08-18 15:45:54 +08:00
parent febba71ac1
commit df5c9f8b76
45 changed files with 2796 additions and 40 deletions

View File

@@ -0,0 +1,10 @@
package com.njcn.device.pq.pojo.advanced;
import lombok.Data;
@Data
public class ContUpdateDevValueRVO {
private String len;
private ContUpdateDevValueVO data;
}

View File

@@ -0,0 +1,12 @@
package com.njcn.device.pq.pojo.advanced;
import lombok.Data;
@Data
public class ContUpdateDevValueVO {
private String type;
private String index;
private String hander;
private int[] interValue;
}

View File

@@ -0,0 +1,10 @@
package com.njcn.device.pq.pojo.advanced;
import lombok.Data;
@Data
public class ContUpdateValueRVO {
private String len;
private ContUpdateValueVO data;
}

View File

@@ -0,0 +1,12 @@
package com.njcn.device.pq.pojo.advanced;
import lombok.Data;
@Data
public class ContUpdateValueVO {
private String type;
private String index;
private String lineid;
private String hander;
private float[] value;
}

View File

@@ -0,0 +1,11 @@
package com.njcn.device.pq.pojo.advanced;
import lombok.Data;
@Data
public class ContValueRVO {
private String len;
private ContValueVO data;
}

View File

@@ -0,0 +1,11 @@
package com.njcn.device.pq.pojo.advanced;
import lombok.Data;
@Data
public class ContValueVO {
private String type;
private String index;
private String lineid;
private String hander;
}

View File

@@ -0,0 +1,18 @@
package com.njcn.device.pq.pojo.advanced;
import lombok.Data;
import java.util.List;
/***
* @Description:
* @Author: wr
* @Date: 2023/8/16 16:10
*/
@Data
public class UpDataVO {
private String type;
private String edIndex;
private String userIndex;
private List<UpDevVO> terminal;
}

View File

@@ -0,0 +1,19 @@
package com.njcn.device.pq.pojo.advanced;
import lombok.Data;
/**
* @Description
* @Author wr
* @Date 2022/8/14
**/
@Data
public class UpDevVO {
private String devIndex;
private String devName;
public String getDevIndex() {
return devIndex;
}
}

View File

@@ -0,0 +1,16 @@
package com.njcn.device.pq.pojo.advanced;
import lombok.Data;
/**
* @Author: wr
* @Date: 2023/8/16 16:10
*/
@Data
public class UpParamVO {
private String len;
private UpDataVO data;
}

View File

@@ -0,0 +1,80 @@
package com.njcn.device.pq.pojo.param;
import com.njcn.device.pq.pojo.po.PqsProtectvalue;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
/**
* @author wr
* @description
* @date 2023/8/11 9:20
*/
@Data
public class ConstantValueParam implements Serializable {
@ApiModelProperty(name = "hander", value = "用于匹配 0 定值 1 定值描述")
@NotNull(message = "用于匹配 0 定值 1 定值描述不能为空")
private Integer hander;
@ApiModelProperty(name = "type", value = "区分内外定值")
@NotNull(message = "区分内外定值不能为空")
private Integer type;
@ApiModelProperty(name = "json", value = "json数据")
@NotNull(message = "json数据不能为空")
private ConstantValue json;
@Data
public static class ConstantValue {
private List<PqsProtectvalue> data;
private String devindex;
private Integer hander;
private String lineindex;
private String methodname;
}
@Data
public static class Constant {
@ApiModelProperty(name = "ip", value = "网络ip")
private String ip;
@ApiModelProperty(name = "type", value = "区分内外定值")
private String type;
@ApiModelProperty(name = "id", value = "监测编号或者终端编号")
@NotBlank(message = "装置系列字典不能为空")
private String id;
@ApiModelProperty(name = "hander", value = "用于匹配 0 定值 1 定值描述")
@NotBlank(message = "装置系列字典不能为空")
private String hander;
}
@Data
public static class ValueData extends Constant {
@ApiModelProperty(name = "interValue", value = "数值")
private String interValue;
}
@Data
public static class Upgrades {
@ApiModelProperty(name = "list", value = "终端id集合")
@NotEmpty(message = "终端id集合不能为空")
private List<String> list;
@ApiModelProperty(name = "edIndex", value = "选中版本号id")
@NotBlank(message = "选中版本号id不能为空")
private String edIndex;
}
}

View File

@@ -3,6 +3,9 @@ package com.njcn.device.pq.pojo.param;
import com.njcn.web.pojo.param.BaseParam; import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable; import java.io.Serializable;
@@ -17,4 +20,15 @@ public class ProgramParam extends BaseParam implements Serializable {
@ApiModelProperty(name = "devType", value = "装置系列,字典表", required = false) @ApiModelProperty(name = "devType", value = "装置系列,字典表", required = false)
private String devType; private String devType;
@Data
public static class Version{
@ApiModelProperty(name = "devType", value = "装置系列,字典表")
@NotBlank(message = "装置系列字典不能为空")
private String devType;
@ApiModelProperty(name = "devType", value = "版本编号集合")
@NotEmpty(message = "版本编号集合不能为空")
private String versionIds;
}
} }

View File

@@ -35,37 +35,18 @@ public class DevVersion extends BaseEntity {
/** /**
* 版本状态0-前期版本;1-当前版本) * 版本状态0-前期版本;1-当前版本)
*/ */
private Boolean flag; private Integer flag;
/** /**
* 操作结果0-升级失败;1-升级成功) * 操作结果0-升级失败;1-升级成功)
*/ */
private Boolean result; private Integer result;
/** /**
* 状态 0-删除1-正常;默认正常 * 状态 0-删除1-正常;默认正常
*/ */
private Boolean state; private Integer state;
/**
* 创建用户
*/
private String createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新用户
*/
private String updateBy;
/**
* 更新时间
*/
private LocalDateTime updateTime;
private String devType; private String devType;
private String devTypeName; private String devTypeName;

View File

@@ -0,0 +1,57 @@
package com.njcn.device.pq.pojo.po;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
*
* </p>
*
* @author wr
* @since 2023-08-10
*/
@Getter
@Setter
@TableName("pqs_protectcontrolword")
public class PqsProtectcontrolword {
private static final long serialVersionUID = 1L;
/**
* PV_INDEX的外键定值表的主键
*/
@TableId(value = "pv_index")
private String pvIndex;
/**
* 控制位序号0,1,2,3,……,15
*/
private Integer typeNum;
/**
* 控制位为0时表达意义
*/
private String bit0;
/**
* 控制位为1时表达意义
*/
private String bit1;
/**
* 描述
*/
private String describe;
/**
* 是否选中01
*/
private Integer flag;
}

View File

@@ -0,0 +1,96 @@
package com.njcn.device.pq.pojo.po;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
*
* </p>
*
* @author wr
* @since 2023-08-10
*/
@Getter
@Setter
@TableName("pqs_protectvalue")
public class PqsProtectvalue {
private static final long serialVersionUID = 1L;
/**
* 索引
*/
@TableId(value = "pv_index")
private String pvIndex;
/**
* 监测点序号内部定值默认为1
*/
@TableField( "cpu_no")
private Integer cpu_no;
/**
* 终端类型GUIDPQS_Dicdata
*/
@TableField("dev_type")
private String dev_type;
/**
* 类型 80-外部定值 十进制类型 81-外部定值的十六进制类型 90-内部定值 十进制类型 91-内部定制 十六进制类型
*/
private Integer type;
@TableField( "dz_type")
private Integer dz_type;
/**
* 单位
*/
private String unit;
/**
* 最大值
*/
@TableField( "max_value")
private Float maxvalue;
/**
* 最小值
*/
@TableField( "min_value")
private Float minvalue;
/**
* 默认值
*/
@TableField( "default_value")
private Float defaultvalue;
/**
* 设定值
*/
@TableField( "value")
private Float value;
/**
* 描述
*/
@TableField( "description")
private String describe;
/**
* 排序
*/
private Integer sort;
@TableField(exist = false)
List<PqsProtectcontrolword> word;
}

View File

@@ -0,0 +1,40 @@
package com.njcn.device.pq.pojo.vo;
import com.njcn.device.pq.pojo.advanced.UpDevVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Description: 终端升级实体
* @Author: wr
* @Date: 2023/8/16 15:28
*/
@Data
public class DeviceIpRVO {
@ApiModelProperty("终端id")
private String devIndex;
@ApiModelProperty("终端名称")
private String devName;
@ApiModelProperty("前置ip")
private String ip;
@ApiModelProperty("端口")
private Integer port;
@ApiModelProperty("装置类型")
private String devType;
@ApiModelProperty("装置系列")
private String devSeries;
@ApiModelProperty("终端状态")
private Integer comFlag;
//扩展
private List<UpDevVO> devlist;
private List<String> indexlist;
}

View File

@@ -46,6 +46,45 @@ public class TerminalVersionVO implements Serializable {
private String updateTime; private String updateTime;
@ApiModelProperty(name = "升级人员") @ApiModelProperty(name = "升级人员")
private String updateBy; private String updateBy;
@ApiModelProperty(name = "版本序号")
private String versionId;
@ApiModelProperty(name = "子级") @ApiModelProperty(name = "子级")
List<TerminalVersionVO> children; List<TerminalVersionVO> children;
@Data
public static class Version{
@ApiModelProperty(name = "终端编号")
private String id;
@ApiModelProperty(name = "终端名称")
private String name;
@ApiModelProperty(name = "版本序号")
private String versionName;
@ApiModelProperty(name = "版本协议")
private String protocol;
@ApiModelProperty(name = "版本日期")
private String versionDate;
@ApiModelProperty(name = "终端系列")
private String devSeries;
@ApiModelProperty(name = "终端型号")
private String devType;
@ApiModelProperty(name = "供电公司")
private String gbName;
@ApiModelProperty(name = "变电站")
private String subName;
@ApiModelProperty(name = "更新时间")
private String updateTime;
@ApiModelProperty(name = "修改人")
private String updateBy;
}
} }

View File

@@ -80,4 +80,6 @@ public class VersionVO implements Serializable {
@ApiModelProperty("文件名称") @ApiModelProperty("文件名称")
private String fileName; private String fileName;
@ApiModelProperty("是否存在文件0=未有文件 1=已有文件")
private Integer isFile;
} }

View File

@@ -1,12 +1,30 @@
package com.njcn.device.pq.controller; package com.njcn.device.pq.controller;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.StrUtil;
import com.github.tocrhz.mqtt.annotation.MqttSubscribe;
import com.github.tocrhz.mqtt.annotation.NamedValue;
import com.github.tocrhz.mqtt.annotation.Payload;
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.device.pq.pojo.param.ConstantValueParam;
import com.njcn.device.pq.service.IDeviceService; import com.njcn.device.pq.service.IDeviceService;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import com.njcn.web.utils.RequestUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping; import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.web.bind.annotation.RestController; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.nio.charset.StandardCharsets;
import java.util.List;
/** /**
* pqs * pqs
@@ -22,7 +40,131 @@ import org.springframework.web.bind.annotation.RestController;
public class DeviceController extends BaseController { public class DeviceController extends BaseController {
private final IDeviceService iDeviceService; private final IDeviceService iDeviceService;
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/socketLine")
@ApiOperation("获取监测点定值信息")
public HttpResult<String> socketLine(@RequestBody @Validated ConstantValueParam.Constant param) {
String methodDescribe = getMethodDescribe("socketLine");
if(StrUtil.isBlank(param.getIp())){
param.setIp(RequestUtil.getRealIp());
}
String s = iDeviceService.sentLine(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/updateSocketLine")
@ApiOperation("修改监测点定值信息")
public HttpResult<String> updateSocketLine(@RequestBody @Validated ConstantValueParam.ValueData param) {
String methodDescribe = getMethodDescribe("updateSocketLine");
if(StrUtil.isBlank(param.getIp())){
param.setIp(RequestUtil.getRealIp());
}
String s = iDeviceService.sentLineData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/socketDev")
@ApiOperation("获取终端定值信息")
public HttpResult<String> socketDev(@RequestBody @Validated ConstantValueParam.Constant param) {
String methodDescribe = getMethodDescribe("socketDev");
if(StrUtil.isBlank(param.getIp())){
param.setIp(RequestUtil.getRealIp());
}
String s = iDeviceService.sentDev(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/updateSocketDev")
@ApiOperation("修改终端定值信息")
public HttpResult<String> updateSocketDev(@RequestBody @Validated ConstantValueParam.ValueData param) {
String methodDescribe = getMethodDescribe("updateSocketDev");
if(StrUtil.isBlank(param.getIp())){
param.setIp(RequestUtil.getRealIp());
}
String s = iDeviceService.sentDevData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/socketDevProperty")
@ApiOperation("获取终端性能信息")
public HttpResult<String> socketDevProperty(String devID) {
String methodDescribe = getMethodDescribe("socketDevProperty");
String s = iDeviceService.socketDevProperty(devID);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/socketDevPropertyClose")
@ApiOperation("终端性能关闭")
public HttpResult<String> socketDevPropertyClose(String devID) {
String methodDescribe = getMethodDescribe("socketDevPropertyClose");
String s = iDeviceService.socketDevPropertyClose(devID);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/realTimeData")
@ApiOperation("监测点实时数据查看")
public HttpResult<String> realTimeData(String lineID) {
String methodDescribe = getMethodDescribe("realTimeData");
String s = iDeviceService.realTimeData(lineID);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/heartRealTimeData")
@ApiOperation("监测实施数据心跳")
public HttpResult<String> heartRealTimeData(String lineID) {
String methodDescribe = getMethodDescribe("heartRealTimeData");
String s = iDeviceService.heartRealTimeData(lineID);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/closeRealTimeData")
@ApiOperation("监测点实施数据关闭")
public HttpResult<String> closeRealTimeData(String lineID) {
String methodDescribe = getMethodDescribe("closeRealTimeData");
String s = iDeviceService.closeRealTimeData(lineID);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/getDevUpgrades")
@ApiOperation("终端版本升级")
public HttpResult<String> getDevUpgrades(@RequestBody @Validated ConstantValueParam.Upgrades param) {
String methodDescribe = getMethodDescribe("getDevUpgrades");
String s = iDeviceService.getDevUpgrades(param.getList(),param.getEdIndex());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/closeUpgrades")
@ApiOperation("终端升级取消")
public HttpResult<String> closeUpgrades(@RequestBody List<String> devList) {
String methodDescribe = getMethodDescribe("closeUpgrades");
String s = iDeviceService.closeUpgrades(devList);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/restartDev")
@ApiOperation("重启装置命令")
public HttpResult<String> restartDev(@RequestBody List<String> devList) {
String methodDescribe = getMethodDescribe("restartDev");
String s = iDeviceService.restartDev(devList);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
@MqttSubscribe(value = "/zl/devData/{devID}",qos = 1)
public void responseRtData(String topic, @NamedValue("devID") String pageId, MqttMessage message, @Payload String payload) {
Console.log("receive from : {}", topic);
Console.log("receive from : {}", pageId);
Console.log("message : {}", message.getPayload());
Console.log("message payload : {}", new String(message.getPayload(), StandardCharsets.UTF_8));
Console.log("string payload : {}", payload);
}
} }

View File

@@ -7,7 +7,6 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.pojo.param.LargeScreenParam;
import com.njcn.device.pq.pojo.param.ProgramParam; import com.njcn.device.pq.pojo.param.ProgramParam;
import com.njcn.device.pq.pojo.vo.VersionVO; import com.njcn.device.pq.pojo.vo.VersionVO;
import com.njcn.device.pq.service.ProgramVersionService; import com.njcn.device.pq.service.ProgramVersionService;
@@ -24,6 +23,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List;
/** /**
* @version 1.0.0 * @version 1.0.0
@@ -134,6 +134,14 @@ public class ProgramVersionController extends BaseController {
} }
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getVersion")
@ApiOperation("查看除本外其他版本信息")
@ApiImplicitParam(name = "param", value = "程序版本查询", required = true)
public HttpResult<List<VersionVO>> getVersion(@RequestBody @Validated ProgramParam.Version param) {
String methodDescribe = getMethodDescribe("getVersion");
List<VersionVO> version = programService.getVersion(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, version, methodDescribe);
}
} }

View File

@@ -62,7 +62,14 @@ public class TerminalVersionController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, resList, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, resList, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getDevVersionList")
@ApiOperation("查询终端版本信息")
public HttpResult<List<TerminalVersionVO.Version>> getVersionList(@RequestBody List<String> ids) {
String methodDescribe = getMethodDescribe("getVersionList");
List<TerminalVersionVO.Version> versionList = terminalVersionService.getVersionList(ids);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, versionList, methodDescribe);
}
} }

View File

@@ -0,0 +1,70 @@
package com.njcn.device.pq.controller.configuration;
import cn.hutool.core.collection.CollUtil;
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.device.pq.pojo.param.ConstantValueParam;
import com.njcn.device.pq.service.IPqsProtectvalueService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @Description:定值管理
* @Author: wr
* @Date: 2023/8/10 18:30
*/
@Api(tags = "定值管理")
@RestController
@RequestMapping("/constant")
@RequiredArgsConstructor
public class ConstantValueController extends BaseController {
private final IPqsProtectvalueService iPqsProtectvalueService;
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/quarryOutValue")
@ApiOperation("获取定值信息")
public HttpResult<List<Object>> quarryOutValue(String id, String isOutIn) {
String methodDescribe = getMethodDescribe("quarryOutValue");
List<Object> objects = iPqsProtectvalueService.quarryOutValueBase(isOutIn, id);
if (CollUtil.isEmpty(objects)) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, objects, methodDescribe);
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, objects, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/updateDatabaseValue")
@ApiOperation("定值更新数据库Value")
public HttpResult<Boolean> updateDatabaseValue(String json) {
String methodDescribe = getMethodDescribe("updateDatabaseValue");
Boolean aBoolean = iPqsProtectvalueService.updateDatabaseValue(json);
if (!aBoolean) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, true, methodDescribe);
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, false, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/updateDatabase")
@ApiOperation("定值更新数据库")
public HttpResult<Boolean> updateDatabase(@RequestBody ConstantValueParam param) {
String methodDescribe = getMethodDescribe("updateDatabase");
Boolean aBoolean = iPqsProtectvalueService.updateDatabase(param);
if (!aBoolean) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, true, methodDescribe);
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, false, methodDescribe);
}
}

View File

@@ -0,0 +1,61 @@
package com.njcn.device.pq.controller.configuration;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.device.pq.pojo.po.PqsProtectcontrolword;
import com.njcn.device.pq.service.IPqsProtectcontrolwordService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
/**
* @Description: 定值控制定义表,管理
* @Author: wr
* @Date: 2023/8/11 8:51
*/
@Api(tags = "定值控制字定义管理")
@Controller
@RequestMapping(value = "protectcw")
@RequiredArgsConstructor
public class ProtectControlWordController extends BaseController {
private final IPqsProtectcontrolwordService iPqsProtectcontrolwordService;
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/getAll")
@ApiOperation("获取定值信息")
public HttpResult<List<PqsProtectcontrolword>> getAll(String pvIndex) {
String methodDescribe = getMethodDescribe("getAll");
List<PqsProtectcontrolword> list = iPqsProtectcontrolwordService.list(new LambdaQueryWrapper<PqsProtectcontrolword>()
.eq(PqsProtectcontrolword::getPvIndex, pvIndex)
);
if (CollUtil.isEmpty(list)) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, list, methodDescribe);
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/getIsFT")
@ApiOperation("获取定值信息")
public HttpResult<Integer> getIsFT(String pvIndex) {
String methodDescribe = getMethodDescribe("getIsFT");
List<PqsProtectcontrolword> list = iPqsProtectcontrolwordService.list(new LambdaQueryWrapper<PqsProtectcontrolword>()
.eq(PqsProtectcontrolword::getPvIndex, pvIndex)
);
if (CollUtil.isEmpty(list)) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, 0, methodDescribe);
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, 1, methodDescribe);
}
}

View File

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.dto.SimpleDTO; import com.njcn.common.pojo.dto.SimpleDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.biz.pojo.po.Overlimit; import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.pq.pojo.advanced.UpDevVO;
import com.njcn.device.pq.pojo.bo.BaseLineInfo; import com.njcn.device.pq.pojo.bo.BaseLineInfo;
import com.njcn.device.pq.pojo.bo.DeviceType; import com.njcn.device.pq.pojo.bo.DeviceType;
import com.njcn.device.pq.pojo.bo.excel.TerminalBaseExcel; import com.njcn.device.pq.pojo.bo.excel.TerminalBaseExcel;
@@ -23,6 +24,7 @@ import org.apache.ibatis.annotations.Select;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* <p> * <p>
@@ -123,6 +125,7 @@ public interface LineMapper extends BaseMapper<Line> {
/** /**
* 获取离线装置 * 获取离线装置
*
* @author cdf * @author cdf
* @date 2023/4/3 * @date 2023/4/3
*/ */
@@ -419,11 +422,13 @@ public interface LineMapper extends BaseMapper<Line> {
List<LineFlowMealDetailVO> getDeviceRunStatistics(@Param("list") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime); List<LineFlowMealDetailVO> getDeviceRunStatistics(@Param("list") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
Page<LineFlowMealDetailVO> getNewDeviceRunStatistics(Page<LineFlowMealDetailVO> page, @Param("devs") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime); Page<LineFlowMealDetailVO> getNewDeviceRunStatistics(Page<LineFlowMealDetailVO> page, @Param("devs") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
Page<LineFlowMealDetailVO> getNewDeviceFlowStatistics(Page<LineFlowMealDetailVO> page, @Param("devs") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime); Page<LineFlowMealDetailVO> getNewDeviceFlowStatistics(Page<LineFlowMealDetailVO> page, @Param("devs") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
/** /**
* 通过电站id获取监测点信息 * 通过电站id获取监测点信息
*
* @author cdf * @author cdf
* @date 2023/5/10 * @date 2023/5/10
*/ */
@@ -432,6 +437,7 @@ public interface LineMapper extends BaseMapper<Line> {
/** /**
* 根据条件进行监测筛选出监测点id * 根据条件进行监测筛选出监测点id
*
* @author wr * @author wr
* @date 2023/5/25 * @date 2023/5/25
*/ */
@@ -439,6 +445,7 @@ public interface LineMapper extends BaseMapper<Line> {
/** /**
* 通过电站id集合和电压等级 * 通过电站id集合和电压等级
*
* @author cdf * @author cdf
* @date 2023/5/10 * @date 2023/5/10
*/ */
@@ -447,9 +454,45 @@ public interface LineMapper extends BaseMapper<Line> {
/** /**
* 根据变电站获取母线信息(变电站策略专用) * 根据变电站获取母线信息(变电站策略专用)
*
* @param subId * @param subId
* @param type 0是除了本变电站所有变电站母线信息 1是获取本变电站所有母线信息 2是根据母线获取信息 * @param type 0是除了本变电站所有变电站母线信息 1是获取本变电站所有母线信息 2是根据母线获取信息
* @return * @return
*/ */
List<TerminalTree> getvoltage(@Param("id") String subId, @Param("type") Integer type); List<TerminalTree> getvoltage(@Param("id") String subId, @Param("type") Integer type);
/**
* 根据监测点id获取终端信息
*
* @param lineId 监测点id
* @return 结果
*/
UpDevVO getDevInfo(@Param("lineId") String lineId);
/**
* 根据终端id或者或者监测id查询前置表ip信息
*
* @param devID 终端id
* @param type 终端=1 监测点=0
* @return 结果
*/
String getNodeIp(@Param("devID") String devID, @Param("type") Integer type);
/**
* 根据监测点集合获取终端数量
*
* @param lineId 监测点id
* @return 结果
*/
Integer getDevIndexs(@Param("lineIds") Set<String> lineId);
/**
* 根据终端id集合查询终端版本信息
* @param devIds
* @return
*/
List<DeviceIpRVO> getDevicesIp(@Param("devIds") List<String> devIds);
} }

View File

@@ -0,0 +1,16 @@
package com.njcn.device.pq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.device.pq.pojo.po.PqsProtectcontrolword;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wr
* @since 2023-08-10
*/
public interface PqsProtectcontrolwordMapper extends BaseMapper<PqsProtectcontrolword> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.device.pq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.device.pq.pojo.po.PqsProtectvalue;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wr
* @since 2023-08-10
*/
public interface PqsProtectvalueMapper extends BaseMapper<PqsProtectvalue> {
}

View File

@@ -53,4 +53,6 @@ public interface TerminalVersionMapper {
List<DevVersion> selectListById(String id); List<DevVersion> selectListById(String id);
List<TerminalVersionVO.Version> selectDevVersion(@Param("ids")List<String> ids);
} }

View File

@@ -2,7 +2,12 @@ package com.njcn.device.pq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.device.pq.pojo.param.ProgramParam;
import com.njcn.device.pq.pojo.po.Version; import com.njcn.device.pq.pojo.po.Version;
import com.njcn.device.pq.pojo.vo.VersionVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* <p> * <p>
@@ -14,4 +19,5 @@ import com.njcn.device.pq.pojo.po.Version;
*/ */
public interface VersionMapper extends BaseMapper<Version> { public interface VersionMapper extends BaseMapper<Version> {
List<VersionVO> selectVersion(@Param("param") ProgramParam.Version param);
} }

View File

@@ -1175,5 +1175,73 @@
</if> </if>
</where> </where>
</select> </select>
<select id="getDevInfo" resultType="com.njcn.device.pq.pojo.advanced.UpDevVO">
select
dev.id as devIndex,
dev.name as devName
from pq_line line,
pq_line vo,
pq_line dev
where vo.id = line.pid
and dev.id = vo.pid
and line.id = #{lineId}
</select>
<select id="getNodeIp" resultType="java.lang.String">
select
nd.ip
FROM
pq_line line,
pq_line vo,
pq_line dev
pq_node nd
<where>
vo.id = line.pid
and dev.id = vo.pid
and dev.Node_Id = nd.id
<if test="type != null and type == 1">
and dev.id = #{devID}
</if>
<if test="type != null and type == 0">
and line.id = #{devID}
</if>
</where>
</select>
<select id="getDevIndexs" resultType="java.lang.Integer">
select
count( distinct vo.pid)
from pq_line line,
pq_line vo
where vo.id = line.pid
and line.id in
<foreach collection="lineIds" item="item" open="(" close=")" separator="," index="index">
#{item}
</foreach>
</select>
<select id="getDevicesIp" resultType="com.njcn.device.pq.pojo.vo.DeviceIpRVO">
SELECT
a.id,
a.NAME,
ifnull( e.NAME, '/' ) versionName,
ifnull( e.protocol, '/' ) protocol,
ifnull( e.date, '/' ) versionDate,
e.Dev_Type AS devSeries,
b.dev_type AS devType,
nd.ip as ip,
b.Com_Flag as comFlag
FROM
pq_line a
INNER JOIN pq_device b ON a.id = b.id
INNER JOIN pq_node nd ON dev.Node_Id = nd.id
LEFT JOIN cld_dev_version d ON b.id = d.Line_Id AND d.flag = 1 AND d.Result = 1
LEFT JOIN cld_version e ON d.Version_Id = e.id
WHERE
b.dev_model = 1 and a.State=1
and a.id in
<foreach collection="devIds" item="item" open="(" close=")" separator="," index="index">
#{item}
</foreach>
</select>
</mapper> </mapper>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.device.pq.mapper.PqsProtectcontrolwordMapper">
</mapper>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.device.pq.mapper.PqsProtectvalueMapper">
</mapper>

View File

@@ -11,16 +11,16 @@
a.LEVEL, a.LEVEL,
b.run_flag, b.run_flag,
b.com_flag, b.com_flag,
c.NAME devType, b.dev_type devType,
ifnull(e.NAME,'/') versionName, ifnull(e.NAME,'/') versionName,
ifnull(e.protocol,'/') protocol, ifnull(e.protocol,'/') protocol,
ifnull(e.date,'/') versionDate, ifnull(e.date,'/') versionDate,
ifnull(e.update_time,'/') updateTime, ifnull(e.update_time,'/') updateTime,
ifnull(e.update_by,'/') updateBy ifnull(e.update_by,'/') updateBy,
e.id as versionId
FROM FROM
pq_line a pq_line a
INNER JOIN pq_device b ON a.id = b.id INNER JOIN pq_device b ON a.id = b.id
LEFT JOIN sys_dict_data c ON b.dev_type = c.id
LEFT JOIN cld_dev_version d ON b.id = d.Line_Id and d.flag = 1 and d.Result = 1 LEFT JOIN cld_dev_version d ON b.id = d.Line_Id and d.flag = 1 and d.Result = 1
LEFT JOIN cld_version e ON d.Version_Id = e.id LEFT JOIN cld_version e ON d.Version_Id = e.id
LEFT JOIN sys_user f on d.update_by = f.id LEFT JOIN sys_user f on d.update_by = f.id
@@ -79,5 +79,32 @@
LEFT JOIN sys_dict_data sdd ON pd.Dev_Type = sdd.Id LEFT JOIN sys_dict_data sdd ON pd.Dev_Type = sdd.Id
WHERE cdv.Line_Id = #{id} WHERE cdv.Line_Id = #{id}
</select> </select>
<select id="selectDevVersion" resultType="com.njcn.device.pq.pojo.vo.TerminalVersionVO$Version">
SELECT
a.id,
a.NAME,
ifnull( e.NAME, '/' ) versionName,
ifnull( e.protocol, '/' ) protocol,
ifnull( e.date, '/' ) versionDate,
e.Dev_Type AS devSeries,
b.dev_type AS devType,
sub.NAME subName,
gb.NAME gbName,
ifnull( e.update_time, '/' ) updateTime,
ifnull( e.update_by, '/' ) updateBy
FROM
pq_line a
INNER JOIN pq_device b ON a.id = b.id
INNER JOIN pq_line sub ON a.pid = sub.id
INNER JOIN pq_line gb ON sub.pid = gb.id
LEFT JOIN cld_dev_version d ON b.id = d.Line_Id AND d.flag = 1 AND d.Result = 1
LEFT JOIN cld_version e ON d.Version_Id = e.id
WHERE
b.dev_model = 1 and a.State=1
and a.id in
<foreach collection="ids" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
</mapper> </mapper>

View File

@@ -2,4 +2,28 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.device.pq.mapper.VersionMapper"> <mapper namespace="com.njcn.device.pq.mapper.VersionMapper">
<select id="selectVersion" resultType="com.njcn.device.pq.pojo.vo.VersionVO">
select
Id,
Name,
Protocol,
Date,
Dev_Type,
Version_Type,
case ISNULL(File) when 1 then 0 else 1 end as isFile,
File_Name,
Version_Flag,
Remark,
State
from
cld_version
<where>
State = 1
and Dev_Type = #{param.devType}
and Id not in
<foreach collection="param.versionIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</where>
</select>
</mapper> </mapper>

View File

@@ -2,8 +2,11 @@ package com.njcn.device.pq.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.pq.pojo.param.ConstantValueParam;
import com.njcn.device.pq.pojo.po.Device; import com.njcn.device.pq.pojo.po.Device;
import java.util.List;
/** /**
* <p> * <p>
* 服务类 * 服务类
@@ -14,4 +17,112 @@ import com.njcn.device.pq.pojo.po.Device;
*/ */
public interface IDeviceService extends IService<Device> { public interface IDeviceService extends IService<Device> {
/***
* @Description: mqtt获取外部定值
* @param param
* @return: java.lang.String
* @Author: wr
* @Date: 2023/8/14 10:17
*/
String sentLine(ConstantValueParam.Constant param);
/***
* @Description: mqtt修改外部定值
* @param param
* @return: java.lang.String
* @Author: wr
* @Date: 2023/8/14 11:07
*/
String sentLineData(ConstantValueParam.ValueData param);
/**
* @param param
* @Description: mqtt获取内部定值
* @return: java.lang.String
* @Author: wr
* @Date: 2023/8/14 14:51
*/
String sentDev(ConstantValueParam.Constant param);
/**
* @param param
* @Description: mqtt修改内部定值
* @return: java.lang.String
* @Author: wr
* @Date: 2023/8/14 14:51
*/
String sentDevData(ConstantValueParam.ValueData param);
/**
* @param devID
* @Description: 终端性能查看
* @return: java.lang.String
* @Author: wr
* @Date: 2023/8/15 11:27
*/
String socketDevProperty(String devID);
/**
* @param devID
* @Description: 终端性能关闭
* @return: java.lang.String
* @Author: wr
* @Date: 2023/8/15 16:13
*/
String socketDevPropertyClose(String devID);
/**
* @param lineIndex
* @Description: 监测点实时数据查看
* @return: java.lang.String
* @Author: wr
* @Date: 2023/8/15 16:13
*/
String realTimeData(String lineIndex);
/**
* @param lineIndex
* @Description: 监测实施数据心跳
* @return: java.lang.String
* @Author: wr
* @Date: 2023/8/15 16:14
*/
String heartRealTimeData(String lineIndex);
/**
* @param lineIndex
* @Description: 监测点实施数据关闭
* @return: java.lang.String
* @Author: wr
* @Date: 2023/8/15 16:14
*/
String closeRealTimeData(String lineIndex);
/**
* 终端版本升级,批量升级条件必须是相同终端系列的终端才能升级
*
* @param list
* @param edIndex
* @return
*/
String getDevUpgrades(List<String> list, String edIndex);
/**
* @param devList
* @Description: 终端升级取消
* @return: java.lang.String
* @Author: wr
* @Date: 2023/8/17 9:24
*/
String closeUpgrades(List<String> devList);
/**
* @param devList
* @Description: 重启装置命令
* @return: java.lang.String
* @Author: wr
* @Date: 2023/8/17 9:24
*/
String restartDev(List<String> devList);
} }

View File

@@ -0,0 +1,16 @@
package com.njcn.device.pq.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.pq.pojo.po.PqsProtectcontrolword;
/**
* <p>
* 服务类
* </p>
*
* @author wr
* @since 2023-08-10
*/
public interface IPqsProtectcontrolwordService extends IService<PqsProtectcontrolword> {
}

View File

@@ -0,0 +1,32 @@
package com.njcn.device.pq.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.pq.pojo.param.ConstantValueParam;
import com.njcn.device.pq.pojo.po.PqsProtectvalue;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author wr
* @since 2023-08-10
*/
public interface IPqsProtectvalueService extends IService<PqsProtectvalue> {
/***
* @Description: 查询定值信息
* @param isOutIn out=外部定值 in=内部定值
* @param lineIndex 监测点id
* @return: java.util.List<java.lang.Object>
* @Author: wr
* @Date: 2023/8/10 18:55
*/
List<Object> quarryOutValueBase(String isOutIn,String lineIndex);
Boolean updateDatabaseValue(String json);
Boolean updateDatabase(ConstantValueParam param);
}

View File

@@ -1,18 +1,21 @@
package com.njcn.device.pq.service; package com.njcn.device.pq.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.pq.pojo.param.ProgramParam; import com.njcn.device.pq.pojo.param.ProgramParam;
import com.njcn.device.pq.pojo.po.Version;
import com.njcn.device.pq.pojo.vo.VersionVO; import com.njcn.device.pq.pojo.vo.VersionVO;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List;
/** /**
* @version 1.0.0 * @version 1.0.0
* @author: chenchao * @author: chenchao
* @date: 2022/05/19 15:53 * @date: 2022/05/19 15:53
*/ */
public interface ProgramVersionService { public interface ProgramVersionService extends IService<Version> {
/** /**
* 根据终端类型分页获取程序版本管理信息 * 根据终端类型分页获取程序版本管理信息
@@ -45,4 +48,10 @@ public interface ProgramVersionService {
*/ */
boolean delProgramVersion(String id); boolean delProgramVersion(String id);
/**
* 终端版本升级,查看除了当前版本的其他版本信息
* @param param
* @return
*/
List<VersionVO> getVersion(ProgramParam.Version param);
} }

View File

@@ -29,4 +29,14 @@ public interface TerminalVersionService {
* @return * @return
*/ */
List<DevVersion> getTerminalUpLog(String id); List<DevVersion> getTerminalUpLog(String id);
/**
* @Description: 查询终端版本信息
* @param ids
* @return: java.util.List<com.njcn.device.pq.pojo.vo.TerminalVersionVO.Version>
* @Author: wr
* @Date: 2023/8/16 15:07
*/
List<TerminalVersionVO.Version> getVersionList(List<String> ids);
} }

View File

@@ -1,12 +1,34 @@
package com.njcn.device.pq.service.impl; package com.njcn.device.pq.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.device.pq.mapper.DevVersionMapper;
import com.njcn.device.pq.mapper.DeviceMapper; import com.njcn.device.pq.mapper.DeviceMapper;
import com.njcn.device.pq.mapper.LineMapper;
import com.njcn.device.pq.pojo.advanced.*;
import com.njcn.device.pq.pojo.param.ConstantValueParam;
import com.njcn.device.pq.pojo.po.DevVersion;
import com.njcn.device.pq.pojo.po.Device; import com.njcn.device.pq.pojo.po.Device;
import com.njcn.device.pq.pojo.po.Line;
import com.njcn.device.pq.pojo.po.Version;
import com.njcn.device.pq.pojo.vo.DeviceIpRVO;
import com.njcn.device.pq.service.IDeviceService; import com.njcn.device.pq.service.IDeviceService;
import com.njcn.device.pq.service.ProgramVersionService;
import com.njcn.device.pq.utils.SocketClient;
import com.njcn.web.utils.RequestUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
* 服务实现类 * 服务实现类
@@ -16,6 +38,364 @@ import org.springframework.stereotype.Service;
* @since 2022-01-07 * @since 2022-01-07
*/ */
@Service @Service
@RequiredArgsConstructor
public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> implements IDeviceService { public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> implements IDeviceService {
private final LineMapper lineMapper;
private final SocketClient socketClient;
private final DevVersionMapper devVersionMapper;
private final ProgramVersionService programVersionService;
@Value("${socket.port}")
private Integer socketPort;
@Override
public String sentLine(ConstantValueParam.Constant param) {
try {
//获取根据监测点获取终端信息
UpDevVO upDevVO = lineMapper.getDevInfo(param.getId());
//查询前置ip
String host = lineMapper.getNodeIp(upDevVO.getDevIndex(),0);
//拼接属性
ContValueRVO upParamVO = new ContValueRVO();
ContValueVO valueVO = new ContValueVO();
valueVO.setType(param.getType());
valueVO.setLineid(param.getId());
valueVO.setHander(param.getHander());
JSONObject jsonStr = new JSONObject(valueVO);
Integer len = jsonStr.toString().length();
upParamVO.setLen(len.toString());
upParamVO.setData(valueVO);
JSONObject jsonObject = new JSONObject(upParamVO);
String str = jsonObject.toString();
List<UpDevVO> devList = new ArrayList<>();
devList.add(upDevVO);
return socketClient.sentLine(param.getIp(), str, host, socketPort, "wr", devList);
} catch (Exception e) {
return "获取定值失败";
}
}
@Override
public String sentLineData(ConstantValueParam.ValueData param) {
try {
//获取根据监测点获取终端信息
UpDevVO upDevVO = lineMapper.getDevInfo(param.getId());
//查询前置ip
String host = lineMapper.getNodeIp(upDevVO.getDevIndex(),0);
ContUpdateValueRVO upParamVO = new ContUpdateValueRVO();
ContUpdateValueVO valueVO = new ContUpdateValueVO();
valueVO.setType(param.getType());
valueVO.setLineid(param.getId());
valueVO.setHander(param.getHander());
float[] intArr;
if (StrUtil.isBlank(param.getInterValue())) {
intArr = new float[0];
} else {
String[] valueArr = param.getInterValue().split(",");
intArr = new float[valueArr.length];
for (int i = 0; i < valueArr.length; i++) {
intArr[i] = Float.parseFloat(valueArr[i]);
}
}
valueVO.setValue(intArr);
JSONObject jsonStr = new JSONObject(valueVO);
Integer len = jsonStr.toString().length();
upParamVO.setLen(len.toString());
upParamVO.setData(valueVO);
JSONObject jsonObject = new JSONObject(upParamVO);
String str = jsonObject.toString();
List<UpDevVO> devList = new ArrayList<>();
devList.add(upDevVO);
return socketClient.sentLine(param.getIp(), str, host, socketPort, "wr", devList);
} catch (Exception e) {
return "运行失败";
}
}
@Override
public String sentDev(ConstantValueParam.Constant param) {
try {
Line line = lineMapper.selectById(param.getId());
UpDevVO upDevVO = new UpDevVO();
upDevVO.setDevIndex(line.getId());
upDevVO.setDevName(line.getName());
String host = lineMapper.getNodeIp(line.getId(),1);
ContValueRVO upParamVO = new ContValueRVO();
ContValueVO valueVO = new ContValueVO();
valueVO.setType(param.getType());
valueVO.setIndex(param.getId());
valueVO.setHander(param.getHander());
JSONObject jsonStr = new JSONObject(valueVO);
Integer len = jsonStr.toString().length();
upParamVO.setLen(len.toString());
upParamVO.setData(valueVO);
JSONObject jsonObject = new JSONObject(upParamVO);
String str = jsonObject.toString();
List<UpDevVO> devList = new ArrayList<>();
devList.add(upDevVO);
return socketClient.sentDZDev(param.getIp(), str, host, socketPort, "wr", devList);
} catch (Exception e) {
return "获取定值失败";
}
}
@Override
public String sentDevData(ConstantValueParam.ValueData param) {
try {
Line line = lineMapper.selectById(param.getId());
UpDevVO upDevVO = new UpDevVO();
upDevVO.setDevIndex(line.getId());
upDevVO.setDevName(line.getName());
String host = lineMapper.getNodeIp(line.getId(),1);
ContUpdateDevValueRVO upParamVO = new ContUpdateDevValueRVO();
ContUpdateDevValueVO valueVO = new ContUpdateDevValueVO();
valueVO.setType(param.getType());
valueVO.setIndex(line.getId());
valueVO.setHander(String.valueOf(param.getHander()));
int[] intArr;
if (StrUtil.isBlank(param.getInterValue())) {
intArr = new int[0];
} else {
String[] valueArr = param.getInterValue().split(",");
intArr = new int[valueArr.length];
for (int i = 0; i < valueArr.length; i++) {
intArr[i] = Integer.parseInt(valueArr[i]);
}
}
valueVO.setInterValue(intArr);
JSONObject jsonStr = new JSONObject(valueVO);
Integer len = jsonStr.toString().length();
upParamVO.setLen(len.toString());
upParamVO.setData(valueVO);
JSONObject jsonObject = new JSONObject(upParamVO);
String str = jsonObject.toString();
List<UpDevVO> devList = new ArrayList<>();
devList.add(upDevVO);
return socketClient.sentDZDev(param.getIp(), str, host, socketPort, "wr", devList);
} catch (Exception e) {
return "运行失败";
}
}
@Override
public String socketDevProperty(String devID) {
String host = lineMapper.getNodeIp(devID,1);
if(StrUtil.isBlank(host)){
return "前置ip获取失败";
}
JSONObject jsonObject = new JSONObject();
Map<String,String> map = new HashMap<>();
map.put("type","190");
map.put("index",devID);
map.put("hander","1");
jsonObject.set("data", map);
Integer len = jsonObject.get("data").toString().length();
jsonObject.set("len", len.toString());
socketClient.showProperty(jsonObject.toString(),host,socketPort,RequestUtil.getLoginName());
return "终端性能获取成功";
}
@Override
public String socketDevPropertyClose(String devID) {
String host = lineMapper.getNodeIp(devID,1);
try {
JSONObject jsonObject = new JSONObject();
Map<String, String> map = new HashMap<>();
map.put("type", "190");
map.put("index", devID);
map.put("hander", "0");
jsonObject.set("data", map);
Integer len = jsonObject.get("data").toString().length();
jsonObject.set("len", len.toString());
socketClient.closeDevSocket(jsonObject.toString(),host,socketPort,RequestUtil.getLoginName());
return "执行成功";
}catch (Exception e){
return "执行失败";
}
}
@Override
public String realTimeData(String lineIndex) {
//查询前置ip
String host = lineMapper.getNodeIp(lineIndex,0);
if(StrUtil.isBlank(host)){
return "设备前置机服务器配置异常,请联系管理员";
}else {
JSONObject jsonObject = new JSONObject();
jsonObject.set("LineId", lineIndex);
jsonObject.set("type", 0);
cn.hutool.json.JSONObject jsonObject1 = new cn.hutool.json.JSONObject();
jsonObject1.set("len",0);
jsonObject1.set("data",jsonObject);
socketClient.realTimeData(jsonObject1.toString(),host,socketPort,lineIndex);
}
return "请求成功";
}
@Override
public String heartRealTimeData(String lineIndex) {
JSONObject jsonObject = new JSONObject();
jsonObject.set("LineId", lineIndex);
jsonObject.set("type", 1);
cn.hutool.json.JSONObject jsonObject1 = new cn.hutool.json.JSONObject();
jsonObject1.set("len", 0);
jsonObject1.set("data", jsonObject);
String host = lineMapper.getNodeIp(lineIndex,0);
socketClient.heartRealData(jsonObject1.toString(),host,socketPort,lineIndex);
return "实时数据心跳请求成功";
}
@Override
public String closeRealTimeData(String lineIndex) {
socketClient.closeRealData(lineIndex);
return "关闭实时数据请求成功";
}
@Override
public String getDevUpgrades(List<String> list, String edIndex) {
List<DeviceIpRVO> resTemlist = new ArrayList<>();
List<DeviceIpRVO> relist = lineMapper.getDevicesIp(list);
//判断设备版本号
Integer isExit = devVersionMapper.selectCount(new LambdaQueryWrapper<DevVersion>()
.eq(DevVersion::getVersionId,edIndex)
.in(DevVersion::getLineId,list)
.eq(DevVersion::getState,1)
);
if (isExit > 0) {
return "请勿选择相同版本号升级";
}
if (!CollectionUtil.isEmpty(relist)) {
Version version = programVersionService.getById(edIndex);
String series = version.getDevType();
//判断设备是否存在相同型号
for (DeviceIpRVO deviceIpRVO : relist) {
if (!series.equals(deviceIpRVO.getDevSeries())) {
return "当前装置版本系列与目标版本系列不相同";
}
}
//判断是否断开
if (relist.stream().filter(w -> w.getComFlag() == 0).findAny().isPresent()) {
return "存在通讯中断设备";
}
Set<String> set = new HashSet<>();
for (DeviceIpRVO d : relist) {
set.add(d.getIp());
}
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
List<UpDevVO> devIndex = new ArrayList<>();
DeviceIpRVO deviceIpRVO = new DeviceIpRVO();
String ip = iterator.next();
for (DeviceIpRVO d : relist) {
UpDevVO upDevVO = new UpDevVO();
upDevVO.setDevIndex(d.getDevIndex());
upDevVO.setDevName(d.getDevName());
if (ip.equals(d.getIp())) {
devIndex.add(upDevVO);
}
}
deviceIpRVO.setIp(ip);
deviceIpRVO.setDevlist(devIndex);
resTemlist.add(deviceIpRVO);
}
} else {
return "存在未知错误";
}
for (DeviceIpRVO deviceIpRVO : resTemlist) {
String ip = deviceIpRVO.getIp();
List<UpDevVO> devlist = deviceIpRVO.getDevlist();
UpDataVO upDataVO = new UpDataVO();
UpParamVO upParamVO = new UpParamVO();
upDataVO.setTerminal(devlist);
upDataVO.setType("180");
upDataVO.setEdIndex(edIndex);
upDataVO.setUserIndex(RequestUtil.getUserIndex());
JSONObject jsonstr = new JSONObject(upDataVO);
Integer len = jsonstr.toString().length();
upParamVO.setData(upDataVO);
upParamVO.setLen(len.toString());
JSONObject jsonObject = new JSONObject(upParamVO);
String str = jsonObject.toString();
socketClient.sentUpgrades(str, ip, socketPort, RequestUtil.getLoginName(), edIndex, devlist);
}
return "运行成功";
}
@Override
public String closeUpgrades(List<String> devList) {
List<DeviceIpRVO> relist = lineMapper.getDevicesIp(devList);
if(CollectionUtil.isEmpty(relist)){
return "前置机为空";
}else {
List<String> nodeIp = relist.stream().map(DeviceIpRVO::getIp).distinct().collect(Collectors.toList());
for(String ip: nodeIp){
List<DeviceIpRVO> devLl= relist.stream().filter(item->item.getIp().equals(ip)).collect(Collectors.toList());
if(CollectionUtil.isEmpty(devLl)){
return "出错啦";
}
List<JSONObject> list = new ArrayList<>();
for(DeviceIpRVO devRVO:devLl){
JSONObject dev = new JSONObject();
dev.put("devIndex",devRVO.getDevIndex());
dev.put("devName",devRVO.getDevName());
list.add(dev);
}
JSONObject jsonObject = new JSONObject();
jsonObject.set("terminal", list);
jsonObject.set("type", 182);
JSONObject jsonObject1 = new JSONObject();
jsonObject1.set("len", 0);
jsonObject1.set("data", jsonObject);
socketClient.cancelUp(jsonObject1.toString(),ip,socketPort,devLl.size());
}
}
return "取消命令发送成功";
}
@Override
public String restartDev(List<String> devList) {
List<DeviceIpRVO> relist = lineMapper.getDevicesIp(devList);
if(CollUtil.isEmpty(relist)){
return "前置机为空";
}else {
List<String> nodeIp = relist.stream().map(DeviceIpRVO::getIp).distinct().collect(Collectors.toList());
for(String ip: nodeIp){
List<DeviceIpRVO> devLl = relist.stream().filter(item->item.getIp().equals(ip)).collect(Collectors.toList());
if(CollUtil.isEmpty(devLl)){
return "出错啦";
}
List<JSONObject> list = new ArrayList<>();
List<String> devIn = new ArrayList<>();
for(DeviceIpRVO devRVO:devLl){
devIn.add(devRVO.getDevIndex());
JSONObject dev = new JSONObject();
dev.set("devIndex", devRVO.getDevIndex());
dev.set("devName", devRVO.getDevName());
list.add(dev);
}
JSONObject jsonObject = new JSONObject();
jsonObject.set("terminal", list);
jsonObject.set("type", 181);
jsonObject.set("userIndex", RequestUtil.getUserIndex());
JSONObject jsonObject1 = new JSONObject();
jsonObject1.set("len", 0);
jsonObject1.set("data", jsonObject);
socketClient.restartDev(jsonObject1.toString(),ip,socketPort,devIn);
}
}
return "命令发送成功";
}
} }

View File

@@ -0,0 +1,20 @@
package com.njcn.device.pq.service.impl;
import com.njcn.device.pq.mapper.PqsProtectcontrolwordMapper;
import com.njcn.device.pq.pojo.po.PqsProtectcontrolword;
import com.njcn.device.pq.service.IPqsProtectcontrolwordService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author wr
* @since 2023-08-10
*/
@Service
public class PqsProtectcontrolwordServiceImpl extends ServiceImpl<PqsProtectcontrolwordMapper, PqsProtectcontrolword> implements IPqsProtectcontrolwordService {
}

View File

@@ -0,0 +1,227 @@
package com.njcn.device.pq.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.text.UnicodeUtil;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.njcn.device.pq.mapper.PqsProtectvalueMapper;
import com.njcn.device.pq.pojo.param.ConstantValueParam;
import com.njcn.device.pq.pojo.po.PqsProtectcontrolword;
import com.njcn.device.pq.pojo.po.PqsProtectvalue;
import com.njcn.device.pq.service.IPqsProtectcontrolwordService;
import com.njcn.device.pq.service.IPqsProtectvalueService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author wr
* @since 2023-08-10
*/
@Service
@RequiredArgsConstructor
public class PqsProtectvalueServiceImpl extends ServiceImpl<PqsProtectvalueMapper, PqsProtectvalue> implements IPqsProtectvalueService {
private final IPqsProtectcontrolwordService iPqsProtectcontrolwordService;
@Override
public List<Object> quarryOutValueBase(String isOutIn, String lineIndex) {
List<Object> quarryValue = new ArrayList<>();
List<PqsProtectvalue> quarryOutValue = new ArrayList<>();//简谐波
List<PqsProtectvalue> quarryOutValue1 = new ArrayList<>();//谐波电压
List<PqsProtectvalue> quarryOutValue2 = new ArrayList<>();//谐波电流
List<PqsProtectvalue> quarryOutValue3 = new ArrayList<>();//基本定值
if (isOutIn.equals("out")) { //外部定值
List<PqsProtectvalue> constantValues = this.list(new LambdaQueryWrapper<PqsProtectvalue>()
.eq(PqsProtectvalue::getCpu_no, lineIndex));
if (CollUtil.isNotEmpty(constantValues)) {
//区分定值类型
Map<Integer, List<PqsProtectvalue>> protectMap =
constantValues.stream().collect(Collectors.groupingBy(PqsProtectvalue::getDz_type));
if (protectMap.containsKey(1)) {
quarryOutValue3.addAll(protectMap.get(1));
}
if (protectMap.containsKey(2)) {
quarryOutValue2.addAll(protectMap.get(2));
}
if (protectMap.containsKey(3)) {
quarryOutValue1.addAll(protectMap.get(3));
}
if (protectMap.containsKey(4)) {
quarryOutValue.addAll(protectMap.get(4));
}
quarryValue.add(quarryOutValue3);
quarryValue.add(quarryOutValue2);
quarryValue.add(quarryOutValue1);
quarryValue.add(quarryOutValue);
}
} else if (isOutIn.equals("in")) { //内部定值
List<PqsProtectvalue> constantValues = this.list(new LambdaQueryWrapper<PqsProtectvalue>()
.eq(PqsProtectvalue::getCpu_no, lineIndex));
if (CollUtil.isNotEmpty(constantValues)) {
quarryValue.add(constantValues);
}
}
return quarryValue;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateDatabaseValue(String json) {
Map map = JSON.parseObject(json, Map.class);
//区分内/外定值
String type = map.get("type").toString();
if (type.equals("80")) {//外部定值
String cpuNo = map.get("cpu_no").toString();
List<Float> inoutValue = JSONArray.parseArray(map.get("data").toString(), Float.class);
for (int i = 0; i < inoutValue.size(); i++) {
//进行外部定值的更正
this.update(new LambdaUpdateWrapper<PqsProtectvalue>()
.set(PqsProtectvalue::getValue, inoutValue.get(i))
.eq(PqsProtectvalue::getCpu_no, cpuNo)
.like(PqsProtectvalue::getType, type)
.eq(PqsProtectvalue::getSort, i + 1)
);
}
return true;
} else if (type.equals("90")) {
//内部定值
String devIndex = map.get("devindex").toString();
List<Integer> inoutValue = JSONArray.parseArray(map.get("data").toString(), Integer.class);
for (int i = 0; i < inoutValue.size(); i++) {
int value = inoutValue.get(i);
if (i == inoutValue.size() - 1 || i == inoutValue.size() - 2) {
value = value / 100;
//进行内部定值的更正
this.update(new LambdaUpdateWrapper<PqsProtectvalue>()
.set(PqsProtectvalue::getValue, value)
.eq(PqsProtectvalue::getCpu_no, devIndex)
.like(PqsProtectvalue::getType, type)
.eq(PqsProtectvalue::getSort, i + 1)
);
} else {
//进行内部定值的更正
this.update(new LambdaUpdateWrapper<PqsProtectvalue>()
.set(PqsProtectvalue::getValue, value)
.eq(PqsProtectvalue::getCpu_no, devIndex)
.like(PqsProtectvalue::getType, type)
.eq(PqsProtectvalue::getSort, i + 1)
);
//查询指定内部定级
PqsProtectvalue one = this.getOne(new LambdaQueryWrapper<PqsProtectvalue>()
.eq(PqsProtectvalue::getCpu_no, devIndex)
.eq(PqsProtectvalue::getType, type)
.eq(PqsProtectvalue::getSort, i + 1)
);
//根据装置类型和sort进行查询
String pvIndex = one.getPvIndex();
String property = Integer.toBinaryString(value);
int strLen = property.length();
if (strLen < 16) {
while (strLen < 16) {
StringBuffer sb = new StringBuffer();
sb.append("0").append(property);//左补0
property = sb.toString();
strLen = property.length();
}
}
char[] ar = property.toCharArray();
for (int j = 0; j < ar.length; j++) {
int flag = ar[j] - 48;
iPqsProtectcontrolwordService.update(new LambdaUpdateWrapper<PqsProtectcontrolword>()
.set(PqsProtectcontrolword::getPvIndex, pvIndex)
.eq(PqsProtectcontrolword::getTypeNum, (ar.length - 1) - j)
.like(PqsProtectcontrolword::getFlag, flag));
}
}
}
return true;
}
return false;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateDatabase(ConstantValueParam param) {
Integer type = param.getType();
ConstantValueParam.ConstantValue json = param.getJson();
//获取方法类型methodname
String methodName = json.getMethodname();
List<PqsProtectvalue> inoutValue;
//hander 用于匹配 0 定值 1 定值描述
Integer hander = json.getHander();
//用于判断内外定值 80外部定值 90内部定值
if (hander == param.getHander()) {
//终端id
String devIndex = json.getDevindex();
inoutValue = json.getData();
PqsProtectvalue pqsProtectvalue = inoutValue.get(0);
int isint = 0;//用于判断时候删除子表数据
String devType2 = pqsProtectvalue.getDev_type();
Integer type2 = pqsProtectvalue.getType();
if (type == 90) {
this.remove(new LambdaUpdateWrapper<PqsProtectvalue>()
.eq(PqsProtectvalue::getCpu_no, devIndex)
.like(PqsProtectvalue::getType, type2)
);
isint = 1;
} else if (type == 80) {
String lineIndex = json.getLineindex();
isint = 0;
this.remove(new LambdaUpdateWrapper<PqsProtectvalue>()
.eq(PqsProtectvalue::getCpu_no, lineIndex)
.like(PqsProtectvalue::getType, type2)
);
}
List<PqsProtectvalue> addProtect = new ArrayList<>();
List<PqsProtectcontrolword> addWord = new ArrayList<>();
for (int i = 0; i < inoutValue.size(); i++) {
//获取监测点序号、终端类型、定值类型、单位、最大值、最小值、默认值、设定值、描述
String pvIndex = IdUtil.fastSimpleUUID();
PqsProtectvalue protect = inoutValue.get(i);
protect.setPvIndex(pvIndex);
protect.setDz_type(protect.getType() == 80 ? protect.getDz_type() : 0);
addProtect.add(protect);
//获取内部定值控制字
if (isint == 1) {
if (protect.getWord().size() > 1) {
protect.getWord().stream().peek(x->x.setPvIndex(pvIndex));
addWord.addAll(protect.getWord());
}
}
}
if (CollUtil.isNotEmpty(addProtect)) {
this.saveBatch(addProtect);
}
if (CollUtil.isNotEmpty(addWord)) {
iPqsProtectcontrolwordService.saveBatch(addWord);
}
return true;
}
return false;
}
}

View File

@@ -23,6 +23,7 @@ import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/** /**
@@ -44,6 +45,7 @@ public class PqsTflgployServiceImpl extends ServiceImpl<PqsTflgployMapper, PqsTf
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertFlgPloy(TflgployParam param) { public Boolean insertFlgPloy(TflgployParam param) {
List<PqsTflgploy> list = this.list(new LambdaQueryWrapper<PqsTflgploy>() List<PqsTflgploy> list = this.list(new LambdaQueryWrapper<PqsTflgploy>()
.eq(PqsTflgploy::getTpName, param.getTpName()) .eq(PqsTflgploy::getTpName, param.getTpName())
@@ -75,6 +77,7 @@ public class PqsTflgployServiceImpl extends ServiceImpl<PqsTflgployMapper, PqsTf
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateFlgPloy(TflgployParam.TflgployUpdateParam param) { public Boolean updateFlgPloy(TflgployParam.TflgployUpdateParam param) {
//根据信息查询当前策略是否存在 //根据信息查询当前策略是否存在
int count = this.count(new LambdaQueryWrapper<PqsTflgploy>() int count = this.count(new LambdaQueryWrapper<PqsTflgploy>()
@@ -103,6 +106,7 @@ public class PqsTflgployServiceImpl extends ServiceImpl<PqsTflgployMapper, PqsTf
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Boolean delFlgPloy(String ids) { public Boolean delFlgPloy(String ids) {
int count = this.count(new LambdaQueryWrapper<PqsTflgploy>() int count = this.count(new LambdaQueryWrapper<PqsTflgploy>()
.eq(PqsTflgploy::getTpIndex, ids)); .eq(PqsTflgploy::getTpIndex, ids));

View File

@@ -158,6 +158,7 @@ public class PqsTransformerServiceImpl extends ServiceImpl<PqsTransformerMapper,
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Boolean nodeMaintenance(PqsTransformerParam param) { public Boolean nodeMaintenance(PqsTransformerParam param) {
boolean fly; boolean fly;
//根据变压器台账id查询是否存在节点信息存在则修改不存则新增 //根据变压器台账id查询是否存在节点信息存在则修改不存则新增

View File

@@ -157,6 +157,11 @@ public class ProgramVersionServiceImpl extends ServiceImpl<VersionMapper, Versio
return true; return true;
} }
@Override
public List<VersionVO> getVersion(ProgramParam.Version param) {
return versionMapper.selectVersion(param);
}
private Boolean judgeFileType(String subffix) { private Boolean judgeFileType(String subffix) {
boolean result = false; boolean result = false;

View File

@@ -66,6 +66,11 @@ public class TerminalVersionServiceImpl implements TerminalVersionService {
return terminalVersionMapper.selectListById(id); return terminalVersionMapper.selectListById(id);
} }
@Override
public List<TerminalVersionVO.Version> getVersionList(List<String> ids) {
return terminalVersionMapper.selectDevVersion(ids);
}
private List<TerminalVersionVO> getChildren(String id,List<TerminalVersionVO> all){ private List<TerminalVersionVO> getChildren(String id,List<TerminalVersionVO> all){
return all.stream().filter(item->item.getPid().equals(id)).collect(Collectors.toList()); return all.stream().filter(item->item.getPid().equals(id)).collect(Collectors.toList());