From 2b4ecab8cb9d048f0ef64e48ac3ff7da6a56d8c8 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 04 十一月 2024 19:32:39 +0800
Subject: [PATCH] 最新版本541200007

---
 server/system_service/src/main/java/com/doumee/core/utils/Constants.java                                                 |    3 
 server/system_service/src/main/java/com/doumee/core/utils/TestTool.java                                                  |  465 ++++++++++++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/OnSitDispatchBoardVO.java         |   10 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageSensorStatusResponse.java    |   22 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/RegionTreeVO.java                 |   93 +++
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java                                 |   19 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java                               |   45 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/CamerasPreviewURLsResponse.java  |   13 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java                        |   63 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                               |  103 +++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java                                 |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageRequest.java                 |   11 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java                               |    3 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarsCloudController.java                                |   15 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncInitConfigServiceImpl.java     |    9 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageFireChannelInfoResponse.java |   22 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageCameraInfoResponse.java      |   49 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SensorStatusListRequest.java     |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/CarsImport.java                                 |   40 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java                 |  289 +++++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageRegionInfoResponse.java      |   30 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/OnSitDispatchController.java                            |   36 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/CarmeraListVO.java                |   34 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                                   |   40 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java                          |   40 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CameraPreviewURLsRequest.java    |   15 
 26 files changed, 1,435 insertions(+), 39 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 75f7777..6619215 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
