From 0c51ea5f39e11279ccebbad241cbb09aa74ee1a2 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 13 十二月 2024 20:03:08 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit

---
 server/system_service/src/main/java/com/doumee/core/utils/Constants.java                                                     |   20 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsGisListRequest.java                         |   18 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/request/CarsAlarmListRequest.java             |   17 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java                            |   63 ++
 server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java                                                  |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/EnergyController.java                                       |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisStartEndInfoResponse.java               |   37 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/OnSitDispatchBoardVO.java             |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsDeviceDetaisResponse.java        |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformBooksMapper.java                                 |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java                                        |    5 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java                         |   13 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/PlatformJobRunActController.java                            |   12 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/TemperatureHumidityDataVO.java        |   26 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java                                     |    5 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java                                   |  453 +++++++++++++++
 server/system_service/src/main/java/com/doumee/dao/system/model/Notices.java                                                 |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                                   |   21 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/FightingAdminController.java                                |   10 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java                         |    7 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsEfcEventInfoResponse.java        |   67 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java                                      |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisListResponse.java                       |   21 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsAlarmResultListResponse.java     |   18 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsCircleStatusListRequest.java                |   16 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java                                   |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/FightingAdminCenterDataVO.java        |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsAlarmListResponse.java           |   70 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java                     |   30 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/BoardCarsListVO.java                  |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java                       |  155 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsCircleStatusListResponse.java              |   24 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisStatusInfoResponse.java                 |   24 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java                        |   17 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TemperatureHumidityDataResponse.java |   32 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java                                |   12 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/PlatformJobRunController.java                               |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TemperatureHumidityDataRequest.java  |   12 
 /dev/null                                                                                                                    |   35 -
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/TMSContants.java                                       |  197 ++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java                     |  183 +++++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsCircleStatusResultListResponse.java        |   22 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java                          |   14 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                                       |   27 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java                              |    4 
 45 files changed, 1,572 insertions(+), 139 deletions(-)

diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
index fb12ff8..69ed8e8 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -141,18 +141,20 @@
     public static final String WMS_GET_INVENTORYLIST_URL ="WMS_GET_INVENTORYLIST_URL" ;
     public static final String WMS_OUTBOUND_PLATFROM_URL ="WMS_OUTBOUND_PLATFROM_URL" ;
     public static final String TSM_PARAM ="TSM_PARAM" ;
-    public static final String TMS_ORDER_LIST_URL ="TMS_ORDER_LIST_URL" ;
-    public static final String TMS_ORDER_DETAIL_URL ="TMS_ORDER_DETAIL_URL" ;
-    public static final String TMS_LOCK_STATUS_URL ="TMS_LOCK_STATUS_URL" ;
     public static final String TMS_INTERFACE_URL_PREFIX ="TMS_INTERFACE_URL_PREFIX" ;
     public static final String MYSQL_BACKUP_CDOE ="MYSQL_BACKUP_CDOE" ;
     public static final String MYSQL_BACKUP_DIR ="MYSQL_BACKUP_DIR" ;
     public static final String EVENT_FILES_PRIVATE_DOMAIN ="EVENT_FILES_PRIVATE_DOMAIN" ;
     public static final String EVENT_FILES_PUBLIC_DOMAIN ="EVENT_FILES_PUBLIC_DOMAIN" ;
+    public static final String TEMPERATURE_HUMIDITY ="TEMPERATURE_HUMIDITY" ;
+
     public static final String HK_WXTOKEN_CONFIGID ="HK_WXTOKEN_CONFIGID" ;
     public static final String HK_WXTOKEN_TAGID ="HK_WXTOKEN_TAGID" ;
     public static final String WMS_TOTAL_STOCK_NUM ="WMS_TOTAL_STOCK_NUM" ;
     public static final String WX_REDIRECT_URL = "WX_REDIRECT_URL";
+    public static final String HK_CHANGNEI_SCREEN_INDEXCODES = "HK_CHANGNEI_SCREEN_INDEXCODES";
+    public static final String CITY_XH_REASON_ID ="CITY_XH_REASON_ID" ;
+    public static final String ATWL_XH_PLATFORM_ID ="ATWL_XH_PLATFORM_ID" ;
     public static  boolean DEALING_HK_SYNCPRIVILEGE= false;
     public static  boolean DEALING_HK_SYNCDEVICE = false;
     public static  boolean DEALING_HK_SYNCPLATFORM = false;
@@ -213,11 +215,11 @@
      */
     public static String getWxUrl(String code, WxUrlParams paramCode, String ywid) {
         String url = code.replace("${type}",paramCode.type+"").replace("${yw}",paramCode.yw).replace("${ywid}",ywid);
-        try {
-            url = URLEncoder.encode(code.replace("${type}",paramCode.type+"").replace("${yw}",paramCode.yw).replace("${ywid}",ywid),"UTF-8");
-        }catch (Exception e){
-
-        }
+//        try {
+//            url = URLEncoder.encode(code,"UTF-8");
+//        }catch (Exception e){
+//
+//        }
         return url;
     }
 
@@ -992,7 +994,7 @@
         WAIT_CALL(2, "宸茬鍒�","宸茬鍒�"),
         IN_WAIT(3, "鍏ュ洯绛夊緟","鍏ュ洯绛夊緟" ),
         CALLED(4, "宸插彨鍙�","宸插彨鍙�" ),
-        WORKING(5, "浣滀笟涓�","浣滀笟涓�" ),
+         WORKING(5, "浣滀笟涓�","浣滀笟涓�" ),
         DONE(6, "浣滀笟瀹屾垚 ","浣滀笟瀹屾垚" ),
         TRANSFERING(7, "杞Щ涓�","杞Щ涓�" ),
         EXCEPTION(8, "寮傚父鎸傝捣","寮傚父鎸傝捣" ),
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java b/server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java
index 6ccfe1b..a59b385 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java
@@ -43,6 +43,8 @@
         String visitTimeOutSignOut = "visitTimeOutSignOut";
         //璁垮鐢宠-鏈绂绘暟閲�-閫氱煡锛堢粰鎸囧畾鎺ユ敹浜猴級
         String visitTimeOutSignOutNum = "visitTimeOutSignOutNum";
+        //璁垮鐢宠-瀹℃壒閫氳繃閫氱煡锛堢粰琚闂汉锛�
+        String visitAuditSuccessToVisiter = "visitAuditSuccessToVisiter";
 
     }
 
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/Notices.java b/server/system_service/src/main/java/com/doumee/dao/system/model/Notices.java
index 1e9dfa6..a469a5c 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/Notices.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/Notices.java
@@ -91,7 +91,7 @@
     @ExcelColumn(name="鍏宠仈鍙傛暟1")
     private String param1;
 
-    @ApiModelProperty(value = "鐢ㄤ簬瀛樺偍 涓氬姟鐘舵�佷俊鎭� 0 =寰呭鐞�;1=宸插悓鎰�/宸插鐞�;2=宸叉嫆缁�/宸查��鍥�;3=宸茶浆浜�;4=宸叉挙閿�",notes = "鐢ㄤ簬瀛樺偍 涓氬姟鐘舵�佷俊鎭� 0 =寰呭鐞�;1=宸插悓鎰�/宸插鐞�;2=宸叉嫆缁�/宸查��鍥�;3=宸茶浆浜�;4=宸叉挙閿�")
+    @ApiModelProperty(value = "鐢ㄤ簬瀛樺偍 涓氬姟鐘舵�佷俊鎭� 0=寰呭鐞�;1=宸插悓鎰�/宸插鐞�;2=宸叉嫆缁�/宸查��鍥�;3=宸茶浆浜�;4=宸叉挙閿�",notes = "鐢ㄤ簬瀛樺偍 涓氬姟鐘舵�佷俊鎭� 0 =寰呭鐞�;1=宸插悓鎰�/宸插鐞�;2=宸叉嫆缁�/宸查��鍥�;3=宸茶浆浜�;4=宸叉挙閿�")
     @ExcelColumn(name="鍏宠仈鍙傛暟2")
     private String param2;
 
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java
index 139df94..260731b 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java
@@ -175,4 +175,11 @@
         return ApiResponse.success(  HKService.findDeviceAlarmPage(param));
     }
 
+    @ApiOperation("銆愭捣搴枫�戞俯婀垮害缁熻")
+    @PostMapping("/getTemperatureHumidityDataPage")
+    @LoginNoRequired
+    public ApiResponse<BaseResponse> getTemperatureHumidityDataPage(@RequestBody TemperatureHumidityDataRequest request, HttpServletResponse response) {
+        return ApiResponse.success(  HKService.temperatureHumidityDataStatistic(request));
+    }
+
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/EnergyController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/EnergyController.java
index 4fae75e..2a23a82 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/EnergyController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/EnergyController.java
@@ -51,6 +51,8 @@
          RegionEnergyListResponse  data=boardService.energyRegionData();
         return ApiResponse.success(data);
     }
+
+
     @LoginNoRequired
     @ApiOperation("瀹炴椂璐熻嵎鏇茬嚎")
     @GetMapping("/loadCurve")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/FightingAdminController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/FightingAdminController.java
index e727bd7..f3f15b5 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/FightingAdminController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/FightingAdminController.java
@@ -79,4 +79,14 @@
     }
 
 
+    @LoginNoRequired
+    @ApiOperation("娓╂箍搴︽暟鎹�")
+    @GetMapping("/getTemperatureHumidityData")
+    public ApiResponse<List<TemperatureHumidityDataVO>> getTemperatureHumidityData() {
+        List<TemperatureHumidityDataVO> list = boardService.getTemperatureHumidityData();
+        return ApiResponse.success(list);
+    }
+
+
+
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/PlatformJobRunActController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/PlatformJobRunActController.java
index 7db4ebd..643d77e 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/PlatformJobRunActController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/PlatformJobRunActController.java
@@ -36,7 +36,7 @@
 @Api(tags = "銆愮湅鏉垮ぇ灞忋�戝洯鍖虹墿娴佽繍琛岃皟搴︾湅鏉跨湡瀹�")
 @RestController
 @Slf4j
-@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/platformJobRunAct")
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/platformJobRun")
 public class PlatformJobRunActController extends BaseController {
 
     @Autowired
@@ -71,6 +71,7 @@
         BoardCarsListVO data = boardService.platformJobCarsList();
         return ApiResponse.success(data);
     }
+
     @LoginNoRequired
     @ApiOperation("鏍规嵁杞︾墝鍙锋煡璇綔涓氫俊鎭拰鍚堝悓淇℃伅闆嗗悎")
     @PostMapping("/getCarsJobDetails")
@@ -125,14 +126,7 @@
     @ApiOperation("浠婃棩鍏ュ簱閲忕粺璁�")
     @GetMapping("/totalInList")
     public ApiResponse<List<GeneralVO>> totalInList() {
-        List<GeneralVO> list = new ArrayList<>();
-        for (int i = 1; i < 4; i++) {
-            Random random = new Random();
-            GeneralVO data = new GeneralVO();
-            data.setName("鍘傚尯鍚嶇О_"+i);
-            data.setNum(BigDecimal.valueOf(random.nextInt(1000)));
-            list.add(data);
-        }
+        List<GeneralVO> list = boardService.todayTotalInList();
         return ApiResponse.success(list);
     }
 
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/PlatformJobRunController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/PlatformJobRunController.java
index a1533a7..33508f7 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/PlatformJobRunController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/PlatformJobRunController.java
@@ -40,7 +40,7 @@
 @Api(tags = "銆愮湅鏉垮ぇ灞忋�戝洯鍖虹墿娴佽繍琛岃皟搴︾湅鏉�")
 @RestController
 @Slf4j
-@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/platformJobRun")
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/platformJobRunOld")
 public class PlatformJobRunController extends BaseController {
 
     @Autowired
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java
index 0d89649..c4bbcdc 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java
@@ -36,12 +36,10 @@
 @Slf4j
 @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/security")
 public class SecurityController extends BaseController {
-
     @Autowired
     private BoardService boardService;
     @Autowired
     private VisitsService visitsService;
-
     @LoginNoRequired
     @ApiOperation("涓績鏁版嵁")
     @GetMapping("/centerData")
@@ -49,7 +47,6 @@
         SecurityBoardVO data = boardService.centerSecurityData();
         return ApiResponse.success(data);
     }
-
 
     @LoginNoRequired
     @ApiOperation("鍥尯瀹夐槻璁惧")
@@ -68,8 +65,6 @@
         WaningEventDataVO list = boardService.warningEventData(type);
         return ApiResponse.success(list);
     }
-
-
 
 
     @LoginNoRequired
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
index a41b594..2993237 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -1,10 +1,15 @@
 package com.doumee.core.haikang.model;
 
