From 5b9eccb26027a8dbc5cef1862cb720561eefe77f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B0=8F=E6=9E=97?= <320730042@qq.com> Date: Sat, 13 Jul 2024 19:14:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=BF=9C=E7=A8=8B=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/SystemConstants.java | 2 +- .../common/enums/RemoteOperateMsgEnum.java | 6 +- .../common/enums/ServiceMapStatusEnum.java | 32 +++++++++ .../bellmann/common/result/ResultCode.java | 3 +- .../com/bellmann/common/util/CommonUtils.java | 22 ++++++ .../DeviceServiceArgsController.java | 21 ++++++ .../controller/DeviceStaticController.java | 43 +++++++++++- .../OperateResultArgsController.java | 20 +++++- .../controller/ServiceController.java | 8 +++ .../manger/impl/ServiceManagerImpl.java | 2 +- .../mapper/DeviceServiceArgsMapper.java | 18 +++++ .../com/bellmann/mapper/ServiceMapper.java | 5 +- .../bellmann/model/dto/ServiceParamInfo.java | 11 +++ .../model/entity/DeviceServiceArgs.java | 40 +++++++++++ .../bellmann/model/vo/DeviceBusinessVO.java | 27 ++++++++ .../com/bellmann/model/vo/FTTRInfoVO.java | 17 +++++ .../bellmann/model/vo/ServiceCompareVO.java | 18 +++++ .../service/DeviceServiceArgsService.java | 13 ++++ .../bellmann/service/DeviceStaticService.java | 2 + .../service/OperateResultArgsService.java | 9 ++- .../com/bellmann/service/ServiceService.java | 3 + .../impl/DeviceServiceArgsServiceImpl.java | 19 ++++++ .../service/impl/DeviceStaticServiceImpl.java | 62 ++++++++++++++++- .../impl/OperateResultArgsServiceImpl.java | 67 +++++++++++++++++-- .../impl/RemoteOperateTaskServiceImpl.java | 1 - .../service/impl/ServiceServiceImpl.java | 15 +++++ .../mapper/DeviceServiceArgsMapper.xml | 20 ++++++ .../resources/mapper/OperateTask2Mapper.xml | 1 + src/main/resources/mapper/ServiceMapper.xml | 16 +++++ 29 files changed, 506 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/bellmann/common/enums/ServiceMapStatusEnum.java create mode 100644 src/main/java/com/bellmann/controller/DeviceServiceArgsController.java create mode 100644 src/main/java/com/bellmann/mapper/DeviceServiceArgsMapper.java create mode 100644 src/main/java/com/bellmann/model/dto/ServiceParamInfo.java create mode 100644 src/main/java/com/bellmann/model/entity/DeviceServiceArgs.java create mode 100644 src/main/java/com/bellmann/model/vo/DeviceBusinessVO.java create mode 100644 src/main/java/com/bellmann/model/vo/FTTRInfoVO.java create mode 100644 src/main/java/com/bellmann/model/vo/ServiceCompareVO.java create mode 100644 src/main/java/com/bellmann/service/DeviceServiceArgsService.java create mode 100644 src/main/java/com/bellmann/service/impl/DeviceServiceArgsServiceImpl.java create mode 100644 src/main/resources/mapper/DeviceServiceArgsMapper.xml diff --git a/src/main/java/com/bellmann/common/constant/SystemConstants.java b/src/main/java/com/bellmann/common/constant/SystemConstants.java index 7226825..9fcbbef 100644 --- a/src/main/java/com/bellmann/common/constant/SystemConstants.java +++ b/src/main/java/com/bellmann/common/constant/SystemConstants.java @@ -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 = "操作进行中..."; } diff --git a/src/main/java/com/bellmann/common/enums/RemoteOperateMsgEnum.java b/src/main/java/com/bellmann/common/enums/RemoteOperateMsgEnum.java index 2852af5..2339082 100644 --- a/src/main/java/com/bellmann/common/enums/RemoteOperateMsgEnum.java +++ b/src/main/java/com/bellmann/common/enums/RemoteOperateMsgEnum.java @@ -28,7 +28,11 @@ public enum RemoteOperateMsgEnum implements IBaseEnum { UPLOAD_LOG("UploadLog", "获取设备日志文件"), - BASIC_PARAMETER("basicparameter","获取设备链路信息") + BASIC_PARAMETER("basicparameter","获取设备链路信息"), + + FTTR_CONFIG("FTTRCONFIG","刷新设备主网关信息"), + + FTTR_STATS("FTTRSTATS","刷新子网关信息"); ; @Getter diff --git a/src/main/java/com/bellmann/common/enums/ServiceMapStatusEnum.java b/src/main/java/com/bellmann/common/enums/ServiceMapStatusEnum.java new file mode 100644 index 0000000..0d5f7c5 --- /dev/null +++ b/src/main/java/com/bellmann/common/enums/ServiceMapStatusEnum.java @@ -0,0 +1,32 @@ +package com.bellmann.common.enums; + +import com.bellmann.common.base.IBaseEnum; +import lombok.Getter; + +public enum ServiceMapStatusEnum implements IBaseEnum { + + 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; + } +} diff --git a/src/main/java/com/bellmann/common/result/ResultCode.java b/src/main/java/com/bellmann/common/result/ResultCode.java index c23257e..864f907 100644 --- a/src/main/java/com/bellmann/common/result/ResultCode.java +++ b/src/main/java/com/bellmann/common/result/ResultCode.java @@ -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() { diff --git a/src/main/java/com/bellmann/common/util/CommonUtils.java b/src/main/java/com/bellmann/common/util/CommonUtils.java index 6f0f812..ad2bece 100644 --- a/src/main/java/com/bellmann/common/util/CommonUtils.java +++ b/src/main/java/com/bellmann/common/util/CommonUtils.java @@ -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 parseHtmlToServiceParamInfo(String html){ + List 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; + } } diff --git a/src/main/java/com/bellmann/controller/DeviceServiceArgsController.java b/src/main/java/com/bellmann/controller/DeviceServiceArgsController.java new file mode 100644 index 0000000..c9462e4 --- /dev/null +++ b/src/main/java/com/bellmann/controller/DeviceServiceArgsController.java @@ -0,0 +1,21 @@ +package com.bellmann.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 前端控制器 + *

