From 05e0bb9b28295d1e80c6c47783e53d6879285198 Mon Sep 17 00:00:00 2001 From: kongdeqiang <kongdeqiang960204@163.com> Date: 星期一, 18 十二月 2023 16:17:14 +0800 Subject: [PATCH] 提交更新 --- src/main/java/com/boying/controller/car/PlateServlet3.java | 389 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 281 insertions(+), 108 deletions(-) diff --git a/src/main/java/com/boying/controller/car/PlateServlet3.java b/src/main/java/com/boying/controller/car/PlateServlet3.java index a087cd5..d8761fa 100644 --- a/src/main/java/com/boying/controller/car/PlateServlet3.java +++ b/src/main/java/com/boying/controller/car/PlateServlet3.java @@ -4,7 +4,9 @@ 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.*; @@ -17,10 +19,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; @@ -55,6 +59,7 @@ private final CostRuleService costRuleService; private final WhiteListService whiteListService; private final FileInfoService fileInfoService; + private final TicketBlackService ticketBlackService; private final String LEDURL = "http://192.168.31.212:9988/LedShow/IGetResultDataAllLine"; /** @@ -191,6 +196,7 @@ outPark.setStatus2(1); outParkService.saveOrUpdate(outPark); easyOpen(request,response); + enterParkService.deleteByCarNo(outPark.getCarNo(), barrier.getParkId()); } if(barrier.getType() == 1){ boolean in = barrierService.getDateDifIn(barrier.getId()); @@ -223,14 +229,14 @@ 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 image = plateResult.get("imageFile").toString(); String code = alarmInfoPlate.get("serialno").toString(); try { @@ -267,10 +273,10 @@ } -// if(StringUtils.isNotBlank(image)){ -// fileInfo = FileUtil.generateBase64StringToFile(image, 1,1); -// fileInfoService.save(fileInfo); -// } + if(StringUtils.isNotBlank(image)){ + fileInfo = FileUtil.generateBase64StringToFile(image, 1,1); + fileInfoService.save(fileInfo); + } System.out.println("缂栧彿锛�"+serialno+" 璁惧璇嗗埆鍒颁簡锛�"+license); @@ -316,6 +322,138 @@ } } + /** + * 鎵嬫満鍙峰叆鍦� + * @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) { @@ -355,44 +493,31 @@ public void enterPark(String carNo,Integer barrierId,Integer parkId,FileInfo fileInfo) { - 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); + 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);//鍙戠幇鏈夎繚绔� + 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); } - if(fileInfo != null){ - enterPark.setImgId(fileInfo.getId()); - } - enterParkService.saveOrUpdate(enterPark); - -// Barrier barrier = barrierService.getById(barrierId); -// barrier.setType2(1); -// barrierService.saveOrUpdate(barrier); } public double outPark(String carNo,Integer barrierId,Integer parkId,HttpServletRequest request, HttpServletResponse response,FileInfo fileInfo) throws ServletException, IOException { @@ -418,6 +543,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(); } @@ -434,7 +568,7 @@ barrier.setCarNo(carNo); //led灞曠ず if(toDayHrMinSec == null){ - toDayHrMinSec = "涓嶈冻涓ゅ皬鏃�"; + toDayHrMinSec = "鍏ュ満璁板綍寮傚父,璇疯仈绯荤鐞嗗憳"; } //鍒ゆ柇鏄惁鍦ㄧ櫧鍚嶅崟 QueryWrapper<WhiteList> wrapper = new QueryWrapper<>(); @@ -446,7 +580,7 @@ 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); return 0.0; @@ -460,7 +594,7 @@ 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); return 0.0; @@ -502,63 +636,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(StringUtils.isNotBlank(byCarNo.getParkIds()) && byCarNo.getParkIds().contains(barrier.getParkId()+"")){ + if (byCarNo.getType() == 0){ + //鐧藉悕鍗曟案涔呰溅杈� carType = "鏈堢杞�"; - long l = (byCarNo.getEndTime().getTime() - byCarNo.getStartTime().getTime()) / (24 * 3600 * 1000); - carDay = "鏈夋晥鏈熻繕鏈�"+l+"澶�"; }else { - carType = "涓存椂杞�"; + //鐧藉悕鍗曞浐瀹氬仠杞﹀満杞﹁締 + 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 { @@ -628,21 +792,30 @@ String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "="; data1 = data1.replaceAll("\r\n", ""); if(type == 0){ - //寮�闂� - open(request,response,data1); - 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); + if(carNo.equals("鏃犺溅鐗�")){ + noOpen(request,response,data1); }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); + if(timeStamp.contains("璁板綍寮傚父")){ + noOpen(request,response,data1); + }else { + //寮�闂� + open(request,response,data1); + 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); -- Gitblit v1.9.1