+import com.doumee.core.tms.model.TMSContants;
 import com.doumee.core.utils.Constants;
 import javafx.scene.effect.BlendMode;
 import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.List;
 
 @Data
 public class HKConstants {
@@ -26,6 +31,453 @@
      */
     public static final String ARTEMIS_PATH = "/artemis";
 
+    public static void main(String[] args) {
+        String t ="閲岀▼\t-30\t100\n" +
+                " 瓒呴�熸姤璀� (璁惧鍥存爮)\t-30\t8\n" +
+                " 杩涘嚭鍖哄煙/璺嚎鎶ヨ(璁惧鍥存爮)\t-30\t2\n" +
+                " 浜鸿劯鑰冨嫟\t-30\t11\n" +
+                " IC鍗¤�冨嫟\t-30\t11\n" +
+                " 浜鸿劯姣斿缁撴灉\t-30\t10\n" +
+                " 鐗规畩寮傚父鎶ヨ\t-30\t12\n" +
+                " 鍓嶅悜纰版挒鎶ヨ\t100\t1\n" +
+                " 杞﹂亾鍋忓悜鎶ヨ\t100\t2\n" +
+                " 杞﹁窛杩囪繎鎶ヨ\t100\t3\n" +
+                " 琛屼汉纰版挒鎶ヨ\t100\t4\n" +
+                " 棰戠箒鍙橀亾鎶ヨ\t100\t5\n" +
+                " 閬撹矾鏍囪瘑瓒呴檺鎶ヨ\t100\t6\n" +
+                " 閬撹矾鏍囧織瓒呴�熸姤璀t100\t16\n" +
+                " 涓诲姩鎶撴媿浜嬩欢\t100\t17\n" +
+                " 杞﹀帰杩囬亾琛屼汉妫�娴媆t100\t19\n" +
+                " 杞﹂亾鍋忕鍙砛t100\t20\n" +
+                " 杞﹂亾鍋忕宸t100\t21\n" +
+                " 璺彛鎶ヨ\t100\t30\n" +
+                " 瓒呴�熸姤璀t100\t31\n" +
+                " 鏂戦┈绾胯秴閫焅t100\t32\n" +
+                " 鏈ぜ璁╄浜篭t100\t33\n" +
+                " 杩濊鍗犻亾琛岄┒\t100\t34\n" +
+                " 闂孩鐏痋t100\t35\n" +
+                " 鐤插姵椹鹃┒鎶ヨ\t101\t1\n" +
+                " 鎺ユ墦鐢佃瘽鎶ヨ\t101\t2\n" +
+                " 鎶界儫鎶ヨ\t101\t3\n" +
+                " 鍒嗙椹鹃┒鎶ヨ\t101\t4\n" +
+                " 椹鹃┒鍛樺紓甯� (鍖呮嫭椹鹃┒鍛樼宀�)\t101\t5\n" +
+                " 閬尅\t101\t6\n" +
+                " 椹鹃┒鍛樹汉鑴歌韩浠借瘑鍒簨浠� (椹鹃┒鍛樻娴嬪紓甯革紝浜鸿劯涓嶅湪搴撲腑)\t101\t9\n" +
+                " 鏈郴瀹夊叏甯t101\t17\n" +
+                " 鏈郴瀹夊叏甯︽姤璀� 宸ョ▼杞t101\t10\n" +
+                " 绾㈠闃绘柇澧ㄩ暅\t101\t11\n" +
+                " 鍙屾墜鑴辩鏂瑰悜鐩榎t101\t18\n" +
+                " 鍗曟墜鑴辩鏂瑰悜鐩榎t101\t13\n" +
+                " 鏈埓瀹夊叏甯絓t101\t14\n" +
+                " 鑷姩鎶撴媿\t101\t16\n" +
+                " 闈炴硶鍏抽棬\t101\t29\n" +
+                " 闈炴硶寮�闂╘t101\t30\n" +
+                " 鐜╂墜鏈篭t101\t31\n" +
+                " 楗厭椹鹃┒\t101\t32\n" +
+                " 閱夐厭椹鹃┒\t101\t33\n" +
+                " 澶氫汉鑴告姤璀t101\t48\n" +
+                " 闂溂\t101\t34\n" +
+                " 鍓岮EB鎶ヨ\t101\t101\n" +
+                " 涓嶆埓鍙g僵鎶ヨ\t101\t100\n" +
+                " 鑳庡帇鎶ヨ\t103\n" +
+                " 鍚庢柟鎺ヨ繎鎶ヨ\t102\t1\n" +
+                " 宸︿晶鍚庢柟鎺ヨ繎鎶ヨ\t102\t2\n" +
+                " 鍙充晶鍚庢柟鎺ヨ繎鎶ヨ\t102\t3\n" +
+                " 鍓嶅悜鎺ヨ繎鎶ヨ\t102\t4\n" +
+                " 鐤戜技闈炴硶娉ㄦ按鎶ヨ\t102\t5\n" +
+                " 鍓嶈秴澹版尝鎶ヨ\t102\t238\n" +
+                " 鍚庤秴澹版尝鎶ヨ\t102\t239\n" +
+                " 绱ф�ユ姤璀t102\t240\n" +
+                " 鎬ュ姞閫焅t104\t1\n" +
+                " 鎬ュ噺閫焅t104\t2\n" +
+                " 纰版挒\t104\t3\n" +
+                " 渚х炕\t104\t4\n" +
+                " 鎬ュ乏杞集\t104\t5\n" +
+                " 鎬ュ彸杞集\t104\t6\n" +
+                " 鎬ヨ浆寮�(涓嶅尯鍒嗗乏鍜屽彸)\t104\t7\n" +
+                " 鍓х儓棰犵案\t104\t255\n" +
+                " 娴嬫俯鎶ヨ\t170\n" +
+                " 椹鹃┒鍛樿瘉浠禱t163\t163\n" +
+                " 鍙宠浆寮秴閫焅t238\t1\n" +
+                " 鍙宠浆寮笉鍋滆溅\t238\t2\n" +
+                " 涓惧崌浜嬩欢\t172\t1\n" +
+                " 瀵嗛棴浜嬩欢\t172\t2\n" +
+                " 杞介噸浜嬩欢\t172\t3\n" +
+                " 鍓嶈鐩插尯鍒跺姩\t249 0xF9\t1\n" +
+                " 鍚庤鐩插尯鍒跺姩\t249\t2\n" +
+                " 鍓嶈秴澹版尝鍒跺姩\t249\t3\n" +
+                " 鍚庤秴澹版尝鍒跺姩\t249\t4\n" +
+                " 宸﹁鐩插尯鍒跺姩\t249\t5\n" +
+                " 鍙宠鐩插尯鍒跺姩\t249\t6\n" +
+                " 鍓岮EB鍒跺姩\t249\t7\n" +
+                " 鍓嶈鐩插尯棰勮\t249\t21\n" +
+                " 鍚庤鐩插尯棰勮\t249\t22\n" +
+                " 鍓嶈秴澹版尝棰勮\t249\t23\n" +
+                " 鍚庤秴澹版尝棰勮\t249\t24\n" +
+                " 宸﹁鐩插尯棰勮\t249\t25\n" +
+                " 鍙宠鐩插尯棰勮\t249\t26\n" +
+                " 鍓岮EB棰勮\t249\t27\n" +
+                " 涓诲姩涓婃姤鎶ヨ浜嬩欢\t160\t0\n" +
+                " 宸℃涓婃姤浜嬩欢\t160\t1\n" +
+                " 绱ф�ユ姤璀t25\t1\n" +
+                " 绱ф�ユ姤璀t-32\t0\n" +
+                " 瓒呴�熸姤璀t-32\t16\n" +
+                " 鐤插姵椹鹃┒\t-32\t32\n" +
+                " 鍗遍櫓棰勮\t-32\t33\n" +
+                " GNSS妯″潡鏁呴殰\t-32\t2\n" +
+                " GNSS澶╃嚎鏈帴鍏t-32\t3\n" +
+                " GNSS澶╃嚎鐭矾\t-32\t4\n" +
+                " 缁堢涓荤數婧愭瑺鍘媆t-32\t5\n" +
+                " 缁堢涓荤數婧愭帀鐢礬t-32\t6\n" +
+                " LCD鎴栬�呮樉绀哄睆鏁呴殰\t-32\t7\n" +
+                " TTS妯″潡鏁呴殰\t-32\t46\n" +
+                " 鎽勫儚澶存晠闅淺t-32\t9\n" +
+                " 閬撹矾杩愯緭璇両C鍗℃ā鍧楁晠闅淺t-32\t34\n" +
+                " 瓒呴�熼璀t-32\t43\n" +
+                " 鐤插姵椹鹃┒棰勮\t-32\t35\n" +
+                " 杩濊琛岄┒鎶ヨ(2019)\t-32\t45\n" +
+                " 鑳庡帇(2019)\t-32\t44\n" +
+                " 褰撳ぉ绱椹鹃┒瓒呮椂\t-32\t18\n" +
+                " 瓒呮椂鍋滆溅\t-32\t19\n" +
+                " 杩涘嚭鍖哄煙\t-32\t20\n" +
+                " 杩涘嚭璺嚎\t-32\t20\n" +
+                " 璺琛岄┒鏃堕棿涓嶈冻/杩囬暱\t-32\t21\n" +
+                " 璺嚎鍋忕鎶ヨ\t-32\t36\n" +
+                " 杞﹁締VSS鏁呴殰\t-32\t37\n" +
+                " 杞﹁締娌归噺寮傚父\t-32\t38\n" +
+                " 杞﹁締琚洍\t-32\t39\n" +
+                " 杞﹁締闈炴硶鐐圭伀\t-32\t24\n" +
+                " 杞﹁締闈炴硶浣嶇Щ\t-32\t25\n" +
+                " 纰版挒鎶ヨ\t-32\t40\n" +
+                " 渚х炕棰勮\t-32\t41\n" +
+                " 浜鸿劯閫氱煡\t-30\t13\n" +
+                " 涓婄彮鎵撳崱\t-30\t14\n" +
+                " 瀛樺偍鍣ㄦ晠闅滄姤璀t-30\t23\n" +
+                " 鍙告満鎷斾簡TF鍗t-30\t50\n" +
+                " 鍓╀綑娌归噺鐧惧垎姣擻t-30\t102\n" +
+                " 骞冲潎娌硅�梊t-30\t103\n" +
+                " 娴锋嫈楂樺害\t-30\t104\n" +
+                " 鏁忔劅璇嶄簨浠禱t-30\t900\n" +
+                " 杞藉涓嶆墦琛╘t-33\t0\n" +
+                " 绌鸿浆閲峔t-33\t2\n" +
+                " 鎬ュ姞閫焅t104\t1\n" +
+                " 鎬ュ噺閫焅t104\t2\n" +
+                " 纰版挒\t104\t3\n" +
+                " 渚х炕\t104\t4\n" +
+                " 鎬ュ乏杞集\t104\t5\n" +
+                " 鎬ュ彸杞集\t104\t6\n" +
+                " 杩濊杩愯惀鎶ヨ\t-33\t1\n" +
+                " 寮傚父浜ゆ帴鐝璡t0\t1\n" +
+                " 杞藉鐘舵�侀暱鏃堕棿鍋滅暀\t0\t2\n" +
+                " 瓒呴�焅t0\t3\n" +
+                " 鑰佽檸琛╘t0\t5\n" +
+                " 鍔寔鎶ヨ\t1\t0\n" +
+                " 璁惧鐮村潖鎶ヨ\t1\t1\n" +
+                " 鐢熺悊鐤插姵鎶ヨ\t101\t1\n" +
+                " 寮�杞︽墦鐢佃瘽鎶ヨ\t101\t2\n" +
+                " 寮�杞︽娊鐑熸姤璀t101\t3\n" +
+                " 娉ㄦ剰鍔涘垎鏁t101\t4\n" +
+                " 瓒呮椂椹鹃┒\t101\t8\n" +
+                " 椹鹃┒鍛樻娴嬪紓甯�(浜鸿劯涓嶅湪搴撲腑)\t101\t9\n" +
+                " 鏈郴瀹夊叏甯t101\t17\n" +
+                " 鍙屾墜鑴辩鏂瑰悜鐩榎t101\t18\n" +
+                " 椹鹃┒鍛樻娴嬪紓甯�(鏈娴嬪埌椹鹃┒鍛�)\t101\t5\n" +
+                " 鎺㈠ご閬尅\t101\t6\n" +
+                " 涓嶆埓鍙g僵鎶ヨ\t101\t100\n" +
+                " 鍏朵粬\t101\t255\n" +
+                " 璺彛瓒呴�焅t100\t7\n" +
+                " 涓嶇ぜ璁╄浜篭t100\t18\n" +
+                " 琛屼汉闃叉挒\t100\t19\n" +
+                " 杞﹁窛绂昏繃杩慭t100\t3\n" +
+                " 杞﹂亾鍋忕鍙砛t100\t20\n" +
+                " 杞﹂亾鍋忕宸t100\t21\n" +
+                " 鍓嶅悜纰版挒\t100\t1\n" +
+                " 鍏朵粬\t100\t255\n" +
+                " 绱ф�ユ姤璀t-32\t0\n" +
+                " 棰勮\t-32\t1\n" +
+                " 鍗槦瀹氫綅妯″潡鍙戠敓鏁呴殰\t-32\t2\n" +
+                " 鍗槦瀹氫綅澶╃嚎鏈帴鎴栬�呰鍓柇\t-32\t3\n" +
+                " 鍗槦瀹氫綅澶╃嚎鐭矾\t-32\t4\n" +
+                " ISU 涓荤數婧愭瑺鍘媆t-32\t5\n" +
+                " ISU 涓荤數婧愭帀鐢礬t-32\t6\n" +
+                " LCD鏄剧ずISU鏁呴殰\t-32\t7\n" +
+                " 璇煶鍚堟垚妯″潡鏁呴殰\t-32\t8\n" +
+                " 鎽勫儚澶存晠闅淺t-32\t9\n" +
+                " 璁′环鍣ㄦ晠闅淺t-32\t10\n" +
+                " 鏈嶅姟璇勪环鍣ㄦ晠闅淺t-32\t11\n" +
+                " LED骞垮憡灞忓箷鏁呴殰\t-32\t12\n" +
+                " LCD鏄剧ず灞忔晠闅淺t-32\t13\n" +
+                " 瀹夊叏璁块棶妯″潡鏁呴殰\t-32\t14\n" +
+                " LED棰勭伅鏁呴殰\t-32\t15\n" +
+                " 瓒呴�熸姤璀t-32\t16\n" +
+                " 杩炵画椹鹃┒瓒呮椂\t-32\t17\n" +
+                " 褰撳ぉ绱椹鹃┒瓒呮椂\t-32\t18\n" +
+                " 瓒呮椂鍋滆溅\t-32\t19\n" +
+                " 杩涘嚭鍖哄煙/璺嚎\t-32\t20\n" +
+                " 璺琛岄┒鏃堕棿涓嶈冻\t-32\t21\n" +
+                " 绂佽璺琛岄┒\t-32\t22\n" +
+                " 杞﹂�熶紶鎰熷櫒鏁呴殰\t-32\t23\n" +
+                " 杞﹁締闈炴硶鐐圭伀\t-32\t24";
+        String[] tt  = t.split("\n");
+        List<String> list= new ArrayList<>();
+        int index = 0;
+        for(String s : tt){
+            String[] ttt =s.split("\t");
+            if(ttt.length<=2){
+                System.err.println(s);
+                continue;
+            }
+            String sss = "type"+index+"("+ index+",\""+ttt[0].replace(" ","")+"\"," + ttt[1]+","+ttt[2]+"),";
+            list.add(sss);
+            index++;
+        }
+        for(String s :list){
+            System.out.println(s);
+        }
+    }
+
+    public  enum CarsEventType {
+        type0(0,"閲岀▼",-30,100),
+        type1(1,"瓒呴�熸姤璀�(璁惧鍥存爮)",-30,8),
+        type2(2,"杩涘嚭鍖哄煙/璺嚎鎶ヨ(璁惧鍥存爮)",-30,2),
+        type3(3,"浜鸿劯鑰冨嫟",-30,11),
+        type4(4,"IC鍗¤�冨嫟",-30,11),
+        type5(5,"浜鸿劯姣斿缁撴灉",-30,10),
+        type6(6,"鐗规畩寮傚父鎶ヨ",-30,12),
+        type7(7,"鍓嶅悜纰版挒鎶ヨ",100,1),
+        type8(8,"杞﹂亾鍋忓悜鎶ヨ",100,2),
+        type9(9,"杞﹁窛杩囪繎鎶ヨ",100,3),
+        type10(10,"琛屼汉纰版挒鎶ヨ",100,4),
+        type11(11,"棰戠箒鍙橀亾鎶ヨ",100,5),
+        type12(12,"閬撹矾鏍囪瘑瓒呴檺鎶ヨ",100,6),
+        type13(13,"閬撹矾鏍囧織瓒呴�熸姤璀�",100,16),
+        type14(14,"涓诲姩鎶撴媿浜嬩欢",100,17),
+        type15(15,"杞﹀帰杩囬亾琛屼汉妫�娴�",100,19),
+        type16(16,"杞﹂亾鍋忕鍙�",100,20),
+        type17(17,"杞﹂亾鍋忕宸�",100,21),
+        type18(18,"璺彛鎶ヨ",100,30),
+        type19(19,"瓒呴�熸姤璀�",100,31),
+        type20(20,"鏂戦┈绾胯秴閫�",100,32),
+        type21(21,"鏈ぜ璁╄浜�",100,33),
+        type22(22,"杩濊鍗犻亾琛岄┒",100,34),
+        type23(23,"闂孩鐏�",100,35),
+        type24(24,"鐤插姵椹鹃┒鎶ヨ",101,1),
+        type25(25,"鎺ユ墦鐢佃瘽鎶ヨ",101,2),
+        type26(26,"鎶界儫鎶ヨ",101,3),
+        type27(27,"鍒嗙椹鹃┒鎶ヨ",101,4),
+        type28(28,"椹鹃┒鍛樺紓甯�(鍖呮嫭椹鹃┒鍛樼宀�)",101,5),
+        type29(29,"閬尅",101,6),
+        type30(30,"椹鹃┒鍛樹汉鑴歌韩浠借瘑鍒簨浠�(椹鹃┒鍛樻娴嬪紓甯革紝浜鸿劯涓嶅湪搴撲腑)",101,9),
+        type31(31,"鏈郴瀹夊叏甯�",101,17),
+        type32(32,"鏈郴瀹夊叏甯︽姤璀﹀伐绋嬭溅",101,10),
+        type33(33,"绾㈠闃绘柇澧ㄩ暅",101,11),
+        type34(34,"鍙屾墜鑴辩鏂瑰悜鐩�",101,18),
+        type35(35,"鍗曟墜鑴辩鏂瑰悜鐩�",101,13),
+        type36(36,"鏈埓瀹夊叏甯�",101,14),
+        type37(37,"鑷姩鎶撴媿",101,16),
+        type38(38,"闈炴硶鍏抽棬",101,29),
+        type39(39,"闈炴硶寮�闂�",101,30),
+        type40(40,"鐜╂墜鏈�",101,31),
+        type41(41,"楗厭椹鹃┒",101,32),
+        type42(42,"閱夐厭椹鹃┒",101,33),
+        type43(43,"澶氫汉鑴告姤璀�",101,48),
+        type44(44,"闂溂",101,34),
+        type45(45,"鍓岮EB鎶ヨ",101,101),
+        type46(46,"涓嶆埓鍙g僵鎶ヨ",101,100),
+        type47(47,"鍚庢柟鎺ヨ繎鎶ヨ",102,1),
+        type48(48,"宸︿晶鍚庢柟鎺ヨ繎鎶ヨ",102,2),
+        type49(49,"鍙充晶鍚庢柟鎺ヨ繎鎶ヨ",102,3),
+        type50(50,"鍓嶅悜鎺ヨ繎鎶ヨ",102,4),
+        type51(51,"鐤戜技闈炴硶娉ㄦ按鎶ヨ",102,5),
+        type52(52,"鍓嶈秴澹版尝鎶ヨ",102,238),
+        type53(53,"鍚庤秴澹版尝鎶ヨ",102,239),
+        type54(54,"绱ф�ユ姤璀�",102,240),
+        type55(55,"鎬ュ姞閫�",104,1),
+        type56(56,"鎬ュ噺閫�",104,2),
+        type57(57,"纰版挒",104,3),
+        type58(58,"渚х炕",104,4),
+        type59(59,"鎬ュ乏杞集",104,5),
+        type60(60,"鎬ュ彸杞集",104,6),
+        type61(61,"鎬ヨ浆寮�(涓嶅尯鍒嗗乏鍜屽彸)",104,7),
+        type62(62,"鍓х儓棰犵案",104,255),
+        type63(63,"椹鹃┒鍛樿瘉浠�",163,163),
+        type64(64,"鍙宠浆寮秴閫�",238,1),
+        type65(65,"鍙宠浆寮笉鍋滆溅",238,2),
+        type66(66,"涓惧崌浜嬩欢",172,1),
+        type67(67,"瀵嗛棴浜嬩欢",172,2),
+        type68(68,"杞介噸浜嬩欢",172,3),
+        type69(69,"鍓嶈鐩插尯鍒跺姩",249 ,1),
+        type70(70,"鍚庤鐩插尯鍒跺姩",249,2),
+        type71(71,"鍓嶈秴澹版尝鍒跺姩",249,3),
+        type72(72,"鍚庤秴澹版尝鍒跺姩",249,4),
+        type73(73,"宸﹁鐩插尯鍒跺姩",249,5),
+        type74(74,"鍙宠鐩插尯鍒跺姩",249,6),
+        type75(75,"鍓岮EB鍒跺姩",249,7),
+        type76(76,"鍓嶈鐩插尯棰勮",249,21),
+        type77(77,"鍚庤鐩插尯棰勮",249,22),
+        type78(78,"鍓嶈秴澹版尝棰勮",249,23),
+        type79(79,"鍚庤秴澹版尝棰勮",249,24),
+        type80(80,"宸﹁鐩插尯棰勮",249,25),
+        type81(81,"鍙宠鐩插尯棰勮",249,26),
+        type82(82,"鍓岮EB棰勮",249,27),
+        type83(83,"涓诲姩涓婃姤鎶ヨ浜嬩欢",160,0),
+        type84(84,"宸℃涓婃姤浜嬩欢",160,1),
+        type85(85,"绱ф�ユ姤璀�",25,1),
+        type86(86,"绱ф�ユ姤璀�",-32,0),
+        type87(87,"瓒呴�熸姤璀�",-32,16),
+        type88(88,"鐤插姵椹鹃┒",-32,32),
+        type89(89,"鍗遍櫓棰勮",-32,33),
+        type90(90,"GNSS妯″潡鏁呴殰",-32,2),
+        type91(91,"GNSS澶╃嚎鏈帴鍏�",-32,3),
+        type92(92,"GNSS澶╃嚎鐭矾",-32,4),
+        type93(93,"缁堢涓荤數婧愭瑺鍘�",-32,5),
+        type94(94,"缁堢涓荤數婧愭帀鐢�",-32,6),
+        type95(95,"LCD鎴栬�呮樉绀哄睆鏁呴殰",-32,7),
+        type96(96,"TTS妯″潡鏁呴殰",-32,46),
+        type97(97,"鎽勫儚澶存晠闅�",-32,9),
+        type98(98,"閬撹矾杩愯緭璇両C鍗℃ā鍧楁晠闅�",-32,34),
+        type99(99,"瓒呴�熼璀�",-32,43),
+        type100(100,"鐤插姵椹鹃┒棰勮",-32,35),
+        type101(101,"杩濊琛岄┒鎶ヨ(2019)",-32,45),
+        type102(102,"鑳庡帇(2019)",-32,44),
+        type103(103,"褰撳ぉ绱椹鹃┒瓒呮椂",-32,18),
+        type104(104,"瓒呮椂鍋滆溅",-32,19),
+        type105(105,"杩涘嚭鍖哄煙",-32,20),
+        type106(106,"杩涘嚭璺嚎",-32,20),
+        type107(107,"璺琛岄┒鏃堕棿涓嶈冻/杩囬暱",-32,21),
+        type108(108,"璺嚎鍋忕鎶ヨ",-32,36),
+        type109(109,"杞﹁締VSS鏁呴殰",-32,37),
+        type110(110,"杞﹁締娌归噺寮傚父",-32,38),
+        type111(111,"杞﹁締琚洍",-32,39),
+        type112(112,"杞﹁締闈炴硶鐐圭伀",-32,24),
+        type113(113,"杞﹁締闈炴硶浣嶇Щ",-32,25),
+        type114(114,"纰版挒鎶ヨ",-32,40),
+        type115(115,"渚х炕棰勮",-32,41),
+        type116(116,"浜鸿劯閫氱煡",-30,13),
+        type117(117,"涓婄彮鎵撳崱",-30,14),
+        type118(118,"瀛樺偍鍣ㄦ晠闅滄姤璀�",-30,23),
+        type119(119,"鍙告満鎷斾簡TF鍗�",-30,50),
+        type120(120,"鍓╀綑娌归噺鐧惧垎姣�",-30,102),
+        type121(121,"骞冲潎娌硅��",-30,103),
+        type122(122,"娴锋嫈楂樺害",-30,104),
+        type123(123,"鏁忔劅璇嶄簨浠�",-30,900),
+        type124(124,"杞藉涓嶆墦琛�",-33,0),
+        type125(125,"绌鸿浆閲�",-33,2),
+        type126(126,"鎬ュ姞閫�",104,1),
+        type127(127,"鎬ュ噺閫�",104,2),
+        type128(128,"纰版挒",104,3),
+        type129(129,"渚х炕",104,4),
+        type130(130,"鎬ュ乏杞集",104,5),
+        type131(131,"鎬ュ彸杞集",104,6),
+        type132(132,"杩濊杩愯惀鎶ヨ",-33,1),
+        type133(133,"寮傚父浜ゆ帴鐝�",0,1),
+        type134(134,"杞藉鐘舵�侀暱鏃堕棿鍋滅暀",0,2),
+        type135(135,"瓒呴��",0,3),
+        type136(136,"鑰佽檸琛�",0,5),
+        type137(137,"鍔寔鎶ヨ",1,0),
+        type138(138,"璁惧鐮村潖鎶ヨ",1,1),
+        type139(139,"鐢熺悊鐤插姵鎶ヨ",101,1),
+        type140(140,"寮�杞︽墦鐢佃瘽鎶ヨ",101,2),
+        type141(141,"寮�杞︽娊鐑熸姤璀�",101,3),
+        type142(142,"娉ㄦ剰鍔涘垎鏁�",101,4),
+        type143(143,"瓒呮椂椹鹃┒",101,8),
+        type144(144,"椹鹃┒鍛樻娴嬪紓甯�(浜鸿劯涓嶅湪搴撲腑)",101,9),
+        type145(145,"鏈郴瀹夊叏甯�",101,17),
+        type146(146,"鍙屾墜鑴辩鏂瑰悜鐩�",101,18),
+        type147(147,"椹鹃┒鍛樻娴嬪紓甯�(鏈娴嬪埌椹鹃┒鍛�)",101,5),
+        type148(148,"鎺㈠ご閬尅",101,6),
+        type149(149,"涓嶆埓鍙g僵鎶ヨ",101,100),
+        type150(150,"鍏朵粬",101,255),
+        type151(151,"璺彛瓒呴��",100,7),
+        type152(152,"涓嶇ぜ璁╄浜�",100,18),
+        type153(153,"琛屼汉闃叉挒",100,19),
+        type154(154,"杞﹁窛绂昏繃杩�",100,3),
+        type155(155,"杞﹂亾鍋忕鍙�",100,20),
+        type156(156,"杞﹂亾鍋忕宸�",100,21),
+        type157(157,"鍓嶅悜纰版挒",100,1),
+        type158(158,"鍏朵粬",100,255),
+        type159(159,"绱ф�ユ姤璀�",-32,0),
+        type160(160,"棰勮",-32,1),
+        type161(161,"鍗槦瀹氫綅妯″潡鍙戠敓鏁呴殰",-32,2),
+        type162(162,"鍗槦瀹氫綅澶╃嚎鏈帴鎴栬�呰鍓柇",-32,3),
+        type163(163,"鍗槦瀹氫綅澶╃嚎鐭矾",-32,4),
+        type164(164,"ISU涓荤數婧愭瑺鍘�",-32,5),
+        type165(165,"ISU涓荤數婧愭帀鐢�",-32,6),
+        type166(166,"LCD鏄剧ずISU鏁呴殰",-32,7),
+        type167(167,"璇煶鍚堟垚妯″潡鏁呴殰",-32,8),
+        type168(168,"鎽勫儚澶存晠闅�",-32,9),
+        type169(169,"璁′环鍣ㄦ晠闅�",-32,10),
+        type170(170,"鏈嶅姟璇勪环鍣ㄦ晠闅�",-32,11),
+        type171(171,"LED骞垮憡灞忓箷鏁呴殰",-32,12),
+        type172(172,"LCD鏄剧ず灞忔晠闅�",-32,13),
+        type173(173,"瀹夊叏璁块棶妯″潡鏁呴殰",-32,14),
+        type174(174,"LED棰勭伅鏁呴殰",-32,15),
+        type175(175,"瓒呴�熸姤璀�",-32,16),
+        type176(176,"杩炵画椹鹃┒瓒呮椂",-32,17),
+        type177(177,"褰撳ぉ绱椹鹃┒瓒呮椂",-32,18),
+        type178(178,"瓒呮椂鍋滆溅",-32,19),
+        type179(179,"杩涘嚭鍖哄煙/璺嚎",-32,20),
+        type180(180,"璺琛岄┒鏃堕棿涓嶈冻",-32,21),
+        type181(181,"绂佽璺琛岄┒",-32,22),
+        type182(182,"杞﹂�熶紶鎰熷櫒鏁呴殰",-32,23),
+        type183(183,"杞﹁締闈炴硶鐐圭伀",-32,24),
+        type184(184,"鑳庡帇鎶ヨ",103,null),
+        type185(185,"娴嬫俯鎶ヨ",170,null)
+        ;
+
+        // 鎴愬憳鍙橀噺
+        private int key;
+        private  Integer type    ;
+        private  Integer subType    ;
+        private String name;
+        public static String getName(Integer type,Integer subType) {
+            for (CarsEventType c : CarsEventType.values()) {
+                if (Constants.equalsInteger(c.getType(),type) && Constants.equalsInteger(c.getSubType(),subType)) {
+                    return c.getName();
+                }
+            }
+            return null;
+        }
+        // 鏋勯�犳柟娉�
+        CarsEventType(int key, String name,  Integer type,Integer subType) {
+            this.key = key;
+            this.subType = subType;
+            this.type = type;
+            this.name = name;
+        }
+
+        public Integer getType() {
+            return type;
+        }
+
+        public Integer getSubType() {
+            return subType;
+        }
+
+        public void setSubType(Integer subType) {
+            this.subType = subType;
+        }
+
+        public int getKey() {
+            return key;
+        }
+
+        public void setKey(int key) {
+            this.key = key;
+        }
+
+        public String getName() {
+            return name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public void setType(Integer type) {
+            this.type = type;
+        }
+    }
     /**
      鍗曠偣鐧诲綍妯″潡鑿滃崟鏍囪瘑锛�
      1銆佸畨闃蹭腑蹇冿細afzx
@@ -168,6 +620,7 @@
         String[] minitorDataSearchV1= new String[]{"/api/fem/v1/minitor/data/search","鍒嗛〉鏌ヨ璁惧鐩戞祴鍘嗗彶鏁版嵁"};//鍒嗛〉鏌ヨ璁惧鐩戞祴鍘嗗彶鏁版嵁
         String[] minitorDataSearch= new String[]{"/api/fpms/v2/minitor/data/search","鍒嗛〉鏌ヨ璁惧鐩戞祴鍘嗗彶鏁版嵁"};//鍒嗛〉鏌ヨ璁惧鐩戞祴鍘嗗彶鏁版嵁
         String[] userOpenidSave= new String[]{"/api/v1/oa/userOpenId/saveV2","淇濆瓨鐢ㄦ埛鍙妎penId缁戝畾淇℃伅寰俊鍏紬鍙�"};//淇濆瓨鐢ㄦ埛鍙妎penId缁戝畾淇℃伅寰俊鍏紬鍙�
+        String[] temperatureHumidityDataStatistic= new String[]{"/api/v2/public/monitor/sensor/list","娑堥槻鐪嬫澘-4娓╂箍搴︾粺璁�"};//娑堥槻鐪嬫澘-娓╂箍搴�
     }
     /**
      * 闄勫綍A.55娑堥槻璁惧绫诲瀷
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index 88e2aa9..aad1de4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -312,6 +312,17 @@
 	public static String getTodoListPage(Map<String, String> body)  throws  Exception{
 		return startDoGetStringArtemis(HKConstants.InterfacePath.getTodoListPage,body);
 	}
+
+	/**
+	 *娑堥槻鐪嬫澘-4娓╂箍搴︽暟鎹�
+	 * @param body
+	 * @return
+	 */
+	public static String temperatureHumidityDataStatistic(String body) {
+		return startDoPostStringArtemisAdmin(HKConstants.InterfacePath.temperatureHumidityDataStatistic,body);
+	}
+
+
 	/**
 	 *	鑾峰彇闂ㄧ鐐瑰垪琛�
 	 * @param body
@@ -387,6 +398,17 @@
 		saveInterfaceLog(body,result,path,pathStr[1]);
 		return result;
 	}
+
+
+	public static String startDoPostStringArtemisAdmin(String[] pathStr,String body){
+		Map<String, String> path = getPath(pathStr[0]);
+		Map<String, String> header = new HashMap<>();
+		header.put("userId", "admin");
+		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post璇锋眰application/json绫诲瀷鍙傛暟
+		saveInterfaceLog(body,result,path,pathStr[1]);
+		return result;
+	}
+
 	public static String startDoGetStringArtemis(String[] pathStr,Map<String,String> body ){
 		Map<String, String> path = getPath(pathStr[0]);
 		Map<String, String> header = new HashMap<>();
@@ -409,15 +431,15 @@
 		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post璇锋眰application/json绫诲瀷鍙傛暟
 		saveInterfaceLog(body,result,path,pathStr[1]);
 		return result;
-
 	}
+
+
 	public static String startDoPostStringArtemis(String[] pathStr,Map<String, String> querys,Map<String, String> header,String body){
 		Map<String, String> path = getPath(pathStr[0]);
 		header.put("tagId", UUID.randomUUID().toString().replace("-", ""));
 		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, querys, null, "application/json", header);// post璇锋眰application/json绫诲瀷鍙傛暟
 		saveInterfaceLog(body,result,path,pathStr[1]);
 		return result;
-
 	}
 	/**
 	 *	绛剧璁垮棰勭害
@@ -832,6 +854,7 @@
 	public static String findAlarmBaseDataStatistic(String body) {
 		return startDoPostStringArtemis(HKConstants.InterfacePath.findAlarmBaseDataStatistic,body);
 	}
+
 	/**
 	 *瀹夐槻鐪嬫澘-- b
 	 * @param body
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/request/CarsAlarmListRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/request/CarsAlarmListRequest.java
new file mode 100644
index 0000000..a705a1a
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/request/CarsAlarmListRequest.java
@@ -0,0 +1,17 @@
+package com.doumee.core.haikang.model.cars.request;
+
+import lombok.Data;
+
+/**
+ * 璁惧鍒楄〃璇锋眰淇℃伅
+ */
+@Data
+public class CarsAlarmListRequest {
+
+    private Integer   pageSize;//	椤甸潰澶у皬	Integer	1000	鍚�
+    private Integer   pageNo	;//褰撳墠椤�	Integer	1
+
+    private String   deviceCode	;//璁惧缁堢鎵嬫満鍙�	String	鏃�	鏄�
+    private String   startTime	;//寮�濮嬫椂闂磞yyy-MM-dd HH:mm:ss	String	鏃�	鏄�
+    private String   endTime	;//缁撴潫鏃堕棿yyyy-MM-dd HH:mm:ss	String	鏃�	鏄�
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsAlarmListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsAlarmListResponse.java
new file mode 100644
index 0000000..23502aa
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsAlarmListResponse.java
@@ -0,0 +1,70 @@
+package com.doumee.core.haikang.model.cars.response;
+
+import lombok.Data;
+
+import java.util.List;
+import java.util.List;
+
+/**
+ * 璁惧鍒楄〃鍗曞厓淇℃伅
+ * @param <T>
+ */
+@Data
+public class CarsAlarmListResponse<T> {
+
+        private String   deviceCode;//	璁惧缁堢鎵嬫満鍙�	String
+        private String   productKey	;//璁惧鎵�灞炲瀷鍙风殑浜у搧瀵嗛挜	String
+        private Integer   type	;//鎶ヨ绫诲瀷	Integer
+        private Integer   subType	;//鎶ヨ瀛愮被锛堟姤璀︾被鍨嬪拰鎶ヨ瀛愮被鍙‘瀹氬敮涓�鎶ヨ绫诲瀷锛�	Integer
+        private Integer   level	;//鎶ヨ绾у埆 0x01:1棰勮 0x02:2鎶ヨ	Integer
+        private Integer   frontCarSpeed	;//鍓嶈溅閫熷害Km/h	Integer
+        private Integer   frontDistance	;//鍓嶈溅/琛屼汉璺濈	Integer
+        private Integer   deviationType	;//鍋忕绫诲瀷 0x01:宸︿晶鍋忕 0x02:鍙充晶鍋忕	Integer
+        private Integer   roadSignsType	;//閬撹矾鏍囧織璇嗗埆绫诲瀷 0x01:闄愰�熸爣蹇� 0x02:闄愰珮鏍囧織 0x03:闄愰噸鏍囧織	Integer
+        private Integer   roadSignsValue	;//閬撹矾鏍囧織璇嗗埆鏁版嵁	Integer
+        private Integer   speed;//	杞﹂�� 鍗曚綅Km/h	Integer
+        private Integer   altitude;//	娴锋嫈楂樺害 鍗曚綅m	Short
+        private Double   longitude;//	缁忓害	Double
+        private Double   latitude;//	绾害	Double
+        private String   time;//	YY-MM-DD-hh-mm-ss 锛圙MT+8鏃堕棿锛�	String
+        private Integer   accState;//	acc鐘舵��	Integer
+        private Integer   leftTurnState	;//宸﹁浆鍚戠姸鎬侊紝0:鍏抽棴锛�1:鎵撳紑	Integer
+        private Integer   rightTurnState;//	鍙宠浆鍚戠姸鎬侊紝0:鍏抽棴锛�1:鎵撳紑	Integer
+        private Integer   wiperState;//	闆ㄥ埉鍣ㄧ姸鎬侊紝 0:鍏抽棴锛�1:鎵撳紑	Integer
+        private Integer   brakingState;//	鍒跺姩鐘舵�侊紝0:鏈埗鍔紝1:鍒跺姩	Integer
+        private Integer   cardState	;//鎻掑崱鐘舵�侊紝0:鏈彃鍗★紝1:宸叉彃鍗�	Integer
+        private Integer   gpsValid;//	瀹氫綅鐘舵�侊紝0:鏈畾浣嶏紝1:宸插畾浣�	Integer
+        private String   deviceId;//	缁堢ID	String
+        private String   alarmSignTime	;//鎶ヨ鏍囪瘑鏃堕棿	String
+        private Integer   index	;//搴忓彿	Integer
+        private Integer   attachCount;//	闄勪欢涓暟锛岄檮浠舵暟>0鐨勬姤璀︼紝鍙互璋冪敤鈥滄煡璇㈣澶囨姤璀﹂檮浠垛�濇帴鍙f煡璇㈤檮浠朵俊鎭�	Integer
+        private String   alarmSign	;//鎶ヨ鏍囪瘑鍙� 缁堢ID-鏃堕棿-搴忓彿-闄勪欢鏁伴噺	String
+        private Integer   fatigueDegree;//	鐤插姵绋嬪害锛岃寖鍥�1~10銆傛暟鍊艰秺澶ц〃绀虹柌鍔崇▼搴﹁秺涓ラ噸	Integer
+        private String   carSign;//杞︾墝棰滆壊涓�0鏃讹紝琛ㄧず杞﹁締 VIN锛涘惁鍒欙紝琛ㄧず鍏畨浜ら�氱鐞嗛儴闂ㄩ鍙戠殑鏈哄姩杞﹀彿鐗�	String
+        private Integer   areaType;//鍖哄煙銆侀亾璺被鍨�	Integer
+        private Integer   areaId	;//鍖哄煙銆侀亾璺紪鍙�	Integer
+        private Integer   efcType;//	杩涘嚭鎶ヨ绫诲瀷(0:杩涘叆鍖哄煙锛�1:绂诲紑鍖哄煙)	Integer
+        private String   qualificationNumber	;//椹鹃┒鍛樹粠涓氳祫鏍艰瘉鍙�	String
+        private Integer   chanNo	;//閫昏緫閫氶亾鍙�	Integer
+        private String   attachInfo	;//鎶ヨ闄勪欢淇℃伅锛宎ttachFlag涓簍rue鏃惰瀛楁鏈夋晥锛岃缁嗗瓧娈佃*琛�2	Object
+        private String   efcName	;//鐢靛瓙鍥存爮鍚嶇О	String
+        private String   efcUuid	;//鐢靛瓙鍥存爮uuid	String
+        private Integer   limitState	;//鍑哄叆闄愬埗(1:绂佹椹跺叆锛�2锛氱姝㈤┒鍑�:3:璺嚎鍋忕)	Integer
+        private String   position;//	鎶ヨ浣嶇疆	String
+        private Integer   moveState	;//杩愬姩鐘舵�侊紝0锛氬仠姝紝1锛氳椹�	Integer
+        private Integer   voltage;//	鐢电摱鐢靛帇锛屾斁澶�1000鍊�	Integer
+        private Integer   temperature;//	璁惧娓╁害锛屾斁澶�1000鍊�	Integer
+        private Integer   wakeupType	;//璁惧鍞ら啋婧�	Integer
+        private Integer   Tvistatus	;//鍚庢媺鐩告満褰曞儚鐘舵��	Integer
+        private Integer   LTEpower;//	4G妯″潡渚涚數	Integer
+        private Integer   LTEstatus;//	4G妯″潡鍦ㄤ綅淇″彿	Integer
+        private Integer   parkmode;//	鍋滆溅鐩戞帶妯″紡	Integer
+        private Integer   uploadType;//	涓婃姤娑堟伅绫诲瀷	Integer
+        private Integer   stayTime ;//	鎶ヨ鏃跺凡缁忓仠鐣欑殑鏃堕暱锛屽垎閽�	Integer
+        private Long   stayId	;//閫旂粡鐐筰d	Long
+
+    private String   efcEventInfo;//	鐢靛瓙鍥存爮鎶ヨ璇︽儏淇℃伅	Object
+
+    private String   gpsData	;//鎶ヨ瀵瑰簲鐨凣PS淇℃伅	Object
+
+    }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsAlarmResultListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsAlarmResultListResponse.java
new file mode 100644
index 0000000..aa269bf
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsAlarmResultListResponse.java
@@ -0,0 +1,18 @@
+package com.doumee.core.haikang.model.cars.response;
+
+import lombok.Data;
+
+/**
+ * 璁惧鍒楄〃鍗曞厓淇℃伅
+ */
+@Data
+public class CarsAlarmResultListResponse{
+
+        private Integer   type	;//鎶ヨ绫诲瀷	Integer
+        private Integer   subType	;//鎶ヨ瀛愮被锛堟姤璀︾被鍨嬪拰鎶ヨ瀛愮被鍙‘瀹氬敮涓�鎶ヨ绫诲瀷锛�	Integer
+        private String   time;//	YY-MM-DD-hh-mm-ss 锛圙MT+8鏃堕棿锛�	String
+        private String carCode;//杞︾墝鍙�
+        private String title;//绫诲瀷鍚嶇О
+        private long timeStamp;
+
+    }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsDeviceDetaisResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsDeviceDetaisResponse.java
index 2eb08b9..688c6fd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsDeviceDetaisResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsDeviceDetaisResponse.java
@@ -18,6 +18,7 @@
     private Integer supplementSign;//	琛ユ姤鏍囪瘑锛�1锛氳ˉ鎶ワ紱0锛氭甯镐笂鎶ワ級	Integer
     private String  createTime;//	绯荤粺鏀跺埌GPS鏃堕棿yyyy-MM-dd HH:mm:ss	String
     private Integer status;//璁惧鐘舵�� 0锛氱绾匡紱1锛氬湪绾匡紱2锛氫紤鐪�
+    private Integer jobStatus;//宸ヤ綔鐘舵�� //0绌洪棽 1鍦ㄩ��2绂荤嚎
     private String plateNum;//杞︾墝鍙�
     private String  terminalID;//	缁堢鎵嬫満鍙�	String
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsEfcEventInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsEfcEventInfoResponse.java
new file mode 100644
index 0000000..b09c1fc
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsEfcEventInfoResponse.java
@@ -0,0 +1,67 @@
+package com.doumee.core.haikang.model.cars.response;
+
+import lombok.Data;
+
+/**
+ * 璁惧鍒楄〃鍗曞厓淇℃伅
+ * @param <T>
+ */
+@Data
+public class CarsEfcEventInfoResponse<T> {
+
+        private String   deviceCode;//	璁惧缁堢鎵嬫満鍙�	String
+        private String   productKey	;//璁惧鎵�灞炲瀷鍙风殑浜у搧瀵嗛挜	String
+        private Integer   type	;//鎶ヨ绫诲瀷	Integer
+        private Integer   subType	;//鎶ヨ瀛愮被锛堟姤璀︾被鍨嬪拰鎶ヨ瀛愮被鍙‘瀹氬敮涓�鎶ヨ绫诲瀷锛�	Integer
+        private Integer   level	;//鎶ヨ绾у埆 0x01:1棰勮 0x02:2鎶ヨ	Integer
+        private Integer   frontCarSpeed	;//鍓嶈溅閫熷害Km/h	Integer
+        private Integer   frontDistance	;//鍓嶈溅/琛屼汉璺濈	Integer
+        private Integer   deviationType	;//鍋忕绫诲瀷 0x01:宸︿晶鍋忕 0x02:鍙充晶鍋忕	Integer
+        private Integer   roadSignsType	;//閬撹矾鏍囧織璇嗗埆绫诲瀷 0x01:闄愰�熸爣蹇� 0x02:闄愰珮鏍囧織 0x03:闄愰噸鏍囧織	Integer
+        private Integer   roadSignsValue	;//閬撹矾鏍囧織璇嗗埆鏁版嵁	Integer
+        private Integer   speed;//	杞﹂�� 鍗曚綅Km/h	Integer
+        private Integer   altitude;//	娴锋嫈楂樺害 鍗曚綅m	Short
+        private Double   longitude;//	缁忓害	Double
+        private Double   latitude;//	绾害	Double
+        private String   time;//	YY-MM-DD-hh-mm-ss 锛圙MT+8鏃堕棿锛�	String
+        private Integer   accState;//	acc鐘舵��	Integer
+        private Integer   leftTurnState	;//宸﹁浆鍚戠姸鎬侊紝0:鍏抽棴锛�1:鎵撳紑	Integer
+        private Integer   rightTurnState;//	鍙宠浆鍚戠姸鎬侊紝0:鍏抽棴锛�1:鎵撳紑	Integer
+        private Integer   wiperState;//	闆ㄥ埉鍣ㄧ姸鎬侊紝 0:鍏抽棴锛�1:鎵撳紑	Integer
+        private Integer   brakingState;//	鍒跺姩鐘舵�侊紝0:鏈埗鍔紝1:鍒跺姩	Integer
+        private Integer   cardState	;//鎻掑崱鐘舵�侊紝0:鏈彃鍗★紝1:宸叉彃鍗�	Integer
+        private Integer   gpsValid;//	瀹氫綅鐘舵�侊紝0:鏈畾浣嶏紝1:宸插畾浣�	Integer
+        private String   deviceId;//	缁堢ID	String
+        private String   alarmSignTime	;//鎶ヨ鏍囪瘑鏃堕棿	String
+        private Integer   index	;//搴忓彿	Integer
+        private Integer   attachCount;//	闄勪欢涓暟锛岄檮浠舵暟>0鐨勬姤璀︼紝鍙互璋冪敤鈥滄煡璇㈣澶囨姤璀﹂檮浠垛�濇帴鍙f煡璇㈤檮浠朵俊鎭�	Integer
+        private String   alarmSign	;//鎶ヨ鏍囪瘑鍙� 缁堢ID-鏃堕棿-搴忓彿-闄勪欢鏁伴噺	String
+        private Integer   fatigueDegree;//	鐤插姵绋嬪害锛岃寖鍥�1~10銆傛暟鍊艰秺澶ц〃绀虹柌鍔崇▼搴﹁秺涓ラ噸	Integer
+        private String   carSign;//杞︾墝棰滆壊涓�0鏃讹紝琛ㄧず杞﹁締 VIN锛涘惁鍒欙紝琛ㄧず鍏畨浜ら�氱鐞嗛儴闂ㄩ鍙戠殑鏈哄姩杞﹀彿鐗�	String
+        private Integer   areaType;//鍖哄煙銆侀亾璺被鍨�	Integer
+        private Integer   areaId	;//鍖哄煙銆侀亾璺紪鍙�	Integer
+        private Integer   efcType;//	杩涘嚭鎶ヨ绫诲瀷(0:杩涘叆鍖哄煙锛�1:绂诲紑鍖哄煙)	Integer
+        private String   qualificationNumber	;//椹鹃┒鍛樹粠涓氳祫鏍艰瘉鍙�	String
+        private Integer   chanNo	;//閫昏緫閫氶亾鍙�	Integer
+        private String   attachInfo	;//鎶ヨ闄勪欢淇℃伅锛宎ttachFlag涓簍rue鏃惰瀛楁鏈夋晥锛岃缁嗗瓧娈佃*琛�2	Object
+        private String   efcName	;//鐢靛瓙鍥存爮鍚嶇О	String
+        private String   efcUuid	;//鐢靛瓙鍥存爮uuid	String
+        private Integer   limitState	;//鍑哄叆闄愬埗(1:绂佹椹跺叆锛�2锛氱姝㈤┒鍑�:3:璺嚎鍋忕)	Integer
+        private String   position;//	鎶ヨ浣嶇疆	String
+        private Integer   moveState	;//杩愬姩鐘舵�侊紝0锛氬仠姝紝1锛氳椹�	Integer
+        private Integer   voltage;//	鐢电摱鐢靛帇锛屾斁澶�1000鍊�	Integer
+        private Integer   temperature;//	璁惧娓╁害锛屾斁澶�1000鍊�	Integer
+        private Integer   wakeupType	;//璁惧鍞ら啋婧�	Integer
+        private Integer   Tvistatus	;//鍚庢媺鐩告満褰曞儚鐘舵��	Integer
+        private Integer   LTEpower;//	4G妯″潡渚涚數	Integer
+        private Integer   LTEstatus;//	4G妯″潡鍦ㄤ綅淇″彿	Integer
+        private Integer   parkmode;//	鍋滆溅鐩戞帶妯″紡	Integer
+        private Integer   uploadType;//	涓婃姤娑堟伅绫诲瀷	Integer
+        private Integer   stayTime ;//	鎶ヨ鏃跺凡缁忓仠鐣欑殑鏃堕暱锛屽垎閽�	Integer
+        private Long   stayId	;//閫旂粡鐐筰d	Long
+
+    private String   efcEventInfo;//	鐢靛瓙鍥存爮鎶ヨ璇︽儏淇℃伅	Object
+
+    private String   gpsData	;//鎶ヨ瀵瑰簲鐨凣PS淇℃伅	Object
+
+    }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TemperatureHumidityDataRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TemperatureHumidityDataRequest.java
new file mode 100644
index 0000000..e1f5b68
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TemperatureHumidityDataRequest.java
@@ -0,0 +1,12 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class TemperatureHumidityDataRequest {
+
+    private Integer  pageSize	;//	Query	Number	false	鍒嗛〉澶у皬锛�1~999锛�
+    private Integer  pageNo;//		Query	Number	false	褰撳墠椤电爜(1~100000)
+    private String parentIndexCode;//		Query	String	false	e74fcf79bebb492bb750a557bfb12ab9
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TemperatureHumidityDataResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TemperatureHumidityDataResponse.java
new file mode 100644
index 0000000..eb978cb
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TemperatureHumidityDataResponse.java
@@ -0,0 +1,32 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class TemperatureHumidityDataResponse {
+
+ @ApiModelProperty(value = "鍚嶇О")
+ private String  name	;//String	false	璁惧鍚嶇О
+
+ @ApiModelProperty(value = "鏈�浣庢俯搴�")
+ private String  alarmLow	;//String	false	鏈�浣庢俯搴�
+
+ @ApiModelProperty(value = "鏈�楂樻俯搴�")
+ private String  alarmHigh	;//String	false	鏈�楂樻俯搴�
+
+ @ApiModelProperty(value = "褰撳墠鍊�")
+ private String  latestValue	;//String	false 褰撳墠鍊�
+
+ private String  indexCode	;//String	false
+
+ @ApiModelProperty(value = "绫诲瀷锛歵emp 娓╁害  humidity 婀垮害")
+ private String  sensorType	;//String	false
+
+ private String  parentIndexCode	;//String	false
+
+ @ApiModelProperty(value = "鍗曚綅")
+ private String  unit	;//String	false 鍗曚綅
+
+   
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java
index 648f197..ed95c67 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java
@@ -2,13 +2,13 @@
 
 	import com.alibaba.fastjson.JSONObject;
 	import com.alibaba.fastjson.TypeReference;
+	import com.doumee.core.haikang.model.HKConstants;
 	import com.doumee.core.haikang.model.cars.BaseCarsPageResponse;
 	import com.doumee.core.haikang.model.cars.BaseCarsResponse;
+	import com.doumee.core.haikang.model.cars.request.CarsAlarmListRequest;
 	import com.doumee.core.haikang.model.cars.request.CarsDeviceRequest;
 	import com.doumee.core.haikang.model.cars.request.CarsGpsRequest;
-	import com.doumee.core.haikang.model.cars.response.CarsDeviceDetaisResponse;
-	import com.doumee.core.haikang.model.cars.response.CarsDeviceResponse;
-	import com.doumee.core.haikang.model.cars.response.CarsGpsResponse;
+	import com.doumee.core.haikang.model.cars.response.*;
 	import com.doumee.core.haikang.model.param.BaseListPageResponse;
 	import com.doumee.core.haikang.model.param.BaseResponse;
 	import com.doumee.core.haikang.model.param.respose.FindHomeAlarmInfoPageResponse;
@@ -124,6 +124,40 @@
 		}
 		return list;
 	}
+	public static List<CarsAlarmResultListResponse> getAlarmEvemtList(List<CarsDeviceDetaisResponse> detaisResponses ,  Date date) {
+		List<CarsAlarmResultListResponse> list = new ArrayList<>();
+		if(detaisResponses ==null || detaisResponses.size()==0){
+			return list ;
+		}
+		CarsAlarmListRequest param = new CarsAlarmListRequest();
+		param.setStartTime(DateUtil.getPlusTime2(DateUtil.getStartOfDay(date)));
+		param.setEndTime(DateUtil.getPlusTime2(DateUtil.getEndOfDay(date)));
+		param.setPageNo(1);
+		param.setPageSize(100);
+		for( CarsDeviceDetaisResponse de :detaisResponses ){
+			param.setDeviceCode(de.getTerminalID());
+			BaseCarsPageResponse<CarsAlarmListResponse>  data = getAlarmList(param);
+			if(data!=null &&data.getResults()!=null){
+				for(CarsAlarmListResponse model :data.getResults()){
+					CarsAlarmResultListResponse tm = new CarsAlarmResultListResponse();
+					tm.setTime(model.getTime());
+					tm.setCarCode(de.getPlateNum());
+					tm.setType(model.getType());
+					tm.setSubType(model.getSubType());
+					Date tmDate = DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss", tm.getTime() );
+					if(tmDate!=null){
+						tm.setTimeStamp(tmDate.getTime());
+					}
+					tm.setTitle(HKConstants.CarsEventType.getName(tm.getType(),tm.getSubType()));
+					list.add(tm);
+				}
+			}
+		}
+		Collections.sort(list, (o1, o2) -> {
+			return (int) (o1.getTimeStamp() - o2.getTimeStamp()); //鎸夋暟閲忎粠澶у埌灏忔帓搴�
+		});
+		return list;
+	}
 
 	private static CarsDeviceDetaisResponse getFromListById(String key, List<CarsDeviceDetaisResponse> list) {
 		for(CarsDeviceDetaisResponse dd  :list){
@@ -220,7 +254,7 @@
 		String url = BASE_URL + "device/list/";
 		TreeMap<String, String> BASE_PARAMS = getBaseParams();
 		if(StringUtils.isNotBlank(param.getProductKey())){
-			BASE_PARAMS.put("productKey", "");//璁惧鍨嬪彿绉橀挜
+			BASE_PARAMS.put("productKey", param.getProductKey());//璁惧鍨嬪彿绉橀挜
 		}
 		BASE_PARAMS.put("pageSize",Constants.equalsInteger(param.getPageSize(),0)? "100":param.getPageSize().toString());//椤甸潰澶у皬
 		BASE_PARAMS.put("pageNo", Constants.equalsInteger(param.getPageNo(),0)? "1":param.getPageNo().toString());//褰撳墠椤�
@@ -233,4 +267,25 @@
 		}
 		return  null;
 	}
+	public static BaseCarsPageResponse<CarsAlarmListResponse> getAlarmList(CarsAlarmListRequest param)  {
+		String url = BASE_URL + "alarm/list/";
+		TreeMap<String, String> BASE_PARAMS = getBaseParams();
+		if(StringUtils.isNotBlank(param.getStartTime())){
+			BASE_PARAMS.put("startTime", param.getStartTime());
+		}
+		if(StringUtils.isNotBlank(param.getEndTime())){
+			BASE_PARAMS.put("endTime", param.getEndTime());
+		}
+		BASE_PARAMS.put("deviceCode", param.getDeviceCode());
+		BASE_PARAMS.put("pageSize",Constants.equalsInteger(param.getPageSize(),0)? "100":param.getPageSize().toString());//椤甸潰澶у皬
+		BASE_PARAMS.put("pageNo", Constants.equalsInteger(param.getPageNo(),0)? "1":param.getPageNo().toString());//褰撳墠椤�
+		String str = sendRequest(url,BASE_PARAMS);
+		TypeReference typeReference =
+				new TypeReference<BaseCarsResponse<BaseCarsPageResponse<CarsAlarmListResponse>>>(){};
+		BaseCarsResponse<BaseCarsPageResponse<CarsAlarmListResponse>>   result = JSONObject.parseObject(str, typeReference.getType());
+		if(result!=null && Constants.equalsInteger(result.getStatus(),0)){
+			return  result.getData();
+		}
+		return  null;
+	}
 }
\ No newline at end of file
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index bf42ef0..d610bbf 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -940,6 +940,26 @@
     }
 
     /**
+     *娑堥槻鐪嬫澘-4娓╂箍搴︾粺璁�
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<TemperatureHumidityDataResponse>>  temperatureHumidityDataStatistic(TemperatureHumidityDataRequest param){
+        log.info("銆愭捣搴锋秷闃茬湅鏉�-4娓╂箍搴︾粺璁°��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.temperatureHumidityDataStatistic(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<BaseListPageResponse<TemperatureHumidityDataResponse> >>(){};
+            BaseResponse<BaseListPageResponse<TemperatureHumidityDataResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍娑堥槻鐪嬫澘-4娓╂箍搴︾粺璁�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴锋秷闃茬湅鏉�-4娓╂箍搴︾粺璁°��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+
+
+    /**
      *鍒嗛〉鏌ヨ娑堥槻璁惧閮ㄤ欢鐘舵��
      * @return
      */
@@ -1866,6 +1886,7 @@
         }
         return  null;
     }
