feat: 远程操作

master
李小林 8 months ago
parent 28d7ad2c73
commit 5b9eccb260
  1. 2
      src/main/java/com/bellmann/common/constant/SystemConstants.java
  2. 6
      src/main/java/com/bellmann/common/enums/RemoteOperateMsgEnum.java
  3. 32
      src/main/java/com/bellmann/common/enums/ServiceMapStatusEnum.java
  4. 3
      src/main/java/com/bellmann/common/result/ResultCode.java
  5. 22
      src/main/java/com/bellmann/common/util/CommonUtils.java
  6. 21
      src/main/java/com/bellmann/controller/DeviceServiceArgsController.java
  7. 43
      src/main/java/com/bellmann/controller/DeviceStaticController.java
  8. 20
      src/main/java/com/bellmann/controller/OperateResultArgsController.java
  9. 8
      src/main/java/com/bellmann/controller/ServiceController.java
  10. 2
      src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java
  11. 18
      src/main/java/com/bellmann/mapper/DeviceServiceArgsMapper.java
  12. 5
      src/main/java/com/bellmann/mapper/ServiceMapper.java
  13. 11
      src/main/java/com/bellmann/model/dto/ServiceParamInfo.java
  14. 40
      src/main/java/com/bellmann/model/entity/DeviceServiceArgs.java
  15. 27
      src/main/java/com/bellmann/model/vo/DeviceBusinessVO.java
  16. 17
      src/main/java/com/bellmann/model/vo/FTTRInfoVO.java
  17. 18
      src/main/java/com/bellmann/model/vo/ServiceCompareVO.java
  18. 13
      src/main/java/com/bellmann/service/DeviceServiceArgsService.java
  19. 2
      src/main/java/com/bellmann/service/DeviceStaticService.java
  20. 9
      src/main/java/com/bellmann/service/OperateResultArgsService.java
  21. 3
      src/main/java/com/bellmann/service/ServiceService.java
  22. 19
      src/main/java/com/bellmann/service/impl/DeviceServiceArgsServiceImpl.java
  23. 62
      src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java
  24. 67
      src/main/java/com/bellmann/service/impl/OperateResultArgsServiceImpl.java
  25. 1
      src/main/java/com/bellmann/service/impl/RemoteOperateTaskServiceImpl.java
  26. 15
      src/main/java/com/bellmann/service/impl/ServiceServiceImpl.java
  27. 20
      src/main/resources/mapper/DeviceServiceArgsMapper.xml
  28. 1
      src/main/resources/mapper/OperateTask2Mapper.xml
  29. 16
      src/main/resources/mapper/ServiceMapper.xml

@ -36,7 +36,7 @@ public interface SystemConstants {
public static final String CONN_TYPE = "LAST_rg_mode";
public static final long TASK_TIME_OUT_CONST = 60 * 1000;
public static final long TASK_TIME_OUT_CONST1 = 6 * 1000;
public static final long TASK_TIME_OUT_CONST1 = 4 * 1000;
public static final String NULL_RESULT = "操作进行中...";
}

