Bladeren bron

定时任务,查询历史内部车辆问题数据(没进内部停车场)

LIVE_YE 2 jaren geleden
bovenliggende
commit
00503c4cd3

+ 64 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/record/RecordDataController.java

@@ -0,0 +1,64 @@
+package com.ruoyi.web.controller.record;
+
+import com.github.pagehelper.PageInfo;
+import com.ruoyi.common.constant.HttpStatus;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.framework.web.domain.Server;
+import com.ruoyi.system.domain.RecordData;
+import com.ruoyi.system.service.RecordDataService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 服务器监控
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/recordData")
+public class RecordDataController {
+
+    @Autowired
+    RecordDataService recordDataService;
+
+    @GetMapping("/list")
+    public TableDataInfo list(RecordData recordData) {
+
+        startPage();
+        List<RecordData> list = recordDataService.list(recordData);
+        return getDataTable(list);
+
+    }
+
+    /**
+     * 设置请求分页数据
+     */
+    protected void startPage()
+    {
+        PageUtils.startPage();
+    }
+
+    /**
+     * 响应请求分页数据
+     */
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    protected TableDataInfo getDataTable(List<?> list)
+    {
+        TableDataInfo rspData = new TableDataInfo();
+        rspData.setCode(HttpStatus.SUCCESS);
+        rspData.setMsg("查询成功");
+        rspData.setRows(list);
+        rspData.setTotal(new PageInfo(list).getTotal());
+        return rspData;
+    }
+
+}

+ 1 - 1
ruoyi-admin/src/main/resources/application-druid.yml

@@ -24,7 +24,7 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://192.168.101.10:3306/qianshan_nucleic_contrast?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://192.168.101.10:3306/qianshan_parking_lot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: root
                 password: Boman123
             # 从库数据源

+ 2 - 2
ruoyi-admin/src/main/resources/application.yml

@@ -104,6 +104,6 @@ xss:
   # 过滤开关
   enabled: true
   # 排除链接(多个用逗号分隔)
