From fdeaff15619f5f2e851f74f7b5e2b203b157856d Mon Sep 17 00:00:00 2001
From: wang-hao-jie <1550036656@qq.com>
Date: 星期四, 09 十二月 2021 13:40:02 +0800
Subject: [PATCH] 违章记录

---
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/pc/StatisticController.java     |   25 ++++--
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticScheduleImpl.java     |   59 +++++++++-----
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/HaiKangPost.java                      |  112 ++++++++++++++++++++-------
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java        |   10 ++
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/DrivingRecordMapper.java            |    3 
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IDrivingRecordService.java         |    2 
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IDrivingRecordServiceImpl.java |   10 ++
 pom.xml                                                                                                |    1 
 8 files changed, 163 insertions(+), 59 deletions(-)

diff --git a/pom.xml b/pom.xml
index e82edec..b5d0307 100644
--- a/pom.xml
+++ b/pom.xml
@@ -194,6 +194,7 @@
                 <artifactId>selenium-java</artifactId>
                 <version>${selenuim.version}</version>
             </dependency>
+
         </dependencies>
     </dependencyManagement>
 </project>
\ No newline at end of file
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java
index c048824..c63db75 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java
@@ -64,6 +64,9 @@
     @Autowired
     private DepartmentService departmentService;
 
+    @Autowired
+    private IEventLogService iEventLogService;
+
     @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
     @ApiOperation(value = "閫氳繃id鑾峰彇")
     public Result<OrderTask> get(@PathVariable String id) {
@@ -270,6 +273,13 @@
             }
         }
         iOrderTaskService.saveOrUpdate(orderTask);
+
+        Car car = iCarService.getById(orderTask.getCarId());
+        EventLog eventLog = new EventLog();
+        eventLog.setCarNo(car.getCarNo());
+        eventLog.setRefId(orderId);
+        eventLog.setType(6);//6:閰嶉�佸畬鎴�
+        iEventLogService.saveOrUpdate(eventLog);
         return ResultUtil.success("娣诲姞鎴愬姛");
     }
 
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/pc/StatisticController.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/pc/StatisticController.java
index 578fa22..0efae0b 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/pc/StatisticController.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/pc/StatisticController.java
@@ -13,6 +13,7 @@
 import cn.exrick.xboot.your.service.IOrderTaskService;
 import cn.exrick.xboot.your.util.HaiKangPost;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import io.swagger.annotations.Api;
@@ -45,6 +46,9 @@
 
     @Autowired
     private ICarService iCarService;
+
+    @Autowired
+    private HaiKangPost haiKangPost;
 
     @RequestMapping(value = "/getIndex1", method = RequestMethod.GET)
     @ApiOperation(value = "鑾峰彇棣栭〉鏁版嵁")
@@ -81,13 +85,16 @@
         return new ResultUtil<Object>().setData(data.getRecords());
     }
 
-//    @RequestMapping(value = "/getCars", method = RequestMethod.GET)
-//    @ApiOperation(value = "鑾峰彇杞﹁締淇℃伅")
-//    public Result<Object> getCars() {
-//        List<Car> list = iCarService.list();
-//        String codes[] = new String[list.size()];
-//
-//        HaiKangPost.findLatestGps()
-//        return new ResultUtil<Object>().setData(data.getRecords());
-//    }
+    @RequestMapping(value = "/getCars", method = RequestMethod.GET)
+    @ApiOperation(value = "鑾峰彇杞﹁締瀹氫綅淇℃伅")
+    public Result<Object> getCars() {
+        List<Car> list = iCarService.list();
+        String codes[] = new String[list.size()];
+
+        for(int i=0;i<list.size();i++){
+            codes[i] = list.get(i).getCode();
+        }
+        String latestGps = haiKangPost.findLatestGps(codes);
+        return new ResultUtil<Object>().setData(JSONUtil.parseObj(latestGps));
+    }
 }
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/DrivingRecordMapper.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/DrivingRecordMapper.java
index 248ce3e..9e530bc 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/DrivingRecordMapper.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/DrivingRecordMapper.java
@@ -17,4 +17,7 @@
 
     @Select("select min(mileage) from t_driving_record where user_id=#{userId}")
     Integer minByUserId(String userId);
