kongdeqiang
2024-03-25 d6aa1029a1c538cd2227f0026ad5adbaa1739726
src/main/java/com/boying/controller/car/PlateServlet3.java
@@ -4,6 +4,7 @@
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;
@@ -11,6 +12,7 @@
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;
@@ -18,6 +20,7 @@
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;
@@ -31,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;
@@ -57,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";
    /**
@@ -136,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){
                //待开闸
@@ -167,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);
                    }
@@ -338,18 +368,36 @@
            if(Integer.parseInt(num) >= byId.getNum() ){
                return R.failed(null,"禁止通行,车位已满");
            }else {
                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);//发现有违章
                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("非法操作");
                    }
                }
                enterParkService.deleteByCarNo(enterPark.getCarNo(),enterPark.getParkId());
                enterParkService.save(enterPark);
                return R.ok();
            }
        }
        return R.failed(null,"数据异常");
@@ -391,6 +439,15 @@
                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();
            }
@@ -462,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 {
@@ -525,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();
            }
@@ -541,7 +597,7 @@
        barrier.setCarNo(carNo);
        //led展示
        if(toDayHrMinSec == null){
            toDayHrMinSec = "不足两小时";
            toDayHrMinSec = "入场记录异常,请联系管理员";
        }
        //判断是否在白名单
        QueryWrapper<WhiteList> wrapper = new QueryWrapper<>();
@@ -553,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())){
@@ -567,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;
                                }
                            }
@@ -578,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;
    }
@@ -609,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 {
@@ -735,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);
@@ -781,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--;