From 86c29c1a7d83b8fca6ff26f1171dde89989af5f9 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期一, 22 四月 2024 10:50:32 +0800
Subject: [PATCH] fix : 新增模糊车牌匹配功能
---
src/main/java/com/boying/service/OutParkService.java | 2
src/main/java/com/boying/util/PlateComparator.java | 47 +
src/main/java/com/boying/service/impl/OutParkServiceImpl.java | 24
src/main/java/com/boying/controller/car/PlateServlet3.java | 2034 ++++++++++++++++++++++++++++----------------------------
src/main/java/com/boying/controller/OutParkController.java | 28
5 files changed, 1,114 insertions(+), 1,021 deletions(-)
diff --git a/src/main/java/com/boying/controller/OutParkController.java b/src/main/java/com/boying/controller/OutParkController.java
index 3d0a6e5..927f18a 100644
--- a/src/main/java/com/boying/controller/OutParkController.java
+++ b/src/main/java/com/boying/controller/OutParkController.java
@@ -319,6 +319,34 @@
return R.failed(null,"鏈壘鍒版暟鎹�");
}
}
+ //鎵爜淇敼鍑哄満锛堟ā绯婅溅鐗岋級
+ @GetMapping("/editOutPark")
+ public Object editOutPark(Integer outParkId,Integer enterParkId,Integer type) {
+ double money = 0.0;
+ OutPark outPark = outParkService.getById(outParkId);
+ EnterPark enterPark = enterParkService.getById(enterParkId);
+ if(type == 0){ //鍏ュ満姝g‘锛屾浛鎹㈠嚭鍦猴紝鏇存柊鍑哄満璁板綍
+ outPark.setCarNo(enterPark.getCarNo());
+ }else { //鍑哄満姝g‘锛屾浛鎹㈠叆鍦猴紝鏇存柊鍑哄満璁板綍
+ enterPark.setCarNo(outPark.getCarNo());
+ }
+ 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));
+ money = costRuleService.getMoney(outPark.getParkId(), outPark.getEnterTime(), outPark.getCreateTime(), 1);
+ //鍏ュ満璁板綍淇濆瓨涓�涓�
+ enterPark.setPrice(money);
+ enterPark.setIsPay(0);
+ enterParkService.updateById(enterPark);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ outPark.setPrice(money);
+ outParkService.saveOrUpdate(outPark);
+ return R.ok(outPark,"鏇存柊鎴愬姛");
+ }
+
@GetMapping("/editEnterPark")
public Object editEnterPark(String carNo ,Integer parkId,String time) {
QueryWrapper<Barrier> wrapper = new QueryWrapper<>();
diff --git a/src/main/java/com/boying/controller/car/PlateServlet3.java b/src/main/java/com/boying/controller/car/PlateServlet3.java
index afd3e77..af5e69f 100644
--- a/src/main/java/com/boying/controller/car/PlateServlet3.java
+++ b/src/main/java/com/boying/controller/car/PlateServlet3.java
@@ -1,1017 +1,1017 @@
-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 easyOpen2(HttpServletRequest request, HttpServletResponse response) throws IOException {
- response.setContentType("text/json");
- PrintWriter out = response.getWriter();
- 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")
- 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(outPark,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(outPark,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(OutPark outPark,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);
-
- //缂撳瓨鍦╮edis閲�,蹇冭烦鎺ュ彛鍘绘姮鏉�
- String jsonValue = JSON.toJSONString(outPark);
- redisTemplate.opsForValue().set("outPark-"+outPark.getBarrierId(), jsonValue);
-
- 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 easyOpen2(HttpServletRequest request, HttpServletResponse response) throws IOException {
+// response.setContentType("text/json");
+// PrintWriter out = response.getWriter();
+// 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")
+// 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(outPark,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(outPark,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(OutPark outPark,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);
+//
+// //缂撳瓨鍦╮edis閲�,蹇冭烦鎺ュ彛鍘绘姮鏉�
+// String jsonValue = JSON.toJSONString(outPark);
+// redisTemplate.opsForValue().set("outPark-"+outPark.getBarrierId(), jsonValue);
+//
+// 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/service/OutParkService.java b/src/main/java/com/boying/service/OutParkService.java
index 4081de4..1049d4a 100644
--- a/src/main/java/com/boying/service/OutParkService.java
+++ b/src/main/java/com/boying/service/OutParkService.java
@@ -7,6 +7,7 @@
import java.time.LocalDateTime;
import java.util.List;
+import java.util.Map;
/**
* @author kdq
@@ -48,4 +49,5 @@
OutPark findBy10min(String carNo, Integer parkId, LocalDateTime dateTime, Integer outParkId);
+ List<Map<String, Object>> getLikeCar(String carNo, Integer parkId, LocalDateTime dateTime);
}
diff --git a/src/main/java/com/boying/service/impl/OutParkServiceImpl.java b/src/main/java/com/boying/service/impl/OutParkServiceImpl.java
index c6ace3d..e5c929e 100644
--- a/src/main/java/com/boying/service/impl/OutParkServiceImpl.java
+++ b/src/main/java/com/boying/service/impl/OutParkServiceImpl.java
@@ -4,14 +4,13 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.boying.entity.Barrier;
-import com.boying.entity.OutPark;
-import com.boying.entity.Park;
-import com.boying.entity.Statistic;
+import com.boying.entity.*;
+import com.boying.mapper.EnterParkMapper;
import com.boying.mapper.OutParkMapper;
import com.boying.mapper.StatisticMapper;
import com.boying.service.OutParkService;
import com.boying.service.StatisticService;
+import com.boying.util.PlateComparator;
import com.boying.util.RedisJsonUtil;
import com.boying.util.StringUtil;
import lombok.AllArgsConstructor;
@@ -35,6 +34,7 @@
@AllArgsConstructor
public class OutParkServiceImpl extends ServiceImpl<OutParkMapper, OutPark> implements OutParkService {
private final OutParkMapper outParkMapper;
+ private final EnterParkMapper enterParkMapper;
private StringRedisTemplate redisTemplate;
@@ -232,6 +232,22 @@
}
@Override
+ public List<Map<String, Object>> getLikeCar(String carNo, Integer parkId, LocalDateTime dateTime) {
+ QueryWrapper<EnterPark> wrapper = new QueryWrapper<>();
+ wrapper.select(" id,car_no,park_id,create_time ");
+ wrapper.lambda()
+ .eq(EnterPark::getParkId,parkId)
+ .lt(EnterPark::getCreateTime,dateTime);
+ List<EnterPark> enterParks = enterParkMapper.selectList(wrapper);
+ if(enterParks !=null && enterParks.size()>0){
+ List<Map<String, Object>> list = PlateComparator.getList(carNo, enterParks);
+ return list;
+ }else {
+ return null;
+ }
+ }
+
+ @Override
public OutPark findBy5min2(String carNo, Integer parkId,LocalDateTime dateTime) {
LocalDateTime localDateTime = dateTime.minusMinutes(7);
QueryWrapper<OutPark> wrapper = new QueryWrapper<>();
diff --git a/src/main/java/com/boying/util/PlateComparator.java b/src/main/java/com/boying/util/PlateComparator.java
new file mode 100644
index 0000000..461a8f5
--- /dev/null
+++ b/src/main/java/com/boying/util/PlateComparator.java
@@ -0,0 +1,47 @@
+package com.boying.util;
+
+import com.baomidou.mybatisplus.core.toolkit.BeanUtils;
+import com.boying.entity.EnterPark;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName PlateComparator.java
+ * @Description TODO
+ * @createTime 2024骞�04鏈�19鏃� 15:57:00
+ */
+public class PlateComparator {
+
+ public static List<Map<String,Object>> getList(String carNo, List<EnterPark> enterParkList) {
+ List<Map<String,Object>> list = new ArrayList<>();
+ for (EnterPark enterPark : enterParkList) {
+ int i = compareLicensePlates(carNo, enterPark.getCarNo());
+ if (i<=2){
+ Map<String, Object> map = BeanUtils.beanToMap(enterPark);
+ map.put("count",i); // 鏂板娆℃暟
+ list.add(map);
+ }
+ }
+ return list;
+
+ }
+
+ public static int compareLicensePlates(String oldLicensePlate, String newLicensePlate) {
+ int length = Math.min(oldLicensePlate.length(), newLicensePlate.length());
+ int count = 0;
+ for (int i = 0; i < length; i++) {
+ if (oldLicensePlate.charAt(i) != newLicensePlate.charAt(i)) {
+ count ++;
+ }
+ }
+ // 濡傛灉鏂拌溅鐗屾瘮鏃ц溅鐗岄暱锛屽垯杩藉姞鏂拌溅鐗屽鍑虹殑瀛楃
+ if (newLicensePlate.length() > oldLicensePlate.length()) {
+ count++;
+ }
+ return count;
+ }
+}
--
Gitblit v1.9.1