From f8cdd23c14a35c267eae84892dd1ead2ac846adf Mon Sep 17 00:00:00 2001 From: kongdeqiang <123456> Date: 星期六, 28 九月 2024 10:16:34 +0800 Subject: [PATCH] fix : 新增修改车数日志 --- src/main/java/com/boying/controller/car/PlateServlet3.java | 2008 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 1,004 insertions(+), 1,004 deletions(-) diff --git a/src/main/java/com/boying/controller/car/PlateServlet3.java b/src/main/java/com/boying/controller/car/PlateServlet3.java index af5e69f..a75da04 100644 --- a/src/main/java/com/boying/controller/car/PlateServlet3.java +++ b/src/main/java/com/boying/controller/car/PlateServlet3.java @@ -1,890 +1,890 @@ -//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); +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){ @@ -898,120 +898,120 @@ // 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); -// } -// -// -//} + } + + } + }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); + } + + +} -- Gitblit v1.9.1