+
     /**
      *鏍规嵁鐢ㄦ埛鏍囪瘑鑾峰彇瀹㈡埛绔疶GC鎺ュ彛
      * @return
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/TMSContants.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/TMSContants.java
new file mode 100644
index 0000000..af560be
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/TMSContants.java
@@ -0,0 +1,197 @@
+package com.doumee.core.tms.model;
+
+import com.doumee.core.utils.Constants;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.List;
+
+public class TMSContants {
+
+    public interface InterfacePath {
+        String[] getSevenArrivalStatus = new String[]{"/tms/zhyt/getSevenArrivalStatus",  "銆怲MS銆戣繎7鏃ュ埌璐ф儏鍐�"};//TMS杩�7鏃ュ埌璐ф儏鍐垫帴鍙e湴鍧�
+        String[] getCurrentTransportationTask = new String[]{ "銆怲MS銆�/zhyt/getCurrentTransportationTask",  "銆怲MS銆戝綋鍓嶈繍杈撲换鍔�"};//TMS褰撳墠杩愯緭浠诲姟鎺ュ彛鍦板潃
+        String[] getDistributionOfDeliveryLocations = new String[]{"/tms/zhyt/getDistributionOfDeliveryLocations",  "銆怲MS銆戝叏鍥藉埌璐у湴鍒嗗竷鏌ヨ鏌ヨ"};//TMS鍏ㄥ浗鍒拌揣鍦板垎甯冩煡璇㈡煡璇㈡帴鍙e湴鍧�
+        String[] getRealTimeInventory = new String[]{"/tms/zhyt/getRealTimeInventory",  "銆怲MS銆戝疄鏃跺簱瀛樻煡璇�"};//TMS瀹炴椂搴撳瓨鏌ヨ鎺ュ彛鍦板潃
+        String[] getInboundOutbound = new String[]{"/tms/zhyt/getInboundOutbound",  "銆怲MS銆戝嚭鍏ュ簱璁板綍鏌ヨ"};//TMS鍑哄叆搴撹褰曟煡璇㈡帴鍙e湴鍧�
+        String[] getIntransitDetails = new String[]{"/tms/zhyt/getIntransitDetails",  "銆怲MS銆戝湪閫旀槑缁嗗垪琛�"};//TMS鍦ㄩ�旀槑缁嗗垪琛ㄦ帴鍙e湴鍧�
+        String[] getOrderList = new String[]{"/tms/zhyt/getIntransitDetails",  "銆怲MS銆戝悎鍚屽垪琛ㄦ煡璇�"};//TMS鍚堝悓鍒楄〃鏌ヨ鎺ュ彛鍦板潃
+        String[] getElecByContractNumberList = new String[]{"/tms/zhyt/getElecByContractNumberList",  "銆怲MS銆戝悎鍚屼笂閿佺姸鎬�"};//TMS鍚堝悓涓婇攣鐘舵�佹帴鍙e湴鍧�
+        String[] getOrderDetailByContractNumber = new String[]{"/tms/zhyt/getOrderDetailByContractNumber",  "銆怲MS銆戝悎鍚岃鎯�"};//TMS鍚堝悓璇︽儏鎺ュ彛鍦板潃
+        String[] getGis = new String[]{"/tms/zhyt/getGis",  "銆怲MS銆戞牴鎹繍杈撳崟鍙锋煡璇is杞�"};//TMS鏍规嵁杩愯緭鍗曞彿鏌ヨgis杞ㄦ帴鍙e湴鍧�
+        String[] getOrderStatusByContractNumber = new String[]{";//",  "銆怲MS銆戝崟鐢熷懡鍛ㄦ湡"};//3.8璁㈠崟鐢熷懡鍛ㄦ湡
+    }
+
+    public  enum TopStatusLevel {
+        /**
+         * 璁㈠崟鐢熸垚
+         * 杩愬崟閰嶈浇涓�
+         * 浠撳簱鍑哄簱涓�
+         * 杞﹁締杩愯緭涓�
+         * 宸插埌璐�
+         * 宸插叆搴�
+         */
+        ddsc(0,"璁㈠崟鐢熸垚",new Integer[]{ChildStatusLevel.create.getKey()}),
+        ydpzz (1,"杩愬崟閰嶈浇涓�",new Integer[]{ChildStatusLevel.ysdxc.getKey()
+                ,ChildStatusLevel.ysdcx.getKey()
+                ,ChildStatusLevel.shtg.getKey()
+                ,ChildStatusLevel.shwtg.getKey()}),
+        ckckz (2,"浠撳簱鍑哄簱涓�",new Integer[]{ChildStatusLevel.ddzhddzs.getKey()
+                ,ChildStatusLevel.sqzyzwc.getKey()
+                ,ChildStatusLevel.clqddzs.getKey()}),
+        clysz(3, "杞﹁締杩愯緭涓�",new Integer[]{ChildStatusLevel.clqdapp.getKey()}),
+        ydh(4,"宸插埌璐�",new Integer[]{ChildStatusLevel.ddzhd.getKey()}),
+        yrk (5,"宸插叆搴�",new Integer[]{ChildStatusLevel.ddxhd.getKey()});
+
+        // 鎴愬憳鍙橀噺
+        private int key;
+        private  Integer[] chileIndexList  ;
+        private String name;
+
+        // 鏋勯�犳柟娉�
+        TopStatusLevel(int key, String name,  Integer[] chileIndexList) {
+            this.key = key;
+            this.chileIndexList = chileIndexList;
+            this.name = name;
+        }
+
+        public int getKey() {
+            return key;
+        }
+
+        public void setKey(int key) {
+            this.key = key;
+        }
+
+        public String getName() {
+            return name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public Integer[] getChileIndexList() {
+            return chileIndexList;
+        }
+
+        public void setChileIndexList(Integer[] chileIndexList) {
+            this.chileIndexList = chileIndexList;
+        }
+    }
+    public  interface  StatusCode{
+        /**
+         * 1-鍑嗚繍璇�
+         * 2-鐢靛瓙閿佹苯杩�
+         * 3-鐢靛瓙閿侀潪姹借繍
+         * 4-GIS
+         * 5-APP
+         * 6-浜哄伐鏇存柊
+         */
+        int zyz =1;
+        int dzsqy =2;
+        int dzsfqy =3;
+        int gis =4;
+        int app =5;
+        int rggx =6;
+    }
+    public  enum ChildStatusLevel {
+        /**
+         璁㈠崟鐢熸垚锛堝彂璐т粨搴撹仈绯荤數璇濓細0551-63451234锛�	0	璁㈠崟鐢熸垚锛堝彂璐т粨搴撹仈绯荤數璇濓細0551-63451234锛�
+
+         杩愯緭鍗曞舰鎴�	1	杩愯緭鍗曞舰鎴�
+         杩愯緭鍗曟挙閿�锛堝師鍥狅細XXX锛�	-2	杩愯緭鍗曟挙閿�锛堝師鍥狅細XXX锛�
+         杩愯緭鍗曞鏍告湭閫氳繃	-1	杩愯緭鍗曞鏍告湭閫氳繃
+         杩愯緭鍗曞鏍搁�氳繃	2	杩愯緭鍗曞鏍搁�氳繃
+         杩愯緭鍗曠‘璁�		杩愯緭鍗曠‘璁�
+         鍒拌揪瑁呰揣鍦�-鐢靛瓙閿佹苯杩�	3	杞﹁締宸插埌杈捐璐у湴
+         杞﹁締鍚繍-鐢靛瓙閿佹苯杩�	4	杞﹁締瑁呰揣瀹屾垚锛岀數瀛愰攣宸蹭笂閿�
+         杞﹁締鍚繍-APP	4	杞﹁締杩愯緭涓�
+         鍒拌揪鍗歌揣鍦�-APP	5	杞﹁締宸插埌杈惧嵏璐у湴
+         鍒拌揪鍗歌揣鍦�-鐢靛瓙閿佹苯杩�	5	鐢靛瓙閿佸凡瑙i攣锛岃繍杈撲换鍔″凡瀹屾垚
+         */
+        create(0,0, 0,"璁㈠崟鐢熸垚",null),
+        ysdxc(1,1,1, "杩愯緭鍗曞舰鎴�",null),
+        ysdcx(2, -2,1,"杩愯緭鍗曟挙閿�",null ),
+        shtg(3,-1, 1,"杩愯緭鍗曞鏍告湭閫氳繃",null ),
+        shwtg(4, 2,1,"杩愯緭鍗曞鏍搁�氳繃",null),
+        sqzyzwc(5,6, 1,"鐢宠鍑嗚繍璇佸畬鎴�","杞﹁締鍑嗚繍璇佺敵璇峰畬鎴�" ),
+        ddzhddzs(6,3,2,"鍒拌揪瑁呰揣鍦�-鐢靛瓙閿佹苯杩�","杞﹁締宸插埌杈捐璐у湴" ),
+        clqddzs(7, 4,2,"杞﹁締鍚繍-鐢靛瓙閿佹苯杩�","杞﹁締瑁呰揣瀹屾垚锛岀數瀛愰攣宸蹭笂閿�" ),
+        clqdapp(8, 7,3,"杞﹁締鍚繍-APP","杞﹁締杩愯緭涓�" ),
+        ddzhd(9, 8,4,"鍒拌揪鍗歌揣鍦�-APP","杞﹁締宸插埌杈惧嵏璐у湴" ),
+        ddxhd(10, 5,5,"鍒拌揪鍗歌揣鍦�-鐢靛瓙閿佹苯杩�","鐢靛瓙閿佸凡瑙i攣锛岃繍杈撲换鍔″凡瀹屾垚" ),
+        ;
+
+        // 鎴愬憳鍙橀噺
+        private Integer key;
+        private Integer orderStatus;
+        private Integer parentIndex;
+        private String name;
+        private String info;
+
+        // 鏋勯�犳柟娉�
+        ChildStatusLevel(Integer key,Integer orderStatus,Integer parentIndex, String name,String info ) {
+            this.key = key;
+            this.info = info;
+            this.name = name;
+            this.orderStatus = orderStatus;
+            this.parentIndex = parentIndex;
+        }
+        public static Integer getParentIndexByStatus(int orderStatus) {
+            for (ChildStatusLevel c : ChildStatusLevel.values()) {
+                if (c.getOrderStatus() == orderStatus) {
+                    return c.parentIndex;
+                }
+            }
+            return null;
+        }
+        public static String getInfo(int orderStatus,String defualt) {
+            for (ChildStatusLevel c : ChildStatusLevel.values()) {
+                if (c.getOrderStatus() == orderStatus) {
+                    return StringUtils.defaultString(c.getInfo(),StringUtils.defaultString(defualt,c.getName()));
+                }
+            }
+            return null;
+        }
+
+        public int getKey() {
+            return key;
+        }
+
+        public void setKey(int key) {
+            this.key = key;
+        }
+
+        public String getName() {
+            return name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public String getInfo() {
+            return info;
+        }
+
+        public void setInfo(String info) {
+            this.info = info;
+        }
+
+        public int getOrderStatus() {
+            return orderStatus;
+        }
+
+        public void setOrderStatus(int orderStatus) {
+            this.orderStatus = orderStatus;
+        }
+
+        public int getParentIndex() {
+            return parentIndex;
+        }
+
+        public void setParentIndex(int parentIndex) {
+            this.parentIndex = parentIndex;
+        }
+    }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsCircleStatusListRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsCircleStatusListRequest.java
new file mode 100644
index 0000000..30d7b03
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsCircleStatusListRequest.java
@@ -0,0 +1,16 @@
+package com.doumee.core.tms.model.request;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms鍚堝悓鍙锋煡璇㈣鍗曠敓鍛藉懆鏈熻姹傚弬鏁�")
+public class TmsCircleStatusListRequest {
+
+    private String contractNumber	;//鏄� 鍚堝悓鍙�
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsGisListRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsGisListRequest.java
new file mode 100644
index 0000000..fed48a9
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsGisListRequest.java
@@ -0,0 +1,18 @@
+package com.doumee.core.tms.model.request;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms鏌ヨGIS闆嗗悎璇锋眰鍙傛暟")
+public class TmsGisListRequest {
+
+    private String transportCode;//	瀛楃涓�	杩愯緭鍗曞彿
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsCircleStatusListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsCircleStatusListResponse.java
new file mode 100644
index 0000000..ed3a608
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsCircleStatusListResponse.java
@@ -0,0 +1,24 @@
+package com.doumee.core.tms.model.response;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms鏍规嵁鍚堝悓鍙锋煡璇㈣鍗曠敓鍛藉懆鏈熻繑鍥炲弬鏁�")
+public class TmsCircleStatusListResponse {
+   /**
+    */
+
+   private String orderStatusDes	;//瀛楃涓�	璁㈠崟鐘舵�佹弿杩�
+
+   private String recordDate	;//瀛楃涓�	鐘舵�佽褰曟椂闂�
+   private Integer  orderStatus;//	瀛楃涓�	璁㈠崟鐘舵�佺爜
+   private Integer type;//	瀛楃涓�	璁㈠崟鐘舵�佽褰曠被鍨�
+   private String  canCelReason;//	瀛楃涓�	鎾ら攢鍘熷洜
+   private String  tel	;//瀛楃涓�	鍙风爜
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsCircleStatusResultListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsCircleStatusResultListResponse.java
new file mode 100644
index 0000000..8910650
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsCircleStatusResultListResponse.java
@@ -0,0 +1,22 @@
+package com.doumee.core.tms.model.response;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms鏍规嵁鍚堝悓鍙锋煡璇㈣鍗曠敓鍛藉懆鏈熻繑鍥炲弬鏁�")
+public class TmsCircleStatusResultListResponse {
+   /**
+    */
+
+   private Integer  key	;//瀛楃涓�	鐘舵�佽褰曟椂闂�
+   private String   name	;//瀛楃涓�	璁㈠崟鐘舵�佺爜
+   private List<TmsCircleStatusListResponse> secondList	;//浜岀礆鏁版嵁闆嗗悎
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsContractListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsContractListResponse.java
deleted file mode 100644
index e276007..0000000
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsContractListResponse.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.doumee.core.tms.model.response;
-
-import io.swagger.annotations.ApiModel;
-import lombok.Data;
-
-/**
- * @author 姹熻箘韫�
- * @date 2023/11/23 14:03
- */
-@Data
-@ApiModel("tms鏌ヨ鍚堝悓鍒楄〃璇锋眰杩斿洖鍙傛暟")
-public class TmsContractListResponse {
-   /**
-    {
-        "code": 0,
-        "data": [
-            {
-                "fromRepertoty": "鍚堣偉鎴愬搧搴�",
-                "ncCreateDate": "2023-12-04 10:36:15",
-                "toRepertoty": "澶╂触甯備腑蹇冧粨搴�",
-                "contractNumber": "112308335",
-                "orderStatus": "鍒拌揪鍗歌揣鍦�"
-            }
-        ],
-        "message": "鎿嶄綔鎴愬姛"
-    }
-    */
-   private String  contractNumber	;//鍚堝悓鍙�
-   private String  fromRepertoty	;//鍙戣揣鍦�
-   private String toRepertoty	;//鍒拌揣鍦�
-   private String plateNumber	;//杞︾墝鍙�	鍚堝悓鏈厤杞藉垯鏃�
-   private String orderStatus	;//褰撳墠杩愯緭鍗曠姸鎬�
-   private String  ncCreateDate;//	鍒跺崟鏃堕棿
-
-}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisListResponse.java
new file mode 100644
index 0000000..e59e4b6
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisListResponse.java
@@ -0,0 +1,21 @@
+package com.doumee.core.tms.model.response;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms鏌ヨGIS杩斿洖鍙傛暟")
+public class TmsGisListResponse {
+   /**
+    */
+
+   private List<TmsGisStartEndInfoResponse> startAndEndPoint;//闆嗗悎	璧风偣缁堢偣淇℃伅
+   private List<TmsGisStatusInfoResponse>  gisList	;//闆嗗悎	璁㈠崟鐘舵�佺爜
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisStartEndInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisStartEndInfoResponse.java
new file mode 100644
index 0000000..3d8efab
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisStartEndInfoResponse.java
@@ -0,0 +1,37 @@
+package com.doumee.core.tms.model.response;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms鏌ヨGIS 璧风偣缁堢偣淇℃伅杩斿洖鍙傛暟")
+public class TmsGisStartEndInfoResponse {
+   /**
+    */
+
+   private String startRepertotyName;//	瀛楃涓�	璧风偣鍚嶇О
+   private String   endRepertotyName;//	瀛楃涓�	缁堢偣鍚嶇О
+   private String    startLon	;//瀛楃涓�	璧风偣缁忓害
+   private String  startLat;//	瀛楃涓�	璧风偣绾害
+   private String endLon	;//瀛楃涓�	缁堢偣缁忓害
+   private String  endLat	;//瀛楃涓�	缁堢偣绾害
+   private String  plateNumber;//	瀛楃涓�	杞︾墝鍙�
+
+   private String   id;//1698530035827830786,
+   private String          transportCode;//18451,
+   private String          startRepertotyCode;//02001,
+   private String         endRepertotyCode;//1134030101,
+   private String          volume;//70,
+   private String          loadPercent;//0.5385,
+   private String         stopNumbers;//0,
+   private String           transportDate;//2023-09-04 10:54:52,
+   private String          transportMethod;//4,
+   private String          generateType;//1,
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisStatusInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisStatusInfoResponse.java
new file mode 100644
index 0000000..96599de
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisStatusInfoResponse.java
@@ -0,0 +1,24 @@
+package com.doumee.core.tms.model.response;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms鏌ヨGIS 璁㈠崟鐘舵�佺爜杩斿洖鍙傛暟")
+public class TmsGisStatusInfoResponse {
+   /**
+    */
+
+   private String startRepertotyName;//	瀛楃涓�	璧风偣鍚嶇О
+   private String   endRepertotyName;//	瀛楃涓�	缁堢偣鍚嶇О
+   private String    startLon	;//瀛楃涓�	璧风偣缁忓害
+   private String  startLat;//	瀛楃涓�	璧风偣绾害
+   private String endLon	;//瀛楃涓�	缁堢偣缁忓害
+   private String  endLat	;//瀛楃涓�	缁堢偣绾害
+   private String  plateNumber;//	瀛楃涓�	杞︾墝鍙�
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java
index bc7496a..21e0d04 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java
@@ -3,6 +3,8 @@
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @author 姹熻箘韫�
  * @date 2023/11/23 14:03
@@ -10,26 +12,7 @@
 @Data
 @ApiModel("tms鍚堝悓璇︽儏杩斿洖鍙傛暟")
 public class TmsOrderInfoResponse {
-    /**
-     {
-         "code": 0,
-         "data": {
-             "contractNumber": "112718591",
-             "ncCreateDate": "2024-06-20 09:08:01",
-             "deliveryEnterprise": "铓屽煚鎴愬搧搴�",
-             "receiveEnterprise": "瀹垮窞甯傚嵎鐑熼厤閫佷腑蹇�",
-             "transportCode": "39828",
-             "transportDate": "2024-06-20 09:04:46.0",
-             "driverName": "鐜嬩粯鍏�",
-             "driverTel": "19955211695",
-             "plateName": "鐨朇C2585",
-             "orderStatus": "5",
-             "orderStatusDesc": "鍒拌揪鍗歌揣鍦�-鐢靛瓙閿佹苯杩�"
-         },
-         "message": "鎿嶄綔鎴愬姛"
-     }
-     */
- 
+
     private String   contractNumber	; //鍚堝悓鍙�
     private String   deliveryEnterprise	; //鍙戣揣鍦�
     private String    receiveEnterprise	; //鍒拌揣鍦�
@@ -42,5 +25,10 @@
     private String   driverTel; //
     private String   orderStatusDesc; //
     private String    plateName; //": "鐨朇C2585",
-
+    private String    deliveryLon	; //	鍙戣揣浠撳簱缁忓害
+    private String    deliveryLat	; //	鍙戣揣浠撳簱绾害
+    private String    receiveLon	; //	鍗歌揣浠撳簱缁忓害
+    private String   receiveLat; //		鍗歌揣浠撳簱绾害
+     private List<TmsGisListResponse> gisList;
+    private List<TmsCircleStatusResultListResponse> cicleStatusList;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
index 55eb17d..e0c6a02 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
@@ -134,6 +134,7 @@
                     paramMap.put("touser", openId);
                     paramMap.put("data", dataMap);
                     String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
+                    log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭烦杞湴鍧�锛歿}路--++==路", jumpUrl);
                     if(StringUtils.isBlank(response)){
                         log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
                     }else{
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformBooksMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformBooksMapper.java
index fb13a8d..63e2b60 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformBooksMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformBooksMapper.java
@@ -2,11 +2,12 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.PlatformBooks;
+import com.github.yulichang.base.MPJBaseMapper;
 
 /**
  * @author 姹熻箘韫�
  * @date 2024/06/28 10:03
  */
-public interface PlatformBooksMapper extends BaseMapper<PlatformBooks> {
+public interface PlatformBooksMapper extends MPJBaseMapper<PlatformBooks> {
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
index 94f4024..5490709 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
@@ -261,6 +261,11 @@
     @ExcelColumn(name="琚浜哄憳濮撳悕")
     @TableField(exist = false)
     private String receptMemberName;
+
+    @ApiModelProperty(value = "琚浜哄憳鐢佃瘽", example = "1")
+    @ExcelColumn(name="琚浜哄憳鐢佃瘽")
+    @TableField(exist = false)
+    private String receptMemberMobile;
     @ApiModelProperty(value = "琚浜哄憳娴峰悍缂栫爜", example = "1")
     @ExcelColumn(name="琚浜哄憳濮撳悕")
     @TableField(exist = false)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java
index 1b8b013..5434080 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java
@@ -46,6 +46,9 @@
     @ApiModelProperty(value = "鎷滆鏃堕棿")
     private String visitTime;
 
+    @ApiModelProperty(value = "鏄剧ず閫氱煡鐘舵��")
+    private String info;
+
     @ApiModelProperty(value = "闅忚浜哄憳淇℃伅")
     private List<Visits> withVisitsList;
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/BoardCarsListVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/BoardCarsListVO.java
index 8b9b44f..d58fd25 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/BoardCarsListVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/BoardCarsListVO.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.web.response.platformReport;
 
+import com.doumee.core.haikang.model.cars.response.CarsAlarmResultListResponse;
 import com.doumee.core.haikang.model.cars.response.CarsDeviceDetaisResponse;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -25,6 +26,7 @@
 
     @ApiModelProperty(value = "绂荤嚎鏁伴噺")
     private int offlineNum;
-
+    @ApiModelProperty(value = "鎶ヨ淇℃伅鍒楄〃")
+    List<CarsAlarmResultListResponse> eventList;
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/FightingAdminCenterDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/FightingAdminCenterDataVO.java
index 8d31449..1ff17cb 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/FightingAdminCenterDataVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/FightingAdminCenterDataVO.java
@@ -37,7 +37,7 @@
     private Integer dangerDealedNum;
 
 
-    @ApiModelProperty(value = "鎸夎澶囧垎绫荤粺璁″懙鍛�" , hidden = true)
+    @ApiModelProperty(value = "鎸夎澶囧垎绫荤粺璁�" , hidden = true)
     private List<DeviceNumByTypeVO> deviceTypeList;
 
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/OnSitDispatchBoardVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/OnSitDispatchBoardVO.java
index 8199763..4fd07da 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/OnSitDispatchBoardVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/OnSitDispatchBoardVO.java
@@ -39,7 +39,7 @@
     @ApiModelProperty(value = "杩涘叆杞﹁締浣滀笟鎯呭喌-宸插畬鎴�")
     private int doneNum;
     @ApiModelProperty(value = "4涓洃鎺х偣indexCode闆嗗悎")
-    private List<String> videoIndexCodes;
+    private String[] videoIndexCodes;
 
     @ApiModelProperty(value = "浠婃棩鏈堝彴瀹屾垚璁㈠崟缁熻" , hidden = true)
     private List<PlatformGroupFinishVO> platformGroupFinishList;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/TemperatureHumidityDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/TemperatureHumidityDataVO.java
new file mode 100644
index 0000000..9a8fd71
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/TemperatureHumidityDataVO.java
@@ -0,0 +1,26 @@
+package com.doumee.dao.web.response.platformReport;
+
+import com.doumee.core.haikang.model.param.respose.TemperatureHumidityDataResponse;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 娑堥槻绠℃帶澶у睆
+ *
+ * @Author : Rk
+ * @create 2024/10/25 13:53
+ */
+@Data
+public class TemperatureHumidityDataVO {
+
+    @ApiModelProperty(value = "娓╁害")
+    private TemperatureHumidityDataResponse temperatureData;
+
+
+    @ApiModelProperty(value = "婀垮害")
+    private TemperatureHumidityDataResponse humidityData;
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
index 642c52d..cbdaa5b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -92,11 +92,9 @@
     @Autowired
     private CarDriverMapper carDriverMapper;
 
-    @Autowired
-    private VisitsMapper visitsMapper;
 
     @Autowired
-    private VisitsJoinMapper visitsJoinMapper;
+    private VisitsJoinMapper visitsMapper;
 
     @Autowired
     private CarUseBookJoinMapper carUseBookJoinMapper;
@@ -671,7 +669,7 @@
         if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.visit)
                 || Constants.equalsInteger(noticeType,Constants.noticesObjectType.visitReporting)){
             //璁垮璁板綍涓庤瀹㈡姤澶�
-            Visits visits = visitsJoinMapper.selectJoinOne(Visits.class,
+            Visits visits = visitsMapper.selectJoinOne(Visits.class,
                     new MPJLambdaWrapper<Visits>().selectAll(Visits.class)
                             .selectAs(Member::getName,Visits::getReceptMemberName)
                             .selectAs(Company::getName,Visits::getReceptMemberDepartment)
@@ -1732,6 +1730,13 @@
                                 SmsConstants.visitContent.visitAuditFail,
                         approveDTO.getCheckInfo(),null
                 );
+                if(Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)){
+                    SmsEmailServiceImpl.sendVisitSms(systemDictDataBiz,
+                            emayService,smsEmailMapper,smsConfigMapper,visitsMapper,visits.getId(),
+                                    SmsConstants.visitContent.visitAuditSuccessToVisiter,
+                            approveDTO.getCheckInfo(),null
+                    );
+                }
                 objCode =  Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)? WxPlatConstants.visitContent.visitAuditSuccess:
                         WxPlatConstants.visitContent.visitAuditFail;
             }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
index be1458c..9fb8713 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
@@ -14,10 +14,13 @@
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.dao.SmsConfigMapper;
 import com.doumee.dao.business.dao.SmsEmailMapper;
+import com.doumee.dao.business.join.VisitsJoinMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.business.model.vo.ValidPhoneCodeVO;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.SmsEmailService;
 import com.doumee.service.business.third.EmayService;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -296,17 +299,21 @@
      * @param auditUser
      */
     public static void sendVisitSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
-                                    VisitsMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){
+                                    VisitsJoinMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){
         try{
             SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode,
                     objCode).last(" limit 1 "));
             //寮�鍚煭淇¢�氱煡
             if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){
                 String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent();
-                Visits visits = visitsMapper.selectById(objId);
+                Visits visits = visitsMapper.selectJoinOne(Visits.class,new MPJLambdaWrapper<Visits>().selectAll(Visits.class)
+                                .selectAs(SystemUser::getMobile,Visits::getReceptMemberMobile)
+                        .leftJoin(SystemUser.class,SystemUser::getMemberId, Visits::getReceptMemberId)
+                        .eq(Visits::getId,objId).last(" limit 1 "));
                 if(Objects.nonNull(visits)){
                     if(objCode.equals(SmsConstants.visitContent.visitAuditSuccess)){
                         //鎮ㄧ殑銆愯瀹㈢敵璇枫�戝凡缁忓鎵归�氳繃锛岃浜巤棰勭害鍏ュ洯寮�濮嬫椂闂磢鍓嶅線闂ㄥ崼瀹よ瀹㈡満绛惧埌鍏ュ洯锛屽鏈夌枒闂紝璇疯仈绯昏璁夸汉
+                        //鎮ㄧ殑[璁垮鐢宠]宸茬粡瀹℃壒閫氳繃锛岃閫氱煡璁垮浜巤棰勭害鍏ュ洯寮�濮嬫椂闂磢鍏ュ洯锛屽鏈夌枒闂紝璇疯仈绯昏璁夸汉銆�
                         content = content.replace("{棰勭害鍏ュ洯寮�濮嬫椂闂磢",DateUtil.getFomartDate(visits.getStarttime(),"yyyy-MM-dd HH:mm"));
                         sendBusinessSms(emayService,smsEmailMapper,
                                 Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
@@ -325,6 +332,10 @@
                         content = content.replace("{鏈绂绘暟閲弣",msg);
                         sendBusinessSms(emayService,smsEmailMapper,
                                 Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
+                    }else if(objCode.equals(SmsConstants.visitContent.visitAuditSuccessToVisiter))  {
+                        content = content.replace("{棰勭害鍏ュ洯寮�濮嬫椂闂磢",DateUtil.getFomartDate(visits.getStarttime(),"yyyy-MM-dd HH:mm"));
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getReceptMemberMobile().split(",")),SmsConstants.visit,content,visits.getId());
                     }else{
                         //鎮ㄦ湁涓�鏉°�愯溅杈嗗叆鍥敵璇枫�戦渶瑕佸鐞嗭紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��
                         sendBusinessSms(emayService,smsEmailMapper,
@@ -350,7 +361,7 @@
      * @param auditUser
      */
     public static void sendVisitReportSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
-                                          VisitsMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){
+                                          VisitsJoinMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){
         try{
             SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode,
                     objCode).last(" limit 1 "));
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
index b2be85b..9a097fd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -82,7 +82,7 @@
     @Autowired
     private RetentionMapper retentionMapper;
     @Autowired
-    private VisitsMapper visitsMapper;
+    private VisitsJoinMapper visitsMapper;
     @Autowired
     private ApproveMapper approveMapper;
     @Autowired
@@ -1409,6 +1409,18 @@
                             memberId)
             );
 //        }
+
+        Notices notices = noticesJoinMapper.selectOne(new QueryWrapper<Notices>().lambda().eq(Notices::getObjId,visits.getId())
+                .eq(Notices::getType,Constants.equalsInteger(visits.getType(),Constants.TWO)?Constants.noticesObjectType.visitReporting:Constants.noticesObjectType.visit)
+                        .eq(Notices::getUserId,memberId)
+                        .eq(Notices::getSendacopy,Constants.ZERO)
+                .last(" limit 1 ")
+        );
+        if(Objects.nonNull(notices)){
+            notices.setInfo(notices.getInfo());
+        }else{
+            notices.setInfo("鏆傛棤");
+        }
         return visitDetailVO;
     }
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
index a062be4..afbc248 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -5,6 +5,7 @@
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.cars.response.CarsAlarmResultListResponse;
 import com.doumee.core.haikang.model.cars.response.CarsDeviceDetaisResponse;
 import com.doumee.core.haikang.model.param.BaseListPageRequest;
 import com.doumee.core.haikang.model.param.BaseListPageResponse;
@@ -31,6 +32,7 @@
 import com.doumee.service.business.impl.VisitsServiceImpl;
 import com.doumee.service.business.third.BoardService;
 import com.doumee.service.business.third.WmsService;
+import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -65,6 +67,8 @@
     @Autowired
     private PlatformJobMapper platformJobMapper;
     @Autowired
+    private PlatformBooksMapper platformBooksMapper;
+    @Autowired
     private PlatformWmsDetailMapper platformWmsDetailMapper;
     @Autowired
     private PlatformWmsJobMapper platformWmsJobMapper;
@@ -81,6 +85,74 @@
      * @return
      */
     @Override
+    public     List<GeneralVO> todayTotalInList(){
+        /**
+         * 1甯傚叕鍙革細鏍规嵁棰勭害鐨勫叆鍥師鍥犱负甯傚叕鍙稿嵏璐х殑浠诲姟涓哄競鍏徃鍏ュ簱鐨勭粺璁★紱
+         * 2闆嗘暎涓績锛歐MS鎺ㄩ�佺殑鍏ュ簱鍗曟嵁锛�
+         * 3鍔犲伐鍏ュ簱锛氶绾﹀叆鍥负閲嶅簡鍔犲伐鍏ュ簱鐨勶紙浣滀笟鏈堝彴涓哄畨娉扮墿娴佸嵏璐ф湀鍙帮級锛�
+         */
+        String[] names = new String[]{"甯傚叕鍙�","闆嗘暎涓績","鍔犲伐鍏ュ簱"};
+        String reason =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.CITY_XH_REASON_ID).getCode();
+        String platformGroupId =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ATWL_XH_PLATFORM_ID).getCode();;
+        List<GeneralVO> list = new ArrayList<>();
+        for (int i = 0; i < 3; i++) {
+            Random random = new Random();
+            GeneralVO data = new GeneralVO();
+            data.setName(names[i]);
+            BigDecimal num =new BigDecimal(0);
+            if(i == 0){
+                List<PlatformBooks> jobs = platformBooksMapper.selectJoinList(PlatformBooks.class, new MPJLambdaWrapper<PlatformBooks>()
+                        .select(PlatformJob::getTotalNum)
+                         .leftJoin(PlatformJob.class,PlatformJob::getId,PlatformBooks::getJobId)
+                        .eq(PlatformBooks::getIsdeleted,Constants.ZERO)
+                        .eq(PlatformBooks::getReasonId,reason)
+                        .apply("to_days(t1.done_date) = to_days(now())")
+                        .eq(PlatformBooks::getStatus,Constants.TWO));
+                if(jobs!=null){
+                    for(PlatformBooks j :jobs){
+                        num =num.add(Constants.formatBigdecimal(j.getTotalNum()));
+                    }
+                }
+            }else if(i ==1){
+                List<PlatformJob> jobs = platformJobMapper.selectList (new MPJLambdaWrapper<PlatformJob>()
+                        .select(PlatformJob::getTotalNum)
+                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                        .eq(PlatformJob::getOrigin,Constants.ONE)
+                        .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey()
+                                , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
+                                , Constants.PlatformJobStatus.LEAVED.getKey())
+                        .apply("to_days(done_date) = to_days(now())") );
+                if(jobs!=null){
+                    for(PlatformJob j :jobs){
+                        num =num.add(Constants.formatBigdecimal(j.getTotalNum()));
+                    }
+                }
+            }else{
+                List<PlatformJob> jobs = platformJobMapper.selectList (new MPJLambdaWrapper<PlatformJob>()
+                        .select(PlatformJob::getTotalNum)
+                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                        .eq(PlatformJob::getPlatformGroupId,platformGroupId)
+                        .apply("to_days(done_date) = to_days(now())")
+                        .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey()
+                                , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
+                                , Constants.PlatformJobStatus.LEAVED.getKey()) );
+                if(jobs!=null){
+                    for(PlatformJob j :jobs){
+                        num = num.add(Constants.formatBigdecimal(j.getTotalNum()));
+                    }
+                }
+            }
+            data.setNum(num);
+            list.add(data);
+        }
+        return list;
+
+    }
+    /**
+     * 鑾峰彇鍖哄煙鏍戝舰缁撴瀯鏁版嵁
+     * @return
+     */
+    @Override
     public BoardStockListVO stockList( ){
         BoardStockListVO data = new BoardStockListVO();
         double toatalNum = 1d;
@@ -92,7 +164,7 @@
 
         }
         WmsBaseResponse<WmsInventoryDataResponse> response =  wmsService.getInventoryList();
-        if(response!=null && response.getData()!=null && response.getData().size()>=0){
+        if(response!=null && response.getData()!=null && response.getData().size()>0){
             List<WmsInventoryJsonResponse> t= response.getData().get(0).getJson();
             if(t!=null &&t.size()>0){
                 for(WmsInventoryJsonResponse j :t){
@@ -357,6 +429,7 @@
     public  CarWorkSituationVO carWorkSituation(int limit){
         CarWorkSituationVO carWorkSituationVO = new CarWorkSituationVO();
         List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda()
+                        .like(PlatformLog::getCreateDate,DateUtil.getCurrDate())
                 .orderByDesc(PlatformLog::getCreateDate)
                 .last(" limit "+limit)
         );
@@ -952,21 +1025,25 @@
     public     BoardCarsListVO platformJobCarsList(){
         BoardCarsListVO data = new BoardCarsListVO();
         List<CarsDeviceDetaisResponse> detaisResponses = HKCarOpenService.getAllCarsDetais();
-        data.setCarsList(detaisResponses);
+         data.setCarsList(detaisResponses);
         if(data.getCarsList()!=null && data.getCarsList().size()>0){
             List<String> codes = new ArrayList<>();
             //璁惧鐘舵�� 0锛氱绾匡紱1锛氬湪绾匡紱2锛氫紤鐪�
             int online = 0;
             for(CarsDeviceDetaisResponse model:detaisResponses){
-                if(Constants.equalsInteger(model.getStatus(),Constants.ONE) ||Constants.equalsInteger(model.getStatus(),Constants.TWO)){
-                   //濡傛灉鏄湪绾挎垨鑰呬紤鐪狅紝鏌ヨ鍦ㄩ�旇繕鏄┖闂�
+                if(Constants.equalsInteger(model.getStatus(),Constants.ONE)
+                        ||Constants.equalsInteger(model.getStatus(),Constants.TWO)){
+                   //濡傛灉鏄湪绾挎垨鑰呬紤鐪狅紝鏌ヨ鍦ㄩ�旇繕鏄┖闂瞭y
                     codes.add(model.getPlateNum());
+                    model.setJobStatus(Constants.ZERO);
                 }else
+                    model.setJobStatus(Constants.TWO);
                     data.setOfflineNum(data.getOfflineNum()+1);
                 }
             if(codes.size()>0){
                 //鐘舵�� 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙�  12鍙栨秷锛圵MS锛�
-                long busyNum = platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+                List<PlatformJob> busyNum = platformJobMapper.selectList(new QueryWrapper<PlatformJob>() .lambda()
+                                .select(PlatformJob::getCarCodeFront)
                         .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                         .in(PlatformJob::getCarCodeFront,codes)
                         .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey()
@@ -978,8 +1055,20 @@
                                 ,Constants.PlatformJobStatus.WAIT_CONFIRM.getKey()
                                 ,Constants.PlatformJobStatus.EXCEPTION.getKey())
                         .groupBy(PlatformJob::getCarCodeFront));
-                data.setBusyNum((int)busyNum);//鍦ㄩ�旀湁浠诲姟鏁伴噺
+                data.setBusyNum( busyNum!=null ?busyNum.size():0);//鍦ㄩ�旀湁浠诲姟鏁伴噺
                 data.setIdleNum(codes.size() -data.getBusyNum());//鏃犱换鍔$┖闂叉暟閲�
+                data.setEventList(HKCarOpenService.getAlarmEvemtList(detaisResponses,new Date()));
+                if(busyNum != null){
+                  FLAG:  for(CarsDeviceDetaisResponse model:detaisResponses){
+                        for(PlatformJob job : busyNum){
+                            if(StringUtils.equals(job.getCarCodeFront(),model.getPlateNum())){
+                                model.setJobStatus(Constants.ONE);
+                                continue FLAG;
+                            }
+                        }
+                    }
+
+                }
             }
         }
 
@@ -1000,6 +1089,14 @@
             alarmDataVO.setErrNum(Constants.formatIntegerNum(response.getData().getMisReportAlarmNum()));
             alarmDataVO.setLiftNum(Constants.formatIntegerNum(response.getData().getHandledAlarmNum()));
             alarmDataVO.setProcessingNum(Constants.formatIntegerNum(response.getData().getUnHandedAlarmNum()));
+            alarmDataVO.setStartDate(start);
+            alarmDataVO.setEndDate(end);
+        }else{
+            alarmDataVO.setTotalNum(Constants.ZERO);
+            alarmDataVO.setRealNum(Constants.ZERO);
+            alarmDataVO.setErrNum(Constants.ZERO);
+            alarmDataVO.setLiftNum(Constants.ZERO);
+            alarmDataVO.setProcessingNum(Constants.ZERO);
             alarmDataVO.setStartDate(start);
             alarmDataVO.setEndDate(end);
         }
@@ -1074,6 +1171,46 @@
         data.setDangerDealedNum(totalNum !=null?totalNum.intValue():0);//浠婃棩澶勭悊闅愭偅鏁伴噺
         return  data;
     }
+
+
+    /**
+     * 娑堥槻 娓╂箍搴︽暟鎹�
+     */
+    @Override
+    public List<TemperatureHumidityDataVO> getTemperatureHumidityData(){
+        TemperatureHumidityDataRequest request = new TemperatureHumidityDataRequest();
+        List<TemperatureHumidityDataVO> temperatureHumidityDataVOList = new ArrayList<>();
+        request.setPageNo(1);
+        request.setPageSize(100);
+        request.setParentIndexCode(systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.TEMPERATURE_HUMIDITY).getCode());
+        BaseResponse<BaseListPageResponse<TemperatureHumidityDataResponse>> response = HKService.temperatureHumidityDataStatistic(request);
+        if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){
+            List<TemperatureHumidityDataResponse> temperatureHumidityDataResponseList = response.getData().getList();
+
+            if(CollectionUtils.isNotEmpty(temperatureHumidityDataResponseList)){
+                Set<String> parentIndexCode = new HashSet<String>(temperatureHumidityDataResponseList.stream().map(
+                        i->i.getIndexCode().replace("@0","").replace("@1","")
+                ).collect(Collectors.toList()));
+                for (String code:parentIndexCode) {
+                    List<TemperatureHumidityDataResponse> dateList =
+                            temperatureHumidityDataResponseList.stream().filter(i->i.getIndexCode().indexOf(code)>=Constants.ZERO).collect(Collectors.toList());
+                    TemperatureHumidityDataVO temperatureHumidityDataVO = new TemperatureHumidityDataVO();
+                    for (TemperatureHumidityDataResponse data:dateList) {
+                        if(data.getSensorType().equals("temp")){
+                            temperatureHumidityDataVO.setTemperatureData(data);
+                        }else{
+                            temperatureHumidityDataVO.setHumidityData(data);
+                        }
+                    }
+                    temperatureHumidityDataVOList.add(temperatureHumidityDataVO);
+                }
+            }
+        }
+        return temperatureHumidityDataVOList;
+    }
+
+
+
     /**
      * 鐢ㄧ數鎬昏兘鑰楀悓姣斻�佺幆姣斿拰鍖哄煙鐢ㄧ數閲忛泦鍚�
      * @return
@@ -1174,7 +1311,7 @@
         3) 鑷潵姘翠簩姘у寲纰虫帓鏀鹃噺(kg)=鑷潵姘翠娇鐢ㄩ噺(m3)脳0.91锛�*/
         data.setCarbon(Constants.formatBigdecimal2Float((carbonElec.multiply(new BigDecimal(0.785)))
                 .add(carbonGas.multiply(new BigDecimal(0.19)))
-                .add(carbonWater.multiply(new BigDecimal(0.91)))));
+                .add(carbonWater.multiply(new BigDecimal(0.91)))).divide(new BigDecimal(1000),2,BigDecimal.ROUND_HALF_UP));
         return data;
 
     }
@@ -1219,7 +1356,8 @@
         param.setPeriodType("day");
         BigDecimal total = new BigDecimal(0);
         BaseResponse<EnergyTrendResponse> response = HKService.energyTrend(param);
-        if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null&& response.getData().getYvalues()!=null ){
+        if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)
+                && response.getData()!=null&& response.getData().getYvalues()!=null ){
             for (int i = 0; i < response.getData().getYvalues().get(0).getValue().length; i++) {
                 total = total.add(new BigDecimal(StringUtils.defaultString( response.getData().getYvalues().get(0).getValue()[i],"0")));
             }
@@ -1258,8 +1396,21 @@
             data.setRingPercent("0");
             data.setSecondRegionDataList(new ArrayList<>());
         }
