From 83a1aa3133ce9c35fb428d0cdf4a84adda4ba3ac Mon Sep 17 00:00:00 2001 From: kongdeqiang <123456> Date: 星期三, 24 四月 2024 16:33:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/com/boying/controller/car/PlateServlet2.java | 207 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 147 insertions(+), 60 deletions(-) diff --git a/src/main/java/com/boying/controller/car/PlateServlet2.java b/src/main/java/com/boying/controller/car/PlateServlet2.java index fb6ede3..f9f294e 100644 --- a/src/main/java/com/boying/controller/car/PlateServlet2.java +++ b/src/main/java/com/boying/controller/car/PlateServlet2.java @@ -11,10 +11,16 @@ import com.boying.entity.led.ResultData; import com.boying.service.*; import com.boying.util.DateUtilOther; +import com.boying.util.StringUtil; import com.google.gson.JsonObject; import com.google.gson.JsonParser; +import com.sun.media.jfxmedia.track.Track; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; @@ -24,9 +30,12 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.sound.sampled.AudioFormat; import java.io.*; +import java.nio.charset.StandardCharsets; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.Duration; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.Base64; @@ -38,11 +47,15 @@ * Servlet implementation class PlateServlet */ @Controller -@RequestMapping("/car") +@RequestMapping("/ffzf/car2") @RequiredArgsConstructor +@Tag(description = "ffzf/car3" , name = "娉婅溅娴佺▼鎺ュ彛" ) public class PlateServlet2 extends HttpServlet { private static final long serialVersionUID = 1L; - private final SystemConfigProperties systemConfigProperties; + @Value("${ffpark.logPath}") + private String logPath; +// @Autowired +// private final SystemConfigProperties systemConfigProperties; private final StringRedisTemplate redisTemplate; private final ParkService parkService; private final OutParkService outParkService; @@ -51,7 +64,8 @@ private final TicketService ticketService; private final CostRuleService costRuleService; private final WhiteListService whiteListService; - private final String LEDURL = "http://localhost:9988/LedShow/IGetResultDataAllLine"; + private final OutParkLogService outParkLogService; + private final String LEDURL = "http://192.168.31.212:9988/LedShow/IGetResultDataAllLine"; /** * 鍥炲寮�闂� @@ -111,20 +125,41 @@ out.close(); } +// protected void easyOpen(HttpServletRequest request, HttpServletResponse response) throws IOException { +// response.setContentType("text/json"); +// PrintWriter out = response.getWriter(); +// out.println("{\"Response_AlarmInfoPlate\":{\"info\":\"ok\",\"content\":\"...\",\"is_pay\":\"true\",\"ivs_ioctrl\":{\"delay\":800,\"io\":0,\"value\":2}}}"); +// out.flush(); +// out.close(); +// } + protected void easyOpen(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("text/json"); PrintWriter out = response.getWriter(); - out.println("{\"Response_AlarmInfoPlate\":{\"info\":\"ok\",\"content\":\"...\",\"is_pay\":\"true\"}}"); + out.println("{\"Response_AlarmInfoPlate\":{\"ivs_ioctrl\":{\"delay\":1000,\"io\":0,\"value\":2}}}"); + out.flush(); + out.close(); + } + + protected void easyNoOpen(HttpServletRequest request, HttpServletResponse response) throws IOException { + response.setContentType("text/json"); + PrintWriter out = response.getWriter(); + out.println("{\"Response_AlarmInfoPlate\":{\"info\":\"error\",\"content\":\"...\",\"is_pay\":\"false\"}}"); out.flush(); out.close(); } @PostMapping("/status") + @Operation(summary = "鐩告満蹇冭烦鎺ュ彛" , description = "鐩告満蹇冭烦鎺ュ彛" ) public void heart(String serialno,HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { Barrier barrier = barrierService.findByCode(serialno); - Park park = parkService.getById(barrier.getParkId()); - String redis = redisTemplate.opsForValue().get("park_up_" + park.getId()); + Park park = parkService.getOneById(barrier.getParkId()); + //Park park = parkService.getById(barrier.getParkId()); + //String redis = redisTemplate.opsForValue().get("park_up_" + park.getId()); String redisnum = redisTemplate.opsForValue().get("car_park_" + park.getId()); + if(StringUtils.isBlank(redisnum)){ + redisnum = "0"; + } if(barrier!=null){ if(barrier.getType2()==1){ //寰呭紑闂� @@ -136,9 +171,11 @@ int i = Integer.parseInt(redisnum); i--; if(i<0){ + String s= "2."+barrier.getCarNo()+"闂告満鎵嬪姩鍚姩锛屽満鍐呭仠杞︽暟涓�"+i+"\n"; redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS); redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS); }else { + String s= "2."+barrier.getCarNo()+"闂告満鎵嬪姩鍚姩锛屽満鍐呭仠杞︽暟涓�"+i+"\n"; redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS); redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS); } @@ -149,31 +186,52 @@ barrier.setStatus(0); barrier.setUpdateTime(LocalDateTime.now()); barrierService.saveOrUpdate(barrier); + + String jsonValue = JSON.toJSONString(barrier); + redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue); easyOpen(request,response); }else { //涓嶉渶寮�闂� - barrier.setStatus(0); - barrier.setUpdateTime(LocalDateTime.now()); - barrierService.saveOrUpdate(barrier); - OutPark outPark = outParkService.count4(barrier.getId()); - if(outPark!=null){ - if(barrier.getType() == 0){ - int i = Integer.parseInt(redisnum); - i--; - if(i<0){ - redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS); - redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS); - }else { - redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS); - redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS); + LocalDateTime now = LocalDateTime.now(); + LocalDateTime updateTime = barrier.getUpdateTime(); + Duration duration = Duration.between(updateTime,now); + long minutes = duration.toMinutes(); + if(minutes>=2){ + barrier.setStatus(0); + barrier.setUpdateTime(LocalDateTime.now()); + barrierService.saveOrUpdate(barrier); + } + + String jsonValue = JSON.toJSONString(barrier); + redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue); + if(barrier.getType() == 0){ + OutPark outPark = outParkService.count4(barrier.getId()); + if(outPark!=null){ + if(barrier.getType() == 0){ + int i = Integer.parseInt(redisnum); + i--; + if(i<0){ + String s= "2."+outPark.getCarNo()+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n"; + redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS); + redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS); + }else { + String s= "2."+outPark.getCarNo()+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n"; + redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS); + redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS); + } } + outPark.setStatus2(1); + outParkService.saveOrUpdate(outPark); + easyOpen(request,response); + OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId()); + byOutPark.setOpenTime(LocalDateTime.now()); + outParkLogService.saveOrUpdate(byOutPark); + enterParkService.deleteByCarNo(outPark.getCarNo(), barrier.getParkId()); + redisTemplate.delete("outPark-"+outPark.getBarrierId()); } - outPark.setStatus2(1); - outParkService.saveOrUpdate(outPark); - easyOpen(request,response); } if(barrier.getType() == 1){ - boolean in = barrierService.getDateDifIn(barrier.getId()); + boolean in = barrierService.getDateDifIn(park.getId()); if(in){ inLedShowDefault(park.getId(),request,response); } @@ -185,12 +243,15 @@ } } + }else { + easyNoOpen(request,response); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ @PostMapping("/PlateServlet") + @Operation(summary = "杞﹁締璇嗗埆鎺ュ彛" , description = "杞﹁締璇嗗埆鎺ュ彛" ) protected void info(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String s= ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss"); @@ -252,29 +313,31 @@ s+="鏌ヨ閬撻椄涓虹┖\n"; }else{ if(barrier.getType()==0){ + easyOpen(request,response); //noOpen(request,response); - outPark(license, barrier.getId(), barrier.getParkId(),request,response); - s+=license+"-淇濆瓨鍑哄満璁板綍\n"; +// outPark(license, barrier.getId(), barrier.getParkId(),request,response); +// s+=license+"-淇濆瓨鍑哄満璁板綍\n"; }else{ - String num = redisTemplate.opsForValue().get("car_park_" + barrier.getParkId()); - if(StringUtils.isBlank(num)){ - num = "0"; - redisTemplate.opsForValue().set("car_park_" + barrier.getParkId(),num,30, TimeUnit.DAYS); - redisTemplate.opsForValue().set("park_up_" + barrier.getParkId(),"true",30, TimeUnit.DAYS); - } - Park byId = parkService.getById(barrier.getParkId()); - if(Integer.parseInt(num) >= byId.getNum() ){ - //led鏄剧ず - inLedFullShow(code, license,barrier.getParkId(),request,response); - }else { - //led鏄剧ず - inLedShow(code, license,barrier.getParkId(),request,response); - enterPark(license,barrier.getId(),barrier.getParkId()); - s+=license+"-淇濆瓨鍏ュ満璁板綍\n"; - } + easyOpen(request,response); +// String num = redisTemplate.opsForValue().get("car_park_" + barrier.getParkId()); +// if(StringUtils.isBlank(num)){ +// num = "0"; +// redisTemplate.opsForValue().set("car_park_" + barrier.getParkId(),num,30, TimeUnit.DAYS); +// redisTemplate.opsForValue().set("park_up_" + barrier.getParkId(),"true",30, TimeUnit.DAYS); +// } +// Park byId = parkService.getById(barrier.getParkId()); +// if(Integer.parseInt(num) >= byId.getNum() ){ +// //led鏄剧ず +// inLedFullShow(code, license,barrier.getParkId(),request,response); +// }else { +// //led鏄剧ず +// inLedShow(code, license,barrier.getParkId(),request,response); +// enterPark(license,barrier.getId(),barrier.getParkId()); +// s+=license+"-淇濆瓨鍏ュ満璁板綍\n"; +// } } } - writeTxt(s); + // writeTxt(s); }while(false); } catch (Exception e) { @@ -290,7 +353,7 @@ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); try { - FileWriter f = new FileWriter(systemConfigProperties.getLogPath()+sdf.format(new Date())+".txt",true); + FileWriter f = new FileWriter(logPath+sdf.format(new Date())+".txt",true); BufferedWriter bw=new BufferedWriter(f); bw.write(txt); bw.newLine(); @@ -337,6 +400,8 @@ enterPark.setStatus(1);//鍙戠幇鏈夎繚绔� } enterParkService.saveOrUpdate(enterPark); + String jsonValue = JSON.toJSONString(enterPark); + redisTemplate.opsForValue().set("enterPark_dif_"+ parkId, jsonValue); Barrier barrier = barrierService.getById(barrierId); barrier.setType2(1); @@ -394,6 +459,8 @@ byCarNoAndBarrierId.setStatus(1); byCarNoAndBarrierId.setStatus2(1); outParkService.saveOrUpdate(byCarNoAndBarrierId); + String jsonValue = JSON.toJSONString(byCarNoAndBarrierId); + redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue); return 0.0; }else{ if(w.getParkIds()!=null){ @@ -408,6 +475,8 @@ byCarNoAndBarrierId.setStatus(1); byCarNoAndBarrierId.setStatus2(1); outParkService.saveOrUpdate(byCarNoAndBarrierId); + String jsonValue = JSON.toJSONString(byCarNoAndBarrierId); + redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue); return 0.0; } } @@ -418,10 +487,14 @@ } if(outPark.getPrice()==0&&outPark.getStatus3()==0){ System.out.println(outPark.getCarNo()+"璇ヨ溅涓嶉渶瑕佺即璐�"); + String jsonValue = JSON.toJSONString(outPark); + redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue); outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,0); }else { //闇�瑕佺即璐规垨鑰呮湁杩濈珷 System.out.println(outPark.getCarNo()+"璇ヨ溅闇�瑕佺即璐�"+outPark.getPrice()); + String jsonValue = JSON.toJSONString(outPark); + redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue); outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,1); } barrierService.saveOrUpdate(barrier); @@ -498,12 +571,26 @@ .execute() .body(); ResultData resultData = JSON.parseObject(s1,ResultData.class); - byte[] dataX = new byte[resultData.getLength()]; - System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLength()); - String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "="; - data1 = data1.replaceAll("\r\n", ""); - - open(request,response,data1);//鍏ュ満寮�闂� + System.out.println(resultData); + String[] split = resultData.getDatas().split("-"); + String[] dataX = new String[resultData.getLenth()]; + System.arraycopy(split,0,dataX,0,resultData.getLenth()); + String s2 = StringUtil.toStr(dataX); + //byte[] bytes = StringUtil.HexString2Bytes(s2); + byte[] bytes1 = StringUtil.hex2Byte(resultData.getDatas()); + byte[] bytes = StringUtil.byte2hex(bytes1); + for (byte aByte : bytes) { + System.out.print(aByte+" "); + } + System.out.println(); + System.out.println("bytes.length: "+bytes.length); + //String data1 = new String("gb2312"); + String data1 = Base64.getMimeEncoder().encodeToString(bytes); + // String data2 = data1.replace("\n", ""); + String data3 = data1.replaceAll("\r\n", "") + "="; + System.out.println(); + System.out.println(data3); + open(request,response,data3);//鍏ュ満寮�闂� } public void inLedFullShow(String ledId, String carNo, Integer parkId,HttpServletRequest request, HttpServletResponse response) throws IOException { @@ -548,8 +635,8 @@ .execute() .body(); ResultData resultData = JSON.parseObject(s1,ResultData.class); - byte[] dataX = new byte[resultData.getLength()]; - System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLength()); + byte[] dataX = new byte[resultData.getLenth()]; + System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLenth()); String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "="; data1 = data1.replaceAll("\r\n", ""); @@ -579,8 +666,8 @@ .execute() .body(); ResultData resultData = JSON.parseObject(s1,ResultData.class); - byte[] dataX = new byte[resultData.getLength()]; - System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLength()); + byte[] dataX = new byte[resultData.getLenth()]; + System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLenth()); String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "="; data1 = data1.replaceAll("\r\n", ""); if(type == 0){ @@ -624,8 +711,8 @@ .execute() .body(); ResultData resultData = JSON.parseObject(s1,ResultData.class); - byte[] dataX = new byte[resultData.getLength()]; - System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLength()); + byte[] dataX = new byte[resultData.getLenth()]; + System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLenth()); String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "="; data1 = data1.replaceAll("\r\n", ""); if(type == 0){ @@ -667,8 +754,8 @@ .execute() .body(); ResultData resultData = JSON.parseObject(s1,ResultData.class); - byte[] dataX = new byte[resultData.getLength()]; - System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLength()); + byte[] dataX = new byte[resultData.getLenth()]; + System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLenth()); String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "="; data1 = data1.replaceAll("\r\n", ""); noOpen(request,response,data1); @@ -705,8 +792,8 @@ .execute() .body(); ResultData resultData = JSON.parseObject(s1,ResultData.class); - byte[] dataX = new byte[resultData.getLength()]; - System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLength()); + byte[] dataX = new byte[resultData.getLenth()]; + System.arraycopy(resultData.getDatas(),0,dataX,0,resultData.getLenth()); String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "="; data1 = data1.replaceAll("\r\n", ""); noOpen(request,response,data1); -- Gitblit v1.9.1