From fb050c0dafa5363a73540dd9e52b78487e25ba0a Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期二, 09 四月 2024 17:32:46 +0800
Subject: [PATCH] fix:新增手动抬杆记录
---
src/main/java/com/boying/controller/car/PlateServlet3.java | 564 +++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 435 insertions(+), 129 deletions(-)
diff --git a/src/main/java/com/boying/controller/car/PlateServlet3.java b/src/main/java/com/boying/controller/car/PlateServlet3.java
index 8e6023b..9cde223 100644
--- a/src/main/java/com/boying/controller/car/PlateServlet3.java
+++ b/src/main/java/com/boying/controller/car/PlateServlet3.java
@@ -4,11 +4,15 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.boying.common.R;
import com.boying.common.SystemConfigProperties;
import com.boying.entity.*;
import com.boying.service.*;
import com.boying.util.DateUtilOther;
+import com.boying.util.FileUtil;
+import com.boying.util.RedisJsonUtil;
import com.boying.util.StringUtil;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
@@ -16,10 +20,12 @@
import ledshow.LedBean;
import ledshow.ResultData;
import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
@@ -28,6 +34,7 @@
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.time.Duration;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.Base64;
@@ -35,11 +42,12 @@
import java.util.List;
import java.util.concurrent.TimeUnit;
+
/**
* Servlet implementation class PlateServlet
*/
@Controller
-@RequestMapping("/car")
+@RequestMapping("/ffzf/car")
@RequiredArgsConstructor
public class PlateServlet3 extends HttpServlet {
private static final long serialVersionUID = 1L;
@@ -52,6 +60,10 @@
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";
/**
@@ -131,9 +143,13 @@
@PostMapping("/status")
public void heart(String serialno,HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
Barrier barrier = barrierService.findByCode(serialno);
- Park park = parkService.getById(barrier.getParkId());
- String redis = redisTemplate.opsForValue().get("park_up_" + park.getId());
+ Park park = parkService.getOneById(barrier.getParkId());
+ // Park park = parkService.getById(barrier.getParkId());
+ // String redis = redisTemplate.opsForValue().get("park_up_" + park.getId());
String redisnum = redisTemplate.opsForValue().get("car_park_" + park.getId());
+ if(StringUtils.isBlank(redisnum)){
+ redisnum = "0";
+ }
if(barrier!=null){
if(barrier.getType2()==1){
//寰呭紑闂�
@@ -145,9 +161,13 @@
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);
}
@@ -158,31 +178,54 @@
barrier.setStatus(0);
barrier.setUpdateTime(LocalDateTime.now());
barrierService.saveOrUpdate(barrier);
+
+ String jsonValue = JSON.toJSONString(barrier);
+ redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue);
easyOpen(request,response);
}else {
//涓嶉渶寮�闂�
- barrier.setStatus(0);
- barrier.setUpdateTime(LocalDateTime.now());
- barrierService.saveOrUpdate(barrier);
- OutPark outPark = outParkService.count4(barrier.getId());
- if(outPark!=null){
- if(barrier.getType() == 0){
- int i = Integer.parseInt(redisnum);
- i--;
- if(i<0){
- 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";
+ writeTxt2(s);
+ redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS);
+ redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
+ }else {
+ String s= "2."+outPark.getCarNo()+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+ writeTxt2(s);
+ redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS);
+ redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
+ }
}
+ outPark.setStatus2(1);
+ outParkService.saveOrUpdate(outPark);
+ easyOpen(request,response);
+ OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId());
+ byOutPark.setOpenTime(LocalDateTime.now());
+ outParkLogService.saveOrUpdate(byOutPark);
+ enterParkService.deleteByCarNo(outPark.getCarNo(), barrier.getParkId());
+ redisTemplate.delete("outPark-"+outPark.getBarrierId());
}
- outPark.setStatus2(1);
- outParkService.saveOrUpdate(outPark);
- easyOpen(request,response);
}
if(barrier.getType() == 1){
- boolean in = barrierService.getDateDifIn(barrier.getId());
+ boolean in = barrierService.getDateDifIn(park.getId());
if(in){
inLedShowDefault(park.getId(),request,response);
}
@@ -208,16 +251,18 @@
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);
+ // 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 {
@@ -253,7 +298,14 @@
break;
}
- System.out.println("缂栧彿锛�"+serialno+"璁惧璇嗗埆鍒颁簡锛�"+license);
+
+ 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+" ";
@@ -264,7 +316,7 @@
easyNoOpen(request,response);
}else{
if(barrier.getType()==0){
- outPark(license, barrier.getId(), barrier.getParkId(),request,response);
+ outPark(license, barrier.getId(), barrier.getParkId(),request,response,fileInfo);
s+=license+"-淇濆瓨鍑哄満璁板綍\n";
}else{
String num = redisTemplate.opsForValue().get("car_park_" + barrier.getParkId());
@@ -279,8 +331,8 @@
inLedFullShow(code, license,barrier.getParkId(),request,response);
}else {
//led鏄剧ず
+ enterPark(license,barrier.getId(),barrier.getParkId(),fileInfo);
inLedShow(code, license,barrier.getParkId(),request,response);
- enterPark(license,barrier.getId(),barrier.getParkId());
s+=license+"-淇濆瓨鍏ュ満璁板綍\n";
}
}
@@ -293,6 +345,138 @@
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("鏈煡璇㈠埌鍏ュ満璁板綍");
}
}
@@ -314,48 +498,58 @@
}
}
-
-
-
- public void enterPark(String carNo,Integer barrierId,Integer parkId) {
- Park park = parkService.getById(parkId);
-// int num = 0;
-// String s = redisTemplate.opsForValue().get("car_park_" + parkId);
-// if(park != null){
-// num = park.getNum();
-// if(s !=null){
-// if(Integer.parseInt(s) >= num){
-// redisTemplate.opsForValue().set("park_up_" + parkId,"false",30, TimeUnit.DAYS);
-// return;
-// }
-// }else {
-// s= "0";
-// redisTemplate.opsForValue().set("car_park_" + parkId,s,30, TimeUnit.DAYS);
-// redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
-// }
-// }
- enterParkService.deleteByCarNo(carNo,parkId);
- EnterPark enterPark = new EnterPark();
- enterPark.setCarNo(carNo);
- enterPark.setBarrierId(barrierId);
- enterPark.setParkId(parkId);
-
- 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);//鍙戠幇鏈夎繚绔�
+ 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();
}
- enterParkService.saveOrUpdate(enterPark);
-
-// Barrier barrier = barrierService.getById(barrierId);
-// barrier.setType2(1);
-// barrierService.saveOrUpdate(barrier);
+ catch(Exception e)
+ {
+ System.out.println("鎵撳嵃閿欒");
+ }
}
- public double outPark(String carNo,Integer barrierId,Integer parkId,HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+
+
+
+ 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;
@@ -378,6 +572,15 @@
outPark.setTime(l/(1000*60));
toDayHrMinSec = DateUtilOther.millisToDayHrMinSec(l/(1000*60));
money = costRuleService.getMoney(parkId, outPark.getEnterTime(), outPark.getCreateTime(), 1);
+
+ //鍏ュ満璁板綍淇濆瓨涓�涓�
+ if(enterPark.getIsPay() != null && enterPark.getIsPay()==1){
+ money = money - enterPark.getPrice();
+ }else {
+ enterPark.setPrice(money);
+ enterPark.setIsPay(0);
+ enterParkService.updateById(enterPark);
+ }
} catch (ParseException e) {
e.printStackTrace();
}
@@ -386,12 +589,15 @@
//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 = "涓嶈冻涓ゅ皬鏃�";
+ toDayHrMinSec = "鍏ュ満璁板綍寮傚父,璇疯仈绯荤鐞嗗憳";
}
//鍒ゆ柇鏄惁鍦ㄧ櫧鍚嶅崟
QueryWrapper<WhiteList> wrapper = new QueryWrapper<>();
@@ -403,12 +609,17 @@
if(w.getType()==0){
outLedShowYueZu(barrier.getCarNo(),"鏈堢杞�",parkId,request,response,0);
OutPark byCarNoAndBarrierId = outParkService.findByCarNoAndBarrierId(carNo, barrierId);
- byCarNoAndBarrierId.setStatus(1);
+ byCarNoAndBarrierId.setStatus(2);
byCarNoAndBarrierId.setStatus2(1);
outParkService.saveOrUpdate(byCarNoAndBarrierId);
+ barrierService.saveOrUpdate(barrier);
+ String jsonValue2 = JSON.toJSONString(barrier);
+ redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue2);
+ String jsonValue = JSON.toJSONString(byCarNoAndBarrierId);
+ redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
return 0.0;
}else{
- if(w.getParkIds()!=null){
+ if(StringUtils.isNotBlank(w.getParkIds())){
if(w.getEndTime()!=null){
String parkIds = w.getParkIds();
String[] split = parkIds.split(",");
@@ -417,9 +628,14 @@
if(pid == outPark.getParkId() && System.currentTimeMillis()<w.getEndTime().getTime()){
outLedShowYueZu(barrier.getCarNo(),"鏈堢杞�",parkId,request,response,0);
OutPark byCarNoAndBarrierId = outParkService.findByCarNoAndBarrierId(carNo, barrierId);
- byCarNoAndBarrierId.setStatus(1);
+ byCarNoAndBarrierId.setStatus(2);
byCarNoAndBarrierId.setStatus2(1);
outParkService.saveOrUpdate(byCarNoAndBarrierId);
+ barrierService.saveOrUpdate(barrier);
+ String jsonValue2 = JSON.toJSONString(barrier);
+ redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue2);
+ String jsonValue = JSON.toJSONString(byCarNoAndBarrierId);
+ redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
return 0.0;
}
}
@@ -428,15 +644,29 @@
}
}
}
+ barrierService.saveOrUpdate(barrier);
+ String jsonValue2 = JSON.toJSONString(barrier);
+ redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue2);
if(outPark.getPrice()==0&&outPark.getStatus3()==0){
System.out.println(outPark.getCarNo()+"璇ヨ溅涓嶉渶瑕佺即璐�");
+ String s= "1."+barrier.getCarNo()+"璇ヨ溅涓嶉渶瑕佺即璐筡n";
+ writeTxt2(s);
+ String jsonValue = JSON.toJSONString(outPark);
+ redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,0);
}else {
//闇�瑕佺即璐规垨鑰呮湁杩濈珷
System.out.println(outPark.getCarNo()+"璇ヨ溅闇�瑕佺即璐�"+outPark.getPrice());
+ String s= "1."+barrier.getCarNo()+"璇ヨ溅闇�瑕佺即璐筡n";
+ writeTxt2(s);
+ OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId());
+ byOutPark.setOutTime(outPark.getCreateTime());
+ byOutPark.setParkId(outPark.getParkId());
+ outParkLogService.saveOrUpdate(byOutPark);
+ String jsonValue = JSON.toJSONString(outPark);
+ redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,1);
}
- barrierService.saveOrUpdate(barrier);
return money;
}
@@ -455,61 +685,93 @@
public void inLedShow(String ledId,String carNo,Integer parkId,HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- String num = redisTemplate.opsForValue().get("car_park_" + parkId);
- if(num == null){
- num = "0";
- }
- Park byId = parkService.getById(parkId);
- int n = Integer.parseInt(num)+1;
- redisTemplate.opsForValue().set("car_park_" + parkId,Integer.toString(n),30, TimeUnit.DAYS);
- int i = byId.getNum() - Integer.parseInt(num);
- if(i<0){
- i = 0;
- }
- String carType = "";
- String carDay = "";
- Barrier barrier = barrierService.findByCode(ledId);
- WhiteList byCarNo = whiteListService.getByCarNo(carNo);
- if(byCarNo == null){
- carType = "涓存椂杞�";
+ TicketBlack black = ticketBlackService.getByCarNo(carNo, 1);
+ if(black != null){
+ LedBean ledBean = new LedBean();
+ ledBean.setcolor1(0);
+ ledBean.setcolor2(0);
+ ledBean.setcolor3(0);
+ ledBean.setcolor4(0);
+ ledBean.setcontent1(carNo);
+ ledBean.setcontent2("榛戝悕鍗曡溅杈�");
+ ledBean.setcontent3("绂佹椹跺叆");
+ ledBean.setcontent4("鑱旂郴绠$悊鍛�");
+ ledBean.setdisMode1(0);
+ ledBean.setdisMode2(0);
+ ledBean.setdisMode3(0);
+ ledBean.setdisMode4(0);
+ ledBean.setvoiceContent("榛戝悕鍗曡溅杈�"+carNo+",绂佹椹跺叆");
+ ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
+ byte[] dataX = new byte[resultData.getlenth()];
+ System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
+ String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
+ data1 = data1.replaceAll("\r\n", "");
+ noOpen(request,response,data1);
}else {
- if (byCarNo.getType() == 0){
- //鐧藉悕鍗曟案涔呰溅杈�
- carType = "鏈堢杞�";
+ String num = redisTemplate.opsForValue().get("car_park_" + parkId);
+ if(num == null){
+ num = "0";
+ }
+ Park byId = parkService.getById(parkId);
+ int n = Integer.parseInt(num)+1;
+ redisTemplate.opsForValue().set("car_park_" + parkId,Integer.toString(n),30, TimeUnit.DAYS);
+ int i = byId.getNum() - Integer.parseInt(num);
+ if(i<0){
+ i = 0;
+ }
+ String carType = "";
+ String carDay = "";
+ Barrier barrier = barrierService.findByCode(ledId);
+ WhiteList byCarNo = whiteListService.getByCarNo(carNo);
+ if(byCarNo == null){
+ carType = "涓存椂杞�";
}else {
- //鐧藉悕鍗曞浐瀹氬仠杞﹀満杞﹁締
- if(byCarNo.getParkId().equals(barrier.getParkId())){
+ if (byCarNo.getType() == 0){
+ //鐧藉悕鍗曟案涔呰溅杈�
carType = "鏈堢杞�";
- long l = (byCarNo.getEndTime().getTime() - byCarNo.getStartTime().getTime()) / (24 * 3600 * 1000);
- carDay = "鏈夋晥鏈熻繕鏈�"+l+"澶�";
+ }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)){
- carDay = "娆㈣繋鍏変复";
- }
+ if(StringUtils.isBlank(carDay) && !carNo.equals("鏃犵墝杞�")){
+ carDay = "娆㈣繋鍏変复";
+ }else if(StringUtils.isBlank(carDay) && carNo.equals("鏃犵墝杞�")){
+ carDay = "鎷掔粷椹跺叆";
+ }
- LedBean ledBean = new LedBean();
- ledBean.setcolor1(0);
- ledBean.setcolor2(0);
- ledBean.setcolor3(0);
- ledBean.setcolor4(0);
- ledBean.setcontent1(carNo);
- ledBean.setcontent2(carType);
- ledBean.setcontent3(carDay);
- ledBean.setcontent4("浣欎綅:"+i);
- ledBean.setdisMode1(0);
- ledBean.setdisMode2(0);
- ledBean.setdisMode3(0);
- ledBean.setdisMode4(0);
- ledBean.setvoiceContent(carType+","+carNo+","+carDay);
- ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
- byte[] dataX = new byte[resultData.getlenth()];
- System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
- String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
- data1 = data1.replaceAll("\r\n", "");
+ LedBean ledBean = new LedBean();
+ ledBean.setcolor1(0);
+ ledBean.setcolor2(0);
+ ledBean.setcolor3(0);
+ ledBean.setcolor4(0);
+ ledBean.setcontent1(carNo);
+ ledBean.setcontent2(carType);
+ ledBean.setcontent3(carDay);
+ ledBean.setcontent4("浣欎綅:"+i);
+ ledBean.setdisMode1(0);
+ ledBean.setdisMode2(0);
+ ledBean.setdisMode3(0);
+ ledBean.setdisMode4(0);
+ ledBean.setvoiceContent(carType+","+carNo+","+carDay);
+ ResultData resultData = CodeUtil.GetResultDataAllLine(ledBean);
+ byte[] dataX = new byte[resultData.getlenth()];
+ System.arraycopy(resultData.getdatas(),0,dataX,0,resultData.getlenth());
+ String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
+ data1 = data1.replaceAll("\r\n", "");
- open(request,response,data1);//鍏ュ満寮�闂�
+ if(!carNo.equals("鏃犵墝杞�")){
+ open(request,response,data1);//鍏ュ満寮�闂�
+ }else {
+ noOpen(request,response,data1);
+ }
+ }
}
public void inLedFullShow(String ledId, String carNo, Integer parkId,HttpServletRequest request, HttpServletResponse response) throws IOException {
@@ -525,10 +787,10 @@
carType = "鏈堢杞�";
}else {
//鐧藉悕鍗曞浐瀹氬仠杞﹀満杞﹁締
- if(byCarNo.getParkId().equals(barrier.getParkId())){
+ 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 = "涓存椂杞�";
}
}
}
@@ -558,6 +820,7 @@
public void outLedShow(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);
@@ -578,16 +841,52 @@
String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
data1 = data1.replaceAll("\r\n", "");
if(type == 0){
- //寮�闂�
- open(request,response,data1);
- int i = Integer.parseInt(redisnum);
- i--;
- if(i<0){
- redisTemplate.opsForValue().set("car_park_" + parkId,"0",30, TimeUnit.DAYS);
- redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+ if(carNo.equals("鏃犵墝杞�")){
+ noOpen(request,response,data1);
}else {
- redisTemplate.opsForValue().set("car_park_" + parkId,Integer.toString(i),30, TimeUnit.DAYS);
- redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+ if(timeStamp.contains("璁板綍寮傚父")){
+ OutPark by5min = outParkService.findBy5min(carNo, parkId, LocalDateTime.now());
+ if(by5min != null){
+ //寮�闂�
+ open(request,response,data1);
+ enterParkService.deleteByCarNo(carNo, parkId);
+ redisTemplate.opsForValue().set("park_change_in_"+parkId,"true",1, TimeUnit.DAYS);
+ int i = Integer.parseInt(redisnum);
+ i--;
+ if(i<0){
+ String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�0\n";
+ writeTxt2(s);
+ redisTemplate.opsForValue().set("car_park_" + parkId,"0",30, TimeUnit.DAYS);
+ redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+ }else {
+ String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+ writeTxt2(s);
+ redisTemplate.opsForValue().set("car_park_" + parkId,Integer.toString(i),30, TimeUnit.DAYS);
+ redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+ }
+ }else {
+ noOpen(request,response,data1);
+ }
+ }else {
+ //寮�闂�
+ open(request,response,data1);
+ enterParkService.deleteByCarNo(carNo, parkId);
+ redisTemplate.opsForValue().set("park_change_in_"+parkId,"true",1, TimeUnit.DAYS);
+ int i = Integer.parseInt(redisnum);
+ i--;
+ if(i<0){
+ String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�0\n";
+ writeTxt2(s);
+ redisTemplate.opsForValue().set("car_park_" + parkId,"0",30, TimeUnit.DAYS);
+ redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+ }else {
+ String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+ writeTxt2(s);
+ redisTemplate.opsForValue().set("car_park_" + parkId,Integer.toString(i),30, TimeUnit.DAYS);
+ redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+ }
+ }
+
}
}else {
noOpen(request,response,data1);
@@ -619,12 +918,18 @@
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);
}
@@ -695,4 +1000,5 @@
noOpen(request,response,data1);
}
+
}
--
Gitblit v1.9.1