-  excludes: /system/notice
+  excludes: /system/notice,/parkLot/*,/recordData/list
   # 匹配链接
-  urlPatterns: /system/*,/monitor/*,/tool/*
+  urlPatterns: /system/*,/monitor/*,/tool/*,/parkLot/*,/recordData/list

+ 1 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java

@@ -109,7 +109,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 // 过滤请求
                 .authorizeRequests()
                 // 对于登录login 注册register 验证码captchaImage 允许匿名访问
-                .antMatchers("/login", "/register", "/captchaImage").anonymous()
+                .antMatchers("/login", "/register", "/captchaImage", "/parkLot/parkLotNum","/recordData/list").anonymous()
                 // 静态资源,可匿名访问
                 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                 .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()

+ 188 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/RecordData.java

@@ -0,0 +1,188 @@
+package com.ruoyi.system.domain;
+
+public class RecordData {
+
+    /** 数据唯一标识 */
+    private String id;
+
+    /** 停车库唯一标识 */
+    private String parkSyscode;
+
+    /** 停车库名称 */
+    private String parkName;
+
+    /** 出入口唯一标识 */
+    private String entranceSyscode;
+
+    /** 出入口名称 */
+    private String entranceName;
+
+    /** 车道唯一标识 */
+    private String roadwaySyscode;
+
+    /** 车道名称 */
+    private String roadwayName;
+
+    /** 是否出场 0-进场,1-出场 */
+    private int vehicleOut;
+
+    /** 放行模式0-禁止放行,1-固定车包期,2-临时车入场,3-预约车入场,10-离线出场,11-缴费出场,12-预付费出场,13-免费出场,30- 非法卡不放行,31-手动放行,32-特殊车辆放行,33-节假日放行,35-群组放行,36-遥控器开闸 */
+    private Integer releaseMode;
+
+    /** 车牌号码 */
+    private String plateNo;
+
+    /** 卡片号码 */
+    private String cardNo;
+
+    /** 通过时间ISO8601格式:yyyy-MM-ddTHH:mm:ss+当前时区,例如北京时间:2018-07-26T15:00:00+08:00 */
+    private String crossTime;
+
+    /** 创建时间 */
+    private String createTime;
+
+    /** 开始时间 */
+    private String startTime;
+
+    /** 结束时间 */
+    private String endTime;
+
+    public String getId() {
+        return id;
+    }
+
+    public String getParkSyscode() {
+        return parkSyscode;
+    }
+
+    public String getParkName() {
+        return parkName;
+    }
+
+    public String getEntranceSyscode() {
+        return entranceSyscode;
+    }
+
+    public String getEntranceName() {
+        return entranceName;
+    }
+
+    public String getRoadwaySyscode() {
+        return roadwaySyscode;
+    }
+
+    public String getRoadwayName() {
+        return roadwayName;
+    }
+
+    public int getVehicleOut() {
+        return vehicleOut;
+    }
+
+    public Integer getReleaseMode() {
+        return releaseMode;
+    }
+
+    public String getPlateNo() {
+        return plateNo;
+    }
+
+    public String getCardNo() {
+        return cardNo;
+    }
+
+    public String getCrossTime() {
+        return crossTime;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public void setParkSyscode(String parkSyscode) {
+        this.parkSyscode = parkSyscode;
+    }
+
+    public void setParkName(String parkName) {
+        this.parkName = parkName;
+    }
+
+    public void setEntranceSyscode(String entranceSyscode) {
+        this.entranceSyscode = entranceSyscode;
+    }
+
+    public void setEntranceName(String entranceName) {
+        this.entranceName = entranceName;
+    }
+
+    public void setRoadwaySyscode(String roadwaySyscode) {
+        this.roadwaySyscode = roadwaySyscode;
+    }
+
+    public void setRoadwayName(String roadwayName) {
+        this.roadwayName = roadwayName;
+    }
+
+    public void setVehicleOut(int vehicleOut) {
+        this.vehicleOut = vehicleOut;
+    }
+
+    public void setReleaseMode(Integer releaseMode) {
+        this.releaseMode = releaseMode;
+    }
+
+    public void setPlateNo(String plateNo) {
+        this.plateNo = plateNo;
+    }
+
+    public void setCardNo(String cardNo) {
+        this.cardNo = cardNo;
+    }
+
+    public void setCrossTime(String crossTime) {
+        this.crossTime = crossTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    @Override
+    public String toString() {
+        return "RecordData{" +
+                "id='" + id + '\'' +
+                ", parkSyscode='" + parkSyscode + '\'' +
+                ", parkName='" + parkName + '\'' +
+                ", entranceSyscode='" + entranceSyscode + '\'' +
+                ", entranceName='" + entranceName + '\'' +
+                ", roadwaySyscode='" + roadwaySyscode + '\'' +
+                ", roadwayName='" + roadwayName + '\'' +
+                ", vehicleOut=" + vehicleOut +
+                ", releaseMode='" + releaseMode + '\'' +
+                ", plateNo='" + plateNo + '\'' +
+                ", cardNo='" + cardNo + '\'' +
+                ", crossTime='" + crossTime + '\'' +
+                ", createTime='" + createTime + '\'' +
+                '}';
+    }
+}

+ 18 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/RecordDataMapper.java

@@ -0,0 +1,18 @@
+package com.ruoyi.system.mapper;
+
+import com.ruoyi.system.domain.RecordData;
+
+import java.util.List;
+
+/**
+ * 停车异常数据 数据层
+ * 
+ * @author ruoyi
+ */
+public interface RecordDataMapper
+{
+
+    void insertRecordData(RecordData recordData);
+
+    List<RecordData> selectList(RecordData recordData);
+}

+ 17 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/RecordDataService.java

@@ -0,0 +1,17 @@
+package com.ruoyi.system.service;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.system.domain.RecordData;
+
+import java.util.List;
+
+/**
+ * 停车异常数据 服务层
+ * 
+ * @author ruoyi
+ */
+public interface RecordDataService
+{
+
+    public List<RecordData> list(RecordData recordData);
+}

+ 135 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/Task.java

@@ -0,0 +1,135 @@
+package com.ruoyi.system.service;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.system.domain.RecordData;
+import com.ruoyi.system.mapper.RecordDataMapper;
+import com.ruoyi.system.utils.timingURL;
+import org.joda.time.DateTime;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class Task {
+
+    @Resource
+    private RecordDataMapper recordDataMapper;
+
+    /**
+     *定时任务(定时取海康威视的进场数据)
+     */
+    //@Scheduled(cron = "0 10,40 * * * ? ")
+    public void parkingLotData() {
+        DateTime dt = new DateTime();
+        String endTime=dt.toString("yyyy-MM-dd'T'HH:mm:ss")+"+08:00";
+
+        DateTime dateTime = dt.minusHours(24);
+        String startTime=dateTime.toString("yyyy-MM-dd'T'HH:mm:ss")+"+08:00";
+
+
+        //查询内部车辆进场信息(外场)
+        String outApi = "";
+        String outParkSyscode = "";
+        String outEntranceSyscode = "";
+        List<Map<String,Object>> outListAll = new ArrayList<>();
+        for (int i = 1; i > 0; i++) {
+            int pageNo = 1;
+            String outfieldData = timingURL.timingURL(outApi,outParkSyscode,outEntranceSyscode,startTime,endTime,pageNo);
+            JSONObject jsonObject = JSONObject.parseObject(outfieldData);
+            String data = (String) jsonObject.get("data");
+            JSONObject outData = JSONObject.parseObject(data);
+            List<Map<String,Object>> list = (List<Map<String, Object>>) outData.get("list");
+            outListAll.addAll(list);
+            if(list.size()<1000){
+                i=-2;
+            }else{
+                pageNo++;
+            }
+        }
+        //查询内部车辆进场信息(内场) infield
+        String infieldApi = "";
+        String infieldParkSyscode = "";
+        String infieldEntranceSyscode = "";
+        List<Map<String,Object>> infieldListAll = new ArrayList<>();
+        for (int i = 1; i > 0; i++) {
+            int pageNo = 1;
+            String infieldfieldData = timingURL.timingURL(infieldApi,infieldParkSyscode,infieldEntranceSyscode,startTime,endTime,pageNo);
+            JSONObject jsonObject = JSONObject.parseObject(infieldfieldData);
+            String data = (String) jsonObject.get("data");
+            JSONObject infieldData = JSONObject.parseObject(data);
+            List<Map<String,Object>> list = (List<Map<String, Object>>) infieldData.get("list");
+            outListAll.addAll(list);
+            if(list.size()<1000){
+                i=-2;
+            }else{
+                pageNo++;
+            }
+        }
+
+        for (Map<String, Object> stringObjectMap : outListAll) {
+            boolean bl = true;
+            for (Map<String, Object> objectMap : infieldListAll) {
+                if(stringObjectMap.get("plateNo").equals(objectMap.get("plateNo"))){
+                    bl = false;
+                }
+            }
+            if(bl){
+                RecordData recordData = new RecordData();
+                recordData.setId((String) stringObjectMap.get("crossRecordSyscode"));
+                recordData.setParkSyscode((String) stringObjectMap.get("parkSyscode"));
+                recordData.setCardNo((String) stringObjectMap.get("cardNo"));
+                recordData.setParkName((String) stringObjectMap.get("parkName"));
+                recordData.setEntranceName((String) stringObjectMap.get("entranceName"));
+                recordData.setPlateNo((String) stringObjectMap.get("plateNo"));
+                recordData.setEntranceSyscode((String) stringObjectMap.get("entranceSyscode"));
+                recordData.setReleaseMode((Integer) stringObjectMap.get("releaseMode"));
+                recordData.setRoadwayName((String) stringObjectMap.get("roadwayName"));
+                recordData.setRoadwaySyscode((String) stringObjectMap.get("roadwaySyscode"));
+                //2018-07-26T15:00:00+08:00
+                recordData.setCrossTime(zDate((String) stringObjectMap.get("crossTime")));
+                //将信息保存进数据库
+                recordDataMapper.insertRecordData(recordData);
+            }
+        }
+
+
+    }
+
+
+    //将yyyy-MM-dd'T'HH:mm:ss转换成yyyy-MM-dd HH:mm:ss
+    public static String zDate(String tDate){
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
+        Date date2 = null;
+        try {
+            date2 = format.parse(tDate);
+            return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date2);
+        } catch (ParseException e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    public static void main(String[] args) {
+
+        DateTime dt = new DateTime();
+        String endTime=dt.toString("yyyy-MM-dd'T'HH:mm:ss")+"+08:00";
+
+        DateTime dateTime = dt.minusHours(24);
+        String startTime=dateTime.toString("yyyy-MM-dd'T'HH:mm:ss")+"+08:00";
+
+        System.out.println(endTime);
+        System.out.println(startTime);
+
+    }
+
+
+
+}

+ 28 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordDataServiceImpl.java

@@ -0,0 +1,28 @@
+package com.ruoyi.system.service.impl;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.system.domain.RecordData;
+import com.ruoyi.system.mapper.RecordDataMapper;
+import com.ruoyi.system.service.RecordDataService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 停车异常数据 服务层实现
+ * 
+ * @author ruoyi
+ */
+@Service
+public class RecordDataServiceImpl implements RecordDataService
+{
+    @Autowired
+    RecordDataMapper recordDataMapper;
+
+    @Override
+    public List<RecordData> list(RecordData recordData) {
+
+        return recordDataMapper.selectList(recordData);
+    }
+}

+ 136 - 0
ruoyi-system/src/main/java/com/ruoyi/system/utils/timingURL.java

@@ -0,0 +1,136 @@
+package com.ruoyi.system.utils;
+
+
+import com.alibaba.fastjson2.JSONObject;
+import com.hikvision.artemis.sdk.ArtemisHttpUtil;
+import com.hikvision.artemis.sdk.config.ArtemisConfig;
+
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Author:
+ * @Date: 2023/1/3 15:01
+ * @Describe:
+ */
+public class timingURL {
+
+
+    /**
+     * 获取地上停车数据
+     * @param api 接口地址
+     * @param parkSyscode 停车库唯一标识
+     * @param entranceSyscode 出入口唯一标识
+     * @param startTime 查询开始时间
+     * @param endTime 查询结束时间
+     * @param pageNo 目标页码
+     * @return
+     */
+    public static String timingURL(String api,String parkSyscode,String entranceSyscode,String startTime,String endTime, int pageNo) {
+        /**
+         * STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数.
+         */
+        ArtemisConfig.host = "114.99.51.58:442"; // 平台的ip端口
+        ArtemisConfig.appKey = "26665995";  // 密钥appkey
+        ArtemisConfig.appSecret = "P9y9211M5ftH8P1Xrcef";// 密钥appSecret
+
+        /**
+         * STEP2:设置OpenAPI接口的上下文
+         */
+        final String ARTEMIS_PATH = "/artemis";
+        /**
+         * STEP3:设置接口的URI地址
+         */
+        final String previewURLsApi = ARTEMIS_PATH + "/api/pms/v1/crossRecords/page";
+        Map<String, String> path = new HashMap<String, String>(2) {
+            {
+                put("https://", previewURLsApi);//根据现场环境部署确认是http还是https
+            }
+        };
+
+        /**
+         * STEP4:设置参数提交方式
+         */
+        String contentType = "application/json";
+
+        /**
+         * STEP5:组装请求参数
+         */
+        JSONObject jsonBody = new JSONObject();
+        //停车库唯一标识
+        jsonBody.put("parkSyscode", "dfasgqegbq34g3q4g34g");
+        //出入口唯一标识
+        jsonBody.put("entranceSyscode", "gq34gh45h34g34g4");
+        //查询开始时间
+        //ISO8601格式:
+        //yyyy-MM-ddTHH:mm:ss+当前时区,例如北京时间:
+        //2018-07-26T15:00:00+08:00
+        jsonBody.put("startTime", "2018-07-26T15:00:00+08:00");
+        //查询结束时间
+        //ISO8601格式:
+        //yyyy-MM-ddTHH:mm:ss+当前时区,例如北京时间:
+        //2018-07-26T15:00:00+08:00
+        jsonBody.put("endTime", "2018-07-26T15:00:00+08:00");
+        //进出场标识  0-进场   1-出场
+        jsonBody.put("vehicleOut", 0);
+        //车辆分类  9-黑名单 10-固定车 11-临时车 12-预约车 14-特殊车
+        jsonBody.put("carCategory", "10");
+        //目标页码
+        jsonBody.put("pageNo", 1);
+        //每页记录数
+        jsonBody.put("pageSize", 1000);
+        //停车库唯一标识
+        String body = jsonBody.toJSONString();
+        /**
+         * STEP6:调用接口
+         */
+        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType , null);// post请求application/json类型参数
+        System.out.println(result);
+        /**
+         * {
+         *     "code": "0",
+         *     "msg": "success",
+         *     "data": {
+         *         "total": 1,
+         *         "pageNo": 1,
+         *         "pageSize": 15,
+         *         "list": [
+         *             {
+         *                 "crossRecordSyscode": "g45h245gh235g2354g",
+         *                 "parkSyscode": "gqwerg354g345g35g",
+         *                 "parkName": "停车库1",
+         *                 "entranceSyscode": "rggergqw45ghw45gb",
+         *                 "entranceName": "出入口1",
+         *                 "roadwaySyscode": "a9rvy0y5029waurc92-cu5",
+         *                 "roadwayName": "车道1",
+         *                 "vehicleOut": 1,
+         *                 "releaseMode": 2,
+         *                 "releaseResult": 1,
+         *                 "releaseWay": 1,
+         *                 "releaseReason": 100,
+         *                 "plateNo": "浙A12345",
+         *                 "cardNo": "54523451",
+         *                 "vehicleColor": 1,
+         *                 "vehicleType": 1,
+         *                 "plateColor": 1,
+         *                 "plateType": 2,
+         *                 "carCategory": "11",
+         *                 "carCategoryName": "临时车",
+         *                 "vehiclePicUri": "/pic?=d7ei703i10cd*73a-d5108a--22cd0c9d6592aiid=",
+         *                 "plateNoPicUri": "/pic?=d7ei703i10cd*73a-d5108a--22cd0c9d6592aiid=",
+         *                 "facePicUri": "/pic?=d7ei703i10cd*73a-d5108a--22cd0c9d6592aiid=",
+         *                 "aswSyscode": "h4h45y13ty23hg24h",
+         *                 "crossTime": "2018-07-26T15:00:00+08:00",
+         *                 "createTime": "2018-07-26T15:00:00+08:00"
+         *             }
+         *         ]
+         *     }
+         * }
+         */
+        return result;
+    }
+
+
+}
+

+ 78 - 0
ruoyi-system/src/main/resources/mapper/system/RecordDataMapper.xml

@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.RecordDataMapper">
+    
+    <resultMap type="RecordData" id="RecordDataResult">
+    	<id     property="id"      column="id"      />
+        <result property="parkSyscode"    column="park_syscode"    />
+        <result property="parkName"     column="park_name"     />
+        <result property="entranceSyscode"   column="entrance_syscode"   />
+        <result property="entranceName"    column="entrance_name"    />
+        <result property="roadwaySyscode"      column="roadway_syscode"      />
+        <result property="roadwayName"    column="roadway_name"    />
+        <result property="vehicleOut"      column="vehicle_out"      />
+        <result property="releaseMode"    column="release_mode"    />
+        <result property="plateNo"    column="plate_no"    />
+        <result property="cardNo"    column="card_no"    />
+        <result property="crossTime"    column="cross_time"    />
+        <result property="createTime"    column="create_time"    />
+    </resultMap>
+    
+    <sql id="recordDataVo">
+        select id, park_syscode, park_name, entrance_syscode, entrance_name, roadway_syscode, roadway_name, vehicle_out, release_mode, plate_no, card_no, cross_time, create_time
+		from record_data
+    </sql>
+
+    
+    <select id="selectList" parameterType="RecordData" resultMap="RecordDataResult">
+        <include refid="recordDataVo"/>
+        <where>
+			<if test="plateNo != null and plateNo != ''">
+				AND plate_no like concat('%', #{plateNo}, '%')
+			</if>
+			<if test="startTime != null and startTime != ''"><!-- 开始时间检索 -->
+				and date_format(cross_time,'%y%m%d %H:%i:%S') &gt;= date_format(#{startTime},'%y%m%d %H:%i:%S')
+			</if>
+			<if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
+				and date_format(cross_time,'%y%m%d %H:%i:%S') &lt;= date_format(#{endTime},'%y%m%d %H:%i:%S')
+			</if>
+		</where>
+    </select>
+
+    
+    <insert id="insertRecordData" parameterType="RecordData">
+        insert into sys_config (
+			<if test="id != null and id != '' ">id,</if>
+			<if test="parkSyscode != null and parkSyscode != '' ">park_syscode,</if>
+			<if test="entranceSyscode != null and entranceSyscode != '' ">entrance_syscode,</if>
+			<if test="entranceName != null and entranceName != '' ">entrance_name,</if>
+			<if test="roadwaySyscode != null and roadwaySyscode != ''">roadway_syscode,</if>
+			<if test="roadwayName != null and roadwayName != ''">roadway_name,</if>
+			<if test="vehicleOut != null and vehicleOut != ''">vehicle_out,</if>
+			<if test="releaseMode != null and releaseMode != ''">release_mode,</if>
+			<if test="plateNo != null and plateNo != ''">plate_no,</if>
+			<if test="cardNo != null and cardNo != ''">card_no,</if>
+			<if test="crossTime != null and crossTime != ''">cross_time,</if>
+ 			create_time
+        )values(
+			<if test="id != null and id != '' ">#{id},</if>
+			<if test="parkSyscode != null and parkSyscode != '' ">#{parkSyscode},</if>
+			<if test="entranceSyscode != null and entranceSyscode != '' ">#{entranceSyscode},</if>
+			<if test="entranceName != null and entranceName != '' ">#{entranceName},</if>
+			<if test="roadwaySyscode != null and roadwaySyscode != ''">#{roadwaySyscode},</if>
+			<if test="roadwayName != null and roadwayName != ''">#{roadwayName},</if>
+			<if test="vehicleOut != null and vehicleOut != ''">#{vehicleOut},</if>
+			<if test="releaseMode != null and releaseMode != ''">#{releaseMode},</if>
+			<if test="plateNo != null and plateNo != ''">#{plateNo},</if>
+			<if test="cardNo != null and cardNo != ''">#{cardNo},</if>
+			<if test="crossTime != null and crossTime != ''">#{crossTime},</if>
+ 			sysdate()
+		)
+    </insert>
+
+
+
+    
+</mapper>

+ 2 - 2
ruoyi-ui/vue.config.js

@@ -9,7 +9,7 @@ const CompressionPlugin = require('compression-webpack-plugin')
 
 const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题
 
-const port = process.env.port || process.env.npm_config_port || 80 // 端口
+const port = process.env.port || process.env.npm_config_port || 8899 // 端口
 
 // vue.config.js 配置说明
 //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
@@ -35,7 +35,7 @@ module.exports = {
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
-        target: `http://localhost:8080`,
+        target: `http://localhost:8899`,
         changeOrigin: true,
         pathRewrite: {
           ['^' + process.env.VUE_APP_BASE_API]: ''