OCT
REM: 1. 添加停止指定处置任务接口 2. 添加停止某处置IP的处置任务接口 3. 添加停止指定能力节点全部处置任务接口 4. 添加停止全部处置任务接口
This commit is contained in:
parent
a7cdb3b9dc
commit
383e093c82
|
@ -40,7 +40,7 @@ public class ConstValue {
|
|||
|
||||
|
||||
public static final int START_DISPOSE_CMD = 400;
|
||||
public static final int STOP_DISPOSE_CMD = 401;
|
||||
public static final int STOP_DISPOSE_CMD_BY_TASKID = 401;
|
||||
public static final int STOP_DISPOSE_CMD_BY_IP = 402;
|
||||
public static final int STOP_DISPOSE_CMD_BY_POINT = 403;
|
||||
public static final int STOP_DISPOSE_CMD_ALL = 404;
|
||||
|
|
|
@ -3,9 +3,12 @@ package com.cmcc.hy.phoenix.controller;
|
|||
import com.cmcc.hy.phoenix.annotation.bodyencdec.ReqDec;
|
||||
import com.cmcc.hy.phoenix.common.ConstValue;
|
||||
import com.cmcc.hy.phoenix.common.ErrorCode;
|
||||
import com.cmcc.hy.phoenix.dispose.DisposeProcess;
|
||||
import com.cmcc.hy.phoenix.dispose.DptechUMC;
|
||||
import com.cmcc.hy.phoenix.pojo.dto.ProtocolDTO;
|
||||
import com.cmcc.hy.phoenix.pojo.vo.ProtocolResp;
|
||||
import com.cmcc.hy.phoenix.pojo.vo.*;
|
||||
import com.cmcc.hy.phoenix.service.LoginService;
|
||||
import com.dptech.umc.NtcRequestResultInfo;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.swagger.annotations.Api;
|
||||
|
@ -19,11 +22,12 @@ import org.springframework.web.bind.annotation.*;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.EnumMap;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.cmcc.hy.phoenix.common.ErrorCode.ERR_OK;
|
||||
import static com.cmcc.hy.phoenix.common.ErrorCode.ERR_UNKNOWNCMD;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value = "/handle")
|
||||
|
@ -44,7 +48,7 @@ public class taskController {
|
|||
@ReqDec
|
||||
@Builder
|
||||
public ProtocolResp disposeTaskCommand(@RequestBody(required = true) ProtocolDTO mr,
|
||||
@RequestHeader HttpHeaders headers) {
|
||||
@RequestHeader HttpHeaders headers) throws JsonProcessingException {
|
||||
// 存放返回信息Json字符串
|
||||
String msgCtx = "";
|
||||
ErrorCode err = ERR_OK;
|
||||
|
@ -59,33 +63,312 @@ public class taskController {
|
|||
} else if (mr.IsRequestTimeout()) {
|
||||
err = ErrorCode.ERR_REQTIMEOUT;
|
||||
} else {
|
||||
//try{
|
||||
// 获取 Token
|
||||
String token = Objects.
|
||||
requireNonNull(headers.get("Authorization"))
|
||||
.get(0).replaceFirst("Bearer ", "");
|
||||
try {
|
||||
// 获取 Token
|
||||
String token = Objects.
|
||||
requireNonNull(headers.get("Authorization"))
|
||||
.get(0).replaceFirst("Bearer ", "");
|
||||
|
||||
// 判断Head头是否存在
|
||||
if (headers.get("Authorization") == null) {
|
||||
err = ErrorCode.ERR_MISSAUTHHEAD;
|
||||
} else if ((err = loginService.authTokenCheck(token)) == ERR_OK) {
|
||||
// Token 正确则处理业务
|
||||
switch (mr.getCmdId()) {
|
||||
case ConstValue.ProtocolCmdId.START_DISPOSE_CMD:
|
||||
break;
|
||||
case ConstValue.ProtocolCmdId.STOP_DISPOSE_CMD:
|
||||
break;
|
||||
|
||||
default:
|
||||
err = ErrorCode.ERR_UNKNOWNCMD;
|
||||
// 判断Head头是否存在
|
||||
if (headers.get("Authorization") == null) {
|
||||
err = ErrorCode.ERR_MISSAUTHHEAD;
|
||||
} else if ((err = loginService.authTokenCheck(token)) == ERR_OK) {
|
||||
// Token 正确则处理业务
|
||||
switch (mr.getCmdId()) {
|
||||
case ConstValue.ProtocolCmdId.START_DISPOSE_CMD:
|
||||
break;
|
||||
//停止清洗任务
|
||||
case ConstValue.ProtocolCmdId.STOP_DISPOSE_CMD_BY_TASKID:
|
||||
EnumMap<ErrorCode, String> stopMap = StopTaskByTaskId(mr);
|
||||
err = stopMap.keySet().iterator().next();
|
||||
msgCtx = stopMap.get(err);
|
||||
break;
|
||||
case ConstValue.ProtocolCmdId.STOP_DISPOSE_CMD_BY_IP:
|
||||
EnumMap<ErrorCode, String> stopMapByIp = StopTaskByIp(mr);
|
||||
err = stopMapByIp.keySet().iterator().next();
|
||||
msgCtx = stopMapByIp.get(err);
|
||||
break;
|
||||
case ConstValue.ProtocolCmdId.STOP_DISPOSE_CMD_BY_POINT:
|
||||
EnumMap<ErrorCode, String> stopMapByPoint = StopTaskByPoint(mr);
|
||||
err = stopMapByPoint.keySet().iterator().next();
|
||||
msgCtx = stopMapByPoint.get(err);
|
||||
break;
|
||||
case ConstValue.ProtocolCmdId.STOP_DISPOSE_CMD_ALL:
|
||||
EnumMap<ErrorCode, String> stopMapByAll = StopTaskAll(mr);
|
||||
err = stopMapByAll.keySet().iterator().next();
|
||||
msgCtx = stopMapByAll.get(err);
|
||||
break;
|
||||
default:
|
||||
err = ErrorCode.ERR_UNKNOWNCMD;
|
||||
}
|
||||
}
|
||||
} catch (JsonProcessingException ex) {
|
||||
log.error(ex.getMessage());
|
||||
err = ErrorCode.ERR_EXCEPTION;
|
||||
}
|
||||
// } catch (JsonProcessingException | NoSuchAlgorithmException ex) {
|
||||
// log.error(ex.getMessage());
|
||||
// err = ErrorCode.ERR_EXCEPTION;
|
||||
// }
|
||||
}
|
||||
|
||||
return ProtocolResp.result(err, mr.getCmdId(), msgCtx);
|
||||
}
|
||||
|
||||
private EnumMap<ErrorCode, String> StopTaskByTaskId(ProtocolDTO mr) throws JsonProcessingException {
|
||||
String ipAddr = "10.88.77.15";
|
||||
EnumMap<ErrorCode, String> retMap = new EnumMap<>(ErrorCode.class);
|
||||
ErrorCode err = ErrorCode.ERR_OK;
|
||||
|
||||
List<StopTaskResult> results = new ArrayList<>();
|
||||
StopTaskRsp repInfo = StopTaskRsp.builder().result(results).build();
|
||||
|
||||
StopTaskReq reqInfo = objectMapper.readValue(mr.getMsgContent(), StopTaskReq.class);
|
||||
//遍历处置任务唯一编号taskId
|
||||
if (reqInfo.getTaskId().size() == 0) {
|
||||
System.out.println("无指定TaskId的清洗任务");
|
||||
err = ErrorCode.ERR_INPUTMISS;
|
||||
repInfo = null;
|
||||
retMap.put(err, objectMapper.writeValueAsString(repInfo));
|
||||
return retMap;
|
||||
}
|
||||
|
||||
for (String v : reqInfo.getTaskId()) {
|
||||
System.out.println(v);
|
||||
//每个taskId对应保护IP disposeIp,通过taskId获取disposeIp
|
||||
String disposeIp = "192.168.5.2";
|
||||
int attackType = 1;
|
||||
int direction = 0;
|
||||
|
||||
DisposeProcess dp = new DptechUMC(ipAddr);
|
||||
NtcRequestResultInfo ntc_result = dp.stopAbnormalTask(disposeIp, attackType, direction);
|
||||
|
||||
StopTaskResult sig_results = new StopTaskResult();
|
||||
sig_results.setTaskId(v);
|
||||
sig_results.setType(0); //目前只有清洗设备
|
||||
sig_results.setDisposeIp(disposeIp);
|
||||
if (ntc_result.getResultRetVal().equals(0)) {
|
||||
sig_results.setStatus(ntc_result.getResultRetVal());
|
||||
}
|
||||
|
||||
//把每一次遍历的结果都存入results
|
||||
results.add(sig_results);
|
||||
repInfo.setResult(results);
|
||||
}
|
||||
|
||||
retMap.put(err, objectMapper.writeValueAsString(repInfo));
|
||||
return retMap;
|
||||
}
|
||||
|
||||
private EnumMap<ErrorCode, String> StopTaskByIp(ProtocolDTO mr) throws JsonProcessingException {
|
||||
String ipAddr = "10.88.77.15";
|
||||
EnumMap<ErrorCode, String> retMap = new EnumMap<>(ErrorCode.class);
|
||||
ErrorCode err = ErrorCode.ERR_OK;
|
||||
|
||||
List<StopTaskResult> results = new ArrayList<>();
|
||||
StopTaskRsp repInfo = StopTaskRsp.builder().result(results).build();
|
||||
|
||||
StopTaskByIpReq reqInfo = objectMapper.readValue(mr.getMsgContent(), StopTaskByIpReq.class);
|
||||
if (reqInfo.getItems().size() == 0) {
|
||||
System.out.println("无该处置IP的清洗任务");
|
||||
err = ErrorCode.ERR_INPUTMISS;
|
||||
repInfo = null;
|
||||
retMap.put(err, objectMapper.writeValueAsString(repInfo));
|
||||
return retMap;
|
||||
} else {
|
||||
for (StopTaskByIpReqMsg v : reqInfo.getItems()
|
||||
) {
|
||||
if ((v.getType() < -1) || (v.getType() > 3)) {
|
||||
System.out.println("任务类型输入错误");
|
||||
err = ErrorCode.ERR_PARAMS;
|
||||
repInfo = null;
|
||||
retMap.put(err, objectMapper.writeValueAsString(repInfo));
|
||||
return retMap;
|
||||
} else if ((v.getId().length() == 0) || (String.valueOf(v.getType()).length() == 0) || (v.getDisposeIP().length() == 0)) {
|
||||
System.out.println("缺少必要输入信息");
|
||||
err = ErrorCode.ERR_INPUTMISS;
|
||||
repInfo = null;
|
||||
retMap.put(err, objectMapper.writeValueAsString(repInfo));
|
||||
return retMap;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (StopTaskByIpReqMsg v : reqInfo.getItems()
|
||||
) {
|
||||
//输出指定IP
|
||||
System.out.println(v.getDisposeIP());
|
||||
int attackType = 1;
|
||||
int direction = 0;
|
||||
|
||||
DisposeProcess dp = new DptechUMC(ipAddr);
|
||||
NtcRequestResultInfo ntc_result = dp.stopAbnormalTask(v.getDisposeIP(), attackType, direction);
|
||||
|
||||
StopTaskResult result = new StopTaskResult();
|
||||
result.setId(v.getId());
|
||||
result.setType(v.getType());
|
||||
result.setDisposeIp(v.getDisposeIP());
|
||||
if (ntc_result.getResultRetVal().equals(0)) {
|
||||
result.setStatus(ntc_result.getResultRetVal());
|
||||
}
|
||||
|
||||
//数据库中对应设备Id(deviceId)找到taskId,测试情况假设deviceId与找到taskId相同
|
||||
String taskId = v.getId();
|
||||
result.setTaskId(taskId);
|
||||
|
||||
//把每一次遍历的结果都存入results
|
||||
results.add(result);
|
||||
repInfo.setResult(results);
|
||||
}
|
||||
|
||||
retMap.put(err, objectMapper.writeValueAsString(repInfo));
|
||||
return retMap;
|
||||
}
|
||||
|
||||
private EnumMap<ErrorCode, String> StopTaskByPoint(ProtocolDTO mr) throws JsonProcessingException {
|
||||
String ipAddr = "10.88.77.15";
|
||||
EnumMap<ErrorCode, String> retMap = new EnumMap<>(ErrorCode.class);
|
||||
ErrorCode err = ErrorCode.ERR_OK;
|
||||
|
||||
List<StopTaskResult> results = new ArrayList<>();
|
||||
StopTaskRsp repInfo = StopTaskRsp.builder().result(results).build();
|
||||
|
||||
StopTaskByPonitReq reqInfo = objectMapper.readValue(mr.getMsgContent(), StopTaskByPonitReq.class);
|
||||
|
||||
if (reqInfo.getItems().size() == 0) {
|
||||
System.out.println("无该指定能力节点的清洗任务");
|
||||
err = ErrorCode.ERR_INPUTMISS;
|
||||
repInfo = null;
|
||||
retMap.put(err, objectMapper.writeValueAsString(repInfo));
|
||||
return retMap;
|
||||
} else {
|
||||
for (StopTaskByPonitReqMsg v : reqInfo.getItems()
|
||||
) {
|
||||
if ((v.getType() < -1) || (v.getType() > 3)) {
|
||||
System.out.println("任务类型输入错误");
|
||||
err = ErrorCode.ERR_PARAMS;
|
||||
repInfo = null;
|
||||
retMap.put(err, objectMapper.writeValueAsString(repInfo));
|
||||
return retMap;
|
||||
} else if ((v.getId().length() == 0) || (String.valueOf(v.getType()).length() == 0)) {
|
||||
System.out.println("缺少必要输入信息");
|
||||
err = ErrorCode.ERR_INPUTMISS;
|
||||
repInfo = null;
|
||||
retMap.put(err, objectMapper.writeValueAsString(repInfo));
|
||||
return retMap;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (StopTaskByPonitReqMsg v : reqInfo.getItems()
|
||||
) {
|
||||
//通过能力节点唯一标识符id找到对应的清洗IP,清洗IP以列表形式保存,一能力节点会对应多个IP
|
||||
//foreach嵌套-List<String> getDisposeIP
|
||||
List<String> getDisposeIps = new ArrayList<>();
|
||||
getDisposeIps.add("192.168.1.1");
|
||||
getDisposeIps.add("192.168.2.1");
|
||||
int attackType = 1;
|
||||
int direction = 0;
|
||||
int taskid = 0;
|
||||
|
||||
DisposeProcess dp = new DptechUMC(ipAddr);
|
||||
for (String getDisposeIp : getDisposeIps
|
||||
) {
|
||||
NtcRequestResultInfo ntc_result = dp.stopAbnormalTask(getDisposeIp, attackType, direction);
|
||||
StopTaskResult result = new StopTaskResult();
|
||||
result.setId(v.getId());
|
||||
result.setType(v.getType());
|
||||
result.setDisposeIp(getDisposeIp);
|
||||
if (ntc_result.getResultRetVal().equals(0)) {
|
||||
result.setStatus(ntc_result.getResultRetVal());
|
||||
}
|
||||
|
||||
//数据库中对应设备Id(deviceId)找到taskId
|
||||
//test taskId自增1
|
||||
String taskId = String.valueOf(taskid);
|
||||
result.setTaskId(taskId);
|
||||
|
||||
//把每一次遍历的结果都存入results
|
||||
results.add(result);
|
||||
repInfo.setResult(results);
|
||||
taskid++;
|
||||
}
|
||||
}
|
||||
|
||||
retMap.put(err, objectMapper.writeValueAsString(repInfo));
|
||||
return retMap;
|
||||
}
|
||||
|
||||
private EnumMap<ErrorCode, String> StopTaskAll(ProtocolDTO mr) throws JsonProcessingException {
|
||||
String ipAddr = "10.88.77.15";
|
||||
EnumMap<ErrorCode, String> retMap = new EnumMap<>(ErrorCode.class);
|
||||
ErrorCode err = ErrorCode.ERR_OK;
|
||||
|
||||
List<StopTaskResult> results = new ArrayList<>();
|
||||
StopTaskRsp repInfo = StopTaskRsp.builder().result(results).build();
|
||||
|
||||
StopTaskAllReq reqInfo = objectMapper.readValue(mr.getMsgContent(), StopTaskAllReq.class);
|
||||
|
||||
if (String.valueOf(reqInfo.getType()).length() == 0) {
|
||||
System.out.println("缺少必要输入参数");
|
||||
err = ErrorCode.ERR_INPUTMISS;
|
||||
repInfo = null;
|
||||
retMap.put(err, objectMapper.writeValueAsString(repInfo));
|
||||
return retMap;
|
||||
} else if ((reqInfo.getType() < -1) || (reqInfo.getType() > 3)) {
|
||||
System.out.println("任务类型输入错误");
|
||||
err = ErrorCode.ERR_PARAMS;
|
||||
repInfo = null;
|
||||
retMap.put(err, objectMapper.writeValueAsString(repInfo));
|
||||
return retMap;
|
||||
}
|
||||
|
||||
int type = reqInfo.getType();
|
||||
if (type == 0) {
|
||||
//任务类型为清洗,清洗所有清洗任务
|
||||
//MySql获取所有taskId,遍历执行清洗任务,测试添加多个taskId
|
||||
List<String> taskIds = new ArrayList<>();
|
||||
taskIds.add("1");
|
||||
taskIds.add("2");
|
||||
taskIds.add("3");
|
||||
taskIds.add("4");
|
||||
|
||||
String disposeIp = "";
|
||||
for (String v : taskIds
|
||||
) {
|
||||
//每个taskId对应disposeIp,通过taskId获取disposeIp
|
||||
//test 不同的taskId对应不同disposeIp
|
||||
if (v.equals("1")) {
|
||||
disposeIp = "192.168.10.1";
|
||||
} else if (v.equals("2")) {
|
||||
disposeIp = "192.168.10.2";
|
||||
} else if (v.equals("3")) {
|
||||
disposeIp = "192.168.10.3";
|
||||
} else {
|
||||
disposeIp = "192.168.10.4";
|
||||
}
|
||||
|
||||
int attackType = 1;
|
||||
int direction = 0;
|
||||
|
||||
DisposeProcess dp = new DptechUMC(ipAddr);
|
||||
NtcRequestResultInfo ntc_result = dp.stopAbnormalTask(disposeIp, attackType, direction);
|
||||
|
||||
StopTaskResult result = new StopTaskResult();
|
||||
result.setTaskId(v);
|
||||
result.setType(0); //目前只有清洗设备
|
||||
result.setDisposeIp(disposeIp);
|
||||
if (ntc_result.getResultRetVal().equals(0)) {
|
||||
result.setStatus(ntc_result.getResultRetVal());
|
||||
}
|
||||
|
||||
//数据库中对应设备taskId(deviceId)找到Id,测试情况假设deviceId与找到taskId相同
|
||||
result.setId(v);
|
||||
|
||||
//把每一次遍历的结果都存入results
|
||||
results.add(result);
|
||||
repInfo.setResult(results);
|
||||
}
|
||||
}
|
||||
|
||||
retMap.put(err, objectMapper.writeValueAsString(repInfo));
|
||||
return retMap;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package com.cmcc.hy.phoenix.dispose;
|
||||
|
||||
import com.dptech.umc.NtcRequestResultInfo;
|
||||
|
||||
public interface DisposeProcess {
|
||||
public int runDispose(String ip);
|
||||
|
||||
|
@ -10,4 +12,7 @@ public interface DisposeProcess {
|
|||
public String getDetectionDevices();
|
||||
|
||||
public String getProtectDevices();
|
||||
|
||||
public NtcRequestResultInfo stopAbnormalTask(String abnormalIp, int attackType, int direction);
|
||||
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.cmcc.hy.phoenix.Interceptor.SoapPasswordCallbackHandler;
|
|||
import com.cmcc.hy.phoenix.common.ConstValue;
|
||||
import com.dptech.umc.AbnormalFlowCleaningServicePortType;
|
||||
import com.dptech.umc.ArrayOfDetectionObjectDataForService;
|
||||
import com.dptech.umc.NtcRequestResultInfo;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
|
||||
|
@ -67,4 +68,9 @@ public class DptechUMC implements DisposeProcess {
|
|||
|
||||
this.cleanTypePort = (AbnormalFlowCleaningServicePortType)jaxWsProxyFactoryBean.create();
|
||||
}
|
||||
|
||||
@Override
|
||||
public NtcRequestResultInfo stopAbnormalTask(String abnormalIp, int attackType, int direction){
|
||||
return cleanTypePort.stopAbnormalTaskForUMC(abnormalIp, attackType, direction);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
package com.cmcc.hy.phoenix.pojo.vo;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class StopTaskAllReq {
|
||||
int type;
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
package com.cmcc.hy.phoenix.pojo.vo;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class StopTaskByIpReq {
|
||||
public List<StopTaskByIpReqMsg> items;
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package com.cmcc.hy.phoenix.pojo.vo;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class StopTaskByIpReqMsg {
|
||||
private String id;
|
||||
//任务类型 0:清洗 1:高防 2:黑洞 3:检测 -1: 所有类型
|
||||
private int type;
|
||||
//处置IP
|
||||
private String disposeIP;
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
package com.cmcc.hy.phoenix.pojo.vo;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class StopTaskByPonitReq {
|
||||
public List<StopTaskByPonitReqMsg> items;
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
package com.cmcc.hy.phoenix.pojo.vo;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class StopTaskByPonitReqMsg {
|
||||
private String id;
|
||||
//任务类型 0:清洗 1:高防 2:黑洞 3:检测 -1: 所有类型
|
||||
private int type;
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
package com.cmcc.hy.phoenix.pojo.vo;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class StopTaskReq {
|
||||
public List<String> taskId;
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package com.cmcc.hy.phoenix.pojo.vo;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class StopTaskResult {
|
||||
private String id;
|
||||
private String taskId;
|
||||
private int type;
|
||||
private String disposeIp;
|
||||
private int leftTime;
|
||||
private int status;
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package com.cmcc.hy.phoenix.pojo.vo;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@Builder
|
||||
public class StopTaskRsp {
|
||||
public List<StopTaskResult> result;
|
||||
}
|
Loading…
Reference in New Issue