Procházet zdrojové kódy

修改 人员、车辆进出记录管理

11868 před 3 dny
rodič
revize
eb37dbf871

+ 11 - 0
supervision-admin/src/main/java/com/supervision/web/carGateManage/controller/VehicleAccessRecordController.java

@@ -56,4 +56,15 @@ public class VehicleAccessRecordController {
         result.put("msg", success ? "删除成功" : "删除失败");
         return result;
     }
+
+    @PostMapping("/batchDelete")
+    public Map<String, Object> batchDelete(@RequestBody Map<String, Object> params) {
+        @SuppressWarnings("unchecked")
+        List<Long> ids = (List<Long>) params.get("ids");
+        boolean success = vehicleAccessRecordService.batchDelete(ids);
+        Map<String,Object> map = new HashMap<>();
+        map.put("success", success);
+        map.put("msg", success ? "批量删除成功" : "批量删除失败");
+        return map;
+    }
 }

+ 17 - 18
supervision-admin/src/main/java/com/supervision/web/carGateManage/entity/VehicleAccessRecord.java

@@ -1,46 +1,45 @@
 package com.supervision.web.carGateManage.entity;
 
-
 import lombok.Data;
-
 import java.util.Date;
 
 /**
  * 车辆进出记录实体类
- * 用于记录海康威视车牌识别设备上报的车辆进出事件
- * 对应前端“车辆进出记录”表格展示
+ * 用于记录海康威视车牌识别设备上报的车辆进出事件
+ * 对应前端“车辆进出记录”表格展示
  */
 @Data
 public class VehicleAccessRecord {
 
-    /** 主键ID,自增 */
+    /** 主键ID,自增,用于唯一标识一条车辆通行记录 */
     private Long id;
 
-    /** 车牌号,例如 "粤A12345" */
-    private String plateNumber;
-
-    /** 设备ID,对应设备表中的主键,用于区分来源设备 */
+    /** 设备ID,对应设备表中的主键,用于区分来源设备(哪台车牌识别一体机) */
     private Long deviceId;
 
+    /** 车牌号,例如 "粤A12345",用于识别车辆身份 */
+    private String plateNumber;
+
     /**
-     * 事件类型
-     * in:进场(车辆进入)
-     * out:出场(车辆离开)
+     * 事件类型:
+     *  - "in":进场(车辆进入)
+     *  - "out":出场(车辆离开)
+     * 具体值取决于设备上报的事件类型编码。
      */
     private String eventType;
 
-    /** 抓拍时间,表示车辆被识别的具体时间 */
+    /** 抓拍时间,表示车辆被识别的具体时间 */
     private Date captureTime;
 
-    /** 抓拍图片URL,用于展示车辆进出时的照片 */
+    /** 抓拍图片URL,保存车辆进出时的图片路径(用于前端展示) */
     private String photoUrl;
 
-    /** 备注信息,例如识别异常说明或人工补录原因 */
+    /** 备注信息,例如“识别异常”、“人工补录”、“遮挡车牌”等说明 */
     private String remark;
 
-    /** 记录创建时间(系统插入数据库的时间) */
+    /** 记录创建时间(系统插入数据库时自动生成) */
     private Date createTime;
 
-    /** 记录最后更新时间(系统修改记录时自动更新) */
+    /** 记录最后更新时间(系统更新时自动刷新) */
     private Date updateTime;
-}
+}

+ 2 - 1
supervision-admin/src/main/java/com/supervision/web/carGateManage/mapper/VehicleAccessRecordMapper.java

