|  | @@ -1,12 +1,30 @@
 | 
	
		
			
				|  |  |  package com.ruoyi.web.controller.plugin;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import com.alibaba.fastjson.JSON;
 | 
	
		
			
				|  |  | +import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  |  import com.ruoyi.ccb.domain.*;
 | 
	
		
			
				|  |  |  import com.ruoyi.ccb.domain.basic.Page;
 | 
	
		
			
				|  |  |  import com.ruoyi.ccb.service.CcbHttpService;
 | 
	
		
			
				|  |  | +import com.ruoyi.common.constant.CcbConstants;
 | 
	
		
			
				|  |  | +import com.ruoyi.common.core.domain.AjaxResult;
 | 
	
		
			
				|  |  | +import com.ruoyi.common.utils.DateUtils;
 | 
	
		
			
				|  |  | +import com.ruoyi.common.utils.JsonUtil;
 | 
	
		
			
				|  |  | +import com.ruoyi.common.utils.ShaUtil;
 | 
	
		
			
				|  |  | +import com.ruoyi.framework.web.domain.server.Sys;
 | 
	
		
			
				|  |  |  import lombok.AllArgsConstructor;
 | 
	
		
			
				|  |  | +import okhttp3.OkHttpClient;
 | 
	
		
			
				|  |  | +import okhttp3.Request;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | +import org.springframework.transaction.interceptor.TransactionAspectSupport;
 | 
	
		
			
				|  |  |  import org.springframework.web.bind.annotation.*;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import java.io.IOException;
 | 
	
		
			
				|  |  | +import java.text.SimpleDateFormat;
 | 
	
		
			
				|  |  | +import java.util.ArrayList;
 | 
	
		
			
				|  |  | +import java.util.Date;
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  | +import java.util.Objects;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  |   * CCB接口
 | 
	
		
			
				|  |  |   *
 | 
	
	
		
			
				|  | @@ -15,9 +33,9 @@ import org.springframework.web.bind.annotation.*;
 | 
	
		
			
				|  |  |  @AllArgsConstructor
 | 
	
		
			
				|  |  |  @RestController
 | 
	
		
			
				|  |  |  @RequestMapping("/ccb")
 | 
	
		
			
				|  |  | -public class CcbController{
 | 
	
		
			
				|  |  | +public class CcbController {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -//    private final CcbHttpService ccbHttpService;
 | 
	
		
			
				|  |  | +    //    private final CcbHttpService ccbHttpService;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private CcbHttpService ccbHttpService;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -94,8 +112,7 @@ public class CcbController{
 | 
	
		
			
				|  |  |       * @return 结果
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      @PostMapping("/syncOrg")
 | 
	
		
			
				|  |  | -    public Page syncOrg(@RequestBody SyncOrg syncOrg)
 | 
	
		
			
				|  |  | -    {
 | 
	
		
			
				|  |  | +    public Page syncOrg(@RequestBody SyncOrg syncOrg) {
 | 
	
		
			
				|  |  |          return ccbHttpService.syncOrg(syncOrg);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -195,8 +212,7 @@ public class CcbController{
 | 
	
		
			
				|  |  |       * @return 结果
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      @PostMapping("/listAllDevices")
 | 
	
		
			
				|  |  | -    public Devices listAllDevices(@RequestBody Devices devices)
 | 
	
		
			
				|  |  | -    {
 | 
	
		
			
				|  |  | +    public Devices listAllDevices(@RequestBody Devices devices) {
 | 
	
		
			
				|  |  |          return ccbHttpService.listAllDevices(devices);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -207,8 +223,7 @@ public class CcbController{
 | 
	
		
			
				|  |  |       * @return 结果
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      @GetMapping("/findDeviceById")
 | 
	
		
			
				|  |  | -    public DeviceDetail findDeviceById(@RequestParam(value = "deviceId") String deviceId)
 | 
	
		
			
				|  |  | -    {
 | 
	
		
			
				|  |  | +    public DeviceDetail findDeviceById(@RequestParam(value = "deviceId") String deviceId) {
 | 
	
		
			
				|  |  |          return ccbHttpService.findDeviceById(deviceId);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -219,8 +234,7 @@ public class CcbController{
 | 
	
		
			
				|  |  |       * @return 结果
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      @PostMapping("/findDevicesByStorage")
 | 
	
		
			
				|  |  | -    public Devices findDevicesByStorage(@RequestBody DevicesByStorage devicesByStorage)
 | 
	
		
			
				|  |  | -    {
 | 
	
		
			
				|  |  | +    public Devices findDevicesByStorage(@RequestBody DevicesByStorage devicesByStorage) {
 | 
	
		
			
				|  |  |          return ccbHttpService.findDevicesByStorage(devicesByStorage);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -231,8 +245,7 @@ public class CcbController{
 | 
	
		
			
				|  |  |       * @return 结果
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      @GetMapping("/findDeviceData")
 | 
	
		
			
				|  |  | -    public FindDeviceData findDeviceData(@RequestParam(value = "deviceId") String deviceId)
 | 
	
		
			
				|  |  | -    {
 | 
	
		
			
				|  |  | +    public FindDeviceData findDeviceData(@RequestParam(value = "deviceId") String deviceId) {
 | 
	
		
			
				|  |  |          return ccbHttpService.findDeviceData(deviceId);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -243,9 +256,82 @@ public class CcbController{
 | 
	
		
			
				|  |  |       * @return 结果
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      @PostMapping("/findDeviceHistoryData")
 | 
	
		
			
				|  |  | -    public FindDeviceData findDeviceHistoryData(@RequestBody HistoryData historyData)
 | 
	
		
			
				|  |  | -    {
 | 
	
		
			
				|  |  | +    public FindDeviceData findDeviceHistoryData(@RequestBody HistoryData historyData) {
 | 
	
		
			
				|  |  |          return ccbHttpService.findDeviceHistoryData(historyData);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 设备异常告警
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  | +     * @return 结果
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @GetMapping("/deviceAlarm")
 | 
	
		
			
				|  |  | +    public AjaxResult deviceAlarm() {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        Date date = new Date();
 | 
	
		
			
				|  |  | +        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 | 
	
		
			
				|  |  | +        String time = simpleDateFormat.format(date);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        DeviceAlarm deviceAlarm = new DeviceAlarm();
 | 
	
		
			
				|  |  | +        deviceAlarm.setReqUser("涂宝");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        List<DeviceException> deviceExceptionList = new ArrayList<>();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        DeviceException deviceException = new DeviceException();
 | 
	
		
			
				|  |  | +        deviceException.setWarehouseName("630号 ");
 | 
	
		
			
				|  |  | +        deviceException.setWarehouseNo("630号");
 | 
	
		
			
				|  |  | +        deviceException.setShelvesName("黄岛区");
 | 
	
		
			
				|  |  | +        deviceException.setBTypeName("设备异常");
 | 
	
		
			
				|  |  | +        deviceException.setBType("异常");
 | 
	
		
			
				|  |  | +        deviceException.setReMark("设备连接异常");
 | 
	
		
			
				|  |  | +        deviceException.setETime(time);
 | 
	
		
			
				|  |  | +        deviceException.setElectronicTag("0101");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        List<DevicesDetail> devicesDetailList = DevicesDetail.date();
 | 
	
		
			
				|  |  | +        deviceException.setDeviceInfo(devicesDetailList.get(0));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        deviceExceptionList.add(deviceException);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        deviceAlarm.setDeviceException(deviceExceptionList);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        System.out.println("请求内容:"+JsonUtil.toJson(deviceAlarm));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        String requestTime = DateUtils.dateTimeNow() + (Math.random() * 9 + 1) * 100000;
 | 
	
		
			
				|  |  | +        // 签名内容
 | 
	
		
			
				|  |  | +        String str = "appId=" + CcbConstants.APP_ID + "&"
 | 
	
		
			
				|  |  | +                + "secretKey=" + CcbConstants.SECRET_KEY + "&"
 | 
	
		
			
				|  |  | +                + "platformId=" + CcbConstants.PLATFORM_ID + "&"
 | 
	
		
			
				|  |  | +                + "requestTime=" + requestTime + "&"
 | 
	
		
			
				|  |  | +                + "body=" + JsonUtil.toJson(deviceAlarm);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        OkHttpClient okHttpClient = new OkHttpClient();
 | 
	
		
			
				|  |  | +        Request request = new Request.Builder()
 | 
	
		
			
				|  |  | +                .addHeader("content-type", "application/json")
 | 
	
		
			
				|  |  | +                .addHeader("X-RC-AppId", CcbConstants.APP_ID)
 | 
	
		
			
				|  |  | +                .addHeader("X-RC-Sign", ShaUtil.sha256(str))
 | 
	
		
			
				|  |  | +                .addHeader("X-RC-SignType", "SHA256")
 | 
	
		
			
				|  |  | +                .addHeader("X-RC-RequestTime", requestTime)
 | 
	
		
			
				|  |  | +                .addHeader("X-RC-RLF-Uid", CcbConstants.PLATFORM_ID)
 | 
	
		
			
				|  |  | +                .url(CcbConstants.DEVICE_ALARM)
 | 
	
		
			
				|  |  | +                .post(okhttp3.RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(deviceAlarm)))
 | 
	
		
			
				|  |  | +                .build();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        String s;
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            s = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
 | 
	
		
			
				|  |  | +            System.out.println("请求成功返回信息:"+s);
 | 
	
		
			
				|  |  | +        } catch (IOException e) {
 | 
	
		
			
				|  |  | +            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 | 
	
		
			
				|  |  | +            return AjaxResult.error("请求银行反馈异常," + e.getMessage());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        JSONObject result = JSON.parseObject(s);
 | 
	
		
			
				|  |  | +        if (!CcbConstants.SUCCESS.equals(result.getString("result"))) {
 | 
	
		
			
				|  |  | +            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 | 
	
		
			
				|  |  | +            return AjaxResult.error("请求银行反馈失败," + result.getString("reason"));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return AjaxResult.success("成功");
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 |