From acf352921487e857810a943b008121e33404e9ae Mon Sep 17 00:00:00 2001
From: kongdeqiang <kongdeqiang960204@163.com>
Date: 星期二, 15 四月 2025 16:56:50 +0800
Subject: [PATCH] fix:白名单新增bug
---
src/main/java/com/boying/controller/car/PlateServlet2.java | 201 +++++++++++++++++++++++++++++++++++---------------
1 files changed, 141 insertions(+), 60 deletions(-)
diff --git a/src/main/java/com/boying/controller/car/PlateServlet2.java b/src/main/java/com/boying/controller/car/PlateServlet2.java
index fb6ede3..75b1ebd 100644
--- a/src/main/java/com/boying/controller/car/PlateServlet2.java
+++ b/src/main/java/com/boying/controller/car/PlateServlet2.java
@@ -11,10 +11,13 @@
import com.boying.entity.led.ResultData;
import com.boying.service.*;
import com.boying.util.DateUtilOther;
+import com.boying.util.StringUtil;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
@@ -24,9 +27,12 @@
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.sound.sampled.AudioFormat;
import java.io.*;
+import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.time.Duration;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.Base64;
@@ -38,11 +44,14 @@
* Servlet implementation class PlateServlet
*/
@Controller
-@RequestMapping("/car")
+@RequestMapping("/ffzf/car2")
@RequiredArgsConstructor
public class PlateServlet2 extends HttpServlet {
private static final long serialVersionUID = 1L;
- private final SystemConfigProperties systemConfigProperties;
+ @Value("${ffpark.logPath}")
+ private String logPath;
+// @Autowired
+// private final SystemConfigProperties systemConfigProperties;
private final StringRedisTemplate redisTemplate;
private final ParkService parkService;
private final OutParkService outParkService;
@@ -51,7 +60,8 @@
private final TicketService ticketService;
private final CostRuleService costRuleService;
private final WhiteListService whiteListService;
- private final String LEDURL = "http://localhost:9988/LedShow/IGetResultDataAllLine";
+ private final OutParkLogService outParkLogService;
+ private final String LEDURL = "http://192.168.31.212:9988/LedShow/IGetResultDataAllLine";
/**
* 鍥炲寮�闂�
@@ -111,10 +121,26 @@
out.close();
}
+// protected void easyOpen(HttpServletRequest request, HttpServletResponse response) throws IOException {
+// response.setContentType("text/json");
+// PrintWriter out = response.getWriter();
+// out.println("{\"Response_AlarmInfoPlate\":{\"info\":\"ok\",\"content\":\"...\",\"is_pay\":\"true\",\"ivs_ioctrl\":{\"delay\":800,\"io\":0,\"value\":2}}}");
+// out.flush();
+// out.close();
+// }
+
protected void easyOpen(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/json");
PrintWriter out = response.getWriter();
- out.println("{\"Response_AlarmInfoPlate\":{\"info\":\"ok\",\"content\":\"...\",\"is_pay\":\"true\"}}");
+ out.println("{\"Response_AlarmInfoPlate\":{\"ivs_ioctrl\":{\"delay\":1000,\"io\":0,\"value\":2}}}");
+ out.flush();
+ out.close();
+ }
+
+ protected void easyNoOpen(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ response.setContentType("text/json");
+ PrintWriter out = response.getWriter();
+ out.println("{\"Response_AlarmInfoPlate\":{\"info\":\"error\",\"content\":\"...\",\"is_pay\":\"false\"}}");
out.flush();
out.close();
}
@@ -122,9 +148,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){
//寰呭紑闂�
@@ -136,9 +166,11 @@
int i = Integer.parseInt(redisnum);
i--;
if(i<0){
+ String s= "2."+barrier.getCarNo()+"闂告満鎵嬪姩鍚姩锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS);
redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
}else {
+ String s= "2."+barrier.getCarNo()+"闂告満鎵嬪姩鍚姩锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS);
redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
}
@@ -149,31 +181,52 @@
barrier.setStatus(0);
barrier.setUpdateTime(LocalDateTime.now());
barrierService.saveOrUpdate(barrier);
+
+ String jsonValue = JSON.toJSONString(barrier);
+ redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue);
easyOpen(request,response);
}else {
//涓嶉渶寮�闂�
- barrier.setStatus(0);
- barrier.setUpdateTime(LocalDateTime.now());
- barrierService.saveOrUpdate(barrier);
- OutPark outPark = outParkService.count4(barrier.getId());
- if(outPark!=null){
- if(barrier.getType() == 0){
- int i = Integer.parseInt(redisnum);
- i--;
- if(i<0){
- redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS);
- redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
- }else {
- redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS);
- redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
+ LocalDateTime now = LocalDateTime.now();
+ LocalDateTime updateTime = barrier.getUpdateTime();
+ Duration duration = Duration.between(updateTime,now);
+ long minutes = duration.toMinutes();
+ if(minutes>=2){
+ barrier.setStatus(0);
+ barrier.setUpdateTime(LocalDateTime.now());
+ barrierService.saveOrUpdate(barrier);
+ }
+
+ String jsonValue = JSON.toJSONString(barrier);
+ redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue);
+ if(barrier.getType() == 0){
+ OutPark outPark = outParkService.count4(barrier.getId());
+ if(outPark!=null){
+ if(barrier.getType() == 0){
+ int i = Integer.parseInt(redisnum);
+ i--;
+ if(i<0){
+ String s= "2."+outPark.getCarNo()+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+ redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS);
+ redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
+ }else {
+ String s= "2."+outPark.getCarNo()+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+ redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS);
+ redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
+ }
}
+ outPark.setStatus2(1);
+ outParkService.saveOrUpdate(outPark);
+ easyOpen(request,response);
+ OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId());
+ byOutPark.setOpenTime(LocalDateTime.now());
+ outParkLogService.saveOrUpdate(byOutPark);
+ enterParkService.deleteByCarNo(outPark.getCarNo(), barrier.getParkId());
+ redisTemplate.delete("outPark-"+outPark.getBarrierId());
}
- outPark.setStatus2(1);
- outParkService.saveOrUpdate(outPark);
- easyOpen(request,response);
}
if(barrier.getType() == 1){
- boolean in = barrierService.getDateDifIn(barrier.getId());
+ boolean in = barrierService.getDateDifIn(park.getId());
if(in){
inLedShowDefault(park.getId(),request,response);
}
@@ -185,6 +238,8 @@
}
}
+ }else {
+ easyNoOpen(request,response);
}
}
/**
@@ -252,29 +307,31 @@
s+="鏌ヨ閬撻椄涓虹┖\n";
}else{
if(barrier.getType()==0){
+ easyOpen(request,response);
//noOpen(request,response);
- outPark(license, barrier.getId(), barrier.getParkId(),request,response);
- s+=license+"-淇濆瓨鍑哄満璁板綍\n";
+// outPark(license, barrier.getId(), barrier.getParkId(),request,response);
+// s+=license+"-淇濆瓨鍑哄満璁板綍\n";
}else{
- String num = redisTemplate.opsForValue().get("car_park_" + barrier.getParkId());
- if(StringUtils.isBlank(num)){
- num = "0";
- redisTemplate.opsForValue().set("car_park_" + barrier.getParkId(),num,30, TimeUnit.DAYS);
- redisTemplate.opsForValue().set("park_up_" + barrier.getParkId(),"true",30, TimeUnit.DAYS);
- }
- Park byId = parkService.getById(barrier.getParkId());
- if(Integer.parseInt(num) >= byId.getNum() ){
- //led鏄剧ず
- inLedFullShow(code, license,barrier.getParkId(),request,response);
- }else {
- //led鏄剧ず
- inLedShow(code, license,barrier.getParkId(),request,response);
- enterPark(license,barrier.getId(),barrier.getParkId());
- s+=license+"-淇濆瓨鍏ュ満璁板綍\n";
- }
+ easyOpen(request,response);
+// String num = redisTemplate.opsForValue().get("car_park_" + barrier.getParkId());
+// if(StringUtils.isBlank(num)){
+// num = "0";
+// redisTemplate.opsForValue().set("car_park_" + barrier.getParkId(),num,30, TimeUnit.DAYS);
+// redisTemplate.opsForValue().set("park_up_" + barrier.getParkId(),"true",30, TimeUnit.DAYS);
+// }
+// Park byId = parkService.getById(barrier.getParkId());
+// if(Integer.parseInt(num) >= byId.getNum() ){
+// //led鏄剧ず
+// inLedFullShow(code, license,barrier.getParkId(),request,response);
+// }else {
+// //led鏄剧ず
+// inLedShow(code, license,barrier.getParkId(),request,response);
+// enterPark(license,barrier.getId(),barrier.getParkId());
+// s+=license+"-淇濆瓨鍏ュ満璁板綍\n";
+// }
}
}
- writeTxt(s);
+ // writeTxt(s);
}while(false);
}
catch (Exception e) {
@@ -290,7 +347,7 @@
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
try
{
- FileWriter f = new FileWriter(systemConfigProperties.getLogPath()+sdf.format(new Date())+".txt",true);
+ FileWriter f = new FileWriter(logPath+sdf.format(new Date())+".txt",true);
BufferedWriter bw=new BufferedWriter(f);
bw.write(txt);
bw.newLine();
@@ -337,6 +394,8 @@
enterPark.setStatus(1);//鍙戠幇鏈夎繚绔�
}
enterParkService.saveOrUpdate(enterPark);
+ String jsonValue = JSON.toJSONString(enterPark);
+ redisTemplate.opsForValue().set("enterPark_dif_"+ parkId, jsonValue);
Barrier barrier = barrierService.getById(barrierId);
barrier.setType2(1);
@@ -394,6 +453,8 @@
byCarNoAndBarrierId.setStatus(1);
byCarNoAndBarrierId.setStatus2(1);
outParkService.saveOrUpdate(byCarNoAndBarrierId);
+ String jsonValue = JSON.toJSONString(byCarNoAndBarrierId);
+ redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
return 0.0;
}else{
if(w.getParkIds()!=null){
@@ -408,6 +469,8 @@
byCarNoAndBarrierId.setStatus(1);
byCarNoAndBarrierId.setStatus2(1);
outParkService.saveOrUpdate(byCarNoAndBarrierId);
+ String jsonValue = JSON.toJSONString(byCarNoAndBarrierId);
+ redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
return 0.0;
}
}
@@ -418,10 +481,14 @@
}
if(outPark.getPrice()==0&&outPark.getStatus3()==0){
System.out.println(outPark.getCarNo()+"璇ヨ溅涓嶉渶瑕佺即璐�");
+ String jsonValue = JSON.toJSONString(outPark);
+ redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,0);
}else {
//闇�瑕佺即璐规垨鑰呮湁杩濈珷
System.out.println(outPark.getCarNo()+"璇ヨ溅闇�瑕佺即璐�"+outPark.getPrice());
+ String jsonValue = JSON.toJSONString(outPark);
+ redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,1);
}
barrierService.saveOrUpdate(barrier);
@@ -498,12 +565,26 @@
.execute()
.body();
ResultData resultData = JSON.parseObject(s1,ResultData.class);
- byte[] dataX = new byte[resultData.getLength()];
- System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLength());
- String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
- data1 = data1.replaceAll("\r\n", "");
-
- open(request,response,data1);//鍏ュ満寮�闂�
+ System.out.println(resultData);
+ String[] split = resultData.getDatas().split("-");
+ String[] dataX = new String[resultData.getLenth()];
+ System.arraycopy(split,0,dataX,0,resultData.getLenth());
+ String s2 = StringUtil.toStr(dataX);
+ //byte[] bytes = StringUtil.HexString2Bytes(s2);
+ byte[] bytes1 = StringUtil.hex2Byte(resultData.getDatas());
+ byte[] bytes = StringUtil.byte2hex(bytes1);
+ for (byte aByte : bytes) {
+ System.out.print(aByte+" ");
+ }
+ System.out.println();
+ System.out.println("bytes.length: "+bytes.length);
+ //String data1 = new String("gb2312");
+ String data1 = Base64.getMimeEncoder().encodeToString(bytes);
+ // String data2 = data1.replace("\n", "");
+ String data3 = data1.replaceAll("\r\n", "") + "=";
+ System.out.println();
+ System.out.println(data3);
+ open(request,response,data3);//鍏ュ満寮�闂�
}
public void inLedFullShow(String ledId, String carNo, Integer parkId,HttpServletRequest request, HttpServletResponse response) throws IOException {
@@ -548,8 +629,8 @@
.execute()
.body();
ResultData resultData = JSON.parseObject(s1,ResultData.class);
- byte[] dataX = new byte[resultData.getLength()];
- System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLength());
+ 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", "");
@@ -579,8 +660,8 @@
.execute()
.body();
ResultData resultData = JSON.parseObject(s1,ResultData.class);
- byte[] dataX = new byte[resultData.getLength()];
- System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLength());
+ 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){
@@ -624,8 +705,8 @@
.execute()
.body();
ResultData resultData = JSON.parseObject(s1,ResultData.class);
- byte[] dataX = new byte[resultData.getLength()];
- System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLength());
+ 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){
@@ -667,8 +748,8 @@
.execute()
.body();
ResultData resultData = JSON.parseObject(s1,ResultData.class);
- byte[] dataX = new byte[resultData.getLength()];
- System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLength());
+ 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);
@@ -705,8 +786,8 @@
.execute()
.body();
ResultData resultData = JSON.parseObject(s1,ResultData.class);
- byte[] dataX = new byte[resultData.getLength()];
- System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLength());
+ 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);
--
Gitblit v1.9.1