+
+    @Select("select sum(likes) from t_driving_record where user_id=#{userId}")
+    Integer sumLikeByUserId(String userId);
 }
\ No newline at end of file
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticScheduleImpl.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticScheduleImpl.java
index 4728a4c..d314e9b 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticScheduleImpl.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticScheduleImpl.java
@@ -33,8 +33,11 @@
     @Autowired
     private ICustomerService iCustomerService;
 
+    @Autowired
+    private IAlarmService iAlarmService;
+
     @Scheduled(cron="0 0 * * * ?")//姣忔櫄鍑屾櫒1鐐规墽琛�
-    public void execute() throws IOException {
+    public void execute(){
         List<User> all = userService.findAll();
         for(User user:all){
             Integer type2 = user.getType2();
@@ -51,49 +54,65 @@
                     Integer max = iDrivingRecordService.maxByUserId(user.getId());
                     Integer min = iDrivingRecordService.minByUserId(user.getId());
                     if(max==null||min==null){
-                        one.setSafeDriving(0);
-                        one.setDriving(0);
+                        one.setSafeDriving(0);//瀹夊叏椹鹃┒閲岀▼
+                        one.setDriving(0);//椹鹃┒閲岀▼
                     }else{
-                        one.setSafeDriving(max-min);
-                        one.setDriving(max-min);
+                        one.setSafeDriving(max-min);//瀹夊叏椹鹃┒閲岀▼
+                        one.setDriving(max-min);//椹鹃┒閲岀▼
                     }
 
                     QueryWrapper<DrivingRecord> wrapper2 = new QueryWrapper<>();
                     wrapper2.eq("user_id",user.getId());
                     int count = iDrivingRecordService.count(wrapper2);
-                    one.setOutCar(count);
+                    one.setOutCar(count);//鍑鸿溅娆℃暟
 
+                    one.setLikes(iDrivingRecordService.sumLikeByUserId(user.getId()));//鐐硅禐鏁�
+
+                    QueryWrapper<Alarm> wrapper3 = new QueryWrapper<>();
+                    wrapper3.eq("car_user_id",user.getId());
+                    wrapper3.eq("type",1);
+                    one.setFatigueDriving(iAlarmService.count(wrapper3));//鐤插姵椹鹃┒
+                    wrapper3.eq("type",3);
+                    one.setNoBelt(iAlarmService.count(wrapper3));//涓嶇郴瀹夊叏甯�
+                    wrapper3.eq("type",4);
+                    one.setSmoking(iAlarmService.count(wrapper3));//鎶界儫
+                    wrapper3.eq("type",2);
+                    one.setPhone(iAlarmService.count(wrapper3));//鎺ユ墦鐢佃瘽
                 }
                 //閰嶉�佸憳
                 if(type2==1){
                     QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<>();
                     wrapper2.eq("user_id",user.getId());
                     int count = iOrderTaskService.count(wrapper2);
+                    one.setSends(count);//閰嶉�佹鏁�
+
                     wrapper2.ne("status",0);
                     int count2 = iOrderTaskService.count(wrapper2);
-                    wrapper2.ne("level",0);
-                    wrapper2.gt("level",2);
-                    int count5 = iOrderTaskService.count(wrapper2);
-                    if(count2==0){
-                        one.setLikesRate(0);
-                    }else{
-                        int rate = (count5/count2)*100;
-                        one.setLikesRate(rate);
-                    }
-
-                    one.setSends(count);
-                    one.setSends2(count2);
+                    one.setSends2(count2);//閫佽揪娆℃暟
 
                     QueryWrapper<Area> wrapper3 = new QueryWrapper<>();
                     wrapper3.eq("user_id",user.getId());
                     Area area = iAreaService.getOne(wrapper3);
-
                     if(area!=null){
                         QueryWrapper<Customer> wrapper4 = new QueryWrapper<>();
                         wrapper4.eq("area_id",area.getId());
                         int count3 = iCustomerService.count(wrapper4);
-                        one.setService(count3);
+                        one.setService(count3);//鏈嶅姟鍟嗘埛鏁�
                     }
+
+                    int i = iOrderTaskService.countLike();
+                    one.setLikes(i);//鐐硅禐娆℃暟
+                    int likeCount = iOrderTaskService.count();
+                    if(likeCount==0){
+                        one.setLikesRate(0);//鐐硅禐鐜�
+                    }else{
+                        one.setLikesRate((i*100)/likeCount);//鐐硅禐鐜�
+                    }
+
+                    QueryWrapper<Alarm> wrapper4 = new QueryWrapper<>();
+                    wrapper4.eq("follow_user_id",user.getId());
+                    wrapper4.eq("type",5);
+                    one.setAbnormalOpen(iAlarmService.count(wrapper4));//寮傚父寮�鍚�
                 }
 
                 iUserStatisticService.saveOrUpdate(one);
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IDrivingRecordService.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IDrivingRecordService.java
index 6643ca7..b2ff5d4 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IDrivingRecordService.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IDrivingRecordService.java
@@ -14,4 +14,6 @@
     Integer maxByUserId(String id);
 
     Integer minByUserId(String id);
+
+    int sumLikeByUserId(String id);
 }
\ No newline at end of file
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IDrivingRecordServiceImpl.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IDrivingRecordServiceImpl.java
index db22ed2..d733a57 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IDrivingRecordServiceImpl.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IDrivingRecordServiceImpl.java
@@ -33,4 +33,14 @@
     public Integer minByUserId(String userId) {
         return drivingRecordMapper.minByUserId(userId);
     }
+
+    @Override
+    public int sumLikeByUserId(String userId) {
+        Integer i = drivingRecordMapper.sumLikeByUserId(userId);
+        if(i==null){
+            return 0;
+        }else{
+            return i;
+        }
+    }
 }
