Pu Zhibing
2025-03-04 4a627c5b353c20322149deaed036efc62ca06754
修改演示版本的逻辑
4个文件已修改
5个文件已添加
187 ■■■■■ 已修改文件
guns-admin/src/main/java/com/stylefeng/guns/modular/api/PatrolTaskController.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/VehicleMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/VehicleMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Vehicles.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IVehicleService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PatrolTaskServiceImpl.java 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/VehicleServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/resources/application.yml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/resources/logback-spring.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/api/PatrolTaskController.java
@@ -7,11 +7,13 @@
import com.stylefeng.guns.core.page.PageInfoBT;
import com.stylefeng.guns.core.util.JwtTokenUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.model.Vehicles;
import com.stylefeng.guns.modular.system.model.enums.ImageModelEnum;
import com.stylefeng.guns.modular.system.model.enums.VideoChannelEnum;
import com.stylefeng.guns.modular.system.model.vo.*;
import com.stylefeng.guns.modular.system.service.IPatrolTaskService;
import com.stylefeng.guns.modular.system.service.ITaskDetailService;
import com.stylefeng.guns.modular.system.service.IVehicleService;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.util.videoGateway.VideoGateway;
import com.stylefeng.guns.modular.system.util.videoGateway.model.Ship;
@@ -42,6 +44,9 @@
    
    @Resource
    private ITaskDetailService taskDetailService;
    @Resource
    private IVehicleService vehicleService;
    
    
    
