diff --git a/src/main/java/com/bellmann/common/enums/OperateTaskStateEnum.java b/src/main/java/com/bellmann/common/enums/OperateTaskStateEnum.java index 6f437b8..e96a05c 100644 --- a/src/main/java/com/bellmann/common/enums/OperateTaskStateEnum.java +++ b/src/main/java/com/bellmann/common/enums/OperateTaskStateEnum.java @@ -10,6 +10,7 @@ public enum OperateTaskStateEnum implements IBaseEnum { THE_EXECUTION_WAS_SUCCESSFUL("2","执行成功"), THE_DEVICE_IS_NOT_ONLINE("3","设备不在线"), ONGOING("4","进行中"), + TIME_OUT("5","超时"), ; @Getter diff --git a/src/main/java/com/bellmann/common/enums/RemoteOperateMsgEnum.java b/src/main/java/com/bellmann/common/enums/RemoteOperateMsgEnum.java index c023f2b..fc7bb37 100644 --- a/src/main/java/com/bellmann/common/enums/RemoteOperateMsgEnum.java +++ b/src/main/java/com/bellmann/common/enums/RemoteOperateMsgEnum.java @@ -64,6 +64,14 @@ public enum RemoteOperateMsgEnum implements IBaseEnum { PON112_ALG_SIP("2-8", "Pon112AlgSip"), PON112_IPTV_UNABLE("3-1", "Pon112IPTVUnable"), PON112_IPTV_UNSTABLE("3-2", "Pon112IPTVUnstable"), + + IPTV_QUERY_GPON("IptvQueryGPON","IptvQueryGPON"), + WLAN_INFO_QUERY("WLanInfoQuery","WLanInfoQuery"), + + VOIP_INFO_QUERY_GPON("VoipInfoQueryGPON","VoipInfoQueryGPON"), + + DIGITAL_HOME_QUERY_GPON("DigitalhomeQueryGPON","DigitalhomeQueryGPON"), + LAN_INFO_QUERY("LanInfoQuery","LanInfoQuery") ; @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 15c349a..b4074d7 100644 --- a/src/main/java/com/bellmann/controller/FaultController.java +++ b/src/main/java/com/bellmann/controller/FaultController.java @@ -5,13 +5,16 @@ 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.FaultService; +import com.bellmann.service.RemoteOperateTaskService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; @Tag(name = "33.故障管理") @RestController @@ -21,6 +24,8 @@ public class FaultController { private final FaultService faultService; + private final RemoteOperateTaskService remoteOperateTaskService; + @Operation(summary = "故障管理查询") @PostMapping("/query") public Result> queryList(@RequestBody FaultQuery query){ @@ -41,4 +46,12 @@ public class FaultController { FaultDiagnosisResult result = faultService.basicInfoDiagnosis(devId,remote); return Result.success(result); } + + @Operation(summary = "业务/终端状态") + @GetMapping("/basic_info/service_status") + public Result> serviceStatus(@RequestParam Long devId, @RequestParam String remote){ + Long taskId = remoteOperateTaskService.sendTaskByDevId(devId, SecurityUtils.getUsername(),remote); + Map map = faultService.getServiceStatusResult(taskId); + return Result.success(map); + } } diff --git a/src/main/java/com/bellmann/service/FaultService.java b/src/main/java/com/bellmann/service/FaultService.java index 122210e..7c624e5 100644 --- a/src/main/java/com/bellmann/service/FaultService.java +++ b/src/main/java/com/bellmann/service/FaultService.java @@ -6,6 +6,7 @@ import com.bellmann.model.vo.FaultDiagnosisResult; import com.bellmann.model.vo.FaultQueryVO; import java.util.List; +import java.util.Map; public interface FaultService { List queryList(FaultQuery query); @@ -13,4 +14,6 @@ public interface FaultService { FaultBasicInfoVO basicInfoQuery(FaultQuery query); FaultDiagnosisResult basicInfoDiagnosis(Long devId, String remote); + + Map getServiceStatusResult(Long taskId); } diff --git a/src/main/java/com/bellmann/service/impl/FaultServiceImpl.java b/src/main/java/com/bellmann/service/impl/FaultServiceImpl.java index 96247a6..bbef2e6 100644 --- a/src/main/java/com/bellmann/service/impl/FaultServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/FaultServiceImpl.java @@ -35,7 +35,9 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.concurrent.TimeUnit; @Service @@ -79,7 +81,7 @@ public class FaultServiceImpl implements FaultService { } } String devStatus = faultBasicInfoQuery.getDevStatus(); - if (devStatus!=null){ + if (devStatus != null) { faultBasicInfoQuery.setDevStatus(IBaseEnum.getLabelByValue(devStatus, DevStatusEnum.class)); } return faultBasicInfoQuery; @@ -87,15 +89,15 @@ public class FaultServiceImpl implements FaultService { @Override public FaultDiagnosisResult basicInfoDiagnosis(Long devId, String remote) { - if (devId==null || devId==0L || remote==null){ + if (devId == null || devId == 0L || remote == null) { throw new BusinessException(ResultCode.PARAM_IS_NULL); } String operateName = ""; String addEponOrLan = dataDictManager.AddEponOrLan(devId); boolean flag = CommonUtils.isNeedlanOrEpon(remote); - if (flag){ + if (flag) { operateName = IBaseEnum.getLabelByValue(remote, RemoteOperateMsgEnum.class) + addEponOrLan; - }else { + } else { operateName = IBaseEnum.getLabelByValue(remote, RemoteOperateMsgEnum.class); } OperationTask operationTask = new OperationTask(); @@ -110,23 +112,24 @@ public class FaultServiceImpl implements FaultService { new QueryWrapper() .eq("oper_task_id", taskId) ); - if (isSuccess){ + if (isSuccess) { List list = operateResultArgsMapper.selectList(new LambdaQueryWrapper() .eq(OperateResultArgs::getOperTaskId, taskId) ); result.setErrorDesc(operateResult2.getErrorDesc()); - if (!list.isEmpty()){ + if (!list.isEmpty()) { result.setEndTime(list.get(0).getRecTime()); result.setTestResult(list.get(0).getArgsValue()); } return result; - }else { + } else { result.setErrorDesc(ResultCode.THE_INTERFACE_CONNECTION_TIMED_OUT.getMsg()); result.setEndTime(operateResult2.getOperEndTime()); return result; } } + public long getDiagnosisResult(OperationTask operationTask) { DOperTask2DetailStruct detailStruct = new DOperTask2DetailStruct(); DOperTask2Struct operTaskStruct = new DOperTask2Struct(); @@ -188,4 +191,38 @@ public class FaultServiceImpl implements FaultService { return false; } + + @Override + public Map getServiceStatusResult(Long taskId) { + boolean isSuccess = taskIsSuccess(taskId); + OperateResult2 operateResult2 = operateResult2Mapper.selectOne( + new QueryWrapper() + .eq("oper_task_id", taskId) + ); + if (isSuccess) { + String resultState = operateResult2.getResultState(); + if (OperateTaskStateEnum.THE_EXECUTION_WAS_SUCCESSFUL.getValue().equals(resultState)) { + List list = operateResultArgsMapper.selectList(new LambdaQueryWrapper() + .eq(OperateResultArgs::getOperTaskId, taskId) + ); + Map map = new HashMap<>(); + map.put("state",resultState); + for (OperateResultArgs args : list) { + map.put(args.getArgsName(), args.getArgsValue()); + } + return map; + } else { + Map map = new HashMap<>(); + map.put("state",resultState); + map.put("result", operateResult2.getErrorDesc()); + return map; + } + } else { + Map map = new HashMap<>(); + map.put("state",OperateTaskStateEnum.TIME_OUT.getValue()); + map.put("result", ResultCode.THE_INTERFACE_CONNECTION_TIMED_OUT.getMsg()); + return map; + } + + } } diff --git a/src/main/java/com/bellmann/service/impl/RemoteOperateTaskServiceImpl.java b/src/main/java/com/bellmann/service/impl/RemoteOperateTaskServiceImpl.java index 78d9f8f..9a6b0f6 100644 --- a/src/main/java/com/bellmann/service/impl/RemoteOperateTaskServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/RemoteOperateTaskServiceImpl.java @@ -106,6 +106,7 @@ 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) {