From d6aa1029a1c538cd2227f0026ad5adbaa1739726 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期一, 25 三月 2024 16:24:16 +0800
Subject: [PATCH] 出场车辆5分钟之内有正常出场记录的抬杆

---
 src/main/java/com/boying/controller/car/PlateServlet3.java |  511 ++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 378 insertions(+), 133 deletions(-)

diff --git a/src/main/java/com/boying/controller/car/PlateServlet3.java b/src/main/java/com/boying/controller/car/PlateServlet3.java
index a087cd5..ae6f6cc 100644
--- a/src/main/java/com/boying/controller/car/PlateServlet3.java
+++ b/src/main/java/com/boying/controller/car/PlateServlet3.java
@@ -4,12 +4,15 @@
 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;
@@ -17,10 +20,12 @@
 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;
@@ -29,6 +34,7 @@
 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;
@@ -55,6 +61,9 @@
     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";
 
     /**
@@ -134,9 +143,13 @@
     @PostMapping("/status")
     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){
                 //寰呭紑闂�
@@ -165,35 +178,54 @@
                 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){
-                            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);
+                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());
                     }
-                    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);
                     }
@@ -223,14 +255,14 @@
         while((str = reader.readLine()) != null){
             lineStr += str;
         }
-        System.out.println("鑾峰彇鍒扮殑閬撻椄鎺ㄩ�佹暟鎹负锛�"+lineStr);
+       // 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 image = plateResult.get("imageFile").toString();
         String code = alarmInfoPlate.get("serialno").toString();
 
         try {
@@ -267,10 +299,10 @@
                 }
 
 
-//                if(StringUtils.isNotBlank(image)){
-//                    fileInfo = FileUtil.generateBase64StringToFile(image, 1,1);
-//                    fileInfoService.save(fileInfo);
-//                }
+                if(StringUtils.isNotBlank(image)){
+                    fileInfo = FileUtil.generateBase64StringToFile(image, 1,1);
+                    fileInfoService.save(fileInfo);
+                }
 
 
                 System.out.println("缂栧彿锛�"+serialno+"  璁惧璇嗗埆鍒颁簡锛�"+license);
@@ -316,6 +348,138 @@
         }
     }
 
+    /**
+     * 鎵嬫満鍙峰叆鍦�
+     * @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)
     {
@@ -355,44 +519,34 @@
 
 
     public void enterPark(String carNo,Integer barrierId,Integer parkId,FileInfo fileInfo) {
-        Park park = parkService.getById(parkId);
-//        int num = 0;
-//        String s = redisTemplate.opsForValue().get("car_park_" + parkId);
-//        if(park != null){
-//            num = park.getNum();
-//            if(s !=null){
-//                if(Integer.parseInt(s) >= num){
-//                    redisTemplate.opsForValue().set("park_up_" + parkId,"false",30, TimeUnit.DAYS);
-//                    return;
-//                }
-//            }else {
-//                s= "0";
-//                redisTemplate.opsForValue().set("car_park_" + parkId,s,30, TimeUnit.DAYS);
-//                redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
-//            }
-//        }
-        enterParkService.deleteByCarNo(carNo,parkId);
-        EnterPark enterPark = new EnterPark();
-        enterPark.setCarNo(carNo);
-        enterPark.setBarrierId(barrierId);
-        enterPark.setParkId(parkId);
+        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);
+            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);
 
-//        Barrier barrier = barrierService.getById(barrierId);
-//        barrier.setType2(1);
-//        barrierService.saveOrUpdate(barrier);
+        }
     }
 
     public double outPark(String carNo,Integer barrierId,Integer parkId,HttpServletRequest request, HttpServletResponse response,FileInfo fileInfo) throws ServletException, IOException {
@@ -418,6 +572,15 @@
                 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();
             }
@@ -434,7 +597,7 @@
         barrier.setCarNo(carNo);
         //led灞曠ず
         if(toDayHrMinSec == null){
-            toDayHrMinSec = "涓嶈冻涓ゅ皬鏃�";
+            toDayHrMinSec = "鍏ュ満璁板綍寮傚父,璇疯仈绯荤鐞嗗憳";
         }
         //鍒ゆ柇鏄惁鍦ㄧ櫧鍚嶅崟
         QueryWrapper<WhiteList> wrapper = new QueryWrapper<>();
@@ -446,9 +609,14 @@
                 if(w.getType()==0){
                     outLedShowYueZu(barrier.getCarNo(),"鏈堢杞�",parkId,request,response,0);
                     OutPark byCarNoAndBarrierId = outParkService.findByCarNoAndBarrierId(carNo, barrierId);
-                    byCarNoAndBarrierId.setStatus(1);
+                    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())){
@@ -460,9 +628,14 @@
                                 if(pid == outPark.getParkId() && System.currentTimeMillis()<w.getEndTime().getTime()){
                                     outLedShowYueZu(barrier.getCarNo(),"鏈堢杞�",parkId,request,response,0);
                                     OutPark byCarNoAndBarrierId = outParkService.findByCarNoAndBarrierId(carNo, barrierId);
-                                    byCarNoAndBarrierId.setStatus(1);
+                                    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;
                                 }
                             }
@@ -471,19 +644,29 @@
                 }
             }
         }
+        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);
         }
-        barrierService.saveOrUpdate(barrier);
         return money;
     }
 
@@ -502,63 +685,93 @@
 
 
     public void inLedShow(String ledId,String carNo,Integer parkId,HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-        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 = "涓存椂杞�";
+        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 {
-            if (byCarNo.getType() == 0){
-                //鐧藉悕鍗曟案涔呰溅杈�
-                carType = "鏈堢杞�";
+            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(StringUtils.isNotBlank(byCarNo.getParkIds()) && byCarNo.getParkIds().contains(barrier.getParkId()+"")){
+                if (byCarNo.getType() == 0){
+                    //鐧藉悕鍗曟案涔呰溅杈�
                     carType = "鏈堢杞�";
-                    long l = (byCarNo.getEndTime().getTime() - byCarNo.getStartTime().getTime()) / (24 * 3600 * 1000);
-                    carDay = "鏈夋晥鏈熻繕鏈�"+l+"澶�";
                 }else {
-                    carType = "涓存椂杞�";
+                    //鐧藉悕鍗曞浐瀹氬仠杞﹀満杞﹁締
+                    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)){
-            carDay = "娆㈣繋鍏変复";
-        }
+            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", "");
+            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", "");
 
-        open(request,response,data1);//鍏ュ満寮�闂�
+            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 {
@@ -628,21 +841,52 @@
         String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
         data1 = data1.replaceAll("\r\n", "");
         if(type == 0){
-            //寮�闂�
-            open(request,response,data1);
-            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);
+            if(carNo.equals("鏃犺溅鐗�")){
+                noOpen(request,response,data1);
             }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);
+                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);
@@ -674,6 +918,7 @@
         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--;

--
Gitblit v1.9.1