|
|
|
@ -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,6 +106,8 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { |
|
|
|
|
|
|
|
|
|
private final DeviceOrderFlowMapper deviceOrderFlowMapper; |
|
|
|
|
|
|
|
|
|
private final OperateResultArgsMapper operateResultArgsMapper; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Page<EquipmentVO> resourcePage(SelectQuery query) { |
|
|
|
@ -466,7 +469,7 @@ 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<DeviceServiceArgs> list = deviceServiceArgsMapper.selectList(new LambdaUpdateWrapper<DeviceServiceArgs>() |
|
|
|
|
.eq(DeviceServiceArgs::getDevId, devId) |
|
|
|
|
.eq(DeviceServiceArgs::getServId, serviceId) |
|
|
|
@ -510,7 +513,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { |
|
|
|
|
if (result != 0) { |
|
|
|
|
throw new BusinessException(ResultCode.OAM_INTERFACE_ERROR); |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
return detailStructHolder.value.operTask.operTaskId; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -635,30 +638,23 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { |
|
|
|
|
} |
|
|
|
|
if (!OperateTaskStateEnum.ONGOING.getValue().equals(state)) { |
|
|
|
|
if (OperateTaskStateEnum.THE_EXECUTION_WAS_SUCCESSFUL.getValue().equals(state)) { |
|
|
|
|
String desc = deviceLogMapper.getTaskResultByTaskId(taskId,RemoteOperateMsgEnum.GetConnType.getValue()); |
|
|
|
|
String regex = SystemConstants.CONN_TYPE_REGEX; |
|
|
|
|
Pattern pattern = Pattern.compile(regex); |
|
|
|
|
Matcher matcher = pattern.matcher(desc); |
|
|
|
|
OperateResultArgs args = operateResultArgsMapper.selectOne(new LambdaQueryWrapper<OperateResultArgs>() |
|
|
|
|
.eq(OperateResultArgs::getOperTaskId, taskId)); |
|
|
|
|
String connectionType = ""; |
|
|
|
|
if (matcher.find()){ |
|
|
|
|
connectionType = matcher.group(1).trim(); |
|
|
|
|
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不在线"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}else { |
|
|
|
|
connType = "v不在线"; |
|
|
|
|
} |
|
|
|
|
found = false; |
|
|
|
|
} |
|
|
|
|
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(); |
|
|
|
@ -821,6 +817,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { |
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static DownloadInfo parseFromString(String input) { |
|
|
|
|
DownloadInfo downloadInfo = new DownloadInfo(); |
|
|
|
|
Map<String, String> 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; |
|
|
|
@ -914,6 +912,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { |
|
|
|
|
} |
|
|
|
|
return detailStructHolder.value.operResult.operTaskId; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private DOperResultDetailStructHolder sendDeviceOper2TR069(Long deviceId, String operationName, String argsName, String argsValue) { |
|
|
|
|
DOperTask2DetailStruct detailStruct = new DOperTask2DetailStruct(); |
|
|
|
|
DOperTask2Struct operTask2Struct = new DOperTask2Struct(); |
|
|
|
@ -950,6 +949,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void modifyCustomNode(CustomTask customTaskInfo, long devId) { |
|
|
|
|
DOperTask2DetailStruct detailStruct = new DOperTask2DetailStruct(); |
|
|
|
|
DOperTask2Struct operTaskStruct = new DOperTask2Struct(); |
|
|
|
@ -1211,4 +1211,330 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { |
|
|
|
|
orderInfo.orderInfoDetail = orderInfoDetail; |
|
|
|
|
return orderInfo; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public List<OptionTree<String>> 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<OptionTree<String>> parseTreeOption(Long taskId) { |
|
|
|
|
List<OptionTree<String>> list = new ArrayList<>(); |
|
|
|
|
boolean found = true; |
|
|
|
|
int attempt = 0; |
|
|
|
|
while (attempt < 5 && found) { |
|
|
|
|
OperateResult2 operateResult2 = operateResult2Mapper.selectOne( |
|
|
|
|
new QueryWrapper<OperateResult2>() |
|
|
|
|
.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<OperateResultArgs> structs = operateResultArgsMapper.selectList(new LambdaQueryWrapper<OperateResultArgs>() |
|
|
|
|
.eq(OperateResultArgs::getOperTaskId, taskId) |
|
|
|
|
); |
|
|
|
|
for (OperateResultArgs struct : structs) { |
|
|
|
|
OptionTree<String> 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<String> getOptionTree(OperateResultArgs struct) { |
|
|
|
|
String str = struct.getArgsName(); |
|
|
|
|
OptionTree<String> 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<String> 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<String> 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<String> 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<OptionTree<String>> parseAddInstanceNode(Long taskId) { |
|
|
|
|
List<OptionTree<String>> list = new ArrayList<>(); |
|
|
|
|
boolean found = true; |
|
|
|
|
int attempt = 0; |
|
|
|
|
while (attempt < 5 && found) { |
|
|
|
|
OperateResult2 operateResult2 = operateResult2Mapper.selectOne( |
|
|
|
|
new QueryWrapper<OperateResult2>() |
|
|
|
|
.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<OperateResultArgs> structs = operateResultArgsMapper.selectList(new LambdaQueryWrapper<OperateResultArgs>() |
|
|
|
|
.eq(OperateResultArgs::getOperTaskId, taskId) |
|
|
|
|
); |
|
|
|
|
for (OperateResultArgs struct : structs) { |
|
|
|
|
if (struct.getArgsName().equalsIgnoreCase(SystemConstants.STATUS)){ |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
OptionTree<String> 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<String> getOptionTInstanceTree(OperateResultArgs struct) { |
|
|
|
|
String str = struct.getArgsName(); |
|
|
|
|
OptionTree<String> 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<OperateResult2>() |
|
|
|
|
.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); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|