kongdeqiang
2024-03-18 e68a90d29289858e4106a0fb5e615408b41ea102
提交更新
10个文件已修改
1310 ■■■■ 已修改文件
src/main/java/com/boying/controller/car/PlateServlet.java 1200 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/boying/controller/car/PlateServlet2.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/boying/controller/car/PlateServlet3.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/boying/controller/phone/TicketController.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/boying/controller/phone/YCPayController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/boying/entity/Ticket.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/boying/job/EticketScheduled.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/boying/job/GetEticketScheduled.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/boying/job/YCEticketScheduled.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/boying/job/YCGetEticketScheduled.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/boying/controller/car/PlateServlet.java
@@ -36,604 +36,604 @@
/**
 * Servlet implementation class PlateServlet
 */
@Controller
@RequestMapping("/car1")
@RequiredArgsConstructor
public class PlateServlet 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 LedShowService ledShowService;
    private final WhiteListService whiteListService;
    /**
     * 回复开闸
     */
    protected void open(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/json");
        PrintWriter out = response.getWriter();
        out.println("{\"Response_AlarmInfoPlate\":{\"info\":\"ok\",\"content\":\"...\",\"is_pay\":\"true\"}}");
        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) 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.getById(barrier.getParkId());
        String redis = redisTemplate.opsForValue().get("park_up_" + park.getId());
        String redisnum = redisTemplate.opsForValue().get("car_park_" + park.getId());
        if(StringUtils.isBlank(redis) || redis.equals("false")){
            return;
        }
        if(barrier!=null){
            if(barrier.getType2()==1){
                open(request,response);
                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){
                        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);
                    }
                }
                barrier.setType2(0);
                barrier.setUpdateTime(LocalDateTime.now());
                barrierService.saveOrUpdate(barrier);
                //outLedShowDefault(barrier.getCode(),barrier.getParkId());
                return;
            }
            barrier.setStatus(0);
            barrier.setUpdateTime(LocalDateTime.now());
            barrierService.saveOrUpdate(barrier);
            OutPark outPark = outParkService.count4(barrier.getId());
            if(outPark!=null){
                open(request,response);
                 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);
                    }
                }
                outPark.setStatus2(1);
                outParkService.saveOrUpdate(outPark);
                //outLedShowDefault(barrier.getCode(),barrier.getParkId());
            }else{
                noOpen(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 = "";
        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 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;
                }
                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";
                }else{
                    if(barrier.getType()==0){
//@Controller
//@RequestMapping("/car1")
//@RequiredArgsConstructor
//public class PlateServlet 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 LedShowService ledShowService;
//    private final WhiteListService whiteListService;
//
//    /**
//     * 回复开闸
//     */
//    protected void open(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//        response.setContentType("text/json");
//        PrintWriter out = response.getWriter();
//        out.println("{\"Response_AlarmInfoPlate\":{\"info\":\"ok\",\"content\":\"...\",\"is_pay\":\"true\"}}");
//        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) 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.getById(barrier.getParkId());
//        String redis = redisTemplate.opsForValue().get("park_up_" + park.getId());
//        String redisnum = redisTemplate.opsForValue().get("car_park_" + park.getId());
//        if(StringUtils.isBlank(redis) || redis.equals("false")){
//            return;
//        }
//        if(barrier!=null){
//            if(barrier.getType2()==1){
//                open(request,response);
//                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){
//                        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);
//                    }
//
//                }
//                barrier.setType2(0);
//                barrier.setUpdateTime(LocalDateTime.now());
//                barrierService.saveOrUpdate(barrier);
//                //outLedShowDefault(barrier.getCode(),barrier.getParkId());
//                return;
//            }
//            barrier.setStatus(0);
//            barrier.setUpdateTime(LocalDateTime.now());
//            barrierService.saveOrUpdate(barrier);
//
//            OutPark outPark = outParkService.count4(barrier.getId());
//            if(outPark!=null){
//                open(request,response);
//                 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);
//                    }
//                }
//                outPark.setStatus2(1);
//                outParkService.saveOrUpdate(outPark);
//                //outLedShowDefault(barrier.getCode(),barrier.getParkId());
//
//            }else{
                        //noOpen(request,response);
                        outPark(license, barrier.getId(), barrier.getParkId());
                        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显示
                            Boolean aBoolean = inLedFullShow(code, license,barrier.getParkId());
                            noOpen(request,response);
                        }else {
                            //led显示
                            Boolean aBoolean = inLedShow(code, license,barrier.getParkId());
                            if(aBoolean){
                                //入场抬杆
                                open(request, response);
                                enterPark(license,barrier.getId(),barrier.getParkId());
                                s+=license+"-保存入场记录\n";
                            }
                        }
                    }
                }
            writeTxt(s);
            }while(false);
        }
        catch (Exception e) {
            System.out.println("无入场记录");
            s+=" ,查询场内记录异常";
            writeTxt(s);
        }
    }
    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("打印错误");
        }
    }
    public void enterPark(String carNo,Integer barrierId,Integer parkId) {
        Park park = parkService.getById(parkId);
        int num = 0;
        String s = redisTemplate.opsForValue().get("car_park_" + parkId);
        if(park != null){
            num = park.getNum();
            if(s !=null){
                if(Integer.parseInt(s) >= num){
                    redisTemplate.opsForValue().set("park_up_" + parkId,"false",30, TimeUnit.DAYS);
                    return;
                }
            }else {
                s= "0";
                redisTemplate.opsForValue().set("car_park_" + parkId,s,30, TimeUnit.DAYS);
                redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
            }
        }
        enterParkService.deleteByCarNo(carNo,parkId);
        EnterPark enterPark = new EnterPark();
        enterPark.setCarNo(carNo);
        enterPark.setBarrierId(barrierId);
        enterPark.setParkId(parkId);
        QueryWrapper<Ticket> wrapper = new QueryWrapper<>();
        wrapper.lambda()
                .eq(Ticket::getCarNo,enterPark.getCarNo())
                .eq(Ticket::getPayStatus,1);
        List<Ticket> tickets = ticketService.list(wrapper);
        if(tickets.size()>0){
            enterPark.setStatus(1);//发现有违章
        }
        enterParkService.saveOrUpdate(enterPark);
        Barrier barrier = barrierService.getById(barrierId);
        barrier.setType2(1);
        barrierService.saveOrUpdate(barrier);
    }
    public double outPark(String carNo,Integer barrierId,Integer parkId) {
        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);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
        //outPark.setPrice(Double.valueOf(String.format("%.1f", money)));
        outPark.setPrice(money);
        outPark.setStatus3(findTicket(carNo));
        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){
                    outLedShow2(barrier.getCode(),barrier.getCarNo(),"月租车",toDayHrMinSec,barrier.getParkId());
                    barrier.setType2(1);
                    barrierService.saveOrUpdate(barrier);
                    OutPark byCarNoAndBarrierId = outParkService.findByCarNoAndBarrierId(carNo, barrierId);
                    byCarNoAndBarrierId.setStatus(1);
                    outParkService.saveOrUpdate(byCarNoAndBarrierId);
                    return 0.0;
                }else{
                    if(w.getParkIds()!=null){
                        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()){
                                    outLedShow2(barrier.getCode(),barrier.getCarNo(),"月租车",toDayHrMinSec,barrier.getParkId());
                                    barrier.setType2(1);
                                    barrierService.saveOrUpdate(barrier);
                                    OutPark byCarNoAndBarrierId = outParkService.findByCarNoAndBarrierId(carNo, barrierId);
                                    byCarNoAndBarrierId.setStatus(1);
                                    outParkService.saveOrUpdate(byCarNoAndBarrierId);
                                    return 0.0;
                                }
                            }
                        }
                    }
                }
            }
        }
        outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId());
        if(outPark.getPrice()==0&&outPark.getStatus3()==0){
            System.out.println(outPark.getCarNo()+"该车不需要缴费");
            barrier.setType2(1);
        }
        barrierService.saveOrUpdate(barrier);
        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 Boolean inLedShow(String ledId,String carNo,Integer parkId){
        String num = redisTemplate.opsForValue().get("car_park_" +  parkId);
        Park byId = parkService.getById(parkId);
        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(byCarNo.getParkId().equals(barrier.getParkId())){
                    carType = "月租车";
                    long l = (byCarNo.getEndTime().getTime() - byCarNo.getStartTime().getTime()) / (24 * 3600 * 1000);
                    carDay = "有效期还有"+l+"天";
                }
            }
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        LedShow ledShow = new LedShow();
        ledShow.setLedId(ledId);
        ledShow.setNumber(parkId);
        ledShow.setStatus(1);
        ledShow.setType(2);
        ledShow.setName(barrier.getName());
        ledShow.setIsDefault(1);
        ledShow.setPassword("boying_ffpark");
        ledShow.setTimeStamp(sdf.format(new Date()));
        ledShow.setColor1(1);
        ledShow.setColor2(2);
        ledShow.setColor3(1);
        ledShow.setColor4(2);
        ledShow.setContent1(carNo);
        ledShow.setContent2(carType);
        ledShow.setContent3("车位剩余:"+i);
        ledShow.setContent4(carDay);
        ledShow.setDisMode1(0);
        ledShow.setDisMode2(0);
        ledShow.setDisMode3(1);
        ledShow.setDisMode4(1);
        ledShow.setStatus1(0);
        ledShow.setStatus2(0);
        ledShow.setStatus3(0);
        ledShow.setStatus4(0);
        if(barrier.getIpAddress() != null){
            ledShow.setIpAddress(barrier.getIpAddress());
        }
        if(barrier.getPort() != 0){
            ledShow.setPort(barrier.getPort());
        }
        ledShow.setVoiceContent(carNo+carType+"欢迎进场");
        return ledShowService.save(ledShow);
    }
    public Boolean inLedFullShow(String ledId, String carNo, Integer parkId){
        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(byCarNo.getParkId().equals(barrier.getParkId())){
                    carType = "月租车";
                    long l = (byCarNo.getEndTime().getTime() - byCarNo.getStartTime().getTime()) / (24 * 3600 * 1000);
                    carDay = "有效期还有"+l+"天";
                }
            }
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        LedShow ledShow = new LedShow();
        ledShow.setLedId(ledId);
        ledShow.setNumber(parkId);
        ledShow.setStatus(1);
        ledShow.setType(2);
        ledShow.setName(barrier.getName());
        ledShow.setIsDefault(1);
        ledShow.setPassword("boying_ffpark");
        ledShow.setTimeStamp(sdf.format(new Date()));
        ledShow.setColor1(1);
        ledShow.setColor2(2);
        ledShow.setColor3(1);
        ledShow.setColor4(2);
        ledShow.setContent1(carNo);
        ledShow.setContent2(carType);
        ledShow.setContent3("车位已满");
        ledShow.setContent4("请驶离");
        ledShow.setDisMode1(0);
        ledShow.setDisMode2(0);
        ledShow.setDisMode3(1);
        ledShow.setDisMode4(1);
        ledShow.setStatus1(0);
        ledShow.setStatus2(0);
        ledShow.setStatus3(0);
        ledShow.setStatus4(0);
        if(barrier.getIpAddress() != null){
            ledShow.setIpAddress(barrier.getIpAddress());
        }
        if(barrier.getPort() != 0){
            ledShow.setPort(barrier.getPort());
        }
        ledShow.setVoiceContent("车位已满请驶离");
        return ledShowService.save(ledShow);
    }
    public Boolean outLedShow(String ledId,String carNo,Double price,String timeStamp,Integer parkId){
        Barrier barrier = barrierService.findByCode(ledId);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        LedShow ledShow = new LedShow();
        ledShow.setLedId(ledId);
        ledShow.setNumber(parkId);
        ledShow.setStatus(1);
        ledShow.setType(2);
        ledShow.setName(barrier.getName());
        ledShow.setIsDefault(1);
        ledShow.setPassword("boying_ffpark");
        ledShow.setTimeStamp(sdf.format(new Date()));
        ledShow.setColor1(1);
        ledShow.setColor2(2);
        ledShow.setColor3(1);
        ledShow.setColor4(2);
        ledShow.setContent1(carNo);
        ledShow.setContent2("停车"+timeStamp);
        ledShow.setContent3("交费"+price+"元");
        ledShow.setContent4("禁止闯杆");
        ledShow.setDisMode1(0);
        ledShow.setDisMode2(1);
        ledShow.setDisMode3(1);
        ledShow.setDisMode4(0);
        ledShow.setStatus1(0);
        ledShow.setStatus2(0);
        ledShow.setStatus3(0);
        ledShow.setStatus4(0);
        if(barrier.getIpAddress() != null){
            ledShow.setIpAddress(barrier.getIpAddress());
        }
        if(barrier.getPort() != 0){
            ledShow.setPort(barrier.getPort());
        }
        ledShow.setVoiceContent(carNo+"停车"+timeStamp+"交费"+price+"元");
        return ledShowService.save(ledShow);
    }
    public Boolean outLedShow2(String ledId,String carNo,String text,String timeStamp,Integer parkId){
        Barrier barrier = barrierService.findByCode(ledId);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        LedShow ledShow = new LedShow();
        ledShow.setLedId(ledId);
        ledShow.setNumber(parkId);
        ledShow.setStatus(1);
        ledShow.setType(2);
        ledShow.setName(barrier.getName());
        ledShow.setIsDefault(1);
        ledShow.setPassword("boying_ffpark");
        ledShow.setTimeStamp(sdf.format(new Date()));
        ledShow.setColor1(1);
        ledShow.setColor2(2);
        ledShow.setColor3(1);
        ledShow.setColor4(2);
        ledShow.setContent1(carNo);
        ledShow.setContent2("停车"+timeStamp);
        ledShow.setContent3(text);
        ledShow.setContent4("禁止闯杆");
        ledShow.setDisMode1(0);
        ledShow.setDisMode2(1);
        ledShow.setDisMode3(1);
        ledShow.setDisMode4(0);
        ledShow.setStatus1(0);
        ledShow.setStatus2(0);
        ledShow.setStatus3(0);
        ledShow.setStatus4(0);
        if(barrier.getIpAddress() != null){
            ledShow.setIpAddress(barrier.getIpAddress());
        }
        if(barrier.getPort() != 0){
            ledShow.setPort(barrier.getPort());
        }
        ledShow.setVoiceContent(carNo+"停车"+timeStamp);
        return ledShowService.save(ledShow);
    }
    public Boolean outLedShowDefault(String ledId,Integer parkId){
        Barrier barrier = barrierService.findByCode(ledId);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        LedShow ledShow = new LedShow();
        ledShow.setLedId(ledId);
        ledShow.setNumber(parkId);
        ledShow.setStatus(1);
        ledShow.setType(2);
        ledShow.setName(barrier.getName());
        ledShow.setIsDefault(1);
        ledShow.setPassword("boying_ffpark");
        ledShow.setTimeStamp(sdf.format(new Date()));
        ledShow.setColor1(1);
        ledShow.setColor2(1);
        ledShow.setColor3(1);
        ledShow.setColor4(1);
        ledShow.setContent1("欢迎光临");
        ledShow.setContent2("一车一杆");
        ledShow.setContent3("减速慢行");
        ledShow.setContent4("安全行驶");
        ledShow.setDisMode1(0);
        ledShow.setDisMode2(0);
        ledShow.setDisMode3(0);
        ledShow.setDisMode4(0);
        ledShow.setStatus1(0);
        ledShow.setStatus2(0);
        ledShow.setStatus3(0);
        ledShow.setStatus4(0);
        if(barrier.getIpAddress() != null){
            ledShow.setIpAddress(barrier.getIpAddress());
        }
        if(barrier.getPort() != 0){
            ledShow.setPort(barrier.getPort());
        }
        ledShow.setVoiceContent("");
        return ledShowService.save(ledShow);
    }
}
//            }
//        }
//    }
//    /**
//     * @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 = "";
//        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 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;
//                }
//
//                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";
//                }else{
//                    if(barrier.getType()==0){
//                        //noOpen(request,response);
//                        outPark(license, barrier.getId(), barrier.getParkId());
//                        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显示
//                            Boolean aBoolean = inLedFullShow(code, license,barrier.getParkId());
//                            noOpen(request,response);
//                        }else {
//                            //led显示
//                            Boolean aBoolean = inLedShow(code, license,barrier.getParkId());
//                            if(aBoolean){
//                                //入场抬杆
//                                open(request, response);
//                                enterPark(license,barrier.getId(),barrier.getParkId());
//                                s+=license+"-保存入场记录\n";
//                            }
//                        }
//                    }
//                }
//            writeTxt(s);
//            }while(false);
//        }
//        catch (Exception e) {
//            System.out.println("无入场记录");
//            s+=" ,查询场内记录异常";
//            writeTxt(s);
//        }
//    }
//
//
//    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("打印错误");
//        }
//    }
//
//
//
//
//    public void enterPark(String carNo,Integer barrierId,Integer parkId) {
//        Park park = parkService.getById(parkId);
//        int num = 0;
//        String s = redisTemplate.opsForValue().get("car_park_" + parkId);
//        if(park != null){
//            num = park.getNum();
//            if(s !=null){
//                if(Integer.parseInt(s) >= num){
//                    redisTemplate.opsForValue().set("park_up_" + parkId,"false",30, TimeUnit.DAYS);
//                    return;
//                }
//            }else {
//                s= "0";
//                redisTemplate.opsForValue().set("car_park_" + parkId,s,30, TimeUnit.DAYS);
//                redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
//            }
//        }
//        enterParkService.deleteByCarNo(carNo,parkId);
//        EnterPark enterPark = new EnterPark();
//        enterPark.setCarNo(carNo);
//        enterPark.setBarrierId(barrierId);
//        enterPark.setParkId(parkId);
//
//        QueryWrapper<Ticket> wrapper = new QueryWrapper<>();
//        wrapper.lambda()
//                .eq(Ticket::getCarNo,enterPark.getCarNo())
//                .eq(Ticket::getPayStatus,1);
//        List<Ticket> tickets = ticketService.list(wrapper);
//        if(tickets.size()>0){
//            enterPark.setStatus(1);//发现有违章
//        }
//        enterParkService.saveOrUpdate(enterPark);
//
//        Barrier barrier = barrierService.getById(barrierId);
//        barrier.setType2(1);
//        barrierService.saveOrUpdate(barrier);
//    }
//
//    public double outPark(String carNo,Integer barrierId,Integer parkId) {
//        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);
//            } catch (ParseException e) {
//                e.printStackTrace();
//            }
//
//        }
//        //outPark.setPrice(Double.valueOf(String.format("%.1f", money)));
//        outPark.setPrice(money);
//        outPark.setStatus3(findTicket(carNo));
//        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){
//                    outLedShow2(barrier.getCode(),barrier.getCarNo(),"月租车",toDayHrMinSec,barrier.getParkId());
//                    barrier.setType2(1);
//                    barrierService.saveOrUpdate(barrier);
//                    OutPark byCarNoAndBarrierId = outParkService.findByCarNoAndBarrierId(carNo, barrierId);
//                    byCarNoAndBarrierId.setStatus(1);
//                    outParkService.saveOrUpdate(byCarNoAndBarrierId);
//                    return 0.0;
//                }else{
//                    if(w.getParkIds()!=null){
//                        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()){
//                                    outLedShow2(barrier.getCode(),barrier.getCarNo(),"月租车",toDayHrMinSec,barrier.getParkId());
//                                    barrier.setType2(1);
//                                    barrierService.saveOrUpdate(barrier);
//                                    OutPark byCarNoAndBarrierId = outParkService.findByCarNoAndBarrierId(carNo, barrierId);
//                                    byCarNoAndBarrierId.setStatus(1);
//                                    outParkService.saveOrUpdate(byCarNoAndBarrierId);
//                                    return 0.0;
//                                }
//                            }
//                        }
//                    }
//                }
//            }
//        }
//        outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId());
//        if(outPark.getPrice()==0&&outPark.getStatus3()==0){
//            System.out.println(outPark.getCarNo()+"该车不需要缴费");
//            barrier.setType2(1);
//        }
//        barrierService.saveOrUpdate(barrier);
//        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 Boolean inLedShow(String ledId,String carNo,Integer parkId){
//        String num = redisTemplate.opsForValue().get("car_park_" +  parkId);
//        Park byId = parkService.getById(parkId);
//        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(byCarNo.getParkId().equals(barrier.getParkId())){
//                    carType = "月租车";
//                    long l = (byCarNo.getEndTime().getTime() - byCarNo.getStartTime().getTime()) / (24 * 3600 * 1000);
//                    carDay = "有效期还有"+l+"天";
//                }
//            }
//        }
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        LedShow ledShow = new LedShow();
//        ledShow.setLedId(ledId);
//        ledShow.setNumber(parkId);
//        ledShow.setStatus(1);
//        ledShow.setType(2);
//        ledShow.setName(barrier.getName());
//        ledShow.setIsDefault(1);
//        ledShow.setPassword("boying_ffpark");
//        ledShow.setTimeStamp(sdf.format(new Date()));
//        ledShow.setColor1(1);
//        ledShow.setColor2(2);
//        ledShow.setColor3(1);
//        ledShow.setColor4(2);
//        ledShow.setContent1(carNo);
//        ledShow.setContent2(carType);
//        ledShow.setContent3("车位剩余:"+i);
//        ledShow.setContent4(carDay);
//        ledShow.setDisMode1(0);
//        ledShow.setDisMode2(0);
//        ledShow.setDisMode3(1);
//        ledShow.setDisMode4(1);
//        ledShow.setStatus1(0);
//        ledShow.setStatus2(0);
//        ledShow.setStatus3(0);
//        ledShow.setStatus4(0);
//        if(barrier.getIpAddress() != null){
//            ledShow.setIpAddress(barrier.getIpAddress());
//        }
//        if(barrier.getPort() != 0){
//            ledShow.setPort(barrier.getPort());
//        }
//        ledShow.setVoiceContent(carNo+carType+"欢迎进场");
//        return ledShowService.save(ledShow);
//    }
//
//    public Boolean inLedFullShow(String ledId, String carNo, Integer parkId){
//        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(byCarNo.getParkId().equals(barrier.getParkId())){
//                    carType = "月租车";
//                    long l = (byCarNo.getEndTime().getTime() - byCarNo.getStartTime().getTime()) / (24 * 3600 * 1000);
//                    carDay = "有效期还有"+l+"天";
//                }
//            }
//        }
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        LedShow ledShow = new LedShow();
//        ledShow.setLedId(ledId);
//        ledShow.setNumber(parkId);
//        ledShow.setStatus(1);
//        ledShow.setType(2);
//        ledShow.setName(barrier.getName());
//        ledShow.setIsDefault(1);
//        ledShow.setPassword("boying_ffpark");
//        ledShow.setTimeStamp(sdf.format(new Date()));
//        ledShow.setColor1(1);
//        ledShow.setColor2(2);
//        ledShow.setColor3(1);
//        ledShow.setColor4(2);
//        ledShow.setContent1(carNo);
//        ledShow.setContent2(carType);
//        ledShow.setContent3("车位已满");
//        ledShow.setContent4("请驶离");
//        ledShow.setDisMode1(0);
//        ledShow.setDisMode2(0);
//        ledShow.setDisMode3(1);
//        ledShow.setDisMode4(1);
//        ledShow.setStatus1(0);
//        ledShow.setStatus2(0);
//        ledShow.setStatus3(0);
//        ledShow.setStatus4(0);
//        if(barrier.getIpAddress() != null){
//            ledShow.setIpAddress(barrier.getIpAddress());
//        }
//        if(barrier.getPort() != 0){
//            ledShow.setPort(barrier.getPort());
//        }
//        ledShow.setVoiceContent("车位已满请驶离");
//        return ledShowService.save(ledShow);
//    }
//
//    public Boolean outLedShow(String ledId,String carNo,Double price,String timeStamp,Integer parkId){
//        Barrier barrier = barrierService.findByCode(ledId);
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        LedShow ledShow = new LedShow();
//        ledShow.setLedId(ledId);
//        ledShow.setNumber(parkId);
//        ledShow.setStatus(1);
//        ledShow.setType(2);
//        ledShow.setName(barrier.getName());
//        ledShow.setIsDefault(1);
//        ledShow.setPassword("boying_ffpark");
//        ledShow.setTimeStamp(sdf.format(new Date()));
//        ledShow.setColor1(1);
//        ledShow.setColor2(2);
//        ledShow.setColor3(1);
//        ledShow.setColor4(2);
//        ledShow.setContent1(carNo);
//        ledShow.setContent2("停车"+timeStamp);
//        ledShow.setContent3("交费"+price+"元");
//        ledShow.setContent4("禁止闯杆");
//        ledShow.setDisMode1(0);
//        ledShow.setDisMode2(1);
//        ledShow.setDisMode3(1);
//        ledShow.setDisMode4(0);
//        ledShow.setStatus1(0);
//        ledShow.setStatus2(0);
//        ledShow.setStatus3(0);
//        ledShow.setStatus4(0);
//        if(barrier.getIpAddress() != null){
//            ledShow.setIpAddress(barrier.getIpAddress());
//        }
//        if(barrier.getPort() != 0){
//            ledShow.setPort(barrier.getPort());
//        }
//        ledShow.setVoiceContent(carNo+"停车"+timeStamp+"交费"+price+"元");
//        return ledShowService.save(ledShow);
//    }
//
//    public Boolean outLedShow2(String ledId,String carNo,String text,String timeStamp,Integer parkId){
//        Barrier barrier = barrierService.findByCode(ledId);
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        LedShow ledShow = new LedShow();
//        ledShow.setLedId(ledId);
//        ledShow.setNumber(parkId);
//        ledShow.setStatus(1);
//        ledShow.setType(2);
//        ledShow.setName(barrier.getName());
//        ledShow.setIsDefault(1);
//        ledShow.setPassword("boying_ffpark");
//        ledShow.setTimeStamp(sdf.format(new Date()));
//        ledShow.setColor1(1);
//        ledShow.setColor2(2);
//        ledShow.setColor3(1);
//        ledShow.setColor4(2);
//        ledShow.setContent1(carNo);
//        ledShow.setContent2("停车"+timeStamp);
//        ledShow.setContent3(text);
//        ledShow.setContent4("禁止闯杆");
//        ledShow.setDisMode1(0);
//        ledShow.setDisMode2(1);
//        ledShow.setDisMode3(1);
//        ledShow.setDisMode4(0);
//        ledShow.setStatus1(0);
//        ledShow.setStatus2(0);
//        ledShow.setStatus3(0);
//        ledShow.setStatus4(0);
//        if(barrier.getIpAddress() != null){
//            ledShow.setIpAddress(barrier.getIpAddress());
//        }
//        if(barrier.getPort() != 0){
//            ledShow.setPort(barrier.getPort());
//        }
//        ledShow.setVoiceContent(carNo+"停车"+timeStamp);
//        return ledShowService.save(ledShow);
//    }
//
//    public Boolean outLedShowDefault(String ledId,Integer parkId){
//        Barrier barrier = barrierService.findByCode(ledId);
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        LedShow ledShow = new LedShow();
//        ledShow.setLedId(ledId);
//        ledShow.setNumber(parkId);
//        ledShow.setStatus(1);
//        ledShow.setType(2);
//        ledShow.setName(barrier.getName());
//        ledShow.setIsDefault(1);
//        ledShow.setPassword("boying_ffpark");
//        ledShow.setTimeStamp(sdf.format(new Date()));
//        ledShow.setColor1(1);
//        ledShow.setColor2(1);
//        ledShow.setColor3(1);
//        ledShow.setColor4(1);
//        ledShow.setContent1("欢迎光临");
//        ledShow.setContent2("一车一杆");
//        ledShow.setContent3("减速慢行");
//        ledShow.setContent4("安全行驶");
//        ledShow.setDisMode1(0);
//        ledShow.setDisMode2(0);
//        ledShow.setDisMode3(0);
//        ledShow.setDisMode4(0);
//        ledShow.setStatus1(0);
//        ledShow.setStatus2(0);
//        ledShow.setStatus3(0);
//        ledShow.setStatus4(0);
//        if(barrier.getIpAddress() != null){
//            ledShow.setIpAddress(barrier.getIpAddress());
//        }
//        if(barrier.getPort() != 0){
//            ledShow.setPort(barrier.getPort());
//        }
//        ledShow.setVoiceContent("");
//        return ledShowService.save(ledShow);
//    }
//
//}
src/main/java/com/boying/controller/car/PlateServlet2.java
@@ -17,6 +17,8 @@
import com.sun.media.jfxmedia.track.Track;
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;
@@ -46,7 +48,10 @@
@RequiredArgsConstructor
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;
@@ -294,7 +299,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();
src/main/java/com/boying/controller/car/PlateServlet3.java
@@ -60,6 +60,7 @@
    private final WhiteListService whiteListService;
    private final FileInfoService fileInfoService;
    private final TicketBlackService ticketBlackService;
    private final OutParkLogService outParkLogService;
    private final String LEDURL = "http://192.168.31.212:9988/LedShow/IGetResultDataAllLine";
    /**
@@ -196,6 +197,10 @@
                    outPark.setStatus2(1);
                    outParkService.saveOrUpdate(outPark);
                    easyOpen(request,response);
                    easyOpen(request,response);
                    OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId());
                    byOutPark.setOpenTime(LocalDateTime.now());
                    outParkLogService.saveOrUpdate(byOutPark);
                    enterParkService.deleteByCarNo(outPark.getCarNo(), barrier.getParkId());
                }
                if(barrier.getType() == 1){
@@ -615,6 +620,10 @@
            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);
            outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,1);
        }
        barrierService.saveOrUpdate(barrier);
src/main/java/com/boying/controller/phone/TicketController.java
@@ -141,6 +141,25 @@
        if(StringUtils.isNotBlank(ticket.getLng())&&StringUtils.isNotBlank(ticket.getLat())){
            saveLogo(ticket.getAddress(),ticket.getLng(),ticket.getLat());
        }
        if(ticket.getType() == 2){
            try {
                ticket.setPayStatus(1);
                QueryWrapper<TicketBlack> wrapper = new QueryWrapper<>();
                wrapper.lambda()
                        .eq(TicketBlack::getCarNo,ticket.getCarNo());
                List<TicketBlack> list = ticketBlackService.list(wrapper);
                if(list.size()>0){
                    for (TicketBlack ticketBlack : list) {
                        ticketBlackService.removeById(ticketBlack.getId());
                    }
                }
                ticket = ticketService.getNumber(ticket);
                ticket.setPush(0);
                ticketService.uploadInfo(ticket);
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return R.ok(ticket);
    }
@@ -202,6 +221,15 @@
        Ticket ticket =ticketService.getById(id);
        ticket.setStatus(3);
        ticketService.saveOrUpdate(ticket);
        QueryWrapper<TicketBlack> wrapper = new QueryWrapper<>();
        wrapper.lambda()
                .eq(TicketBlack::getCarNo,ticket.getCarNo());
        List<TicketBlack> list = ticketBlackService.list(wrapper);
        if(list.size()>0){
            for (TicketBlack ticketBlack : list) {
                ticketBlackService.removeById(ticketBlack.getId());
            }
        }
        return R.ok("操作成功");
    }
@@ -213,7 +241,7 @@
            ticket.setMoneyStr(s.toString());
        }
        if(ticket.getMoney() == 0){
            if(StringUtils.isNotBlank(ticket.getNumber())){
            if(StringUtils.isBlank(ticket.getNumber())){
                ticket = ticketService.getNumber(ticket);
                ticket.setPush(0);
                ticketService.uploadInfo(ticket);
src/main/java/com/boying/controller/phone/YCPayController.java
@@ -59,6 +59,7 @@
    private final WhiteListService whiteListService;
    private final EnterParkService enterParkService;
    private final WXService wxService;
    private final OutParkLogService outParkLogService;
    /**
     * 查询订单接口
@@ -187,6 +188,9 @@
        if(StringUtils.isNotBlank(outPark.getPayCode()) && outPark.getStatus() == 0){
            String logs = sdf.format(new Date())+" 车牌号为:"+outPark.getCarNo()+",申请缴费2------》\n";
            writeTxt(logs);
            OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId());
            byOutPark.setPayStartTime(LocalDateTime.now());
            outParkLogService.saveOrUpdate(byOutPark);
            return R.ok(null,"跳转邢台银行支付");
        }else if(StringUtils.isNotBlank(outPark.getPayCode()) && outPark.getStatus() == 1){
            return R.failed("已缴费");
@@ -204,6 +208,9 @@
                    }else {
                        outPark.setPrice(outPark.getPrice()-enterPark.getPrice());
                        outParkService.updateById(outPark);
                        OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId());
                        byOutPark.setPayStartTime(LocalDateTime.now());
                        outParkLogService.saveOrUpdate(byOutPark);
                    }
                }
            }
@@ -452,6 +459,9 @@
                        if(byPayCode.getStatus() == 1){
                            return R.ok(null,"订单已支付");
                        }else {
                            OutParkLog byOutPark = outParkLogService.getByOutPark(byPayCode.getCarNo(), byPayCode.getId());
                            byOutPark.setPayEndTime(LocalDateTime.now());
                            outParkLogService.saveOrUpdate(byOutPark);
                            updateOrderRecord((long)byPayCode.getId(),"03");
                            List<EnterPark> byCarNo = enterParkService.findByCarNo(byPayCode.getCarNo(),byPayCode.getParkId());
                            if(byCarNo.size()>0){
@@ -666,7 +676,7 @@
    //更新出场
    public void updateOutPark(Integer outParkId, String status){
        OutPark outPark = outParkService.getById(outParkId);
        if(outPark!=null){
        if(outPark!=null && outPark.getEnterTime() !=null){
            if(status.equals("03")){
                outPark.setStatus(1);
                outParkService.saveOrUpdate(outPark);
src/main/java/com/boying/entity/Ticket.java
@@ -23,8 +23,8 @@
@TableName("ticket")
@javax.persistence.Table(name = "ticket")
@Entity
@org.hibernate.annotations.Table(appliesTo = "ticket", comment = "票据表")
@ApiModel(value = "街道表")
@org.hibernate.annotations.Table(appliesTo = "ticket", comment = "罚单表")
@ApiModel(value = "罚单表")
public class Ticket extends BaseEntity<Ticket> {
    /**
src/main/java/com/boying/job/EticketScheduled.java
@@ -52,10 +52,10 @@
        taskFlag = true;
        QueryWrapper<OrderRecord> wrapper = new QueryWrapper<>();
        wrapper.lambda()
                .eq(OrderRecord::getStatus,1)
                .eq(OrderRecord::getType,1)
                .eq(OrderRecord::getTicketStatus,0)
                .orderByDesc(OrderRecord::getCreateTime);
//                .eq(OrderRecord::getStatus,1)
//                .eq(OrderRecord::getType,1)
//                .eq(OrderRecord::getTicketStatus,0)
                .orderByDesc(OrderRecord::getCreateTime).eq(OrderRecord::getId,25230);
        List<OrderRecord> list = orderRecordService.list(wrapper);
        if(list.size() > 0){
            if(list.size() > 50){
@@ -86,8 +86,8 @@
                info.setOrdernum(1);
                info.setAmt(orderRecord.getMoney());
                info.setAmount(1);
                info.setIncitemcode("072101");
                info.setIncitemname("停车泊位及公共停车场等有偿使用收入");
                info.setIncitemcode("050114");
                info.setIncitemname("交通罚没");
                infos.add(info);
                //list转json
                Gson gson = new Gson();
@@ -130,7 +130,7 @@
                    writeTxt(txt);
                    orderRecordService.saveOrUpdate(orderRecord);
                }else {
                   // System.out.println(entity.getBody());
                    System.out.println(entity.getBody());
                    txt += entity.getBody()+",\n";
                    writeTxt(txt);
                }
src/main/java/com/boying/job/GetEticketScheduled.java
@@ -50,9 +50,7 @@
//                .eq(OrderRecord::getTicketStatus, 0)
//                .isNotNull(OrderRecord::getEinvoicecode)
//                .orderByDesc(OrderRecord::getCreateTime);
                .in(OrderRecord::getPayCode,"13040623000000055070","13040623000000062406","13040623000000232508","13040623000000363081","13040623000000242992","13040623000000319574","13040623000000362919","13040623000000154458","13040623000000151150",
                        "13040623000000155450","13040623000000241009","13040623000000363014","13040623000000220187","13040623000000231732","13040623000000362898","13040623000000362900","13040623000000362951","13040623000000153156","13040623000000150991",
                        "13040623000000327435","13040623000000226482");
                .in(OrderRecord::getPayCode, "13040623000000327435","13040623000000462573");
        List<OrderRecord> list = orderRecordService.list(wrapper);
        if (list.size() > 0) {
            if (list.size() > 50) {
@@ -88,7 +86,7 @@
            writeTxt(txt);
            doTicketGet(mapTypes,orderRecord);
        }else {
          //  System.out.println(entity.getBody());
            System.out.println(entity.getBody());
            txt += "查询有误,"+entity.getBody()+"\n";
            writeTxt(txt);
        }
src/main/java/com/boying/job/YCEticketScheduled.java
@@ -52,11 +52,12 @@
            return;
        }
        QueryWrapper<OrderRecord> wrapper = new QueryWrapper<>();
        wrapper.lambda()
                .eq(OrderRecord::getTicketStatus, 2)
                .eq(OrderRecord::getType,1)
                .isNotNull(OrderRecord::getEinvoicecode)
                .orderByDesc(OrderRecord::getCreateTime);
//        wrapper.lambda()
//                .eq(OrderRecord::getTicketStatus, 2)
//                .eq(OrderRecord::getType,1)
//                .isNotNull(OrderRecord::getEinvoicecode)
//                .orderByDesc(OrderRecord::getCreateTime);
        wrapper.lambda().eq(OrderRecord::getId,16501);
        List<OrderRecord> list = orderRecordService.list(wrapper);
        if (list.size() > 0) {
            if (list.size() > 50) {
@@ -65,6 +66,9 @@
            //开取发票
            for (OrderRecord orderRecord : list) {
               // System.out.println("正在申请开票文件:" + orderRecord);
                if(orderRecord.getFileId() != null){
                    continue;
                }
                doTicket(orderRecord);
            }
        }
src/main/java/com/boying/job/YCGetEticketScheduled.java
@@ -44,10 +44,11 @@
            return;
        }
        QueryWrapper<OrderRecord> wrapper = new QueryWrapper<>();
        wrapper.lambda()
                .eq(OrderRecord::getTicketStatus, 2)
                .eq(OrderRecord::getType,1)
                .orderByDesc(OrderRecord::getCreateTime);
//        wrapper.lambda()
//                .eq(OrderRecord::getTicketStatus, 2)
//                .eq(OrderRecord::getType,1)
//                .orderByDesc(OrderRecord::getCreateTime);
        wrapper.lambda().eq(OrderRecord::getId,16501);
        List<OrderRecord> list = orderRecordService.list(wrapper);
        if (list.size() > 0) {
            if (list.size() > 50) {
@@ -99,7 +100,8 @@
            directTicket.setChecker("乔宁");
            directTicket.setPayinfo(json);
            directTicket.setState(1);
            directTicket.setBilltypeid("1252");
            directTicket.setBilltypeid("1252"); // 申请缴款码为1252,缴款码为1230
            //directTicket.setBilltypeid("1230");
            String jsonStr = JSON.toJSONString(directTicket, SerializerFeature.WriteDateUseDateFormat);
            Map<String, Object> map = JSON.parseObject(jsonStr, new TypeReference<Map<String, Object>>() {});