+ * + * @author 李小林 + * @since 2024-07-12 + */ +@RestController +@RequestMapping("/deviceServiceArgs") +public class DeviceServiceArgsController { + +} + diff --git a/src/main/java/com/bellmann/controller/DeviceStaticController.java b/src/main/java/com/bellmann/controller/DeviceStaticController.java index d9b7748..ac13e50 100644 --- a/src/main/java/com/bellmann/controller/DeviceStaticController.java +++ b/src/main/java/com/bellmann/controller/DeviceStaticController.java @@ -156,10 +156,49 @@ public class DeviceStaticController { List 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> 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 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> 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 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 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); + } + } } diff --git a/src/main/java/com/bellmann/controller/OperateResultArgsController.java b/src/main/java/com/bellmann/controller/OperateResultArgsController.java index 78c77a1..d9f944b 100644 --- a/src/main/java/com/bellmann/controller/OperateResultArgsController.java +++ b/src/main/java/com/bellmann/controller/OperateResultArgsController.java @@ -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> getServiceParameter(@PathVariable Long devId, @PathVariable String serviceName) { + + List result = operateResultArgsService.getServiceInfo(devId, serviceName); + return Result.success(result); + + } + @GetMapping("/fttr-primary-gateway/{devId}") + @Operation(summary = "远程操作-FTTR主网关信息") + @PreventDuplicateSubmit + public Result> primaryGateway(@PathVariable Long devId) { + List result = operateResultArgsService.getFTTRPrimaryGateway(devId); + return Result.success(result); + + } } diff --git a/src/main/java/com/bellmann/controller/ServiceController.java b/src/main/java/com/bellmann/controller/ServiceController.java index 57b776d..2b94cb4 100644 --- a/src/main/java/com/bellmann/controller/ServiceController.java +++ b/src/main/java/com/bellmann/controller/ServiceController.java @@ -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> tabs(@PathVariable Long devId){ + List list = serviceService.tabs(devId); + return Result.success(list); + } + } diff --git a/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java b/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java index 4fba0b0..62bc79b 100644 --- a/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java +++ b/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java @@ -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 ""; } diff --git a/src/main/java/com/bellmann/mapper/DeviceServiceArgsMapper.java b/src/main/java/com/bellmann/mapper/DeviceServiceArgsMapper.java new file mode 100644 index 0000000..98a6d2a --- /dev/null +++ b/src/main/java/com/bellmann/mapper/DeviceServiceArgsMapper.java @@ -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; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 李小林 + * @since 2024-07-12 + */ +@Mapper +public interface DeviceServiceArgsMapper extends BaseMapper { + +} diff --git a/src/main/java/com/bellmann/mapper/ServiceMapper.java b/src/main/java/com/bellmann/mapper/ServiceMapper.java index 1741268..82f3be4 100644 --- a/src/main/java/com/bellmann/mapper/ServiceMapper.java +++ b/src/main/java/com/bellmann/mapper/ServiceMapper.java @@ -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 { List businessPage(Page page); - DeviceServiceArgsBO getConnType(@Param("devId") Long devId); + DeviceServiceArgsBO getConnType(@Param("devId") Long devId,@Param("connType") String connType); + + List tabs(@Param("devId") Long devId); } diff --git a/src/main/java/com/bellmann/model/dto/ServiceParamInfo.java b/src/main/java/com/bellmann/model/dto/ServiceParamInfo.java new file mode 100644 index 0000000..4d3f47d --- /dev/null +++ b/src/main/java/com/bellmann/model/dto/ServiceParamInfo.java @@ -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; +} diff --git a/src/main/java/com/bellmann/model/entity/DeviceServiceArgs.java b/src/main/java/com/bellmann/model/entity/DeviceServiceArgs.java new file mode 100644 index 0000000..07e8b3a --- /dev/null +++ b/src/main/java/com/bellmann/model/entity/DeviceServiceArgs.java @@ -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; + +/** + *

+ * + *

+ * + * @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; + + +} diff --git a/src/main/java/com/bellmann/model/vo/DeviceBusinessVO.java b/src/main/java/com/bellmann/model/vo/DeviceBusinessVO.java new file mode 100644 index 0000000..d4fb846 --- /dev/null +++ b/src/main/java/com/bellmann/model/vo/DeviceBusinessVO.java @@ -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; +} diff --git a/src/main/java/com/bellmann/model/vo/FTTRInfoVO.java b/src/main/java/com/bellmann/model/vo/FTTRInfoVO.java new file mode 100644 index 0000000..ee1e129 --- /dev/null +++ b/src/main/java/com/bellmann/model/vo/FTTRInfoVO.java @@ -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 list; +} diff --git a/src/main/java/com/bellmann/model/vo/ServiceCompareVO.java b/src/main/java/com/bellmann/model/vo/ServiceCompareVO.java new file mode 100644 index 0000000..6fd0cf6 --- /dev/null +++ b/src/main/java/com/bellmann/model/vo/ServiceCompareVO.java @@ -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 list; +} diff --git a/src/main/java/com/bellmann/service/DeviceServiceArgsService.java b/src/main/java/com/bellmann/service/DeviceServiceArgsService.java new file mode 100644 index 0000000..78bddd1 --- /dev/null +++ b/src/main/java/com/bellmann/service/DeviceServiceArgsService.java @@ -0,0 +1,13 @@ +package com.bellmann.service; + +/** + *

+ * 服务类 + *

+ * + * @author 李小林 + * @since 2024-07-12 + */ +public interface DeviceServiceArgsService { + +} diff --git a/src/main/java/com/bellmann/service/DeviceStaticService.java b/src/main/java/com/bellmann/service/DeviceStaticService.java index af44e1f..2167ced 100644 --- a/src/main/java/com/bellmann/service/DeviceStaticService.java +++ b/src/main/java/com/bellmann/service/DeviceStaticService.java @@ -42,4 +42,6 @@ public interface DeviceStaticService { Result unbindingLogicId(UnBindingForm form); Result deleteProfile(Long devId, Long fileId); + + int compareParameter(Long devId, String serviceName, Long serviceId, String serviceVerName); } diff --git a/src/main/java/com/bellmann/service/OperateResultArgsService.java b/src/main/java/com/bellmann/service/OperateResultArgsService.java index 3f67172..98b88c3 100644 --- a/src/main/java/com/bellmann/service/OperateResultArgsService.java +++ b/src/main/java/com/bellmann/service/OperateResultArgsService.java @@ -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; /** *

- * 服务类 + * 服务类 *

* * @author 李小林 * @since 2024-07-11 */ -public interface OperateResultArgsService{ +public interface OperateResultArgsService { List getDeviceLinkInfo(Long devId); + List getServiceInfo(Long devId, String serviceName); + + List getFTTRPrimaryGateway(Long devId); } diff --git a/src/main/java/com/bellmann/service/ServiceService.java b/src/main/java/com/bellmann/service/ServiceService.java index 64b13ce..8e2d186 100644 --- a/src/main/java/com/bellmann/service/ServiceService.java +++ b/src/main/java/com/bellmann/service/ServiceService.java @@ -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 deleteBusiness(List ids); Result deleteBusinessFile(Long fileId, Long servId); + + List tabs(Long devId); } diff --git a/src/main/java/com/bellmann/service/impl/DeviceServiceArgsServiceImpl.java b/src/main/java/com/bellmann/service/impl/DeviceServiceArgsServiceImpl.java new file mode 100644 index 0000000..3c3abf9 --- /dev/null +++ b/src/main/java/com/bellmann/service/impl/DeviceServiceArgsServiceImpl.java @@ -0,0 +1,19 @@ +package com.bellmann.service.impl; + +import com.bellmann.service.DeviceServiceArgsService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author 李小林 + * @since 2024-07-12 + */ +@Service +@RequiredArgsConstructor +public class DeviceServiceArgsServiceImpl implements DeviceServiceArgsService { + +} diff --git a/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java b/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java index 20d9f94..1bab0e1 100644 --- a/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java @@ -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 resourcePage(SelectQuery query) { @@ -289,7 +301,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { RemoteDevInfoVO remoteDevInfoVO = new RemoteDevInfoVO(); DeviceStatic deviceStatic = deviceStaticMapper.selectOne( new QueryWrapper() - .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 list = deviceServiceArgsMapper.selectList(new LambdaUpdateWrapper() + .eq(DeviceServiceArgs::getDevId, devId) + .eq(DeviceServiceArgs::getServId, serviceId) + ); + if (list.isEmpty()){ + throw new BusinessException(ResultCode.DATA_NOT_FOUND); + } + List 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 getDeviceLinkInfo(Long devId) { - OperateTask2 operateTask2 = operateTask2Mapper.getLatestTaskByOperateName(devId, RemoteOperateMsgEnum.BASIC_PARAMETER.getValue()); + + private String getHtml(OperateTask2 operateTask2){ + if (operateTask2==null){ + return null; + } List list = operateResultArgsMapper.selectList(new LambdaQueryWrapper() .eq(OperateResultArgs::getOperTaskId, operateTask2.getOperTaskId()) ); StringBuilder html = new StringBuilder(); if (list.isEmpty()){ - return new ArrayList(); + return null; } for (OperateResultArgs args:list){ html.append(args.getArgsValue()); } + return html.toString(); + } + + @Override + public List 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 paramInfos = CommonUtils.parseHtmlToParamInfo(html.toString()); + List paramInfos = CommonUtils.parseHtmlToParamInfo(html); List links = new ArrayList<>(); DeviceLinkVO deviceLinkVO = DeviceLinkVO .builder() @@ -59,4 +75,45 @@ public class OperateResultArgsServiceImpl implements OperateResultArgsService { links.add(deviceLinkVO); return links; } + + @Override + public List 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 paramInfos = CommonUtils.parseHtmlToParamInfo(html); + List list = new ArrayList<>(); + FTTRInfoVO fttrInfoVO = FTTRInfoVO + .builder() + .title("主网关下行PON口信息: " + dateFormat.format(operateTask2.getOperTaskCreateTime())) + .list(paramInfos).build(); + list.add(fttrInfoVO); + return list; + } + + @Override + public List 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 list = CommonUtils.parseHtmlToServiceParamInfo(html); + List compare = new ArrayList<>(); + ServiceCompareVO build = ServiceCompareVO + .builder() + .title(StringUtils.upperCase(serviceName) + " 业务信息: " + dateFormat.format(operateTask2.getOperTaskCreateTime())) + .list(list) + .build(); + compare.add(build); + return compare; + + + } } diff --git a/src/main/java/com/bellmann/service/impl/RemoteOperateTaskServiceImpl.java b/src/main/java/com/bellmann/service/impl/RemoteOperateTaskServiceImpl.java index 464bb6c..28bea66 100644 --- a/src/main/java/com/bellmann/service/impl/RemoteOperateTaskServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/RemoteOperateTaskServiceImpl.java @@ -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( diff --git a/src/main/java/com/bellmann/service/impl/ServiceServiceImpl.java b/src/main/java/com/bellmann/service/impl/ServiceServiceImpl.java index b377ce8..38898da 100644 --- a/src/main/java/com/bellmann/service/impl/ServiceServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/ServiceServiceImpl.java @@ -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 tabs(Long devId) { + List tabs = serviceMapper.tabs(devId); + if (!tabs.isEmpty()){ + tabs.forEach(obj -> { + obj.setServMapStatus(IBaseEnum.getLabelByValue(obj.getServMapStatus(), ServiceMapStatusEnum.class)); + }); + } + return tabs; + + } } diff --git a/src/main/resources/mapper/DeviceServiceArgsMapper.xml b/src/main/resources/mapper/DeviceServiceArgsMapper.xml new file mode 100644 index 0000000..f6f8c92 --- /dev/null +++ b/src/main/resources/mapper/DeviceServiceArgsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + dev_id, serv_id, args_tr069_name, args_value, args_update_time, serv_args_remark + + + diff --git a/src/main/resources/mapper/OperateTask2Mapper.xml b/src/main/resources/mapper/OperateTask2Mapper.xml index 97315be..4a508f6 100644 --- a/src/main/resources/mapper/OperateTask2Mapper.xml +++ b/src/main/resources/mapper/OperateTask2Mapper.xml @@ -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 +