\ No newline at end of file
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/HaiKangPost.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/HaiKangPost.java
index 2dac030..e315f23 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/HaiKangPost.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/HaiKangPost.java
@@ -1,37 +1,40 @@
 package cn.exrick.xboot.your.util;
 
 import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 import cn.exrick.xboot.your.vo.FindHistoryGpsRequest;
 import cn.exrick.xboot.your.vo.PlaybackURLsVo;
 import cn.exrick.xboot.your.vo.PreviewURLsVo;
 import cn.exrick.xboot.your.vo.TalkURLsVo;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
-import com.hikvision.artemis.sdk.ArtemisHttpUtil;
-import com.hikvision.artemis.sdk.config.ArtemisConfig;
+import com.hikvision.artemis.sdk.Client;
+import com.hikvision.artemis.sdk.Request;
+import com.hikvision.artemis.sdk.Response;
+import com.hikvision.artemis.sdk.constant.Constants;
+import com.hikvision.artemis.sdk.enums.Method;
+import org.springframework.stereotype.Component;
 
 
 /**
  * 娴峰悍杞︽満鎺ュ彛
  */
+@Component
 public class HaiKangPost {
 	/**
 	 * STEP1锛氳缃钩鍙板弬鏁帮紝鏍规嵁瀹為檯鎯呭喌,璁剧疆host appkey appsecret 涓変釜鍙傛暟.
 	 */
-	static {
-		ArtemisConfig.host = "111.63.178.115:1443";// 骞冲彴闂ㄦ埛/nginx鐨処P鍜岀鍙o紙蹇呴』浣跨敤https鍗忚锛宧ttps绔彛榛樿涓�443锛�
-		ArtemisConfig.appKey = "28156526"; // 绉橀挜appkey
-		ArtemisConfig.appSecret = "MNkyjHuids4XxFONSOaL";// 绉橀挜appSecret
-	}
 	/**
 	 * STEP2锛氳缃甇penAPI鎺ュ彛鐨勪笂涓嬫枃
 	 */
 	private static final String ARTEMIS_PATH = "/artemis";
+	private static final String HOST = "111.63.178.115:1443";
+	private static final String APP_KEY = "28156526";
+	private static final String APP_SECRET = "MNkyjHuids4XxFONSOaL";
 
 	//鏍规嵁杞﹁締缂栧彿鍙婃椂娈佃幏鍙栧巻鍙插畾浣嶄俊鎭�
-	public static String findHistoryGps(FindHistoryGpsRequest findHistoryGpsRequest){
+	public String findHistoryGps(FindHistoryGpsRequest findHistoryGpsRequest){
 		String findHistoryGpsDataApi = ARTEMIS_PATH +"/api/rtsm/v1/gps/findHistoryGps";
 		Map<String,String> path = new HashMap<String,String>(2){
 			{
@@ -39,12 +42,12 @@
 			}
 		};
 		String body= JSONUtil.toJsonStr(findHistoryGpsRequest);
-		String result = ArtemisHttpUtil.doPostStringArtemis(path,body,null,null,"application/json");
+		String result = doPostStringArtemis(path,body,null,null,"application/json");
 		return result;
 	}
 
 	//鏌ヨ鎸囧畾杞﹁締缂栧彿鐨勬渶鏂板畾浣�
-	public static String findLatestGps(String[] code){
+	public String findLatestGps(String[] code){
 		String findHistoryGpsDataApi = ARTEMIS_PATH +"/api/rtsm/v1/gps/findLatestGps";
 		Map<String,String> path = new HashMap<String,String>(2){
 			{
@@ -52,12 +55,12 @@
 			}
 		};
 		String body= JSONUtil.toJsonStr(code);
-		String result = ArtemisHttpUtil.doPostStringArtemis(path,body,null,null,"application/json");
+		String result = doPostStringArtemis(path,body,null,null,"application/json");
 		return result;
 	}
 
 	//鑾峰彇鐩戞帶鐐归瑙堝彇娴乁RL
-	public static String previewURLs(PreviewURLsVo previewURLsVo){
+	public String previewURLs(PreviewURLsVo previewURLsVo){
 		String findHistoryGpsDataApi = ARTEMIS_PATH +"/api/video/v1/cameras/previewURLs";
 		Map<String,String> path = new HashMap<String,String>(2){
 			{
@@ -65,12 +68,12 @@
 			}
 		};
 		String body= JSONUtil.toJsonStr(previewURLsVo);
-		String result = ArtemisHttpUtil.doPostStringArtemis(path,body,null,null,"application/json");
+		String result = doPostStringArtemis(path,body,null,null,"application/json");
 		return result;
 	}
 
 	//鑾峰彇鐩戞帶鐐瑰洖鏀惧彇娴乁RL
-	public static String playbackURLs(PlaybackURLsVo playbackURLsVo){
+	public String playbackURLs(PlaybackURLsVo playbackURLsVo){
 		String findHistoryGpsDataApi = ARTEMIS_PATH +"/api/video/v1/cameras/playbackURLs";
 		Map<String,String> path = new HashMap<String,String>(2){
 			{
@@ -78,12 +81,12 @@
 			}
 		};
 		String body= JSONUtil.toJsonStr(playbackURLsVo);
-		String result = ArtemisHttpUtil.doPostStringArtemis(path,body,null,null,"application/json");
+		String result = doPostStringArtemis(path,body,null,null,"application/json");
 		return result;
 	}
 
 	//璇煶瀵硅
-	public static String talkURLs(TalkURLsVo talkURLsVo){
+	public String talkURLs(TalkURLsVo talkURLsVo){
 		String findHistoryGpsDataApi = ARTEMIS_PATH +"/api/video/v1/cameras/talkURLs";
 		Map<String,String> path = new HashMap<String,String>(2){
 			{
@@ -91,12 +94,12 @@
 			}
 		};
 		String body= JSONUtil.toJsonStr(talkURLsVo);
-		String result = ArtemisHttpUtil.doPostStringArtemis(path,body,null,null,"application/json");
+		String result = doPostStringArtemis(path,body,null,null,"application/json");
 		return result;
 	}
 
 	//鎸変簨浠剁被鍨嬭幏鍙栦簨浠惰闃呬俊鎭�
-	public static String getTopicInfo(){
+	public String getTopicInfo(){
 		String findHistoryGpsDataApi = ARTEMIS_PATH +"/api/common/v1/event/getTopicInfo";
 		Map<String,String> path = new HashMap<String,String>(2){
 			{
@@ -108,20 +111,69 @@
 		map.put("eventTypes",eventTypes);
 		String body= JSONUtil.toJsonStr(map);
 		System.out.println(body);
-		String result = ArtemisHttpUtil.doPostStringArtemis(path,body,null,null,"application/json");
+		String result = doPostStringArtemis(path,body,null,null,"application/json");
 		return result;
 	}
 
-	public static void main(String[] args) {
-		getTopicInfo();
+	public String doPostStringArtemis(Map<String, String> path, String body, Map<String, String> querys, String accept, String contentType) {
+		String httpSchema = (String)path.keySet().toArray()[0];
+		if (httpSchema != null && !StrUtil.isEmpty(httpSchema)) {
+			String responseStr = null;
 
-//		FindHistoryGpsRequest findHistoryGpsRequest = new FindHistoryGpsRequest();
-//		findHistoryGpsRequest.setVehicleIndexCode("b279d865eabe497db465eb2f4d2cc87d");
-//		findHistoryGpsRequest.setPageNo(1);
-//		findHistoryGpsRequest.setPageSize(20);
-//		findHistoryGpsRequest.setBeginTime("2021-11-25T03:10:01.000+08:00");
-//		findHistoryGpsRequest.setEndTime("2021-11-25T12:10:01.000+08:00");
-//		System.out.println(findHistoryGps(findHistoryGpsRequest));
+			try {
+				Map<String, String> headers = new HashMap();
+				if (StrUtil.isNotBlank(accept)) {
+					headers.put("Accept", accept);
+				} else {
+					headers.put("Accept", "*/*");
+				}
+
+				if (StrUtil.isNotBlank(contentType)) {
+					headers.put("Content-Type", contentType);
+				} else {
+					headers.put("Content-Type", "application/text;charset=UTF-8");
+				}
+
+				Request request = new Request(Method.POST_STRING, httpSchema + HOST, (String)path.get(httpSchema), APP_KEY, APP_SECRET, Constants.DEFAULT_TIMEOUT);
+				request.setHeaders(headers);
+				request.setQuerys(querys);
+				request.setStringBody(body);
+				Response response = Client.execute(request);
+				responseStr = getResponseResult2(response);
+			} catch (Exception var10) {
+			}
+
+			return responseStr;
+		} else {
+			throw new RuntimeException("http鍜宧ttps鍙傛暟閿欒httpSchema: " + httpSchema);
+		}
+	}
+
+	private String getResponseResult2(Response response) {
+		String responseStr = null;
+		int statusCode = response.getStatusCode();
+		if (!String.valueOf(statusCode).startsWith("2") && !String.valueOf(statusCode).startsWith("3")) {
+			String msg = response.getErrorMessage();
+			responseStr = response.getBody();
+		} else {
+			responseStr = response.getBody();
+		}
+
+		return responseStr;
+	}
+
+
+	public static void main(String[] args) {
+		//getTopicInfo();
+
+		FindHistoryGpsRequest findHistoryGpsRequest = new FindHistoryGpsRequest();
+		findHistoryGpsRequest.setVehicleIndexCode("b279d865eabe497db465eb2f4d2cc87d");
+		findHistoryGpsRequest.setPageNo(1);
+		findHistoryGpsRequest.setPageSize(20);
+		findHistoryGpsRequest.setBeginTime("2021-11-25T03:10:01.000+08:00");
+		findHistoryGpsRequest.setEndTime("2021-11-25T12:10:01.000+08:00");
+		HaiKangPost haiKangPost = new HaiKangPost();
+		System.out.println(haiKangPost.findHistoryGps(findHistoryGpsRequest));
 
 //		String code[] = {"b279d865eabe497db465eb2f4d2cc87d"};
 //		System.out.println(findLatestGps(code));

--
Gitblit v1.9.1