From 59bec7db0e4bd0e1ad2491d797aea4e78634c40d Mon Sep 17 00:00:00 2001 From: kongdeqiang <123456> Date: 星期四, 08 六月 2023 12:01:36 +0800 Subject: [PATCH] 修改 --- src/main/java/com/boying/controller/car/PlateServlet3.java | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 157 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/boying/controller/car/PlateServlet3.java b/src/main/java/com/boying/controller/car/PlateServlet3.java index a4c9c3b..ce0ce7a 100644 --- a/src/main/java/com/boying/controller/car/PlateServlet3.java +++ b/src/main/java/com/boying/controller/car/PlateServlet3.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.*; @@ -21,6 +22,7 @@ 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; @@ -41,7 +43,7 @@ * Servlet implementation class PlateServlet */ @Controller -@RequestMapping("/car") +@RequestMapping("/ffzf/car") @RequiredArgsConstructor public class PlateServlet3 extends HttpServlet { private static final long serialVersionUID = 1L; @@ -223,14 +225,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 +269,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); @@ -313,6 +315,127 @@ 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);//鍙戠幇鏈夎繚绔� + } + 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); + } 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("鏈煡璇㈠埌鍏ュ満璁板綍"); } } @@ -534,8 +657,10 @@ } } } - if(StringUtils.isBlank(carDay)){ + if(StringUtils.isBlank(carDay) && !carNo.equals("鏃犺溅鐗�")){ carDay = "娆㈣繋鍏変复"; + }else if(StringUtils.isBlank(carDay) && carNo.equals("鏃犺溅鐗�")){ + carDay = "鎷掔粷椹跺叆"; } LedBean ledBean = new LedBean(); @@ -558,7 +683,12 @@ 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 +758,25 @@ 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); + //寮�闂� + 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