From 928a66524efbdb2371b7fa6b7ee8b55b910182fa Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期五, 19 四月 2024 08:01:45 +0800
Subject: [PATCH] fix:创建新分支

---
 src/main/java/com/boying/controller/phone/TicketController.java    |   20 
 src/main/java/com/boying/controller/EnterParkController.java       |    9 
 src/main/java/com/boying/controller/WhiteListController.java       |    7 
 pom.xml                                                            |   26 
 src/main/java/com/boying/controller/BarrierController.java         |   10 
 src/main/java/com/boying/controller/phone/NoticeController.java    |    7 
 src/main/java/com/boying/controller/car/MqttSample.java            |   66 +
 src/main/java/com/boying/controller/CostRuleController.java        |    7 
 src/main/java/com/boying/job/PayResult2Scheduled.java              |    2 
 src/main/java/com/boying/controller/TicketBlackController.java     |    8 
 src/main/java/com/boying/controller/FileInfoController.java        |    8 
 src/main/java/com/boying/controller/ViolationTypeController.java   |    8 
 src/main/java/com/boying/controller/phone/PayController.java       |    9 
 src/main/java/com/boying/controller/LedShowController.java         |    2 
 src/main/java/com/boying/controller/UserController.java            |    9 
 src/main/java/com/boying/job/DaPingScheduled.java                  |    2 
 src/main/java/com/boying/controller/car/PlateServlet3.java         | 2008 +++++++++++++++++++++---------------------
 src/main/java/com/boying/controller/StatisticController.java       |    6 
 src/main/java/com/boying/controller/phone/UpdateAppController.java |    4 
 src/main/java/com/boying/controller/ParkController.java            |   34 
 src/main/java/com/boying/controller/phone/YCPayController.java     |   15 
 src/main/java/com/boying/controller/car/MqttSample2.java           |   69 +
 src/main/java/com/boying/controller/car/PlateServlet2.java         |  146 ++
 src/main/java/com/boying/controller/OrderRecordController.java     |    6 
 src/main/java/com/boying/controller/FileInfo2Controller.java       |    8 
 src/main/java/com/boying/controller/car/PushCallback.java          |   44 
 src/main/java/com/boying/controller/StreetController.java          |   12 
 src/main/java/com/boying/controller/OutParkController.java         |   14 
 src/main/java/com/boying/controller/BarrierOpenLogController.java  |    4 
 src/main/java/com/boying/Application.java                          |   16 
 src/main/java/com/boying/controller/car/ServerMQTT.java            |   93 ++
 src/main/resources/application.yml                                 |   24 
 32 files changed, 1,643 insertions(+), 1,060 deletions(-)

diff --git a/pom.xml b/pom.xml
index 32afc3d..8b1c7d6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -121,6 +121,32 @@
             <artifactId>signature</artifactId>
             <version>1.1.0.6</version>
         </dependency>
+        <dependency>
+            <groupId>org.eclipse.paho</groupId>
+            <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>knife4j-openapi3-spring-boot-starter</artifactId>
+            <version>4.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springdoc</groupId>
+            <artifactId>springdoc-openapi-ui</artifactId>
+            <version>1.6.14</version>
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.led</groupId>-->
+<!--            <artifactId>show</artifactId>-->
+<!--            <version>0.0.0.1</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>net.sf</groupId>-->
+<!--            <artifactId>jni4net</artifactId>-->
+<!--            <version>0.8.8.0</version>-->
+<!--        </dependency>-->
+
     </dependencies>
 
     <build>
diff --git a/src/main/java/com/boying/Application.java b/src/main/java/com/boying/Application.java
index 5a2e03a..5659c90 100644
--- a/src/main/java/com/boying/Application.java
+++ b/src/main/java/com/boying/Application.java
@@ -2,7 +2,7 @@
 
 
 import cn.hutool.core.io.resource.ClassPathResource;
-import net.sf.jni4net.Bridge;
+//import net.sf.jni4net.Bridge;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.Bean;
@@ -26,11 +26,11 @@
         SpringApplication.run(Application.class, args);
     }
 
-    @Bean
-    public static void getBean() throws IOException {
-        Bridge.setVerbose(true);
-        Bridge.init();
-        File loadDll = new File("LedShow.j4n.dll");
-        Bridge.LoadAndRegisterAssemblyFrom(loadDll);
-    }
+//    @Bean
+//    public static void getBean() throws IOException {
+//        Bridge.setVerbose(true);
+//        Bridge.init();
+//        File loadDll = new File("LedShow.j4n.dll");
+//        Bridge.LoadAndRegisterAssemblyFrom(loadDll);
+//    }
 }