@@ -426,6 +426,7 @@
 
 
     public interface RedisKeys {
+        public static final String IMPORTING_CARS ="IMPORTING_CARS";
         public static final String IMPORTING_MEMBER ="IMPORTING_MEMBER";
         public static final String IMPORTING_GAS ="IMPORTING_GAS";
         public static final String ERP_TOKEN ="ERP_TOKEN";
@@ -920,7 +921,7 @@
 
     /**
      * 鏈堝彴浣滀笟 鐘舵��
-     * 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙�
+     * 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙� 12宸插彇娑�
      */
     public  enum PlatformJobStatus {
         WAIT_CONFIRM(0, "寰呯‘璁�","寰呯‘璁�" ),
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/TestTool.java b/server/system_service/src/main/java/com/doumee/core/utils/TestTool.java
index ca7bffb..6bbfc7b 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/TestTool.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/TestTool.java
@@ -911,11 +911,450 @@
 
 
         };
+        String[] carsPhone = new String[]{
+                "鐨朅B6219-15256553434",
+                "鐨朅E301R-13866781208",
+                "鐨朅01213-13856004205",
+                "鐨朅9G467-18855126212",
+                "鐨朅AT569-13705600310",
+                "鐨朅A8196-13705691362",
+                "鐨朅AT561-13705600310",
+                "鐨朅A8593-15055179136",
+                "鐨朅A8559-13485727850",
+                "鐨朅A8565-17505515701",
+                "鐨朅A8573-13966686381",
+                "鐨朅A8117-15155165536",
+                "鐨朅A8580-18949230358",
+                "鐨朅J5118-15955159992",
+                "鐨朅J1371-18010863058",
+                "鐨朅J0691-13965105584",
+                "鐨朅J0665-15255133586",
+                "鐨朅J8818-13955160295",
+                "鐨朅J9221-13966655585",
+                "鐨朅J0609-13866171458",
+                "鐨朅J3080-13075519010",
+                "鐨朅L0601-15055107708",
+                "鐨朅L1971-13655604645",
+                "鐨朅L8313-13965137528",
+                "鐨朅L1761-17505690187",
+                "鐨朅L9179-13965020562",
+                "鐨朅L0390-18010882575",
+                "鐨朅L5131-13515644306",
+                "鐨朅L0201-13905601520",
+                "鐨朅L2771-13637094407",
+                "鐨朅L7131-13865991467",
+                "鐨朘9072C-15905583796",
+                "鐨朅F69F5-13955008600",
+                "鐨朚GG862-13955008855",
+                "鐨朅C669Y-13605511715",
+                "鐨朅Y6Y57-13856987728",
+                "鐨朅A99719-13855002548",
+                "鐨朅F727Y-13965073377",
+                "鐨朅7H319-15375258610",
+                "鐨朅A32898-13965029965",
+                "鐨朅D15312-18056098020",
+                "鐨朅BB189-13855191889",
+                "鐨朅81B27-18856963616",
+                "鐨朅783GX-15255621599",
+                "鐨朅QM306-18856963616",
+                "鐨朅22U80-13866161051",
+                "鐨朅SJ523-13866161051",
+                "鐨朅WX972-13956088283",
+                "鐨朅XU128-13956055677",
+                "鐨朅A1535-13956055677",
+                "鐨朅Y9T09-13856085586",
+                "鐨朅FJ4499-13856085586",
+                "鐨朆X111S-13966767600",
+                "鐨朅D9Z39-18055162696",
+                "鏅CH956-13855159797",
+                "鏅DR5227-13865509512",
+                "鏅J617Z-13866754556",
+                "鏅V063U-18855192890",
+                "鏅V5P23-18155183418",
+                "鏅6VF72-18656025577",
+                "鏅NR728-13866796112",
+                "鐨朅43970-13956077896",
+                "鐨朅NN900-13956975120",
+                "鐨朅L1Z26-13956975120",
+                "鐨朅LP828-13739262204",
+                "鐨朅C289Y-13956008165",
+                "鐨朅A0G39-19956003192",
+                "鐨朅GU016-13856056195",
+                "鐨朅L56R0-13956908148",
+                "鐨朅A01110-18055417732",
+                "鐨朅PY305-18055417732",
+                "鐨朅RL218-13955132837",
+                "鐨朅ZH216-15155141103",
+                "鐨朅G2088-18005694101",
+                "鐨朅A61999-18255991615",
+                "鐨朅A38669-19956003192",
+                "鐨朅DK9306-13956808695",
+                "鐨朅10110-13855153156",
+                "鐨朅135NR-13339299171",
+                "鐨朅38566-18919690881",
+                "鐨朅39961-18919690772",
+                "鐨朅E4W46-18856910835",
+                "鐨朅F293T-18919690767",
+                "鐨朅2953B-18919690767",
+                "鐨朅B13A8-18956055277",
+                "鐨朅Q69X7-13956977985",
+                "鐨朅B7M36-18856910817",
+                "鐨朅H39X5-13856019166",
+                "鐨朅7UK93-13855176573",
+                "鐨朅1DK59-13855140034",
+                "鐨朅3MK59-18919690767",
+                "鐨朅0BL38-18856910907",
+                "鐨朅V31B8-13665655857",
+                "鐨朅EE842-18919690767",
+                "鐨朅8315A-13856063769",
+                "鐨朅2NK09-18856910815",
+                "鐨朅1729B-18919690767",
+                "鐨朅E0W92-18919690767",
+                "鐨朅EN372-18919690767",
+                "鐨朅VM416-18919690767",
+                "鐨朅YC151-18919690767",
+                "鐨朅0265F-18919690767",
+                "鐨朅E5N69-18919690767",
+                "鐨朅0CM93-18919690767",
+                "鐨朅C935U-18919690767",
+                "鐨朅W092Z-13855123707",
+                "鐨朅V50A0-18856910853",
+                "鐨朅7VM93-13956079487",
+                "鐨朅W5B19-18955151555",
+                "鐨朅2EL08-13855195399",
+                "鐨朅P33B9-13505612412",
+                "鐨朅M39A3-18856910800",
+                "鐨朅D2250-15395033218",
+                "鐨朅46E69-13855192234",
+                "鐨朅X32A1-13764070633",
+                "鐨朅AC748-19956056535",
+                "鐨朅0352Z-13605516917",
+                "鐨朅5X011-13605516917",
+                "鐨朅A1292-13605516917",
+                "鐨朅DD1065-13605516917",
+                "鐨朅Q23R8-19159080805",
+                "鐨朅M17R9-13965056178",
+                "鐨朅H31S9-19956075570",
+                "鐨朅091R6-13739278846",
+                "鐨朅CB455-15375429056",
+                "鐨朅D1372-15395033218",
+                "鐨朅L1W38-18655123031",
+                "鐨朅K08R2-18256958373",
+                "鐨朅R5497-15256591763",
+                "鐨朅F700T-13955140157",
+                "鐨朅03X40-17856513485",
+                "鐨朅69S96-18356525286",
+                "鐨朅U23G6-13866669923",
+                "鐨朅62Y24-19956056535",
+                "鐨朅D77683-19956056535",
+                "娴橢QE628-13339117728",
+                "鐨朅0R0B5-13956041029",
+                "鐨朅32MC8-13955140157",
+                "鐨朅3QM38-13739278846",
+                "鐨朅7U2B9-18956078866",
+                "鐨朅DW275-13605516917",
+                "鐨朅E181E-18175335887",
+                "鐨朅XJ332-13866685119",
+                "鐨朅13C37-18956078866",
+                "鐨朅2U747-13615606800",
+                "鐨朅X63G1-13615606800",
+                "鐨朅2651Z-13956041029",
+                "鐨朅12931-13339299171",
+                "鐨朅H4Y07-18919690772",
+                "鐨朅FH3616-18919690781",
+                "鐨朅X7K28-18919690781",
+                "鐨朅05LG0-17818588089",
+                "鐨朅A7985-17818588089",
+                "鐨朅98E57-18919690762",
+                "鐨朅916N9-13965103313",
+                "鐨朅AT378-13855153156",
+                "鐨朅29601-18919690881",
+                "鐨朅DN1577-13966384376",
+                "鐨朅BR530-15375352357",
+                "鐨朅Q360T-13966384376",
+                "鐨朅C2M88-13855196288",
+                "鐨朅63917-13955186028",
+                "鐨朅6607G-13866683455",
+                "鐨朅9158Z-13645651772",
+                "鐨朅DM3277-13645651772",
+                "鐨朅G277B-13955199214",
+                "鐨朅711G1-13505658626",
+                "鐨朅G67E6-15256507992",
+                "鐨朅0KM07-13966334117",
+                "鐨朅9LC70-18856910807",
+                "鐨朅FB925-15956505627",
+                "鐨朅7LZ59-13866700557",
+                "鐨朅R335F-13866700557",
+                "鐨朅LT825-19159082371",
+                "鐨朅18J84-13866984826",
+                "鐨朅DH0855-13856960608",
+                "鐨朅T067X-13856960608",
+                "鐨朅Q6L13-13966375158",
+                "鐨朅W983Z-18949847129",
+                "鐨朅9HH77-13856004013",
+                "鐨朅09L92-13966379444",
+                "鐨朅61K85-18005657566",
+                "鐨朅98X01-13956095631",
+                "鐨朅WE926-18919690770",
+                "鐨朅N0412-18919690771",
+                "鐨朅PV960-18919690890",
+                "鐨朅M261P-18955150503",
+                "鐨朅3T655-13956917233",
+                "鐨朅G85H1-13956917233",
+                "鐨朅3XJ79-13966696265",
+                "鐨朅59CM8-13856515377",
+                "鐨朅TT645-18919690668",
+                "鐨朅PX519-17333068189",
+                "鐨朅LV519-18955151555",
+                "鐨朅818E5-18856910910",
+                "鐨朅MM988-13035066988",
+                "鐨朅DS3180-13866666650",
+                "鐨朅C333A-13866666650",
+                "鐨朅DS3810-13866666650",
+                "鐨朅V0282-13855195399",
+                "鐨朅D4Y98-13605697998",
+                "鐨朅D7L59-18856910823",
+                "鐨朅R67M2-13856063769",
+                "鐨朅D67620-19965044178",
+                "鐨朅L5Y13-19965044178",
+                "鐨朅9T097-13855176573",
+                "鐨朅F177Z-18919690775",
+                "鐨朅1C196-13956919655",
+                "鐨朅Y731G-18856910780",
+                "鐨朅157FM-13966670004",
+                "鐨朅DC9936-13505612412",
+                "鐨朅GH153-18856910894",
+                "鐨朅R0R28-18856910835",
+                "鐨朅H906T-13965052135",
+                "鐨朅H306Q-13856001805",
+                "鐨朅R903R-18856910891",
+                "鐨朅57H80-13966687088",
+                "鐨朇FD672-13856057477",
+                "鐨朅0CT25-13805604117",
+                "鐨朅39R99-18956055277",
+                "鐨朅S5399-18956055277",
+                "鐨朜YC109-18856910800",
+                "鐨朅7XG67-13956977985",
+                "鐨朅5L003-18856910803",
+                "鐨朅8D2B0-18856910803",
+                "鐨朅W6595-18856910826",
+                "鐨朅S6K77-18856910847",
+                "鐨朅833H7-13956079487",
+                "鐨朅2L428-13856019166",
+                "鐨朅0Q880-18856910827",
+                "鐨朅833GJ-13955171029",
+                "鐨朅860J6-18856910791",
+                "鐨朅U3Z77-18856910804",
+                "鐨朅K327T-13965104222",
+                "鐨朅K6N66-13965104222",
+                "鐨朅0780R-18919690780",
+                "鐨朅A77996-18919690767",
+                "鐨朅M6847-18919690767",
+                "鐨朅912D3-18856910802",
+                "鐨朅9UV52-18856910832",
+                "鐨朅L218F-18856910832",
+                "鐨朅6TW79-18856910837",
+                "鐨朅009B9-18856910901",
+                "鐨朅52AA8-18856910806",
+                "鐨朅P981A-18856910794",
+                "鐨朅62W52-18856910843",
+                "鐨朅SF208-18856910789",
+                "鐨朅TG275-18856910885",
+                "鐨朅388S3-18856910829",
+                "鐨朅64691-18856910866",
+                "鐨朅P252C-18856910836",
+                "鐨朅V7B16-18856910833",
+                "鐨朅UX783-13956957683",
+                "鐨朅21C11-13956918895",
+                "鐨朅276FV-18856910907",
+                "鐨朅E5170-13665655857",
+                "鐨朅Q83G7-18856910788",
+                "鐨朅F2347-18856910801",
+                "鐨朅MB148-13965121479",
+                "鐨朅3WR69-18856910813",
+                "鐨朅950ZJ-13515609707",
+                "鐨朅50KF9-18856910815",
+                "鐨朅7NZ95-18856910841",
+                "鐨朅T063K-13855140034",
+                "鐨朅3A237-13965109187",
+                "鐨朅4Y333-13856954333",
+                "鐨朅D11433-13856954333",
+                "鐨朅Z427Y-17333038030",
+                "鐨朅N006Z-13855123707",
+                "鐨朅ZU635-18856080703",
+                "鐨朅022P6-18856910895",
+                "鐨朅LM129-18856910895",
+                "鐨朅BB479-18856910853",
+                "鐨朅H708Z-18856910906",
+                "鐨朅K222N-18856910876",
+                "鐨朅6013L-18856910913",
+                "鐨朅802RD-18856910910",
+                "鐨朅A81395-18856910804",
+                "鐨朅GZ396-18919690782",
+                "鐨朅V25V3-18856910892",
+                "鐨朅DX8899-15856391419",
+                "鐨朅A1R27-18856910892",
+                "鐨朅L9Q85-18155166465",
+                "鐨朅R977R-13856557658",
+                "鐨朅D11948-15856391419",
+                "鐨朅D23329-15856391419",
+                "鐨朅FD8929-13905600222",
+                "鐨朅FJ4994-13966334117",
+                "鐨朅918HP-18856910836",
+                "鐨朅P6021-18919690780",
+                "鐨朅F16980-13955190131",
+                "鐨朅D80156-13956917233",
+                "鐨朅D46432-15209856136",
+                "鐨朅L2A95-13685695039",
+                "鐨朅P015K-13865918124",
+                "鐨朅S7306-15855138721",
+                "鐨朅5189D-13764070633",
+                "鐨朅D60216-13866683455",
+                "鐨朅Q3U58-13866794323",
+                "鐨朅DM9383-19159080805",
+                "鐨朅9787S-19956075570",
+                "鐨朅19F82-13739278846",
+                "鐨朅7HL78-15375429056",
+                "鐨朅F5386-13865918124",
+                "鐨朅Y2981-15395033218",
+                "鐨朅U712D-18655123031",
+                "鐨朅DZ1413-18324700273",
+                "鐨朅36BJ6-15357746918",
+                "鑻廇H783E-18155175195",
+                "鐨朅208S8-13966727745",
+                "鐨朅U99S0-13966727745",
+                "鐨朅R3L55-13866745813",
+                "鐨朅Y13L9-15851629713",
+                "鐨朅R67C1-15056091913",
+                "鐨朅53P02-13866134408",
+                "鐨朅847R8-13856536567",
+                "鐨朅S7X22-13866134408",
+                "鐨朅T329C-18256958373",
+                "鐨朅578VX-18956022800",
+                "鐨朅680PB-18225600905",
+                "鐨朅D69563-15256591763",
+                "鐨朅DS6785-18326009919",
+                "鐨朅K88T7-13866669923",
+                "鐨朅S3W13-13866669923",
+                "鐨朅U28Z3-13866669923",
+                "鐨朅L4717-18326042219",
+                "鐨朅9A826-13855192234",
+                "鐨朅810GD-13955140157",
+                "鐨朅3ME38-15155956381",
+                "鐨朅QC660-18356525286",
+                "鐨朅F26531-15026632182",
+                "鐨朅N0224-15026632182",
+                "鐨朅FD9565-18792130858",
+                "鐨朒ZC115-18175335887",
+                "鐨朅6J275-17333038030",
+                "鐨朅D23053-13866685119",
+                "鐨朅DN3355-13866685119",
+                "鐨朅2VY16-18956078866",
+                "鐨朅HB882-15256703850",
+                "鐨朅20634-13956041029",
+                "鐨朅A61213-19956075570",
+                "鐨朅AB5386-13865918124",
+                "鐨朅Q66D5-19965465419",
+                "鐨朅172ZR-13955190131",
+                "鐨朅V2X71-13866669923",
+                "鐨朅DG2839-13865918124",
+                "鐨朅05HH7-15956505555",
+                "鐨朅7H955-15956505555",
+                "鐨朅J38C0-18919690550",
+                "鐨朅09AC8-13856566161",
+                "鐨朅DN8219-18919690669",
+                "鐨朅86768-",
+                "鐨朅64565-",
+                "鐨朅F6869-18919690669",
+                "鐨朅K510F-18919690681",
+                "鐨朅E7556-13865926243",
+                "鐨朅S1119-18955110529",
+                "鐨朅9WR16-18955110570",
+                "鐨朅NB777-18955111333",
+                "鐨朅W3263-18919690976",
+                "鐨朅D86556-13635517189",
+                "鐨朅E385瀛�-13866170921",
+                "鐨朅A3339-13955160295",
+                "鐨朅1LX68-15956972822",
+                "鐨朅A27620-13866721086",
+                "鐨朅753NH-15955105569",
+                "鐨朌HS500-13355690737",
+                "鐨朅96G59-18949846563",
+                "鐨朅G596H-15256938193",
+                "鐨朅90059-15855155005",
+                "鐨朅DG301-13865991467",
+                "鐨朅DG5027-13655604645",
+                "鐨朅ZS392-13856004205",
+                "鐨朅N03G8-15900512688",
+                "鐨朅VV938-13866171458",
+                "鐨朅5WB51-13075519010",
+                "鐨朅G6G57-13705600310",
+                "鐨朅D12718-15055107708",
+                "鐨朅2AP97-17505690187",
+                "鐨朅V9709-13515644306",
+                "鐨朅6H0F8-13661571869",
+                "鐨朅D207M-15855102446",
+                "鐨朅T35Z8-18019919636",
+                "鐨朅X108S-13965053771",
+                "鐨朅M818W-13965137528",
+                "鐨朅V08L2-15955159992",
+                "鐨朅X677C-18715603668",
+                "鐨朅92K29-18855126212",
+                "鐨朅F08F0-15155165536",
+                "鐨朅X1U50-17333152686",
+                "鐨朅00F85-13485727850",
+                "鐨朅105B5-13966686381",
+                "鐨朅33Z13-17505515701",
+                "鐨朅377AF-15375439937",
+                "鐨朙M9202-17769930887",
+                "鐨朅W785K-15055179136",
+                "鐨朅621G7-13865966506",
+                "鐨朅K661G-13965020562",
+                "鐨朅ZF353-13965105584",
+                "鐨朅M528Y-15255133586",
+                "鐨朅S2G87-18010863058",
+                "鐨朅HX962-13905601520",
+                "鐨朅2NL59-18010882575",
+                "鐨朅39L66-13637094407",
+                "鐨朅W130C-13966655585",
+                "鐨朅V502K-18326156618",
+                "鐨朎A5002-13701829756",
+                "鐨朅G11D2-18895374416",
+                "鐨朅G2Q90-13721067138",
+                "鐨朅088PX-18095652570",
+                "鐨朢B6090-15256666090",
+                "鐨朅DD4298-13033052361",
+                "鐨朅MOT18-13996529050",
+                "鐨朅7CA06-18055115106",
+                "鐨朅1YR63-18949230358",
+                "鐨朅C616P-18155182329",
+                "鐨朅F8905-18755162349",
+                "鐨朅U796W-13956994808",
+                "鐨朅852YX-13309691098",
+                "鐨朅LH073-13865980010",
+                "鐨朅2ZM95-13856018311",
+                "鐨朅W7F21-13966653390",
+                "鐨朅7P081-13955196906",
+                "鐨朅AB9158-13955196906",
+                "鐨朅M205G-13865957523",
+                "鐨朅D19422-18315335159",
+                "鐨朅65D99-18315335159",
+                "鐨朅825R2-",
+                "鐨朅9TL21-13965109187",
+                "鐨朅Y4619-18856080703",
+                "鐨朅0PQ03-18856910788",
+                "鐨朅FP638-13955188202",
+                "鐨朅0VW17-18855187627",
+                "鐨朅TR386-13965689770",
+                "鐨朅C503H-13856537989",
+
+        };
         List<String> noCars = new ArrayList<>();
         List<String> yesCars = new ArrayList<>();
+        List<String> phoneNoCars = new ArrayList<>();
         FLAG: for(String str :allCars){
+            String[] temp =  str.split("-");
             for(String s : cars){
-                String[] temp =  str.split("-");
                 if(StringUtils.equals(s,temp[0])){
                     yesCars.add(s);
                     continue FLAG;
@@ -923,12 +1362,36 @@
             }
             noCars.add(str);
         }
+        FLAG1:
+        for(String s : carsPhone){
+            String[] tt  =  s.split("-");
+            for(String str : allCars){
+                String[] temp=  str.split("-");
+                if(StringUtils.equals(tt[0],temp[0])
+                        ){
+                    if((tt.length>1
+                            && temp.length>4
+                            && !StringUtils.equals(tt[1],temp[4]))
+                    || (tt.length >1 && temp.length<=4)
+                    || (tt.length <=1 && temp.length>4) )
+                    phoneNoCars.add(s + "|鏈�鏂拌溅涓伙細"+temp[4]);
+                    continue FLAG1;
+                }
+            }
+        }
+
        for(String t :noCars){
            System.out.println(t);
        }
         System.out.println("--------瀹屾暣杞﹁締锛�"+allCars.length);
         System.out.println("--------宸插綍鍏ヨ溅杈嗭細"+cars.length);
         System.out.println("--------瀵瑰簲褰曞叆杞﹁締锛�"+yesCars.size());
+        System.out.println("--------瀵瑰簲褰曞叆杞﹁締锛�"+yesCars.size());
         System.out.println("--------鏈綍杞﹁締锛�"+noCars.size());
+
+        for(String t :phoneNoCars){
+            System.out.println(t);
+        }
+        System.out.println("--------杞︿富瀵逛笉涓婄殑杞﹁締锛�"+phoneNoCars.size());
     }
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarsCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarsCloudController.java
index d0b260c..bc382fb 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarsCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarsCloudController.java
@@ -11,12 +11,13 @@
 import com.doumee.dao.business.model.Cars;
 import com.doumee.service.business.CarsService;
 import com.doumee.service.business.impl.hksync.fhk.HkSyncVehicleFromHKServiceImpl;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 /**
@@ -110,4 +111,14 @@
     public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
         return ApiResponse.success(carsService.findById(id));
     }
+
+    @ApiOperation(value = "杞﹁締淇℃伅瀵煎叆" ,notes = "杞﹁締淇℃伅瀵煎叆")
+    @PostMapping("/importExcel")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class),
+    })
+    @CloudRequiredPermission("business:cars:create")
+    public ApiResponse<String> importExcel (@ApiParam(value = "file") MultipartFile file, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(carsService.importBatch(file,this.getLoginUser(token)));
+    }
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/OnSitDispatchController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/OnSitDispatchController.java
index 60dd0bc..fe835b1 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/OnSitDispatchController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/OnSitDispatchController.java
@@ -1,23 +1,18 @@
 package com.doumee.cloud.board;
 
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.doumee.api.BaseController;
 import com.doumee.config.annotation.LoginNoRequired;
-import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.utils.Constants;
-import com.doumee.core.utils.DateUtil;
 import com.doumee.dao.business.PlatformLogMapper;
-import com.doumee.dao.business.model.Platform;
-import com.doumee.dao.business.model.PlatformJob;
 import com.doumee.dao.business.model.PlatformLog;
-import com.doumee.dao.openapi.request.HkBaseTokenRequest;
-import com.doumee.dao.system.join.NoticesJoinMapper;
 import com.doumee.dao.web.response.platformReport.*;
-import com.doumee.service.business.PlatformJobService;
-import com.doumee.service.business.PlatformLogService;
-import io.swagger.annotations.*;
+import com.doumee.service.business.third.BoardService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,7 +21,9 @@
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
 
 /**
  * Created by IntelliJ IDEA.
@@ -43,6 +40,8 @@
 
     @Autowired
     private PlatformLogMapper platformLogMapper;
+    @Autowired
+    private BoardService boardService;
 
 
 
@@ -50,12 +49,15 @@
     @ApiOperation("涓績鏁版嵁")
     @GetMapping("/centerData")
     public ApiResponse<OnSitDispatchBoardVO> centerData() {
-        OnSitDispatchBoardVO data = new OnSitDispatchBoardVO();
-        data.setPlatformTotal(100);
-        data.setFreePlatform(8);
-        data.setReservationCar(97);
-        data.setWorkingCar(56);
-        data.setLineUpCar(35);
+        OnSitDispatchBoardVO data = boardService.getCnddCenterData();
+        if(data == null){
+            data = new OnSitDispatchBoardVO();
+            data.setPlatformTotal(100);
+            data.setFreePlatform(8);
+            data.setReservationCar(97);
+            data.setWorkingCar(56);
+            data.setLineUpCar(35);
+        }
         return ApiResponse.success(data);
     }
 
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 0aeaa35..fb631e5 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
@@ -2,15 +2,18 @@
 
 import com.doumee.api.BaseController;
 import com.doumee.config.annotation.LoginNoRequired;
+import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.web.response.platformReport.*;
+import com.doumee.service.business.third.BoardService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -34,6 +37,8 @@
 @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/security")
 public class SecurityController extends BaseController {
 
+    @Autowired
+    private BoardService boardService;
 
     @LoginNoRequired
     @ApiOperation("涓績鏁版嵁")
@@ -117,8 +122,18 @@
         visitDataVO.setRetentionRata(BigDecimal.valueOf(random.nextInt(20)));
         return ApiResponse.success(visitDataVO);
     }
-
-
+    @LoginNoRequired
+    @ApiOperation("鏍戝舰鍖哄煙闆嗗悎鎺ュ彛")
+    @GetMapping("/regionTree")
+    public ApiResponse<List<PageRegionInfoResponse>> regionTree(CarmeraListVO param) {
+        return ApiResponse.success(boardService.getRegionTree(param));
+    }
+    @LoginNoRequired
+    @ApiOperation("骞抽摵缁撴灉鍖哄煙闆嗗悎鎺ュ彛")
+    @GetMapping("/regionList")
+    public ApiResponse<List<PageRegionInfoResponse>> regionList(CarmeraListVO param) {
+        return ApiResponse.success(boardService.regionList(param));
+    }
 
 
 
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 a568a00..8ff499e 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
@@ -139,9 +139,54 @@
         String[] loginOut= new String[]{"/xauthplus-plugin/logout","閫�鍑虹櫥褰�"};//閫�鍑虹櫥褰�
         String[] sendSms= new String[]{"/api/smsps/v1/smsService/sms","鐭俊楠岃瘉鐮�"};//鐭俊楠岃瘉鐮�
         String[] getMenus= new String[]{"/api/privilegeService/v1/menus/list","鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑鑿滃崟鍔熻兘椤�"};//鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑鑿滃崟鍔熻兘椤�
+        String[] rootRegion= new String[]{"/api/resource/v1/regions/root","鑾峰彇鏍瑰尯鍩熶俊鎭帴鍙�"};//鑾峰彇鏍瑰尯鍩熶俊鎭帴鍙�
+        String[] subRegions= new String[]{"/api/resource/v1/regions/subRegions","鏍规嵁鍖哄煙缂栧彿鑾峰彇涓嬩竴绾у尯鍩熷垪琛�"};//鏍规嵁鍖哄煙缂栧彿鑾峰彇涓嬩竴绾у尯鍩熷垪琛�
+        String[] pageRegions= new String[]{"/api/resource/v1/regions","鍒嗛〉鑾峰彇鍖哄煙鍒楄〃"};//鍒嗛〉鑾峰彇鍖哄煙鍒楄〃
+        String[] pageCameras= new String[]{"/api/resource/v1/cameras","鍒嗛〉鑾峰彇鐩戞帶鐐硅祫婧�"};//鍒嗛〉鑾峰彇鐩戞帶鐐硅祫婧�
+        String[] cameraPreviewURLs= new String[]{"/api/video/v1/cameras/previewURLs","鑾峰彇鐩戞帶鐐归瑙堝彇娴乁RL"};//鑾峰彇鐩戞帶鐐归瑙堝彇娴乁RL
+        String[] pageFireChannel= new String[]{"/api/resource/v1/fireChannel/get","鍒嗛〉鑾峰彇娑堥槻浼犳劅鍣ㄥ垪琛�"};//鍒嗛〉鑾峰彇娑堥槻浼犳劅鍣ㄥ垪琛�
+        String[] pageSensorStatus= new String[]{"/api/fpnms/v2/sensor/status/search","鍒嗛〉鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬乿2"};//鍒嗛〉鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬乿2
     }
 
     /**
+     * 闄勫綍A.55娑堥槻璁惧绫诲瀷
+     */
+    public interface  XiaofangCGQType{
+        String[] hzbjzj = new String[]{"1020001" ,	"鐏伨鎶ヨ涓绘満" 	}     ;
+        String[] gycgq = new String[]{"1020002" ,	"鎰熺儫浼犳劅鍣�" 	}     ;
+        String[] gwcgs = new String[]{"1020003" ,	"鎰熸俯浼犳劅鍣�" 	}     ;
+        String[] sdbjan = new String[]{"1020004" ,	"鎵嬪姩鎶ヨ鎸夐挳" 	}     ;
+        String[] krqtcgq = new String[]{"1020005" ,	"鍙噧姘斾綋浼犳劅鍣�" 	}     ;
+        String[] dqwdcgq = new String[]{"1020007" ,	"鐢垫皵娓╁害浼犳劅鍣�" 	}     ;
+        String[] sydlcgq = new String[]{"1020008" ,	"鍓╀綑鐢垫祦浼犳劅鍣�" 	}     ;
+        String[] ywcgq = new String[]{"1020009" ,	"娑蹭綅浼犳劅鍣�" 	}     ;
+        String[] sycgq = new String[]{"1020010" ,	"姘村帇浼犳劅鍣�" 	}     ;
+        String[] tycgq = new String[]{"1020011" ,	"閫氱敤浼犳劅鍣�" 	}     ;
+        String[] sgbjq = new String[]{"1020015" ,	"澹板厜鎶ヨ鍣�" 	}     ;
+
+    }
+    /**
+     * 闄勫綍A.55娑堥槻璁惧绫诲瀷
+     */
+    public interface  XiaofangDeviceType{
+        String[] uitDevice = new String[]{"20001" ,	"uitDevice","鐢ㄦ埛淇℃伅浼犺緭瑁呯疆"	}     ;
+        String[] electricDevice = new String[]{"20002" ,	"electricDevice","鐢ㄧ數涓绘満"	}     ;
+        String[] wirelessWaterDevice = new String[]{"20003" ,	"wirelessWaterDevice","鐢ㄦ按涓绘満"	}     ;
+        String[] independentGasDevice = new String[]{"20004" ,	"independentGasDevice","鐙珛寮忓彲鐕冩皵浣撴姤璀﹀櫒"	}     ;
+        String[] independentSmokeDevice = new String[]{"20005" ,	"independentSmokeDevice","鐙珛寮忔劅鐑熸姤璀﹀櫒"	}     ;
+        String[] iogDTUDevice = new String[]{"20008" ,	"iogDTUDevice","鐗╄仈缃戠綉鍏筹紙DTU锛�"	}     ;
+        String[] siterwell433gwDevice = new String[]{"20009" ,	"siterwell433gwDevice","鐗╄仈缃戞秷闃叉姤璀︾綉鍏�(433)"	}     ;
+        String[] outdoorHydrantDevice = new String[]{"20010" ,	"outdoorHydrantDevice","瀹ゅ娑堢伀鏍�"	}     ;
+        String[] cameraSmokeDevice = new String[]{"20011" ,	"cameraSmokeDevice","瑙嗛鐑熸劅"	}     ;
+        String[] cameraTempDevice = new String[]{"20012" ,	"cameraTempDevice","瑙嗛娓╂劅"	}     ;
+        String[] intelligentAnalyzer = new String[]{"20013" ,	"intelligentAnalyzer","鏅鸿兘鍒嗘瀽浠�"	}     ;
+        String[] chargingPile = new String[]{"20014" ,	"chargingPile","鍏呯數妗�"	}     ;
+        String[] iPCVideoGateway = new String[]{"20015" ,	"IPCVideoGateway","IPC瑙嗛缃戝叧"	}     ;
+        String[] smartElectricityGateway = new String[]{"20016" ,	"smartElectricityGateway","鏅鸿兘鐢ㄧ數缃戝叧"	}     ;
+    }
+
+
+    /**
      * 浠诲嫏椤炲瀷
      */
     public  enum TASK_TYPE {
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 873bdc2..e637738 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
@@ -743,6 +743,22 @@
 		return startDoPostStringArtemis(HKConstants.InterfacePath.platformsList,body);
 	}
 	/**
+	 * 鑾峰彇娑堥槻浼犳劅鍣ㄥ垪琛�
+	 * @param body
+	 * @return
+	 */
+	public static String pageFireChannel(String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.pageFireChannel,body);
+	}
+	/**
+	 * 鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬乿2
+	 * @param body
+	 * @return
+	 */
+	public static String pageSensorStatus(String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.pageSensorStatus,body);
+	}
+	/**
 	 * 鑾峰彇鏈堝彴鐘舵��
 	 * @return
 	 */