@@ -8,6 +8,7 @@ import java.util.List;
 
 @Mapper
 public interface VehicleAccessRecordMapper {
+
     List<VehicleAccessRecord> getList(@Param("deviceId") Long deviceId,
                                       @Param("plateNumber") String plateNumber,
                                       @Param("eventType") String eventType,
@@ -20,6 +21,6 @@ public interface VehicleAccessRecordMapper {
 
     int deleteById(Long id);
 
-    int deleteBatch(@Param("ids") List<Long> ids);
+    int batchDelete(@Param("ids") List<Long> ids);
 }
 

+ 1 - 0
supervision-admin/src/main/java/com/supervision/web/carGateManage/service/VehicleAccessRecordService.java

@@ -7,6 +7,7 @@ import java.util.List;
 import java.util.Map;
 
 public interface VehicleAccessRecordService {
+
     PageInfo<VehicleAccessRecord> getList(Map<String, Object> params);
 
     boolean add(VehicleAccessRecord record);

+ 22 - 30
supervision-admin/src/main/java/com/supervision/web/peopleGateManage/controller/PersonAccessRecordController.java

@@ -1,16 +1,15 @@
 package com.supervision.web.peopleGateManage.controller;
 
+import com.github.pagehelper.PageInfo;
 import com.supervision.web.peopleGateManage.entity.PersonAccessRecord;
 import com.supervision.web.peopleGateManage.service.PersonAccessRecordService;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -20,59 +19,52 @@ import java.util.Map;
 public class PersonAccessRecordController {
 
     @Resource
-    private PersonAccessRecordService service;
+    private PersonAccessRecordService personAccessRecordService;
 
-    @GetMapping("/list")
-    public Map<String, Object> list(Long deviceId, Long personId, String name, String eventType,
-                                    @RequestParam(required=false) Date startTime,
-                                    @RequestParam(required=false) Date endTime,
-                                    @RequestParam(defaultValue="1") int page,
-                                    @RequestParam(defaultValue="10") int pageSize) {
-        List<PersonAccessRecord>
-                list = service.getList(deviceId, personId, name, eventType, startTime, endTime, page, pageSize);
-        int total = service.getTotal(deviceId, personId, name, eventType, startTime, endTime);
-        Map<String, Object> map = new HashMap<>();
-        map.put("records", list);
-        map.put("total", total);
-        map.put("page", page);
-        map.put("pageSize", pageSize);
-        map.put("success", true);
-        return map;
+    @PostMapping("/list")
+    public Map<String, Object> list(@RequestBody Map<String, Object> params) {
+        PageInfo<PersonAccessRecord> pageInfo = personAccessRecordService.getList(params);
+        Map<String, Object> result = new HashMap<>();
+        result.put("total", pageInfo.getTotal());
+        result.put("list", pageInfo.getList());
+        result.put("pageNum", pageInfo.getPageNum());
+        result.put("pageSize", pageInfo.getPageSize());
+        return result;
     }
 
     @PostMapping("/add")
-    public Map<String,Object> add(@RequestBody PersonAccessRecord record){
-        boolean success = service.add(record);
-        Map<String,Object> map = new HashMap<>();
+    public Map<String, Object> add(@RequestBody PersonAccessRecord record) {
+        boolean success = personAccessRecordService.add(record);
+        Map<String, Object> map = new HashMap<>();
         map.put("success", success);
         map.put("msg", success ? "新增成功" : "新增失败");
         return map;
     }
 
     @PostMapping("/update")
-    public Map<String,Object> update(@RequestBody PersonAccessRecord record){
-        boolean success = service.update(record);
-        Map<String,Object> map = new HashMap<>();
+    public Map<String, Object> update(@RequestBody PersonAccessRecord record) {
+        boolean success = personAccessRecordService.update(record);
+        Map<String, Object> map = new HashMap<>();
         map.put("success", success);
         map.put("msg", success ? "修改成功" : "修改失败");
         return map;
     }
 
     @PostMapping("/delete")
-    public Map<String,Object> delete(@RequestBody Map<String,Object> params){
+    public Map<String, Object> delete(@RequestBody Map<String, Object> params) {
         Long id = ((Number)params.get("id")).longValue();
-        boolean success = service.deleteById(id);
-        Map<String,Object> map = new HashMap<>();
+        boolean success = personAccessRecordService.deleteById(id);
+        Map<String, Object> map = new HashMap<>();
         map.put("success", success);
         map.put("msg", success ? "删除成功" : "删除失败");
         return map;
     }
 
     @PostMapping("/batchDelete")
-    public Map<String,Object> batchDelete(@RequestBody Map<String,Object> params){
+    public Map<String, Object> batchDelete(@RequestBody Map<String, Object> params) {
         @SuppressWarnings("unchecked")
         List<Long> ids = (List<Long>) params.get("ids");
-        boolean success = service.deleteBatch(ids);
+        boolean success = personAccessRecordService.batchDelete(ids);
         Map<String,Object> map = new HashMap<>();
         map.put("success", success);
         map.put("msg", success ? "批量删除成功" : "批量删除失败");

+ 35 - 2
supervision-admin/src/main/java/com/supervision/web/peopleGateManage/entity/PersonAccessRecord.java

@@ -2,17 +2,50 @@ package com.supervision.web.peopleGateManage.entity;
 
 
 import lombok.Data;
-
 import java.util.Date;
 
+/**
+ * 人员通行记录实体类
+ * 用于记录海康威视人脸识别或门禁设备上传的通行事件。
+ * 对应前端“人员通行记录”表格展示。
+ */
 @Data
 public class PersonAccessRecord {
+
+    /** 主键ID,自增,用于唯一标识一条通行记录 */
     private Long id;
+
+    /** 设备ID,对应设备表的主键,用于区分记录来源设备(例如哪台摆闸或门禁机) */
+    private Long deviceId;
+
+    /** 人员ID,对应人员信息表主键,用于关联通行者身份 */
     private Long personId;
+
+    /** 人员姓名,例如“张三”,便于前端展示和检索 */
     private String name;
-    private Long deviceId;
+
+    /**
+     * 事件类型:
+     *  - "in":进门
+     *  - "out":出门
+     *  - "denied":通行拒绝(可选)
+     * 具体值取决于设备上报的事件编码。
+     */
     private String eventType;
+
+    /** 抓拍时间,表示人员通行被识别或上报的具体时间 */
     private Date captureTime;
+
+    /** 抓拍照片URL,存储人员通行时抓拍的图片路径(用于前端展示) */
     private String photoUrl;
+
+    /** 备注信息,例如“识别失败”、“人工放行”等说明 */
+    private String remark;
+
+    /** 记录创建时间(插入数据库时自动生成) */
     private Date createTime;
+
+    /** 记录最后更新时间(修改记录时自动更新) */
+    private Date updateTime;
 }
+

+ 8 - 13
supervision-admin/src/main/java/com/supervision/web/peopleGateManage/mapper/PersonAccessRecordMapper.java

@@ -4,28 +4,23 @@ package com.supervision.web.peopleGateManage.mapper;
 import com.supervision.web.peopleGateManage.entity.PersonAccessRecord;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
-
-import java.util.Date;
 import java.util.List;
 
 @Mapper
 public interface PersonAccessRecordMapper {
+
     List<PersonAccessRecord> getList(@Param("deviceId") Long deviceId,
                                      @Param("personId") Long personId,
                                      @Param("name") String name,
                                      @Param("eventType") String eventType,
-                                     @Param("startTime") Date startTime,
-                                     @Param("endTime") Date endTime,
-                                     @Param("offset") int offset,
-                                     @Param("pageSize") int pageSize);
-    int getTotal(@Param("deviceId") Long deviceId,
-                 @Param("personId") Long personId,
-                 @Param("name") String name,
-                 @Param("eventType") String eventType,
-                 @Param("startTime") Date startTime,
-                 @Param("endTime") Date endTime);
+                                     @Param("startTime") String startTime,
+                                     @Param("endTime") String endTime);
+
     int insert(PersonAccessRecord record);
+
     int update(PersonAccessRecord record);
+
     int deleteById(Long id);
-    int deleteBatch(@Param("ids") List<Long> ids);
+
+    int batchDelete(@Param("ids") List<Long> ids);
 }

+ 9 - 5
supervision-admin/src/main/java/com/supervision/web/peopleGateManage/service/PersonAccessRecordService.java

@@ -1,17 +1,21 @@
 package com.supervision.web.peopleGateManage.service;
 
 
+import com.github.pagehelper.PageInfo;
 import com.supervision.web.peopleGateManage.entity.PersonAccessRecord;
-
-import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 public interface PersonAccessRecordService {
-    List<PersonAccessRecord> getList(Long deviceId, Long personId, String name, String eventType, Date startTime, Date endTime, int page, int pageSize);
-    int getTotal(Long deviceId, Long personId, String name, String eventType, Date startTime, Date endTime);
+
+    PageInfo<PersonAccessRecord> getList(Map<String, Object> params);
+
     boolean add(PersonAccessRecord record);
+
     boolean update(PersonAccessRecord record);
+
     boolean deleteById(Long id);
-    boolean deleteBatch(List<Long> ids);
+
+    boolean batchDelete(List<Long> ids);
 }
 

+ 35 - 13
supervision-admin/src/main/java/com/supervision/web/peopleGateManage/service/impl/PersonAccessRecordServiceImpl.java

@@ -1,6 +1,9 @@
 package com.supervision.web.peopleGateManage.service.impl;
 
 
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.supervision.web.carGateManage.entity.VehicleAccessRecord;
 import com.supervision.web.peopleGateManage.entity.PersonAccessRecord;
 import com.supervision.web.peopleGateManage.mapper.PersonAccessRecordMapper;
 import com.supervision.web.peopleGateManage.service.PersonAccessRecordService;
@@ -8,42 +11,61 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class PersonAccessRecordServiceImpl implements PersonAccessRecordService {
 
     @Resource
-    private PersonAccessRecordMapper mapper;
+    private PersonAccessRecordMapper personAccessRecordMapper;
 
     @Override
-    public List<PersonAccessRecord> getList(Long deviceId, Long personId, String name, String eventType, Date startTime, Date endTime, int page, int pageSize) {
-        int offset = (page - 1) * pageSize;
-        return mapper.getList(deviceId, personId, name, eventType, startTime, endTime, offset, pageSize);
-    }
+    public PageInfo<PersonAccessRecord> getList(Map<String, Object> params) {
+        int page = (int) params.getOrDefault("page", 1);
+        int size = (int) params.getOrDefault("size", 10);
 
-    @Override
-    public int getTotal(Long deviceId, Long personId, String name, String eventType, Date startTime, Date endTime) {
-        return mapper.getTotal(deviceId, personId, name, eventType, startTime, endTime);
+        Object deviceIdObj = params.get("deviceId");
+        Long deviceId = null;
+        if (deviceIdObj != null) {
+            deviceId = ((Number) deviceIdObj).longValue();
+        }
+
+        Object personIdObj = params.get("personId");
+        Long personId = null;
+        if (personIdObj != null) {
+            personId = ((Number) personIdObj).longValue();
+        }
+
+        String name = (String) params.getOrDefault("name", null);
+        String eventType = (String) params.getOrDefault("eventType", null);
+        String startTime = (String) params.getOrDefault("startTime", null);
+        String endTime = (String) params.getOrDefault("endTime", null);
+
+        PageHelper.startPage(page, size);
+
+        List<PersonAccessRecord> list = personAccessRecordMapper.getList(deviceId, personId, name, eventType, startTime, endTime);
+
+        return new PageInfo<>(list);
     }
 
     @Override
     public boolean add(PersonAccessRecord record) {
-        return mapper.insert(record) > 0;
+        return personAccessRecordMapper.insert(record) > 0;
     }
 
     @Override
     public boolean update(PersonAccessRecord record) {
-        return mapper.update(record) > 0;
+        return personAccessRecordMapper.update(record) > 0;
     }
 
     @Override
     public boolean deleteById(Long id) {
-        return mapper.deleteById(id) > 0;
+        return personAccessRecordMapper.deleteById(id) > 0;
     }
 
     @Override
-    public boolean deleteBatch(List<Long> ids) {
-        return mapper.deleteBatch(ids) > 0;
+    public boolean batchDelete(List<Long> ids) {
+        return personAccessRecordMapper.batchDelete(ids) > 0;
     }
 }
 

+ 7 - 1
supervision-admin/src/main/resources/mapper/carGateManage/VehicleAccessRecordMapper.xml

@@ -4,6 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.supervision.web.carGateManage.mapper.VehicleAccessRecordMapper">
 
+    <!-- 结果映射 -->
     <resultMap id="BaseResultMap" type="com.supervision.web.carGateManage.entity.VehicleAccessRecord">
         <id property="id" column="id"/>
         <result property="plateNumber" column="plate_number"/>
@@ -16,6 +17,7 @@
         <result property="updateTime" column="update_time"/>
     </resultMap>
 
+    <!-- 查询列表 -->
     <select id="getList" resultMap="BaseResultMap">
         SELECT *
         FROM new_vehicle_access_record
@@ -38,6 +40,7 @@
         ORDER BY capture_time DESC
     </select>
 
+    <!-- 插入 -->
     <insert id="insert" parameterType="com.supervision.web.carGateManage.entity.VehicleAccessRecord">
         INSERT INTO new_vehicle_access_record
             (plate_number, device_id, event_type, capture_time, photo_url, remark)
@@ -45,6 +48,7 @@
             (#{plateNumber}, #{deviceId}, #{eventType}, #{captureTime}, #{photoUrl}, #{remark})
     </insert>
 
+    <!-- 更新 -->
     <update id="update" parameterType="com.supervision.web.carGateManage.entity.VehicleAccessRecord">
         UPDATE new_vehicle_access_record
         SET plate_number=#{plateNumber},
@@ -57,11 +61,13 @@
         WHERE id=#{id}
     </update>
 
+    <!-- 删除单条 -->
     <delete id="deleteById" parameterType="long">
         DELETE FROM new_vehicle_access_record WHERE id=#{id}
     </delete>
 
-    <delete id="deleteBatch">
+    <!-- 批量删除 -->
+    <delete id="batchDelete">
         DELETE FROM new_vehicle_access_record
         WHERE id IN
         <foreach collection="ids" item="id" open="(" separator="," close=")">

+ 20 - 21
supervision-admin/src/main/resources/mapper/peopleGateManage/PersonAccessRecordMapper.xml

@@ -22,32 +22,31 @@
     <select id="getList" resultMap="BaseResultMap">
         SELECT * FROM new_person_access_record
         WHERE 1=1
-        <if test="deviceId != null"> AND device_id = #{deviceId} </if>
-        <if test="personId != null"> AND person_id = #{personId} </if>
-        <if test="name != null and name != ''"> AND name LIKE CONCAT('%', #{name}, '%') </if>
-        <if test="eventType != null and eventType != ''"> AND event_type = #{eventType} </if>
-        <if test="startTime != null"> AND capture_time &gt;= #{startTime} </if>
-        <if test="endTime != null"> AND capture_time &lt;= #{endTime} </if>
+        <if test="deviceId != null and deviceId != ''">
+          AND device_id = #{deviceId}
+        </if>
+        <if test="personId != null and personId != ''">
+          AND person_id = #{personId}
+        </if>
+        <if test="name != null and name != ''">
+          AND name LIKE CONCAT('%', #{name}, '%')
+        </if>
+        <if test="eventType != null and eventType != ''">
+          AND event_type = #{eventType}
+        </if>
+        <if test="startTime != null">
+          AND capture_time &gt;= #{startTime}
+          </if>
+        <if test="endTime != null">
+          AND capture_time &lt;= #{endTime}
+        </if>
         ORDER BY capture_time DESC
-        LIMIT #{offset}, #{pageSize}
-    </select>
-
-    <!-- 查询总数 -->
-    <select id="getTotal" resultType="int">
-        SELECT COUNT(*) FROM new_person_access_record
-        WHERE 1=1
-        <if test="deviceId != null"> AND device_id = #{deviceId} </if>
-        <if test="personId != null"> AND person_id = #{personId} </if>
-        <if test="name != null and name != ''"> AND name LIKE CONCAT('%', #{name}, '%') </if>
-        <if test="eventType != null and eventType != ''"> AND event_type = #{eventType} </if>
-        <if test="startTime != null"> AND capture_time &gt;= #{startTime} </if>
-        <if test="endTime != null"> AND capture_time &lt;= #{endTime} </if>
     </select>
 
     <!-- 插入 -->
     <insert id="insert" parameterType="com.supervision.web.peopleGateManage.entity.PersonAccessRecord">
         INSERT INTO new_person_access_record
-        (person_id, name, device_id, event_type, capture_time, photo_url, remark)
+            (person_id, name, device_id, event_type, capture_time, photo_url, remark)
         VALUES
             (#{personId}, #{name}, #{deviceId}, #{eventType}, #{captureTime}, #{photoUrl}, #{remark})
     </insert>
@@ -72,7 +71,7 @@
     </delete>
 
     <!-- 批量删除 -->
-    <delete id="deleteBatch">
+    <delete id="batchDelete">
         DELETE FROM new_person_access_record
         WHERE id IN
         <foreach collection="ids" item="id" open="(" separator="," close=")">