diff --git a/src/main/java/com/boying/controller/BarrierController.java b/src/main/java/com/boying/controller/BarrierController.java
index 8fb48d4..a05bf04 100644
--- a/src/main/java/com/boying/controller/BarrierController.java
+++ b/src/main/java/com/boying/controller/BarrierController.java
@@ -12,6 +12,8 @@
 import com.boying.service.OutParkService;
 import com.boying.service.ParkService;
 import com.boying.util.RedisJsonUtil;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -27,6 +29,7 @@
 @RestController
 @RequestMapping("ffzf/barrier")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/barrier" , name = "閬撻椄鎺ュ彛" )
 public class BarrierController {
 
     private final BarrierService barrierService;
@@ -37,6 +40,7 @@
 
 
     @PostMapping("findPage")
+    @Operation(summary = "鏍规嵁鍋滆溅鍦哄垎椤垫煡璇㈤亾闂�" , description = "鏍规嵁鍋滆溅鍦哄垎椤垫煡璇㈤亾闂�" )
     public Object findPage(Page page, String parkId) {
         QueryWrapper<Barrier> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -54,6 +58,7 @@
     }
 
     @PostMapping("save")
+    @Operation(summary = "鏂板閬撻椄" , description = "鏂板閬撻椄" )
     public Object save(Barrier barrier) {
         barrier.setUpdateTime(LocalDateTime.now());
         barrierService.saveOrUpdate(barrier);
@@ -67,6 +72,7 @@
     }
 
     @PostMapping("delete")
+    @Operation(summary = "鍒犻櫎閬撻椄" , description = "鍒犻櫎閬撻椄" )
     public Object delete(Integer id) {
         Barrier byId = barrierService.getById(id);
         barrierService.removeById(id);
@@ -75,6 +81,7 @@
     }
 
     @PostMapping("findAll")
+    @Operation(summary = "鏌ヨ鎵�鏈夐亾闂革紙APP锛�" , description = "鏌ヨ鎵�鏈夐亾闂革紙APP锛�" )
     public Object findAll(Long parkId) {
         if (parkId==null) {
             return R.failed("鏈彂鐜拌鍋滆溅鍦�");
@@ -86,6 +93,7 @@
     }
 
     @PostMapping("open")
+    @Operation(summary = "鎵嬪姩寮�闂革紙搴熷純锛�" , description = "鎵嬪姩寮�闂革紙搴熷純锛�" )
     public Object open(Long barrierId) {
         Barrier b=  barrierService.getById(barrierId);
         if (b==null) {
@@ -104,6 +112,7 @@
     }
 
     @PostMapping("getByCode")
+    @Operation(summary = "鏍规嵁code鏌ヨ閬撻椄" , description = "鏍规嵁code鏌ヨ閬撻椄" )
     public Object getByCode(String code) {
         Barrier b=  barrierService.findByCode2(code);
         if (b==null) {
@@ -116,6 +125,7 @@
 
 
     @PostMapping("openBarrier")
+    @Operation(summary = "鎵嬫寔鎵嬪姩寮�闂�" , description = "鎵嬫寔鎵嬪姩寮�闂�" )
     public Object openBarrier(Long barrierId,Integer type,String carNo,String remark) {
         Barrier b=  barrierService.getById(barrierId);
         if (b==null) {
diff --git a/src/main/java/com/boying/controller/BarrierOpenLogController.java b/src/main/java/com/boying/controller/BarrierOpenLogController.java
index 60ce86e..526ad99 100644
--- a/src/main/java/com/boying/controller/BarrierOpenLogController.java
+++ b/src/main/java/com/boying/controller/BarrierOpenLogController.java
@@ -13,6 +13,8 @@
 import com.boying.service.BarrierService;
 import com.boying.service.OutParkService;
 import com.boying.service.ParkService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -26,6 +28,7 @@
 @RestController
 @RequestMapping("ffzf/barrierOpenLog")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/barrierOpenLog" , name = "鎵嬪姩寮�闂告棩蹇�" )
 public class BarrierOpenLogController {
 
     private final BarrierOpenLogService barrierOpenLogService;
@@ -33,6 +36,7 @@
 
 
     @PostMapping("findPage")
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
     public Object findPage(Page page, Integer parkId,String carNo) {
         QueryWrapper<BarrierOpenLog> wrapper = new QueryWrapper<>();
         wrapper.lambda()
diff --git a/src/main/java/com/boying/controller/CostRuleController.java b/src/main/java/com/boying/controller/CostRuleController.java
index 1d198a1..5f72406 100644
--- a/src/main/java/com/boying/controller/CostRuleController.java
+++ b/src/main/java/com/boying/controller/CostRuleController.java
@@ -13,6 +13,8 @@
 import com.boying.service.ParkService;
 import com.boying.util.DateUtilOther;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -25,18 +27,21 @@
 @RestController
 @RequestMapping("ffzf/rule")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/rule" , name = "缂磋垂瑙勫垯" )
 public class CostRuleController{
 
     private final CostRuleService costRuleService;
     private final ParkService parkService;
 
     @GetMapping("test")
+    @Operation(summary = "娴嬭瘯" , description = "娴嬭瘯" )
     public Object save(String start,String end) throws ParseException {
         double money = costRuleService.getMoney(4, DateUtilOther.stringToLocalDate(start,null), DateUtilOther.stringToLocalDate(end, null), 1);
         return R.ok(money);
     }
 
     @PostMapping("/findPage")
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
     public Object findPage(Page page,CostRule costRule) {
         QueryWrapper<CostRule> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -51,6 +56,7 @@
         return R.ok(page1);}
 
     @PostMapping("/save")
+    @Operation(summary = "鏂板瑙勫垯" , description = "鏂板瑙勫垯" )
     public Object save(CostRule costRule) {
         costRuleService.saveOrUpdate(costRule);
         return R.ok("淇濆瓨鎴愬姛");
@@ -58,6 +64,7 @@
 
 
     @PostMapping("/delete")
+    @Operation(summary = "鍒犻櫎瑙勫垯" , description = "鍒犻櫎瑙勫垯" )
     public Object delete(Long id) {
         costRuleService.removeById(id);
         return R.ok("鍒犻櫎鎴愬姛");
diff --git a/src/main/java/com/boying/controller/EnterParkController.java b/src/main/java/com/boying/controller/EnterParkController.java
index ec9488d..00b0fcc 100644
--- a/src/main/java/com/boying/controller/EnterParkController.java
+++ b/src/main/java/com/boying/controller/EnterParkController.java
@@ -14,6 +14,8 @@
 import com.boying.service.ParkService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 
 import org.springframework.web.bind.annotation.*;
@@ -33,6 +35,7 @@
 @RequiredArgsConstructor
 @RequestMapping("ffzf/enterpark" )
 @Api(value = "enterpark", tags = "鍏ュ満琛ㄧ鐞�")
+@Tag(description = "ffzf/enterpark" , name = "鍏ュ満琛ㄨ褰�" )
 public class EnterParkController {
 
     private final EnterParkService enterParkService;
@@ -65,6 +68,7 @@
 //    }
 
     @PostMapping("/findPage")
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
     public Object findPage(Page page, String  carNo,Integer parkId,String date) throws ParseException {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         if(StringUtils.isNotBlank(date)){
@@ -92,6 +96,7 @@
      */
     @ApiOperation(value = "閫氳繃id鏌ヨ", notes = "閫氳繃id鏌ヨ")
     @GetMapping("/{id}" )
+    @Operation(summary = "鏍规嵁id鏌ヨ" , description = "鏍规嵁id鏌ヨ" )
     public R getById(@PathVariable("id" ) Integer id) {
         return R.ok(enterParkService.getById(id));
     }
@@ -103,6 +108,7 @@
      */
     @ApiOperation(value = "鏂板鍏ュ満琛�", notes = "鏂板鍏ュ満琛�")
     @PostMapping
+    @Operation(summary = "鏂板鍏ュ満" , description = "鏂板鍏ュ満" )
     public R save(@RequestBody EnterPark enterPark) {
         return R.ok(enterParkService.save(enterPark));
     }
@@ -114,6 +120,7 @@
      */
     @ApiOperation(value = "淇敼鍏ュ満琛�", notes = "淇敼鍏ュ満琛�")
     @PutMapping
+    @Operation(summary = "淇敼鍏ュ満" , description = "淇敼鍏ュ満" )
     public R updateById(@RequestBody EnterPark enterPark) {
         return R.ok(enterParkService.updateById(enterPark));
     }
@@ -125,6 +132,7 @@
      */
     @ApiOperation(value = "閫氳繃id鍒犻櫎鍏ュ満琛�", notes = "閫氳繃id鍒犻櫎鍏ュ満琛�")
     @DeleteMapping("/{id}" )
+    @Operation(summary = "鍒犻櫎鍏ュ満" , description = "鍒犻櫎鍏ュ満" )
     public R removeById(@PathVariable Integer id) {
         return R.ok(enterParkService.removeById(id));
     }
@@ -136,6 +144,7 @@
      * @return excel 鏂囦欢娴�
      */
     @GetMapping("/export")
+    @Operation(summary = "瀵煎嚭鍏ュ満" , description = "瀵煎嚭鍏ュ満" )
     public List<EnterPark> export(EnterPark enterPark) {
         return enterParkService.list(Wrappers.query(enterPark));
     }
diff --git a/src/main/java/com/boying/controller/FileInfo2Controller.java b/src/main/java/com/boying/controller/FileInfo2Controller.java
index 1fceedb..17c56b6 100644
--- a/src/main/java/com/boying/controller/FileInfo2Controller.java
+++ b/src/main/java/com/boying/controller/FileInfo2Controller.java
@@ -3,6 +3,8 @@
 import com.boying.entity.FileInfo;
 import com.boying.service.FileInfoService;
 import io.lettuce.core.dynamic.annotation.Param;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
@@ -14,6 +16,7 @@
 @RestController
 @RequestMapping("ffzf/fileInfo")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/fileInfo" , name = "鏂囦欢涓婁紶鎺ュ彛" )
 public class FileInfo2Controller {
 
     private final FileInfoService fileInfoService;
@@ -23,12 +26,14 @@
      * @Param downloadPath 鏂囦欢璺緞
      */
     @GetMapping("/download/downloadZip")
+    @Operation(summary = "涓嬭浇zip" , description = "涓嬭浇zip" )
     public void downloadZip(@Param("downloadPath") String downloadPath, HttpServletRequest request, HttpServletResponse response) {
         //涓嬭浇鍥剧墖
         String down = fileInfoService.downloadPathFile(downloadPath, request, response);
     }
 
     @PostMapping("/download/downloadZips")
+    @Operation(summary = "涓嬭浇澶氫釜zip" , description = "涓嬭浇澶氫釜zip" )
     public void downloadZips(String fileIds, HttpServletRequest request, HttpServletResponse response) {
         List<FileInfo> fileInfoList = new ArrayList<>();
         if(fileIds.contains(",")){
@@ -46,17 +51,20 @@
         fileInfoService.downForZip(fileInfoList, request, response);
     }
     @PostMapping("/download/downloadPng")
+    @Operation(summary = "涓嬭浇鍥剧墖" , description = "涓嬭浇鍥剧墖" )
     public void downloadPng(String fileId, HttpServletRequest request, HttpServletResponse response) {
         FileInfo byId = fileInfoService.getById(Integer.parseInt(fileId));
         fileInfoService.downloadPng(byId,request,response);
     }
 
     @GetMapping("/showImg")
+    @Operation(summary = "鏍规嵁璺緞棰勮鍥剧墖" , description = "鏍规嵁璺緞棰勮鍥剧墖" )
     public void showImg( String path,HttpServletResponse response) {
         fileInfoService.getFile(path,response);
     }
 
     @GetMapping("/showImgById/{fileId}")
+    @Operation(summary = "鏍规嵁鏂囦欢id棰勮鍥剧墖" , description = "鏍规嵁鏂囦欢id棰勮鍥剧墖" )
     public void showImgById(@PathVariable Long fileId,HttpServletResponse response) {
         fileInfoService.getFileById(fileId,response);
     }
diff --git a/src/main/java/com/boying/controller/FileInfoController.java b/src/main/java/com/boying/controller/FileInfoController.java
index 09514f8..a6caf79 100644
--- a/src/main/java/com/boying/controller/FileInfoController.java
+++ b/src/main/java/com/boying/controller/FileInfoController.java
@@ -6,6 +6,8 @@
 import com.boying.service.FileInfoService;
 import io.lettuce.core.dynamic.annotation.Param;
 import io.swagger.models.auth.In;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
@@ -17,6 +19,7 @@
 @RestController
 @RequestMapping("ffzf/fileinfo")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/fileinfo" , name = "鏂囦欢鎺ュ彛锛堝凡搴熷純锛�" )
 public class FileInfoController {
 
     private final FileInfoService fileInfoService;
@@ -26,12 +29,14 @@
      * @Param downloadPath 鏂囦欢璺緞
      */
     @GetMapping("/download/downloadZip")
+    @Operation(summary = "涓嬭浇zip" , description = "涓嬭浇zip" )
     public void downloadZip(@Param("downloadPath") String downloadPath, HttpServletRequest request, HttpServletResponse response) {
         //涓嬭浇鍥剧墖
         String down = fileInfoService.downloadPathFile(downloadPath, request, response);
     }
 
     @PostMapping("/download/downloadZips")
+    @Operation(summary = "涓嬭浇澶氫釜zip" , description = "涓嬭浇澶氫釜zip" )
     public void downloadZips(String fileIds, HttpServletRequest request, HttpServletResponse response) {
         List<FileInfo> fileInfoList = new ArrayList<>();
         if(fileIds.contains(",")){
@@ -49,17 +54,20 @@
         fileInfoService.downForZip(fileInfoList, request, response);
     }
     @PostMapping("/download/downloadPng")
+    @Operation(summary = "涓嬭浇鍥剧墖" , description = "涓嬭浇鍥剧墖" )
     public void downloadPng(String fileId, HttpServletRequest request, HttpServletResponse response) {
         FileInfo byId = fileInfoService.getById(Integer.parseInt(fileId));
         fileInfoService.downloadPng(byId,request,response);
     }
 
     @GetMapping("/showImg/{filename}")
+    @Operation(summary = "鏍规嵁璺緞棰勮鍥剧墖" , description = "鏍规嵁璺緞棰勮鍥剧墖" )
     public void showImg(@PathVariable String filename,HttpServletResponse response) {
         fileInfoService.getFile(filename,response);
     }
 
     @GetMapping("/showImgById/{fileId}")
+    @Operation(summary = "鏍规嵁鏂囦欢id棰勮鍥剧墖" , description = "鏍规嵁鏂囦欢id棰勮鍥剧墖" )
     public void showImgById(@PathVariable Long fileId,HttpServletResponse response) {
         fileInfoService.getFileById(fileId,response);
     }
diff --git a/src/main/java/com/boying/controller/LedShowController.java b/src/main/java/com/boying/controller/LedShowController.java
index 1089c0c..b26fc70 100644
--- a/src/main/java/com/boying/controller/LedShowController.java
+++ b/src/main/java/com/boying/controller/LedShowController.java
@@ -8,6 +8,7 @@
 import com.boying.service.BarrierService;
 import com.boying.service.LedShowService;
 import com.boying.service.ParkService;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -26,6 +27,7 @@
 @RestController
 @RequestMapping("ledshow")
 @RequiredArgsConstructor
+@Tag(description = "ledshow" , name = "led鏃ュ織锛堝凡搴熷純锛�" )
 public class LedShowController {
 
     private final LedShowService ledShowService;
diff --git a/src/main/java/com/boying/controller/OrderRecordController.java b/src/main/java/com/boying/controller/OrderRecordController.java
index 19fa916..3b426cd 100644
--- a/src/main/java/com/boying/controller/OrderRecordController.java
+++ b/src/main/java/com/boying/controller/OrderRecordController.java
@@ -16,6 +16,8 @@
 import com.boying.service.UserService;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.models.auth.In;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -33,6 +35,7 @@
 @RestController
 @RequestMapping("ffzf/orderrecord")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/orderrecord" , name = "璁㈠崟鎺ュ彛" )
 public class OrderRecordController {
 
     private final OrderRecordService orderRecordService;
@@ -48,6 +51,7 @@
      */
     @ApiOperation(value = "鍒嗛〉鏌ヨ", notes = "鍒嗛〉鏌ヨ")
     @PostMapping("/findPage" )
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
     public R getOrderRecordPage(Page page, OrderRecord orderRecord) {
         QueryWrapper<OrderRecord> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -72,6 +76,7 @@
 
 
     @PostMapping("/getByCarNo")
+    @Operation(summary = "閫氳繃杞︾墝鍙锋湀浠藉垎椤垫煡璇�" , description = "閫氳繃杞︾墝鍙锋湀浠藉垎椤垫煡璇�" )
     public Object getByCarNo(Page page,String carNo,String month,String phone) {
         List<OrderRecordVo> recordVos = new ArrayList<>();
         QueryWrapper<OrderRecord> wrapper = new QueryWrapper<>();
@@ -100,6 +105,7 @@
     }
 
     @PostMapping("/findCountPage")
+    @Operation(summary = "鏌ヨ鍋滆溅鍦鸿鍗曢噾棰濈粺璁�" , description = "鏌ヨ鍋滆溅鍦鸿鍗曢噾棰濈粺璁�" )
     public Object findCountPage(Integer parkId,String startTime,String endTime) throws ParseException {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         QueryWrapper<OutPark> wrapper = new QueryWrapper<>();
diff --git a/src/main/java/com/boying/controller/OutParkController.java b/src/main/java/com/boying/controller/OutParkController.java
index 3d0a6e5..b6934fb 100644
--- a/src/main/java/com/boying/controller/OutParkController.java
+++ b/src/main/java/com/boying/controller/OutParkController.java
@@ -9,6 +9,8 @@
 import com.boying.entity.*;
 import com.boying.service.*;
 import com.boying.util.DateUtilOther;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -36,6 +38,7 @@
 @RestController
 @RequestMapping("ffzf/outpark")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/outpark" , name = "鍑哄満琛ㄦ帴鍙�" )
 public class OutParkController  {
 
 
@@ -54,6 +57,7 @@
     private StringRedisTemplate redisTemplate;
 
     @PostMapping("/findPage")
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
     public Object findPage(Page page, String  carNo,Long parkId,String  payCode,String date) throws ParseException {
         List<OutPark> list = outParkService.getList(page.getCurrent(), page.getSize(), carNo,parkId,payCode, date);
         System.out.println(list);
@@ -75,11 +79,13 @@
     }
     //getById
     @PostMapping("/getById")
+    @Operation(summary = "鏍规嵁id鏌ヨ" , description = "鏍规嵁id鏌ヨ" )
     public Object getById(Long id) {
         return R.ok(outParkService.getById(id));
     }
     //閬撻椄code
     @PostMapping("/findByBarrierCode")
+    @Operation(summary = "鏍规嵁閬撻椄code鏌ヨ鍑哄満锛堝凡搴熷純锛�" , description = "鏍规嵁閬撻椄code鏌ヨ鍑哄満锛堝凡搴熷純锛�" )
     public Object findById(String code) {
         if(StringUtils.isBlank(code)){
             return R.failed(null,"鍙傛暟閿欒");
@@ -112,6 +118,7 @@
 
     //閬撻椄code
     @PostMapping("/findByBarrierCode2")
+    @Operation(summary = "鏍规嵁閬撻椄code鏌ヨ鍑哄満" , description = "鏍规嵁閬撻椄code鏌ヨ鍑哄満" )
     public Object findById2(String code2) {
         if(StringUtils.isBlank(code2)){
             return R.failed(null,"鍙傛暟閿欒");
@@ -143,12 +150,14 @@
     }
 
     @PostMapping("/delete")
+    @Operation(summary = "鍒犻櫎鍑哄満" , description = "鍒犻櫎鍑哄満" )
     public Object delete(Long id) {
         outParkService.removeById(id);
         return R.ok("鍒犻櫎鎴愬姛");
     }
 
     @PostMapping("enterPark2")
+    @Operation(summary = "鏂板鍏ュ満锛堝簾寮冿級" , description = "鏂板鍏ュ満锛堝簾寮冿級" )
     public Object enterPark(String carNo,Integer barrierId,Integer parkId,String code2) {
         Barrier barrier1 = findBarrier(code2);
         barrierId = barrier1.getId();
@@ -189,6 +198,7 @@
     }
 
     @PostMapping("outPark2")
+    @Operation(summary = "鏂板鍑哄満锛堝簾寮冿級" , description = "鏂板鍑哄満锛堝簾寮冿級" )
     public Object outPark(String carNo,Integer barrierId,Integer parkId,String code2) {
         String s = "寮�濮嬫墽琛屽嚭鍦烘帴鍙�------>\n";
         Barrier barrier1 = findBarrier(code2);
@@ -254,6 +264,7 @@
     }
 
     @GetMapping("/statisticParkOrder/count")
+    @Operation(summary = "缁熻鐢ㄦ埛绠$悊鐨勫仠杞﹀満璁㈠崟鏁伴噺" , description = "缁熻鐢ㄦ埛绠$悊鐨勫仠杞﹀満璁㈠崟鏁伴噺" )
     public R statisticParkOrder(String parkIds) {
         Map<String,Object> resultMap = new HashMap<>();
         if(StringUtils.isNotBlank(parkIds)){
@@ -290,6 +301,7 @@
     }
 
     @GetMapping("/isJS")
+    @Operation(summary = "鍍靛案杞︽煡璇�" , description = "鍍靛案杞︽煡璇�" )
     public Object isJS(String carNo ,Integer parkId) {
         List<EnterPark> byCarNo = enterParkService.findByCarNo(carNo, parkId);
         if(byCarNo.size() > 0){
@@ -300,6 +312,7 @@
     }
 
     @GetMapping("/getByCarAndPark")
+    @Operation(summary = "鏍规嵁杞︾墝鍜屽仠杞﹀満鑾峰彇鏈�鏂板嚭鍦�" , description = "鏍规嵁杞︾墝鍜屽仠杞﹀満鑾峰彇鏈�鏂板嚭鍦�" )
     public Object getByCarAndPark(String carNo ,Integer parkId) {
         QueryWrapper<OutPark> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -320,6 +333,7 @@
         }
     }
     @GetMapping("/editEnterPark")
+    @Operation(summary = "淇敼鍏ュ満淇℃伅" , description = "淇敼鍏ュ満淇℃伅" )
     public Object editEnterPark(String carNo ,Integer parkId,String time) {
         QueryWrapper<Barrier> wrapper = new QueryWrapper<>();
         wrapper.lambda()
diff --git a/src/main/java/com/boying/controller/ParkController.java b/src/main/java/com/boying/controller/ParkController.java
index de69d43..bdfea54 100644
--- a/src/main/java/com/boying/controller/ParkController.java
+++ b/src/main/java/com/boying/controller/ParkController.java
@@ -5,11 +5,16 @@
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.boying.common.R;
+import com.boying.entity.EnterPark;
 import com.boying.entity.Park;
 import com.boying.entity.User;
+import com.boying.service.EnterParkService;
 import com.boying.service.ParkService;
 import com.boying.service.UserService;
 import com.boying.util.RedisJsonUtil;
+import io.swagger.models.auth.In;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
@@ -28,6 +33,7 @@
 @RestController
 @RequestMapping("ffzf/park")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/park" , name = "鍋滆溅鍦烘帴鍙�" )
 public class ParkController {
 
     @Autowired
@@ -35,8 +41,10 @@
     private final ParkService parkService;
     private final UserService userService;
     private final RedisJsonUtil redisJsonUtil;
+    private final EnterParkService enterParkService;
 
     @PostMapping("/findPage")
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
     public Object findPage(Page page) {
         Page page1 = parkService.page(page, new QueryWrapper<Park>().lambda().orderByDesc(Park::getId));
         List<Park> records = page1.getRecords();
@@ -54,6 +62,7 @@
     }
 
     @PostMapping("/save")
+    @Operation(summary = "淇濆瓨鍋滆溅鍦�" , description = "淇濆瓨鍋滆溅鍦�" )
     public Object save(Park park) {
         parkService.saveOrUpdate(park);
         String num = redisTemplate.opsForValue().get("car_park_" +  park.getId());
@@ -70,6 +79,7 @@
     }
 
     @PostMapping("/delete")
+    @Operation(summary = "鍒犻櫎鍋滆溅鍦�" , description = "鍒犻櫎鍋滆溅鍦�" )
     public Object delete(Long id) {
         parkService.removeById(id);
         redisJsonUtil.del("park-"+id);
@@ -77,6 +87,7 @@
     }
 
     @PostMapping("findAll")
+    @Operation(summary = "鏌ヨ鎵�鏈�" , description = "鏌ヨ鎵�鏈�" )
     public Object findAll() {
         List<Park> all = parkService.list();
         for (Park park : all) {
@@ -91,6 +102,7 @@
     }
 
     @PostMapping("/getCarNum")
+    @Operation(summary = "鏍规嵁id鏌ヨ杞︿綅鏁�" , description = "鏍规嵁id鏌ヨ杞︿綅鏁�" )
     public Object getCarNum(Long parkId) {
         Park byId = (Park) parkService.getById(parkId);
         String s = redisTemplate.opsForValue().get("car_park_" + parkId);
@@ -103,6 +115,7 @@
     }
 
     @PostMapping("/getByUserId")
+    @Operation(summary = "鏍规嵁鐢ㄦ埛鏌ヨ绠$悊鍋滆溅鍦鸿溅浣嶆暟" , description = "鏍规嵁鐢ㄦ埛鏌ヨ绠$悊鍋滆溅鍦鸿溅浣嶆暟" )
     public Object getByUserId(String parkIds) {
         List<Park> list = new ArrayList<>();
         if(StringUtils.isBlank(parkIds)){
@@ -127,6 +140,7 @@
     }
 
     @PostMapping("/getById")
+    @Operation(summary = "鏍规嵁id鏌ヨ鍋滆溅鍦猴紙APP锛�" , description = "鏍规嵁id鏌ヨ鍋滆溅鍦猴紙APP锛�" )
     public Object getById(Long parkId) {
         Park byId = parkService.getById(parkId);
         if(byId == null){
@@ -142,6 +156,7 @@
         }
     }
     @PostMapping("/editParkCarNum")
+    @Operation(summary = "淇敼杞︿綅鏁�" , description = "淇敼杞︿綅鏁�" )
     public Object editParkCarNum(Park park) {
         Park byId = parkService.getById(park.getId());
         if(byId == null){
@@ -155,4 +170,23 @@
         }
     }
 
+    @PostMapping("/getParkCar")
+    @Operation(summary = "鑾峰彇鍦哄唴杞﹁締" , description = "鑾峰彇鍦哄唴杞﹁締" )
+    public Object getParkCar(Page page, Integer parkId,String carNo) {
+        QueryWrapper<EnterPark> enterParkQueryWrapper = new QueryWrapper<>();
+        enterParkQueryWrapper.lambda()
+                .eq(parkId != null,EnterPark::getParkId,parkId)
+                .like(StringUtils.isNotBlank(carNo),EnterPark::getCarNo,carNo)
+                .orderByDesc(EnterPark::getCreateTime);
+        Page<EnterPark> page1 = enterParkService.page(page, enterParkQueryWrapper);
+        for (EnterPark record : page1.getRecords()) {
+            record.setParkName(parkService.getById(record.getParkId()).getName());
+            if(record.getImgId() != null){
+                record.setImgPath("/ffzf/fileinfo/showImgById/"+record.getImgId());
+            }
+        }
+        return R.ok(page1);
+    }
+
+
 }
diff --git a/src/main/java/com/boying/controller/StatisticController.java b/src/main/java/com/boying/controller/StatisticController.java
index 9058863..56873d3 100644
--- a/src/main/java/com/boying/controller/StatisticController.java
+++ b/src/main/java/com/boying/controller/StatisticController.java
@@ -9,6 +9,8 @@
 import com.boying.service.StatisticService;
 import com.boying.service.StreetLogoService;
 import com.boying.service.TicketBlackService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.PageRequest;
@@ -30,6 +32,7 @@
 @RestController
 @RequestMapping("statistic")
 @RequiredArgsConstructor
+@Tag(description = "statistic" , name = "澶у睆缁熻鎺ュ彛" )
 public class StatisticController{
 
     private final StatisticService statisticService;
@@ -40,6 +43,7 @@
 
     //鎸囨尌椤甸潰鏁版嵁
     @PostMapping("/getData1")
+    @Operation(summary = "鏌ヨ鎵�鏈夋硦杞︾粺璁�" , description = "鏌ヨ鎵�鏈夋硦杞︾粺璁�" )
     public Object card1() {
         List<Statistic> all = statisticService.list();
         if(all.size() >0){
@@ -50,6 +54,7 @@
     }
 
     @PostMapping("/getBlackRecord")
+    @Operation(summary = "鏌ヨ鎵�鏈夎繚娉曠粺璁�" , description = "鏌ヨ鎵�鏈夎繚娉曠粺璁�" )
     public Object getList1(Page page) {
         QueryWrapper<TicketBlack> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -58,6 +63,7 @@
     }
 
     @PostMapping("/getLogo")
+    @Operation(summary = "鏌ヨ鎵�鏈夎閬撹繚绔犵粺璁�" , description = "鏌ヨ鎵�鏈夎閬撹繚绔犵粺璁�" )
     public Object getLogo() {
         return R.ok(streetLogoService.list());
     }
diff --git a/src/main/java/com/boying/controller/StreetController.java b/src/main/java/com/boying/controller/StreetController.java
index 27ecd22..7cf1b0a 100644
--- a/src/main/java/com/boying/controller/StreetController.java
+++ b/src/main/java/com/boying/controller/StreetController.java
@@ -11,6 +11,8 @@
 import com.boying.service.StreetReRoadService;
 import com.boying.service.StreetService;
 import com.boying.util.LngLatUtil;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -27,6 +29,7 @@
 @RestController
 @RequestMapping("ffzf/street")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/street" , name = "琛楅亾缁熻" )
 public class StreetController {
 
 
@@ -35,6 +38,7 @@
     private final StreetLogoService streetLogoService;
 
     @PostMapping("/findPage")
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
     public Object findPage(Page page, Street street) {
         QueryWrapper<Street> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -43,6 +47,7 @@
     }
 
     @PostMapping("/save")
+    @Operation(summary = "鏂板琛楅亾" , description = "鏂板琛楅亾" )
     public Object save(Street street) {
         QueryWrapper<Street> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -63,6 +68,7 @@
     }
 
     @PostMapping("/save2")
+    @Operation(summary = "鏂板璺�" , description = "鏂板璺�" )
     public Object save2(StreetReRoad streetReRoad) {
         streetReRoadService.saveOrUpdate(streetReRoad);
         return R.ok();
@@ -70,18 +76,21 @@
 
 
     @PostMapping("/delete")
+    @Operation(summary = "鍒犻櫎琛�" , description = "鍒犻櫎琛�" )
     public Object delete(Long id) {
         streetService.removeById(id);
         return R.ok();
     }
 
     @PostMapping("/delete2")
+    @Operation(summary = "鍒犻櫎璺�" , description = "鍒犻櫎璺�" )
     public Object delete2(Long id) {
         streetReRoadService.removeById(id);
         return R.ok();
     }
 
     @GetMapping("/findById")
+    @Operation(summary = "鏍规嵁id鏌ヨ锛圓PP锛�" , description = "鏍规嵁id鏌ヨ锛圓PP锛�" )
     public Object findById(Long id,int type) {
         if(type==0){
             QueryWrapper<StreetReRoad> roadQueryWrapper = new QueryWrapper<>();
@@ -110,6 +119,7 @@
     }
 
     @GetMapping("/findList")
+    @Operation(summary = "鏌ヨ鎵�鏈夎閬撳拰璺�" , description = "鏌ヨ鎵�鏈夎閬撳拰璺�" )
     public Object findAll() {
         Map<String,Object> map = new HashMap<>();
         QueryWrapper<Street> wrapper = new QueryWrapper<>();
@@ -125,11 +135,13 @@
     }
 
     @GetMapping("/findList2")
+    @Operation(summary = "鏌ヨ鎵�鏈夎閬�" , description = "鏌ヨ鎵�鏈夎閬�" )
     public Object findAll2() {
         return R.ok(streetService.list());
     }
 
     @PostMapping("findLogo")
+    @Operation(summary = "鏌ヨ鎵�鏈夎閬撹繚绔�" , description = "鏌ヨ鎵�鏈夎閬撹繚绔�" )
     public Object findLogo(String lng ,String lat) {
         List<StreetLogo> all = streetLogoService.list();
         List<StreetLogo> all2 = new ArrayList<>();
diff --git a/src/main/java/com/boying/controller/TicketBlackController.java b/src/main/java/com/boying/controller/TicketBlackController.java
index c71476c..4694209 100644
--- a/src/main/java/com/boying/controller/TicketBlackController.java
+++ b/src/main/java/com/boying/controller/TicketBlackController.java
@@ -11,6 +11,8 @@
 import com.boying.util.FileUtil;
 import com.boying.util.NumberToCN;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.FilenameUtils;
@@ -32,6 +34,7 @@
 @RestController
 @RequestMapping("ffzf/ticketblack")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/ticketblack" , name = "榛戝悕鍗曡〃鎺ュ彛" )
 public class TicketBlackController {
 
 
@@ -43,6 +46,7 @@
 
 
     @PostMapping("findPage")
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
     public Object findPage(Page page, TicketBlack ticket){
         QueryWrapper<TicketBlack> wrapper =  new QueryWrapper<>();
         wrapper.lambda()
@@ -53,6 +57,7 @@
     }
 
     @PostMapping("/save")
+    @Operation(summary = "鏂板榛戝悕鍗�" , description = "鏂板榛戝悕鍗�" )
     public Object save(TicketBlack ticket) throws IOException{
         QueryWrapper<TicketBlack> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -74,6 +79,7 @@
      */
     @ApiOperation(value = "閫氳繃id鏌ヨ", notes = "閫氳繃id鏌ヨ")
     @GetMapping("/{id}" )
+    @Operation(summary = "閫氳繃id鏌ヨ" , description = "閫氳繃id鏌ヨ" )
     public R getById(@PathVariable("id" ) Integer id) {
         TicketBlack byId = ticketBlackService.getById(id);
         return R.ok(byId);
@@ -81,6 +87,7 @@
 
 
     @PostMapping("/delete")
+    @Operation(summary = "鍒犻櫎榛戝悕鍗�" , description = "鍒犻櫎榛戝悕鍗�" )
     public Object delete(Long id){
         TicketBlack ticket =ticketBlackService.getById(id);
         if(ticket!=null){
@@ -94,6 +101,7 @@
     }
 
     @PostMapping("/updateById")
+    @Operation(summary = "鏇存柊榛戝悕鍗�" , description = "鏇存柊榛戝悕鍗�" )
     public Object updateById(TicketBlack ticket){
         return R.ok( ticketBlackService.updateById(ticket));
     }
diff --git a/src/main/java/com/boying/controller/UserController.java b/src/main/java/com/boying/controller/UserController.java
index c741915..59b6f2a 100644
--- a/src/main/java/com/boying/controller/UserController.java
+++ b/src/main/java/com/boying/controller/UserController.java
@@ -9,6 +9,8 @@
 import com.boying.service.ParkService;
 import com.boying.service.UserService;
 import com.boying.util.LngLatUtil;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -25,12 +27,14 @@
 @RestController
 @RequestMapping("/ffzf/user")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/user" , name = "鐢ㄦ埛鎺ュ彛" )
 public class UserController{
 
     private final UserService userService;
     private final ParkService parkService;
 
     @PostMapping("/findPage")
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
     public Object findPage(User user, Page page) {
         QueryWrapper<User> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -39,12 +43,14 @@
     }
 
     @PostMapping("/findAll")
+    @Operation(summary = "鏌ヨ鎵�鏈�" , description = "鏌ヨ鎵�鏈�" )
     public Object findAll() {
         return R.ok(userService.list());
     }
 
 
     @PostMapping("/save")
+    @Operation(summary = "鏂板鐢ㄦ埛" , description = "鏂板鐢ㄦ埛" )
     public Object save(User user) {
         if(user.getId()==null){
             user.setPassword(user.getLoginName());
@@ -54,12 +60,14 @@
     }
 
     @PostMapping("/delete")
+    @Operation(summary = "鍒犻櫎鐢ㄦ埛" , description = "鍒犻櫎鐢ㄦ埛" )
     public Object delete(Long id) {
         userService.removeById(id);
         return R.ok("鍒犻櫎鎴愬姛");
     }
 
     @PostMapping("/login")
+    @Operation(summary = "鐧诲綍" , description = "鐧诲綍" )
     public Object login(String loginName,String password,String lng,String lat) {
         if(StringUtils.isBlank(loginName)||StringUtils.isBlank(password)){
             return R.failed("鐢ㄦ埛鍚嶅拰瀵嗙爜蹇呭~");
@@ -90,6 +98,7 @@
     }
 
     @PostMapping("updatePassword")
+    @Operation(summary = "淇敼瀵嗙爜" , description = "淇敼瀵嗙爜" )
     public Object updatePassword(Long userId,String oldPassword,String newPassword) {
         QueryWrapper<User> wrapper = new QueryWrapper<>();
         wrapper.lambda()
diff --git a/src/main/java/com/boying/controller/ViolationTypeController.java b/src/main/java/com/boying/controller/ViolationTypeController.java
index 9db1efc..3d05cce 100644
--- a/src/main/java/com/boying/controller/ViolationTypeController.java
+++ b/src/main/java/com/boying/controller/ViolationTypeController.java
@@ -6,17 +6,21 @@
 import com.boying.entity.ViolationType;
 import com.boying.service.ViolationTypeService;
 import io.swagger.models.auth.In;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
 @RestController
 @RequestMapping("ffzf/violationtype")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/violationtype" , name = "杩濈珷绫诲瀷鎺ュ彛" )
 public class ViolationTypeController {
 
     private final ViolationTypeService violationTypeService;
 
     @PostMapping("/findPage")
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
     public Object findPage(Page page) {
         QueryWrapper<ViolationType> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -25,23 +29,27 @@
     }
 
     @PostMapping("/save")
+    @Operation(summary = "鏂板杩濈珷绫诲瀷" , description = "鏂板杩濈珷绫诲瀷" )
     public Object save(ViolationType violationType) {
         violationTypeService.saveOrUpdate(violationType);
         return R.ok("淇濆瓨鎴愬姛");
     }
 
     @GetMapping("/{id}")
+    @Operation(summary = "鏍规嵁id鏌ヨ" , description = "鏍规嵁id鏌ヨ" )
     public Object getObj(@PathVariable Integer id) {
         return R.ok(violationTypeService.getById(id));
     }
 
     @PostMapping("/delete")
+    @Operation(summary = "鍒犻櫎杩濈珷绫诲瀷" , description = "鍒犻櫎杩濈珷绫诲瀷" )
     public Object delete(Long id) {
         violationTypeService.removeById(id);
         return R.ok("鍒犻櫎鎴愬姛");
     }
 
     @PostMapping("/findAll")
+    @Operation(summary = "鏌ヨ鎵�鏈�" , description = "鏌ヨ鎵�鏈�" )
     public Object findAll() {
         return R.ok(violationTypeService.list());
     }
diff --git a/src/main/java/com/boying/controller/WhiteListController.java b/src/main/java/com/boying/controller/WhiteListController.java
index 31d5e1a..4869fb2 100644
--- a/src/main/java/com/boying/controller/WhiteListController.java
+++ b/src/main/java/com/boying/controller/WhiteListController.java
@@ -8,6 +8,8 @@
 import com.boying.entity.WhiteList;
 import com.boying.service.ParkService;
 import com.boying.service.WhiteListService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -17,12 +19,14 @@
 @RestController
 @RequestMapping("ffzf/whiteList")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/whiteList" , name = "鐧藉悕鍗曟帴鍙�" )
 public class WhiteListController{
 
     private final WhiteListService whiteListService;
     private final ParkService parkService;
 
     @PostMapping("/findPage")
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
     public Object findPage(Page page, String carNo) {
         QueryWrapper<WhiteList> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -38,6 +42,7 @@
     }
 
     @PostMapping("/findPageNew")
+    @Operation(summary = "鍒嗛〉鏌ヨ锛堟柊锛�" , description = "鍒嗛〉鏌ヨ锛堟柊锛�" )
     public Object findPageNew(Page page, String carNo) {
         QueryWrapper<WhiteList> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -64,12 +69,14 @@
     }
 
     @PostMapping("/save")
+    @Operation(summary = "鏂板鐧藉悕鍗�" , description = "鏂板鐧藉悕鍗�" )
     public Object save(WhiteList whiteList) {
         whiteListService.saveOrUpdate(whiteList);
         return R.ok("淇濆瓨鎴愬姛");
     }
 
     @PostMapping("/delete")
+    @Operation(summary = "鍒犻櫎鐧藉悕鍗�" , description = "鍒犻櫎鐧藉悕鍗�" )
     public Object delete(Long id) {
         whiteListService.removeById(id);
         return R.ok("鍒犻櫎鎴愬姛");
diff --git a/src/main/java/com/boying/controller/car/MqttSample.java b/src/main/java/com/boying/controller/car/MqttSample.java
new file mode 100644
index 0000000..8c05fd7
--- /dev/null
+++ b/src/main/java/com/boying/controller/car/MqttSample.java
@@ -0,0 +1,66 @@
+package com.boying.controller.car;
+
+import org.eclipse.paho.client.mqttv3.*;
+import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName MqttSample.java
+ * @Description TODO
+ * @createTime 2024骞�03鏈�19鏃� 16:56:00
+ */
+public class MqttSample {
+
+    public static void main(String[] args) throws MqttException{
+        MqttSample client = new MqttSample();
+        client.start();
+    }
+    //MQTT瀹夎鐨勬湇鍔″櫒鍦板潃鍜岀鍙e彿锛堟湰鏈虹殑ip锛�
+    public static final String HOST = "tcp://39.96.92.240:9092";
+    //瀹氫箟涓�涓富棰�
+    public static final String TOPIC = "/device/message/up/keep_alive";
+    //瀹氫箟MQTT鐨処D锛屽彲浠ュ湪MQTT鏈嶅姟閰嶇疆涓寚瀹�
+    private static final String clientid = "client-2";
+    private MqttClient client;
+    private MqttConnectOptions options;
+    private String userName = "mqtt";
+    private String passWord = "mqtt";
+
+//    private ScheduledExecutorService scheduler;
+
+    private void start() {
+        try {
+            // host涓轰富鏈哄悕锛宑lientid鍗宠繛鎺QTT鐨勫鎴风ID锛屼竴鑸互鍞竴鏍囪瘑绗﹁〃绀猴紝MemoryPersistence璁剧疆clientid鐨勪繚瀛樺舰寮忥紝榛樿涓轰互鍐呭瓨淇濆瓨
+            client = new MqttClient(HOST, clientid, new MemoryPersistence());
+            // MQTT鐨勮繛鎺ヨ缃�
+            options = new MqttConnectOptions();
+            // 璁剧疆鏄惁娓呯┖session,杩欓噷濡傛灉璁剧疆涓篺alse琛ㄧず鏈嶅姟鍣ㄤ細淇濈暀瀹㈡埛绔殑杩炴帴璁板綍锛岃繖閲岃缃负true琛ㄧず姣忔杩炴帴鍒版湇鍔″櫒閮戒互鏂扮殑韬唤杩炴帴
+            options.setCleanSession(false);
+            // 璁剧疆杩炴帴鐨勭敤鎴峰悕
+            options.setUserName(userName);
+            // 璁剧疆杩炴帴鐨勫瘑鐮�
+            options.setPassword(passWord.toCharArray());
+            // 璁剧疆瓒呮椂鏃堕棿 鍗曚綅涓虹
+            options.setConnectionTimeout(10);
+            // 璁剧疆浼氳瘽蹇冭烦鏃堕棿 鍗曚綅涓虹 鏈嶅姟鍣ㄤ細姣忛殧1.5*20绉掔殑鏃堕棿鍚戝鎴风鍙戦�佷釜娑堟伅鍒ゆ柇瀹㈡埛绔槸鍚﹀湪绾匡紝浣嗚繖涓柟娉曞苟娌℃湁閲嶈繛鐨勬満鍒�
+            options.setKeepAliveInterval(20);
+            // 璁剧疆鍥炶皟,client.setCallback灏卞彲浠ヨ皟鐢≒ushCallback绫讳腑鐨刴essageArrived()鏂规硶
+            client.setCallback(new PushCallback());
+            MqttTopic topic = client.getTopic(TOPIC);
+
+            int qos = 2;
+
+            //setWill鏂规硶锛屽鏋滈」鐩腑闇�瑕佺煡閬撳鎴风鏄惁鎺夌嚎鍙互璋冪敤璇ユ柟娉曘�傝缃渶缁堢鍙g殑閫氱煡娑堟伅
+            options.setWill(topic, "This is yizhu...".getBytes(), qos, true);
+            client.connect(options);
+            //璁㈤槄娑堟伅
+            int[] Qos  = {qos};
+            String[] topic1 = {TOPIC};
+            client.subscribe(topic1, Qos);
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/src/main/java/com/boying/controller/car/MqttSample2.java b/src/main/java/com/boying/controller/car/MqttSample2.java
new file mode 100644
index 0000000..4be9c4f
--- /dev/null
+++ b/src/main/java/com/boying/controller/car/MqttSample2.java
@@ -0,0 +1,69 @@
+package com.boying.controller.car;
+
+import org.eclipse.paho.client.mqttv3.MqttClient;
+import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
+import org.eclipse.paho.client.mqttv3.MqttException;
+import org.eclipse.paho.client.mqttv3.MqttTopic;
+import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName MqttSample.java
+ * @Description TODO
+ * @createTime 2024骞�03鏈�19鏃� 16:56:00
+ */
+public class MqttSample2 {
+
+    public static void main(String[] args) throws MqttException{
+        MqttSample2 client = new MqttSample2();
+        client.start();
+    }
+    //MQTT瀹夎鐨勬湇鍔″櫒鍦板潃鍜岀鍙e彿锛堟湰鏈虹殑ip锛�
+    public static final String HOST = "tcp://39.96.92.240:9092";
+    //瀹氫箟涓�涓富棰�
+    public static final String TOPIC = "/device/message/up/ivs_result";
+    //瀹氫箟MQTT鐨処D锛屽彲浠ュ湪MQTT鏈嶅姟閰嶇疆涓寚瀹�
+    private static final String clientid = "client-3";
+    private MqttClient client;
+    private MqttConnectOptions options;
+    private String userName = "mqtt";
+    private String passWord = "mqtt";
+
+//    private ScheduledExecutorService scheduler;
+
+    private void start() {
+        try {
+            // host涓轰富鏈哄悕锛宑lientid鍗宠繛鎺QTT鐨勫鎴风ID锛屼竴鑸互鍞竴鏍囪瘑绗﹁〃绀猴紝MemoryPersistence璁剧疆clientid鐨勪繚瀛樺舰寮忥紝榛樿涓轰互鍐呭瓨淇濆瓨
+            client = new MqttClient(HOST, clientid, new MemoryPersistence());
+            // MQTT鐨勮繛鎺ヨ缃�
+            options = new MqttConnectOptions();
+            // 璁剧疆鏄惁娓呯┖session,杩欓噷濡傛灉璁剧疆涓篺alse琛ㄧず鏈嶅姟鍣ㄤ細淇濈暀瀹㈡埛绔殑杩炴帴璁板綍锛岃繖閲岃缃负true琛ㄧず姣忔杩炴帴鍒版湇鍔″櫒閮戒互鏂扮殑韬唤杩炴帴
+            options.setCleanSession(false);
+            // 璁剧疆杩炴帴鐨勭敤鎴峰悕
+            options.setUserName(userName);
+            // 璁剧疆杩炴帴鐨勫瘑鐮�
+            options.setPassword(passWord.toCharArray());
+            // 璁剧疆瓒呮椂鏃堕棿 鍗曚綅涓虹
+            options.setConnectionTimeout(10);
+            // 璁剧疆浼氳瘽蹇冭烦鏃堕棿 鍗曚綅涓虹 鏈嶅姟鍣ㄤ細姣忛殧1.5*20绉掔殑鏃堕棿鍚戝鎴风鍙戦�佷釜娑堟伅鍒ゆ柇瀹㈡埛绔槸鍚﹀湪绾匡紝浣嗚繖涓柟娉曞苟娌℃湁閲嶈繛鐨勬満鍒�
+            options.setKeepAliveInterval(20);
+            // 璁剧疆鍥炶皟,client.setCallback灏卞彲浠ヨ皟鐢≒ushCallback绫讳腑鐨刴essageArrived()鏂规硶
+            client.setCallback(new PushCallback());
+            MqttTopic topic = client.getTopic(TOPIC);
+
+            int qos = 2;
+
+            //setWill鏂规硶锛屽鏋滈」鐩腑闇�瑕佺煡閬撳鎴风鏄惁鎺夌嚎鍙互璋冪敤璇ユ柟娉曘�傝缃渶缁堢鍙g殑閫氱煡娑堟伅
+            options.setWill(topic, "This is yizhu...".getBytes(), qos, true);
+            client.connect(options);
+            //璁㈤槄娑堟伅
+            int[] Qos  = {qos};
+            String[] topic1 = {TOPIC};
+            client.subscribe(topic1, Qos);
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/src/main/java/com/boying/controller/car/PlateServlet2.java b/src/main/java/com/boying/controller/car/PlateServlet2.java
index 302f3a5..f9f294e 100644
--- a/src/main/java/com/boying/controller/car/PlateServlet2.java
+++ b/src/main/java/com/boying/controller/car/PlateServlet2.java
@@ -16,6 +16,8 @@
 import com.google.gson.JsonParser;
 
 import com.sun.media.jfxmedia.track.Track;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -33,6 +35,7 @@
 import java.nio.charset.StandardCharsets;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.Duration;
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
 import java.util.Base64;
@@ -44,8 +47,9 @@
  * Servlet implementation class PlateServlet
  */
 @Controller
-@RequestMapping("/car2")
+@RequestMapping("/ffzf/car2")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/car3" , name = "娉婅溅娴佺▼鎺ュ彛" )
 public class PlateServlet2 extends HttpServlet {
     private static final long serialVersionUID = 1L;
     @Value("${ffpark.logPath}")
@@ -60,6 +64,7 @@
     private final TicketService ticketService;
     private final CostRuleService costRuleService;
     private final WhiteListService whiteListService;
+    private final OutParkLogService outParkLogService;
     private final String LEDURL = "http://192.168.31.212:9988/LedShow/IGetResultDataAllLine";
 
     /**
@@ -120,20 +125,41 @@
         out.close();
     }
 
+//    protected void easyOpen(HttpServletRequest request, HttpServletResponse response) throws IOException {
+//        response.setContentType("text/json");
+//        PrintWriter out = response.getWriter();
+//        out.println("{\"Response_AlarmInfoPlate\":{\"info\":\"ok\",\"content\":\"...\",\"is_pay\":\"true\",\"ivs_ioctrl\":{\"delay\":800,\"io\":0,\"value\":2}}}");
+//        out.flush();
+//        out.close();
+//    }
+
     protected void easyOpen(HttpServletRequest request, HttpServletResponse response) throws IOException {
         response.setContentType("text/json");
         PrintWriter out = response.getWriter();
-        out.println("{\"Response_AlarmInfoPlate\":{\"info\":\"ok\",\"content\":\"...\",\"is_pay\":\"true\"}}");
+        out.println("{\"Response_AlarmInfoPlate\":{\"ivs_ioctrl\":{\"delay\":1000,\"io\":0,\"value\":2}}}");
+        out.flush();
+        out.close();
+    }
+
+    protected void easyNoOpen(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        response.setContentType("text/json");
+        PrintWriter out = response.getWriter();
+        out.println("{\"Response_AlarmInfoPlate\":{\"info\":\"error\",\"content\":\"...\",\"is_pay\":\"false\"}}");
         out.flush();
         out.close();
     }
 
     @PostMapping("/status")
+    @Operation(summary = "鐩告満蹇冭烦鎺ュ彛" , description = "鐩告満蹇冭烦鎺ュ彛" )
     public void heart(String serialno,HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
         Barrier barrier = barrierService.findByCode(serialno);
-        Park park = parkService.getById(barrier.getParkId());
-        String redis = redisTemplate.opsForValue().get("park_up_" + park.getId());
+        Park park = parkService.getOneById(barrier.getParkId());
+        //Park park = parkService.getById(barrier.getParkId());
+        //String redis = redisTemplate.opsForValue().get("park_up_" + park.getId());
         String redisnum = redisTemplate.opsForValue().get("car_park_" + park.getId());
+        if(StringUtils.isBlank(redisnum)){
+            redisnum = "0";
+        }
         if(barrier!=null){
             if(barrier.getType2()==1){
                 //寰呭紑闂�
@@ -145,9 +171,11 @@
                     int i = Integer.parseInt(redisnum);
                     i--;
                     if(i<0){
+                        String s= "2."+barrier.getCarNo()+"闂告満鎵嬪姩鍚姩锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
                         redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS);
                         redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
                     }else {
+                        String s= "2."+barrier.getCarNo()+"闂告満鎵嬪姩鍚姩锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
                         redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS);
                         redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
                     }
@@ -158,31 +186,52 @@
                 barrier.setStatus(0);
                 barrier.setUpdateTime(LocalDateTime.now());
                 barrierService.saveOrUpdate(barrier);
+
+                String jsonValue = JSON.toJSONString(barrier);
+                redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue);
                 easyOpen(request,response);
             }else {
                 //涓嶉渶寮�闂�
-                barrier.setStatus(0);
-                barrier.setUpdateTime(LocalDateTime.now());
-                barrierService.saveOrUpdate(barrier);
-                OutPark outPark = outParkService.count4(barrier.getId());
-                if(outPark!=null){
-                    if(barrier.getType() == 0){
-                        int i = Integer.parseInt(redisnum);
-                        i--;
-                        if(i<0){
-                            redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS);
-                            redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
-                        }else {
-                            redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS);
-                            redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
+                LocalDateTime now = LocalDateTime.now();
+                LocalDateTime updateTime = barrier.getUpdateTime();
+                Duration duration = Duration.between(updateTime,now);
+                long minutes = duration.toMinutes();
+                if(minutes>=2){
+                    barrier.setStatus(0);
+                    barrier.setUpdateTime(LocalDateTime.now());
+                    barrierService.saveOrUpdate(barrier);
+                }
+
+                String jsonValue = JSON.toJSONString(barrier);
+                redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue);
+                if(barrier.getType() == 0){
+                    OutPark outPark = outParkService.count4(barrier.getId());
+                    if(outPark!=null){
+                        if(barrier.getType() == 0){
+                            int i = Integer.parseInt(redisnum);
+                            i--;
+                            if(i<0){
+                                String s= "2."+outPark.getCarNo()+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+                                redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS);
+                                redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
+                            }else {
+                                String s= "2."+outPark.getCarNo()+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+                                redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS);
+                                redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
+                            }
                         }
+                        outPark.setStatus2(1);
+                        outParkService.saveOrUpdate(outPark);
+                        easyOpen(request,response);
+                        OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId());
+                        byOutPark.setOpenTime(LocalDateTime.now());
+                        outParkLogService.saveOrUpdate(byOutPark);
+                        enterParkService.deleteByCarNo(outPark.getCarNo(), barrier.getParkId());
+                        redisTemplate.delete("outPark-"+outPark.getBarrierId());
                     }
-                    outPark.setStatus2(1);
-                    outParkService.saveOrUpdate(outPark);
-                    easyOpen(request,response);
                 }
                 if(barrier.getType() == 1){
-                    boolean in = barrierService.getDateDifIn(barrier.getId());
+                    boolean in = barrierService.getDateDifIn(park.getId());
                     if(in){
                         inLedShowDefault(park.getId(),request,response);
                     }
@@ -194,12 +243,15 @@
                 }
             }
 
+        }else {
+            easyNoOpen(request,response);
         }
     }
     /**
      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
      */
     @PostMapping("/PlateServlet")
+    @Operation(summary = "杞﹁締璇嗗埆鎺ュ彛" , description = "杞﹁締璇嗗埆鎺ュ彛" )
     protected void info(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         String s= "";
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
@@ -261,29 +313,31 @@
                     s+="鏌ヨ閬撻椄涓虹┖\n";
                 }else{
                     if(barrier.getType()==0){
+                        easyOpen(request,response);
                         //noOpen(request,response);
-                        outPark(license, barrier.getId(), barrier.getParkId(),request,response);
-                        s+=license+"-淇濆瓨鍑哄満璁板綍\n";
+//                        outPark(license, barrier.getId(), barrier.getParkId(),request,response);
+//                        s+=license+"-淇濆瓨鍑哄満璁板綍\n";
                     }else{
-                        String num = redisTemplate.opsForValue().get("car_park_" +  barrier.getParkId());
-                        if(StringUtils.isBlank(num)){
-                            num = "0";
-                            redisTemplate.opsForValue().set("car_park_" + barrier.getParkId(),num,30, TimeUnit.DAYS);
-                            redisTemplate.opsForValue().set("park_up_" + barrier.getParkId(),"true",30, TimeUnit.DAYS);
-                        }
-                        Park byId = parkService.getById(barrier.getParkId());
-                        if(Integer.parseInt(num) >= byId.getNum() ){
-                            //led鏄剧ず
-                            inLedFullShow(code, license,barrier.getParkId(),request,response);
-                        }else {
-                            //led鏄剧ず
-                            inLedShow(code, license,barrier.getParkId(),request,response);
-                            enterPark(license,barrier.getId(),barrier.getParkId());
-                            s+=license+"-淇濆瓨鍏ュ満璁板綍\n";
-                        }
+                        easyOpen(request,response);
+//                        String num = redisTemplate.opsForValue().get("car_park_" +  barrier.getParkId());
+//                        if(StringUtils.isBlank(num)){
+//                            num = "0";
+//                            redisTemplate.opsForValue().set("car_park_" + barrier.getParkId(),num,30, TimeUnit.DAYS);
+//                            redisTemplate.opsForValue().set("park_up_" + barrier.getParkId(),"true",30, TimeUnit.DAYS);
+//                        }
+//                        Park byId = parkService.getById(barrier.getParkId());
+//                        if(Integer.parseInt(num) >= byId.getNum() ){
+//                            //led鏄剧ず
+//                            inLedFullShow(code, license,barrier.getParkId(),request,response);
+//                        }else {
+//                            //led鏄剧ず
+//                            inLedShow(code, license,barrier.getParkId(),request,response);
+//                            enterPark(license,barrier.getId(),barrier.getParkId());
+//                            s+=license+"-淇濆瓨鍏ュ満璁板綍\n";
+//                        }
                     }
                 }
-                writeTxt(s);
+               // writeTxt(s);
             }while(false);
         }
         catch (Exception e) {
@@ -346,6 +400,8 @@
             enterPark.setStatus(1);//鍙戠幇鏈夎繚绔�
         }
         enterParkService.saveOrUpdate(enterPark);
+        String jsonValue = JSON.toJSONString(enterPark);
+        redisTemplate.opsForValue().set("enterPark_dif_"+ parkId, jsonValue);
 
         Barrier barrier = barrierService.getById(barrierId);
         barrier.setType2(1);
@@ -403,6 +459,8 @@
                     byCarNoAndBarrierId.setStatus(1);
                     byCarNoAndBarrierId.setStatus2(1);
                     outParkService.saveOrUpdate(byCarNoAndBarrierId);
+                    String jsonValue = JSON.toJSONString(byCarNoAndBarrierId);
+                    redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
                     return 0.0;
                 }else{
                     if(w.getParkIds()!=null){
@@ -417,6 +475,8 @@
                                     byCarNoAndBarrierId.setStatus(1);
                                     byCarNoAndBarrierId.setStatus2(1);
                                     outParkService.saveOrUpdate(byCarNoAndBarrierId);
+                                    String jsonValue = JSON.toJSONString(byCarNoAndBarrierId);
+                                    redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
                                     return 0.0;
                                 }
                             }
@@ -427,10 +487,14 @@
         }
         if(outPark.getPrice()==0&&outPark.getStatus3()==0){
             System.out.println(outPark.getCarNo()+"璇ヨ溅涓嶉渶瑕佺即璐�");
+            String jsonValue = JSON.toJSONString(outPark);
+            redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
             outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,0);
         }else {
             //闇�瑕佺即璐规垨鑰呮湁杩濈珷
             System.out.println(outPark.getCarNo()+"璇ヨ溅闇�瑕佺即璐�"+outPark.getPrice());
+            String jsonValue = JSON.toJSONString(outPark);
+            redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
             outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,1);
         }
         barrierService.saveOrUpdate(barrier);
diff --git a/src/main/java/com/boying/controller/car/PlateServlet3.java b/src/main/java/com/boying/controller/car/PlateServlet3.java
index 9cde223..7c4822d 100644
--- a/src/main/java/com/boying/controller/car/PlateServlet3.java
+++ b/src/main/java/com/boying/controller/car/PlateServlet3.java
@@ -1,1004 +1,1004 @@
-package com.boying.controller.car;
-
-import cn.hutool.http.HttpRequest;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-import com.boying.common.R;
-import com.boying.common.SystemConfigProperties;
-import com.boying.entity.*;
-import com.boying.service.*;
-import com.boying.util.DateUtilOther;
-import com.boying.util.FileUtil;
-import com.boying.util.RedisJsonUtil;
-import com.boying.util.StringUtil;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-import ledshow.CodeUtil;
-import ledshow.LedBean;
-import ledshow.ResultData;
-import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.*;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.time.Duration;
-import java.time.LocalDateTime;
-import java.time.ZoneOffset;
-import java.util.Base64;
-import java.util.Date;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-
-
-/**
- * Servlet implementation class PlateServlet
- */
-@Controller
-@RequestMapping("/ffzf/car")
-@RequiredArgsConstructor
-public class PlateServlet3 extends HttpServlet {
-    private static final long serialVersionUID = 1L;
-    private final SystemConfigProperties systemConfigProperties;
-    private final StringRedisTemplate redisTemplate;
-    private final ParkService parkService;
-    private final OutParkService outParkService;
-    private final EnterParkService enterParkService;
-    private final BarrierService barrierService;
-    private final TicketService ticketService;
-    private final CostRuleService costRuleService;
-    private final WhiteListService whiteListService;
-    private final FileInfoService fileInfoService;
-    private final TicketBlackService ticketBlackService;
-    private final OutParkLogService outParkLogService;
-   // private final RedisJsonUtil redisJsonUtil;
-    private final String LEDURL = "http://192.168.31.212:9988/LedShow/IGetResultDataAllLine";
-
-    /**
-     * 鍥炲寮�闂�
-     */
-    protected void open(HttpServletRequest request, HttpServletResponse response,String data) throws ServletException, IOException {
-        response.setContentType("text/json");
-        PrintWriter out = response.getWriter();
-        String aa = "{" +
-                "\"Response_AlarmInfoPlate\": {" +
-                "\"info\":\"ok\"," +
-                "\"is_pay\":\"true\"," +
-                "\"serialData\" :[" +
-                "{" +
-                "\"serialChannel\":0," +
-                "\"data\" : \"" + data + "\"," +
-                "\"dataLen\" :" + data.length() +
-                "}" +
-                "]" +
-                "}" +
-                "}";
-        out.println(aa);
-        out.flush();
-        out.close();
-    }
-
-
-    //杞爜
-    public static String deCode(String str) {
-        try {
-            byte[] b = str.getBytes("UTF-8");//锟斤拷锟斤拷
-            String sa = new String(b);//锟斤拷锟斤拷:锟斤拷什么锟街凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟绞裁达拷址锟斤拷锟斤拷锟斤拷锟�
-            //String sa = new String(str.getBytes());
-
-            return sa;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return "";
-        }
-    }
-
-    protected void noOpen(HttpServletRequest request, HttpServletResponse response,String data) throws IOException {
-        response.setContentType("text/json");
-        PrintWriter out = response.getWriter();
-        String aa = "{" +
-                "\"Response_AlarmInfoPlate\": {" +
-                "\"serialData\" :[" +
-                "{" +
-                "\"serialChannel\":0," +
-                "\"data\" : \"" + data + "\"," +
-                "\"dataLen\" :" + data.length() +
-                "}" +
-                "]" +
-                "}" +
-                "}";
-        out.println(aa);
-        out.flush();
-        out.close();
-    }
-
-    protected void easyOpen(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        response.setContentType("text/json");
-        PrintWriter out = response.getWriter();
-        out.println("{\"Response_AlarmInfoPlate\":{\"info\":\"ok\",\"content\":\"...\",\"is_pay\":\"true\"}}");
-        out.flush();
-        out.close();
-    }
-
-    protected void easyNoOpen(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        response.setContentType("text/json");
-        PrintWriter out = response.getWriter();
-        out.println("{\"Response_AlarmInfoPlate\":{\"info\":\"error\",\"content\":\"...\",\"is_pay\":\"false\"}}");
-        out.flush();
-        out.close();
-    }
-
-    @PostMapping("/status")
-    public void heart(String serialno,HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
-        Barrier barrier = barrierService.findByCode(serialno);
-        Park park = parkService.getOneById(barrier.getParkId());
-       // Park park = parkService.getById(barrier.getParkId());
-       // String redis = redisTemplate.opsForValue().get("park_up_" + park.getId());
-        String redisnum = redisTemplate.opsForValue().get("car_park_" + park.getId());
-        if(StringUtils.isBlank(redisnum)){
-            redisnum = "0";
-        }
-        if(barrier!=null){
-            if(barrier.getType2()==1){
-                //寰呭紑闂�
-                if(barrier.getType() == 1){
-                    int i = Integer.parseInt(redisnum);
-                    i++;
-                    redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS);
-                }else if(barrier.getType() == 0){
-                    int i = Integer.parseInt(redisnum);
-                    i--;
-                    if(i<0){
-                        String s= "2."+barrier.getCarNo()+"闂告満鎵嬪姩鍚姩锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
-                        writeTxt2(s);
-                        redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS);
-                        redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
-                    }else {
-                        String s= "2."+barrier.getCarNo()+"闂告満鎵嬪姩鍚姩锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
-                        writeTxt2(s);
-                        redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS);
-                        redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
-                    }
-
-                }
-                barrier.setType2(0);
-                barrier.setUpdateTime(LocalDateTime.now());
-                barrier.setStatus(0);
-                barrier.setUpdateTime(LocalDateTime.now());
-                barrierService.saveOrUpdate(barrier);
-
-                String jsonValue = JSON.toJSONString(barrier);
-                redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue);
-                easyOpen(request,response);
-            }else {
-                //涓嶉渶寮�闂�
-                LocalDateTime now = LocalDateTime.now();
-                LocalDateTime updateTime = barrier.getUpdateTime();
-                Duration duration = Duration.between(updateTime,now);
-                long minutes = duration.toMinutes();
-                if(minutes>=2){
-                    barrier.setStatus(0);
-                    barrier.setUpdateTime(LocalDateTime.now());
-                    barrierService.saveOrUpdate(barrier);
-                }
-
-                String jsonValue = JSON.toJSONString(barrier);
-                redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue);
-                if(barrier.getType() == 0){
-                    OutPark outPark = outParkService.count4(barrier.getId());
-                    if(outPark!=null){
-                        if(barrier.getType() == 0){
-                            int i = Integer.parseInt(redisnum);
-                            i--;
-                            if(i<0){
-                                String s= "2."+outPark.getCarNo()+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
-                                writeTxt2(s);
-                                redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS);
-                                redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
-                            }else {
-                                String s= "2."+outPark.getCarNo()+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
-                                writeTxt2(s);
-                                redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS);
-                                redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
-                            }
-                        }
-                        outPark.setStatus2(1);
-                        outParkService.saveOrUpdate(outPark);
-                        easyOpen(request,response);
-                        OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId());
-                        byOutPark.setOpenTime(LocalDateTime.now());
-                        outParkLogService.saveOrUpdate(byOutPark);
-                        enterParkService.deleteByCarNo(outPark.getCarNo(), barrier.getParkId());
-                        redisTemplate.delete("outPark-"+outPark.getBarrierId());
-                    }
-                }
-                if(barrier.getType() == 1){
-                    boolean in = barrierService.getDateDifIn(park.getId());
-                    if(in){
-                        inLedShowDefault(park.getId(),request,response);
-                    }
-                }else if(barrier.getType() == 0){
-                    boolean out = barrierService.getDateDifOut(barrier.getId());
-                    if(out){
-                        outLedShowDefault(request,response);
-                    }
-                }
-            }
-
-        }else {
-            easyNoOpen(request,response);
-        }
-    }
-    /**
-     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
-     */
-    @PostMapping("/PlateServlet")
-    protected void info(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-        String s= "";
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
-        BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream(),"UTF-8"));
-        String str = "";
-        String lineStr = "";
-        FileInfo fileInfo = null;
-        while((str = reader.readLine()) != null){
-            lineStr += str;
-        }
-       // System.out.println("鑾峰彇鍒扮殑閬撻椄鎺ㄩ�佹暟鎹负锛�"+lineStr);
-
-        JSONObject jsonObject1 = JSON.parseObject(lineStr);
-        JSONObject alarmInfoPlate = jsonObject1.getJSONObject("AlarmInfoPlate");
-        JSONObject result = alarmInfoPlate.getJSONObject("result");
-        JSONObject plateResult = result.getJSONObject("PlateResult");
-        String carNo = plateResult.get("license").toString();
-        String image = plateResult.get("imageFile").toString();
-        String code = alarmInfoPlate.get("serialno").toString();
-
-        try {
-            JsonParser parser=new JsonParser();
-            do {
-                JsonObject jsonObject=(JsonObject) parser.parse(lineStr);
-                if( jsonObject == null || jsonObject.isJsonNull() ) {
-                    break;
-                }
-
-                JsonObject jsonInfoPlate = jsonObject.get("AlarmInfoPlate").getAsJsonObject();
-                if( jsonInfoPlate == null || jsonInfoPlate.isJsonNull() ) {
-                    break;
-                }
-
-                JsonObject jsonResult = jsonInfoPlate.get("result").getAsJsonObject();
-                if( jsonResult == null || jsonResult.isJsonNull() ) {
-                    break;
-                }
-
-                JsonObject jsonPlateResult = jsonResult.get("PlateResult").getAsJsonObject();
-                if( jsonPlateResult == null || jsonPlateResult.isJsonNull() ) {
-                    break;
-                }
-
-                String license = jsonPlateResult.get("license").getAsString();//杞︾墝鍙�
-                if( license == null || license == "") {
-                    break;
-                }
-
-                String serialno = jsonInfoPlate.get("serialno").getAsString();//鎽勫儚鏈哄簭鍒楀彿
-                if( serialno == null || serialno == "" ) {
-                    break;
-                }
-
-
-                if(StringUtils.isNotBlank(image)){
-                    fileInfo = FileUtil.generateBase64StringToFile(image, 1,1);
-                    fileInfoService.save(fileInfo);
-                }
-
-
-                System.out.println("缂栧彿锛�"+serialno+"  璁惧璇嗗埆鍒颁簡锛�"+license);
-                String format = sdf.format(new Date());
-                s+= format+",杞︾墝鍙蜂负锛�"+license+",serialno涓猴細"+code+"  ";
-
-                Barrier barrier = barrierService.findByCode(code);
-                System.out.println("鏌ヨ鍒伴亾闂镐负锛�"+barrier);
-                if(barrier==null){
-                    s+="鏌ヨ閬撻椄涓虹┖\n";
-                    easyNoOpen(request,response);
-                }else{
-                    if(barrier.getType()==0){
-                        outPark(license, barrier.getId(), barrier.getParkId(),request,response,fileInfo);
-                        s+=license+"-淇濆瓨鍑哄満璁板綍\n";
-                    }else{
-                        String num = redisTemplate.opsForValue().get("car_park_" +  barrier.getParkId());
-                        if(StringUtils.isBlank(num)){
-                            num = "0";
-                            redisTemplate.opsForValue().set("car_park_" + barrier.getParkId(),num,30, TimeUnit.DAYS);
-                            redisTemplate.opsForValue().set("park_up_" + barrier.getParkId(),"true",30, TimeUnit.DAYS);
-                        }
-                        Park byId = parkService.getById(barrier.getParkId());
-                        if(Integer.parseInt(num) >= byId.getNum() ){
-                            //led鏄剧ず
-                            inLedFullShow(code, license,barrier.getParkId(),request,response);
-                        }else {
-                            //led鏄剧ず
-                            enterPark(license,barrier.getId(),barrier.getParkId(),fileInfo);
-                            inLedShow(code, license,barrier.getParkId(),request,response);
-                            s+=license+"-淇濆瓨鍏ュ満璁板綍\n";
-                        }
-                    }
-                }
-                writeTxt(s);
-            }while(false);
-        }
-        catch (Exception e) {
-            System.out.println("鏃犲叆鍦鸿褰�");
-            s+=" ,鏌ヨ鍦哄唴璁板綍寮傚父";
-            writeTxt(s);
-            easyNoOpen(request,response);
-        }
-    }
-
-    /**
-     * 鎵嬫満鍙峰叆鍦�
-     * @param
-     * @return
-     */
-    @PostMapping("/inParkByPhone" )
-    @ResponseBody
-    public Object inParkByPhone( EnterPark enterPark){
-        Barrier barrier = barrierService.getById(enterPark.getBarrierId());
-        if(barrier!=null){
-            String num = redisTemplate.opsForValue().get("car_park_" +  barrier.getParkId());
-            if(StringUtils.isBlank(num)){
-                num = "0";
-                redisTemplate.opsForValue().set("car_park_" + barrier.getParkId(),num,30, TimeUnit.DAYS);
-                redisTemplate.opsForValue().set("park_up_" + barrier.getParkId(),"true",30, TimeUnit.DAYS);
-            }
-            Park byId = parkService.getById(barrier.getParkId());
-            if(Integer.parseInt(num) >= byId.getNum() ){
-                return R.failed(null,"绂佹閫氳,杞︿綅宸叉弧");
-            }else {
-                QueryWrapper<EnterPark> wrapper2 = new QueryWrapper<>();
-                wrapper2.lambda()
-                        .eq(EnterPark::getBarrierId,barrier.getId())
-                        .orderByDesc(EnterPark::getCreateTime)
-                        .last(" limit 1");
-                EnterPark one = enterParkService.getOne(wrapper2);
-                if(one == null){
-                    return R.failed("鏈煡璇㈠埌杞﹁締瀛樺湪");
-                }else {
-                    if(one.getCarNo().equals("鏃犵墝杞�")){
-                        enterPark.setCreateTime(LocalDateTime.now());
-                        QueryWrapper<Ticket> wrapper = new QueryWrapper<>();
-                        wrapper.lambda()
-                                .eq(Ticket::getCarNo,enterPark.getCarNo())
-                                .eq(Ticket::getPayStatus,1);
-                        List<Ticket> tickets = ticketService.list(wrapper);
-                        if(tickets.size()>0){
-                            enterPark.setStatus(1);//鍙戠幇鏈夎繚绔�
-                        }
-                        enterPark.setIsPay(0);
-                        enterPark.setPrice(0);
-                        enterParkService.deleteByCarNo(enterPark.getCarNo(),enterPark.getParkId());
-                        enterParkService.save(enterPark);
-                        barrier.setType2(1);
-                        barrierService.updateById(barrier);
-                        return R.ok();
-                    }else {
-                        return R.failed("闈炴硶鎿嶄綔");
-                    }
-                }
-            }
-        }
-        return R.failed(null,"鏁版嵁寮傚父");
-    }
-
-    /**
-     * 鎵嬫満鍙峰嚭鍦�
-     * @param
-     * @return
-     */
-    @PostMapping("/outParkByPhone" )
-    @ResponseBody
-    public Object outParkByPhone(String code2,String carNo){
-        Barrier byCode2 = barrierService.findByCode2(code2);
-        QueryWrapper<EnterPark> wrapper =new QueryWrapper<>();
-        wrapper.lambda()
-                .eq(EnterPark::getParkId,byCode2.getParkId())
-                .eq(EnterPark::getCarNo,carNo);
-        EnterPark one = enterParkService.getOne(wrapper);
-        if(one != null){
-            double money = 0.0;
-            String toDayHrMinSec = null;
-            OutPark outPark = new OutPark();
-            outPark.setCarNo(carNo);
-            outPark.setParkId(one.getParkId());
-            outPark.setBarrierId(byCode2.getId());
-            outPark.setCreateTime(LocalDateTime.now());
-            outPark.setCode(System.currentTimeMillis()+"");
-            System.out.println("鍏ュ満璁板綍锛�"+one);
-            outPark.setEnterTime(one.getCreateTime());
-            outPark.setParkName(byCode2.getName());
-            if(outPark.getTime() > 0){
-                outPark.setTimeStr(DateUtilOther.millisToDayHrMinSec(new Double(outPark.getTime()).longValue()));
-            }else {
-                outPark.setTimeStr("涓嶈冻涓�鍒嗛挓");
-            }
-            try {
-                long l = outPark.getCreateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli() - one.getCreateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli();
-                outPark.setTime(l/(1000*60));
-                toDayHrMinSec = DateUtilOther.millisToDayHrMinSec(l/(1000*60));
-                money = costRuleService.getMoney(one.getParkId(), outPark.getEnterTime(), outPark.getCreateTime(), 1);
-
-                //鍏ュ満璁板綍淇濆瓨涓�涓�
-                if(one.getIsPay()==1){
-                    money = money - one.getPrice();
-                }else {
-                    one.setPrice(money);
-                    one.setIsPay(0);
-                    enterParkService.updateById(one);
-                }
-            } catch (ParseException e) {
-                e.printStackTrace();
-            }
-            outPark.setPrice(money);
-            outPark.setStatus3(findTicket(carNo));
-            outParkService.saveOrUpdate(outPark);
-            byCode2.setCarNo(carNo);
-            //led灞曠ず
-            if(toDayHrMinSec == null){
-                return R.failed("寮傚父璁板綍");
-            }
-            if(outPark.getPrice()==0&&outPark.getStatus3()==0){
-                System.out.println(outPark.getCarNo()+"璇ヨ溅涓嶉渶瑕佺即璐�");
-                String s= "1."+byCode2.getCarNo()+"璇ヨ溅涓嶉渶瑕佺即璐筡n";
-                writeTxt2(s);
-                byCode2.setType2(1);
-                barrierService.updateById(byCode2);
-                return R.ok(outPark);
-            }else {
-                //闇�瑕佺即璐规垨鑰呮湁杩濈珷
-                System.out.println(outPark.getCarNo()+"璇ヨ溅闇�瑕佺即璐�"+outPark.getPrice());
-                String s= "1."+byCode2.getCarNo()+"璇ヨ溅闇�瑕佺即璐筡n";
-                writeTxt2(s);
-                barrierService.updateById(byCode2);
-                return R.ok(outPark);
-            }
-
-        }else {
-            return R.failed("鏈煡璇㈠埌鍏ュ満璁板綍");
-        }
-    }
-
-
-    private void writeTxt( String txt)
-    {
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
-        try
-        {
-            FileWriter f = new FileWriter(systemConfigProperties.getLogPath()+sdf.format(new Date())+".txt",true);
-            BufferedWriter bw=new BufferedWriter(f);
-            bw.write(txt);
-            bw.newLine();
-            bw.close();
-        }
-        catch(Exception e)
-        {
-            System.out.println("鎵撳嵃閿欒");
-        }
-    }
-
-    private void writeTxt2( String txt)
-    {
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
-        try
-        {
-            FileWriter f = new FileWriter(systemConfigProperties.getLogPath()+sdf.format(new Date())+"LED.txt",true);
-            BufferedWriter bw=new BufferedWriter(f);
-            bw.write(txt);
-            bw.newLine();
-            bw.close();
-        }
-        catch(Exception e)
-        {
-            System.out.println("鎵撳嵃閿欒");
-        }
-    }
-
-
-
-
-    public void enterPark(String carNo,Integer barrierId,Integer parkId,FileInfo fileInfo) {
-        TicketBlack black = ticketBlackService.getByCarNo(carNo, 1);
-        if(black != null){
-            System.out.println("榛戝悕鍗曡溅杈�"+carNo);
-        }else {
-            enterParkService.deleteByCarNo(carNo,parkId);
-            EnterPark enterPark = new EnterPark();
-            enterPark.setIsPay(0);
-            enterPark.setPrice(0);
-            enterPark.setCarNo(carNo);
-            enterPark.setBarrierId(barrierId);
-            enterPark.setParkId(parkId);
-
-            QueryWrapper<Ticket> wrapper = new QueryWrapper<>();
-            wrapper.lambda()
-                    .eq(Ticket::getCarNo,enterPark.getCarNo())
-                    .eq(Ticket::getPayStatus,1);
-            List<Ticket> tickets = ticketService.list(wrapper);
-            if(tickets.size()>0){
-                enterPark.setStatus(1);//鍙戠幇鏈夎繚绔�
-            }
-            if(fileInfo != null){
-                enterPark.setImgId(fileInfo.getId());
-            }
-            enterParkService.saveOrUpdate(enterPark);
-            String jsonValue = JSON.toJSONString(enterPark);
-            redisTemplate.opsForValue().set("enterPark_dif_"+ parkId, jsonValue);
-
-        }
-    }
-
-    public double outPark(String carNo,Integer barrierId,Integer parkId,HttpServletRequest request, HttpServletResponse response,FileInfo fileInfo) throws ServletException, IOException {
-        double money = 0.0;
-        EnterPark enterPark = null;
-        String toDayHrMinSec = null;
-        OutPark outPark = new OutPark();
-        outPark.setCarNo(carNo);
-        outPark.setParkId(parkId);
-        outPark.setBarrierId(barrierId);
-        outPark.setCreateTime(LocalDateTime.now());
-        outPark.setCode(System.currentTimeMillis()+"");
-        List<EnterPark> byCarNo = enterParkService.findByCarNo(carNo,parkId);
-
-        if(byCarNo.size() == 0){
-            System.out.println(carNo+"鏈彂鐜板満鍐呰溅杈�");
-        }else{
-            enterPark = byCarNo.get(0);
-            System.out.println("鍏ュ満璁板綍锛�"+enterPark);
-            outPark.setEnterTime(enterPark.getCreateTime());
-            try {
-                long l = outPark.getCreateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli() - enterPark.getCreateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli();
-                outPark.setTime(l/(1000*60));
-                toDayHrMinSec = DateUtilOther.millisToDayHrMinSec(l/(1000*60));
-                money = costRuleService.getMoney(parkId, outPark.getEnterTime(), outPark.getCreateTime(), 1);
-
-                //鍏ュ満璁板綍淇濆瓨涓�涓�
-                if(enterPark.getIsPay() != null && enterPark.getIsPay()==1){
-                    money = money - enterPark.getPrice();
-                }else {
-                    enterPark.setPrice(money);
-                    enterPark.setIsPay(0);
-                    enterParkService.updateById(enterPark);
-                }
-            } catch (ParseException e) {
-                e.printStackTrace();
-            }
-
-        }
-        //outPark.setPrice(Double.valueOf(String.format("%.1f", money)));
-        outPark.setPrice(money);
-        outPark.setStatus3(findTicket(carNo));
-        if(fileInfo != null){
-            outPark.setImgId(fileInfo.getId());
-        }
-        outParkService.saveOrUpdate(outPark);
-        Barrier barrier =barrierService.getById(barrierId);
-        barrier.setCarNo(carNo);
-        //led灞曠ず
-        if(toDayHrMinSec == null){
-            toDayHrMinSec = "鍏ュ満璁板綍寮傚父,璇疯仈绯荤鐞嗗憳";
-        }
-        //鍒ゆ柇鏄惁鍦ㄧ櫧鍚嶅崟
-        QueryWrapper<WhiteList> wrapper = new QueryWrapper<>();
-        wrapper.lambda()
-                .eq(WhiteList::getCarNo,carNo);
-        List<WhiteList> all = whiteListService.list(wrapper);
-        if(all.size() >0){
-            for(WhiteList w : all){
-                if(w.getType()==0){
-                    outLedShowYueZu(barrier.getCarNo(),"鏈堢杞�",parkId,request,response,0);
-                    OutPark byCarNoAndBarrierId = outParkService.findByCarNoAndBarrierId(carNo, barrierId);
-                    byCarNoAndBarrierId.setStatus(2);
-                    byCarNoAndBarrierId.setStatus2(1);
-                    outParkService.saveOrUpdate(byCarNoAndBarrierId);
-                    barrierService.saveOrUpdate(barrier);
-                    String jsonValue2 = JSON.toJSONString(barrier);
-                    redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue2);
-                    String jsonValue = JSON.toJSONString(byCarNoAndBarrierId);
-                    redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
-                    return 0.0;
-                }else{
-                    if(StringUtils.isNotBlank(w.getParkIds())){
-                        if(w.getEndTime()!=null){
-                            String parkIds = w.getParkIds();
-                            String[] split = parkIds.split(",");
-                            for (String s : split) {
-                                int pid = Integer.parseInt(s);
-                                if(pid == outPark.getParkId() && System.currentTimeMillis()<w.getEndTime().getTime()){
-                                    outLedShowYueZu(barrier.getCarNo(),"鏈堢杞�",parkId,request,response,0);
-                                    OutPark byCarNoAndBarrierId = outParkService.findByCarNoAndBarrierId(carNo, barrierId);
-                                    byCarNoAndBarrierId.setStatus(2);
-                                    byCarNoAndBarrierId.setStatus2(1);
-                                    outParkService.saveOrUpdate(byCarNoAndBarrierId);
-                                    barrierService.saveOrUpdate(barrier);
-                                    String jsonValue2 = JSON.toJSONString(barrier);
-                                    redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue2);
-                                    String jsonValue = JSON.toJSONString(byCarNoAndBarrierId);
-                                    redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
-                                    return 0.0;
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        barrierService.saveOrUpdate(barrier);
-        String jsonValue2 = JSON.toJSONString(barrier);
-        redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue2);
-        if(outPark.getPrice()==0&&outPark.getStatus3()==0){
-            System.out.println(outPark.getCarNo()+"璇ヨ溅涓嶉渶瑕佺即璐�");
-            String s= "1."+barrier.getCarNo()+"璇ヨ溅涓嶉渶瑕佺即璐筡n";
-            writeTxt2(s);
-            String jsonValue = JSON.toJSONString(outPark);
-            redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
-            outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,0);
-        }else {
-            //闇�瑕佺即璐规垨鑰呮湁杩濈珷
-            System.out.println(outPark.getCarNo()+"璇ヨ溅闇�瑕佺即璐�"+outPark.getPrice());
-            String s= "1."+barrier.getCarNo()+"璇ヨ溅闇�瑕佺即璐筡n";
-            writeTxt2(s);
-            OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId());
-            byOutPark.setOutTime(outPark.getCreateTime());
-            byOutPark.setParkId(outPark.getParkId());
-            outParkLogService.saveOrUpdate(byOutPark);
-            String jsonValue = JSON.toJSONString(outPark);
-            redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
-            outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,1);
-        }
-        return money;
-    }
-
-    public int findTicket(String carNo){
-        QueryWrapper<Ticket> wrapper = new QueryWrapper<>();
-        wrapper.lambda()
-                .eq(Ticket::getCarNo,carNo)
-                .eq(Ticket::getPayStatus,1);
-        List<Ticket> tickets = ticketService.list(wrapper);
-        if(tickets.size()>0){
-            return 1;
-        }else{
-            return 0;
-        }
-    }
-
-
-    public void inLedShow(String ledId,String carNo,Integer parkId,HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-        TicketBlack black = ticketBlackService.getByCarNo(carNo, 1);
-        if(black != null){
-            LedBean ledBean = new LedBean();
-            ledBean.setcolor1(0);
-            ledBean.setcolor2(0);
-            ledBean.setcolor3(0);
-            ledBean.setcolor4(0);
-            ledBean.setcontent1(carNo);
-            ledBean.setcontent2("榛戝悕鍗曡溅杈�");
-            ledBean.setcontent3("绂佹椹跺叆");
-            ledBean.setcontent4("鑱旂郴绠$悊鍛�");
-            ledBean.setdisMode1(0);
-            ledBean.setdisMode2(0);
-            ledBean.setdisMode3(0);
-            ledBean.setdisMode4(0);
-            ledBean.setvoiceContent("榛戝悕鍗曡溅杈�"+carNo+",绂佹椹跺叆");
-            ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
-            byte[] dataX = new byte[resultData.getlenth()];
-            System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
-            String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
-            data1 = data1.replaceAll("\r\n", "");
-            noOpen(request,response,data1);
-        }else {
-            String num = redisTemplate.opsForValue().get("car_park_" +  parkId);
-            if(num == null){
-                num = "0";
-            }
-            Park byId = parkService.getById(parkId);
-            int n = Integer.parseInt(num)+1;
-            redisTemplate.opsForValue().set("car_park_" + parkId,Integer.toString(n),30, TimeUnit.DAYS);
-            int i = byId.getNum() - Integer.parseInt(num);
-            if(i<0){
-                i = 0;
-            }
-            String carType = "";
-            String carDay = "";
-            Barrier barrier = barrierService.findByCode(ledId);
-            WhiteList byCarNo = whiteListService.getByCarNo(carNo);
-            if(byCarNo == null){
-                carType = "涓存椂杞�";
-            }else {
-                if (byCarNo.getType() == 0){
-                    //鐧藉悕鍗曟案涔呰溅杈�
-                    carType = "鏈堢杞�";
-                }else {
-                    //鐧藉悕鍗曞浐瀹氬仠杞﹀満杞﹁締
-                    if(StringUtils.isNotBlank(byCarNo.getParkIds()) && byCarNo.getParkIds().contains(barrier.getParkId()+"")){
-                        carType = "鏈堢杞�";
-                        long l = (byCarNo.getEndTime().getTime() - byCarNo.getStartTime().getTime()) / (24 * 3600 * 1000);
-                        carDay = "鏈夋晥鏈熻繕鏈�"+l+"澶�";
-                    }else {
-                        carType = "涓存椂杞�";
-                    }
-                }
-            }
-            if(StringUtils.isBlank(carDay) && !carNo.equals("鏃犵墝杞�")){
-                carDay = "娆㈣繋鍏変复";
-            }else if(StringUtils.isBlank(carDay) && carNo.equals("鏃犵墝杞�")){
-                carDay = "鎷掔粷椹跺叆";
-            }
-
-            LedBean ledBean = new LedBean();
-            ledBean.setcolor1(0);
-            ledBean.setcolor2(0);
-            ledBean.setcolor3(0);
-            ledBean.setcolor4(0);
-            ledBean.setcontent1(carNo);
-            ledBean.setcontent2(carType);
-            ledBean.setcontent3(carDay);
-            ledBean.setcontent4("浣欎綅:"+i);
-            ledBean.setdisMode1(0);
-            ledBean.setdisMode2(0);
-            ledBean.setdisMode3(0);
-            ledBean.setdisMode4(0);
-            ledBean.setvoiceContent(carType+","+carNo+","+carDay);
-            ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
-            byte[] dataX = new byte[resultData.getlenth()];
-            System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
-            String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
-            data1 = data1.replaceAll("\r\n", "");
-
-            if(!carNo.equals("鏃犵墝杞�")){
-                open(request,response,data1);//鍏ュ満寮�闂�
-            }else {
-                noOpen(request,response,data1);
-            }
-        }
-    }
-
-    public void inLedFullShow(String ledId, String carNo, Integer parkId,HttpServletRequest request, HttpServletResponse response) throws IOException {
-        String carType = "";
-        String carDay = "";
-        Barrier barrier = barrierService.findByCode(ledId);
-        WhiteList byCarNo = whiteListService.getByCarNo(carNo);
-        if(byCarNo == null){
-            carType = "涓存椂杞�";
-        }else {
-            if (byCarNo.getType() == 0){
-                //鐧藉悕鍗曟案涔呰溅杈�
-                carType = "鏈堢杞�";
-            }else {
-                //鐧藉悕鍗曞浐瀹氬仠杞﹀満杞﹁締
-                if(StringUtils.isNotBlank(byCarNo.getParkIds()) && byCarNo.getParkIds().contains(barrier.getParkId()+"")){
-                    carType = "鏈堢杞�";
-                }else {
-                    carType = "涓存椂杞�";
-                }
-            }
-        }
-
-        LedBean ledBean = new LedBean();
-        ledBean.setcolor1(0);
-        ledBean.setcolor2(0);
-        ledBean.setcolor3(0);
-        ledBean.setcolor4(0);
-        ledBean.setcontent1(carNo);
-        ledBean.setcontent2(carType);
-        ledBean.setcontent3("杞︿綅宸叉弧");
-        ledBean.setcontent4("璇烽┒绂�");
-        ledBean.setdisMode1(0);
-        ledBean.setdisMode2(0);
-        ledBean.setdisMode3(0);
-        ledBean.setdisMode4(0);
-        ledBean.setvoiceContent("杞︿綅宸叉弧,璇烽┒绂�");
-        ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
-        byte[] dataX = new byte[resultData.getlenth()];
-        System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
-        String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
-        data1 = data1.replaceAll("\r\n", "");
-
-        noOpen(request,response,data1);//鍏ュ満寮�闂�
-    }
-
-    public void outLedShow(String ledId,String carNo,Double price,String timeStamp,Integer parkId,HttpServletRequest request, HttpServletResponse response,int type) throws ServletException, IOException {
-        String redisnum = redisTemplate.opsForValue().get("car_park_" + parkId);
-        Park park = parkService.getById(parkId);
-        LedBean ledBean = new LedBean();
-        ledBean.setcolor1(0);
-        ledBean.setcolor2(0);
-        ledBean.setcolor3(0);
-        ledBean.setcolor4(0);
-        ledBean.setcontent1(carNo);
-        ledBean.setcontent2("鍋滆溅"+timeStamp);
-        ledBean.setcontent3("浜よ垂"+price+"鍏�");
-        ledBean.setcontent4("绂佹闂潌");
-        ledBean.setdisMode1(0);
-        ledBean.setdisMode2(1);
-        ledBean.setdisMode3(1);
-        ledBean.setdisMode4(0);
-        ledBean.setvoiceContent(carNo+"鍋滆溅"+timeStamp+"浜よ垂"+price+"鍏�");
-        ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
-        byte[] dataX = new byte[resultData.getlenth()];
-        System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
-        String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
-        data1 = data1.replaceAll("\r\n", "");
-        if(type == 0){
-            if(carNo.equals("鏃犵墝杞�")){
-                noOpen(request,response,data1);
-            }else {
-                if(timeStamp.contains("璁板綍寮傚父")){
-                    OutPark by5min = outParkService.findBy5min(carNo, parkId, LocalDateTime.now());
-                    if(by5min != null){
-                        //寮�闂�
-                        open(request,response,data1);
-                        enterParkService.deleteByCarNo(carNo, parkId);
-                        redisTemplate.opsForValue().set("park_change_in_"+parkId,"true",1, TimeUnit.DAYS);
-                        int i = Integer.parseInt(redisnum);
-                        i--;
-                        if(i<0){
-                            String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�0\n";
-                            writeTxt2(s);
-                            redisTemplate.opsForValue().set("car_park_" + parkId,"0",30, TimeUnit.DAYS);
-                            redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
-                        }else {
-                            String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
-                            writeTxt2(s);
-                            redisTemplate.opsForValue().set("car_park_" + parkId,Integer.toString(i),30, TimeUnit.DAYS);
-                            redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
-                        }
-                    }else {
-                        noOpen(request,response,data1);
-                    }
-                }else {
-                    //寮�闂�
-                    open(request,response,data1);
-                    enterParkService.deleteByCarNo(carNo, parkId);
-                    redisTemplate.opsForValue().set("park_change_in_"+parkId,"true",1, TimeUnit.DAYS);
-                    int i = Integer.parseInt(redisnum);
-                    i--;
-                    if(i<0){
-                        String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�0\n";
-                        writeTxt2(s);
-                        redisTemplate.opsForValue().set("car_park_" + parkId,"0",30, TimeUnit.DAYS);
-                        redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
-                    }else {
-                        String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
-                        writeTxt2(s);
-                        redisTemplate.opsForValue().set("car_park_" + parkId,Integer.toString(i),30, TimeUnit.DAYS);
-                        redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
-                    }
-                }
-
-            }
-        }else {
-            noOpen(request,response,data1);
-        }
-
-    }
-
-    public void outLedShowYueZu(String carNo,String text,Integer parkId,HttpServletRequest request, HttpServletResponse response,int type) throws ServletException, IOException{
-        String redisnum = redisTemplate.opsForValue().get("car_park_" + parkId);
-        LedBean ledBean = new LedBean();
-        ledBean.setcolor1(0);
-        ledBean.setcolor2(0);
-        ledBean.setcolor3(0);
-        ledBean.setcolor4(0);
-        ledBean.setcontent1(carNo);
-        ledBean.setcontent2(text);
-        ledBean.setcontent3("鍑忛�熸參琛�");
-        ledBean.setcontent4("娆㈣繋涓嬫鍏変复");
-        ledBean.setdisMode1(0);
-        ledBean.setdisMode2(0);
-        ledBean.setdisMode3(0);
-        ledBean.setdisMode4(1);
-        ledBean.setvoiceContent(text+carNo+"娆㈣繋涓嬫鍏変复");
-        ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
-        byte[] dataX = new byte[resultData.getlenth()];
-        System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
-        String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
-        data1 = data1.replaceAll("\r\n", "");
-        if(type == 0){
-            //寮�闂�
-            open(request,response,data1);
-            enterParkService.deleteByCarNo(carNo,parkId);
-            redisTemplate.opsForValue().set("park_change_in_"+parkId,"true",1, TimeUnit.DAYS);
-            int i = Integer.parseInt(redisnum);
-            i--;
-            if(i<0){
-                String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�0\n";
-                writeTxt2(s);
-                redisTemplate.opsForValue().set("car_park_" + parkId,"0",30, TimeUnit.DAYS);
-                redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
-            }else {
-                String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
-                writeTxt2(s);
-                redisTemplate.opsForValue().set("car_park_" + parkId,Integer.toString(i),30, TimeUnit.DAYS);
-                redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
-            }
-        }else {
-            noOpen(request,response,data1);
-        }
-    }
-
-    public void outLedShowDefault(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
-        LedBean ledBean = new LedBean();
-        ledBean.setcolor1(0);
-        ledBean.setcolor2(0);
-        ledBean.setcolor3(0);
-        ledBean.setcolor4(0);
-        ledBean.setcontent1("涓�杞︿竴鏉�");
-        ledBean.setcontent2("鍑忛�熸參琛�");
-        ledBean.setcontent3("鏃犻渶鍙栧崱");
-        ledBean.setcontent4("鎵爜缂磋垂");
-        ledBean.setdisMode1(0);
-        ledBean.setdisMode2(0);
-        ledBean.setdisMode3(0);
-        ledBean.setdisMode4(0);
-        ledBean.setvoiceContent("");
-        ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
-        byte[] dataX = new byte[resultData.getlenth()];
-        System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
-        String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
-        data1 = data1.replaceAll("\r\n", "");
-        noOpen(request,response,data1);
-    }
-
-    public void inLedShowDefault(Integer parkId,HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
-        String num = redisTemplate.opsForValue().get("car_park_" +  parkId);
-        String con3 = "";
-        String con4 = "";
-        if(num == null){
-            num = "0";
-        }
-        Park byId = parkService.getById(parkId);
-        int i = byId.getNum() - Integer.parseInt(num);
-        if(i<=0){
-            i = 0;
-            con3 = "杞︿綅宸叉弧";
-            con4 = "璇烽┒绂�";
-        }else {
-            con3 = "鎺掗槦绛夊��";
-            con4 = "浣欎綅:"+i;
-        }
-        LedBean ledBean = new LedBean();
-        ledBean.setcolor1(0);
-        ledBean.setcolor2(0);
-        ledBean.setcolor3(0);
-        ledBean.setcolor4(0);
-        ledBean.setcontent1("涓�杞︿竴鏉�");
-        ledBean.setcontent2("鍑忛�熸參琛�");
-        ledBean.setcontent3(con3);
-        ledBean.setcontent4(con4);
-        ledBean.setdisMode1(0);
-        ledBean.setdisMode2(0);
-        ledBean.setdisMode3(0);
-        ledBean.setdisMode4(0);
-        ledBean.setvoiceContent("");
-        ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
-        byte[] dataX = new byte[resultData.getlenth()];
-        System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
-        String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
-        data1 = data1.replaceAll("\r\n", "");
-        noOpen(request,response,data1);
-    }
-
-
-}
+//package com.boying.controller.car;
+//
+//import cn.hutool.http.HttpRequest;
+//import com.alibaba.fastjson.JSON;
+//import com.alibaba.fastjson.JSONObject;
+//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+//import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+//import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+//import com.boying.common.R;
+//import com.boying.common.SystemConfigProperties;
+//import com.boying.entity.*;
+//import com.boying.service.*;
+//import com.boying.util.DateUtilOther;
+//import com.boying.util.FileUtil;
+//import com.boying.util.RedisJsonUtil;
+//import com.boying.util.StringUtil;
+//import com.google.gson.JsonObject;
+//import com.google.gson.JsonParser;
+//import ledshow.CodeUtil;
+//import ledshow.LedBean;
+//import ledshow.ResultData;
+//import lombok.RequiredArgsConstructor;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.data.redis.core.StringRedisTemplate;
+//import org.springframework.stereotype.Controller;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.ResponseBody;
+//
+//import javax.servlet.ServletException;
+//import javax.servlet.http.HttpServlet;
+//import javax.servlet.http.HttpServletRequest;
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.*;
+//import java.text.ParseException;
+//import java.text.SimpleDateFormat;
+//import java.time.Duration;
+//import java.time.LocalDateTime;
+//import java.time.ZoneOffset;
+//import java.util.Base64;
+//import java.util.Date;
+//import java.util.List;
+//import java.util.concurrent.TimeUnit;
+//
+//
+///**
+// * Servlet implementation class PlateServlet
+// */
+//@Controller
+//@RequestMapping("/ffzf/car")
+//@RequiredArgsConstructor
+//public class PlateServlet3 extends HttpServlet {
+//    private static final long serialVersionUID = 1L;
+//    private final SystemConfigProperties systemConfigProperties;
+//    private final StringRedisTemplate redisTemplate;
+//    private final ParkService parkService;
+//    private final OutParkService outParkService;
+//    private final EnterParkService enterParkService;
+//    private final BarrierService barrierService;
+//    private final TicketService ticketService;
+//    private final CostRuleService costRuleService;
+//    private final WhiteListService whiteListService;
+//    private final FileInfoService fileInfoService;
+//    private final TicketBlackService ticketBlackService;
+//    private final OutParkLogService outParkLogService;
+//   // private final RedisJsonUtil redisJsonUtil;
+//    private final String LEDURL = "http://192.168.31.212:9988/LedShow/IGetResultDataAllLine";
+//
+//    /**
+//     * 鍥炲寮�闂�
+//     */
+//    protected void open(HttpServletRequest request, HttpServletResponse response,String data) throws ServletException, IOException {
+//        response.setContentType("text/json");
+//        PrintWriter out = response.getWriter();
+//        String aa = "{" +
+//                "\"Response_AlarmInfoPlate\": {" +
+//                "\"info\":\"ok\"," +
+//                "\"is_pay\":\"true\"," +
+//                "\"serialData\" :[" +
+//                "{" +
+//                "\"serialChannel\":0," +
+//                "\"data\" : \"" + data + "\"," +
+//                "\"dataLen\" :" + data.length() +
+//                "}" +
+//                "]" +
+//                "}" +
+//                "}";
+//        out.println(aa);
+//        out.flush();
+//        out.close();
+//    }
+//
+//
+//    //杞爜
+//    public static String deCode(String str) {
+//        try {
+//            byte[] b = str.getBytes("UTF-8");//锟斤拷锟斤拷
+//            String sa = new String(b);//锟斤拷锟斤拷:锟斤拷什么锟街凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟绞裁达拷址锟斤拷锟斤拷锟斤拷锟�
+//            //String sa = new String(str.getBytes());
+//
+//            return sa;
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//            return "";
+//        }
+//    }
+//
+//    protected void noOpen(HttpServletRequest request, HttpServletResponse response,String data) throws IOException {
+//        response.setContentType("text/json");
+//        PrintWriter out = response.getWriter();
+//        String aa = "{" +
+//                "\"Response_AlarmInfoPlate\": {" +
+//                "\"serialData\" :[" +
+//                "{" +
+//                "\"serialChannel\":0," +
+//                "\"data\" : \"" + data + "\"," +
+//                "\"dataLen\" :" + data.length() +
+//                "}" +
+//                "]" +
+//                "}" +
+//                "}";
+//        out.println(aa);
+//        out.flush();
+//        out.close();
+//    }
+//
+//    protected void easyOpen(HttpServletRequest request, HttpServletResponse response) throws IOException {
+//        response.setContentType("text/json");
+//        PrintWriter out = response.getWriter();
+//        out.println("{\"Response_AlarmInfoPlate\":{\"info\":\"ok\",\"content\":\"...\",\"is_pay\":\"true\"}}");
+//        out.flush();
+//        out.close();
+//    }
+//
+//    protected void easyNoOpen(HttpServletRequest request, HttpServletResponse response) throws IOException {
+//        response.setContentType("text/json");
+//        PrintWriter out = response.getWriter();
+//        out.println("{\"Response_AlarmInfoPlate\":{\"info\":\"error\",\"content\":\"...\",\"is_pay\":\"false\"}}");
+//        out.flush();
+//        out.close();
+//    }
+//
+//    @PostMapping("/status")
+//    public void heart(String serialno,HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
+//        Barrier barrier = barrierService.findByCode(serialno);
+//        Park park = parkService.getOneById(barrier.getParkId());
+//       // Park park = parkService.getById(barrier.getParkId());
+//       // String redis = redisTemplate.opsForValue().get("park_up_" + park.getId());
+//        String redisnum = redisTemplate.opsForValue().get("car_park_" + park.getId());
+//        if(StringUtils.isBlank(redisnum)){
+//            redisnum = "0";
+//        }
+//        if(barrier!=null){
+//            if(barrier.getType2()==1){
+//                //寰呭紑闂�
+//                if(barrier.getType() == 1){
+//                    int i = Integer.parseInt(redisnum);
+//                    i++;
+//                    redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS);
+//                }else if(barrier.getType() == 0){
+//                    int i = Integer.parseInt(redisnum);
+//                    i--;
+//                    if(i<0){
+//                        String s= "2."+barrier.getCarNo()+"闂告満鎵嬪姩鍚姩锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+//                        writeTxt2(s);
+//                        redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS);
+//                        redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
+//                    }else {
+//                        String s= "2."+barrier.getCarNo()+"闂告満鎵嬪姩鍚姩锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+//                        writeTxt2(s);
+//                        redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS);
+//                        redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
+//                    }
+//
+//                }
+//                barrier.setType2(0);
+//                barrier.setUpdateTime(LocalDateTime.now());
+//                barrier.setStatus(0);
+//                barrier.setUpdateTime(LocalDateTime.now());
+//                barrierService.saveOrUpdate(barrier);
+//
+//                String jsonValue = JSON.toJSONString(barrier);
+//                redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue);
+//                easyOpen(request,response);
+//            }else {
+//                //涓嶉渶寮�闂�
+//                LocalDateTime now = LocalDateTime.now();
+//                LocalDateTime updateTime = barrier.getUpdateTime();
+//                Duration duration = Duration.between(updateTime,now);
+//                long minutes = duration.toMinutes();
+//                if(minutes>=2){
+//                    barrier.setStatus(0);
+//                    barrier.setUpdateTime(LocalDateTime.now());
+//                    barrierService.saveOrUpdate(barrier);
+//                }
+//
+//                String jsonValue = JSON.toJSONString(barrier);
+//                redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue);
+//                if(barrier.getType() == 0){
+//                    OutPark outPark = outParkService.count4(barrier.getId());
+//                    if(outPark!=null){
+//                        if(barrier.getType() == 0){
+//                            int i = Integer.parseInt(redisnum);
+//                            i--;
+//                            if(i<0){
+//                                String s= "2."+outPark.getCarNo()+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+//                                writeTxt2(s);
+//                                redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS);
+//                                redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
+//                            }else {
+//                                String s= "2."+outPark.getCarNo()+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+//                                writeTxt2(s);
+//                                redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS);
+//                                redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
+//                            }
+//                        }
+//                        outPark.setStatus2(1);
+//                        outParkService.saveOrUpdate(outPark);
+//                        easyOpen(request,response);
+//                        OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId());
+//                        byOutPark.setOpenTime(LocalDateTime.now());
+//                        outParkLogService.saveOrUpdate(byOutPark);
+//                        enterParkService.deleteByCarNo(outPark.getCarNo(), barrier.getParkId());
+//                        redisTemplate.delete("outPark-"+outPark.getBarrierId());
+//                    }
+//                }
+//                if(barrier.getType() == 1){
+//                    boolean in = barrierService.getDateDifIn(park.getId());
+//                    if(in){
+//                        inLedShowDefault(park.getId(),request,response);
+//                    }
+//                }else if(barrier.getType() == 0){
+//                    boolean out = barrierService.getDateDifOut(barrier.getId());
+//                    if(out){
+//                        outLedShowDefault(request,response);
+//                    }
+//                }
+//            }
+//
+//        }else {
+//            easyNoOpen(request,response);
+//        }
+//    }
+//    /**
+//     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
+//     */
+//    @PostMapping("/PlateServlet")
+//    protected void info(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+//        String s= "";
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
+//        BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream(),"UTF-8"));
+//        String str = "";
+//        String lineStr = "";
+//        FileInfo fileInfo = null;
+//        while((str = reader.readLine()) != null){
+//            lineStr += str;
+//        }
+//       // System.out.println("鑾峰彇鍒扮殑閬撻椄鎺ㄩ�佹暟鎹负锛�"+lineStr);
+//
+//        JSONObject jsonObject1 = JSON.parseObject(lineStr);
+//        JSONObject alarmInfoPlate = jsonObject1.getJSONObject("AlarmInfoPlate");
+//        JSONObject result = alarmInfoPlate.getJSONObject("result");
+//        JSONObject plateResult = result.getJSONObject("PlateResult");
+//        String carNo = plateResult.get("license").toString();
+//        String image = plateResult.get("imageFile").toString();
+//        String code = alarmInfoPlate.get("serialno").toString();
+//
+//        try {
+//            JsonParser parser=new JsonParser();
+//            do {
+//                JsonObject jsonObject=(JsonObject) parser.parse(lineStr);
+//                if( jsonObject == null || jsonObject.isJsonNull() ) {
+//                    break;
+//                }
+//
+//                JsonObject jsonInfoPlate = jsonObject.get("AlarmInfoPlate").getAsJsonObject();
+//                if( jsonInfoPlate == null || jsonInfoPlate.isJsonNull() ) {
+//                    break;
+//                }
+//
+//                JsonObject jsonResult = jsonInfoPlate.get("result").getAsJsonObject();
+//                if( jsonResult == null || jsonResult.isJsonNull() ) {
+//                    break;
+//                }
+//
+//                JsonObject jsonPlateResult = jsonResult.get("PlateResult").getAsJsonObject();
+//                if( jsonPlateResult == null || jsonPlateResult.isJsonNull() ) {
+//                    break;
+//                }
+//
+//                String license = jsonPlateResult.get("license").getAsString();//杞︾墝鍙�
+//                if( license == null || license == "") {
+//                    break;
+//                }
+//
+//                String serialno = jsonInfoPlate.get("serialno").getAsString();//鎽勫儚鏈哄簭鍒楀彿
+//                if( serialno == null || serialno == "" ) {
+//                    break;
+//                }
+//
+//
+//                if(StringUtils.isNotBlank(image)){
+//                    fileInfo = FileUtil.generateBase64StringToFile(image, 1,1);
+//                    fileInfoService.save(fileInfo);
+//                }
+//
+//
+//                System.out.println("缂栧彿锛�"+serialno+"  璁惧璇嗗埆鍒颁簡锛�"+license);
+//                String format = sdf.format(new Date());
+//                s+= format+",杞︾墝鍙蜂负锛�"+license+",serialno涓猴細"+code+"  ";
+//
+//                Barrier barrier = barrierService.findByCode(code);
+//                System.out.println("鏌ヨ鍒伴亾闂镐负锛�"+barrier);
+//                if(barrier==null){
+//                    s+="鏌ヨ閬撻椄涓虹┖\n";
+//                    easyNoOpen(request,response);
+//                }else{
+//                    if(barrier.getType()==0){
+//                        outPark(license, barrier.getId(), barrier.getParkId(),request,response,fileInfo);
+//                        s+=license+"-淇濆瓨鍑哄満璁板綍\n";
+//                    }else{
+//                        String num = redisTemplate.opsForValue().get("car_park_" +  barrier.getParkId());
+//                        if(StringUtils.isBlank(num)){
+//                            num = "0";
+//                            redisTemplate.opsForValue().set("car_park_" + barrier.getParkId(),num,30, TimeUnit.DAYS);
+//                            redisTemplate.opsForValue().set("park_up_" + barrier.getParkId(),"true",30, TimeUnit.DAYS);
+//                        }
+//                        Park byId = parkService.getById(barrier.getParkId());
+//                        if(Integer.parseInt(num) >= byId.getNum() ){
+//                            //led鏄剧ず
+//                            inLedFullShow(code, license,barrier.getParkId(),request,response);
+//                        }else {
+//                            //led鏄剧ず
+//                            enterPark(license,barrier.getId(),barrier.getParkId(),fileInfo);
+//                            inLedShow(code, license,barrier.getParkId(),request,response);
+//                            s+=license+"-淇濆瓨鍏ュ満璁板綍\n";
+//                        }
+//                    }
+//                }
+//                writeTxt(s);
+//            }while(false);
+//        }
+//        catch (Exception e) {
+//            System.out.println("鏃犲叆鍦鸿褰�");
+//            s+=" ,鏌ヨ鍦哄唴璁板綍寮傚父";
+//            writeTxt(s);
+//            easyNoOpen(request,response);
+//        }
+//    }
+//
+//    /**
+//     * 鎵嬫満鍙峰叆鍦�
+//     * @param
+//     * @return
+//     */
+//    @PostMapping("/inParkByPhone" )
+//    @ResponseBody
+//    public Object inParkByPhone( EnterPark enterPark){
+//        Barrier barrier = barrierService.getById(enterPark.getBarrierId());
+//        if(barrier!=null){
+//            String num = redisTemplate.opsForValue().get("car_park_" +  barrier.getParkId());
+//            if(StringUtils.isBlank(num)){
+//                num = "0";
+//                redisTemplate.opsForValue().set("car_park_" + barrier.getParkId(),num,30, TimeUnit.DAYS);
+//                redisTemplate.opsForValue().set("park_up_" + barrier.getParkId(),"true",30, TimeUnit.DAYS);
+//            }
+//            Park byId = parkService.getById(barrier.getParkId());
+//            if(Integer.parseInt(num) >= byId.getNum() ){
+//                return R.failed(null,"绂佹閫氳,杞︿綅宸叉弧");
+//            }else {
+//                QueryWrapper<EnterPark> wrapper2 = new QueryWrapper<>();
+//                wrapper2.lambda()
+//                        .eq(EnterPark::getBarrierId,barrier.getId())
+//                        .orderByDesc(EnterPark::getCreateTime)
+//                        .last(" limit 1");
+//                EnterPark one = enterParkService.getOne(wrapper2);
+//                if(one == null){
+//                    return R.failed("鏈煡璇㈠埌杞﹁締瀛樺湪");
+//                }else {
+//                    if(one.getCarNo().equals("鏃犵墝杞�")){
+//                        enterPark.setCreateTime(LocalDateTime.now());
+//                        QueryWrapper<Ticket> wrapper = new QueryWrapper<>();
+//                        wrapper.lambda()
+//                                .eq(Ticket::getCarNo,enterPark.getCarNo())
+//                                .eq(Ticket::getPayStatus,1);
+//                        List<Ticket> tickets = ticketService.list(wrapper);
+//                        if(tickets.size()>0){
+//                            enterPark.setStatus(1);//鍙戠幇鏈夎繚绔�
+//                        }
+//                        enterPark.setIsPay(0);
+//                        enterPark.setPrice(0);
+//                        enterParkService.deleteByCarNo(enterPark.getCarNo(),enterPark.getParkId());
+//                        enterParkService.save(enterPark);
+//                        barrier.setType2(1);
+//                        barrierService.updateById(barrier);
+//                        return R.ok();
+//                    }else {
+//                        return R.failed("闈炴硶鎿嶄綔");
+//                    }
+//                }
+//            }
+//        }
+//        return R.failed(null,"鏁版嵁寮傚父");
+//    }
+//
+//    /**
+//     * 鎵嬫満鍙峰嚭鍦�
+//     * @param
+//     * @return
+//     */
+//    @PostMapping("/outParkByPhone" )
+//    @ResponseBody
+//    public Object outParkByPhone(String code2,String carNo){
+//        Barrier byCode2 = barrierService.findByCode2(code2);
+//        QueryWrapper<EnterPark> wrapper =new QueryWrapper<>();
+//        wrapper.lambda()
+//                .eq(EnterPark::getParkId,byCode2.getParkId())
+//                .eq(EnterPark::getCarNo,carNo);
+//        EnterPark one = enterParkService.getOne(wrapper);
+//        if(one != null){
+//            double money = 0.0;
+//            String toDayHrMinSec = null;
+//            OutPark outPark = new OutPark();
+//            outPark.setCarNo(carNo);
+//            outPark.setParkId(one.getParkId());
+//            outPark.setBarrierId(byCode2.getId());
+//            outPark.setCreateTime(LocalDateTime.now());
+//            outPark.setCode(System.currentTimeMillis()+"");
+//            System.out.println("鍏ュ満璁板綍锛�"+one);
+//            outPark.setEnterTime(one.getCreateTime());
+//            outPark.setParkName(byCode2.getName());
+//            if(outPark.getTime() > 0){
+//                outPark.setTimeStr(DateUtilOther.millisToDayHrMinSec(new Double(outPark.getTime()).longValue()));
+//            }else {
+//                outPark.setTimeStr("涓嶈冻涓�鍒嗛挓");
+//            }
+//            try {
+//                long l = outPark.getCreateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli() - one.getCreateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli();
+//                outPark.setTime(l/(1000*60));
+//                toDayHrMinSec = DateUtilOther.millisToDayHrMinSec(l/(1000*60));
+//                money = costRuleService.getMoney(one.getParkId(), outPark.getEnterTime(), outPark.getCreateTime(), 1);
+//
+//                //鍏ュ満璁板綍淇濆瓨涓�涓�
+//                if(one.getIsPay()==1){
+//                    money = money - one.getPrice();
+//                }else {
+//                    one.setPrice(money);
+//                    one.setIsPay(0);
+//                    enterParkService.updateById(one);
+//                }
+//            } catch (ParseException e) {
+//                e.printStackTrace();
+//            }
+//            outPark.setPrice(money);
+//            outPark.setStatus3(findTicket(carNo));
+//            outParkService.saveOrUpdate(outPark);
+//            byCode2.setCarNo(carNo);
+//            //led灞曠ず
+//            if(toDayHrMinSec == null){
+//                return R.failed("寮傚父璁板綍");
+//            }
+//            if(outPark.getPrice()==0&&outPark.getStatus3()==0){
+//                System.out.println(outPark.getCarNo()+"璇ヨ溅涓嶉渶瑕佺即璐�");
+//                String s= "1."+byCode2.getCarNo()+"璇ヨ溅涓嶉渶瑕佺即璐筡n";
+//                writeTxt2(s);
+//                byCode2.setType2(1);
+//                barrierService.updateById(byCode2);
+//                return R.ok(outPark);
+//            }else {
+//                //闇�瑕佺即璐规垨鑰呮湁杩濈珷
+//                System.out.println(outPark.getCarNo()+"璇ヨ溅闇�瑕佺即璐�"+outPark.getPrice());
+//                String s= "1."+byCode2.getCarNo()+"璇ヨ溅闇�瑕佺即璐筡n";
+//                writeTxt2(s);
+//                barrierService.updateById(byCode2);
+//                return R.ok(outPark);
+//            }
+//
+//        }else {
+//            return R.failed("鏈煡璇㈠埌鍏ュ満璁板綍");
+//        }
+//    }
+//
+//
+//    private void writeTxt( String txt)
+//    {
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+//        try
+//        {
+//            FileWriter f = new FileWriter(systemConfigProperties.getLogPath()+sdf.format(new Date())+".txt",true);
+//            BufferedWriter bw=new BufferedWriter(f);
+//            bw.write(txt);
+//            bw.newLine();
+//            bw.close();
+//        }
+//        catch(Exception e)
+//        {
+//            System.out.println("鎵撳嵃閿欒");
+//        }
+//    }
+//
+//    private void writeTxt2( String txt)
+//    {
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+//        try
+//        {
+//            FileWriter f = new FileWriter(systemConfigProperties.getLogPath()+sdf.format(new Date())+"LED.txt",true);
+//            BufferedWriter bw=new BufferedWriter(f);
+//            bw.write(txt);
+//            bw.newLine();
+//            bw.close();
+//        }
+//        catch(Exception e)
+//        {
+//            System.out.println("鎵撳嵃閿欒");
+//        }
+//    }
+//
+//
+//
+//
+//    public void enterPark(String carNo,Integer barrierId,Integer parkId,FileInfo fileInfo) {
+//        TicketBlack black = ticketBlackService.getByCarNo(carNo, 1);
+//        if(black != null){
+//            System.out.println("榛戝悕鍗曡溅杈�"+carNo);
+//        }else {
+//            enterParkService.deleteByCarNo(carNo,parkId);
+//            EnterPark enterPark = new EnterPark();
+//            enterPark.setIsPay(0);
+//            enterPark.setPrice(0);
+//            enterPark.setCarNo(carNo);
+//            enterPark.setBarrierId(barrierId);
+//            enterPark.setParkId(parkId);
+//
+//            QueryWrapper<Ticket> wrapper = new QueryWrapper<>();
+//            wrapper.lambda()
+//                    .eq(Ticket::getCarNo,enterPark.getCarNo())
+//                    .eq(Ticket::getPayStatus,1);
+//            List<Ticket> tickets = ticketService.list(wrapper);
+//            if(tickets.size()>0){
+//                enterPark.setStatus(1);//鍙戠幇鏈夎繚绔�
+//            }
+//            if(fileInfo != null){
+//                enterPark.setImgId(fileInfo.getId());
+//            }
+//            enterParkService.saveOrUpdate(enterPark);
+//            String jsonValue = JSON.toJSONString(enterPark);
+//            redisTemplate.opsForValue().set("enterPark_dif_"+ parkId, jsonValue);
+//
+//        }
+//    }
+//
+//    public double outPark(String carNo,Integer barrierId,Integer parkId,HttpServletRequest request, HttpServletResponse response,FileInfo fileInfo) throws ServletException, IOException {
+//        double money = 0.0;
+//        EnterPark enterPark = null;
+//        String toDayHrMinSec = null;
+//        OutPark outPark = new OutPark();
+//        outPark.setCarNo(carNo);
+//        outPark.setParkId(parkId);
+//        outPark.setBarrierId(barrierId);
+//        outPark.setCreateTime(LocalDateTime.now());
+//        outPark.setCode(System.currentTimeMillis()+"");
+//        List<EnterPark> byCarNo = enterParkService.findByCarNo(carNo,parkId);
+//
+//        if(byCarNo.size() == 0){
+//            System.out.println(carNo+"鏈彂鐜板満鍐呰溅杈�");
+//        }else{
+//            enterPark = byCarNo.get(0);
+//            System.out.println("鍏ュ満璁板綍锛�"+enterPark);
+//            outPark.setEnterTime(enterPark.getCreateTime());
+//            try {
+//                long l = outPark.getCreateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli() - enterPark.getCreateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli();
+//                outPark.setTime(l/(1000*60));
+//                toDayHrMinSec = DateUtilOther.millisToDayHrMinSec(l/(1000*60));
+//                money = costRuleService.getMoney(parkId, outPark.getEnterTime(), outPark.getCreateTime(), 1);
+//
+//                //鍏ュ満璁板綍淇濆瓨涓�涓�
+//                if(enterPark.getIsPay() != null && enterPark.getIsPay()==1){
+//                    money = money - enterPark.getPrice();
+//                }else {
+//                    enterPark.setPrice(money);
+//                    enterPark.setIsPay(0);
+//                    enterParkService.updateById(enterPark);
+//                }
+//            } catch (ParseException e) {
+//                e.printStackTrace();
+//            }
+//
+//        }
+//        //outPark.setPrice(Double.valueOf(String.format("%.1f", money)));
+//        outPark.setPrice(money);
+//        outPark.setStatus3(findTicket(carNo));
+//        if(fileInfo != null){
+//            outPark.setImgId(fileInfo.getId());
+//        }
+//        outParkService.saveOrUpdate(outPark);
+//        Barrier barrier =barrierService.getById(barrierId);
+//        barrier.setCarNo(carNo);
+//        //led灞曠ず
+//        if(toDayHrMinSec == null){
+//            toDayHrMinSec = "鍏ュ満璁板綍寮傚父,璇疯仈绯荤鐞嗗憳";
+//        }
+//        //鍒ゆ柇鏄惁鍦ㄧ櫧鍚嶅崟
+//        QueryWrapper<WhiteList> wrapper = new QueryWrapper<>();
+//        wrapper.lambda()
+//                .eq(WhiteList::getCarNo,carNo);
+//        List<WhiteList> all = whiteListService.list(wrapper);
+//        if(all.size() >0){
+//            for(WhiteList w : all){
+//                if(w.getType()==0){
+//                    outLedShowYueZu(barrier.getCarNo(),"鏈堢杞�",parkId,request,response,0);
+//                    OutPark byCarNoAndBarrierId = outParkService.findByCarNoAndBarrierId(carNo, barrierId);
+//                    byCarNoAndBarrierId.setStatus(2);
+//                    byCarNoAndBarrierId.setStatus2(1);
+//                    outParkService.saveOrUpdate(byCarNoAndBarrierId);
+//                    barrierService.saveOrUpdate(barrier);
+//                    String jsonValue2 = JSON.toJSONString(barrier);
+//                    redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue2);
+//                    String jsonValue = JSON.toJSONString(byCarNoAndBarrierId);
+//                    redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
+//                    return 0.0;
+//                }else{
+//                    if(StringUtils.isNotBlank(w.getParkIds())){
+//                        if(w.getEndTime()!=null){
+//                            String parkIds = w.getParkIds();
+//                            String[] split = parkIds.split(",");
+//                            for (String s : split) {
+//                                int pid = Integer.parseInt(s);
+//                                if(pid == outPark.getParkId() && System.currentTimeMillis()<w.getEndTime().getTime()){
+//                                    outLedShowYueZu(barrier.getCarNo(),"鏈堢杞�",parkId,request,response,0);
+//                                    OutPark byCarNoAndBarrierId = outParkService.findByCarNoAndBarrierId(carNo, barrierId);
+//                                    byCarNoAndBarrierId.setStatus(2);
+//                                    byCarNoAndBarrierId.setStatus2(1);
+//                                    outParkService.saveOrUpdate(byCarNoAndBarrierId);
+//                                    barrierService.saveOrUpdate(barrier);
+//                                    String jsonValue2 = JSON.toJSONString(barrier);
+//                                    redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue2);
+//                                    String jsonValue = JSON.toJSONString(byCarNoAndBarrierId);
+//                                    redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
+//                                    return 0.0;
+//                                }
+//                            }
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//        barrierService.saveOrUpdate(barrier);
+//        String jsonValue2 = JSON.toJSONString(barrier);
+//        redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue2);
+//        if(outPark.getPrice()==0&&outPark.getStatus3()==0){
+//            System.out.println(outPark.getCarNo()+"璇ヨ溅涓嶉渶瑕佺即璐�");
+//            String s= "1."+barrier.getCarNo()+"璇ヨ溅涓嶉渶瑕佺即璐筡n";
+//            writeTxt2(s);
+//            String jsonValue = JSON.toJSONString(outPark);
+//            redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
+//            outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,0);
+//        }else {
+//            //闇�瑕佺即璐规垨鑰呮湁杩濈珷
+//            System.out.println(outPark.getCarNo()+"璇ヨ溅闇�瑕佺即璐�"+outPark.getPrice());
+//            String s= "1."+barrier.getCarNo()+"璇ヨ溅闇�瑕佺即璐筡n";
+//            writeTxt2(s);
+//            OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId());
+//            byOutPark.setOutTime(outPark.getCreateTime());
+//            byOutPark.setParkId(outPark.getParkId());
+//            outParkLogService.saveOrUpdate(byOutPark);
+//            String jsonValue = JSON.toJSONString(outPark);
+//            redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
+//            outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,1);
+//        }
+//        return money;
+//    }
+//
+//    public int findTicket(String carNo){
+//        QueryWrapper<Ticket> wrapper = new QueryWrapper<>();
+//        wrapper.lambda()
+//                .eq(Ticket::getCarNo,carNo)
+//                .eq(Ticket::getPayStatus,1);
+//        List<Ticket> tickets = ticketService.list(wrapper);
+//        if(tickets.size()>0){
+//            return 1;
+//        }else{
+//            return 0;
+//        }
+//    }
+//
+//
+//    public void inLedShow(String ledId,String carNo,Integer parkId,HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+//        TicketBlack black = ticketBlackService.getByCarNo(carNo, 1);
+//        if(black != null){
+//            LedBean ledBean = new LedBean();
+//            ledBean.setcolor1(0);
+//            ledBean.setcolor2(0);
+//            ledBean.setcolor3(0);
+//            ledBean.setcolor4(0);
+//            ledBean.setcontent1(carNo);
+//            ledBean.setcontent2("榛戝悕鍗曡溅杈�");
+//            ledBean.setcontent3("绂佹椹跺叆");
+//            ledBean.setcontent4("鑱旂郴绠$悊鍛�");
+//            ledBean.setdisMode1(0);
+//            ledBean.setdisMode2(0);
+//            ledBean.setdisMode3(0);
+//            ledBean.setdisMode4(0);
+//            ledBean.setvoiceContent("榛戝悕鍗曡溅杈�"+carNo+",绂佹椹跺叆");
+//            ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
+//            byte[] dataX = new byte[resultData.getlenth()];
+//            System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
+//            String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
+//            data1 = data1.replaceAll("\r\n", "");
+//            noOpen(request,response,data1);
+//        }else {
+//            String num = redisTemplate.opsForValue().get("car_park_" +  parkId);
+//            if(num == null){
+//                num = "0";
+//            }
+//            Park byId = parkService.getById(parkId);
+//            int n = Integer.parseInt(num)+1;
+//            redisTemplate.opsForValue().set("car_park_" + parkId,Integer.toString(n),30, TimeUnit.DAYS);
+//            int i = byId.getNum() - Integer.parseInt(num);
+//            if(i<0){
+//                i = 0;
+//            }
+//            String carType = "";
+//            String carDay = "";
+//            Barrier barrier = barrierService.findByCode(ledId);
+//            WhiteList byCarNo = whiteListService.getByCarNo(carNo);
+//            if(byCarNo == null){
+//                carType = "涓存椂杞�";
+//            }else {
+//                if (byCarNo.getType() == 0){
+//                    //鐧藉悕鍗曟案涔呰溅杈�
+//                    carType = "鏈堢杞�";
+//                }else {
+//                    //鐧藉悕鍗曞浐瀹氬仠杞﹀満杞﹁締
+//                    if(StringUtils.isNotBlank(byCarNo.getParkIds()) && byCarNo.getParkIds().contains(barrier.getParkId()+"")){
+//                        carType = "鏈堢杞�";
+//                        long l = (byCarNo.getEndTime().getTime() - byCarNo.getStartTime().getTime()) / (24 * 3600 * 1000);
+//                        carDay = "鏈夋晥鏈熻繕鏈�"+l+"澶�";
+//                    }else {
+//                        carType = "涓存椂杞�";
+//                    }
+//                }
+//            }
+//            if(StringUtils.isBlank(carDay) && !carNo.equals("鏃犵墝杞�")){
+//                carDay = "娆㈣繋鍏変复";
+//            }else if(StringUtils.isBlank(carDay) && carNo.equals("鏃犵墝杞�")){
+//                carDay = "鎷掔粷椹跺叆";
+//            }
+//
+//            LedBean ledBean = new LedBean();
+//            ledBean.setcolor1(0);
+//            ledBean.setcolor2(0);
+//            ledBean.setcolor3(0);
+//            ledBean.setcolor4(0);
+//            ledBean.setcontent1(carNo);
+//            ledBean.setcontent2(carType);
+//            ledBean.setcontent3(carDay);
+//            ledBean.setcontent4("浣欎綅:"+i);
+//            ledBean.setdisMode1(0);
+//            ledBean.setdisMode2(0);
+//            ledBean.setdisMode3(0);
+//            ledBean.setdisMode4(0);
+//            ledBean.setvoiceContent(carType+","+carNo+","+carDay);
+//            ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
+//            byte[] dataX = new byte[resultData.getlenth()];
+//            System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
+//            String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
+//            data1 = data1.replaceAll("\r\n", "");
+//
+//            if(!carNo.equals("鏃犵墝杞�")){
+//                open(request,response,data1);//鍏ュ満寮�闂�
+//            }else {
+//                noOpen(request,response,data1);
+//            }
+//        }
+//    }
+//
+//    public void inLedFullShow(String ledId, String carNo, Integer parkId,HttpServletRequest request, HttpServletResponse response) throws IOException {
+//        String carType = "";
+//        String carDay = "";
+//        Barrier barrier = barrierService.findByCode(ledId);
+//        WhiteList byCarNo = whiteListService.getByCarNo(carNo);
+//        if(byCarNo == null){
+//            carType = "涓存椂杞�";
+//        }else {
+//            if (byCarNo.getType() == 0){
+//                //鐧藉悕鍗曟案涔呰溅杈�
+//                carType = "鏈堢杞�";
+//            }else {
+//                //鐧藉悕鍗曞浐瀹氬仠杞﹀満杞﹁締
+//                if(StringUtils.isNotBlank(byCarNo.getParkIds()) && byCarNo.getParkIds().contains(barrier.getParkId()+"")){
+//                    carType = "鏈堢杞�";
+//                }else {
+//                    carType = "涓存椂杞�";
+//                }
+//            }
+//        }
+//
+//        LedBean ledBean = new LedBean();
+//        ledBean.setcolor1(0);
+//        ledBean.setcolor2(0);
+//        ledBean.setcolor3(0);
+//        ledBean.setcolor4(0);
+//        ledBean.setcontent1(carNo);
+//        ledBean.setcontent2(carType);
+//        ledBean.setcontent3("杞︿綅宸叉弧");
+//        ledBean.setcontent4("璇烽┒绂�");
+//        ledBean.setdisMode1(0);
+//        ledBean.setdisMode2(0);
+//        ledBean.setdisMode3(0);
+//        ledBean.setdisMode4(0);
+//        ledBean.setvoiceContent("杞︿綅宸叉弧,璇烽┒绂�");
+//        ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
+//        byte[] dataX = new byte[resultData.getlenth()];
+//        System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
+//        String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
+//        data1 = data1.replaceAll("\r\n", "");
+//
+//        noOpen(request,response,data1);//鍏ュ満寮�闂�
+//    }
+//
+//    public void outLedShow(String ledId,String carNo,Double price,String timeStamp,Integer parkId,HttpServletRequest request, HttpServletResponse response,int type) throws ServletException, IOException {
+//        String redisnum = redisTemplate.opsForValue().get("car_park_" + parkId);
+//        Park park = parkService.getById(parkId);
+//        LedBean ledBean = new LedBean();
+//        ledBean.setcolor1(0);
+//        ledBean.setcolor2(0);
+//        ledBean.setcolor3(0);
+//        ledBean.setcolor4(0);
+//        ledBean.setcontent1(carNo);
+//        ledBean.setcontent2("鍋滆溅"+timeStamp);
+//        ledBean.setcontent3("浜よ垂"+price+"鍏�");
+//        ledBean.setcontent4("绂佹闂潌");
+//        ledBean.setdisMode1(0);
+//        ledBean.setdisMode2(1);
+//        ledBean.setdisMode3(1);
+//        ledBean.setdisMode4(0);
+//        ledBean.setvoiceContent(carNo+"鍋滆溅"+timeStamp+"浜よ垂"+price+"鍏�");
+//        ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
+//        byte[] dataX = new byte[resultData.getlenth()];
+//        System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
+//        String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
+//        data1 = data1.replaceAll("\r\n", "");
+//        if(type == 0){
+//            if(carNo.equals("鏃犵墝杞�")){
+//                noOpen(request,response,data1);
+//            }else {
+//                if(timeStamp.contains("璁板綍寮傚父")){
+//                    OutPark by5min = outParkService.findBy5min(carNo, parkId, LocalDateTime.now());
+//                    if(by5min != null){
+//                        //寮�闂�
+//                        open(request,response,data1);
+//                        enterParkService.deleteByCarNo(carNo, parkId);
+//                        redisTemplate.opsForValue().set("park_change_in_"+parkId,"true",1, TimeUnit.DAYS);
+//                        int i = Integer.parseInt(redisnum);
+//                        i--;
+//                        if(i<0){
+//                            String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�0\n";
+//                            writeTxt2(s);
+//                            redisTemplate.opsForValue().set("car_park_" + parkId,"0",30, TimeUnit.DAYS);
+//                            redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+//                        }else {
+//                            String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+//                            writeTxt2(s);
+//                            redisTemplate.opsForValue().set("car_park_" + parkId,Integer.toString(i),30, TimeUnit.DAYS);
+//                            redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+//                        }
+//                    }else {
+//                        noOpen(request,response,data1);
+//                    }
+//                }else {
+//                    //寮�闂�
+//                    open(request,response,data1);
+//                    enterParkService.deleteByCarNo(carNo, parkId);
+//                    redisTemplate.opsForValue().set("park_change_in_"+parkId,"true",1, TimeUnit.DAYS);
+//                    int i = Integer.parseInt(redisnum);
+//                    i--;
+//                    if(i<0){
+//                        String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�0\n";
+//                        writeTxt2(s);
+//                        redisTemplate.opsForValue().set("car_park_" + parkId,"0",30, TimeUnit.DAYS);
+//                        redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+//                    }else {
+//                        String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+//                        writeTxt2(s);
+//                        redisTemplate.opsForValue().set("car_park_" + parkId,Integer.toString(i),30, TimeUnit.DAYS);
+//                        redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+//                    }
+//                }
+//
+//            }
+//        }else {
+//            noOpen(request,response,data1);
+//        }
+//
+//    }
+//
+//    public void outLedShowYueZu(String carNo,String text,Integer parkId,HttpServletRequest request, HttpServletResponse response,int type) throws ServletException, IOException{
+//        String redisnum = redisTemplate.opsForValue().get("car_park_" + parkId);
+//        LedBean ledBean = new LedBean();
+//        ledBean.setcolor1(0);
+//        ledBean.setcolor2(0);
+//        ledBean.setcolor3(0);
+//        ledBean.setcolor4(0);
+//        ledBean.setcontent1(carNo);
+//        ledBean.setcontent2(text);
+//        ledBean.setcontent3("鍑忛�熸參琛�");
+//        ledBean.setcontent4("娆㈣繋涓嬫鍏変复");
+//        ledBean.setdisMode1(0);
+//        ledBean.setdisMode2(0);
+//        ledBean.setdisMode3(0);
+//        ledBean.setdisMode4(1);
+//        ledBean.setvoiceContent(text+carNo+"娆㈣繋涓嬫鍏変复");
+//        ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
+//        byte[] dataX = new byte[resultData.getlenth()];
+//        System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
+//        String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
+//        data1 = data1.replaceAll("\r\n", "");
+//        if(type == 0){
+//            //寮�闂�
+//            open(request,response,data1);
+//            enterParkService.deleteByCarNo(carNo,parkId);
+//            redisTemplate.opsForValue().set("park_change_in_"+parkId,"true",1, TimeUnit.DAYS);
+//            int i = Integer.parseInt(redisnum);
+//            i--;
+//            if(i<0){
+//                String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�0\n";
+//                writeTxt2(s);
+//                redisTemplate.opsForValue().set("car_park_" + parkId,"0",30, TimeUnit.DAYS);
+//                redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+//            }else {
+//                String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+//                writeTxt2(s);
+//                redisTemplate.opsForValue().set("car_park_" + parkId,Integer.toString(i),30, TimeUnit.DAYS);
+//                redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+//            }
+//        }else {
+//            noOpen(request,response,data1);
+//        }
+//    }
+//
+//    public void outLedShowDefault(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
+//        LedBean ledBean = new LedBean();
+//        ledBean.setcolor1(0);
+//        ledBean.setcolor2(0);
+//        ledBean.setcolor3(0);
+//        ledBean.setcolor4(0);
+//        ledBean.setcontent1("涓�杞︿竴鏉�");
+//        ledBean.setcontent2("鍑忛�熸參琛�");
+//        ledBean.setcontent3("鏃犻渶鍙栧崱");
+//        ledBean.setcontent4("鎵爜缂磋垂");
+//        ledBean.setdisMode1(0);
+//        ledBean.setdisMode2(0);
+//        ledBean.setdisMode3(0);
+//        ledBean.setdisMode4(0);
+//        ledBean.setvoiceContent("");
+//        ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
+//        byte[] dataX = new byte[resultData.getlenth()];
+//        System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
+//        String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
+//        data1 = data1.replaceAll("\r\n", "");
+//        noOpen(request,response,data1);
+//    }
+//
+//    public void inLedShowDefault(Integer parkId,HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
+//        String num = redisTemplate.opsForValue().get("car_park_" +  parkId);
+//        String con3 = "";
+//        String con4 = "";
+//        if(num == null){
+//            num = "0";
+//        }
+//        Park byId = parkService.getById(parkId);
+//        int i = byId.getNum() - Integer.parseInt(num);
+//        if(i<=0){
+//            i = 0;
+//            con3 = "杞︿綅宸叉弧";
+//            con4 = "璇烽┒绂�";
+//        }else {
+//            con3 = "鎺掗槦绛夊��";
+//            con4 = "浣欎綅:"+i;
+//        }
+//        LedBean ledBean = new LedBean();
+//        ledBean.setcolor1(0);
+//        ledBean.setcolor2(0);
+//        ledBean.setcolor3(0);
+//        ledBean.setcolor4(0);
+//        ledBean.setcontent1("涓�杞︿竴鏉�");
+//        ledBean.setcontent2("鍑忛�熸參琛�");
+//        ledBean.setcontent3(con3);
+//        ledBean.setcontent4(con4);
+//        ledBean.setdisMode1(0);
+//        ledBean.setdisMode2(0);
+//        ledBean.setdisMode3(0);
+//        ledBean.setdisMode4(0);
+//        ledBean.setvoiceContent("");
+//        ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
+//        byte[] dataX = new byte[resultData.getlenth()];
+//        System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
+//        String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
+//        data1 = data1.replaceAll("\r\n", "");
+//        noOpen(request,response,data1);
+//    }
+//
+//
+//}
diff --git a/src/main/java/com/boying/controller/car/PushCallback.java b/src/main/java/com/boying/controller/car/PushCallback.java
new file mode 100644
index 0000000..412adbe
--- /dev/null
+++ b/src/main/java/com/boying/controller/car/PushCallback.java
@@ -0,0 +1,44 @@
+package com.boying.controller.car;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName PushCallback.java
+ * @Description TODO
+ * @createTime 2024骞�03鏈�20鏃� 15:42:00
+ */
+import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
+import org.eclipse.paho.client.mqttv3.MqttCallback;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
+/**
+ * 蹇呴』瀹炵幇MqttCallback鐨勬帴鍙e苟瀹炵幇瀵瑰簲鐨勭浉鍏虫帴鍙f柟娉旵allBack 绫诲皢瀹炵幇 MqttCallBack銆�
+ * 姣忎釜瀹㈡埛鏈烘爣璇嗛兘闇�瑕佷竴涓洖璋冨疄渚嬨�傚湪姝ょず渚嬩腑锛屾瀯閫犲嚱鏁颁紶閫掑鎴锋満鏍囪瘑浠ュ彟瀛樹负瀹炰緥鏁版嵁銆�
+ * 鍦ㄥ洖璋冧腑锛屽皢瀹冪敤鏉ユ爣璇嗗凡缁忓惎鍔ㄤ簡璇ュ洖璋冪殑鍝釜瀹炰緥銆�
+ * 蹇呴』鍦ㄥ洖璋冪被涓疄鐜颁笁涓柟娉曪細
+ *  public void messageArrived(MqttTopic topic, MqttMessage message)鎺ユ敹宸茬粡棰勮鐨勫彂甯冦��
+ *  public void connectionLost(Throwable cause)鍦ㄦ柇寮�杩炴帴鏃惰皟鐢ㄣ��
+ *  public void deliveryComplete(MqttDeliveryToken token))
+ *  鎺ユ敹鍒板凡缁忓彂甯冪殑 QoS 1 鎴� QoS 2 娑堟伅鐨勪紶閫掍护鐗屾椂璋冪敤銆�
+ *  鐢� MqttClient.connect 婵�娲绘鍥炶皟銆�
+ */
+public class PushCallback implements MqttCallback{
+
+    @Override
+    public void connectionLost(Throwable cause) {
+        // 杩炴帴涓㈠け鍚庯紝涓�鑸湪杩欓噷闈㈣繘琛岄噸杩�
+        System.out.println("杩炴帴鏂紑鈥︹�︼紙鍙互鍋氶噸杩烇級");
+    }
+
+    @Override
+    public void deliveryComplete(IMqttDeliveryToken token) {
+        System.out.println("deliveryComplete---------" + token.isComplete());
+    }
+
+    @Override
+    public void messageArrived(String topic, MqttMessage message) throws Exception {
+        // subscribe鍚庡緱鍒扮殑娑堟伅浼氭墽琛屽埌杩欓噷闈�
+        System.out.println("鎺ユ敹娑堟伅涓婚:" + topic + "  鎺ユ敹娑堟伅Qos:" + message.getQos() + "鎺ユ敹娑堟伅鍐呭:" + new String(message.getPayload()));
+
+    }
+}
diff --git a/src/main/java/com/boying/controller/car/ServerMQTT.java b/src/main/java/com/boying/controller/car/ServerMQTT.java
new file mode 100644
index 0000000..e2254a9
--- /dev/null
+++ b/src/main/java/com/boying/controller/car/ServerMQTT.java
@@ -0,0 +1,93 @@
+package com.boying.controller.car;
+
+import org.eclipse.paho.client.mqttv3.*;
+import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName ServerMQTT.java
+ * @Description TODO
+ * @createTime 2024骞�03鏈�20鏃� 15:43:00
+ */
+public class ServerMQTT {
+
+    public static void main(String[] args) throws MqttException {
+        ServerMQTT server = new ServerMQTT();
+
+        server.message = new MqttMessage();
+        server.message.setQos(2);
+        server.message.setRetained(true);
+        server.message.setPayload("ServerMQTT".getBytes());
+        server.publish(server.topic , server.message);
+        System.out.println(server.message.isRetained() + "------ratained鐘舵��");
+    }
+
+    //MQTT瀹夎鐨勬湇鍔″櫒鍦板潃鍜岀鍙e彿
+    public static final String HOST = "tcp://39.96.92.240:9092";
+    //瀹氫箟涓�涓富棰�
+    public static final String TOPIC = "/device/message/up/ivs_result";
+    //瀹氫箟MQTT鐨処D锛屽彲浠ュ湪MQTT鏈嶅姟閰嶇疆涓寚瀹�
+    private static final String clientid = "client-1";
+
+    private MqttClient client;
+    private MqttTopic topic;
+    private String userName = "mqtt";
+    private String passWord = "mqtt";
+    private MqttMessage message;
+
+    /**
+     * g鏋勯�犲嚱鏁�
+     */
+    public ServerMQTT() throws MqttException {
+        // MemoryPersistence璁剧疆clientid鐨勪繚瀛樺舰寮忥紝榛樿涓轰互鍐呭瓨淇濆瓨
+        client = new MqttClient(HOST, clientid, new MemoryPersistence());
+        connect();
+    }
+
+    /**
+     * l杩炴帴鏈嶅姟鍣�
+     */
+    private void connect() {
+        MqttConnectOptions options = new MqttConnectOptions();
+        options.setCleanSession(false);
+        options.setUserName(userName);
+        options.setPassword(passWord.toCharArray());
+        // 璁剧疆瓒呮椂鏃堕棿
+        options.setConnectionTimeout(10);
+        // 璁剧疆浼氳瘽蹇冭烦鏃堕棿
+        options.setKeepAliveInterval(20);
+        try {
+            client.setCallback(new MqttCallback() {
+                @Override
+                public void connectionLost(Throwable cause) {
+                    // 杩炴帴涓㈠け鍚庯紝涓�鑸湪杩欓噷闈㈣繘琛岄噸杩�
+                    System.out.println("杩炴帴鏂紑鈥︹�︼紙鍙互鍋氶噸杩烇級");
+                }
+                @Override
+                public void deliveryComplete(IMqttDeliveryToken token) {
+                    System.out.println("deliveryComplete---------" + token.isComplete());
+                }
+                @Override
+                public void messageArrived(String topic, MqttMessage message) throws Exception {
+                    // subscribe鍚庡緱鍒扮殑娑堟伅浼氭墽琛屽埌杩欓噷闈�
+                    System.out.println("鎺ユ敹娑堟伅涓婚:" + topic + "  鎺ユ敹娑堟伅Qos:" + message.getQos() + "鎺ユ敹娑堟伅鍐呭:" + new String(message.getPayload()));
+                }
+            });
+            client.connect(options);
+
+            topic = client.getTopic(TOPIC);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * t鎺ㄩ�佹秷鎭�
+     */
+    public void publish(MqttTopic topic , MqttMessage message) throws MqttPersistenceException, MqttException {
+        MqttDeliveryToken token = topic.publish(message);
+        token.waitForCompletion();
+        System.out.println("message is published completely! " + token.isComplete());
+    }
+}
diff --git a/src/main/java/com/boying/controller/phone/NoticeController.java b/src/main/java/com/boying/controller/phone/NoticeController.java
index 6e6aec6..c23b309 100644
--- a/src/main/java/com/boying/controller/phone/NoticeController.java
+++ b/src/main/java/com/boying/controller/phone/NoticeController.java
@@ -7,6 +7,8 @@
 import com.boying.entity.Park;
 import com.boying.service.EnterParkService;
 import com.boying.service.ParkService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -17,6 +19,7 @@
 @RestController
 @RequestMapping("ffzf/notice")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/notice" , name = "杩濇硶閫氱煡鎺ュ彛" )
 public class NoticeController {
 
     private final EnterParkService enterParkService;
@@ -24,6 +27,7 @@
 
     //鍋滆溅鍦哄唴鏈夎繚娉曠殑杞﹁締
     @PostMapping("/illegalCar")
+    @Operation(summary = "鏍规嵁id鏌ヨ鍋滆溅鍦哄唴鎵�鏈夎繚娉曡溅杈�" , description = "鏍规嵁id鏌ヨ鍋滆溅鍦哄唴鎵�鏈夎繚娉曡溅杈�" )
     public Object illegalCar(Long parkId){
         QueryWrapper<EnterPark> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -35,6 +39,7 @@
 
     //鍋滆溅鍦哄唴鏈夎繚娉曠殑杞﹁締
     @PostMapping("/illegalCar2")
+    @Operation(summary = "鏌ヨ鎵�鏈夊仠杞﹀満鍐呮墍鏈夎繚娉曡溅杈�" , description = "鏌ヨ鎵�鏈夊仠杞﹀満鍐呮墍鏈夎繚娉曡溅杈�" )
     public Object illegalCar2(){
         QueryWrapper<EnterPark> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -48,8 +53,8 @@
         return R.ok(all);
     }
 
-    //鍋滆溅鍦哄唴鐨勮溅杈� 鏍规嵁鐘舵�佹煡璇�
     @PostMapping("/enterPark")
+    @Operation(summary = "鍋滆溅鍦哄唴鐨勮溅杈� 鏍规嵁鐘舵�佹煡璇�" , description = "鍋滆溅鍦哄唴鐨勮溅杈� 鏍规嵁鐘舵�佹煡璇�" )
     public Object enterPark(Integer status, Page page){
         if(status==null){
             Page page1 = enterParkService.page(page);
diff --git a/src/main/java/com/boying/controller/phone/PayController.java b/src/main/java/com/boying/controller/phone/PayController.java
index c3322aa..c69da84 100644
--- a/src/main/java/com/boying/controller/phone/PayController.java
+++ b/src/main/java/com/boying/controller/phone/PayController.java
@@ -15,6 +15,8 @@
 import com.boying.service.*;
 import com.boying.util.HTTPEntityUtil;
 import com.google.gson.Gson;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
@@ -45,6 +47,7 @@
 @RestController
 @RequestMapping("ffzf/ffPay")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/ffPay" , name = "瀵规帴璐㈡斂鏀粯鎺ュ彛" )
 public class PayController extends BaseController {
 
     private final OrderRecordService orderRecordService;
@@ -67,6 +70,7 @@
 
     //鐢熸垚鐢靛瓙缂存鐮�
     @PostMapping("zhiFa")
+    @Operation(summary = "鎵ф硶鐢熸垚缂存鐮�" , description = "鎵ф硶鐢熸垚缂存鐮�" )
     public Object zhiFa(Long id){
         Ticket ticket = ticketService.getById(id);
         if(ticket.getPayStatus()==1){
@@ -168,6 +172,7 @@
 
     //鏀粯鎺ュ彛閫氱煡
     @PostMapping("result")
+    @Operation(summary = "缂磋垂缁撴灉閫氱煡" , description = "缂磋垂缁撴灉閫氱煡" )
     public String result(HttpServletRequest request, String payKey, String payerTypeCode, String payerNum, String payCode, Double amt, String status, String errorInfo, String sign, String signType) throws Exception{
         try {
            // updateOrderRecord(payCode,status);
@@ -179,6 +184,7 @@
 
     //鐢熸垚鐢靛瓙缂存鐮�
     @PostMapping("park2")
+    @Operation(summary = "璐㈡斂缂磋垂鏇存柊鐢熸垚缂存鐮�" , description = "璐㈡斂缂磋垂鏇存柊鐢熸垚缂存鐮�" )
     public Object park2(Long id){
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
         String logs = sdf.format(new Date())+"寮�濮嬫壂鐮佺即璐�------銆媆n";
@@ -277,6 +283,7 @@
      * 缂存涔�
      */
     @PostMapping("park")
+    @Operation(summary = "瀵规帴閭偍鐢熸垚缂存涔�" , description = "瀵规帴閭偍鐢熸垚缂存涔�" )
     public Object park(Long id){
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
         String logs = sdf.format(new Date())+"寮�濮嬫壂鐮佺即璐�------銆媆n";
@@ -389,6 +396,7 @@
      * 鑾峰彇鎵ф硶id
      */
     @PostMapping("getZhifaId")
+    @Operation(summary = "鏇存柊澶у巺缂存鐮�" , description = "鏇存柊澶у巺缂存鐮�" )
     public Object getZhifaId(){
         QueryWrapper<NowPayOrder> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -407,6 +415,7 @@
      * 缂存涔�
      */
     @PostMapping("zhifa")
+    @Operation(summary = "鎵ф硶缂磋垂锛堟柊锛�" , description = "鎵ф硶缂磋垂锛堟柊锛�" )
     public Object zhifa(Long id){
         System.out.println(id+"寮�濮嬬即璐�");
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
diff --git a/src/main/java/com/boying/controller/phone/TicketController.java b/src/main/java/com/boying/controller/phone/TicketController.java
index 9c4c681..6e17f23 100644
--- a/src/main/java/com/boying/controller/phone/TicketController.java
+++ b/src/main/java/com/boying/controller/phone/TicketController.java
@@ -12,6 +12,8 @@
 import com.boying.util.FileUtil;
 import com.boying.util.NumberToCN;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.FilenameUtils;
@@ -38,6 +40,7 @@
 @RestController
 @RequestMapping("ffzf/ticket")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/ticket" , name = "鎵嬫寔寮�缃氬崟鎺ュ彛" )
 public class TicketController{
 
 
@@ -65,6 +68,7 @@
 
     //鍥剧墖鍥炴樉
     @RequestMapping(value = "/showImg", method = RequestMethod.GET)
+    @Operation(summary = "鍥剧墖鍥炴樉" , description = "鍥剧墖鍥炴樉" )
     public void getAwardAsByteArray(HttpServletResponse response, HttpServletRequest request) throws IOException {
         String result = request.getParameter("result");
         InputStream in = null;
@@ -81,6 +85,7 @@
     }
 
     @PostMapping("findPage")
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
     public Object findPage(Page page, Ticket ticket){
         QueryWrapper<Ticket> wrapper =  new QueryWrapper<>();
         wrapper.lambda()
@@ -94,6 +99,7 @@
     }
 
     @PostMapping("/save")
+    @Operation(summary = "淇濆瓨缃氬崟" , description = "淇濆瓨缃氬崟" )
     public Object save(Ticket ticket,HttpServletRequest request) throws IOException{
         String imgStr = "";
         MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
@@ -164,6 +170,7 @@
     }
 
     @PostMapping("/save2")
+    @Operation(summary = "淇濆瓨缃氬崟锛堝簾寮冿級" , description = "淇濆瓨缃氬崟锛堝簾寮冿級" )
     public Object save2(Ticket ticket) throws IOException{
         if(ticket.getUserId()!=null){
             User user = userService.getById(ticket.getUserId());
@@ -194,6 +201,7 @@
      */
     @ApiOperation(value = "閫氳繃id鏌ヨ", notes = "閫氳繃id鏌ヨ")
     @GetMapping("/{id}" )
+    @Operation(summary = "閫氳繃id鏌ヨ缃氬崟" , description = "閫氳繃id鏌ヨ缃氬崟" )
     public R getById(@PathVariable("id" ) Integer id) {
         Ticket byId = ticketService.getById(id);
         byId.setContent(violationTypeService.getById(byId.getViolationTypeId()).getContent());
@@ -217,6 +225,7 @@
 
 
     @PostMapping("/delete")
+    @Operation(summary = "鍒犻櫎缃氬崟" , description = "鍒犻櫎缃氬崟" )
     public Object delete(Long id){
         Ticket ticket =ticketService.getById(id);
         ticket.setStatus(3);
@@ -234,6 +243,7 @@
     }
 
     @PostMapping("/updateById")
+    @Operation(summary = "鏇存柊缃氬崟鐘舵��" , description = "鏇存柊缃氬崟鐘舵��" )
     public Object updateById(Ticket ticket){
         if(ticket.getMoney() >0){
             BigDecimal numberOfMoney = new BigDecimal(ticket.getMoney()+"");
@@ -264,6 +274,7 @@
 
     //涓庢墽娉曞鎺�
     @GetMapping("/getResult")
+    @Operation(summary = "涓庢墽娉曞钩鍙板鎺ワ紝鑾峰彇绛惧瓧缁撴灉" , description = "涓庢墽娉曞钩鍙板鎺ワ紝鑾峰彇绛惧瓧缁撴灉" )
     public Object getResult(Ticket ticket){
         ticketService.updateById(ticket);
         return R.ok();
@@ -302,6 +313,7 @@
     }
 
     @PostMapping("/getZhiFa")
+    @Operation(summary = "鏍规嵁鐘舵�佹煡璇㈢綒鍗�" , description = "鏍规嵁鐘舵�佹煡璇㈢綒鍗�" )
     public Object getZhiFa(Integer status,Page page){
 
         QueryWrapper<Ticket> wrapper = new QueryWrapper<>();
@@ -313,6 +325,7 @@
     }
 
     @PostMapping("/getCar")
+    @Operation(summary = "鑾峰彇榛戝悕鍗曡溅杈�" , description = "鑾峰彇榛戝悕鍗曡溅杈�" )
     public Object getCar(String carNo,Page page,int type){
         QueryWrapper<TicketBlack> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -323,6 +336,7 @@
     }
 
     @PostMapping("/getCarList")
+    @Operation(summary = "鏍规嵁杞︾墝鍒嗛〉鑾峰彇缃氬崟" , description = "鏍规嵁杞︾墝鍒嗛〉鑾峰彇缃氬崟" )
     public Object getCarList(String carNo,Page page){
         QueryWrapper<Ticket> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -333,6 +347,7 @@
 
 
     @PostMapping("/noFound")
+    @Operation(summary = "鏇存柊缃氬崟鐘舵�侊紝澧炲姞澶囨敞" , description = "鏇存柊缃氬崟鐘舵�侊紝澧炲姞澶囨敞" )
     public Object noFound(Long ticketId,String remark){
         Ticket ticket = ticketService.getById(ticketId);
         ticket.setStatus(2);
@@ -342,6 +357,7 @@
     }
 
     @PostMapping("/getStatisticByYear")
+    @Operation(summary = "缁熻骞村害缃氬崟" , description = "缁熻骞村害缃氬崟" )
     public Object getStatistic(int year){
         Map<String,Object> map = new HashMap<>();
         List<Object> list = new ArrayList<>();
@@ -378,6 +394,7 @@
     }
 
     @PostMapping("/getOrderList")
+    @Operation(summary = "鏍规嵁骞村拰鏈堢粺璁$綒鍗�" , description = "鏍规嵁骞村拰鏈堢粺璁$綒鍗�" )
     public Object getOrderList(int year,int month){
 
         Date yearFirst = DateUtilOther.getFirstDayOfMonth(year,month);
@@ -391,6 +408,7 @@
     }
 
     @PostMapping("findById")
+    @Operation(summary = "鏍规嵁id鏌ヨ" , description = "鏍规嵁id鏌ヨ" )
     public Object findById(Long id){
         Ticket ticket = ticketService.getById(id);
         if(ticket.getViolationTypeId()!=null){
@@ -408,6 +426,7 @@
      */
     @ApiOperation(value = "鎵嬪姩缂磋垂", notes = "鎵嬪姩缂磋垂")
     @PostMapping("/jiaofei" )
+    @Operation(summary = "鎵嬪姩缂磋垂鏇存柊浜岀淮鐮�" , description = "鎵嬪姩缂磋垂鏇存柊浜岀淮鐮�" )
     public R jiaofei(Integer id) {
         Ticket byId = ticketService.getById(id);
         if(byId.getPayStatus() == 1){
@@ -431,6 +450,7 @@
      */
     @ApiOperation(value = "娴嬭瘯瀵规帴", notes = "娴嬭瘯瀵规帴")
     @GetMapping("/test" )
+    @Operation(summary = "娴嬭瘯瀵规帴鎵ф硶骞冲彴" , description = "娴嬭瘯瀵规帴鎵ф硶骞冲彴" )
     public R test() {
         Ticket byId = ticketService.getById(13);
         byId = ticketService.getNumber(byId);
diff --git a/src/main/java/com/boying/controller/phone/UpdateAppController.java b/src/main/java/com/boying/controller/phone/UpdateAppController.java
index 21a6bc4..de14b69 100644
--- a/src/main/java/com/boying/controller/phone/UpdateAppController.java
+++ b/src/main/java/com/boying/controller/phone/UpdateAppController.java
@@ -3,6 +3,8 @@
 import com.boying.common.R;
 import com.boying.entity.UpdateApp;
 import com.boying.service.UpdateAppService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -13,11 +15,13 @@
 @RestController
 @RequestMapping("ffzf/updateApp")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/updateApp" , name = "app鏇存柊鎺ュ彛" )
 public class UpdateAppController{
 
     private final UpdateAppService updateAppService;
 
     @PostMapping("/getUpdateApp")
+    @Operation(summary = "鑾峰彇鏈�鏂癮pp鐗堟湰" , description = "鑾峰彇鏈�鏂癮pp鐗堟湰" )
     public Object getUpdateApp(){
         List<UpdateApp> all = updateAppService.list();
         if(all.size()==0){
diff --git a/src/main/java/com/boying/controller/phone/YCPayController.java b/src/main/java/com/boying/controller/phone/YCPayController.java
index c556217..9f54dde 100644
--- a/src/main/java/com/boying/controller/phone/YCPayController.java
+++ b/src/main/java/com/boying/controller/phone/YCPayController.java
@@ -13,6 +13,8 @@
 import com.boying.service.*;
 import com.boying.util.DateUtilOther;
 import com.google.gson.Gson;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.http.ResponseEntity;
@@ -46,6 +48,7 @@
 @RestController
 @RequestMapping("/ffzf/api")
 @RequiredArgsConstructor
+@Tag(description = "ffzf/api" , name = "閭偍/閭㈠彴閾惰 瀵规帴鏀粯鎺ュ彛" )
 public class YCPayController {
     private final OutParkService outParkService;
     private final PayLogService payLogService;
@@ -68,6 +71,7 @@
      * @return
      */
     @GetMapping("/getByQueryId")
+    @Operation(summary = "鏍规嵁鍑哄満id鑾峰彇鍑哄満鏁版嵁" , description = "鏍规嵁鍑哄満id鑾峰彇鍑哄満鏁版嵁" )
     public Object getByQueryId(Long queryId){
         if(queryId == null){
             return R.failed("鍙傛暟涓虹┖");
@@ -83,6 +87,7 @@
      * 缂存涔�
      */
     @PostMapping("park")
+    @Operation(summary = "閭偍鐢宠缂存涔�" , description = "閭偍鐢宠缂存涔�" )
     public Object park(Long id){
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
         OutPark outPark =  outParkService.getById(id);
@@ -152,6 +157,7 @@
      * @return
      */
     @PostMapping("parkJudg")
+    @Operation(summary = "鍒ゆ柇鏀粯绔槸鍚﹀凡缁忕敵璇疯繃鏀粯" , description = "鍒ゆ柇鏀粯绔槸鍚﹀凡缁忕敵璇疯繃鏀粯" )
     public Object parkJudg(Long id){
         if(id == null){
             return R.failed("鏈壘鍒版暟鎹紝璇风◢鍚庨噸鏂扮偣鍑�");
@@ -182,6 +188,7 @@
      * 鍒ゆ柇鏄惁缂磋垂
      */
     @PostMapping("parkXT")
+    @Operation(summary = "閭㈠彴閾惰鐢宠缂磋垂" , description = "閭㈠彴閾惰鐢宠缂磋垂" )
     public Object parkXT(Long id){
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
         OutPark outPark =  outParkService.getById(id);
@@ -256,6 +263,7 @@
      * 闃块噷缂磋垂
      */
     @PostMapping("payByAli")
+    @Operation(summary = "閭㈠彴閾惰鏀粯瀹濈即璐�" , description = "閭㈠彴閾惰鏀粯瀹濈即璐�" )
     public Object payByAli(Long id){
         OutPark outPark =  outParkService.getById(id);
         String xtyhpay = systemConfigProperties.getXTYHPAY();
@@ -331,6 +339,7 @@
      * 鑾峰彇寰俊openid
      */
     @PostMapping("getOpenId")
+    @Operation(summary = "閭㈠彴閾惰鑾峰彇寰俊鐢ㄦ埛openid" , description = "閭㈠彴閾惰鑾峰彇寰俊鐢ㄦ埛openid" )
     public Object park(Long id,String code){
         OutPark outPark =  outParkService.getById(id);
         String openIdByCode = wxService.getOpenIdByCode(code);
@@ -342,6 +351,7 @@
      * 寰俊缂磋垂
      */
     @PostMapping("payByWX")
+    @Operation(summary = "閭㈠彴閾惰寰俊鏀粯" , description = "閭㈠彴閾惰寰俊鏀粯" )
     public Object payByWX(Long id,String openId){
         System.out.println("寮�濮嬫敮浠�");
         OutPark outPark =  outParkService.getById(id);
@@ -434,6 +444,7 @@
      * @return
      */
     @GetMapping("/result")
+    @Operation(summary = "閭偍鑾峰緱鏀粯鍥炶皟" , description = "閭偍鑾峰緱鏀粯鍥炶皟" )
     public Object result(Long queryId,int success,int msg){
         OutPark byId = outParkService.getById(queryId);
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
@@ -468,6 +479,7 @@
      * @return
      */
     @PostMapping("/getResult")
+    @Operation(summary = "閭㈠彴閾惰鏀粯鍥炶皟鎺ュ彛" , description = "閭㈠彴閾惰鏀粯鍥炶皟鎺ュ彛" )
     public Object getResult(HttpServletRequest request){
         System.out.println("getResult鏀跺埌璁块棶");
         String respCode = request.getParameter("respCode");
@@ -522,6 +534,7 @@
      * @return
      */
     @PostMapping ("/checkbill")
+    @Operation(summary = "閭偍瀵硅处鎺ュ彛" , description = "閭偍瀵硅处鎺ュ彛" )
     public Object checkbill(@RequestBody Map params){
         String checkDate = (String) params.get("checkDate");
         String tranDate = (String) params.get("tranDate");
@@ -543,6 +556,7 @@
      * @return
      */
     @PostMapping ("/checkbillXTYH")
+    @Operation(summary = "閭㈠彴閾惰瀵硅处鎺ュ彛" , description = "閭㈠彴閾惰瀵硅处鎺ュ彛" )
     public Object checkbillXTYH(String date){
         String xtyhpay = systemConfigProperties.getXTYHPAY();
         Map<String,Object> map = new HashMap<>();
@@ -587,6 +601,7 @@
      * @return
      */
     @PostMapping ("/searchPayStatus")
+    @Operation(summary = "浜ゆ槗鐘舵�佹煡璇�" , description = "浜ゆ槗鐘舵�佹煡璇�" )
     public Object searchPayStatus(String txnOrderId,String txnOrderTime){
         OutPark outPark = outParkService.findByOrderId(txnOrderId);
         if(outPark == null){
diff --git a/src/main/java/com/boying/job/DaPingScheduled.java b/src/main/java/com/boying/job/DaPingScheduled.java
index 512abef..acd4274 100644
--- a/src/main/java/com/boying/job/DaPingScheduled.java
+++ b/src/main/java/com/boying/job/DaPingScheduled.java
@@ -29,7 +29,7 @@
     @Autowired
     private TicketBlackService ticketBlackService;
 
-    @Scheduled(cron = "0 0/40 * * * ?")
+    //@Scheduled(cron = "0 0/40 * * * ?")
     public void execute() throws IOException {
         System.out.println("寮�濮嬪畾鏃朵换鍔�-------銆�");
 //        List<TicketBlack> list = ticketBlackService.updateType();
diff --git a/src/main/java/com/boying/job/PayResult2Scheduled.java b/src/main/java/com/boying/job/PayResult2Scheduled.java
index 32b927c..a40ded2 100644
--- a/src/main/java/com/boying/job/PayResult2Scheduled.java
+++ b/src/main/java/com/boying/job/PayResult2Scheduled.java
@@ -37,7 +37,7 @@
 
     Boolean taskFlag = false;
 
-    @Scheduled(cron = "0/2 * * * * ?")
+    //@Scheduled(cron = "0/2 * * * * ?")
     public void execute() throws Exception {
         if(taskFlag == true){
             System.out.println("姝e湪杩愯锛屽己鍒堕��鍑�-------銆�");
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index fd1c5ce..7c84428 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -5,7 +5,7 @@
   datasource:
     url: jdbc:mysql://localhost:3306/ffparknew?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
     username: root
-    password: 2009Boying!@#
+    password: rootroot
     driverClassName: com.mysql.cj.jdbc.Driver
     #杩炴帴姹�
     hikari:
@@ -17,7 +17,13 @@
       max-lifetime: 1800000
       connection-timeout: 30000
       connection-test-query: SELECT 1
-
+security:
+  oauth2:
+    client:
+      ignore-urls:
+        - /webjars/**
+        - /v3/api-docs/**
+        - /doc.html
   jpa:
     database: mysql
     show-sql: true
@@ -32,8 +38,8 @@
       max-file-size: 50MB
       max-request-size: 50MB
 mybatis-plus:
-  #configuration:
-    #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+  configuration:
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
 # slf4j鏃ュ織閰嶇疆
 logging:
   config: classpath:logback.xml
@@ -77,12 +83,22 @@
   logPath: D:/FFproject/log/
   filePath: D:/FFproject/file/
 
+
 #椤圭洰閰嶇疆
 ffzf:
   ip: http://36.134.129.218:6060/
   loginIp: http://36.134.129.218:9999/auth/oauth/token
   info: api/getInfo
   getNumber: api/getNumber
+  #XTYHPAY: http://xiangniupaydev.xtbank.com:28085/ifsp-payweb/SOA/txnAccept
+  XTYHPAY: https://xiangniupay.xtbank.com/ifsp-payweb/SOA/txnAccept
+  #XTYHRESULT: http://39.96.92.240:8089/ffzf/api/getResult
+  XTYHRESULT: http://183.196.93.178:8089/ffzf/api/getResult
+  #XTYHMERID: 8202309110000001
+  XTYHMERID: 8202308300000015
+  XTYHMERNAME: 閭兏甯傚嘲宄扮熆鍖烘粡婧愬缓璁惧彂灞曟湁闄愬叕鍙�
+  XTYHAPPID: wx46e756aed958f895
+
 
 
 

--
Gitblit v1.9.1