@ -28,7 +28,11 @@ public enum RemoteOperateMsgEnum implements IBaseEnum<String> {
UPLOAD_LOG("UploadLog", "获取设备日志文件"),
BASIC_PARAMETER("basicparameter","获取设备链路信息")
BASIC_PARAMETER("basicparameter","获取设备链路信息"),
FTTR_CONFIG("FTTRCONFIG","刷新设备主网关信息"),
FTTR_STATS("FTTRSTATS","刷新子网关信息");
;
@Getter

@ -0,0 +1,32 @@
package com.bellmann.common.enums;
import com.bellmann.common.base.IBaseEnum;
import lombok.Getter;
public enum ServiceMapStatusEnum implements IBaseEnum<String> {
APPLICATION_HAS_BEEN_MADE("0","已申请开通"),
ACTIVATED("1","已开通"),
A_CHANGE_HAS_BEEN_REQUESTED("2","已申请变更"),
CHANGED("3","已变更"),
CANCELLATION_HAS_BEEN_REQUESTED("4","已申请取消"),
CANCELED("5","已取消"),
LOGOUT("6","注销"),
KEEP("7","保持"),
RESET("8","重置"),
;
@Getter
private String value;
@Getter
private String label;
ServiceMapStatusEnum(String value, String label){
this.label = label;
this.value = value;
}
}

@ -117,7 +117,8 @@ public enum ResultCode implements IResultCode, Serializable {
THE_PARAMETER_CANNOT_BE_EMPTY("F0025","参数不能为空" ),
OAM_INTERFACE_ERROR("F0026", "调用OAM接口报错"),
ACS_INTERFACE_ERROR("F0028", "调用ACS接口报错"),
QUERY_DEV_ONLINE_ERROR("F0029","查询设备在线状态出错" );
QUERY_DEV_ONLINE_ERROR("F0029","查询设备在线状态出错" ),
LINK_INFO_ERROR("F0030","获取设备链路失败");
@Override
public String getCode() {

@ -1,6 +1,7 @@
package com.bellmann.common.util;
import com.bellmann.model.dto.ParamInfo;
import com.bellmann.model.dto.ServiceParamInfo;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
@ -51,4 +52,25 @@ public class CommonUtils {
}
return list;
}
public static List<ServiceParamInfo> parseHtmlToServiceParamInfo(String html){
List<ServiceParamInfo> list = new ArrayList<>();
Document doc = Jsoup.parse(html);
Element table = doc.select("table.tableFormTable").first();
assert table != null;
Elements rows = table.select("tr");
for (int i = 2; i < rows.size(); i++) {
ServiceParamInfo info = new ServiceParamInfo();
Elements cols = rows.get(i).select("td");
String parameterName = cols.get(0).text().trim();
String expectationValue = cols.get(1).text().trim();
String actualValue = cols.get(2).text().trim();
String remarks = cols.get(3).text().trim();
info.setActualValue(actualValue);
info.setRemarks(remarks);
info.setExpectationValue(expectationValue);
info.setParameterName(parameterName);;
list.add(info);
}
return list;
}
}

@ -0,0 +1,21 @@
package com.bellmann.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author 李小林
* @since 2024-07-12
*/
@RestController
@RequestMapping("/deviceServiceArgs")
public class DeviceServiceArgsController {
}

@ -156,10 +156,49 @@ public class DeviceStaticController {
List<DeviceLinkVO> result = operateResultArgsService.getDeviceLinkInfo(devId);
return Result.success(result);
} catch (InterruptedException e) {
throw new BusinessException(ResultCode.QUERY_DEV_ONLINE_ERROR);
throw new BusinessException(ResultCode.LINK_INFO_ERROR);
}
}
@GetMapping("/remote/compare-parameter/{devId}/{serviceId}/{serviceVerName}/{serviceName}")
@Operation(summary = "远程操作-业务参数对照")
@PreventDuplicateSubmit
public Result<List<ServiceCompareVO>> compareParameter(@PathVariable Long devId, @PathVariable String serviceName, @PathVariable Long serviceId, @PathVariable String serviceVerName){
int result = deviceStaticService.compareParameter(devId,serviceName,serviceId,serviceVerName);
try {
TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST1);
List<ServiceCompareVO> list = operateResultArgsService.getServiceInfo(devId, serviceName);
return Result.success(list);
} catch (InterruptedException e) {
throw new BusinessException(ResultCode.LINK_INFO_ERROR);
}
}
@GetMapping("/remote/fttp-primary-gateway/{devId}")
@Operation(summary = "远程操作-刷新设备主网关信息")
@PreventDuplicateSubmit
public Result<List<FTTRInfoVO>> remoteFTTRPrimaryGateway(@PathVariable Long devId) {
Long count = remoteOperateTaskService.sendTaskByDevId(devId, SecurityUtils.getUsername(), RemoteOperateMsgEnum.FTTR_CONFIG.getValue());
log.info("{}任务执行中: {}", RemoteOperateMsgEnum.TOUCH_DEVICE.getLabel(), count);
try {
TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST1);
List<FTTRInfoVO> result = operateResultArgsService.getFTTRPrimaryGateway(devId);
return Result.success(result);
} catch (InterruptedException e) {
throw new BusinessException(ResultCode.LINK_INFO_ERROR);
}
}
@GetMapping("/remote/fttp-sub-gateway/{devId}")
@Operation(summary = "远程操作-刷新设备子网关信息")
@PreventDuplicateSubmit
public Result<String> remoteFTTRSubGateway(@PathVariable Long devId) {
Long count = remoteOperateTaskService.sendTaskByDevId(devId, SecurityUtils.getUsername(), RemoteOperateMsgEnum.FTTR_STATS.getValue());
log.info("{}任务执行中: {}", RemoteOperateMsgEnum.TOUCH_DEVICE.getLabel(), count);
try {
TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST1);
return Result.success();
} catch (InterruptedException e) {
throw new BusinessException(ResultCode.LINK_INFO_ERROR);
}
}
}

