diff --git a/src/main/java/com/bellmann/common/constant/SystemConstants.java b/src/main/java/com/bellmann/common/constant/SystemConstants.java index 726e3c6..ff12c1a 100644 --- a/src/main/java/com/bellmann/common/constant/SystemConstants.java +++ b/src/main/java/com/bellmann/common/constant/SystemConstants.java @@ -34,14 +34,18 @@ public interface SystemConstants { public static final String CONN_TYPE_PPPOE_BRIDGE = "桥接"; public static final String CONN_TYPE_IP_ROUTED = "路由"; public static final String CONN_TYPE = "LAST_rg_mode"; - + public static final String STATUS = "STATUS"; public static final long TASK_TIME_OUT_CONST = 60 * 1000; public static final long TASK_TIME_OUT_CONST1 = 4 * 1000; public static final long TASK_TIME_OUT_CONST3 = 6 * 1000; public static final long TASK_TIME_OUT_CONST2 = 2 * 1000; + + public static final long TASK_TIME_OUT_CONST4 = 1000; public static final String NULL_RESULT = "操作进行中..."; public static final String CONN_TYPE_REGEX = "connectionType = (\\w+)"; + + public static final String TREE_VALUE_REGEX = "parameter values :\\s*(.*)"; public static final String DOWNLOAD_INFO_REGEX = "DownloadInfo = (.*)"; public static final String SPEED_FAIL = "测速失败,请查看操作日志"; public static final String HOME = "/home/"; diff --git a/src/main/java/com/bellmann/common/model/OptionTree.java b/src/main/java/com/bellmann/common/model/OptionTree.java new file mode 100644 index 0000000..0d275b0 --- /dev/null +++ b/src/main/java/com/bellmann/common/model/OptionTree.java @@ -0,0 +1,45 @@ +package com.bellmann.common.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.util.List; + + +@Schema(description ="tree") +@Data +@NoArgsConstructor +@ToString +public class OptionTree { + + public OptionTree(T value, String label,boolean childNode) { + this.value = value; + this.label = label; + this.childNode = childNode; + } + + public OptionTree(T value, String label, List children,boolean childNode) { + this.value = value; + this.label = label; + this.children= children; + this.childNode = childNode; + } + + @Schema(description="参数值") + private T value; + + @Schema(description="树显示名称") + private String label; + @Schema(description="是否存在子节点") + private boolean childNode; + @Schema(description = "当前节点的路径") + private String nodePath; + + @Schema(description="子节点") + @JsonInclude(value = JsonInclude.Include.NON_EMPTY) + private List children; + +} \ No newline at end of file diff --git a/src/main/java/com/bellmann/common/result/ResultCode.java b/src/main/java/com/bellmann/common/result/ResultCode.java index 19fb3b0..f59241a 100644 --- a/src/main/java/com/bellmann/common/result/ResultCode.java +++ b/src/main/java/com/bellmann/common/result/ResultCode.java @@ -125,7 +125,9 @@ public enum ResultCode implements IResultCode, Serializable { TASK_NOT_EXE("F0034", "任务未执行"), UPDATE_ACCOUNT_PWD_ERROR("F0035","更新设备维护密码失败"), PLEASE_SELECT_A_CUSTOMER_TYPE("F0036","请选择客户类型!"), - NUll_ERROR("F0037", "未查询到相关数据"); + NUll_ERROR("F0037", "未查询到相关数据"), + TASK_EXE_FAIL("F0038", "任务执行失败"), + THE_DEVICE_IS_NOT_ONLINE("F0039","设备不在线"); @Override public String getCode() { diff --git a/src/main/java/com/bellmann/controller/DeviceStaticController.java b/src/main/java/com/bellmann/controller/DeviceStaticController.java index a435417..da83ce1 100644 --- a/src/main/java/com/bellmann/controller/DeviceStaticController.java +++ b/src/main/java/com/bellmann/controller/DeviceStaticController.java @@ -5,6 +5,7 @@ import com.bellmann.common.constant.SystemConstants; import com.bellmann.common.enums.OperateTaskStateEnum; import com.bellmann.common.enums.RemoteOperateMsgEnum; import com.bellmann.common.exception.BusinessException; +import com.bellmann.common.model.OptionTree; import com.bellmann.common.result.PageResult; import com.bellmann.common.result.Result; import com.bellmann.common.result.ResultCode; @@ -24,6 +25,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -134,7 +136,6 @@ public class DeviceStaticController { @PreventDuplicateSubmit public Result checkDevOnline(@PathVariable Long devId) { Long count = remoteOperateTaskService.sendTaskByDevId(devId, SecurityUtils.getUsername(), RemoteOperateMsgEnum.TOUCH_DEVICE.getValue()); - log.info("{}任务执行中: {}", RemoteOperateMsgEnum.TOUCH_DEVICE.getLabel(), count); try { TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST1); RemoteOperateResult result = remoteOperateTaskService.findDevInfoArgsByDevIdIsTimeOut(devId, RemoteOperateMsgEnum.TOUCH_DEVICE.getValue()); @@ -148,82 +149,62 @@ public class DeviceStaticController { @Operation(summary = "远程操作-获取设备链路信息") @PreventDuplicateSubmit public Result> remoteDeviceLinkInfo(@PathVariable Long devId) { - Long count = remoteOperateTaskService.sendTaskByDevId(devId, SecurityUtils.getUsername(), RemoteOperateMsgEnum.BASIC_PARAMETER.getValue()); - log.info("{}任务执行中: {}", RemoteOperateMsgEnum.BASIC_PARAMETER.getLabel(), count); - try { - TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST1); + Long taskId = remoteOperateTaskService.sendTaskByDevId(devId, SecurityUtils.getUsername(), RemoteOperateMsgEnum.BASIC_PARAMETER.getValue()); + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + if (isSuccess){ List result = operateResultArgsService.getDeviceLinkInfo(devId); return Result.success(result); - } catch (InterruptedException e) { - throw new BusinessException(ResultCode.LINK_INFO_ERROR); } + return Result.success(); } @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); + Long taskId = deviceStaticService.compareParameter(devId,serviceName,serviceId,serviceVerName); + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + if (isSuccess) { List list = operateResultArgsService.getServiceInfo(devId, serviceName); return Result.success(list); - } catch (InterruptedException e) { - throw new BusinessException(ResultCode.LINK_INFO_ERROR); } + return Result.success(new ArrayList<>()); } @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.FTTR_CONFIG.getLabel(), count); - try { - TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST1); + Long taskId = remoteOperateTaskService.sendTaskByDevId(devId, SecurityUtils.getUsername(), RemoteOperateMsgEnum.FTTR_CONFIG.getValue()); + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + if (isSuccess) { List result = operateResultArgsService.getFTTRPrimaryGateway(devId); return Result.success(result); - } catch (InterruptedException e) { - throw new BusinessException(ResultCode.LINK_INFO_ERROR); } + return Result.success(new ArrayList<>()); } @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.FTTR_STATS.getLabel(), count); - try { - TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST1); - return Result.success(); - } catch (InterruptedException e) { - throw new BusinessException(ResultCode.LINK_INFO_ERROR); - } + Long taskId = remoteOperateTaskService.sendTaskByDevId(devId, SecurityUtils.getUsername(), RemoteOperateMsgEnum.FTTR_STATS.getValue()); + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + return Result.judge(isSuccess); } @PostMapping("/remote/ip-ping") @Operation(summary = "远程操作-设备Ping测试") @PreventDuplicateSubmit public Result remoteIpPing(@RequestBody @Valid PingForm form) { Long taskId = deviceStaticService.remoteIpPing(form); - log.info("{}任务执行中: {}", RemoteOperateMsgEnum.IP_PING.getLabel(), taskId); - try { - TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST1); - return Result.success(); - } catch (InterruptedException e) { - throw new BusinessException(ResultCode.LINK_INFO_ERROR); - } + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + return Result.judge(isSuccess); } @GetMapping("/remote/upload-log/{devId}") @Operation(summary = "远程操作-获取设备日志文件") @PreventDuplicateSubmit public Result remoteUploadLog(@PathVariable Long devId) { Long taskId = remoteOperateTaskService.sendTaskByDevId(devId,SecurityUtils.getUsername(),RemoteOperateMsgEnum.UPLOAD_LOG.getValue()); - log.info("{}任务执行中: {}", RemoteOperateMsgEnum.UPLOAD_LOG.getLabel(), taskId); - try { - TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST1); - return Result.success(); - } catch (InterruptedException e) { - throw new BusinessException(ResultCode.LINK_INFO_ERROR); - } + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + return Result.judge(isSuccess); } @GetMapping("/remote/upload-config/{devId}") @@ -231,39 +212,24 @@ public class DeviceStaticController { @PreventDuplicateSubmit public Result remoteUploadConfig(@PathVariable Long devId) { Long taskId = remoteOperateTaskService.sendTaskByDevId(devId,SecurityUtils.getUsername(),RemoteOperateMsgEnum.UPLOAD_CONFIG.getValue()); - log.info("{}任务执行中: {}", RemoteOperateMsgEnum.UPLOAD_CONFIG.getLabel(), taskId); - try { - TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST1); - return Result.success(); - } catch (InterruptedException e) { - throw new BusinessException(ResultCode.LINK_INFO_ERROR); - } + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + return Result.judge(isSuccess); } @GetMapping("/remote/factory-reset/{devId}") @Operation(summary = "远程操作-恢复设备出厂设置") @PreventDuplicateSubmit public Result remoteFactoryReset(@PathVariable Long devId) { Long taskId = remoteOperateTaskService.sendTaskByDevId(devId,SecurityUtils.getUsername(),RemoteOperateMsgEnum.FACTORY_RESET.getValue()); - log.info("{}任务执行中: {}", RemoteOperateMsgEnum.FACTORY_RESET.getLabel(), taskId); - try { - TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST1); - return Result.success(); - } catch (InterruptedException e) { - throw new BusinessException(ResultCode.LINK_INFO_ERROR); - } + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + return Result.judge(isSuccess); } @GetMapping("/remote/reboot/{devId}") @Operation(summary = "远程操作-远程重启") @PreventDuplicateSubmit public Result remoteReboot(@PathVariable Long devId) { Long taskId = remoteOperateTaskService.sendTaskByDevId(devId,SecurityUtils.getUsername(),RemoteOperateMsgEnum.REBOOT.getValue()); - log.info("{}任务执行中: {}", RemoteOperateMsgEnum.REBOOT.getLabel(), taskId); - try { - TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST1); - return Result.success(); - } catch (InterruptedException e) { - throw new BusinessException(ResultCode.LINK_INFO_ERROR); - } + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + return Result.judge(isSuccess); } @PostMapping("/remote/device-monitor") @@ -271,13 +237,8 @@ public class DeviceStaticController { @PreventDuplicateSubmit public Result remoteDeviceMonitor(@RequestBody @Valid DeviceMonitorForm form) { Long taskId = deviceStaticService.remoteDeviceMonitor(form); - log.info("{}任务执行中: {}", RemoteOperateMsgEnum.IP_PING.getLabel(), taskId); - try { - TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST1); - return Result.success(); - } catch (InterruptedException e) { - throw new BusinessException(ResultCode.LINK_INFO_ERROR); - } + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + return Result.judge(isSuccess); } @GetMapping("/remote/check-conn-type/{devId}") @Operation(summary = "远程操作-测速-上网方式") @@ -285,13 +246,12 @@ public class DeviceStaticController { public Result remoteCheckConnType(@PathVariable Long devId) { Long taskId = deviceStaticService.remoteCheckConnType(devId); log.info("{}任务执行中: {}", RemoteOperateMsgEnum.REBOOT.getLabel(), taskId); - try { - TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST2); + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + if (isSuccess) { String connType = deviceStaticService.remoteConnType(taskId, devId); return Result.success(connType); - } catch (InterruptedException e) { - throw new BusinessException(ResultCode.LINK_INFO_ERROR); } + return Result.failed(); } @GetMapping("/remote/tr143-speed/{devId}") @Operation(summary = "远程操作-测速") @@ -318,37 +278,35 @@ public class DeviceStaticController { @PreventDuplicateSubmit public Result remoteSoftVerUpgrade(@PathVariable Long devId,@PathVariable Long fileId){ Long taskId = remoteOperateTaskService.sendTaskByDevIdByFileId(devId, SecurityUtils.getUsername(), fileId, RemoteOperateMsgEnum.DOWNLOAD_SOFT_VER_FILE.getValue()); - log.info("{}任务执行中: {}", RemoteOperateMsgEnum.DOWNLOAD_SOFT_VER_FILE.getLabel(), taskId); - return Result.success(); + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + + return Result.judge(isSuccess); } @GetMapping("/remote/register/{devId}") @Operation(summary = "远程操作-开启终端注册页面") @PreventDuplicateSubmit public Result remoteOpenRegister(@PathVariable Long devId){ Long taskId = deviceStaticService.remoteOpenRegister(devId); - log.info("{}任务执行中: {}", RemoteOperateMsgEnum.X_REGISTER.getLabel(), taskId); - return Result.success(); + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + + return Result.judge(isSuccess); } @GetMapping("/remote/account-password/{devId}") @Operation(summary = "远程操作-设备设置电信帐户密码") @PreventDuplicateSubmit public Result setAccountPassword(@PathVariable Long devId){ Long taskId = deviceStaticService.setAccountPassword(devId); - log.info("{}任务执行中: {}", RemoteOperateMsgEnum.SET_TELEPHONE_COM_ACCOUNT_PASSWORD.getLabel(), taskId); - try { - TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST2); - } catch (InterruptedException e) { - throw new BusinessException(ResultCode.LINK_INFO_ERROR); - } - return Result.success(); + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + return Result.judge(isSuccess); } @GetMapping("/remote/vendor-profile/{devId}/{fileId}") @Operation(summary = "远程操作-厂商配置文件下发") @PreventDuplicateSubmit public Result remoteVendorProfile(@PathVariable Long devId,@PathVariable Long fileId){ Long taskId = remoteOperateTaskService.sendTaskByDevIdByFileId(devId,SecurityUtils.getUsername(),fileId,RemoteOperateMsgEnum.DOWNLOAD_CONFIG.getValue()); - log.info("{}任务执行中: {}", RemoteOperateMsgEnum.DOWNLOAD_CONFIG.getLabel(), taskId); - return Result.success(); + boolean isSuccess = deviceStaticService.taskIsSuccess(taskId); + + return Result.judge(isSuccess); } @GetMapping("/remote/reset-service/{devId}/{serviceName}") @Operation(summary = "远程操作-业务重置") @@ -363,4 +321,54 @@ public class DeviceStaticController { return Result.success(); } + + @GetMapping("/remote/tree/infos/{devId}") + @Operation(summary = "远程操作-当前节点的所有子节点") + @PreventDuplicateSubmit() + public Result>> getNodeChildNodes(@PathVariable Long devId,@RequestParam String nodePath){ + List> nodeChildNodes = deviceStaticService.getNodeChildNodes(devId, nodePath); + return Result.success(nodeChildNodes); + } + @GetMapping("/remote/tree/param-value/{devId}") + @Operation(summary = "远程操作-获取参数") + @PreventDuplicateSubmit() + public Result> getParameterValues(@PathVariable Long devId,@RequestParam String nodePath){ + OptionTree node = deviceStaticService.getParameterValues(devId, nodePath); + return Result.success(node); + } + @PutMapping("/remote/tree/set-param-value/{devId}") + @Operation(summary = "远程操作-设置参数") + @PreventDuplicateSubmit() + public Result setParameterValues(@PathVariable Long devId,@RequestParam String nodePath,@RequestParam String argValue){ + boolean result = deviceStaticService.setParameterValues(devId, nodePath,argValue); + return Result.judge(result); + } + @GetMapping("/remote/tree/param-attribute/{devId}") + @Operation(summary = "远程操作-获取参数属性") + @PreventDuplicateSubmit() + public Result> getParameterAttributes(@PathVariable Long devId,@RequestParam String nodePath){ + OptionTree node = deviceStaticService.getParameterAttributes(devId, nodePath); + return Result.success(node); + } + @PutMapping("/remote/tree/set-param-attribute/{devId}") + @Operation(summary = "远程操作-设置参数属性") + @PreventDuplicateSubmit() + public Result setParameterAttributes(@PathVariable Long devId,@RequestParam String nodePath,@RequestParam String argValue){ + deviceStaticService.setParameterAttributes(devId, nodePath,argValue); + return Result.success(); + } + @GetMapping("/remote/tree/add-instance-node/{devId}") + @Operation(summary = "远程操作-增加实例") + @PreventDuplicateSubmit() + public Result> remoteAddInstanceNode(@PathVariable Long devId,@RequestParam String nodePath){ + OptionTree node = deviceStaticService.addInstanceNode(devId, nodePath); + return Result.success(node); + } + @GetMapping("/remote/tree/delete-instance-node/{devId}") + @Operation(summary = "远程操作-删除实例") + @PreventDuplicateSubmit() + public Result remoteDeleteInstanceNode(@PathVariable Long devId,@RequestParam String nodePath){ + boolean result = deviceStaticService.deleteInstanceNode(devId, nodePath); + return Result.judge(result); + } } diff --git a/src/main/java/com/bellmann/service/DeviceStaticService.java b/src/main/java/com/bellmann/service/DeviceStaticService.java index 2098fc4..8d82a8a 100644 --- a/src/main/java/com/bellmann/service/DeviceStaticService.java +++ b/src/main/java/com/bellmann/service/DeviceStaticService.java @@ -1,6 +1,7 @@ package com.bellmann.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bellmann.common.model.OptionTree; import com.bellmann.common.result.PageResult; import com.bellmann.common.result.Result; import com.bellmann.model.form.*; @@ -41,7 +42,7 @@ public interface DeviceStaticService { Result deleteProfile(Long devId, Long fileId); - int compareParameter(Long devId, String serviceName, Long serviceId, String serviceVerName); + Long compareParameter(Long devId, String serviceName, Long serviceId, String serviceVerName); Long remoteIpPing(PingForm form); @@ -66,4 +67,19 @@ public interface DeviceStaticService { void remoteResetService(Long devId, String serviceName); + + List> getNodeChildNodes(Long devId, String nodePath); + + OptionTree getParameterValues(Long devId, String nodePath); + + boolean setParameterValues(Long devId, String nodePath, String argValue); + + OptionTree getParameterAttributes(Long devId, String nodePath); + + void setParameterAttributes(Long devId, String nodePath, String argValue); + + OptionTree addInstanceNode(Long devId, String nodePath); + + boolean deleteInstanceNode(Long devId, String nodePath); + boolean taskIsSuccess(Long taskId); } diff --git a/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java b/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java index 0f630be..f8d80b1 100644 --- a/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java @@ -12,6 +12,7 @@ import com.bellmann.common.constant.StringUtilsConstants; import com.bellmann.common.constant.SystemConstants; import com.bellmann.common.enums.*; import com.bellmann.common.exception.BusinessException; +import com.bellmann.common.model.OptionTree; import com.bellmann.common.result.PageResult; import com.bellmann.common.result.Result; import com.bellmann.common.result.ResultCode; @@ -105,13 +106,15 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { private final DeviceOrderFlowMapper deviceOrderFlowMapper; + private final OperateResultArgsMapper operateResultArgsMapper; + @Override public Page resourcePage(SelectQuery query) { int pageNum = query.getPageNum(); int pageSize = query.getPageSize(); - Page page = new Page<>(pageNum,pageSize); - Page boPage = deviceStaticMapper.resourcePage(page,query.getSelectName(),query.getSelectValue()); + Page page = new Page<>(pageNum, pageSize); + Page boPage = deviceStaticMapper.resourcePage(page, query.getSelectName(), query.getSelectValue()); return deviceStaticConverter.resourceBOPage2VOPage(boPage); } @@ -122,14 +125,14 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { EquipmentTypeVO typeVO = deviceTypeManager.findEquipmentType(detailVO.getTypeAndVerId()); EquipmentCustomerVO customerVO = customerManager.equipmentCustomer(detailVO.getCustomId()); - if (customerVO==null){ + if (customerVO == null) { customerVO = new EquipmentCustomerVO(); } detailVO.setDevOnline(IBaseEnum.getLabelByValue(detailVO.getDevOnline(), DevOnlineEnum.class)); detailVO.setDevStatus(IBaseEnum.getLabelByValue(detailVO.getDevStatus(), DevStatusEnum.class)); String devRemark4 = detailVO.getDevRemark4(); detailVO.setDevRemark4(StringUtilsConstants.STRING_BLANK); - if(devRemark4!=null) { + if (devRemark4 != null) { boolean contains = devRemark4.contains("^"); if (contains) { detailVO.setLoginId(devRemark4.split("\\^")[0]); @@ -137,9 +140,9 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { detailVO.setLoginId(detailVO.getDevRemark4()); } } - if(detailVO.getDevIp()!=null&& !detailVO.getDevIp().isEmpty()){ + if (detailVO.getDevIp() != null && !detailVO.getDevIp().isEmpty()) { detailVO.setPlaceName(ipAddressDomainManager.getIpAddressDomain(detailVO.getDevIp())); - }else { + } else { detailVO.setPlaceName("/"); } detailVO.setRegionAreaName( @@ -149,21 +152,21 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { ); return MapUtil .builder() - .put("detail",detailVO) - .put("type",typeVO) - .put("customer",customerVO) + .put("detail", detailVO) + .put("type", typeVO) + .put("customer", customerVO) .build(); } @Override public Result editResourceEquipment(EquipmentDetailForm form) { - deviceStaticMapper.update(null,new LambdaUpdateWrapper() - .eq(DeviceStatic::getDevId,form.getDevId()) - .set(DeviceStatic::getDevAdNo,form.getDevAdNo()) - .set(DeviceStatic::getDevMac,form.getDevMac()) - .set(DeviceStatic::getDevPppoe,form.getDevPppoe()) - .set(DeviceStatic::getDevSno,form.getDevSno()) + deviceStaticMapper.update(null, new LambdaUpdateWrapper() + .eq(DeviceStatic::getDevId, form.getDevId()) + .set(DeviceStatic::getDevAdNo, form.getDevAdNo()) + .set(DeviceStatic::getDevMac, form.getDevMac()) + .set(DeviceStatic::getDevPppoe, form.getDevPppoe()) + .set(DeviceStatic::getDevSno, form.getDevSno()) ); return Result.success(); @@ -177,10 +180,10 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { ); DeviceType deviceType = deviceTypeManager.findDeviceTypeById(form.getDevTypeId()); - if (deviceTypeVer==null || deviceType==null){ + if (deviceTypeVer == null || deviceType == null) { return Result.failed(ResultCode.DATA_NOT_FOUND); } - DeviceStatic deviceStatic = deviceStaticConverter.resourceForm2VOEntity(form); + DeviceStatic deviceStatic = deviceStaticConverter.resourceForm2VOEntity(form); deviceStatic.setTypeAndVerId(deviceTypeVer.getTypeAndVerId()); deviceStatic.setDevCreateTime(LocalDateTime.now()); deviceStatic.setDevInformFlag(SystemConstants.DEV_INFORM_FLAG); @@ -229,35 +232,35 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { DeviceStatic deviceStatic = deviceStaticMapper.selectOne(new LambdaQueryWrapper() .eq(DeviceStatic::getDevId, devId) ); - if(deviceStatic.getCustomId()!=null){ + if (deviceStatic.getCustomId() != null) { return Result.failed(ResultCode.DEV_ALREADY_CUSTOM); } Customer customer = customerManager.findByCustomId(customId); - if (customer==null){ + if (customer == null) { return Result.failed(ResultCode.CUSTOM_NOT_FIND); } // Long count = deviceStaticMapper.countJoinDevVerDomain(devId,customer.getRegionAreaId()); // if(count==null || count!=1){ // return Result.failed(ResultCode.DEV_DOMAIN_MAP_NOT_FOUNT); // } - deviceStaticMapper.update(null,new LambdaUpdateWrapper() - .eq(DeviceStatic::getDevId,devId) - .set(DeviceStatic::getCustomId,customId) - .set(customer.getCorpAreaId()!=null,DeviceStatic::getCorpAreaId,customer.getCorpAreaId()) - .set(customer.getRegionAreaId()!=null,DeviceStatic::getRegionAreaId,customer.getRegionAreaId()) + deviceStaticMapper.update(null, new LambdaUpdateWrapper() + .eq(DeviceStatic::getDevId, devId) + .set(DeviceStatic::getCustomId, customId) + .set(customer.getCorpAreaId() != null, DeviceStatic::getCorpAreaId, customer.getCorpAreaId()) + .set(customer.getRegionAreaId() != null, DeviceStatic::getRegionAreaId, customer.getRegionAreaId()) ); return Result.success(); } @Override public Result deleteDev(List ids) { - if(ids.isEmpty()){ + if (ids.isEmpty()) { return Result.failed(ResultCode.IDS_IS_NULL); } - for (Long devId: ids){ - deviceStaticMapper.update(null,new LambdaUpdateWrapper() - .eq(DeviceStatic::getDevId,devId) - .set(DeviceStatic::getDevStatus,DevStatusEnum.SIGN_OUT.getValue()) + for (Long devId : ids) { + deviceStaticMapper.update(null, new LambdaUpdateWrapper() + .eq(DeviceStatic::getDevId, devId) + .set(DeviceStatic::getDevStatus, DevStatusEnum.SIGN_OUT.getValue()) ); } @@ -266,10 +269,10 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { @Override public Result unbindingCustom(Long devId) { - deviceStaticMapper.update(null,new LambdaUpdateWrapper() - .eq(DeviceStatic::getDevId,devId) - .set(DeviceStatic::getDevModifyTime,LocalDateTime.now()) - .set(DeviceStatic::getCustomId,null) + deviceStaticMapper.update(null, new LambdaUpdateWrapper() + .eq(DeviceStatic::getDevId, devId) + .set(DeviceStatic::getDevModifyTime, LocalDateTime.now()) + .set(DeviceStatic::getCustomId, null) ); return Result.success(); } @@ -279,10 +282,10 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { int pageNum = query.getPageNum(); int pageSize = query.getPageSize(); String devOuiSno = query.getDevOuiSno(); - if(!devOuiSno.contains("-") || devOuiSno.split("-").length != 2){ + if (!devOuiSno.contains("-") || devOuiSno.split("-").length != 2) { throw new BusinessException(ResultCode.DEV_OUI_SNO_FORMAT_ERROR); } - Page page = new Page<>(pageNum,pageSize); + Page page = new Page<>(pageNum, pageSize); String[] split = devOuiSno.split("-"); String devOui = split[0]; String devSno = split[1]; @@ -293,18 +296,18 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { List list = snoOuiPage.getRecords().stream().map(deviceStatic -> deviceStatic.getDevRemark3() + "-" + deviceStatic.getDevSno()).distinct().collect(Collectors.toList()); - Page stringPage = new Page<>(pageNum,pageSize); + Page stringPage = new Page<>(pageNum, pageSize); stringPage.setRecords(list); stringPage.setTotal(list.size()); - return PageResult.success(stringPage); + return PageResult.success(stringPage); } @Override public Page remotePage(SelectQuery query) { int pageNum = query.getPageNum(); int pageSize = query.getPageSize(); - Page page = new Page<>(pageNum,pageSize); - Page boPage = deviceStaticMapper.remotePage(page,query.getSelectName(),query.getSelectValue()); + Page page = new Page<>(pageNum, pageSize); + Page boPage = deviceStaticMapper.remotePage(page, query.getSelectName(), query.getSelectValue()); return deviceStaticConverter.remoteBOPage2VOPage(boPage); } @@ -313,19 +316,19 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { RemoteDevInfoVO remoteDevInfoVO = new RemoteDevInfoVO(); DeviceStatic deviceStatic = deviceStaticMapper.selectOne( new QueryWrapper() - .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) + .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); - if (deviceStatic.getCustomId()!=null){ + BeanUtils.copyProperties(deviceStatic, remoteDevInfoVO); + if (deviceStatic.getCustomId() != null) { Customer customer = customerManager.findByCustomId(deviceStatic.getCustomId()); - if (customer!=null) { + if (customer != null) { remoteDevInfoVO.setCustomType(IBaseEnum.getLabelByValue(customer.getCustomType(), CustomTypeEnum.class)); } } - if (deviceStatic.getTypeAndVerId()!=null) { + if (deviceStatic.getTypeAndVerId() != null) { EquipmentTypeVO devType = deviceTypeManager.findEquipmentType(deviceStatic.getTypeAndVerId()); - if (devType!=null) { + if (devType != null) { remoteDevInfoVO.setDevAccessType(devType.getDevAccessType()); remoteDevInfoVO.setDevTypeNameDetail(devType.getEquipmentTypeVer()); remoteDevInfoVO.setDevTypeName(devType.getDevTypeName()); @@ -338,22 +341,22 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { DeviceDynamic deviceDynamic = deviceDynamicMapper.selectOne(new LambdaQueryWrapper() .eq(DeviceDynamic::getDevId, devId) ); - if (deviceDynamic!=null){ + if (deviceDynamic != null) { remoteDevInfoVO.setDevOnlineTime(deviceDynamic.getDevOnlineTime()); remoteDevInfoVO.setDevIp(deviceDynamic.getDevIp()); remoteDevInfoVO.setDevOnline(IBaseEnum.getLabelByValue(deviceDynamic.getDevOnline(), DevOnlineEnum.class)); } DeviceStaticDetail staticDetail = deviceStaticDetailMapper.selectOne(new QueryWrapper() - .select("user_sn_no","remark2") - .eq("dev_id",devId) + .select("user_sn_no", "remark2") + .eq("dev_id", devId) ); - if (staticDetail!=null){ + if (staticDetail != null) { remoteDevInfoVO.setUserSnNo(staticDetail.getUserSnNo()); String remark2 = staticDetail.getRemark2(); - remoteDevInfoVO.setUseState(remark2==null|| remark2.isEmpty() ?"未装":remark2); + remoteDevInfoVO.setUseState(remark2 == null || remark2.isEmpty() ? "未装" : remark2); } - remoteDevInfoVO.setDevStatus(IBaseEnum.getLabelByValue(deviceStatic.getDevStatus(),DevStatusEnum.class)); + remoteDevInfoVO.setDevStatus(IBaseEnum.getLabelByValue(deviceStatic.getDevStatus(), DevStatusEnum.class)); remoteDevInfoVO.setDomain((String) redisTemplate.opsForHash() .get(SecurityConstants.DOMAIN_PREFIX, deviceStatic.getRegionAreaId().toString())); @@ -363,49 +366,49 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { .eq(LibDeviceCode::getDevOui, deviceStatic.getDevRemark3()) .eq(LibDeviceCode::getDevSno, deviceStatic.getDevSno()) ); - remoteDevInfoVO.setBlacklist(count>0?"是":"否"); + remoteDevInfoVO.setBlacklist(count > 0 ? "是" : "否"); return Result.success(remoteDevInfoVO); } @Override public Result unbindingLogicId(UnBindingForm form) { int res = 0; - if(form.getDevRemark4().contains("^")){ - res = upDeviceStaticGetDevId3(form); + if (form.getDevRemark4().contains("^")) { + res = upDeviceStaticGetDevId3(form); } - if (res!=1){ + if (res != 1) { return Result.failed(ResultCode.LOGICID_ALREADY_UNBINDING_ORDER_ALREADY_EXIST); } return upDeviceStaticGetDevId2(form); } private Result upDeviceStaticGetDevId2(UnBindingForm form) { - deviceStaticMapper.update(null,new LambdaUpdateWrapper() - .eq(DeviceStatic::getDevId,form.getDevId()) - .set(DeviceStatic::getDevPppoe,null) - .set(DeviceStatic::getDevAdNo,null) - .set(DeviceStatic::getCustomId,null) - .set(DeviceStatic::getDevRemark4,null) - .set(DeviceStatic::getDevStatus,DevStatusEnum.NORMAL.getValue()) + deviceStaticMapper.update(null, new LambdaUpdateWrapper() + .eq(DeviceStatic::getDevId, form.getDevId()) + .set(DeviceStatic::getDevPppoe, null) + .set(DeviceStatic::getDevAdNo, null) + .set(DeviceStatic::getCustomId, null) + .set(DeviceStatic::getDevRemark4, null) + .set(DeviceStatic::getDevStatus, DevStatusEnum.NORMAL.getValue()) ); - deviceStaticDetailMapper.update(null,new LambdaUpdateWrapper() - .set(DeviceStaticDetail::getUserSnNo,null) - .set(DeviceStaticDetail::getBandAccess,null) - .set(DeviceStaticDetail::getIptvAccess,null) - .eq(DeviceStaticDetail::getDevId,form.getDevId()) + deviceStaticDetailMapper.update(null, new LambdaUpdateWrapper() + .set(DeviceStaticDetail::getUserSnNo, null) + .set(DeviceStaticDetail::getBandAccess, null) + .set(DeviceStaticDetail::getIptvAccess, null) + .eq(DeviceStaticDetail::getDevId, form.getDevId()) ); String devSno = form.getDevSno(); String devVendorOui = form.getDevVendorOui(); - if (!devVendorOui.isEmpty()){ - devSno = devVendorOui+"-"+devSno; + if (!devVendorOui.isEmpty()) { + devSno = devVendorOui + "-" + devSno; } - orderInfoMapper.update(null,new LambdaUpdateWrapper() - .eq(OrderInfo::getDevSnoOui,devSno) - .eq(OrderInfo::getUniqueUserId,form.getDevRemark4()) - .set(OrderInfo::getDevSnoOui,null) + orderInfoMapper.update(null, new LambdaUpdateWrapper() + .eq(OrderInfo::getDevSnoOui, devSno) + .eq(OrderInfo::getUniqueUserId, form.getDevRemark4()) + .set(OrderInfo::getDevSnoOui, null) ); deviceServiceMapMapper.delete(new LambdaQueryWrapper() - .eq(DeviceServiceMap::getDevId,form.getDevId()) + .eq(DeviceServiceMap::getDevId, form.getDevId()) ); return Result.success(); } @@ -436,29 +439,29 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { InventoryManager.unbundlingReplaceDevice(form.getDevRemark4().substring(0, form.getDevRemark4().indexOf("^")), form.getDevRemark4()); return 1; } - }catch (Exception e){ - throw new BusinessException(ResultCode.UPDATE_DEVICE_FAILED); + } catch (Exception e) { + throw new BusinessException(ResultCode.UPDATE_DEVICE_FAILED); } return 2; } @Override public Result deleteProfile(Long devId, Long fileId) { - if (devId==null||fileId==null){ + if (devId == null || fileId == null) { return Result.failed(ResultCode.FILE_DELETE_FAIL); } FileRecord fileRecord = fileRecordManager.findFileRecordById(fileId); - if (fileRecord==null){ + if (fileRecord == null) { return Result.failed(ResultCode.FILE_NOT_EXIST); } boolean flag = fileOptionService.removeFile(fileRecord.getFileUrl(), fileRecord.getFileName()); - if (flag){ + if (flag) { int i = fileRecordManager.deleteByFileId(fileId); int row = fileDevMapMapper.delete(new LambdaQueryWrapper() .eq(FileDevMap::getDevId, devId) .eq(FileDevMap::getFileId, fileId) ); - if (i==1&&row==1){ + if (i == 1 && row == 1) { return Result.success(); } } @@ -466,51 +469,51 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { } @Override - public int compareParameter(Long devId, String serviceName, Long serviceId, String serviceVerName) { + public Long 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()){ + if (list.isEmpty()) { throw new BusinessException(ResultCode.DATA_NOT_FOUND); } List args = new ArrayList<>(); - for (DeviceServiceArgs arg: list){ - if (!arg.getArgsTr069Name().equals("SERVICE_PRIORITY")){ + 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.devId = devId; + operateTaskStruct.operName = serviceName; operateTaskStruct.operTaskCreateTime = (new Date()).getTime(); - operateTaskStruct.operTaskDesc = serviceName+"业务诊断"; + operateTaskStruct.operTaskDesc = serviceName + "业务诊断"; operateTaskStruct.operTaskId = Utils.LONG_NULL; - operateTaskStruct.userName = SecurityUtils.getUsername(); + operateTaskStruct.userName = SecurityUtils.getUsername(); detailStruct.operTask = operateTaskStruct; - DOperTaskArgsStruct[] argsStruct = new DOperTaskArgsStruct[args.size()+1]; + DOperTaskArgsStruct[] argsStruct = new DOperTaskArgsStruct[args.size() + 1]; argsStruct[0] = new DOperTaskArgsStruct(); argsStruct[0].argsName = "SERVICE_VERSION"; - argsStruct[0].argsValue = serviceVerName; + argsStruct[0].argsValue = serviceVerName; argsStruct[0].operTaskId = Utils.LONG_NULL; - log.info("service-version: {}",serviceVerName); + log.info("service-version: {}", serviceVerName); DeviceServiceArgs deviceServiceArgs = new DeviceServiceArgs(); - for (int i=0;i() + .eq(OperateResultArgs::getOperTaskId, taskId)); String connectionType = ""; - if (matcher.find()){ - connectionType = matcher.group(1).trim(); - if ("IP_Routed".equals(connectionType)){ - connType = SystemConstants.CONN_TYPE_IP_ROUTED; - }else if ("PPPoE_Bridged".equals(connectionType)){ - connType = SystemConstants.CONN_TYPE_PPPOE_BRIDGE; - } - }else { - connType = "v不在线"; + if (args != null) { + connectionType = args.getArgsValue(); + if ("IP_Routed".equals(connectionType)) { + connType = SystemConstants.CONN_TYPE_IP_ROUTED; + } else if ("PPPoE_Bridged".equals(connectionType)) { + connType = SystemConstants.CONN_TYPE_PPPOE_BRIDGE; + } } - - }else { - connType = "v不在线"; } - found = false; + found = false; } - if(found) { + if (found) { try { - TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST2); + TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST4); } catch (InterruptedException e) { Thread.currentThread().interrupt(); @@ -712,7 +708,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { DOperTask2DetailStructHolder detailStructHolder = new DOperTask2DetailStructHolder(detailStruct); int result = OAMManager.sendDeviceOper2Task(detailStructHolder); - if (result!=0){ + if (result != 0) { throw new BusinessException(ResultCode.OAM_INTERFACE_ERROR); } return detailStructHolder.value.operTask.operTaskId; @@ -722,7 +718,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { public RemoteOperateResult checkTR143Speed(Long taskId, Long devId) { boolean found = true; int attempt = 0; - RemoteOperateResult result= new RemoteOperateResult(); + RemoteOperateResult result = new RemoteOperateResult(); while (attempt < 5 && found) { OperateResult2 operateResult2 = operateResult2Mapper.selectOne( new QueryWrapper() @@ -738,16 +734,16 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { return result; } if (!OperateTaskStateEnum.ONGOING.getValue().equals(state)) { - if (OperateTaskStateEnum.THE_EXECUTION_WAS_SUCCESSFUL.getValue().equals(state)){ + if (OperateTaskStateEnum.THE_EXECUTION_WAS_SUCCESSFUL.getValue().equals(state)) { result.setResultState(OperateTaskStateEnum.THE_EXECUTION_WAS_SUCCESSFUL.getValue()); result.setResultCode(OperateTaskStateEnum.THE_EXECUTION_WAS_SUCCESSFUL.getLabel()); - }else { + } else { result.setResultState(state); result.setResultCode(SystemConstants.SPEED_FAIL); } found = false; } - if(found) { + if (found) { try { TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST2); } catch (InterruptedException e) { @@ -764,7 +760,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { public RemoteOperateResult checkTr143SpeedResult(Long devId, Long taskId) { boolean found = true; int attempt = 0; - RemoteOperateResult result= new RemoteOperateResult(); + RemoteOperateResult result = new RemoteOperateResult(); while (attempt < 5 && found) { OperateResult2 operateResult2 = operateResult2Mapper.selectOne( new QueryWrapper() @@ -780,12 +776,12 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { return result; } if (!OperateTaskStateEnum.ONGOING.getValue().equals(state)) { - if (OperateTaskStateEnum.THE_EXECUTION_WAS_SUCCESSFUL.getValue().equals(state)){ - String desc = deviceLogMapper.getTaskResultByTaskId(taskId,RemoteOperateMsgEnum.DOWNLOAD_DIAGNOSTICS_QUERY.getValue()); + if (OperateTaskStateEnum.THE_EXECUTION_WAS_SUCCESSFUL.getValue().equals(state)) { + String desc = deviceLogMapper.getTaskResultByTaskId(taskId, RemoteOperateMsgEnum.DOWNLOAD_DIAGNOSTICS_QUERY.getValue()); String regex = SystemConstants.DOWNLOAD_INFO_REGEX; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(desc); - if (matcher.find()){ + if (matcher.find()) { String input = matcher.group(1).trim(); DownloadInfo downloadInfo = parseFromString(input); String state1 = downloadInfo.getState(); @@ -793,23 +789,23 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { Long eomTime = downloadInfo.getEomTime(); Long bomTime = downloadInfo.getBomTime(); Long totalBytesReceived = downloadInfo.getTotalBytesReceived(); - long speedResult=8*1000*totalBytesReceived/(eomTime-bomTime)/1024/1024; + long speedResult = 8 * 1000 * totalBytesReceived / (eomTime - bomTime) / 1024 / 1024; BigDecimal value = new BigDecimal(speedResult); String speed = value.divide(new BigDecimal(1), 3, RoundingMode.HALF_UP).toString(); result.setResultState(state); result.setResultCode(speed); - }else { + } else { result.setResultState("5"); result.setResultCode(SystemConstants.SPEED_FAIL); } } - }else { + } else { result.setResultState(state); result.setResultCode(SystemConstants.SPEED_FAIL); } found = false; } - if(found) { + if (found) { try { TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST2); } catch (InterruptedException e) { @@ -821,6 +817,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { return result; } + private static DownloadInfo parseFromString(String input) { DownloadInfo downloadInfo = new DownloadInfo(); Map properties = new HashMap<>(); @@ -845,6 +842,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { return downloadInfo; } + private static Long parseLong(String value) { if (value == null || "null".equals(value)) { return null; @@ -878,7 +876,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { DOperTask2DetailStructHolder detailStructHolder = new DOperTask2DetailStructHolder( detailStruct); int result = OAMManager.sendDeviceOper2Task(detailStructHolder); - if (result!=0){ + if (result != 0) { throw new BusinessException(ResultCode.OAM_INTERFACE_ERROR); } return detailStructHolder.value.operTask.operTaskId; @@ -886,38 +884,39 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { @Override public Long setAccountPassword(Long devId) { - DOperResultDetailStructHolder detailStructHolder = sendDeviceOper2TR069(devId, RemoteOperateMsgEnum.SET_TELEPHONE_COM_ACCOUNT_PASSWORD.getValue(),"",""); + DOperResultDetailStructHolder detailStructHolder = sendDeviceOper2TR069(devId, RemoteOperateMsgEnum.SET_TELEPHONE_COM_ACCOUNT_PASSWORD.getValue(), "", ""); DOperResult2Struct operResult2Struct = detailStructHolder.value.operResult; int result = operResult2Struct.resultState.value(); - if (result!=DOperResultState._OPER_RUN_SUCC){ + if (result != DOperResultState._OPER_RUN_SUCC) { throw new BusinessException(ResultCode.OAM_INTERFACE_ERROR); - }else { + } else { //根据一个设备的id来查找这个设备信息 - RDeviceDetailListHolder holder=new RDeviceDetailListHolder(); - result = InventoryManager.getDeviceByDevID(devId,holder); + RDeviceDetailListHolder holder = new RDeviceDetailListHolder(); + result = InventoryManager.getDeviceByDevID(devId, holder); if (result != 0) { throw new BusinessException(ResultCode.NOT_GET_DEVICE); } RDeviceStaticStruct deviceStaticStruct = holder.value[0].devStatic; DOperResultArgsStruct[] dOperResultArgsStruct = detailStructHolder.value.operResultArgsList; - if (dOperResultArgsStruct != null && dOperResultArgsStruct.length > 0){ - for(int i=0; i 0) { + for (int i = 0; i < detailStructHolder.value.operResultArgsList.length; i++) { + if ((dOperResultArgsStruct[0].argsName).equals("TelComAccountPassword")) { deviceStaticStruct.devRemark1 = dOperResultArgsStruct[0].argsValue; } } result = InventoryManager.updateDeviceStatic(deviceStaticStruct); - if (result != 0 ){ + if (result != 0) { throw new BusinessException(ResultCode.UPDATE_ACCOUNT_PWD_ERROR); } } } return detailStructHolder.value.operResult.operTaskId; } - private DOperResultDetailStructHolder sendDeviceOper2TR069(Long deviceId,String operationName,String argsName,String argsValue){ + + private DOperResultDetailStructHolder sendDeviceOper2TR069(Long deviceId, String operationName, String argsName, String argsValue) { DOperTask2DetailStruct detailStruct = new DOperTask2DetailStruct(); DOperTask2Struct operTask2Struct = new DOperTask2Struct(); - operTask2Struct.devId = deviceId ; + operTask2Struct.devId = deviceId; operTask2Struct.operName = operationName; operTask2Struct.operTaskCreateTime = 0; operTask2Struct.operTaskDesc = RemoteOperateMsgEnum.SET_TELEPHONE_COM_ACCOUNT_PASSWORD.getLabel(); @@ -932,31 +931,32 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { detailStruct.operTaskArgsList = argsStructs; DOperTask2DetailStructHolder task2DetailStructHolder = new DOperTask2DetailStructHolder(detailStruct); DOperResultDetailStructHolder detailStructHolder = new DOperResultDetailStructHolder(); - OAMManager.sendDeviceOper2TR069(task2DetailStructHolder,detailStructHolder); + OAMManager.sendDeviceOper2TR069(task2DetailStructHolder, detailStructHolder); return detailStructHolder; } @Override public void exeCustomTaskByIds(Long devId, Integer[] ids) { - if (ids.length==0){ + if (ids.length == 0) { throw new BusinessException(ResultCode.IDS_IS_NULL); } - for(Integer id: ids){ + for (Integer id : ids) { CustomTask customTask = customTaskMapper.selectOne(new LambdaQueryWrapper() .eq(CustomTask::getTaskId, id) ); - if (customTask!=null){ - modifyCustomNode(customTask,devId); + if (customTask != null) { + modifyCustomNode(customTask, devId); } } } + public void modifyCustomNode(CustomTask customTaskInfo, long devId) { DOperTask2DetailStruct detailStruct = new DOperTask2DetailStruct(); DOperTask2Struct operTaskStruct = new DOperTask2Struct(); operTaskStruct.devId = devId; operTaskStruct.operName = customTaskInfo.getOperationName(); operTaskStruct.operTaskCreateTime = (new Date()).getTime(); - operTaskStruct.operTaskDesc = IBaseEnum.getLabelByValue(customTaskInfo.getOperationName(),RemoteOperateMsgEnum.class); + operTaskStruct.operTaskDesc = IBaseEnum.getLabelByValue(customTaskInfo.getOperationName(), RemoteOperateMsgEnum.class); operTaskStruct.operTaskId = Utils.LONG_NULL; operTaskStruct.userName = SecurityUtils.getUsername(); detailStruct.operTask = operTaskStruct; @@ -1000,12 +1000,12 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { ); Customer customer = customerManager.findByCustomId(deviceStatic.getCustomId()); - List list = serviceMapper.resetServiceByDevId(devId,serviceName); - if (list.isEmpty()){ + List list = serviceMapper.resetServiceByDevId(devId, serviceName); + if (list.isEmpty()) { throw new BusinessException(ResultCode.DATA_NOT_FOUND); } RDevServiceInfoDetailStruct[] struct = new RDevServiceInfoDetailStruct[list.size()]; - for (int index=0;index args = deviceServiceArgsMapper.resetServiceByServIdAndDevId(bo.getServId(),bo.getDevId()); - if (!args.isEmpty()){ + List args = deviceServiceArgsMapper.resetServiceByServIdAndDevId(bo.getServId(), bo.getDevId()); + if (!args.isEmpty()) { RDevServArgsStruct[] devServArgsList = new RDevServArgsStruct[args.size()]; - for (int i=0;i() .eq(DeviceOrderFlow::getDevId, device.getDevId()) ); - if (deviceOrderFlow!=null){ + if (deviceOrderFlow != null) { flowType = deviceOrderFlow.getOrderFlowRoot(); } @@ -1178,7 +1178,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { OrderInfoDetailStruct orderInfoDetail = new OrderInfoDetailStruct(); DeviceStaticDetail devStaticDetail = deviceStaticDetailMapper.selectOne(new LambdaQueryWrapper() - .eq(DeviceStaticDetail::getDevId,device.getDevId()) + .eq(DeviceStaticDetail::getDevId, device.getDevId()) ); if (devStaticDetail == null) { @@ -1211,4 +1211,330 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { orderInfo.orderInfoDetail = orderInfoDetail; return orderInfo; } + + @Override + public List> getNodeChildNodes(Long devId, String nodePath) { + DOperTask2DetailStruct detailStruct = new DOperTask2DetailStruct(); + DOperTask2Struct operTask2Struct = new DOperTask2Struct(); + operTask2Struct.devId = devId; + operTask2Struct.operName = RemoteOperateMsgEnum.GET_OBJECT_INFOS.getValue(); + operTask2Struct.operTaskCreateTime = 0; + operTask2Struct.operTaskDesc = RemoteOperateMsgEnum.GET_OBJECT_INFOS.getLabel(); + operTask2Struct.operTaskId = Utils.LONG_NULL; + operTask2Struct.userName = SecurityUtils.getUsername(); + detailStruct.operTask = operTask2Struct; + DOperTaskArgsStruct[] argsStructs = new DOperTaskArgsStruct[2]; + argsStructs[0] = new DOperTaskArgsStruct(); + argsStructs[0].argsName = "PARAMETER_PATH"; + argsStructs[0].argsValue = nodePath; + argsStructs[0].operTaskId = Utils.LONG_NULL; + argsStructs[1] = new DOperTaskArgsStruct(); + argsStructs[1].argsName = "NEXT_LEVEL"; + argsStructs[1].argsValue = "true"; + argsStructs[1].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 parseTreeOption(task2DetailStructHolder.value.operTask.operTaskId); + + } + + private List> parseTreeOption(Long taskId) { + List> list = new ArrayList<>(); + boolean found = true; + int attempt = 0; + while (attempt < 5 && found) { + OperateResult2 operateResult2 = operateResult2Mapper.selectOne( + new QueryWrapper() + .eq("oper_task_id", taskId) + ); + if (operateResult2 == null) { + throw new BusinessException(ResultCode.TASK_NOT_FOUND); + } + String state = operateResult2.getResultState(); + if (OperateTaskStateEnum.NOT_EXECUTED.getValue().equals(state)) { + throw new BusinessException(ResultCode.TASK_NOT_EXE); + } else if (OperateTaskStateEnum.EXECUTION_FAILED.getValue().equals(state)) { + throw new BusinessException(ResultCode.TASK_EXE_FAIL); + } else if (OperateTaskStateEnum.THE_DEVICE_IS_NOT_ONLINE.getValue().equals(state)) { + throw new BusinessException(ResultCode.THE_DEVICE_IS_NOT_ONLINE); + } else if (OperateTaskStateEnum.THE_EXECUTION_WAS_SUCCESSFUL.getValue().equals(state)) { + List structs = operateResultArgsMapper.selectList(new LambdaQueryWrapper() + .eq(OperateResultArgs::getOperTaskId, taskId) + ); + for (OperateResultArgs struct : structs) { + OptionTree option = getOptionTree(struct); + list.add(option); + } + found = false; + } + if (found) { + try { + TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST4); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + } + attempt++; + } + + return list; + } + + private static OptionTree getOptionTree(OperateResultArgs struct) { + String str = struct.getArgsName(); + OptionTree option = new OptionTree<>(); + option.setChildNode(str.charAt(str.trim().length() - 1) == '.'); + option.setNodePath(str); + String[] total = str.trim().split("\\."); + String lastLabel = total[total.length - 1]; + option.setValue(struct.getArgsValue()); + option.setLabel(lastLabel); + return option; + } + + + @Override + public OptionTree getParameterValues(Long devId, String nodePath) { + DOperTask2DetailStruct detailStruct = new DOperTask2DetailStruct(); + DOperTask2Struct operTask2Struct = new DOperTask2Struct(); + operTask2Struct.devId = devId; + operTask2Struct.operName = RemoteOperateMsgEnum.GET_PARAMETER_VALUES.getValue(); + operTask2Struct.operTaskCreateTime = 0; + operTask2Struct.operTaskDesc = RemoteOperateMsgEnum.GET_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 = nodePath; + argsStructs[0].argsValue = StringUtilsConstants.STRING_BLANK; + 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 parseTreeOption(task2DetailStructHolder.value.operTask.operTaskId).get(0); + } + + @Override + public boolean setParameterValues(Long devId, String nodePath, String argValue) { + 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 = nodePath; + argsStructs[0].argsValue = argValue; + 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 taskIsSuccess(task2DetailStructHolder.value.operTask.operTaskId); + + } + + @Override + public OptionTree getParameterAttributes(Long devId, String nodePath) { + DOperTask2DetailStruct detailStruct = new DOperTask2DetailStruct(); + DOperTask2Struct operTask2Struct = new DOperTask2Struct(); + operTask2Struct.devId = devId ; + operTask2Struct.operName = RemoteOperateMsgEnum.GET_PARAMETER_ATTRIBUTES.getValue(); + operTask2Struct.operTaskCreateTime = 0; + operTask2Struct.operTaskDesc = RemoteOperateMsgEnum.GET_PARAMETER_ATTRIBUTES.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 = nodePath; + argsStructs[0].argsValue = StringUtilsConstants.STRING_BLANK; + 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 parseTreeOption(task2DetailStructHolder.value.operTask.operTaskId).get(0); + + } + + @Override + public void setParameterAttributes(Long devId, String nodePath, String argValue) { + DOperTask2DetailStruct detailStruct = new DOperTask2DetailStruct(); + DOperTask2Struct operTask2Struct = new DOperTask2Struct(); + operTask2Struct.devId = devId ; + operTask2Struct.operName = RemoteOperateMsgEnum.SET_PARAMETER_ATTRIBUTES.getValue(); + operTask2Struct.operTaskCreateTime = 0; + operTask2Struct.operTaskDesc = RemoteOperateMsgEnum.SET_PARAMETER_ATTRIBUTES.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 = nodePath; + argsStructs[0].argsValue = argValue; + 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); + } + } + + @Override + public OptionTree addInstanceNode(Long devId, String nodePath) { + DOperTask2DetailStruct detailStruct = new DOperTask2DetailStruct(); + DOperTask2Struct operTask2Struct = new DOperTask2Struct(); + operTask2Struct.devId = devId ; + operTask2Struct.operName = RemoteOperateMsgEnum.ADD_OBJECT.getValue(); + operTask2Struct.operTaskCreateTime = 0; + operTask2Struct.operTaskDesc = RemoteOperateMsgEnum.ADD_OBJECT.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 = nodePath; + argsStructs[0].argsValue = StringUtilsConstants.STRING_BLANK; + 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 parseAddInstanceNode(task2DetailStructHolder.value.operTask.operTaskId).get(0); + } + + private List> parseAddInstanceNode(Long taskId) { + List> list = new ArrayList<>(); + boolean found = true; + int attempt = 0; + while (attempt < 5 && found) { + OperateResult2 operateResult2 = operateResult2Mapper.selectOne( + new QueryWrapper() + .eq("oper_task_id", taskId) + ); + if (operateResult2 == null) { + throw new BusinessException(ResultCode.TASK_NOT_FOUND); + } + String state = operateResult2.getResultState(); + if (OperateTaskStateEnum.NOT_EXECUTED.getValue().equals(state)) { + throw new BusinessException(ResultCode.TASK_NOT_EXE); + } else if (OperateTaskStateEnum.EXECUTION_FAILED.getValue().equals(state)) { + throw new BusinessException(ResultCode.TASK_EXE_FAIL); + } else if (OperateTaskStateEnum.THE_DEVICE_IS_NOT_ONLINE.getValue().equals(state)) { + throw new BusinessException(ResultCode.THE_DEVICE_IS_NOT_ONLINE); + } else if (OperateTaskStateEnum.THE_EXECUTION_WAS_SUCCESSFUL.getValue().equals(state)) { + List structs = operateResultArgsMapper.selectList(new LambdaQueryWrapper() + .eq(OperateResultArgs::getOperTaskId, taskId) + ); + for (OperateResultArgs struct : structs) { + if (struct.getArgsName().equalsIgnoreCase(SystemConstants.STATUS)){ + continue; + } + OptionTree option = getOptionTInstanceTree(struct); + list.add(option); + } + found = false; + } + if (found) { + try { + TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST4); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + } + attempt++; + } + + return list; + } + private static OptionTree getOptionTInstanceTree(OperateResultArgs struct) { + String str = struct.getArgsName(); + OptionTree option = new OptionTree<>(); + option.setChildNode(true); + option.setNodePath(str+struct.getArgsValue()+"."); + option.setLabel(struct.getArgsValue()); + return option; + } + @Override + public boolean taskIsSuccess(Long taskId) { + int attempt = 0; + while (attempt < 5) { + OperateResult2 operateResult2 = operateResult2Mapper.selectOne( + new QueryWrapper() + .eq("oper_task_id", taskId) + ); + if (operateResult2 == null) { + throw new BusinessException(ResultCode.TASK_NOT_FOUND); + } + String state = operateResult2.getResultState(); + if (OperateTaskStateEnum.NOT_EXECUTED.getValue().equals(state)) { + throw new BusinessException(ResultCode.TASK_NOT_EXE); + } else if (OperateTaskStateEnum.EXECUTION_FAILED.getValue().equals(state)) { + throw new BusinessException(ResultCode.TASK_EXE_FAIL); + } else if (OperateTaskStateEnum.THE_DEVICE_IS_NOT_ONLINE.getValue().equals(state)) { + throw new BusinessException(ResultCode.THE_DEVICE_IS_NOT_ONLINE); + } else if (OperateTaskStateEnum.THE_EXECUTION_WAS_SUCCESSFUL.getValue().equals(state)) { + return true; + } + try { + TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST4); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + attempt++; + } + + return false; + } + + @Override + public boolean deleteInstanceNode(Long devId, String nodePath) { + DOperTask2DetailStruct detailStruct = new DOperTask2DetailStruct(); + DOperTask2Struct operTask2Struct = new DOperTask2Struct(); + operTask2Struct.devId = devId ; + operTask2Struct.operName = RemoteOperateMsgEnum.DELETE_OBJECT.getValue(); + operTask2Struct.operTaskCreateTime = 0; + operTask2Struct.operTaskDesc = RemoteOperateMsgEnum.DELETE_OBJECT.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 = nodePath; + argsStructs[0].argsValue = StringUtilsConstants.STRING_BLANK; + 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 taskIsSuccess(task2DetailStructHolder.value.operTask.operTaskId); + } }