-        return data;
+        if(data.getSecondRegionDataList()!=null && data.getSecondRegionDataList().size()>1){
+            int index =-1;
+            for (int i = 0; i <data.getSecondRegionDataList().size() ; i++) {
+                RegionTopPowerResponse t=data.getSecondRegionDataList().get(i);
+                if(Constants.formatBigdecimal(t.getPercent()).compareTo(new BigDecimal(1)) == 0){
+                    index =i;
+                    break;
+                }
+            }
+            if(index>-1){
+                data.getSecondRegionDataList().remove(index);//鍒犻櫎鏍硅妭鐐规暟鎹�
+            }
+        }
 
+        return  data;
     }
     /**
      * 杩�12涓按鐢垫皵娌硅�楁暟鎹粺璁�
@@ -1330,15 +1481,15 @@
         VisitDataVO result = new VisitDataVO();
         result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>()
                 .eq(Visits::getIsdeleted,Constants.ZERO)
-                .apply("to_days(create_date)=to_days(now()")
+                .apply("to_days(create_date)=to_days(now())")
                 .in(Visits::getStatus,Constants.VisitStatus.pass,Constants.VisitStatus.xfSuccess )));//寰呰闂�
         result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>()
                 .eq(Visits::getIsdeleted,Constants.ZERO)
-                .apply("to_days(create_date)=to_days(now()")
+                .apply("to_days(create_date)=to_days(now())")
                 .in(Visits::getStatus,Constants.VisitStatus.signout,Constants.VisitStatus.signin )));//宸茬櫥璁�
         result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>()
                 .eq(Visits::getIsdeleted,Constants.ZERO)
-                .apply("to_days(create_date)=to_days(now()")
+                .apply("to_days(create_date)=to_days(now())")
                 .in(Visits::getStatus,Constants.VisitStatus.signout )));//宸茬绂�
         /*PageWrap<Visits> pageWrap = new PageWrap<>();
         pageWrap.setCapacity(10);
@@ -1486,7 +1637,7 @@
                     .selectAll( PlatformJob.class)
                     .select("( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = "+Constants.PlatformJobLogType.WORKING.getKey()+"  order by pl.CREATE_DATE desc  limit 1  ) as newStartDate")
                     //.select(" (  select sum(ifnull(pl.IO_QTY , 0 ))   from platform_wms_detail pl  where   pl.job_id = t.id and pl.isdeleted=0 )",PlatformJob::getWorkNum)
-                    .select(" (  case when t.total_num is null  then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = t.id  ) else a.total_num end )",PlatformJob::getWorkNum)
+                    .select(" (  case when t.total_num is null  then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = t.id  ) else t.total_num end )",PlatformJob::getWorkNum)
                     .apply("to_days(t.create_date) = to_days(now())")
                     .eq(Platform::getIsdeleted, Constants.ZERO)
                     .in(PlatformJob ::getStatus,new Integer[]{Constants.PlatformJobStatus.WORKING.getKey(),Constants.PlatformJobStatus.CALLED.getKey() })
@@ -1734,6 +1885,12 @@
                 }
 
             }
+
+            data.setVideoPluginUrl(getVideoUrl());
+            String indexCodes = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_CHANGNEI_SCREEN_INDEXCODES).getCode();
+            if(StringUtils.isNotBlank(indexCodes)){
+                data.setVideoIndexCodes(indexCodes.split(","));
+            }
         }
 
         return  data;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java
index 9d3a9a1..7772152 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java
@@ -5,13 +5,9 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.doumee.biz.system.SystemDictDataBiz;
-import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest;
-import com.doumee.core.tms.model.request.TmsOrderInfoRequest;
-import com.doumee.core.tms.model.request.TmsOrderListRequest;
-import com.doumee.core.tms.model.response.TmsBaseResponse;
-import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse;
-import com.doumee.core.tms.model.response.TmsOrderInfoResponse;
-import com.doumee.core.tms.model.response.TmsOrderListResponse;
+import com.doumee.core.tms.model.TMSContants;
+import com.doumee.core.tms.model.request.*;
+import com.doumee.core.tms.model.response.*;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.HttpsUtil;
 import com.doumee.core.wms.model.request.*;
@@ -25,6 +21,7 @@
 import com.doumee.service.business.third.TmsService;
 import com.doumee.service.business.third.WmsService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import io.swagger.models.auth.In;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -72,11 +69,120 @@
     @Override
     public TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockStatusQuery(TmsLockStatusQueryRequest param){
         String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
-                +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_LOCK_STATUS_URL).getCode();
+                + TMSContants.InterfacePath.getElecByContractNumberList[0];
 
-        TmsBaseResponse<List<TmsLockStatusQueryResponse>> response = sendHttpRequest(url,"銆怲MS銆戠數瀛愰攣涓婇攣鏃堕棿鎺ュ彛",JSONObject.toJSONString(param)
+        TmsBaseResponse<List<TmsLockStatusQueryResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getElecByContractNumberList[1],JSONObject.toJSONString(param)
                 ,new TypeReference< TmsBaseResponse<List<TmsLockStatusQueryResponse>>>(){});
         return  response;
+    }
+
+    /**
+     * 杩愯緭鍗昰is杞ㄨ抗
+     * 鏍规嵁鍖哄煙ID闆嗗悎+绛涢�夋潯浠讹紙鍚堝悓鍙枫�佸埗鍗曞紑濮嬫棩鏈熴�佸埗鍗曠粨鏉熸棩鏈熴�佸彂璐у湴銆佸埌璐у湴銆佺渷浠斤紝闈為渶瑕侊級锛岃繑鍥炲悎鍚屽垪琛ㄤ俊鎭紝鎸夌収鏃堕棿鍊掑簭灞曠ず锛�
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public   List<TmsGisListResponse>  gisList(TmsGisListRequest param){
+
+       if(param.getTransportCode()==null  ){
+          return  new ArrayList<>();
+       }
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getGis[0];
+        TmsBaseResponse<List<TmsGisListResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getGis[1],JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<List<TmsGisListResponse>>>(){});
+        if(response ==null){
+            return  new ArrayList<>();
+        }else{
+            return response.getData()==null?new ArrayList<>():response.getData();
+        }
+    }
+    /**
+     * 璁㈠崟鐢熷懡鍛ㄦ湡
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public   List<TmsCircleStatusResultListResponse>  getCicleStatusList(TmsCircleStatusListRequest param){
+        List<TmsCircleStatusResultListResponse> list =new ArrayList<>();
+       if(param.getContractNumber()==null  ){
+          return  new ArrayList<>();
+       }
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getOrderStatusByContractNumber[0];
+        TmsBaseResponse<List<TmsCircleStatusListResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getOrderStatusByContractNumber[1],JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<List<TmsCircleStatusListResponse>>>(){});
+
+        if(response ==null){
+            return  new ArrayList<>();
+        }else{
+            /**
+             *  ddsc(0,"璁㈠崟鐢熸垚",new Integer[]{ChildStatusLevel.create.getKey()}),
+             *         ydpzz (1,"杩愬崟閰嶈浇涓�",new Integer[]{ChildStatusLevel.ysdxc.getKey()
+             *                 ,ChildStatusLevel.ysdcx.getKey()
+             *                 ,ChildStatusLevel.shtg.getKey()
+             *                 ,ChildStatusLevel.shwtg.getKey()
+             *                 ,ChildStatusLevel.ysdcx.getKey()}),
+             *         ckckz (2,"浠撳簱鍑哄簱涓�",new Integer[]{ChildStatusLevel.ddzhddzs.getKey()
+             *                 ,ChildStatusLevel.clqddzs.getKey()}),
+             *         clysz(3, "杞﹁締杩愯緭涓�",new Integer[]{ChildStatusLevel.clqdapp.getKey()}),
+             *         ydh(4,"宸插埌璐�",new Integer[]{ChildStatusLevel.ddzhd.getKey()}),
+             *         yrk
+             */
+            for (int i = 0; i < 6; i++) {
+                TmsCircleStatusResultListResponse t = new TmsCircleStatusResultListResponse();
+                TMSContants.TopStatusLevel tem = TMSContants.TopStatusLevel.ddsc;
+                if(i == 0){
+                    tem=TMSContants.TopStatusLevel.yrk;
+                } if(i == 1){
+                    tem=TMSContants.TopStatusLevel.ydh;
+                } if(i == 2){
+                    tem=TMSContants.TopStatusLevel.clysz;
+                } if(i == 4){
+                    tem=TMSContants.TopStatusLevel.ckckz;
+                } if(i == 3){
+                    tem=TMSContants.TopStatusLevel.ydpzz;
+                } if(i == 5){
+                    tem=TMSContants.TopStatusLevel.ddsc;
+                }
+                t.setName(tem.getName());
+                t.setKey(tem.getKey());
+                t.setSecondList(getSecondCircleStatusList(tem,response.getData()));
+                if(t.getSecondList()!=null & t.getSecondList().size()>0){
+                    list.add(t);
+                }
+            }
+        }
+
+        return list;
+    }
+
+    private List<TmsCircleStatusListResponse> getSecondCircleStatusList(TMSContants.TopStatusLevel tem, List<TmsCircleStatusListResponse> data) {
+        if(data ==null ||data.size()==0){
+            return  new ArrayList<>();
+        }
+        List<TmsCircleStatusListResponse> list = new ArrayList<>();
+        Integer[] statusList = tem.getChileIndexList();
+        if(statusList!=null){
+            for(Integer t :statusList){
+                for(TmsCircleStatusListResponse status :data){
+                    if(Constants.equalsInteger(status.getOrderStatus(),Constants.FOUR)
+                            && Constants.equalsInteger(status.getType(),TMSContants.StatusCode.app)) {
+                        status.setOrderStatus(TMSContants.ChildStatusLevel.clqdapp.getKey());
+                    }
+                    if(Constants.equalsInteger(status.getOrderStatus(),Constants.FIVE)
+                            && Constants.equalsInteger(status.getType(),TMSContants.StatusCode.app)) {
+                        status.setOrderStatus(TMSContants.ChildStatusLevel.ddzhd.getKey());
+                    }
+                    if(Constants.equalsInteger(status.getOrderStatus(),t )){
+                        status.setOrderStatusDes(TMSContants.ChildStatusLevel.getInfo(status.getOrderStatus(),null));
+                        list.add(status);
+                    }
+                }
+            }
+        }
+        return list;
     }
 
     /**
@@ -94,8 +200,8 @@
            param.setContractNumbers(null);
        }
         String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
-                    +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_ORDER_LIST_URL).getCode();
-        TmsBaseResponse<List<TmsOrderListResponse>> response = sendHttpRequest(url,"銆怲MS銆戝悎鍚屽垪琛ㄦ帴鍙�",JSONObject.toJSONString(param)
+                    +TMSContants.InterfacePath.getOrderList[0];
+        TmsBaseResponse<List<TmsOrderListResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getOrderList[1],JSONObject.toJSONString(param)
                 ,new TypeReference< TmsBaseResponse<List<TmsOrderListResponse>>>(){});
         if(response ==null){
             return  new ArrayList<>();
@@ -110,15 +216,26 @@
      */
     @Override
     public  TmsOrderInfoResponse orderInfo(TmsOrderInfoRequest param){
-        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
-                    +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_ORDER_DETAIL_URL).getCode();
-        TmsBaseResponse<TmsOrderInfoResponse> response = sendHttpRequest(url,"銆怲MS銆戝悎鍚岃鎯呮帴鍙�",JSONObject.toJSONString(param)
-                ,new TypeReference< TmsBaseResponse<TmsOrderInfoResponse>>(){});
-        if(response ==null){
-            return new TmsOrderInfoResponse();
-        }else{
-            return response.getData()==null?new TmsOrderInfoResponse():response.getData();
+        TmsOrderInfoResponse result = new TmsOrderInfoResponse();
+        if(StringUtils.isBlank(param.getContractNumber())){
+            return  result;
         }
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getOrderDetailByContractNumber[0];
+        TmsBaseResponse<TmsOrderInfoResponse> response = sendHttpRequest(url,TMSContants.InterfacePath.getOrderDetailByContractNumber[1],JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<TmsOrderInfoResponse>>(){});
+        if(response!=null && response.getData()!=null){
+              result =response.getData();
+        }
+        if(result.getTransportCode()!=null){
+            TmsGisListRequest p = new TmsGisListRequest();
+            p.setTransportCode(result.getTransportCode());
+            result.setGisList(gisList(p));
+        }
+        TmsCircleStatusListRequest p1 = new TmsCircleStatusListRequest();
+        p1.setContractNumber(param.getContractNumber());
+        result.setCicleStatusList(getCicleStatusList(p1));
+        return result;
     }
 
     /**
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java
index 9d9bde7..d024f45 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java
@@ -66,6 +66,8 @@
 
     FightingAdminCenterDataVO centerFightingAdminData();
 
+    List<TemperatureHumidityDataVO> getTemperatureHumidityData();
+
     YearDeviceDataVO yearFightingAdminDeviceData();
 
     List<AlarmEventDataVO> fightingAdminAlertList();
@@ -85,4 +87,6 @@
     List<TransportMeasureVO> transportMeasure(Integer queryType);
 
     BoardStockListVO stockList();
+
+    List<GeneralVO> todayTotalInList();
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java
index 0b8a34f..ee29b17 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java
@@ -1,12 +1,7 @@
 package com.doumee.service.business.third;
 
-import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest;
-import com.doumee.core.tms.model.request.TmsOrderInfoRequest;
-import com.doumee.core.tms.model.request.TmsOrderListRequest;
-import com.doumee.core.tms.model.response.TmsBaseResponse;
-import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse;
-import com.doumee.core.tms.model.response.TmsOrderInfoResponse;
-import com.doumee.core.tms.model.response.TmsOrderListResponse;
+import com.doumee.core.tms.model.request.*;
+import com.doumee.core.tms.model.response.*;
 import com.doumee.core.wms.model.request.WmsActionNoticeRequest;
 import com.doumee.core.wms.model.request.WmsBaseRequest;
 import com.doumee.core.wms.model.request.WmsInboundNoticeRequest;
@@ -40,7 +35,8 @@
      * @return TmsBaseResponse
      */
     List<TmsOrderListResponse> orderList(TmsOrderListRequest param);
-
+    List<TmsGisListResponse>  gisList(TmsGisListRequest param);
+    List<TmsCircleStatusResultListResponse>  getCicleStatusList(TmsCircleStatusListRequest param);
     /**
      * 鍚堝悓璇︽儏鎺ュ彛
      * @param param 鍙傛暟

--
Gitblit v1.9.3