ycl-generator/src/main/java/com/ycl/MysqlGenerator.java
@@ -59,7 +59,7 @@ GlobalConfig gc = new GlobalConfig(); final String projectPath = System.getProperty("user.dir"); gc.setOutputDir(projectPath + "/ycl-generator/src/main/java"); gc.setAuthor("wl");//作者 gc.setAuthor("zhanghua");//作者 gc.setBaseResultMap(true); //mapper.xml 生成 ResultMap gc.setBaseColumnList(true); //mapper.xml 生成 ColumnList // gc.setSwagger2(true); ycl-generator/src/main/resources/mapper/video/VideoPointMapper.xml
New file @@ -0,0 +1,25 @@ <?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.ycl.mapper.video.VideoPointMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ycl.entity.video.VideoPoint"> <id column="id" property="id" /> <result column="longitude" property="longitude" /> <result column="latitude" property="latitude" /> <result column="name" property="name" /> <result column="plat_resource_id" property="platResourceId" /> <result column="equipment_brand" property="equipmentBrand" /> <result column="equipment_model" property="equipmentModel" /> <result column="equipment_ip" property="equipmentIp" /> <result column="url_address" property="urlAddress" /> <result column="street_id" property="streetId" /> <result column="community_id" property="communityId" /> </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> id, longitude, latitude, name, plat_resource_id, equipment_brand, equipment_model, equipment_ip, url_address, street_id, community_id </sql> </mapper> ycl-platform/src/main/java/com/ycl/controller/dict/DatabaseDictionaryController.java
@@ -3,8 +3,8 @@ import com.ycl.api.CommonResult; import com.ycl.controller.BaseController; import com.ycl.entity.dict.DatabaseDictionary; import com.ycl.service.dict.IDatabaseDictionaryService; import com.ycl.entity.dict.DataDictionary; import com.ycl.service.dict.IDataDictionaryService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; @@ -28,18 +28,18 @@ @Api(tags = "字典模块") public class DatabaseDictionaryController extends BaseController { @Resource private IDatabaseDictionaryService iDatabaseDictionaryService; private IDataDictionaryService iDatabaseDictionaryService; @GetMapping("/listAll") @ApiOperation("获取所有字典") private CommonResult<List<DatabaseDictionary>> listAll() { private CommonResult<List<DataDictionary>> listAll() { return CommonResult.success(iDatabaseDictionaryService.getAll()); } @GetMapping("/queryByCode") @ApiOperation(("/根据code获取字段信息")) private CommonResult<DatabaseDictionary> queryByCode(@RequestParam(value = "code") String code){ DatabaseDictionary databaseDictionary = iDatabaseDictionaryService.queryByCode(code); return CommonResult.success(databaseDictionary); private CommonResult<DataDictionary> queryByCode(@RequestParam(value = "code") String code){ DataDictionary dataDictionary = iDatabaseDictionaryService.queryByCode(code); return CommonResult.success(dataDictionary); } } ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java
@@ -1,9 +1,9 @@ package com.ycl.controller.platformApi; import com.ycl.api.CommonResult; import com.ycl.dto.videoAlarm.AlarmParam; import com.ycl.dto.video.AlarmParam; import com.ycl.enums.common.ResultCode; import com.ycl.service.videoAlarm.IVideoAlarmReportService; import com.ycl.service.video.IVideoAlarmReportService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; ycl-platform/src/main/java/com/ycl/controller/video/VideoPointController.java
New file @@ -0,0 +1,21 @@ package com.ycl.controller.video; import com.ycl.controller.BaseController; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * <p> * 点位管理 前端控制器 * </p> * * @author zhanghua * @since 2022-09-26 */ @RestController @RequestMapping("/video-point") public class VideoPointController extends BaseController { } ycl-platform/src/main/java/com/ycl/dto/video/AlarmDataParam.java
File was renamed from ycl-platform/src/main/java/com/ycl/dto/videoAlarm/AlarmDataParam.java @@ -1,4 +1,4 @@ package com.ycl.dto.videoAlarm; package com.ycl.dto.video; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; ycl-platform/src/main/java/com/ycl/dto/video/AlarmParam.java
File was renamed from ycl-platform/src/main/java/com/ycl/dto/videoAlarm/AlarmParam.java @@ -1,4 +1,4 @@ package com.ycl.dto.videoAlarm; package com.ycl.dto.video; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; ycl-platform/src/main/java/com/ycl/dto/video/CameraInfParam.java
File was renamed from ycl-platform/src/main/java/com/ycl/dto/videoAlarm/CameraInfParam.java @@ -1,7 +1,6 @@ package com.ycl.dto.videoAlarm; package com.ycl.dto.video; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.models.auth.In; import lombok.Data; /** ycl-platform/src/main/java/com/ycl/entity/caseHandler/BaseCase.java
@@ -7,6 +7,8 @@ import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableField; import java.io.Serializable; import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; @@ -21,6 +23,7 @@ @Data @EqualsAndHashCode(callSuper = false) @TableName("ums_base_case") @Builder public class BaseCase implements Serializable { private static final long serialVersionUID = 1L; ycl-platform/src/main/java/com/ycl/entity/caseHandler/Violations.java
@@ -95,5 +95,10 @@ @TableField("informant_id_card") private String informantIdCard; /** * 视频报警id */ @TableField("video_alarm_report_id") private Integer videoAlarmReportId; } ycl-platform/src/main/java/com/ycl/entity/video/VideoAlarmReport.java
File was renamed from ycl-platform/src/main/java/com/ycl/entity/videoAlarm/VideoAlarmReport.java @@ -1,4 +1,4 @@ package com.ycl.entity.videoAlarm; package com.ycl.entity.video; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java
New file @@ -0,0 +1,95 @@ package com.ycl.entity.video; import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.Version; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import java.io.Serializable; import lombok.Data; import lombok.EqualsAndHashCode; /** * <p> * 点位管理 * </p> * * @author zhanghua * @since 2022-09-26 */ @Data @EqualsAndHashCode(callSuper = false) @TableName("ums_video_point") public class VideoPoint implements Serializable { private static final long serialVersionUID = 1L; /** * 主键 */ @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * 点位经度 */ @TableField("longitude") private BigDecimal longitude; /** * 点位纬度 */ @TableField("latitude") private BigDecimal latitude; /** * 点位名称 */ @TableField("name") private String name; /** * 设备编码唯一 */ @TableField("plat_resource_id") private String platResourceId; /** * 设备品牌 */ @TableField("equipment_brand") private String equipmentBrand; /** * 设备型号 */ @TableField("equipment_model") private String equipmentModel; /** * 设备IP地址 */ @TableField("equipment_ip") private String equipmentIp; /** * URL地址 */ @TableField("url_address") private String urlAddress; /** * 街道id */ @TableField("street_id") private Integer streetId; /** * 社区id */ @TableField("community_id") private Integer communityId; } ycl-platform/src/main/java/com/ycl/mapper/video/VideoAlarmReportMapper.java
New file @@ -0,0 +1,14 @@ package com.ycl.mapper.video; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.entity.video.VideoAlarmReport; /** * VideoAlarmReportMapper * * @author: AI * @date: 2022-09-26 17:20 * @version V1.0 **/ public interface VideoAlarmReportMapper extends BaseMapper<VideoAlarmReport> { } ycl-platform/src/main/java/com/ycl/mapper/video/VideoPointMapper.java
New file @@ -0,0 +1,16 @@ package com.ycl.mapper.video; import com.ycl.entity.video.VideoPoint; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * 点位管理 Mapper 接口 * </p> * * @author zhanghua * @since 2022-09-26 */ public interface VideoPointMapper extends BaseMapper<VideoPoint> { } ycl-platform/src/main/java/com/ycl/mapper/videoAlarm/VideoAlarmReportMapper.java
File was deleted ycl-platform/src/main/java/com/ycl/service/caseHandler/IViolationsService.java
@@ -2,6 +2,9 @@ import com.ycl.entity.caseHandler.Violations; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.entity.video.VideoAlarmReport; import java.util.List; /** * <p> @@ -13,4 +16,13 @@ */ public interface IViolationsService extends IService<Violations> { /** * 保存来自视频的报警数据 * * @param videoAlarmReports * @return void * @author AI * @date 2022-09-26 17:25 */ void saveFromVideo(List<VideoAlarmReport> videoAlarmReports); } ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java
@@ -1,10 +1,14 @@ package com.ycl.service.caseHandler.impl; import com.ycl.entity.caseHandler.BaseCase; import com.ycl.entity.caseHandler.Violations; import com.ycl.entity.video.VideoAlarmReport; import com.ycl.mapper.caseHandler.ViolationsMapper; import com.ycl.service.caseHandler.IViolationsService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.List; /** * <p> @@ -17,4 +21,11 @@ @Service public class ViolationsServiceImpl extends ServiceImpl<ViolationsMapper, Violations> implements IViolationsService { @Override public void saveFromVideo(List<VideoAlarmReport> videoAlarmReports) { for (VideoAlarmReport videoAlarmReport : videoAlarmReports) { BaseCase baseCase = BaseCase.builder().build(); } } } ycl-platform/src/main/java/com/ycl/service/video/IVideoAlarmReportService.java
File was renamed from ycl-platform/src/main/java/com/ycl/service/videoAlarm/IVideoAlarmReportService.java @@ -1,10 +1,8 @@ package com.ycl.service.videoAlarm; package com.ycl.service.video; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.dto.videoAlarm.AlarmParam; import com.ycl.entity.videoAlarm.VideoAlarmReport; import java.util.List; import com.ycl.dto.video.AlarmParam; import com.ycl.entity.video.VideoAlarmReport; /** * 视频报警推送记录表(UmsVideoAlarmReport)表服务接口 @@ -22,4 +20,5 @@ * @date 2022-09-20 17:36 */ void save(AlarmParam alarmParam); } ycl-platform/src/main/java/com/ycl/service/video/impl/IVideoPointService.java
New file @@ -0,0 +1,17 @@ package com.ycl.service.video.impl; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.entity.video.VideoPoint; /** * <p> * 点位管理 服务类 * </p> * * @author zhanghua * @since 2022-09-26 */ interface IVideoPointService extends IService<VideoPoint> { } ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java
File was renamed from ycl-platform/src/main/java/com/ycl/service/videoAlarm/impl/VideoAlarmReportServiceImpl.java @@ -1,32 +1,28 @@ package com.ycl.service.videoAlarm.impl; package com.ycl.service.video.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.dto.media.Media; import com.ycl.dto.media.PictureZoomParameter; import com.ycl.dto.videoAlarm.AlarmDataParam; import com.ycl.dto.videoAlarm.AlarmParam; import com.ycl.dto.videoAlarm.CameraInfParam; import com.ycl.entity.videoAlarm.VideoAlarmReport; import com.ycl.mapper.videoAlarm.VideoAlarmReportMapper; import com.ycl.service.videoAlarm.IVideoAlarmReportService; import com.ycl.dto.video.AlarmDataParam; import com.ycl.dto.video.AlarmParam; import com.ycl.dto.video.CameraInfParam; import com.ycl.entity.video.VideoAlarmReport; import com.ycl.mapper.video.VideoAlarmReportMapper; import com.ycl.service.caseHandler.IViolationsService; import com.ycl.service.video.IVideoAlarmReportService; import com.ycl.utils.MediaFileUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.xml.bind.DatatypeConverter; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * VideoAlarmReportServiceImpl @@ -39,10 +35,16 @@ public class VideoAlarmReportServiceImpl extends ServiceImpl<VideoAlarmReportMapper, VideoAlarmReport> implements IVideoAlarmReportService { private MediaFileUtil mediaFileUtil; private IViolationsService violationsService; @Autowired public void setMediaFileUtil(MediaFileUtil mediaFileUtil) { this.mediaFileUtil = mediaFileUtil; } @Autowired public void setViolationsService(IViolationsService violationsService) { this.violationsService = violationsService; } @Override @@ -58,7 +60,7 @@ InputStream inputStream = new ByteArrayInputStream(data); try { picData = mediaFileUtil.savePicture(inputStream, extension); List<VideoAlarmReport> videoAlarmReports = new ArrayList<>(); for (int i = 0; i < alarmParam.getAlarmData().size(); i++) { AlarmDataParam alarmData = alarmParam.getAlarmData().get(i); /******************** 处理图片 **********************/ @@ -75,11 +77,15 @@ .alarmId(alarmData.getAlarmID()).algoType(alarmData.getAlgoType()) .algoName(alarmData.getAlgoName()).alarmObj(JSON.toJSONString(alarmData.getAlarmObject())) .build(); baseMapper.insert(videoAlarmReport); videoAlarmReports.add(videoAlarmReport); } catch (ParseException e) { e.printStackTrace(); } } this.saveBatch(videoAlarmReports, videoAlarmReports.size()); violationsService.saveFromVideo(videoAlarmReports); } catch (Exception e) { e.printStackTrace(); } ycl-platform/src/main/java/com/ycl/service/video/impl/VideoPointServiceImpl.java
New file @@ -0,0 +1,19 @@ package com.ycl.service.video.impl; import com.ycl.entity.video.VideoPoint; import com.ycl.mapper.video.VideoPointMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * 点位管理 服务实现类 * </p> * * @author zhanghua * @since 2022-09-26 */ @Service public class VideoPointServiceImpl extends ServiceImpl<VideoPointMapper, VideoPoint> implements IVideoPointService { } ycl-platform/src/main/resources/mapper/video/VideoAlarmReportMapper.xml
File was renamed from ycl-platform/src/main/resources/mapper/videoAlarm/VideoAlarmReportMapper.xml @@ -1,8 +1,8 @@ <?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.ycl.mapper.videoAlarm.VideoAlarmReportMapper"> <mapper namespace="com.ycl.mapper.video.VideoAlarmReportMapper"> <resultMap type="com.ycl.entity.videoAlarm.VideoAlarmReport" id="VideoAlarmReportMap"> <resultMap type="com.ycl.entity.video.VideoAlarmReport" id="VideoAlarmReportMap"> <result property="id" column="id"/> <result property="ip" column="ip"/> <result property="port" column="port"/>