@ -3,6 +3,8 @@ package com.bellmann.controller;
import com.bellmann.common.result.Result;
import com.bellmann.model.vo.DeviceLinkVO;
import com.bellmann.model.vo.FTTRInfoVO;
import com.bellmann.model.vo.ServiceCompareVO;
import com.bellmann.plugin.dupsubmit.annotation.PreventDuplicateSubmit;
import com.bellmann.service.OperateResultArgsService;
import io.swagger.v3.oas.annotations.Operation;
@ -11,7 +13,6 @@ import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@ -41,6 +42,23 @@ public class OperateResultArgsController {
return Result.success(result);
}
@GetMapping("/device-service-parameter/{devId}/{serviceName}")
@Operation(summary = "远程操作-获取业务参数对照信息")
@PreventDuplicateSubmit
public Result<List<ServiceCompareVO>> getServiceParameter(@PathVariable Long devId, @PathVariable String serviceName) {
List<ServiceCompareVO> result = operateResultArgsService.getServiceInfo(devId, serviceName);
return Result.success(result);
}
@GetMapping("/fttr-primary-gateway/{devId}")
@Operation(summary = "远程操作-FTTR主网关信息")
@PreventDuplicateSubmit
public Result<List<FTTRInfoVO>> primaryGateway(@PathVariable Long devId) {
List<FTTRInfoVO> result = operateResultArgsService.getFTTRPrimaryGateway(devId);
return Result.success(result);
}
}

@ -7,6 +7,7 @@ import com.bellmann.common.result.Result;
import com.bellmann.model.form.BusinessForm;
import com.bellmann.model.form.FileRecordForm;
import com.bellmann.model.vo.BusinessVO;
import com.bellmann.model.vo.DeviceBusinessVO;
import com.bellmann.model.vo.DeviceServiceVO;
import com.bellmann.service.ServiceService;
import io.swagger.v3.oas.annotations.Operation;
@ -101,4 +102,11 @@ public class ServiceController {
return serviceService.deleteBusinessFile(fileId,servId);
}
@GetMapping("tabs/{devId}")
@Operation(summary = "获取设备业务tab标签")
public Result<List<DeviceBusinessVO>> tabs(@PathVariable Long devId){
List<DeviceBusinessVO> list = serviceService.tabs(devId);
return Result.success(list);
}
}

