From 15fd7e55ebc0b901e4e75f3fef790e9a481484da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B0=8F=E6=9E=97?= <320730042@qq.com> Date: Fri, 23 Aug 2024 18:04:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=85=E9=9A=9C=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E9=AB=98=E7=BA=A7=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/enums/RemoteOperateMsgEnum.java | 6 +- .../bellmann/controller/FaultController.java | 28 +++++++ .../java/com/bellmann/model/form/AlgForm.java | 20 +++++ .../java/com/bellmann/model/form/CpeForm.java | 14 ++++ .../service/RemoteOperateTaskService.java | 5 ++ .../impl/RemoteOperateTaskServiceImpl.java | 77 ++++++++++++++++++- 6 files changed, 148 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/bellmann/model/form/AlgForm.java create mode 100644 src/main/java/com/bellmann/model/form/CpeForm.java diff --git a/src/main/java/com/bellmann/common/enums/RemoteOperateMsgEnum.java b/src/main/java/com/bellmann/common/enums/RemoteOperateMsgEnum.java index fc7bb37..421bed1 100644 --- a/src/main/java/com/bellmann/common/enums/RemoteOperateMsgEnum.java +++ b/src/main/java/com/bellmann/common/enums/RemoteOperateMsgEnum.java @@ -71,7 +71,11 @@ public enum RemoteOperateMsgEnum implements IBaseEnum { VOIP_INFO_QUERY_GPON("VoipInfoQueryGPON","VoipInfoQueryGPON"), DIGITAL_HOME_QUERY_GPON("DigitalhomeQueryGPON","DigitalhomeQueryGPON"), - LAN_INFO_QUERY("LanInfoQuery","LanInfoQuery") + LAN_INFO_QUERY("LanInfoQuery","LanInfoQuery"), + + ALG_QUERY("AlgQuery","AlgQuery"), + + CPE_NUMBER_QUERY("CpeNumberQuery","CpeNumberQuery"), ; @Getter private String value; diff --git a/src/main/java/com/bellmann/controller/FaultController.java b/src/main/java/com/bellmann/controller/FaultController.java index b4074d7..fa85a15 100644 --- a/src/main/java/com/bellmann/controller/FaultController.java +++ b/src/main/java/com/bellmann/controller/FaultController.java @@ -1,11 +1,15 @@ package com.bellmann.controller; import com.bellmann.common.result.Result; +import com.bellmann.common.result.ResultCode; +import com.bellmann.model.form.AlgForm; +import com.bellmann.model.form.CpeForm; import com.bellmann.model.query.FaultQuery; import com.bellmann.model.vo.FaultBasicInfoVO; import com.bellmann.model.vo.FaultDiagnosisResult; import com.bellmann.model.vo.FaultQueryVO; import com.bellmann.security.util.SecurityUtils; +import com.bellmann.service.DeviceStaticService; import com.bellmann.service.FaultService; import com.bellmann.service.RemoteOperateTaskService; import io.swagger.v3.oas.annotations.Operation; @@ -13,6 +17,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; import java.util.List; import java.util.Map; @@ -26,6 +31,8 @@ public class FaultController { private final RemoteOperateTaskService remoteOperateTaskService; + private final DeviceStaticService deviceStaticService; + @Operation(summary = "故障管理查询") @PostMapping("/query") public Result> queryList(@RequestBody FaultQuery query){ @@ -54,4 +61,25 @@ public class FaultController { Map map = faultService.getServiceStatusResult(taskId); return Result.success(map); } + @Operation(summary = "修改ALG功能") + @PostMapping("/update-alg") + public Result updateAlg(@RequestParam Long devId,@RequestBody @Valid AlgForm algForm){ + Long taskId = remoteOperateTaskService.updateAlg(devId,algForm); + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + if (isSuccess){ + return Result.success(); + } + return Result.failed(ResultCode.THE_INTERFACE_CONNECTION_TIMED_OUT); + } + @Operation(summary = "修改上网终端数目") + @PostMapping("/update-cpe") + public Result updateCpe(@RequestParam Long devId,@RequestBody @Valid CpeForm cpeForm){ + + Long taskId = remoteOperateTaskService.updateCpe(devId,cpeForm); + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + if (isSuccess){ + return Result.success(); + } + return Result.failed(ResultCode.THE_INTERFACE_CONNECTION_TIMED_OUT); + } } diff --git a/src/main/java/com/bellmann/model/form/AlgForm.java b/src/main/java/com/bellmann/model/form/AlgForm.java new file mode 100644 index 0000000..d452328 --- /dev/null +++ b/src/main/java/com/bellmann/model/form/AlgForm.java @@ -0,0 +1,20 @@ +package com.bellmann.model.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +public class AlgForm { + + @NotBlank(message = "必填参数不能为空") + private String h323Enable; + @NotBlank(message = "必填参数不能为空") + private String sIPEnable; + @NotBlank(message = "必填参数不能为空") + private String rTSPEnable; + @NotBlank(message = "必填参数不能为空") + private String l2TPEnable; + @NotBlank(message = "必填参数不能为空") + private String iPSECEnable; +} diff --git a/src/main/java/com/bellmann/model/form/CpeForm.java b/src/main/java/com/bellmann/model/form/CpeForm.java new file mode 100644 index 0000000..0ecbb4f --- /dev/null +++ b/src/main/java/com/bellmann/model/form/CpeForm.java @@ -0,0 +1,14 @@ +package com.bellmann.model.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; + +@Data +public class CpeForm { + + @NotBlank(message = "必填参数不能为空") + @Pattern(regexp = "^([1-9][0-9]?|0|100)$",message = "只能输入0-100的整数") + private String cpeNum; +} diff --git a/src/main/java/com/bellmann/service/RemoteOperateTaskService.java b/src/main/java/com/bellmann/service/RemoteOperateTaskService.java index b5c569e..a53ab40 100644 --- a/src/main/java/com/bellmann/service/RemoteOperateTaskService.java +++ b/src/main/java/com/bellmann/service/RemoteOperateTaskService.java @@ -1,6 +1,8 @@ package com.bellmann.service; import com.bellmann.model.dto.OperationTask; +import com.bellmann.model.form.AlgForm; +import com.bellmann.model.form.CpeForm; import com.bellmann.model.vo.RemoteOperateResult; public interface RemoteOperateTaskService { @@ -11,4 +13,7 @@ public interface RemoteOperateTaskService { RemoteOperateResult findDevInfoArgsByDevIdIsTimeOut(Long devId, String command); + Long updateAlg(Long devId, AlgForm algForm); + + Long updateCpe(Long devId, CpeForm algForm); } diff --git a/src/main/java/com/bellmann/service/impl/RemoteOperateTaskServiceImpl.java b/src/main/java/com/bellmann/service/impl/RemoteOperateTaskServiceImpl.java index 9a6b0f6..a9df9ca 100644 --- a/src/main/java/com/bellmann/service/impl/RemoteOperateTaskServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/RemoteOperateTaskServiceImpl.java @@ -15,8 +15,11 @@ import com.bellmann.model.dto.RemoteOperation; import com.bellmann.model.entity.DeviceDynamic; import com.bellmann.model.entity.OperateResult2; import com.bellmann.model.entity.OperateTask2; +import com.bellmann.model.form.AlgForm; +import com.bellmann.model.form.CpeForm; import com.bellmann.model.vo.RemoteOperateResult; import com.bellmann.runner.UIService; +import com.bellmann.security.util.SecurityUtils; import com.bellmann.service.RemoteOperateTaskService; import com.zznode.itms.api.InventoryManager; import com.zznode.itms.api.OAMManager; @@ -106,7 +109,6 @@ public class RemoteOperateTaskServiceImpl implements RemoteOperateTaskService { try { result = OAMManager.sendDeviceOper2Task(detailStructHolder); }catch (Exception e){ - e.printStackTrace(); throw new BusinessException(ResultCode.NOT_GET_DEVICE); } if (result != 0) { @@ -213,4 +215,77 @@ public class RemoteOperateTaskServiceImpl implements RemoteOperateTaskService { return new RemoteOperation(); } + @Override + public Long updateAlg(Long devId, AlgForm algForm) { + + DOperTask2DetailStruct detailStruct = new DOperTask2DetailStruct(); + DOperTask2Struct operTask2Struct = new DOperTask2Struct(); + operTask2Struct.devId = devId; ; + operTask2Struct.operName = RemoteOperateMsgEnum.SET_PARAMETER_VALUES.getValue(); + operTask2Struct.operTaskCreateTime = 0; + operTask2Struct.operTaskDesc = RemoteOperateMsgEnum.SET_PARAMETER_VALUES.getLabel(); + operTask2Struct.operTaskId = Utils.LONG_NULL; + operTask2Struct.userName = SecurityUtils.getUsername(); + detailStruct.operTask = operTask2Struct; + DOperTaskArgsStruct[] argsStructs = new DOperTaskArgsStruct[5]; + argsStructs[0] = new DOperTaskArgsStruct(); + argsStructs[0].argsName = "InternetGatewayDevice.DeviceInfo.X_CT-COM_ALGAbility.H323Enable"; + argsStructs[0].argsValue = algForm.getH323Enable(); //H323开关 + argsStructs[0].operTaskId = Utils.LONG_NULL; + + argsStructs[1] = new DOperTaskArgsStruct(); + argsStructs[1].argsName = "InternetGatewayDevice.DeviceInfo.X_CT-COM_ALGAbility.SIPEnable"; + argsStructs[1].argsValue = algForm.getSIPEnable(); //SIP开关 + argsStructs[1].operTaskId = Utils.LONG_NULL; + + argsStructs[2] = new DOperTaskArgsStruct(); + argsStructs[2].argsName = "InternetGatewayDevice.DeviceInfo.X_CT-COM_ALGAbility.RTSPEnable"; + argsStructs[2].argsValue = algForm.getRTSPEnable(); //RTSP开关 + argsStructs[2].operTaskId = Utils.LONG_NULL; + + argsStructs[3] = new DOperTaskArgsStruct(); + argsStructs[3].argsName = "InternetGatewayDevice.DeviceInfo.X_CT-COM_ALGAbility.L2TPEnable"; + argsStructs[3].argsValue = algForm.getL2TPEnable(); //L2TP开关 + argsStructs[3].operTaskId = Utils.LONG_NULL; + + argsStructs[4] = new DOperTaskArgsStruct(); + argsStructs[4].argsName = "InternetGatewayDevice.DeviceInfo.X_CT-COM_ALGAbility.IPSECEnable"; + argsStructs[4].argsValue = algForm.getIPSECEnable(); //IPSEV开关 + argsStructs[4].operTaskId = Utils.LONG_NULL; + + detailStruct.operTaskArgsList = argsStructs; + + DOperTask2DetailStructHolder task2DetailStructHolder = new DOperTask2DetailStructHolder(detailStruct); + int result = OAMManager.sendDeviceOper2Task(task2DetailStructHolder); + if (result != 0) { + throw new BusinessException(ResultCode.OAM_INTERFACE_ERROR); + } + return task2DetailStructHolder.value.operTask.operTaskId; + } + + @Override + public Long updateCpe(Long devId, CpeForm cpeForm) { + DOperTask2DetailStruct detailStruct = new DOperTask2DetailStruct(); + DOperTask2Struct operTask2Struct = new DOperTask2Struct(); + operTask2Struct.devId = devId; ; + operTask2Struct.operName = RemoteOperateMsgEnum.SET_PARAMETER_VALUES.getValue(); + operTask2Struct.operTaskCreateTime = 0; + operTask2Struct.operTaskDesc = RemoteOperateMsgEnum.SET_PARAMETER_VALUES.getLabel(); + operTask2Struct.operTaskId = Utils.LONG_NULL; + operTask2Struct.userName = SecurityUtils.getUsername(); + detailStruct.operTask = operTask2Struct; + DOperTaskArgsStruct[] argsStructs = new DOperTaskArgsStruct[1]; + argsStructs[0] = new DOperTaskArgsStruct(); + argsStructs[0].argsName = "InternetGatewayDevice.Services.X_CT-COM_MWBAND.TotalTerminalNumber"; + argsStructs[0].argsValue = cpeForm.getCpeNum(); + argsStructs[0].operTaskId = Utils.LONG_NULL; + detailStruct.operTaskArgsList = argsStructs; + + DOperTask2DetailStructHolder task2DetailStructHolder = new DOperTask2DetailStructHolder(detailStruct); + int result = OAMManager.sendDeviceOper2Task(task2DetailStructHolder); + if (result != 0) { + throw new BusinessException(ResultCode.OAM_INTERFACE_ERROR); + } + return task2DetailStructHolder.value.operTask.operTaskId; + } }