From 7bc78d8f70a4d11e46f8bd640228804a3dd0dc68 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期一, 22 四月 2024 10:52:29 +0800
Subject: [PATCH] Merge branch 'master2'

---
 src/main/java/com/boying/controller/car/PlateServlet2.java |  146 +++++++++++++++++++++++++++++++++++-------------
 1 files changed, 105 insertions(+), 41 deletions(-)

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);

--
Gitblit v1.9.1