ty
4 months ago
6 changed files with 228 additions and 1 deletions
@ -0,0 +1,54 @@
|
||||
package com.hnac.hzims.constants; |
||||
|
||||
import lombok.Getter; |
||||
|
||||
/** |
||||
* @Author: ty |
||||
* 交接班状态值 |
||||
*/ |
||||
@Getter |
||||
public enum DeLianConstants { |
||||
OAUTHTOKEN("DLF_GetOauthToken","获取Token"), |
||||
DEVTYPES("DLF_GetDevTypes","获取设备类型"), |
||||
ACTIONTYPES("DLF_GetActionTypes","获取动作类型"), |
||||
UNITTYPES("DLF_GetUnitTypes","获取所有单位类型"), |
||||
ALLVALUEENUMDETAIL("DLF_GetAllValueEnumDetail","获取所有动作值类型"), |
||||
HOSTINFO("DLF_GetHostInfo","获取设备类型"), |
||||
GROUPINFO("DLF_GetGroupInfo","获取设备类型"), |
||||
CONTROLTERMINALACTOIN("DLF_ControlTerminalActoin","获取设备类型"), |
||||
STRATEGYS("DLF_GetStrategys","获取策略目录"), |
||||
EXECUTESCENE("DLF_ExecuteScene","执行一键场景"); |
||||
|
||||
private String code; |
||||
private String name; |
||||
|
||||
DeLianConstants(String code, String name) { |
||||
this.code = code; |
||||
this.name = name; |
||||
} |
||||
|
||||
public void setCode(String code) { |
||||
this.code = code; |
||||
} |
||||
|
||||
public void setName(String name) { |
||||
this.name = name; |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 根据值获取枚举 |
||||
* @param code |
||||
* @return |
||||
*/ |
||||
public static DeLianConstants getCodeByData(String code){ |
||||
for (DeLianConstants status: DeLianConstants.values()) { |
||||
if(status.getCode().equals(code)){ |
||||
return status; |
||||
} |
||||
} |
||||
return OAUTHTOKEN; |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,43 @@
|
||||
package com.hnac.hzims.delian.controller; |
||||
|
||||
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
||||
import com.hnac.hzims.delian.service.IDeLianService; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import lombok.AllArgsConstructor; |
||||
import org.springblade.core.boot.ctrl.BladeController; |
||||
import org.springblade.core.tool.api.R; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
/** |
||||
* 设备控制器 |
||||
* |
||||
* @author moze |
||||
*/ |
||||
@RestController |
||||
@AllArgsConstructor |
||||
@RequestMapping("/deLian") |
||||
@Api(value = "德联", tags = "德联信息管理") |
||||
public class DeLianController extends BladeController { |
||||
|
||||
private final IDeLianService iDeLianService; |
||||
/** |
||||
* 获取策略详情 |
||||
*/ |
||||
@GetMapping("/getStrategys") |
||||
@ApiOperationSupport(order = 1) |
||||
@ApiOperation(value = "获取策略详情") |
||||
public R getStrategys() { |
||||
return R.data(iDeLianService.getStrategys()); |
||||
} |
||||
/** |
||||
* 执行一键场景 |
||||
*/ |
||||
@GetMapping ("/executeScene") |
||||
@ApiOperationSupport(order = 1) |
||||
@ApiOperation(value = "执行一键场景", notes = "传入key") |
||||
public R executeScene(@RequestParam(value = "key") String key) { |
||||
return iDeLianService.executeScene(key); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,14 @@
|
||||
package com.hnac.hzims.delian.service; |
||||
|
||||
import com.hnac.hzims.delian.vo.StrategyDataVO; |
||||
import com.hnac.hzims.equipment.vo.StationEmVideoVO; |
||||
import org.springblade.core.tool.api.R; |
||||
|
||||
import java.util.List; |
||||
|
||||
public interface IDeLianService { |
||||
|
||||
List<StrategyDataVO> getStrategys(); |
||||
|
||||
R executeScene(String key); |
||||
} |
@ -0,0 +1,92 @@
|
||||
package com.hnac.hzims.delian.service.impl; |
||||
|
||||
import cn.hutool.http.HttpRequest; |
||||
import cn.hutool.http.HttpResponse; |
||||
import com.alibaba.fastjson.JSON; |
||||
import com.alibaba.fastjson.JSONObject; |
||||
import com.hnac.hzims.common.logs.utils.StringUtils; |
||||
import com.hnac.hzims.constants.DeLianConstants; |
||||
import com.hnac.hzims.delian.service.IDeLianService; |
||||
import com.hnac.hzims.delian.vo.StrategyDataVO; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.log.exception.ServiceException; |
||||
import org.springblade.core.tool.api.R; |
||||
import org.springframework.beans.factory.annotation.Value; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import javax.servlet.http.HttpServletResponse; |
||||
import java.util.ArrayList; |
||||
import java.util.HashMap; |
||||
import java.util.List; |
||||
|
||||
@Service |
||||
@RequiredArgsConstructor |
||||
@Slf4j |
||||
public class DeLianServiceImpl implements IDeLianService { |
||||
@Value("${url.deLianUrl}") |
||||
private String deLianUrl; |
||||
@Value("${deLian.hostId}") |
||||
private String hostId; |
||||
@Value("${deLian.passWord}") |
||||
private String passWord; |
||||
|
||||
@Override |
||||
public List<StrategyDataVO> getStrategys() { |
||||
HashMap<String, Object> param = getOauthToken(); |
||||
HashMap<String, Object> requestData = new HashMap<String, Object>() {{ |
||||
put("Strategy_Type", 0); |
||||
}}; |
||||
param.put("request_data",requestData); |
||||
param.put("request_cmd",DeLianConstants.STRATEGYS.getCode()); |
||||
String jsonString = JSON.toJSONString(param); |
||||
HttpResponse response = HttpRequest.post(deLianUrl).body(jsonString).execute(); |
||||
if(response.getStatus() == HttpServletResponse.SC_OK ) { |
||||
List<StrategyDataVO> responseData = JSONObject.parseArray(JSONObject.parseObject(response.body()).getString("response_data"), StrategyDataVO.class); |
||||
return responseData; |
||||
} |
||||
return new ArrayList<>(); |
||||
} |
||||
|
||||
@Override |
||||
public R executeScene(String key) { |
||||
HashMap<String, Object> param = getOauthToken(); |
||||
param.put("request_cmd",DeLianConstants.EXECUTESCENE.getCode()); |
||||
List<StrategyDataVO> strategys = getStrategys(); |
||||
for (StrategyDataVO strategy : strategys) { |
||||
if (key.equals(strategy.getSn())){ |
||||
param.put("request_data",strategy.getSID()); |
||||
} |
||||
} |
||||
HttpResponse response = HttpRequest.post(deLianUrl).body(JSON.toJSONString(param)).execute(); |
||||
if(response.getStatus() == HttpServletResponse.SC_OK ) { |
||||
return R.success("执行成功"); |
||||
} |
||||
return R.fail("执行成功"); |
||||
} |
||||
|
||||
public HashMap<String, Object> getOauthToken() { |
||||
HashMap<String, Object> requestData = new HashMap<String, Object>() {{ |
||||
put("HOST_ID", hostId); |
||||
put("HOST_PW", passWord); |
||||
}}; |
||||
HashMap<String, Object> param = new HashMap<String, Object>() {{ |
||||
put("request_cmd", DeLianConstants.OAUTHTOKEN.getCode()); |
||||
put("request_code", "wjf6s3a8i0mjuiv0"); |
||||
put("request_data", requestData); |
||||
}}; |
||||
String jsonString = JSON.toJSONString(param); |
||||
HttpResponse response = HttpRequest.post(deLianUrl).body(jsonString).execute(); |
||||
String token = JSONObject.parseObject(response.body()).getString("request_token"); |
||||
if(response.getStatus() == HttpServletResponse.SC_OK && |
||||
StringUtils.isNotBlank(token)) { |
||||
param.remove("request_data"); |
||||
param.remove("request_cmd"); |
||||
param.put("request_token",token); |
||||
return param; |
||||
}else { |
||||
throw new ServiceException("获取权限失败,请稍后重试!"); |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,20 @@
|
||||
package com.hnac.hzims.delian.vo; |
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField; |
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* @author ty |
||||
* @date 2024/07/16 |
||||
*/ |
||||
@Data |
||||
public class StrategyDataVO { |
||||
@JSONField(name = "S_ID") |
||||
private Integer sID; |
||||
@JSONField(name = "S_N") |
||||
private String sn; |
||||
@JSONField(name = "Dc") |
||||
private String dc; |
||||
@JSONField(name = "En") |
||||
private Integer en; |
||||
} |
Loading…
Reference in new issue