Browse Source

双碳模块对接车辆排放分析接口

ZhangManMan 2 years ago
parent
commit
ae536ac5b2

+ 5 - 0
src/main/java/com/sky/ioc/config/RestTemplateConfig.java

@@ -1,7 +1,10 @@
 package com.sky.ioc.config;
 
+import com.sky.ioc.job.LoginTokenJob;
 import com.sky.ioc.mapper.job.TokenMapper;
+import com.sky.ioc.service.system.UserService;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.web.client.RestTemplateBuilder;
 import org.springframework.context.annotation.Bean;
@@ -48,10 +51,12 @@ public class RestTemplateConfig {
         return build();
     }
 
+
     public RestTemplate build() {
         Map<String,String> tokenMap = tokenMapper.getNewToken();
         String token ="Bearer eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6IjUwZTU1NTRkLWJjYzYtNGRhMS1iZDUxLWFhNTc3YzU4YTFiNCIsInVzZXJuYW1lIjoiYWRtaW4ifQ.X10VPYJfeeRTka7OtqNPOGMpL4QkW3fR_TfCKXCmO-yXbIIrr_40fcwiVnpXfYVENo_BvXWEACRd-Y6nXsbkog";
         if(tokenMap!=null){
+
             token = "Bearer "+tokenMap.get("token");
         }
         // 默认请求头

+ 2 - 2
src/main/java/com/sky/ioc/controller/carbon/CarbonController.java

@@ -53,8 +53,8 @@ public class CarbonController {
     @ApiOperation("碳排放占比")
     @PostMapping("/getCarbonProportion")
     public ReturnMsg getCarbonProportion(@RequestBody IocParam iocParam){
-        return carbonService.getCarbonProportion(iocParam);
-      //  return carbonService.getCarbonProportionData(iocParam);
+       // return carbonService.getCarbonProportion(iocParam);
+        return carbonService.getCarbonProportionData(iocParam);
     }
 
 

+ 2 - 8
src/main/java/com/sky/ioc/controller/carbon/VehicleController.java

@@ -47,7 +47,8 @@ public class VehicleController {
     @ApiOperation("车辆排放情况")
     @PostMapping("/getVehicleInfo")
     public ReturnMsg getVehicleInfo(@RequestBody IocParam iocParam){
-        return carCarbonService.getVehicleInfo(iocParam);
+       /* return carCarbonService.getVehicleInfo(iocParam);*/
+        return carCarbonService.getVehicleInfoData(iocParam);
     }
 
 
@@ -60,13 +61,6 @@ public class VehicleController {
     }
 
 
-    @Autowired
-    IllegalParkingService illegalParkingService;
-    @ApiOperation("车辆排放排名")
-    @GetMapping("/getData")
-    public ReturnMsg getData(){
-        return illegalParkingService.getIllegalParkingData();
-    }
 
 
 }

+ 5 - 1
src/main/java/com/sky/ioc/job/LoginTokenJob.java

@@ -8,6 +8,7 @@ import org.quartz.Job;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
@@ -25,11 +26,14 @@ public class LoginTokenJob implements Job {
     @Autowired
     TokenMapper tokenMapper;
 
+    @Value("${sky.dataIp}")
+    private String dataIp;
+
     @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         log.info(String.format("获取登录token!  时间:" + new Date()));
         // 1.请求URL
-        String postUrl = "http://192.168.1.45:9001/api/auth/login";
+        String postUrl = "http://"+dataIp+"/api/auth/login";
         // 2.请求参数JSON格式
         Map<String,String> map = tokenMapper.getNewToken();
         if(map==null){

+ 2 - 0
src/main/java/com/sky/ioc/service/carbon/CarCarbonService.java

@@ -8,4 +8,6 @@ public interface CarCarbonService {
     ReturnMsg  getVehicleInfo(IocParam iocParam);
 
     ReturnMsg  getVehicleInfoOrder(IocParam iocParam);
+
+    ReturnMsg  getVehicleInfoData(IocParam iocParam);
 }

+ 59 - 0
src/main/java/com/sky/ioc/service/carbon/impl/CarCarbonServiceImpl.java

@@ -2,6 +2,8 @@ package com.sky.ioc.service.carbon.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.sky.ioc.config.RestTemplateConfig;
+import com.sky.ioc.entity.Cake;
 import com.sky.ioc.entity.Indeicator;
 import com.sky.ioc.entity.Label;
 import com.sky.ioc.entity.domain.space.Company;
@@ -12,21 +14,27 @@ import com.sky.ioc.mapper.carbon.CarCarbonMapper;
 import com.sky.ioc.mapper.space.CompanyMapper;
 import com.sky.ioc.mapper.space.DepartmentMapper;
 import com.sky.ioc.service.carbon.CarCarbonService;
+import com.sky.ioc.service.system.UserService;
 import com.sky.ioc.tool.DateUtil;
 import com.sky.ioc.tool.GeneralMethod;
 import com.sky.ioc.tool.MathUtils;
 import com.sky.ioc.tool.ReturnMsg;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
 
 import java.text.DecimalFormat;
 import java.util.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.stream.Collectors;
 
 @Service
+@Slf4j
 public class CarCarbonServiceImpl implements CarCarbonService {
 
     @Autowired
@@ -38,6 +46,15 @@ public class CarCarbonServiceImpl implements CarCarbonService {
     @Autowired
     CompanyMapper companyMapper;
 
+    @Autowired
+    private RestTemplateConfig restTemplateConfig;
+
+    //车辆排放统计
+    final static  String CAR_MISSION_URL="/api/statistics/carbon/vehicle/getVehicleCarbonMission";
+
+    @Autowired
+    UserService userService;
+
     @Override
     public ReturnMsg getVehicleCoreIndicators(IocParam iocParam) {
         Indeicator indeicator = new Indeicator();
@@ -126,4 +143,46 @@ public class CarCarbonServiceImpl implements CarCarbonService {
        // List<Label> labels1 = GeneralMethod.getInstance().dataGeneration(param, labKey);
         return ReturnMsg.ok(labels1);
     }
+
+    @Override
+    public ReturnMsg getVehicleInfoData(IocParam iocParam) {
+        String startStr = iocParam.getTimeRange().getStartDate().replace("/","-");
+        String endStr = iocParam.getTimeRange().getEndDate().replace("/","-");
+        String url = restTemplateConfig.addBaseUrl(CAR_MISSION_URL)+"?startTime="+startStr+"&endTime="+endStr+"&scope=day";
+        RestTemplate restTemplate = restTemplateConfig.build();
+        // 发送GET请求
+        ResponseEntity<Map> responseEntity = restTemplate.getForEntity(url, Map.class);
+        // 获取响应对象里的 body 对象
+        Map<String, Object> body = responseEntity.getBody();
+        // 获取状态码
+        Integer code = (Integer)body.get("code");
+        // 获取响应信息
+        String message = (String)body.get("msg");
+        if(code==200){
+            LinkedHashMap linkedHashMap = (LinkedHashMap) body.get("data");
+            ArrayList dataList = (ArrayList)linkedHashMap.get("dataList");
+            List<Label> labels1 = new ArrayList<>();
+            for(int i=0;i<dataList.size();i++){
+                LinkedHashMap json = (LinkedHashMap) dataList.get(i);
+                Label label = new Label();
+                JSONObject jsonObject = new JSONObject();
+                ArrayList companies = (ArrayList) json.get("dept");
+                for (int j = 0; j < companies.size(); j++) {
+                    LinkedHashMap company = (LinkedHashMap) companies.get(j);
+                    jsonObject.put(String.valueOf(company.get("name")),company.get("carbonEmission"));
+                }
+                label.setJsonObject(jsonObject);
+                label.setLabel(String.valueOf(json.get("date")));
+                labels1.add(label);
+            }
+            return ReturnMsg.ok(labels1);
+
+        }else{
+            log.info("获取碳排放类型数据:"+message);
+            if(message.equals("登录状态已过期")){
+                userService.getUserData();
+            }
+            return  ReturnMsg.fail(message);
+        }
+    }
 }

+ 1 - 1
src/main/java/com/sky/ioc/service/carbon/impl/CarbonServiceImpl.java

@@ -888,7 +888,7 @@ public class CarbonServiceImpl implements CarbonService {
     public ReturnMsg getCarbonProportionData(IocParam iocParam) {
         String startStr = iocParam.getTimeRange().getStartDate().replace("/","-");
         String endStr = iocParam.getTimeRange().getEndDate().replace("/","-");
-        String url = restTemplateConfig.addBaseUrl(CARBON_TYPE_URL)+"?startTime="+startStr+"&endTime="+endStr+"&scope=month";
+        String url = restTemplateConfig.addBaseUrl(CARBON_TYPE_URL)+"?startTime="+startStr+"&endTime="+endStr+"&scope=year";
         RestTemplate restTemplate = restTemplateConfig.build();
         // 发送GET请求
         ResponseEntity<Map> responseEntity = restTemplate.getForEntity(url, Map.class);

+ 44 - 31
src/main/java/com/sky/ioc/service/system/impl/UserServiceImpl.java

@@ -1,5 +1,6 @@
 package com.sky.ioc.service.system.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sky.ioc.config.RestTemplateConfig;
@@ -7,6 +8,7 @@ import com.sky.ioc.constant.Constant;
 import com.sky.ioc.entity.domain.system.Menus;
 import com.sky.ioc.entity.domain.system.Users;
 import com.sky.ioc.entity.result.system.LoginUserVo;
+import com.sky.ioc.mapper.job.TokenMapper;
 import com.sky.ioc.mapper.system.MenuMapper;
 import com.sky.ioc.mapper.system.UserMapper;
 import com.sky.ioc.service.system.UserService;
@@ -17,6 +19,10 @@ import com.sky.ioc.tool.ReturnMsg;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
@@ -138,43 +144,50 @@ public class UserServiceImpl implements UserService {
         return ReturnMsg.ok(jsonObject, "登录成功");
     }
 
+    @Value("${sky.dataIp}")
+    private String dataIp;
 
+    @Autowired
+    TokenMapper tokenMapper;
 
     @Override
     public ReturnMsg getUserData() {
-        String url = restTemplateConfig.addBaseUrl(USER_URL)+"?pageNum=1&pageSize=1000";
-        // 创建RestTemplate
-        RestTemplate restTemplate = restTemplateConfig.build();
-        // 发送GET请求
-        ResponseEntity<Map> responseEntity = restTemplate.getForEntity(url, Map.class);
-        // 获取响应对象里的 body 对象
-        Map<String, Object> body = responseEntity.getBody();
-        // 获取状态码
-        Integer code = (Integer)body.get("code");
-        // 获取响应信息
-        String message = (String)body.get("msg");
+        log.info(String.format("获取登录token!  时间:" + new Date()));
+        // 1.请求URL
+        String postUrl = "http://"+dataIp+"/api/auth/login";
+        // 2.请求参数JSON格式
+        Map<String,String> map = tokenMapper.getNewToken();
+        if(map==null){
+            map = new HashMap<>();
+            map.put("username","admin");
+            map.put("password","admin123");
+            tokenMapper.addToken(1,"admin","admin123");
+        }
+        map.put("loginType","API-TOKEN");
+        String json = JSON.toJSONString(map);
+        // 3.创建RestTemplate
+        RestTemplate restTemplate = new RestTemplate();
+        // 4.设置RestTemplate参数(请求头和body)
+        HttpHeaders headers = new HttpHeaders();
+        MediaType mediaType = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(mediaType);
+        headers.add("Accept", "application/json");
+        HttpEntity<String> entity = new HttpEntity<>(json, headers);
+        // 5.使用RestTemplate发起请求与接收返回值
+        String resultData = restTemplate.postForObject(postUrl, entity, String.class);
+        JSONObject jsonObject = JSONObject.parseObject(resultData);
+        Integer code = jsonObject.getInteger("code");
+        String msg = jsonObject.getString("msg");
         if(code==200){
-            ArrayList list = (ArrayList) body.get("rows");
-            if(list!=null&&list.size()>0){
-                userMapper.delete(new LambdaQueryWrapper<Users>().gt(Users::getId,2));
-                for (int i=0;i<list.size();i++){
-                    LinkedHashMap json = (LinkedHashMap) list.get(i);
-                    Users users = new Users();
-                    users.setId((Integer) json.get("id"));
-                    users.setUserName(String.valueOf(json.get("staffNo")));
-                    users.setName(String.valueOf(json.get("staffName")));
-                    users.setPhone(String.valueOf(json.get("phone")));
-                    users.setPassword(Pbkdf2Sha256Digest.encode("123456"));
-                    userMapper.insert(users);
-
-                }
-            }
-            return ReturnMsg.ok();
-
+            JSONObject data = jsonObject.getJSONObject("data");
+            String token = data.getString("access_token");
+            String id = String.valueOf(map.get("id"));
+            tokenMapper.updateToken(Integer.parseInt(id),token);
+            log.info("token : "+token);
+            //  System.out.println("data   "+data.getString(""));
         }else{
-            log.info("获取双碳通知数据:"+message);
-            return  ReturnMsg.fail(message);
+            log.info("登录接口失败:"+msg);
         }
-      //  return null;
+       return null;
     }
 }