@@ -119,17 +124,14 @@
    @GetMapping("/api/patrolTask/getVehicleList")
    @ApiOperation(value = "获取车辆列表", tags = {"任务管理"})
    public ResultUtil<List<Vehicle>> getVehicleList(Integer year){
        List<Vehicle> vehicleList = VideoGateway.getVehicleList(null, null, null, 0);
        List<Vehicles> vehicles = vehicleService.selectList(null);
        List<Vehicle> list = new ArrayList<>();
        if(null != year){
            for (Vehicle vehicle : vehicleList) {
                String vehicleGpsProtocol = vehicle.getVehicleGpsProtocol();
                if(2023 == year && null != vehicleGpsProtocol && vehicleGpsProtocol.equals("2")){
                    list.add(vehicle);
                }
            }
        }else{
            list = vehicleList;
        for (Vehicles vehicle : vehicles) {
            Vehicle vehicle1 = new Vehicle();
            vehicle1.setId(vehicle.getId());
            vehicle1.setVehicleNum(vehicle.getVehicleCode());
            vehicle1.setCompanyName(vehicle.getCompanyName());
            list.add(vehicle1);
        }
        return ResultUtil.success(list);
    }
guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/VehicleMapper.java
New file
@@ -0,0 +1,12 @@
package com.stylefeng.guns.modular.system.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.stylefeng.guns.modular.system.model.Vehicles;
/**
 * @author zhibing.pu
 * @Date 2025/3/4 15:40
 */
public interface VehicleMapper extends BaseMapper<Vehicles> {
}
guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/VehicleMapper.xml
New file
@@ -0,0 +1,6 @@
<?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.stylefeng.guns.modular.system.dao.VehicleMapper">
</mapper>
guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Vehicles.java
New file
@@ -0,0 +1,31 @@
package com.stylefeng.guns.modular.system.model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2025/3/4 15:23
 */
@Data
@TableName("t_vehicle")
public class Vehicles {
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 车牌号
     */
    @TableField("vehicleCode")
    private String vehicleCode;
    /**
     * 公司名
     */
    @TableField("companyName")
    private String companyName;
}
guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IVehicleService.java
New file
@@ -0,0 +1,11 @@
package com.stylefeng.guns.modular.system.service;
import com.baomidou.mybatisplus.service.IService;
import com.stylefeng.guns.modular.system.model.Vehicles;
/**
 * @author zhibing.pu
 * @Date 2025/3/4 15:41
 */
public interface IVehicleService extends IService<Vehicles> {
}
guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PatrolTaskServiceImpl.java
@@ -1,5 +1,8 @@
package com.stylefeng.guns.modular.system.service.impl;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.core.util.ToolUtil;
@@ -190,12 +193,6 @@
        taskDetailService.updateById(taskDetail);
        PatrolTask patrolTask = this.selectById(taskDetail.getPatrolTaskId());
        if(!patrolTask.getImageModel().equals(ImageModelEnum.CONSTRUCTION_WASTE_LOAD.getCode())){
            //获取所有在线车船
            //2018年协议车辆在线
            List<VehicleOnline> vehicleOnlines2018 = VideoGateway.queryRuntimeInfoByCache(0);
            //2023年协议车辆在线
            List<VehicleOnline> vehicleOnlines203 = VideoGateway.locationRealTimeInfoCache(0);
            //获取当前任务中的车船信息
            List<TaskDetailVehicles> taskDetailVehicles = taskDetailVehiclesService.selectList(new EntityWrapper<TaskDetailVehicles>().eq("task_detail_id", id));
            //根据车辆数量,分组线程数
@@ -233,56 +230,26 @@
                            try {
                                taskDetailVehicle.setStartExecutionTime(LocalDateTime.now());
                                Integer taskDetailVehicleId = taskDetailVehicle.getId();
                                //车船类型:1 车辆设备 2 船舶设备
                                Integer vehicleType = taskDetailVehicle.getVehicleType();
                                //车船id
                                Integer vehicleId = taskDetailVehicle.getVehicleId();
                                VehicleOnline vehicleOnline1 = null;
                                for (VehicleOnline vehicleOnline : vehicleOnlines2018) {
                                    if(null != vehicleOnline.getVehicleId() && vehicleOnline.getVehicleId().equals(vehicleId) &&
                                            null != vehicleOnline.getVehicleType() && vehicleOnline.getVehicleType().equals(vehicleType)){
                                        vehicleOnline1 = vehicleOnline;
                                        String vehicleGpsProtocol = vehicleOnline.getVehicleGpsProtocol();
                                        vehicleOnline1.setVehicleGpsProtocol("808-guangzhou".equals(vehicleGpsProtocol) ? "1" : "2");
                                        break;
                                    }
                                }
                                if(null == vehicleOnline1){
                                    for (VehicleOnline vehicleOnline : vehicleOnlines203) {
                                        if(null != vehicleOnline.getVehicleId() && vehicleOnline.getVehicleId().equals(vehicleId) &&
                                                null != vehicleOnline.getVehicleType() && vehicleOnline.getVehicleType().equals(vehicleType)){
                                            vehicleOnline1 = vehicleOnline;
                                            vehicleOnline1.setVehicleGpsProtocol(vehicleOnline.getVehicleGpsProtocol());
                                            break;
                                        }
                                    }
                                }
                                //不在线
                                if(null == vehicleOnline1){
                                    taskDetailVehicle.setEndExecutionTime(LocalDateTime.now());
                                    taskDetailVehicle.setStatus(4);
                                    taskDetailVehiclesService.updateById(taskDetailVehicle);
                                    continue;
                                }
                                taskDetailVehicle.setVehicleGpsProtocol(vehicleOnline1.getVehicleGpsProtocol());
                                taskDetailVehicle.setTerminalId(vehicleOnline1.getTerminalId());
                                taskDetailVehicle.setStatus(2);
                                taskDetailVehiclesService.updateById(taskDetailVehicle);
                                
                                //成功
                                List<TaskDetailVehiclesChannel> taskDetailVehiclesChannels = taskDetailVehiclesChannelService.selectList(new EntityWrapper<TaskDetailVehiclesChannel>().eq("task_detail_vehicles_id", taskDetailVehicleId));
                                //开始发送拍照指令,获取照片地址
                                String vehicleGpsProtocol = vehicleOnline1.getVehicleGpsProtocol();
                                String terminalId = vehicleOnline1.getTerminalId();
                                for (TaskDetailVehiclesChannel taskDetailVehiclesChannel : taskDetailVehiclesChannels) {
                                    Integer videoChannel = taskDetailVehiclesChannel.getVideoChannel();
                                    try {
                                        if("1".equals(vehicleGpsProtocol)){
                                            //2018 协议
                                            String fileId = VideoGateway.cameraShot2018(terminalId, videoChannel, 0);
                                            if(ToolUtil.isNotEmpty(fileId)){
                                                String fileUrl = VideoGateway.getCameraShotByFileId2018(terminalId, fileId, 0);
                                                if(ToolUtil.isNotEmpty(fileUrl)){
                                        Integer videoChannel = taskDetailVehiclesChannel.getVideoChannel();
                                        String imageModel = patrolTask.getImageModel();
                                        String fileUrl = null;
                                        if(imageModel.equals(ImageModelEnum.TOP_SEAL.getCode())){
                                            fileUrl = "http://120.232.235.142/image/model1/" + taskDetailVehicle.getVehicleNum() + "_" + videoChannel + ".png";
                                        }
                                        if(imageModel.equals(ImageModelEnum.CAMERA_FAULT.getCode())){
                                            fileUrl = "http://120.232.235.142/image/model2/" + taskDetailVehicle.getVehicleNum() + "_" + videoChannel + ".png";
                                        }
                                        HttpRequest get = HttpUtil.createGet(fileUrl);
                                        HttpResponse execute = get.execute();
                                        if(200 == execute.getStatus()){
                                                    taskDetailVehiclesChannel.setImageUrl(fileUrl);
                                                    taskDetailVehiclesChannel.setSysCreateTime(LocalDateTime.now());
                                                    taskDetailVehiclesChannel.setArtificialStatus(1);
@@ -293,26 +260,6 @@
                                                    taskDetailVehiclesChannel.setSysStatus(b ? 2 : 3);
                                                    taskDetailVehiclesChannel.setResult(r);
                                                    taskDetailVehiclesChannelService.updateById(taskDetailVehiclesChannel);
                                                }
                                            }
                                        }else{
                                            //2023 协议
                                            String fileId = VideoGateway.cameraShot2023(vehicleId, vehicleType, terminalId, videoChannel, 0);
                                            if(ToolUtil.isNotEmpty(fileId)){
                                                String fileUrl = VideoGateway.getCameraShotByFileId2023(fileId, 0);
                                                if(ToolUtil.isNotEmpty(fileUrl)){
                                                    taskDetailVehiclesChannel.setImageUrl(fileUrl);
                                                    taskDetailVehiclesChannel.setSysCreateTime(LocalDateTime.now());
                                                    taskDetailVehiclesChannel.setArtificialStatus(1);
                                                    //开始调模型接口得出结果
                                                    Map<String, Object> map = ImageModelUtil.modelCheck(fileUrl, ImageModelEnum.getImageModelEnum(patrolTask.getImageModel()));
                                                    Boolean b = (Boolean) map.get("b");
                                                    String r = map.get("r").toString();
                                                    taskDetailVehiclesChannel.setSysStatus(b ? 2 : 3);
                                                    taskDetailVehiclesChannel.setResult(r);
                                                    taskDetailVehiclesChannelService.updateById(taskDetailVehiclesChannel);
                                                }
                                            }
                                        }
                                    }catch (Exception e){
                                        taskDetailVehiclesChannel.setResult(e.getMessage());
guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/VehicleServiceImpl.java
New file
@@ -0,0 +1,15 @@
package com.stylefeng.guns.modular.system.service.impl;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.modular.system.dao.VehicleMapper;
import com.stylefeng.guns.modular.system.model.Vehicles;
import com.stylefeng.guns.modular.system.service.IVehicleService;
import org.springframework.stereotype.Service;
/**
 * @author zhibing.pu
 * @Date 2025/3/4 15:42
 */
@Service
public class VehicleServiceImpl extends ServiceImpl<VehicleMapper, Vehicles> implements IVehicleService {
}
guns-admin/src/main/resources/application.yml
@@ -45,11 +45,12 @@
---
# 岐济生数据库
spring:
  datasource:
    url: jdbc:mysql://1.95.72.12:3306/vehicle_inspection_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
    url: jdbc:mysql://47.109.70.48:3306/vehicle_inspection_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: tObIBDzw3Q3lw9bp
    password: Si8bnm5KPGSZkF3F
    db-name: vehicle_inspection #用来搜集数据库的所有表
    filters: wall,mergeStat
guns-admin/src/main/resources/logback-spring.xml
@@ -7,7 +7,7 @@
    <contextName>logback</contextName>
    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
    <property name="log.path" value="/home/file/log"/>
    <property name="log.path" value="/home/yijing010/server/app/log"/>
    <!--0. 日志格式和颜色渲染 -->
    <!-- 彩色日志依赖的渲染类 -->