@@ -762,6 +778,30 @@
 	public static String getHkMenu(Map<String,String> body) {
 		return startDoGetStringArtemis(HKConstants.InterfacePath.getMenus,body);
 	}
+	/**
+	 * 鍒嗛〉鑾峰彇鍖哄煙鍒楄〃
+	 * @param body
+	 * @return
+	 */
+	public static String pageRegions(Map<String,String> header,String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.pageRegions,null,header,body);
+	}
+	/**
+	 * 鍒嗛〉鑾峰彇鐩戞帶鐐硅祫婧�
+	 * @param body
+	 * @return
+	 */
+	public static String pageCameras(Map<String,String> header,String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.pageCameras,null,header,body);
+	}
+	/**
+	 * 鑾峰彇鐩戞帶鐐归瑙堝彇娴乁RL
+	 * @param body
+	 * @return
+	 */
+	public static String cameraPreviewURLs(Map<String,String> header,String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.cameraPreviewURLs,null,header,body);
+	}
 
 
 	/**
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageRequest.java
new file mode 100644
index 0000000..06fbb2b
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageRequest.java
@@ -0,0 +1,11 @@
+package com.doumee.core.haikang.model.param;
+
+import lombok.Data;
+
+@Data
+public class BaseListPageRequest {
+  private String   userId;//	 Head 	 String 	 true 	 鐢ㄦ埛ID
+  private Integer  pageNo	;//integer	True	椤电爜,pageNo鈮�1
+  private Integer  pageSize;//	integer	True	鍒嗛〉澶у皬
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CameraPreviewURLsRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CameraPreviewURLsRequest.java
new file mode 100644
index 0000000..d08e986
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CameraPreviewURLsRequest.java
@@ -0,0 +1,15 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class CameraPreviewURLsRequest {
+  private String   userId;//	 Head 	 String 	 true 	 鐢ㄦ埛ID
+  private String    domainId ;//	 Head 	 Number 	 true 	 缃戝煙ID
+  private String   cameraIndexCode  ;//		 Body 	 String 	 true 	 鐩戞帶鐐瑰敮涓�鏍囪瘑锛�#API@鍒嗛〉鑾峰彇鐩戞帶鐐硅祫婧怈#鎺ュ彛鑾峰彇杩斿洖鍙傛暟cameraIndexCode
+  private Integer   streamType  ;//		 Body 	 Number 	 false 	 鐮佹祦绫诲瀷锛�0:涓荤爜娴�<br>1:瀛愮爜娴�<br>2:绗笁鐮佹祦<br>鍙傛暟涓嶅~锛岄粯璁や负涓荤爜娴�
+  private String   protocol 	 ;//	 Body 	 String 	 false 	 鍙栨祦鍗忚锛堝簲鐢ㄥ眰鍗忚锛夛紝鈥渞tsp鈥�:RTSP鍗忚,鈥渞tmp鈥�:RTMP鍗忚,鈥渉ls鈥�:HLS鍗忚锛圚LS鍗忚鍙敮鎸佹捣搴稴DK鍗忚銆丒HOME鍗忚銆丟B28181鍗忚銆丱NVIF鍗忚鎺ュ叆鐨勮澶囷紱鍙敮鎸丠264瑙嗛缂栫爜鍜孉AC闊抽缂栫爜锛�,鍙傛暟涓嶅~锛岄粯璁や负RTSP鍗忚
+  private Integer  transmode  ;//		 Body 	 Number 	 false 	 浼犺緭鍗忚锛堜紶杈撳眰鍗忚锛夛紝0:UDP<br>1:TCP<br>榛樿鏄疶CP<br>娉細<br>GB28181 2011鍙婁互鍓嶇増鏈彧鏀寔UDP浼犺緭
+  private String  expand 	 ;//	 Body 	 String 	 false 	 鏍囪瘑鎵╁睍鍐呭锛屾牸寮忥細key=value锛�<br>璋冪敤鏂规牴鎹叾鎾斁鎺т欢鏀寔鐨勮В鐮佹牸寮忛�夋嫨鐩稿簲鐨勫皝瑁呯被鍨嬶紱<br>鏀寔鐨勫唴瀹硅瑙乕闄勫綍F expand鎵╁睍鍐呭璇存槑]@[鏅烘収鍥尯绠$悊骞冲彴V1.6.0-闄勫綍-闄勫綍F expand鎵╁睍鍐呭璇存槑]
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SensorStatusListRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SensorStatusListRequest.java
index 2832eff..e89dab3 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SensorStatusListRequest.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SensorStatusListRequest.java
@@ -10,6 +10,7 @@
     private Integer channelType;//	Number	false	浼犳劅鍣ㄧ被鍨嬶紝璇﹁[闄勫綍A.57 娑堥槻浼犳劅鍣ㄥぇ绫诲瀷]@[鏅烘収鍥尯绠$悊骞冲彴V1.4.301-闄勫綍-闄勫綍A 鏁版嵁瀛楀吀#闄勫綍A.57 娑堥槻浼犳劅鍣ㄥぇ绫诲瀷]
     private Integer unitStatus;//	Number	false	閮ㄤ欢鐘舵�侊紝0锛氭湭娉ㄥ唽 1锛氭甯� 2: 淇涓� 3锛氬紓甯哥姸鎬侊紙淇涓姸鎬佺洰鍓嶆病鐢ㄥ埌锛屾湭娉ㄥ唽鏃惰澶囨病鏈夊湪绂荤嚎鐘舵�侊級 绌�-鎵�鏈夌姸鎬�
     private String channelIndexCode	;//String	false	浼犳劅鍣ㄧ紪鍙�
+    private String userId 	;
     private int   pageNo;//	Query	Number	false	椤电爜
     private int   pageSize;//	Query	Number	false	椤靛ぇ灏�
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/CamerasPreviewURLsResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/CamerasPreviewURLsResponse.java
new file mode 100644
index 0000000..67da295
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/CamerasPreviewURLsResponse.java
@@ -0,0 +1,13 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CamerasPreviewURLsResponse {
+
+     private String url ;//	 Body 	 String 	 false 	 鍙栨祦URL
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageCameraInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageCameraInfoResponse.java
new file mode 100644
index 0000000..0a147b7
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageCameraInfoResponse.java
@@ -0,0 +1,49 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PageCameraInfoResponse {
+
+
+ private String altitude ;//	 Body 	 String 	 false 	 娴锋嫈
+ private String cameraIndexCode 	 ;// Body 	 String 	 false 	 鐩戞帶鐐瑰敮涓�鏍囪瘑
+ private String cameraName 	  ;//Body 	 String 	 false 	 鐩戞帶鐐瑰悕绉�
+ private Integer cameraType ;// 	 Body 	 Number 	 false 	 鐩戞帶鐐圭被鍨�
+ private String cameraTypeName  ;//	 Body 	 String 	 false 	 鐩戞帶鐐圭被鍨嬭鏄�
+ private String capabilitySet  ;//	 Body 	 String 	 false 	 鑳藉姏闆嗭紙璇﹁鏁版嵁瀛楀吀锛宼ypeCode涓簒resmgr.capability_set锛�<br><br>
+ private String capabilitySetName  ;//	 Body 	 String 	 false 	 鑳藉姏闆嗚鏄�
+ private String intelligentSet  ;//	 Body 	 String 	 false 	 鏅鸿兘鍒嗘瀽鑳藉姏闆�
+ private String intelligentSetName  ;//	 Body 	 String 	 false 	 鏅鸿兘鍒嗘瀽鑳藉姏闆嗚鏄�
+ private String channelNo 	 ;// Body 	 String 	 false 	 閫氶亾缂栧彿
+ private String channelType 	 ;// Body 	 String 	 false 	 閫氶亾绫诲瀷
+ private String channelTypeName  ;//	 Body 	 String 	 false 	 閫氶亾瀛愮被鍨嬭鏄�
+ private String createTime 	 ;// Body 	 String 	 false 	 鍒涘缓鏃堕棿
+ private String encodeDevIndexCode  ;//	 Body 	 String 	 false 	 鎵�灞炵紪鐮佽澶囧敮涓�鏍囪瘑
+ private String encodeDevResourceType 	 ;// Body 	 String 	 false 	 鎵�灞炶澶囩被鍨嬶紙璇﹁鏁版嵁瀛楀吀锛宼ypeCode涓簒resmgr.resource_type锛�<br><br>
+ private String encodeDevResourceTypeName 	 ;// Body 	 String 	 false 	 鎵�灞炶澶囩被鍨嬭鏄�
+ private String gbIndexCode 	 ;// Body 	 String 	 false 	 鐩戞帶鐐瑰浗鏍囩紪鍙�
+ private String installLocation 	 ;// Body 	 String 	 false 	 瀹夎浣嶇疆
+ private String keyBoardCode  ;//	 Body 	 String 	 false 	 閿洏鎺у埗鐮�
+ private String latitude  ;//	 Body 	 String 	 false 	 绾害
+ private String longitude  ;//	 Body 	 String 	 false 	 缁忓害
+ private Integer pixel  ;//	 Body 	 Number 	 false 	 鎽勫儚鏈哄儚绱狅紙1-鏅�氬儚绱狅紝2-130涓囬珮娓咃紝3-200涓囬珮娓咃紝4-300涓囬珮娓咃紝鍙栧�煎弬鑰冩暟鎹瓧鍏革紝typeCode涓簒resmgr.piexl锛�<br><br>
+ private Integer ptz  ;//	 Body 	 Number 	 false 	 浜戦暅绫诲瀷锛�1-鍏ㄦ柟浣嶄簯鍙帮紙甯﹁浆鍔ㄥ拰鍙樼劍锛夛紝2-鍙湁鍙樼劍,涓嶅甫杞姩锛�3-鍙湁杞姩锛屼笉甯﹀彉鐒︼紝4-鏃犱簯鍙帮紝鏃犲彉鐒︼紝鍙栧�煎弬鑰冩暟鎹瓧鍏革紝typeCode涓簒resmgr.ptz_type锛�<br><br>
+ private Integer ptzController ;// 	 Body 	 Number 	 false 	 浜戝彴鎺у埗(1-DVR锛�2-妯℃嫙鐭╅樀锛�3-MU4000锛�4-NC600锛屽彇鍊煎弬鑰冩暟鎹瓧鍏革紝typeCode涓簒resmgr.ptz_control_type)<br><br>
+ private String ptzControllerName 	 ;// Body 	 String 	 false 	 浜戝彴鎺у埗璇存槑
+ private String ptzName 	 ;// Body 	 String 	 false 	 浜戦暅绫诲瀷璇存槑
+ private String recordLocation 	 ;// Body 	 String 	 false 	 褰曞儚瀛樺偍浣嶇疆锛�0-涓績瀛樺偍锛�1-璁惧瀛樺偍锛屽彇鍊煎弬鑰冩暟鎹瓧鍏革紝typeCode涓簒resmgr.record_location锛�<br><br>
+ private String recordLocationName  ;//	 Body 	 String 	 false 	 褰曞儚瀛樺偍浣嶇疆璇存槑
+ private String regionIndexCode  ;//	 Body 	 String 	 false 	 鎵�灞炲尯鍩熷敮涓�鏍囪瘑
+ private Integer status ;// 	 Body 	 Number 	 false 	 鍦ㄧ嚎鐘舵�侊紙0-涓嶅湪绾匡紝1-鍦ㄧ嚎锛屽彇鍊煎弬鑰冩暟鎹瓧鍏革紝typeCode涓簒resmgr.status锛�<br><br>
+ private String statusName 	 ;// Body 	 String 	 false 	 鐘舵�佽鏄�
+ private Integer transType 	 ;// Body 	 Number 	 false 	 浼犺緭鍗忚锛�0-UDP锛�1-TCP锛�
+  private String transTypeName  ;//	 Body 	 String 	 false 	 浼犺緭鍗忚绫诲瀷璇存槑
+ private String treatyType  ;//	 Body 	 String 	 false 	 鎺ュ叆鍗忚锛堣瑙佹暟鎹瓧鍏革紝typeCode涓簒resmgr.protocol_type锛�<br><br>
+ private String treatyTypeName  ;//	 Body 	 String 	 false 	 鎺ュ叆鍗忚绫诲瀷璇存槑
+ private String viewshed 	  ;//Body 	 String 	 false 	 鍙鍩熺浉鍏筹紙JSON鏍煎紡锛�
+  private String updateTime 	  ;//Body 	 String 	 false 	 鏇存柊鏃堕棿<br>閲囩敤ISO8601鏍囧噯锛屽2018-07-26T21:30:08+08:00<br>琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�<br>
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageFireChannelInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageFireChannelInfoResponse.java
new file mode 100644
index 0000000..c27c9e0
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageFireChannelInfoResponse.java
@@ -0,0 +1,22 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class PageFireChannelInfoResponse {
+    private String regionPath 	 ;//Body 	 String 	 false 	 鎵�灞炲尯鍩熷眰绾э紝鏍煎紡锛欯鏍硅妭鐐笯瀛愬尯鍩�1@
+    private String regionIndexCode 	 ;//Body 	 String 	 false 	 鎵�灞炲尯鍩熺紪鍙�
+    private String regionPathName 	 ;//Body 	 String 	 false 	 鎵�灞炲尯鍩熷眰绾у悕绉�
+    private String fireproChannelSubType 	 ;//Body 	 Number 	 false 	 浼犳劅鍣ㄥ皬绫诲瀷锛岃瑙乕闄勫綍A.56]
+    private String indexCode 	 ;//Body 	 String 	 false 	 璧勬簮鍞竴鏍囧織
+    private String description 	 ;//Body 	 String 	 false 	 鎻忚堪
+    private String updateTime 	 ;//Body 	 String 	 false 	 鏇存柊鏃堕棿锛孖SO8601鏍囧噯
+    private String fireproChannelMaxValue 	 ;//Body 	 String 	 false 	 鏈�澶ч槇鍊�
+    private String createTime 	 ;//Body 	 String 	 false 	 鍒涘缓鏃堕棿锛孖SO8601鏍囧噯
+    private String name 	 ;//Body 	 String 	 false 	 璧勬簮鍚嶇О
+    private String fireproChannelAddressCode 	 ;//Body 	 String 	 false 	 浼犳劅鍣ㄥ湴鍧�鐮�
+    private String comId 	 ;//Body 	 String 	 false 	 缁勪欢ID
+    private String fireproChannelType 	 ;//Body 	 Number 	 false 	 浼犳劅鍣ㄥぇ绫诲瀷锛岃瑙乕闄勫綍A.64]
+    private String parentIndexCode 	 ;//Body 	 String 	 false 	 鎵�灞炶澶囩紪鐮�
+    private String resourceType 	 ;//Body 	 String 	 false 	 璧勬簮绫诲瀷锛宖ireSensor锛氭秷闃蹭紶鎰熷櫒锛岃瑙乕闄勫綍A.64]
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageRegionInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageRegionInfoResponse.java
new file mode 100644
index 0000000..5fc0814
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageRegionInfoResponse.java
@@ -0,0 +1,30 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import com.doumee.dao.web.response.platformReport.CarmeraListVO;
+import com.doumee.dao.web.response.platformReport.RegionTreeVO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PageRegionInfoResponse {
+
+     @ApiModelProperty(value = "鍖哄煙鍞竴鏍囪瘑鐮�")
+     private String regionIndexCode;//	 Body 	 String 	 false 	 鍖哄煙鍞竴鏍囪瘑鐮�
+
+     @ApiModelProperty(value = "鍖哄煙鍚嶇О")
+     private String regionName 	;// Body 	 String 	 false 	 鍖哄煙鍚嶇О
+
+     @ApiModelProperty(value = "鐖跺尯鍩熷敮涓�鏍囪瘑鐮�")
+     private String parentIndexCode ;//	 Body 	 String 	 false 	 鐖跺尯鍩熷敮涓�鏍囪瘑鐮�
+
+     @ApiModelProperty(value = "鏍戠紪鍙�")
+     private String treeCode ;//	 Body 	 String 	 false 	 鏍戠紪鍙�
+
+
+     @ApiModelProperty(value = "涓嬬骇闆嗗悎")
+     private List<PageRegionInfoResponse> childList;
+     @ApiModelProperty(value = "鐩戞帶鐐归泦鍚�")
+     private    List<CarmeraListVO> carmeraList;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageSensorStatusResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageSensorStatusResponse.java
new file mode 100644
index 0000000..056c687
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageSensorStatusResponse.java
@@ -0,0 +1,22 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class PageSensorStatusResponse {
+    private String regionPath 	 ;//Body 	 String 	 false 	 鎵�灞炲尯鍩熷眰绾э紝鏍煎紡锛欯鏍硅妭鐐笯瀛愬尯鍩�1@
+    private String regionIndexCode 	 ;//Body 	 String 	 false 	 鎵�灞炲尯鍩熺紪鍙�
+    private String regionPathName 	 ;//Body 	 String 	 false 	 鎵�灞炲尯鍩熷眰绾у悕绉�
+    private String fireproChannelSubType 	 ;//Body 	 Number 	 false 	 浼犳劅鍣ㄥ皬绫诲瀷锛岃瑙乕闄勫綍A.56]
+    private String indexCode 	 ;//Body 	 String 	 false 	 璧勬簮鍞竴鏍囧織
+    private String description 	 ;//Body 	 String 	 false 	 鎻忚堪
+    private String updateTime 	 ;//Body 	 String 	 false 	 鏇存柊鏃堕棿锛孖SO8601鏍囧噯
+    private String fireproChannelMaxValue 	 ;//Body 	 String 	 false 	 鏈�澶ч槇鍊�
+    private String createTime 	 ;//Body 	 String 	 false 	 鍒涘缓鏃堕棿锛孖SO8601鏍囧噯
+    private String name 	 ;//Body 	 String 	 false 	 璧勬簮鍚嶇О
+    private String fireproChannelAddressCode 	 ;//Body 	 String 	 false 	 浼犳劅鍣ㄥ湴鍧�鐮�
+    private String comId 	 ;//Body 	 String 	 false 	 缁勪欢ID
+    private String fireproChannelType 	 ;//Body 	 Number 	 false 	 浼犳劅鍣ㄥぇ绫诲瀷锛岃瑙乕闄勫綍A.64]
+    private String parentIndexCode 	 ;//Body 	 String 	 false 	 鎵�灞炶澶囩紪鐮�
+    private String resourceType 	 ;//Body 	 String 	 false 	 璧勬簮绫诲瀷锛宖ireSensor锛氭秷闃蹭紶鎰熷櫒锛岃瑙乕闄勫綍A.64]
+}
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 a790359..69c2337 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
@@ -1,19 +1,16 @@
 package com.doumee.core.haikang.service;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
-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.HKTools;
 import com.doumee.core.haikang.model.param.BaseListPageResponse;
 import com.doumee.core.haikang.model.param.BaseRequst;
 import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.BaseListPageRequest;
 import com.doumee.core.haikang.model.param.request.*;
 import com.doumee.core.haikang.model.param.respose.*;
 import com.doumee.core.utils.Constants;
-import com.doumee.core.utils.HttpsUtil;
 import com.hikvision.artemis.sdk.config.ArtemisConfig;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -25,7 +22,6 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 
 @Slf4j
 public class HKService {
@@ -1431,6 +1427,103 @@
         return  null;
     }
     /**
+     *鍒嗛〉鑾峰彇鍖哄煙鍒楄〃锛堝垎椤碉級
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<PageRegionInfoResponse>>   pageRegions(BaseListPageRequest param){
+        log.info("銆愭捣搴峰垎椤佃幏鍙栧尯鍩熷垪琛ㄣ��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            Map<String ,String> header = new HashMap<>();
+//            header.put("userId",param.getUserId());
+            String res = HKTools.pageRegions(header,JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<BaseListPageResponse<PageRegionInfoResponse>> >(){};
+            BaseResponse<BaseListPageResponse<PageRegionInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鍒嗛〉鑾峰彇鍖哄煙鍒楄〃");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴峰垎椤佃幏鍙栧尯鍩熷垪琛ㄣ��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *鑾峰彇鐩戞帶鐐归瑙堝彇娴乁RL
+     * @return
+     */
+    public  static  BaseResponse<CamerasPreviewURLsResponse>   cameraPreviewURLs(CameraPreviewURLsRequest param){
+        log.info("銆愭捣搴疯幏鍙栫洃鎺х偣棰勮鍙栨祦URL銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            Map<String ,String> header = new HashMap<>();
+//            header.put("userId",param.getUserId());
+//            header.put("domainId ",param.getDomainId());
+            String res = HKTools.cameraPreviewURLs(header,JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<CamerasPreviewURLsResponse> >(){};
+            BaseResponse<CamerasPreviewURLsResponse> result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鑾峰彇鐩戞帶鐐归瑙堝彇娴乁RL");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴疯幏鍙栫洃鎺х偣棰勮鍙栨祦URL銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *鍒嗛〉鑾峰彇鐩戞帶鐐硅祫婧愶紙鍒嗛〉锛�
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<PageCameraInfoResponse>>   pageCameras(BaseListPageRequest param){
+        log.info("銆愭捣搴峰垎椤佃幏鍙栫洃鎺х偣璧勬簮銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            Map<String ,String> header = new HashMap<>();
+            header.put("userId",param.getUserId());
+            String res = HKTools.pageCameras(header,JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<BaseListPageResponse<PageCameraInfoResponse>> >(){};
+            BaseResponse<BaseListPageResponse<PageCameraInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鍒嗛〉鑾峰彇鐩戞帶鐐硅祫婧�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴峰垎椤佃幏鍙栫洃鎺х偣璧勬簮銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *鑾峰彇娑堥槻浼犳劅鍣ㄥ垪琛紙鍒嗛〉锛�
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<PageFireChannelInfoResponse>>   pageFireChannel(BaseListPageRequest param){
+        log.info("銆愭捣搴峰垎椤佃幏鍙栨秷闃蹭紶鎰熷櫒鍒楄〃銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.pageFireChannel(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<BaseListPageResponse<PageFireChannelInfoResponse>> >(){};
+            BaseResponse<BaseListPageResponse<PageFireChannelInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鍒嗛〉鑾峰彇娑堥槻浼犳劅鍣ㄥ垪琛�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴峰垎椤佃幏鍙栨秷闃蹭紶鎰熷櫒鍒楄〃銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬乿2锛堝垎椤碉級
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<PageSensorStatusResponse>>   pageSensorStatus(SensorStatusListRequest param){
+        log.info("銆愭捣搴峰垎椤垫煡璇㈡秷闃蹭紶鎰熷櫒閮ㄤ欢鐘舵�乿2銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.pageSensorStatus(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<BaseListPageResponse<PageSensorStatusResponse>> >(){};
+            BaseResponse<BaseListPageResponse<PageSensorStatusResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鍒嗛〉鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬乿2");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴峰垎椤垫煡璇㈡秷闃蹭紶鎰熷櫒閮ㄤ欢鐘舵�乿2銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
      *鏍规嵁鐢ㄦ埛鏍囪瘑鑾峰彇瀹㈡埛绔疶GC鎺ュ彛
      * @return
      */
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/CarsImport.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/CarsImport.java
new file mode 100644
index 0000000..a4373ed
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/CarsImport.java
@@ -0,0 +1,40 @@
+package com.doumee.dao.admin.request;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 鍛樺伐淇℃伅瀵煎叆琛�
+ * @author 姹熻箘韫�
+ * @date 2024/01/16 10:03
+ */
+@Data
+@ApiModel("鍛樺伐淇℃伅瀵煎叆")
+public class CarsImport {
+
+
+    @ExcelColumn(name="*杞︾墝鍙风爜",value = "code",index = 1)
+    private String code;
+    @ExcelColumn(name="*涓氬姟绫诲瀷",value = "categoryName",index = 2)
+    private String categoryName;
+
+    @ExcelColumn(name="*缁勭粐璺緞",value = "companyName",index = 3)
+    private String companyName;
+
+    @ExcelColumn(name="杞︿富濮撳悕" , value = "memberName" ,index = 4)
+    private String memberName;
+
+    @ExcelColumn(name="鎵嬫満鍙�" , value = "phone",index = 5)
+    private String phone;
+    @ExcelColumn(name="鎬у埆" , value = "sex",index = 6)
+    private String sex;
+    @ExcelColumn(name="韬唤璇佸彿" , value = "idcard",index = 7)
+    private String idcard;
+    @ExcelColumn(name="鍋滆溅搴撳悕绉�" , value = "parkName",index = 8)
+    private String parkName;
+    @ExcelColumn(name="寮�濮嬫椂闂�" , value = "startTime",index = 9)
+    private String startTime;
+    @ExcelColumn(name="缁撴潫鏃堕棿" , value = "endTime",index = 10)
+    private String endTime;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
index 09cfde7..a4809fe 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -274,6 +274,9 @@
     @ApiModelProperty(value = "浣滀笟閲�" ,hidden = true)
     @TableField(exist = false)
     private BigDecimal workNum ;
+    @ApiModelProperty(value = "缁熻閲�" ,hidden = true)
+    @TableField(exist = false)
+    private Integer countum ;
 
 
     @ApiModelProperty(value = "WMS浠诲姟鏃堕棿")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/CarmeraListVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/CarmeraListVO.java
new file mode 100644
index 0000000..3161342
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/CarmeraListVO.java
@@ -0,0 +1,34 @@
+package com.doumee.dao.web.response.platformReport;
+
+import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 鐩戞帶鐐归泦鍚�
+ *
+ * @Author : JP
+ * @create 2024/10/25 10:59
+ */
+@Data
+public class CarmeraListVO {
+
+    @ApiModelProperty(value = "鐩戞帶鐐瑰悕绉�")
+    private String name;
+
+    @ApiModelProperty(value = "鍞竴绱㈠紩")
+    private String indexCode;
+    @ApiModelProperty(value = "鍖哄煙缂栫爜")
+    private String reginCode;
+    @ApiModelProperty(value = "鏄惁鏌ヨ鐩戞帶鐐规暟鎹紝0涓嶅寘鍚� 1鍖呭惈")
+    private Integer withCameras;
+    @ApiModelProperty(value = "璁惧鐘舵�侊細涓嶅湪绾匡紝1-鍦ㄧ嚎")
+    private Integer status;
+    @ApiModelProperty(value = "璁惧鐘舵�佹弿杩�")
+    private String statusName;
+}
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 e374319..6e1e84f 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
@@ -15,19 +15,19 @@
 public class OnSitDispatchBoardVO {
 
     @ApiModelProperty(value = "鏈堝彴鏁伴噺")
-    private Integer platformTotal;
+    private int platformTotal;
 
     @ApiModelProperty(value = "绌洪棽鏈堝彴鏁伴噺")
-    private Integer freePlatform;
+    private int freePlatform;
 
     @ApiModelProperty(value = "棰勭害杞﹁締")
-    private Integer reservationCar;
+    private int reservationCar;
 
     @ApiModelProperty(value = "浣滀笟杞﹁締")
-    private Integer workingCar;
+    private int workingCar;
 
     @ApiModelProperty(value = "鎺掗槦杞﹁締")
-    private Integer lineUpCar;
+    private int lineUpCar;
 
     @ApiModelProperty(value = "浠婃棩鏈堝彴瀹屾垚璁㈠崟缁熻" , hidden = true)
     private List<PlatformGroupFinishVO> platformGroupFinishList;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/RegionTreeVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/RegionTreeVO.java
new file mode 100644
index 0000000..acf2c66
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/RegionTreeVO.java
@@ -0,0 +1,93 @@
+package com.doumee.dao.web.response.platformReport;
+
+import com.doumee.config.DataSyncConfig;
+import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse;
+import com.doumee.dao.business.model.Company;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 鍖哄煙鏍戝舰缁撴瀯
+ *
+ * @Author : JP
+ * @create 2024/10/25 10:59
+ */
+@Data
+public class RegionTreeVO {
+    public List<PageRegionInfoResponse> nodeList = new ArrayList<>();
+
+    /**
+     *  鏋勯�犳柟娉�
+     *  @param nodeList 灏嗘暟鎹泦鍚堣祴鍊肩粰nodeList锛屽嵆鎵�鏈夋暟鎹綔涓烘墍鏈夎妭鐐广��
+     */
+    public RegionTreeVO(List<PageRegionInfoResponse> nodeList ){
+        this.nodeList = nodeList;
+    }
+
+
+    /**
+     *   鑾峰彇闇�鏋勫缓鐨勬墍鏈夋牴鑺傜偣锛堥《绾ц妭鐐癸級 "0"
+     *   @return 鎵�鏈夋牴鑺傜偣List闆嗗悎
+     */
+    public List<PageRegionInfoResponse> getRootNode(){
+        // 淇濆瓨鎵�鏈夋牴鑺傜偣锛堟墍鏈夋牴鑺傜偣鐨勬暟鎹級
+        List<PageRegionInfoResponse> rootNodeList = new ArrayList<>();
+        // treeNode锛氭煡璇㈠嚭鐨勬瘡涓�鏉℃暟鎹紙鑺傜偣锛�
+        for (PageRegionInfoResponse treeNode : nodeList){
+            // 鍒ゆ柇褰撳墠鑺傜偣鏄惁涓烘牴鑺傜偣锛屾澶勬敞鎰忥細鑻arentId绫诲瀷鏄疭tring锛屽垯瑕侀噰鐢╡quals()鏂规硶鍒ゆ柇銆�
+            if (Objects.isNull(treeNode.getParentIndexCode())
+                    || StringUtils.equals(treeNode.getParentIndexCode(),"null")) {
+                // 鏄紝娣诲姞
+                rootNodeList.add(treeNode);
+            }
+
+        }
+        return rootNodeList;
+    }
+
+
+    /**
+     *  鏍规嵁姣忎竴涓《绾ц妭鐐癸紙鏍硅妭鐐癸級杩涜鏋勫缓鏍戝舰缁撴瀯
+     *  @return  鏋勫缓鏁存5鏍�
+     */
+    public List<PageRegionInfoResponse> buildTree(){
+        // treeNodes锛氫繚瀛樹竴涓《绾ц妭鐐规墍鏋勫缓鍑烘潵鐨勫畬鏁存爲褰�
+        List<PageRegionInfoResponse> treeNodes = new ArrayList<PageRegionInfoResponse>();
+        // getRootNode()锛氳幏鍙栨墍鏈夌殑鏍硅妭鐐�
+        for (PageRegionInfoResponse treeRootNode : getRootNode()) {
+            // 灏嗛《绾ц妭鐐硅繘琛屾瀯寤哄瓙鏍�
+            treeRootNode = buildChildTree(treeRootNode);
+            // 瀹屾垚涓�涓《绾ц妭鐐规墍鏋勫缓鐨勬爲褰紝澧炲姞杩涙潵
+            treeNodes.add(treeRootNode);
+        }
+        return treeNodes;
+    }
+
+    /**
+     *  閫掑綊-----鏋勫缓瀛愭爲褰㈢粨鏋�
+     *  @param  pNode 鏍硅妭鐐癸紙椤剁骇鑺傜偣锛�
+     *  @return 鏁存5鏍�
+     */
+    public PageRegionInfoResponse buildChildTree(PageRegionInfoResponse pNode){
+        List<PageRegionInfoResponse> childTree = new ArrayList<>();
+        // nodeList锛氭墍鏈夎妭鐐归泦鍚堬紙鎵�鏈夋暟鎹級
+        for (PageRegionInfoResponse treeNode : nodeList) {
+            // 鍒ゆ柇褰撳墠鑺傜偣鐨勭埗鑺傜偣ID鏄惁绛変簬鏍硅妭鐐圭殑ID锛屽嵆褰撳墠鑺傜偣涓哄叾涓嬬殑瀛愯妭鐐�
+                if (!Objects.isNull(treeNode.getParentIndexCode())&&treeNode.getParentIndexCode().equals(pNode.getRegionIndexCode())) {
+                    // 鍐嶉�掑綊杩涜鍒ゆ柇褰撳墠鑺傜偣鐨勬儏鍐碉紝璋冪敤鑷韩鏂规硶
+                    childTree.add(buildChildTree(treeNode));
+                }
+        }
+        // for寰幆缁撴潫锛屽嵆鑺傜偣涓嬫病鏈変换浣曡妭鐐癸紝鏍戝舰鏋勫缓缁撴潫锛岃缃爲缁撴灉
+        pNode.setChildList(childTree);
+        return pNode;
+    }
+
+
+}
\ No newline at end of file
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java
index 3394126..51e23cc 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java
@@ -6,6 +6,8 @@
 import com.doumee.dao.admin.request.CarsQuery;
 import com.doumee.dao.admin.response.CarsDTO;
 import com.doumee.dao.business.model.Cars;
+import org.springframework.web.multipart.MultipartFile;
+
 import java.util.List;
 
 /**
@@ -89,7 +91,7 @@
      * @return PageData<Cars>
      */
     PageData<Cars> findPage(PageWrap<Cars> pageWrap);
-
+    String importBatch(MultipartFile file, LoginUserInfo loginUserInfo);
     /**
      * 鏉′欢缁熻
      *
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
index 3dc31e2..fb49ccf 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
@@ -4,14 +4,18 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.core.annotation.excel.ExcelImporter;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.ScientificNotationTUtil;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.admin.request.CarsImport;
 import com.doumee.dao.admin.request.CarsQuery;
+import com.doumee.dao.admin.request.MemberImport;
 import com.doumee.dao.admin.response.CarsDTO;
 import com.doumee.dao.business.CarsMapper;
 import com.doumee.dao.business.MemberMapper;
@@ -25,9 +29,11 @@
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.*;
 
@@ -42,6 +48,8 @@
     @Autowired
     private CarsMapper carsMapper;
 
+    @Autowired
+    private RedisTemplate<String, Object> redisTemplate;
     @Autowired
     private CarJoinMapper carJoinMapper;
     @Autowired
@@ -382,4 +390,59 @@
 
         return PageData.from(carsDTOIPage);
     }
+
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public String importBatch(MultipartFile file,  LoginUserInfo loginUserInfo){
+        Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_CARS);
+        if(importing!=null && importing){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝宸插瓨鍦ㄨ溅杈嗗鍏ヤ换鍔℃鍦ㄦ墽琛屼腑锛岃绋嶅悗鍐嶈瘯锛�");
+        }
+        redisTemplate.opsForValue().set(Constants.RedisKeys.IMPORTING_CARS,true);
+        try {
+            ExcelImporter ie = null;
+            List<CarsImport> dataList =null;
+            try {
+                ie = new ExcelImporter(file,1,0);
+                dataList = ie.getDataList(CarsImport.class,null);
+            }  catch (Exception e) {
+                e.printStackTrace();
+            }
+            if(dataList == null || dataList.size() ==0){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁涓虹┖锛�");
+            }
+            List<Cars> list =  carJoinMapper.selectJoinList(Cars.class,new MPJLambdaWrapper<Cars>()
+                    .selectAll(Cars.class)
+                    .eq(Cars::getIsdeleted,Constants.ZERO)
+            );
+            List<Member> memberList  = memberMapper.selectList(new QueryWrapper<Member>().lambda()
+                    .eq(Member::getType,Constants.TWO)
+                    .eq(Member::getIsdeleted,Constants.ZERO));
+            List<Cars> newList = new ArrayList<>();
+            for(int i=0;i<dataList.size();i++){
+                CarsImport model = dataList.get(i);
+                model.setPhone(ScientificNotationTUtil.convertToString(model.getPhone()));
+               /* if(StringUtils.isBlank(model.getCode())
+                        &&StringUtils.isBlank(model.getIdcardNo())
+                        &&StringUtils.isBlank(model.getPhone())
+                        &&StringUtils.isBlank(model.getCompanyName())){
+                    continue;
+                }
+                Cars car = checkModelParam(model,newList,i,loginUserInfo,list,companyList,);
+                newList.add(car);*/
+            }
+            if(newList == null || newList.size() ==0){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏈夋晥鏁版嵁涓虹┖锛�");
+            }
+//          dealHkUserBizBatch(newList);
+            return "瀵煎叆鎴愬姛";
+        }catch (BusinessException e){
+            throw e;
+        }catch (Exception e){
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"杞﹁締淇℃伅瀵煎叆澶辫触锛岃绋嶅悗閲嶈瘯");
+        }finally {
+            redisTemplate.delete(Constants.RedisKeys.IMPORTING_CARS);
+        }
+    }
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncInitConfigServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncInitConfigServiceImpl.java
index 4167d3c..fbd9683 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncInitConfigServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncInitConfigServiceImpl.java
@@ -28,11 +28,10 @@
 
     @PostConstruct
     public  int  initHkConfig(){
-
-            ArtemisConfig.host = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_HOST).getCode();
-            ArtemisConfig.appKey = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPKEY).getCode();
-            ArtemisConfig.appSecret = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPSECRET).getCode();
-            HKConstants.https = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_HTTPS).getCode();
+        ArtemisConfig.host = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_HOST).getCode();
+        ArtemisConfig.appKey = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPKEY).getCode();
+        ArtemisConfig.appSecret = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPSECRET).getCode();
+        HKConstants.https = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_HTTPS).getCode();
         HKTools.interfaceLogService=interfaceLogService;
         return  0;
     }
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
new file mode 100644
index 0000000..3c33c77
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -0,0 +1,289 @@
+package com.doumee.service.business.impl.thrid;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.param.BaseListPageResponse;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.BaseListPageRequest;
+import com.doumee.core.haikang.model.param.request.SensorStatusListRequest;
+import com.doumee.core.haikang.model.param.respose.PageCameraInfoResponse;
+import com.doumee.core.haikang.model.param.respose.PageFireChannelInfoResponse;
+import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse;
+import com.doumee.core.haikang.model.param.respose.PageSensorStatusResponse;
+import com.doumee.core.haikang.service.HKService;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.PlatformJobMapper;
+import com.doumee.dao.business.PlatformLogMapper;
+import com.doumee.dao.business.PlatformMapper;
+import com.doumee.dao.business.model.Platform;
+import com.doumee.dao.business.model.PlatformJob;
+import com.doumee.dao.web.response.platformReport.CarmeraListVO;
+import com.doumee.dao.web.response.platformReport.OnSitDispatchBoardVO;
+import com.doumee.dao.web.response.platformReport.RegionTreeVO;
+import com.doumee.service.business.third.BoardService;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * TMS骞冲彴瀵规帴Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Service
+@Slf4j
+public class BoardServiceImpl implements BoardService {
+    @Autowired
+    private PlatformLogMapper platformLogMapper;
+    @Autowired
+    private PlatformJobMapper platformJobMapper;
+    @Autowired
+    private PlatformMapper platformMapper;
+    /**
+     * 鑾峰彇鍖哄煙鏍戝舰缁撴瀯鏁版嵁
+     * @return
+     */
+    @Override
+    public List<PageRegionInfoResponse> getRegionTree(CarmeraListVO req){
+        List<PageRegionInfoResponse> allList = new ArrayList<>();
+        boolean hasNext = true;
+        int curTotal = 0;
+        int curPage = 1;
+        while (hasNext){
+            //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+            BaseListPageRequest param = new BaseListPageRequest();
+            param.setUserId("admin");
+            param.setPageSize(100);
+            param.setPageNo(curPage);
+            BaseResponse<BaseListPageResponse<PageRegionInfoResponse>> response = HKService.pageRegions(param);
+            if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+            }
+            BaseListPageResponse<PageRegionInfoResponse> r = response.getData();
+            curTotal += 100;
+            if(curTotal >= r.getTotal()){
+                hasNext = false;
+            }
+            if(r.getList() == null || r.getList().size()==0){
+                hasNext =false;
+            }else{
+                allList.addAll(r.getList());
+            }
+            curPage++;
+        }
+        if(Constants.equalsInteger(req.getWithCameras(),Constants.ONE)){
+            initReginCameralList(allList,req.getName());//鑾峰彇鍏ㄩ儴鐩戞帶鐐规暟鎹�
+        }
+        List<PageRegionInfoResponse> data = new RegionTreeVO(allList).buildTree();
+        return  data;
+    }
+    private void initReginCameralList(List<PageRegionInfoResponse> allList,String name) {
+        List<CarmeraListVO> carmeraListVOList = cameraList(null);
+        if(carmeraListVOList!=null && carmeraListVOList.size()>0){
+            for(PageRegionInfoResponse p : allList){
+                for(CarmeraListVO c : carmeraListVOList){
+                    if(StringUtils.equals(p.getRegionIndexCode(),c.getReginCode())
+                            && (StringUtils.contains(c.getName(),name) ||StringUtils.isBlank(name))){
+                        if(p.getCarmeraList()==null){
+                            p.setCarmeraList(new ArrayList<>());
+                        }
+                        p.getCarmeraList().add(c);
+                    }
+                }
+            }
+        }
+    }
+    /**
+     * 鑾峰彇鍖哄煙鏍戝舰缁撴瀯鏁版嵁
+     * @return
+     */
+    @Override
+    public List<PageRegionInfoResponse> regionList(CarmeraListVO req){
+        List<PageRegionInfoResponse> allList = new ArrayList<>();
+        boolean hasNext = true;
+        int curTotal = 0;
+        int curPage = 1;
+        while (hasNext){
+            //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+            BaseListPageRequest param = new BaseListPageRequest();
+            param.setUserId("admin");
+            param.setPageSize(100);
+            param.setPageNo(curPage);
+            BaseResponse<BaseListPageResponse<PageRegionInfoResponse>> response = HKService.pageRegions(param);
+            if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+            }
+            BaseListPageResponse<PageRegionInfoResponse> r = response.getData();
+            curTotal += 100;
+            if(curTotal >= r.getTotal()){
+                hasNext = false;
+            }
+            if(r.getList() == null || r.getList().size()==0){
+                hasNext =false;
+            }else{
+                allList.addAll(r.getList());
+            }
+            curPage++;
+        }
+        if(Constants.equalsInteger(req.getWithCameras(),Constants.ONE)){
+            initReginCameralList(allList,req.getName());//鑾峰彇鍏ㄩ儴鐩戞帶鐐规暟鎹�
+        }
+        return  allList;
+    }
+    @Override
+    public     List<CarmeraListVO> cameraList(CarmeraListVO req){
+        List<PageCameraInfoResponse> allList = new ArrayList<>();
+        boolean hasNext = true;
+        int curTotal = 0;
+        int curPage = 1;
+        while (hasNext){
+            //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+            BaseListPageRequest param = new BaseListPageRequest();
+            param.setUserId("admin");
+            param.setPageSize(100);
+            param.setPageNo(curPage);
+            BaseResponse<BaseListPageResponse<PageCameraInfoResponse>> response = HKService.pageCameras(param);
+            if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+            }
+            BaseListPageResponse<PageCameraInfoResponse> r = response.getData();
+            curTotal += 100;
+            if(curTotal >= r.getTotal()){
+                hasNext = false;
+            }
+            if(r.getList() == null || r.getList().size()==0){
+                hasNext =false;
+            }else{
+                allList.addAll(r.getList());
+            }
+            curPage++;
+        }
+
+        List<CarmeraListVO> data = new ArrayList<>();
+        for(PageCameraInfoResponse p : allList){
+            CarmeraListVO t = new CarmeraListVO();
+            t.setIndexCode(p.getCameraIndexCode());
+            t.setReginCode(p.getRegionIndexCode());
+            t.setName(p.getCameraName());
+            t.setStatus(p.getStatus());
+            t.setStatusName(p.getStatusName());
+            data.add(t);
+        }
+        return  data;
+    }
+    @Override
+    public    List<PageFireChannelInfoResponse> fireChannelList(){
+        List<PageFireChannelInfoResponse> allList = new ArrayList<>();
+        boolean hasNext = true;
+        int curTotal = 0;
+        int curPage = 1;
+        while (hasNext){
+            //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+            BaseListPageRequest param = new BaseListPageRequest();
+            param.setUserId("admin");
+            param.setPageSize(100);
+            param.setPageNo(curPage);
+            BaseResponse<BaseListPageResponse<PageFireChannelInfoResponse>> response = HKService.pageFireChannel(param);
+            if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+            }
+            BaseListPageResponse<PageFireChannelInfoResponse> r = response.getData();
+            curTotal += 100;
+            if(curTotal >= r.getTotal()){
+                hasNext = false;
+            }
+            if(r.getList() == null || r.getList().size()==0){
+                hasNext =false;
+            }else{
+                allList.addAll(r.getList());
+            }
+            curPage++;
+        }
+
+        return  allList;
+    }
+    @Override
+    public    List<PageSensorStatusResponse> sensorStatusList(){
+        List<PageSensorStatusResponse> allList = new ArrayList<>();
+        boolean hasNext = true;
+        int curTotal = 0;
+        int curPage = 1;
+        while (hasNext){
+            //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+            SensorStatusListRequest param = new SensorStatusListRequest();
+            param.setPageSize(100);
+            param.setPageNo(curPage);
+            BaseResponse<BaseListPageResponse<PageSensorStatusResponse>> response = HKService.pageSensorStatus(param);
+            if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+            }
+            BaseListPageResponse<PageSensorStatusResponse> r = response.getData();
+            curTotal += 100;
+            if(curTotal >= r.getTotal()){
+                hasNext = false;
+            }
+            if(r.getList() == null || r.getList().size()==0){
+                hasNext =false;
+            }else{
+                allList.addAll(r.getList());
+            }
+            curPage++;
+        }
+
+        return  allList;
+    }
+    @Override
+    public OnSitDispatchBoardVO getCnddCenterData(){
+        OnSitDispatchBoardVO data = new OnSitDispatchBoardVO();
+        //鏈堝彴鎬绘暟
+        List<Platform> list =  platformMapper.selectJoinList(Platform.class,new MPJLambdaWrapper<Platform>()
+                .selectAll(Platform.class)
+                .select(" ( select count(1) from platform_job pj where t.id = pj.PLATFORM_ID and pj.STATUS = "+Constants.PlatformJobStatus.WORKING.getKey()+" ) as workStatus ")
+                .eq(Platform::getIsdeleted,Constants.ZERO)
+        );
+        data.setPlatformTotal(list==null?0:list.size());
+        //绌洪棽鏈堝彴鏁伴噺
+        data.setFreePlatform(
+                list.stream().filter(i->Constants.formatIntegerNum(i.getWorkStatus())<=Constants.ZERO).collect(Collectors.toList()).size()
+        );
+        //鏌ヨ浠婃棩鏈堝彴涓姸鎬佷綔涓氭暟閲�
+        List<PlatformJob> jobList =  platformJobMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
+                .selectAll(PlatformJob.class)
+                .select("count(id)" ,PlatformJob::getCountum)
+                .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                .apply("to_days(create_data) = to_days(now())" )
+                .groupBy(PlatformJob::getStatus )
+        );
+        if(jobList!=null){
+            //     * 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙� 12宸插彇娑�
+            for(PlatformJob model : jobList){
+                //棰勭害杞﹁締
+                if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WAIT_CONFIRM.getKey())
+                ||Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())){
+                    data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum()));
+                }
+                // 浣滀笟杞﹁締
+                if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){
+                    data.setWorkingCar(data.getWorkingCar()+Constants.formatIntegerNum(model.getCountum()));
+                }
+                //鎺掗槦杞﹁締
+                if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())
+                        ||Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.IN_WAIT.getKey())){
+                     data.setLineUpCar(data.getLineUpCar()+Constants.formatIntegerNum(model.getCountum()));
+                }
+            }
+        }
+
+        return  data;
+    }
+
+}
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
new file mode 100644
index 0000000..a8a8c2b
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java
@@ -0,0 +1,40 @@
+package com.doumee.service.business.third;
+
+import com.doumee.core.haikang.model.param.respose.PageFireChannelInfoResponse;
+import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse;
+import com.doumee.core.haikang.model.param.respose.PageSensorStatusResponse;
+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.dao.web.response.platformReport.CarmeraListVO;
+import com.doumee.dao.web.response.platformReport.OnSitDispatchBoardVO;
+import com.doumee.dao.web.response.platformReport.RegionTreeVO;
+
+import java.util.List;
+
+/**
+ * 鏈堝彴淇℃伅琛⊿ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+public interface BoardService {
+
+
+
+
+    /**
+     * 鑾峰彇鍖哄煙鏍戝舰缁撴瀯鏁版嵁
+     * @return
+     */
+    List<PageRegionInfoResponse> getRegionTree(CarmeraListVO param);
+    List<PageRegionInfoResponse> regionList(CarmeraListVO param);
+    List<CarmeraListVO> cameraList(CarmeraListVO param);
+    List<PageFireChannelInfoResponse> fireChannelList();
+    List<PageSensorStatusResponse> sensorStatusList();
+
+    OnSitDispatchBoardVO getCnddCenterData();
+}

--
Gitblit v1.9.3