@ -23,7 +23,7 @@ public class ServiceManagerImpl implements ServiceManager {
@Override
public String getConnType(Long devId) {
DeviceServiceArgsBO bo = serviceMapper.getConnType(devId);
DeviceServiceArgsBO bo = serviceMapper.getConnType(devId,SystemConstants.CONN_TYPE);
if (bo==null){
return "";
}

@ -0,0 +1,18 @@
package com.bellmann.mapper;
import com.bellmann.model.entity.DeviceServiceArgs;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 李小林
* @since 2024-07-12
*/
@Mapper
public interface DeviceServiceArgsMapper extends BaseMapper<DeviceServiceArgs> {
}

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.bo.DeviceServiceArgsBO;
import com.bellmann.model.entity.Business;
import com.bellmann.model.vo.BusinessVO;
import com.bellmann.model.vo.DeviceBusinessVO;
import com.bellmann.model.vo.DeviceServiceVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -21,5 +22,7 @@ public interface ServiceMapper extends BaseMapper<Business> {
List<BusinessVO> businessPage(Page<BusinessVO> page);
DeviceServiceArgsBO getConnType(@Param("devId") Long devId);
DeviceServiceArgsBO getConnType(@Param("devId") Long devId,@Param("connType") String connType);
List<DeviceBusinessVO> tabs(@Param("devId") Long devId);
}

@ -0,0 +1,11 @@
package com.bellmann.model.dto;
import lombok.Data;
@Data
public class ServiceParamInfo {
private String parameterName;
private String actualValue;
private String expectationValue;
private String remarks;
}

@ -0,0 +1,40 @@
package com.bellmann.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author 李小林
* @since 2024-07-12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("itms_device_service_args")
@ToString
public class DeviceServiceArgs implements Serializable {
private static final long serialVersionUID = 1L;
private Long devId;
private Long servId;
private String argsTr069Name;
private String argsValue;
private Date argsUpdateTime;
private String servArgsRemark;
}

@ -0,0 +1,27 @@
package com.bellmann.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
@Data
@Schema(description = "设备业务视图")
public class DeviceBusinessVO {
private Long servId;
private String servName;
private String servVerName;
private String servDisplayName;
private String servDesc;
private String servMapStatus;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date servStatusTime;
}

@ -0,0 +1,17 @@
package com.bellmann.model.vo;
import com.bellmann.model.dto.ParamInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Data;
import java.util.List;
@Data
@Schema(description = "设备链路信息视图")
@Builder
public class FTTRInfoVO {
private String title;
private List<ParamInfo> list;
}

@ -0,0 +1,18 @@
package com.bellmann.model.vo;
import com.bellmann.model.dto.ServiceParamInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Data;
import java.util.List;
@Data
@Schema(description = "业务参数对照")
@Builder
public class ServiceCompareVO {
private String title;
private List<ServiceParamInfo> list;
}

@ -0,0 +1,13 @@
package com.bellmann.service;
/**
* <p>
* 服务类
* </p>
*
* @author 李小林
* @since 2024-07-12
*/
public interface DeviceServiceArgsService {
}

@ -42,4 +42,6 @@ public interface DeviceStaticService {
Result<String> unbindingLogicId(UnBindingForm form);
Result<String> deleteProfile(Long devId, Long fileId);
int compareParameter(Long devId, String serviceName, Long serviceId, String serviceVerName);
}

@ -1,19 +1,24 @@
package com.bellmann.service;
import com.bellmann.model.vo.DeviceLinkVO;
import com.bellmann.model.vo.FTTRInfoVO;
import com.bellmann.model.vo.ServiceCompareVO;
import java.util.List;
/**
* <p>
* 服务类
* 服务类
* </p>
*
* @author 李小林
* @since 2024-07-11
*/
public interface OperateResultArgsService{
public interface OperateResultArgsService {
List<DeviceLinkVO> getDeviceLinkInfo(Long devId);
List<ServiceCompareVO> getServiceInfo(Long devId, String serviceName);
List<FTTRInfoVO> getFTTRPrimaryGateway(Long devId);
}

@ -6,6 +6,7 @@ import com.bellmann.common.result.Result;
import com.bellmann.model.form.BusinessForm;
import com.bellmann.model.form.FileRecordForm;
import com.bellmann.model.vo.BusinessVO;
import com.bellmann.model.vo.DeviceBusinessVO;
import com.bellmann.model.vo.DeviceServiceVO;
import java.util.List;
@ -36,4 +37,6 @@ public interface ServiceService {
Result<String> deleteBusiness(List<Long> ids);
Result<String> deleteBusinessFile(Long fileId, Long servId);
List<DeviceBusinessVO> tabs(Long devId);
}

@ -0,0 +1,19 @@
package com.bellmann.service.impl;
import com.bellmann.service.DeviceServiceArgsService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 李小林
* @since 2024-07-12
*/
@Service
@RequiredArgsConstructor
public class DeviceServiceArgsServiceImpl implements DeviceServiceArgsService {
}

@ -32,22 +32,32 @@ import com.bellmann.service.DeviceStaticService;
import com.bellmann.service.FileOptionService;
import com.zznode.itms.api.InventoryManager;
import com.zznode.itms.api.NBIManager;
import com.zznode.itms.api.OAMManager;
import com.zznode.itms.api.Utils;
import com.zznode.itms.idl.device.DOperTask2DetailStruct;
import com.zznode.itms.idl.device.DOperTask2DetailStructHolder;
import com.zznode.itms.idl.device.DOperTask2Struct;
import com.zznode.itms.idl.device.DOperTaskArgsStruct;
import com.zznode.itms.idl.order.OrderInfoStructListHolder;
import com.zznode.itms.idl.order.OrderStatus;
import com.zznode.itms.idl.order.OrderType;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
@Slf4j
public class DeviceStaticServiceImpl implements DeviceStaticService {
private final DeviceStaticMapper deviceStaticMapper;
@ -81,6 +91,8 @@ public class DeviceStaticServiceImpl implements DeviceStaticService {
private final FileOptionService fileOptionService;
private final DeviceServiceArgsMapper deviceServiceArgsMapper;
@Override
public Page<EquipmentVO> resourcePage(SelectQuery query) {
@ -289,7 +301,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService {
RemoteDevInfoVO remoteDevInfoVO = new RemoteDevInfoVO();
DeviceStatic deviceStatic = deviceStaticMapper.selectOne(
new QueryWrapper<DeviceStatic>()
.select("dev_create_time","dev_id","dev_ad_no","dev_sno","region_area_id","dev_remark1","dev_remark4","dev_remark3","dev_status","cust_id as custom_id","type_and_ver_id")
.select("dev_pppoe","dev_create_time","dev_id","dev_ad_no","dev_sno","region_area_id","dev_remark1","dev_remark4","dev_remark3","dev_status","cust_id as custom_id","type_and_ver_id")
.eq("dev_id",devId)
);
BeanUtils.copyProperties(deviceStatic,remoteDevInfoVO);
@ -440,4 +452,52 @@ public class DeviceStaticServiceImpl implements DeviceStaticService {
}
return Result.failed(ResultCode.FILE_DELETE_FAIL);
}
@Override
public int compareParameter(Long devId, String serviceName, Long serviceId, String serviceVerName) {
List<DeviceServiceArgs> list = deviceServiceArgsMapper.selectList(new LambdaUpdateWrapper<DeviceServiceArgs>()
.eq(DeviceServiceArgs::getDevId, devId)
.eq(DeviceServiceArgs::getServId, serviceId)
);
if (list.isEmpty()){
throw new BusinessException(ResultCode.DATA_NOT_FOUND);
}
List<DeviceServiceArgs> args = new ArrayList<>();
for (DeviceServiceArgs arg: list){
if (!arg.getArgsTr069Name().equals("SERVICE_PRIORITY")){
args.add(arg);
}
}
DOperTask2DetailStruct detailStruct = new DOperTask2DetailStruct();
DOperTask2Struct operateTaskStruct = new DOperTask2Struct();
operateTaskStruct.devId = devId;
operateTaskStruct.operName = serviceName;
operateTaskStruct.operTaskCreateTime = (new Date()).getTime();
operateTaskStruct.operTaskDesc = serviceName+"业务诊断";
operateTaskStruct.operTaskId = Utils.LONG_NULL;
operateTaskStruct.userName = SecurityUtils.getUsername();
detailStruct.operTask = operateTaskStruct;
DOperTaskArgsStruct[] argsStruct = new DOperTaskArgsStruct[args.size()+1];
argsStruct[0] = new DOperTaskArgsStruct();
argsStruct[0].argsName = "SERVICE_VERSION";
argsStruct[0].argsValue = serviceVerName;
argsStruct[0].operTaskId = Utils.LONG_NULL;
log.info("service-version: {}",serviceVerName);
DeviceServiceArgs deviceServiceArgs = new DeviceServiceArgs();
for (int i=0;i<args.size();i++){
deviceServiceArgs = args.get(i);
argsStruct[i+1] = new DOperTaskArgsStruct();
argsStruct[i+1].argsName = deviceServiceArgs.getArgsTr069Name();
argsStruct[i+1].argsValue = deviceServiceArgs.getArgsValue();
argsStruct[i+1].operTaskId = Utils.LONG_NULL;
}
detailStruct.operTaskArgsList = argsStruct;
DOperTask2DetailStructHolder detailStructHolder = new DOperTask2DetailStructHolder(detailStruct);
int result = OAMManager.sendDeviceOper2Task(detailStructHolder);
if (result!=0){
throw new BusinessException(ResultCode.OAM_INTERFACE_ERROR);
}
return result;
}
}

@ -6,12 +6,16 @@ import com.bellmann.common.util.CommonUtils;
import com.bellmann.mapper.OperateResultArgsMapper;
import com.bellmann.mapper.OperateTask2Mapper;
import com.bellmann.model.dto.ParamInfo;
import com.bellmann.model.dto.ServiceParamInfo;
import com.bellmann.model.entity.OperateResultArgs;
import com.bellmann.model.entity.OperateTask2;
import com.bellmann.model.vo.DeviceLinkVO;
import com.bellmann.model.vo.FTTRInfoVO;
import com.bellmann.model.vo.ServiceCompareVO;
import com.bellmann.service.OperateResultArgsService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
@ -34,22 +38,34 @@ public class OperateResultArgsServiceImpl implements OperateResultArgsService {
private final OperateTask2Mapper operateTask2Mapper;
private final OperateResultArgsMapper operateResultArgsMapper;
@Override
public List<DeviceLinkVO> getDeviceLinkInfo(Long devId) {
OperateTask2 operateTask2 = operateTask2Mapper.getLatestTaskByOperateName(devId, RemoteOperateMsgEnum.BASIC_PARAMETER.getValue());
private String getHtml(OperateTask2 operateTask2){
if (operateTask2==null){
return null;
}
List<OperateResultArgs> list = operateResultArgsMapper.selectList(new LambdaQueryWrapper<OperateResultArgs>()
.eq(OperateResultArgs::getOperTaskId, operateTask2.getOperTaskId())
);
StringBuilder html = new StringBuilder();
if (list.isEmpty()){
return new ArrayList<DeviceLinkVO>();
return null;
}
for (OperateResultArgs args:list){
html.append(args.getArgsValue());
}
return html.toString();
}
@Override
public List<DeviceLinkVO> getDeviceLinkInfo(Long devId) {
OperateTask2 operateTask2 = operateTask2Mapper.getLatestTaskByOperateName(devId, RemoteOperateMsgEnum.BASIC_PARAMETER.getValue());
String html = getHtml(operateTask2);
if (html==null){
return new ArrayList<>();
}
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
List<ParamInfo> paramInfos = CommonUtils.parseHtmlToParamInfo(html.toString());
List<ParamInfo> paramInfos = CommonUtils.parseHtmlToParamInfo(html);
List<DeviceLinkVO> links = new ArrayList<>();
DeviceLinkVO deviceLinkVO = DeviceLinkVO
.builder()
@ -59,4 +75,45 @@ public class OperateResultArgsServiceImpl implements OperateResultArgsService {
links.add(deviceLinkVO);
return links;
}
@Override
public List<FTTRInfoVO> getFTTRPrimaryGateway(Long devId) {
OperateTask2 operateTask2 = operateTask2Mapper.getLatestTaskByOperateName(devId, RemoteOperateMsgEnum.FTTR_CONFIG.getValue());
String html = getHtml(operateTask2);
if (html==null){
return new ArrayList<>();
}
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
List<ParamInfo> paramInfos = CommonUtils.parseHtmlToParamInfo(html);
List<FTTRInfoVO> list = new ArrayList<>();
FTTRInfoVO fttrInfoVO = FTTRInfoVO
.builder()
.title("主网关下行PON口信息: " + dateFormat.format(operateTask2.getOperTaskCreateTime()))
.list(paramInfos).build();
list.add(fttrInfoVO);
return list;
}
@Override
public List<ServiceCompareVO> getServiceInfo(Long devId,String serviceName) {
OperateTask2 operateTask2 = operateTask2Mapper.getLatestTaskByOperateName(devId,serviceName);
String html = getHtml(operateTask2);
if (html==null){
return new ArrayList<>();
}
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
List<ServiceParamInfo> list = CommonUtils.parseHtmlToServiceParamInfo(html);
List<ServiceCompareVO> compare = new ArrayList<>();
ServiceCompareVO build = ServiceCompareVO
.builder()
.title(StringUtils.upperCase(serviceName) + " 业务信息: " + dateFormat.format(operateTask2.getOperTaskCreateTime()))
.list(list)
.build();
compare.add(build);
return compare;
}
}

@ -87,7 +87,6 @@ public class RemoteOperateTaskServiceImpl implements RemoteOperateTaskService {
argsStruct[1] = new DOperTaskArgsStruct();
argsStruct[1].argsName = "AccessType";
argsStruct[1].argsValue = accessType == null ? "" : IBaseEnum.getLabelByValue(accessType, DevAccessTypeEnum.class);
;
argsStruct[1].operTaskId = operateTaskStruct.operTaskId;
detailStruct.operTaskArgsList = argsStruct;
DOperTask2DetailStructHolder detailStructHolder = new DOperTask2DetailStructHolder(

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.common.base.BasePageQuery;
import com.bellmann.common.base.IBaseEnum;
import com.bellmann.common.enums.ServiceMapStatusEnum;
import com.bellmann.common.result.Result;
import com.bellmann.common.result.ResultCode;
import com.bellmann.converter.FileRecordConverter;
@ -17,6 +19,7 @@ import com.bellmann.model.entity.Tr069ServiceMap;
import com.bellmann.model.form.BusinessForm;
import com.bellmann.model.form.FileRecordForm;
import com.bellmann.model.vo.BusinessVO;
import com.bellmann.model.vo.DeviceBusinessVO;
import com.bellmann.model.vo.DeviceServiceVO;
import com.bellmann.security.util.SecurityUtils;
import com.bellmann.service.FileOptionService;
@ -185,4 +188,16 @@ public class ServiceServiceImpl implements ServiceService {
);
return Result.success();
}
@Override
public List<DeviceBusinessVO> tabs(Long devId) {
List<DeviceBusinessVO> tabs = serviceMapper.tabs(devId);
if (!tabs.isEmpty()){
tabs.forEach(obj -> {
obj.setServMapStatus(IBaseEnum.getLabelByValue(obj.getServMapStatus(), ServiceMapStatusEnum.class));
});
}
return tabs;
}
}

@ -0,0 +1,20 @@
<?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.bellmann.mapper.DeviceServiceArgsMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.bellmann.model.entity.DeviceServiceArgs">
<id column="dev_id" property="devId" />
<result column="serv_id" property="servId" />
<result column="args_tr069_name" property="argsTr069Name" />
<result column="args_value" property="argsValue" />
<result column="args_update_time" property="argsUpdateTime" />
<result column="serv_args_remark" property="servArgsRemark" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
dev_id, serv_id, args_tr069_name, args_value, args_update_time, serv_args_remark
</sql>
</mapper>

@ -32,6 +32,7 @@
INNER JOIN itms_device_static cc ON aa.dev_id = cc.dev_id
WHERE
aa.dev_id = #{devId}
order by aa.oper_task_create_time desc
</select>
<select id="operateTask2ByDevId" resultType="com.bellmann.model.vo.OperateTask2VO">
SELECT

@ -69,7 +69,23 @@
WHERE
t1.serv_id = t2.serv_id
AND t2.serv_name = 'wband'
and t1.args_tr069_name= #{connType}
AND t1.dev_id = #{devId}
limit 1
</select>
<select id="tabs" resultType="com.bellmann.model.vo.DeviceBusinessVO">
SELECT
bb.serv_id,
bb.serv_name,
bb.serv_desc,
bb.serv_display_name,
bb.serv_ver_name,
aa.serv_map_status,
aa.serv_status_time
FROM
itms_device_service_map aa
INNER JOIN itms_service bb ON aa.serv_id = bb.serv_id
WHERE
aa.dev_id = #{devId}
</select>
</mapper>

Loading…
Cancel
Save