pom.xml
@@ -59,11 +59,23 @@ <artifactId>examples</artifactId> <version>1.0.0</version> </dependency> <!--mybatis依赖--> <!--MP代码生成器依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.3.1</version> </dependency> <!--velocity模板引擎--> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.0</version> </dependency> <!--mybatis-plus依赖--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency> <!--Oracle jdbc--> <!--这里注意,某些ojdbc的版本不支持jdk1.8,遇到过,网上说这个ojdbc8支持,所以这里使用它--> src/main/java/com/ard/alarm/apponekey/mapper/ArdAlarmApponekeyMapper.java
File was deleted src/main/java/com/ard/alarm/apponekey/service/IArdAlarmApponekeyService.java
@@ -1,6 +1,5 @@ package com.ard.alarm.apponekey.service; import java.util.List; import com.ard.alarm.apponekey.domain.ArdAlarmApponekey; /** @@ -9,53 +8,15 @@ * @author ard * @date 2023-07-21 */ public interface IArdAlarmApponekeyService { /** * 查询app一键报警 * * @param id app一键报警主键 * @return app一键报警 */ public ArdAlarmApponekey selectArdAlarmApponekeyById(String id); /** * 查询app一键报警列表 * * @param ardAlarmApponekey app一键报警 * @return app一键报警集合 */ public List<ArdAlarmApponekey> selectArdAlarmApponekeyList(ArdAlarmApponekey ardAlarmApponekey); public interface IArdAlarmApponekeyService { /** * 新增app一键报警 * * * @param ardAlarmApponekey app一键报警 * @return 结果 */ public int insertArdAlarmApponekey(ArdAlarmApponekey ardAlarmApponekey); /** * 修改app一键报警 * * @param ardAlarmApponekey app一键报警 * @return 结果 */ public int updateArdAlarmApponekey(ArdAlarmApponekey ardAlarmApponekey); /** * 批量删除app一键报警 * * @param ids 需要删除的app一键报警主键集合 * @return 结果 */ public int deleteArdAlarmApponekeyByIds(String[] ids); /** * 删除app一键报警信息 * * @param id app一键报警主键 * @return 结果 */ public int deleteArdAlarmApponekeyById(String id); } src/main/java/com/ard/alarm/apponekey/service/impl/ArdAlarmApponekeyServiceImpl.java
@@ -8,13 +8,9 @@ import com.ard.utils.uuid.IdUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import com.ard.alarm.apponekey.mapper.ArdAlarmApponekeyMapper; import com.ard.alarm.apponekey.domain.ArdAlarmApponekey; import com.ard.alarm.apponekey.service.IArdAlarmApponekeyService; import javax.annotation.Resource; import static jdk.nashorn.internal.runtime.regexp.joni.Config.log; /** * app一键报警Service业务层处理 @@ -25,30 +21,6 @@ @Service @Slf4j(topic = "apponekey") public class ArdAlarmApponekeyServiceImpl implements IArdAlarmApponekeyService { @Resource private ArdAlarmApponekeyMapper ardAlarmApponekeyMapper; /** * 查询app一键报警 * * @param id app一键报警主键 * @return app一键报警 */ @Override public ArdAlarmApponekey selectArdAlarmApponekeyById(String id) { return ardAlarmApponekeyMapper.selectArdAlarmApponekeyById(id); } /** * 查询app一键报警列表 * * @param ardAlarmApponekey app一键报警 * @return app一键报警 */ @Override public List<ArdAlarmApponekey> selectArdAlarmApponekeyList(ArdAlarmApponekey ardAlarmApponekey) { return ardAlarmApponekeyMapper.selectArdAlarmApponekeyList(ardAlarmApponekey); } /** * 新增app一键报警 @@ -76,36 +48,4 @@ + "【高层】" + ardAlarmApponekey.getAltitude() + "【创建时间】" + ardAlarmApponekey.getCreateTime()); } /** * 修改app一键报警 * * @param ardAlarmApponekey app一键报警 * @return 结果 */ @Override public int updateArdAlarmApponekey(ArdAlarmApponekey ardAlarmApponekey) { return ardAlarmApponekeyMapper.updateArdAlarmApponekey(ardAlarmApponekey); } /** * 批量删除app一键报警 * * @param ids 需要删除的app一键报警主键 * @return 结果 */ @Override public int deleteArdAlarmApponekeyByIds(String[] ids) { return ardAlarmApponekeyMapper.deleteArdAlarmApponekeyByIds(ids); } /** * 删除app一键报警信息 * * @param id app一键报警主键 * @return 结果 */ @Override public int deleteArdAlarmApponekeyById(String id) { return ardAlarmApponekeyMapper.deleteArdAlarmApponekeyById(id); } } src/main/java/com/ard/alarm/camera/domain/ArdCameras.java
@@ -1,6 +1,7 @@ package com.ard.alarm.camera.domain; import com.baomidou.mybatisplus.annotation.TableField; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -63,8 +64,8 @@ /** * 光电类型 */ private String gdtype; @TableField("gdtype") private String gdType; /** * 通道号 src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java
@@ -2,6 +2,7 @@ import java.util.List; import com.ard.alarm.camera.domain.ArdCameras; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; /** @@ -11,22 +12,8 @@ * @date 2023-02-11 */ @Mapper public interface ArdCamerasMapper public interface ArdCamerasMapper extends BaseMapper<ArdCameras> { /** * 查询相机设备 * * @param id 相机设备主键 * @return 相机设备 */ public ArdCameras selectArdCamerasById(String id); /** * 查询相机设备列表 * * @param ardCameras 相机设备 * @return 相机设备集合 */ public List<ArdCameras> selectArdCamerasList(ArdCameras ardCameras); } src/main/java/com/ard/alarm/camera/service/IArdCamerasService.java
@@ -14,16 +14,8 @@ public interface IArdCamerasService { /** * 查询相机设备 * * @param id 相机设备主键 * @return 相机设备 */ public ArdCameras selectArdCamerasById(String id); /** * 查询相机设备列表 * * * @param ardCameras 相机设备 * @return 相机设备集合 */ src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java
@@ -12,6 +12,8 @@ import com.ard.alarm.external.domain.ArdEquipExternal; import com.ard.alarm.external.mapper.ArdEquipExternalMapper; import com.ard.utils.hiksdk.service.impl.HikClientUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; @@ -34,34 +36,31 @@ private final static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); public static List<ArdCameras> ardCameraList = new ArrayList<>(); @Resource private ArdCamerasMapper ardCamerasMapper; //初始化执行 @Override public void run(ApplicationArguments args) { //加载sdk库 HikClientUtil.loadHCNetSDKLib(); //获取小光电尝试登录 ArdCameras ardCamera=new ArdCameras(); ardCamera.setGdtype("0"); ardCameraList = ardCamerasMapper.selectArdCamerasList(ardCamera); ardCameraList = selectArdCamerasList(new ArdCameras()); HikClientUtil.loginAllCamera(ardCameraList); syncTask(); syncCameraListTask(); } /** * 同步任务 * 同步相机列表任务 * 实时获取在线的小光电 * 刘苏义 * 2023/8/11 9:09:27 */ private void syncTask() { private void syncCameraListTask() { scheduler.scheduleAtFixedRate(() -> { try { //region 定时同步小光电 ArdCameras ardCamera=new ArdCameras(); ardCamera.setGdtype("0"); List<ArdCameras> newArdCameraList = ardCamerasMapper.selectArdCamerasList(ardCamera); List<ArdCameras> newArdCameraList = selectArdCamerasList(new ArdCameras()); //需要更新的数据 List<ArdCameras> updateList = sameListWithDifferent(ardCameraList, newArdCameraList); if (updateList.size() > 0) { @@ -94,25 +93,16 @@ } /** * 查询相机设备 * * @param id 相机设备主键 * @return 相机设备 */ @Override public ArdCameras selectArdCamerasById(String id) { return ardCamerasMapper.selectArdCamerasById(id); } /** * 查询相机设备列表 * * @param ardCameras 相机设备 * @param ardCamera 相机设备 * @return 相机设备 */ @Override public List<ArdCameras> selectArdCamerasList(ArdCameras ardCameras) { return ardCamerasMapper.selectArdCamerasList(ardCameras); public List<ArdCameras> selectArdCamerasList(ArdCameras ardCamera) { ardCamera.setGdType("0"); Wrapper<ArdCameras> queryWrapper=new QueryWrapper<>(ardCamera); return ardCamerasMapper.selectList(queryWrapper); } src/main/java/com/ard/alarm/digitization/controller/DatabridgeController.java
File was deleted src/main/java/com/ard/alarm/digitization/mapper/DataBridgeMapper.java
File was deleted src/main/java/com/ard/alarm/digitization/service/DataBridgeService.java
@@ -6,5 +6,4 @@ public interface DataBridgeService { List<DataBridge> selectDatabridgeList(DataBridge row); } src/main/java/com/ard/alarm/digitization/service/impl/DataBridgeServiceImpl.java
@@ -1,7 +1,6 @@ package com.ard.alarm.digitization.service.impl; import com.alibaba.fastjson2.JSON; import com.ard.alarm.digitization.mapper.DataBridgeMapper; import com.ard.alarm.digitization.model.DataBridge; import com.ard.alarm.digitization.service.DataBridgeService; import com.ard.utils.jdbc.Query; @@ -10,7 +9,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; @@ -25,9 +24,6 @@ @Slf4j(topic = "digitization3") public class DataBridgeServiceImpl implements DataBridgeService { @Resource DataBridgeMapper databridgeMapper; public static Date lastTime; @Value("${spring.digitization3.enabled}") private Boolean enabled; @@ -62,21 +58,6 @@ } catch (Exception ex) { log.error("3厂数字化报警数据处理异常:" + ex.getMessage()); } } @Override public List<DataBridge> selectDatabridgeList(DataBridge row) { List<DataBridge> dataBridgeList; if (lastTime == null) { lastTime = new Date(); row.setRowNum(10); dataBridgeList = databridgeMapper.selectDatabridgeList(row); lastTime = dataBridgeList.get(0).getDateTime(); } else { row.setDateTime(lastTime); dataBridgeList = databridgeMapper.selectDatabridgeList(row); } return dataBridgeList; } } src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java
@@ -2,6 +2,7 @@ import java.util.List; import com.ard.alarm.external.domain.ArdEquipExternal; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -12,30 +13,30 @@ * @date 2023-03-13 */ @Mapper public interface ArdEquipExternalMapper public interface ArdEquipExternalMapper extends BaseMapper<ArdEquipExternal> { /** * 查询external * * @param id external主键 * @return external */ public ArdEquipExternal selectArdEquipExternalById(String id); /** * 查询external * * @param ardEquipExternal external * @return external集合 */ public ArdEquipExternal selectArdEquipExternal(ArdEquipExternal ardEquipExternal); /** * 查询external列表 * * @param ardEquipExternal external * @return external集合 */ public List<ArdEquipExternal> selectArdEquipExternalList(ArdEquipExternal ardEquipExternal); ///** // * 查询external // * // * @param id external主键 // * @return external // */ //public ArdEquipExternal selectArdEquipExternalById(String id); // // ///** // * 查询external // * // * @param ardEquipExternal external // * @return external集合 // */ //public ArdEquipExternal selectArdEquipExternal(ArdEquipExternal ardEquipExternal); ///** // * 查询external列表 // * // * @param ardEquipExternal external // * @return external集合 // */ //public List<ArdEquipExternal> selectArdEquipExternalList(ArdEquipExternal ardEquipExternal); } src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java
@@ -11,6 +11,7 @@ import com.ard.alarm.external.mapper.ArdEquipExternalMapper; import com.ard.alarm.external.service.IArdEquipExternalService; import com.ard.utils.hiksdk.service.impl.HikClientUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; @@ -44,14 +45,14 @@ ArdEquipExternal alarmHost = new ArdEquipExternal(); alarmHost.setFactory("1"); alarmHost.setType("1"); ardAlarmHostList = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost); ardAlarmHostList = selectArdEquipExternalList(alarmHost); HikClientUtil.loginAllAlarmHost(ardAlarmHostList); log.debug("报警主机尝试登录"); //获取全部门禁主机尝试登录 ArdEquipExternal accessControlHost = new ArdEquipExternal(); accessControlHost.setFactory("1"); accessControlHost.setType("6"); ardAccessHostList = ardEquipExternalMapper.selectArdEquipExternalList(accessControlHost); ardAccessHostList = selectArdEquipExternalList(accessControlHost); HikClientUtil.loginAllAccessControlHost(ardAccessHostList); log.debug("门禁主机尝试登录"); //同步任务 @@ -70,7 +71,7 @@ ArdEquipExternal alarmHost = new ArdEquipExternal(); alarmHost.setFactory("1"); alarmHost.setType("1"); List<ArdEquipExternal> newAlarmHostList = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost); List<ArdEquipExternal> newAlarmHostList = selectArdEquipExternalList(alarmHost); //需要更新的数据 List<ArdEquipExternal> updateList = sameListWithDifferent(ardAlarmHostList, newAlarmHostList); if (updateList.size() > 0) { @@ -101,7 +102,7 @@ alarmHost = new ArdEquipExternal(); alarmHost.setFactory("1"); alarmHost.setType("6"); List<ArdEquipExternal> newAccessHostList = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost); List<ArdEquipExternal> newAccessHostList = selectArdEquipExternalList(alarmHost); //需要更新的数据 updateList = sameListWithDifferent(ardAccessHostList, newAccessHostList); if (updateList.size() > 0) { @@ -142,12 +143,13 @@ */ @Override public ArdEquipExternal selectArdEquipExternalById(String id) { return ardEquipExternalMapper.selectArdEquipExternalById(id); return ardEquipExternalMapper.selectById(id); } @Override public ArdEquipExternal selectArdEquipExternal(ArdEquipExternal ardEquipExternal) { return ardEquipExternalMapper.selectArdEquipExternal(ardEquipExternal); QueryWrapper<ArdEquipExternal> queryWrapper=new QueryWrapper<>(ardEquipExternal); return ardEquipExternalMapper.selectOne(queryWrapper); } /** @@ -158,7 +160,8 @@ */ @Override public List<ArdEquipExternal> selectArdEquipExternalList(ArdEquipExternal ardEquipExternal) { return ardEquipExternalMapper.selectArdEquipExternalList(ardEquipExternal); QueryWrapper<ArdEquipExternal> queryWrapper=new QueryWrapper<>(ardEquipExternal); return ardEquipExternalMapper.selectList(queryWrapper); } src/main/java/com/ard/alarm/radar/domain/ArdEquipRadar.java
@@ -1,6 +1,8 @@ package com.ard.alarm.radar.domain; import java.util.Date; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -52,6 +54,9 @@ /** 塔id */ private String towerId; /** 塔名称 */ @TableField(exist = false) private String towerName; /** 图像宽度 */ src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java
@@ -2,6 +2,7 @@ import java.util.List; import com.ard.alarm.radar.domain.ArdEquipRadar; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; /** @@ -11,53 +12,7 @@ * @date 2023-03-11 */ @Mapper public interface ArdEquipRadarMapper public interface ArdEquipRadarMapper extends BaseMapper<ArdEquipRadar> { /** * 查询radar * * @param id radar主键 * @return radar */ public ArdEquipRadar selectArdEquipRadarById(String id); /** * 查询radar列表 * * @param ardEquipRadar radar * @return radar集合 */ public List<ArdEquipRadar> selectArdEquipRadarList(ArdEquipRadar ardEquipRadar); /** * 新增radar * * @param ardEquipRadar radar * @return 结果 */ public int insertArdEquipRadar(ArdEquipRadar ardEquipRadar); /** * 修改radar * * @param ardEquipRadar radar * @return 结果 */ public int updateArdEquipRadar(ArdEquipRadar ardEquipRadar); /** * 删除radar * * @param id radar主键 * @return 结果 */ public int deleteArdEquipRadarById(String id); /** * 批量删除radar * * @param ids 需要删除的数据主键集合 * @return 结果 */ public int deleteArdEquipRadarByIds(String[] ids); } src/main/java/com/ard/alarm/radar/service/IArdEquipRadarService.java
@@ -9,53 +9,14 @@ * @author zj * @date 2023-03-11 */ public interface IArdEquipRadarService { /** * 查询radar * * @param id radar主键 * @return radar */ public ArdEquipRadar selectArdEquipRadarById(String id); public interface IArdEquipRadarService { /** * 查询radar列表 * * * @param ardEquipRadar radar * @return radar集合 */ public List<ArdEquipRadar> selectArdEquipRadarList(ArdEquipRadar ardEquipRadar); /** * 新增radar * * @param ardEquipRadar radar * @return 结果 */ public int insertArdEquipRadar(ArdEquipRadar ardEquipRadar); /** * 修改radar * * @param ardEquipRadar radar * @return 结果 */ public int updateArdEquipRadar(ArdEquipRadar ardEquipRadar); /** * 批量删除radar * * @param ids 需要删除的radar主键集合 * @return 结果 */ public int deleteArdEquipRadarByIds(String[] ids); /** * 删除radar信息 * * @param id radar主键 * @return 结果 */ public int deleteArdEquipRadarById(String id); } } src/main/java/com/ard/alarm/radar/service/impl/ArdEquipRadarServiceImpl.java
@@ -1,94 +1,37 @@ package com.ard.alarm.radar.service.impl; import java.util.List; import com.ard.alarm.external.domain.ArdEquipExternal; import com.ard.alarm.radar.domain.ArdEquipRadar; import com.ard.alarm.radar.mapper.ArdEquipRadarMapper; import com.ard.alarm.radar.service.IArdEquipRadarService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * radarService业务层处理 * * * @author zj * @date 2023-03-11 */ @Service public class ArdEquipRadarServiceImpl implements IArdEquipRadarService { public class ArdEquipRadarServiceImpl implements IArdEquipRadarService { @Autowired private ArdEquipRadarMapper ardEquipRadarMapper; /** * 查询radar * * @param id radar主键 * @return radar */ @Override public ArdEquipRadar selectArdEquipRadarById(String id) { return ardEquipRadarMapper.selectArdEquipRadarById(id); } /** * 查询radar列表 * * * @param ardEquipRadar radar * @return radar */ @Override public List<ArdEquipRadar> selectArdEquipRadarList(ArdEquipRadar ardEquipRadar) { return ardEquipRadarMapper.selectArdEquipRadarList(ardEquipRadar); public List<ArdEquipRadar> selectArdEquipRadarList(ArdEquipRadar ardEquipRadar) { QueryWrapper<ArdEquipRadar> queryWrapper = new QueryWrapper<>(ardEquipRadar); return ardEquipRadarMapper.selectList(queryWrapper); } /** * 新增radar * * @param ardEquipRadar radar * @return 结果 */ @Override public int insertArdEquipRadar(ArdEquipRadar ardEquipRadar) { return ardEquipRadarMapper.insertArdEquipRadar(ardEquipRadar); } /** * 修改radar * * @param ardEquipRadar radar * @return 结果 */ @Override public int updateArdEquipRadar(ArdEquipRadar ardEquipRadar) { return ardEquipRadarMapper.updateArdEquipRadar(ardEquipRadar); } /** * 批量删除radar * * @param ids 需要删除的radar主键 * @return 结果 */ @Override public int deleteArdEquipRadarByIds(String[] ids) { return ardEquipRadarMapper.deleteArdEquipRadarByIds(ids); } /** * 删除radar信息 * * @param id radar主键 * @return 结果 */ @Override public int deleteArdEquipRadarById(String id) { return ardEquipRadarMapper.deleteArdEquipRadarById(id); } } src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java
@@ -24,6 +24,7 @@ import java.nio.ByteBuffer; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; /** * @ClassName: FMSGCallBack @@ -54,80 +55,75 @@ String url = "";//事件图片 //lCommand是传的报警类型 //log.debug("报警事件类型:lCommand:" + Integer.toHexString(lCommand)); switch (lCommand) { case HCNetSDK.COMM_ALARM_V30: //log.debug("移动侦测"); ArdCameras ardCameras = new ArdCameras(); ardCameras.setIp(sDeviceIP); ardCameras.setPort(wLinkPort); IArdCamerasService ardCamerasService = SpringUtils.getBean(IArdCamerasService.class); ArdCameras camera = ardCamerasService.selectArdCamerasList(ardCameras).get(0); HCNetSDK.NET_DVR_ALARMINFO_V30 netDvrAlarminfoV30 = new HCNetSDK.NET_DVR_ALARMINFO_V30(); netDvrAlarminfoV30.write(); Pointer pNDAInfo = netDvrAlarminfoV30.getPointer(); pNDAInfo.write(0, pAlarmInfo.getByteArray(0, netDvrAlarminfoV30.size()), 0, netDvrAlarminfoV30.size()); netDvrAlarminfoV30.read(); switch (netDvrAlarminfoV30.dwAlarmType) { case 3: info = new CameraEventInfo(); info.setAlarmName("移动侦测"); info.setAlarmTime(fmt.format(new Date())); info.setCameraName(camera.getName()); info.setCameraId(camera.getId()); info.setCameraIp(camera.getIp()); info.setCameraPort(camera.getPort()); info.setCameraType(camera.getGdtype()); info.setCameraChannel(Integer.valueOf(netDvrAlarminfoV30.byChannel[0])); info.setLongitude(camera.getLongitude()); info.setLatitude(camera.getLatitude()); info.setAlarmType("移动侦测"); //图片存入minio url = savePicture(info); info.setPicUrl(url); publishMqtt(info); break; } case HCNetSDK.COMM_ALARM_RULE: //log.debug("行为分析信息报警信息上报"); //region 行为分析信息 ardCameras = new ArdCameras(); ardCameras.setIp(sDeviceIP); ardCameras.setPort(wLinkPort); ardCamerasService = SpringUtils.getBean(IArdCamerasService.class); ArdCameras ardCamera = ardCamerasService.selectArdCamerasList(ardCameras).get(0); HCNetSDK.NET_VCA_RULE_ALARM strVcaAlarm = new HCNetSDK.NET_VCA_RULE_ALARM(); strVcaAlarm.write(); Pointer pVCAInfo = strVcaAlarm.getPointer(); pVCAInfo.write(0, pAlarmInfo.getByteArray(0, strVcaAlarm.size()), 0, strVcaAlarm.size()); strVcaAlarm.read(); Integer ruleID = Integer.valueOf(strVcaAlarm.struRuleInfo.byRuleID); sTime = DateUtils.parseTime(strVcaAlarm.dwAbsTime);//事件时间 String ipaddr = new String(strVcaAlarm.struDevInfo.struDevIP.sIpV4).trim();//设备ip Integer channel = Integer.valueOf(strVcaAlarm.struDevInfo.byChannel);//通道 info = new CameraEventInfo(); info.setAlarmName("人员行为分析"); info.setAlarmTime(sTime); info.setCameraName(ardCamera.getName()); info.setCameraId(ardCamera.getId()); info.setCameraIp(ardCamera.getIp()); info.setCameraPort(ardCamera.getPort()); info.setCameraType(ardCamera.getGdtype()); info.setCameraChannel(channel); info.setLongitude(ardCamera.getLongitude()); info.setLatitude(ardCamera.getLatitude()); info.setRuleId(ruleID); switch (strVcaAlarm.struRuleInfo.wEventTypeEx) { case 1: //region穿越警戒面 (越界侦测) info.setAlarmType("越界侦测报警"); strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_TRAVERSE_PLANE.class); //图片存入minio url = savePicture(info); info.setPicUrl(url); publishMqtt(info); //endregion break; ArdCameras ardCameras = new ArdCameras(); ardCameras.setIp(sDeviceIP); ardCameras.setPort(wLinkPort); IArdCamerasService ardCamerasService = SpringUtils.getBean(IArdCamerasService.class); List<ArdCameras> ardCamerasList = ardCamerasService.selectArdCamerasList(ardCameras); if (ardCamerasList.size() > 0) { ArdCameras camera = ardCamerasService.selectArdCamerasList(ardCameras).get(0); switch (lCommand) { case HCNetSDK.COMM_ALARM_V30: //log.debug("移动侦测"); HCNetSDK.NET_DVR_ALARMINFO_V30 netDvrAlarminfoV30 = new HCNetSDK.NET_DVR_ALARMINFO_V30(); netDvrAlarminfoV30.write(); Pointer pNDAInfo = netDvrAlarminfoV30.getPointer(); pNDAInfo.write(0, pAlarmInfo.getByteArray(0, netDvrAlarminfoV30.size()), 0, netDvrAlarminfoV30.size()); netDvrAlarminfoV30.read(); switch (netDvrAlarminfoV30.dwAlarmType) { case 3: info = new CameraEventInfo(); info.setAlarmName("移动侦测"); info.setAlarmTime(fmt.format(new Date())); info.setCameraName(camera.getName()); info.setCameraId(camera.getId()); info.setCameraIp(camera.getIp()); info.setCameraPort(camera.getPort()); info.setCameraType(camera.getGdType()); info.setCameraChannel(Integer.valueOf(netDvrAlarminfoV30.byChannel[0])); info.setLongitude(camera.getLongitude()); info.setLatitude(camera.getLatitude()); info.setAlarmType("移动侦测"); //图片存入minio url = savePicture(info); info.setPicUrl(url); publishMqtt(info); break; } case HCNetSDK.COMM_ALARM_RULE: //log.debug("行为分析信息报警信息上报"); //region 行为分析信息 HCNetSDK.NET_VCA_RULE_ALARM strVcaAlarm = new HCNetSDK.NET_VCA_RULE_ALARM(); strVcaAlarm.write(); Pointer pVCAInfo = strVcaAlarm.getPointer(); pVCAInfo.write(0, pAlarmInfo.getByteArray(0, strVcaAlarm.size()), 0, strVcaAlarm.size()); strVcaAlarm.read(); Integer ruleID = Integer.valueOf(strVcaAlarm.struRuleInfo.byRuleID); sTime = DateUtils.parseTime(strVcaAlarm.dwAbsTime);//事件时间 String ipaddr = new String(strVcaAlarm.struDevInfo.struDevIP.sIpV4).trim();//设备ip Integer channel = Integer.valueOf(strVcaAlarm.struDevInfo.byChannel);//通道 info = new CameraEventInfo(); info.setAlarmName("人员行为分析"); info.setAlarmTime(sTime); info.setCameraName(camera.getName()); info.setCameraId(camera.getId()); info.setCameraIp(camera.getIp()); info.setCameraPort(camera.getPort()); info.setCameraType(camera.getGdType()); info.setCameraChannel(channel); info.setLongitude(camera.getLongitude()); info.setLatitude(camera.getLatitude()); info.setRuleId(ruleID); switch (strVcaAlarm.struRuleInfo.wEventTypeEx) { case 1: //region穿越警戒面 (越界侦测) info.setAlarmType("越界侦测报警"); strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_TRAVERSE_PLANE.class); //图片存入minio url = savePicture(info); info.setPicUrl(url); publishMqtt(info); //endregion break; // case 2: //region 目标进入区域 // info.setAlarmType("目标进入区域报警"); // strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_AREA.class); @@ -138,15 +134,15 @@ // strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_AREA.class); // //endregion // break; case 4: //region 周界入侵 info.setAlarmType("周界入侵报警"); strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_INTRUSION.class); //图片存入minio url = savePicture(info); info.setPicUrl(url); publishMqtt(info); //endregion break; case 4: //region 周界入侵 info.setAlarmType("周界入侵报警"); strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_INTRUSION.class); //图片存入minio url = savePicture(info); info.setPicUrl(url); publishMqtt(info); //endregion break; // case 5: //region 徘徊 // info.setAlarmType("徘徊事件报警"); // //endregion @@ -171,224 +167,221 @@ // info.setAlarmType("玩手机报警事件"); // //endregion // break; default: // log.debug("未知行为事件类型:" + strVcaAlarm.struRuleInfo.wEventTypeEx); break; } //endregion break; // case HCNetSDK.COMM_UPLOAD_FACESNAP_RESULT: // log.debug("人脸检测事件上报(暂不解析)"); // break; // case HCNetSDK.COMM_GISINFO_UPLOAD: // log.debug("GPS报警信息上报(暂不解析)"); // break; case HCNetSDK.COMM_ALARMHOST_CID_ALARM: //log.debug("报警主机CID报告报警上报"); //region 报警主机报警处理 ArdEquipExternal ardEquipExternal = new ArdEquipExternal(); ardEquipExternal.setIp(sDeviceIP); ardEquipExternal.setPort(wLinkPort); IArdEquipExternalService ardEquipExternalService = SpringUtils.getBean(IArdEquipExternalService.class); ardEquipExternal = ardEquipExternalService.selectArdEquipExternal(ardEquipExternal); HCNetSDK.NET_DVR_CID_ALARM netDvrCidAlarm = new HCNetSDK.NET_DVR_CID_ALARM(); netDvrCidAlarm.write(); Pointer pCIDInfo = netDvrCidAlarm.getPointer(); pCIDInfo.write(0, pAlarmInfo.getByteArray(0, netDvrCidAlarm.size()), 0, netDvrCidAlarm.size()); netDvrCidAlarm.read(); //CID事件名 String sCIDCode = ByteUtils.bytesToStringZh(netDvrCidAlarm.sCIDCode);//CID事件名 //CID事件名 //String sCIDDescribe = ByteUtils.bytesToStringZh(netDvrCidAlarm.sCIDDescribe);//CID事件名 int position = ByteUtils.findIndexOfDoubleZero(netDvrCidAlarm.sCIDDescribe); String sCIDDescribe; if (position != -1) { byte[] result = new byte[position]; System.arraycopy(netDvrCidAlarm.sCIDDescribe, 0, result, 0, position); sCIDDescribe = ByteUtils.bytesToStringZh(result); } else { sCIDDescribe = ByteUtils.bytesToStringZh(netDvrCidAlarm.sCIDDescribe); } //触发报警的时间点 String struTriggerTime = DateUtils.convertDate(parseAlarmTime(netDvrCidAlarm.struTriggerTime), "yyyy-M-d H:m:s"); //上传报警的时间点 String struUploadTime = DateUtils.convertDate(parseAlarmTime(netDvrCidAlarm.struUploadTime), "yyyy-M-d H:m:s"); //报告类型 String byReportType = ""; switch (netDvrCidAlarm.byReportType) { case 1: byReportType = "防区报警"; break; case 2: byReportType = "视频报警"; break; case 3: byReportType = "软防区报警"; break; case 4: byReportType = "挟持报警"; break; case 5: byReportType = "防拆报警 "; break; case 6: byReportType = "操作报告 "; break; case 7: byReportType = "异常报告 "; break; } //子系统号 Integer bySubSysNo = Integer.valueOf(netDvrCidAlarm.bySubSysNo); //防区号 起始0 Integer wDefenceNo = Integer.valueOf(netDvrCidAlarm.wDefenceNo); //防区名称 String wDefenceName = ""; if (!bySubSysNo.equals(-1)) { CameraCmd cmd = new CameraCmd(); cmd.setCameraId(ardEquipExternal.getId()); cmd.setWZoneIndex(wDefenceNo); wDefenceName = HikClientUtil.getDefenseZoneName(cmd); } if (sCIDDescribe.contains("恢复")) { return true; } ExternalAlarmEventInfo externalAlarmEventInfo = new ExternalAlarmEventInfo(); externalAlarmEventInfo.setAlarmId(sCIDCode); externalAlarmEventInfo.setAlarmName(sCIDDescribe); externalAlarmEventInfo.setDefenseId((wDefenceNo + 1)); externalAlarmEventInfo.setDefenseName(wDefenceName); externalAlarmEventInfo.setSubSysNo(bySubSysNo); externalAlarmEventInfo.setAlarmType(byReportType); externalAlarmEventInfo.setAlarmTime(struTriggerTime); externalAlarmEventInfo.setAlarmHostId(ardEquipExternal.getId()); publishMqtt(externalAlarmEventInfo); //endregion break; case HCNetSDK.COMM_ALARM_ACS: //region 门禁主机报警处理 ArdEquipExternal accessControlHost = new ArdEquipExternal(); accessControlHost.setIp(sDeviceIP); accessControlHost.setPort(wLinkPort); ardEquipExternalService = SpringUtils.getBean(IArdEquipExternalService.class); accessControlHost = ardEquipExternalService.selectArdEquipExternal(accessControlHost); HCNetSDK.NET_DVR_ACS_ALARM_INFO strACSInfo = new HCNetSDK.NET_DVR_ACS_ALARM_INFO(); strACSInfo.write(); Pointer acsInfo = strACSInfo.getPointer(); acsInfo.write(0, pAlarmInfo.getByteArray(0, strACSInfo.size()), 0, strACSInfo.size()); strACSInfo.read(); int dwMajor = strACSInfo.dwMajor; if (dwMajor != 5) { //只获取事件 // log.debug("非事件报警数据上报(暂不解析)"); break; } int dwMinor = strACSInfo.dwMinor; if (dwMinor != 80 && dwMinor != 104) { //只解析真人检测失败和人脸抓拍失败的次类型事件 break; } String alarmType = ""; switch (dwMinor) { case 104: alarmType = "真人检测失败"; break; case 80: alarmType = "人脸抓拍失败"; break; } log.debug("门禁主机报警上传:"+alarmType); String alarmTime = DateUtils.convertDate(parseAlarmTime(strACSInfo.struTime), "yyyy-M-d H:m:s"); //事件图片处理 int dwPicDataLen = strACSInfo.dwPicDataLen; if (dwPicDataLen > 0) { try { //将字节写入文件 long offset = 0; ByteBuffer buffers = strACSInfo.pPicData.getByteBuffer(offset, strACSInfo.dwPicDataLen); byte[] bytes = new byte[strACSInfo.dwPicDataLen]; buffers.rewind(); buffers.get(bytes); InputStream input = new ByteArrayInputStream(bytes); String bucketName = "pic"; String objectName = "alarm/" + IdUtils.simpleUUID() + ".jpeg"; boolean uploadObject = MinioUtil.uploadObject(bucketName, objectName, input,input.available(), "image/JPEG"); if (uploadObject) { url = MinioUtil.getBucketObjectUrl(bucketName, objectName); //log.debug("上传文件成功!" + url); } } catch (Exception e) { log.error("图片保存失败"); default: // log.debug("未知行为事件类型:" + strVcaAlarm.struRuleInfo.wEventTypeEx); break; } } HCNetSDK.NET_DVR_ACS_EVENT_INFO struAcsEventInfo = strACSInfo.struAcsEventInfo; int byType = struAcsEventInfo.byType; String defenseType = ""; switch (byType) { case 0: defenseType = "即时防区"; break; case 1: defenseType = "24小时防区"; break; case 2: defenseType = "延时防区"; break; case 3: defenseType = "内部防区"; break; case 4: defenseType = "钥匙防区"; break; case 5: defenseType = "火警防区"; break; case 6: defenseType = "周界防区"; break; case 7: defenseType = "24小时无声防区"; break; case 8: defenseType = "24小时辅助防区"; break; case 9: defenseType = "24小时震动防区"; break; case 10: defenseType = "门禁紧急开门防区"; break; case 11: defenseType = "门禁紧急关门防区"; break; default: defenseType = "无"; break; } AccessControlHostEventInfo accessControlHostEventInfo = new AccessControlHostEventInfo(); accessControlHostEventInfo.setSerialNo(struAcsEventInfo.dwSerialNo); accessControlHostEventInfo.setAlarmType(alarmType); accessControlHostEventInfo.setDoorNo(struAcsEventInfo.dwDoorNo); accessControlHostEventInfo.setDefenseType(defenseType); accessControlHostEventInfo.setAlarmTime(alarmTime); accessControlHostEventInfo.setPicUrl(url); accessControlHostEventInfo.setAcsId(accessControlHost.getId()); publishMqtt(accessControlHostEventInfo); //endregion break; default: // log.debug("未知报警事件类型:lCommand:" + Integer.toHexString(lCommand)); break; //endregion break; case HCNetSDK.COMM_UPLOAD_FACESNAP_RESULT: //log.debug("人脸检测事件上报(暂不解析)"); break; case HCNetSDK.COMM_GISINFO_UPLOAD: //log.debug("GPS报警信息上报(暂不解析)"); break; case HCNetSDK.COMM_ALARMHOST_CID_ALARM: //log.debug("报警主机CID报告报警上报"); //region 报警主机报警处理 ArdEquipExternal ardEquipExternal = new ArdEquipExternal(); ardEquipExternal.setIp(sDeviceIP); ardEquipExternal.setPort(wLinkPort); IArdEquipExternalService ardEquipExternalService = SpringUtils.getBean(IArdEquipExternalService.class); ardEquipExternal = ardEquipExternalService.selectArdEquipExternal(ardEquipExternal); HCNetSDK.NET_DVR_CID_ALARM netDvrCidAlarm = new HCNetSDK.NET_DVR_CID_ALARM(); netDvrCidAlarm.write(); Pointer pCIDInfo = netDvrCidAlarm.getPointer(); pCIDInfo.write(0, pAlarmInfo.getByteArray(0, netDvrCidAlarm.size()), 0, netDvrCidAlarm.size()); netDvrCidAlarm.read(); //CID事件名 String sCIDCode = ByteUtils.bytesToStringZh(netDvrCidAlarm.sCIDCode);//CID事件名 //CID事件名 //String sCIDDescribe = ByteUtils.bytesToStringZh(netDvrCidAlarm.sCIDDescribe);//CID事件名 int position = ByteUtils.findIndexOfDoubleZero(netDvrCidAlarm.sCIDDescribe); String sCIDDescribe; if (position != -1) { byte[] result = new byte[position]; System.arraycopy(netDvrCidAlarm.sCIDDescribe, 0, result, 0, position); sCIDDescribe = ByteUtils.bytesToStringZh(result); } else { sCIDDescribe = ByteUtils.bytesToStringZh(netDvrCidAlarm.sCIDDescribe); } //触发报警的时间点 String struTriggerTime = DateUtils.convertDate(parseAlarmTime(netDvrCidAlarm.struTriggerTime), "yyyy-M-d H:m:s"); //上传报警的时间点 String struUploadTime = DateUtils.convertDate(parseAlarmTime(netDvrCidAlarm.struUploadTime), "yyyy-M-d H:m:s"); //报告类型 String byReportType = ""; switch (netDvrCidAlarm.byReportType) { case 1: byReportType = "防区报警"; break; case 2: byReportType = "视频报警"; break; case 3: byReportType = "软防区报警"; break; case 4: byReportType = "挟持报警"; break; case 5: byReportType = "防拆报警 "; break; case 6: byReportType = "操作报告 "; break; case 7: byReportType = "异常报告 "; break; } //子系统号 Integer bySubSysNo = Integer.valueOf(netDvrCidAlarm.bySubSysNo); //防区号 起始0 Integer wDefenceNo = Integer.valueOf(netDvrCidAlarm.wDefenceNo); //防区名称 String wDefenceName = ""; if (!bySubSysNo.equals(-1)) { CameraCmd cmd = new CameraCmd(); cmd.setCameraId(ardEquipExternal.getId()); cmd.setWZoneIndex(wDefenceNo); wDefenceName = HikClientUtil.getDefenseZoneName(cmd); } if (sCIDDescribe.contains("恢复")) { return true; } ExternalAlarmEventInfo externalAlarmEventInfo = new ExternalAlarmEventInfo(); externalAlarmEventInfo.setAlarmId(sCIDCode); externalAlarmEventInfo.setAlarmName(sCIDDescribe); externalAlarmEventInfo.setDefenseId((wDefenceNo + 1)); externalAlarmEventInfo.setDefenseName(wDefenceName); externalAlarmEventInfo.setSubSysNo(bySubSysNo); externalAlarmEventInfo.setAlarmType(byReportType); externalAlarmEventInfo.setAlarmTime(struTriggerTime); externalAlarmEventInfo.setAlarmHostId(ardEquipExternal.getId()); publishMqtt(externalAlarmEventInfo); //endregion break; case HCNetSDK.COMM_ALARM_ACS: //region 门禁主机报警处理 ArdEquipExternal accessControlHost = new ArdEquipExternal(); accessControlHost.setIp(sDeviceIP); accessControlHost.setPort(wLinkPort); ardEquipExternalService = SpringUtils.getBean(IArdEquipExternalService.class); accessControlHost = ardEquipExternalService.selectArdEquipExternal(accessControlHost); HCNetSDK.NET_DVR_ACS_ALARM_INFO strACSInfo = new HCNetSDK.NET_DVR_ACS_ALARM_INFO(); strACSInfo.write(); Pointer acsInfo = strACSInfo.getPointer(); acsInfo.write(0, pAlarmInfo.getByteArray(0, strACSInfo.size()), 0, strACSInfo.size()); strACSInfo.read(); int dwMajor = strACSInfo.dwMajor; if (dwMajor != 5) { //只获取事件 // log.debug("非事件报警数据上报(暂不解析)"); break; } int dwMinor = strACSInfo.dwMinor; if (dwMinor != 80 && dwMinor != 104) { //只解析真人检测失败和人脸抓拍失败的次类型事件 break; } String alarmType = ""; switch (dwMinor) { case 104: alarmType = "真人检测失败"; break; case 80: alarmType = "人脸抓拍失败"; break; } log.debug("门禁主机报警上传:" + alarmType); String alarmTime = DateUtils.convertDate(parseAlarmTime(strACSInfo.struTime), "yyyy-M-d H:m:s"); //事件图片处理 int dwPicDataLen = strACSInfo.dwPicDataLen; if (dwPicDataLen > 0) { try { //将字节写入文件 long offset = 0; ByteBuffer buffers = strACSInfo.pPicData.getByteBuffer(offset, strACSInfo.dwPicDataLen); byte[] bytes = new byte[strACSInfo.dwPicDataLen]; buffers.rewind(); buffers.get(bytes); InputStream input = new ByteArrayInputStream(bytes); String bucketName = "pic"; String objectName = "alarm/" + IdUtils.simpleUUID() + ".jpeg"; boolean uploadObject = MinioUtil.uploadObject(bucketName, objectName, input, input.available(), "image/JPEG"); if (uploadObject) { url = MinioUtil.getBucketObjectUrl(bucketName, objectName); //log.debug("上传文件成功!" + url); } } catch (Exception e) { log.error("图片保存失败"); } } HCNetSDK.NET_DVR_ACS_EVENT_INFO struAcsEventInfo = strACSInfo.struAcsEventInfo; int byType = struAcsEventInfo.byType; String defenseType = ""; switch (byType) { case 0: defenseType = "即时防区"; break; case 1: defenseType = "24小时防区"; break; case 2: defenseType = "延时防区"; break; case 3: defenseType = "内部防区"; break; case 4: defenseType = "钥匙防区"; break; case 5: defenseType = "火警防区"; break; case 6: defenseType = "周界防区"; break; case 7: defenseType = "24小时无声防区"; break; case 8: defenseType = "24小时辅助防区"; break; case 9: defenseType = "24小时震动防区"; break; case 10: defenseType = "门禁紧急开门防区"; break; case 11: defenseType = "门禁紧急关门防区"; break; default: defenseType = "无"; break; } AccessControlHostEventInfo accessControlHostEventInfo = new AccessControlHostEventInfo(); accessControlHostEventInfo.setSerialNo(struAcsEventInfo.dwSerialNo); accessControlHostEventInfo.setAlarmType(alarmType); accessControlHostEventInfo.setDoorNo(struAcsEventInfo.dwDoorNo); accessControlHostEventInfo.setDefenseType(defenseType); accessControlHostEventInfo.setAlarmTime(alarmTime); accessControlHostEventInfo.setPicUrl(url); accessControlHostEventInfo.setAcsId(accessControlHost.getId()); publishMqtt(accessControlHostEventInfo); //endregion break; default: // log.debug("未知报警事件类型:lCommand:" + Integer.toHexString(lCommand)); break; } } return true; } @@ -399,7 +392,7 @@ */ private String savePicture(CameraEventInfo info) { CameraCmd cmd = new CameraCmd(); String key=info.getCameraIp()+":"+info.getCameraPort(); String key = info.getCameraIp() + ":" + info.getCameraPort(); ArdCameras Cameras = GlobalVariable.cameraMap.get(key); if (Cameras == null) { return ""; @@ -407,7 +400,7 @@ cmd.setCameraId(Cameras.getId()); cmd.setChannelNum(info.getCameraChannel()); cmd.setBucketName("pic"); String filename = "alarm" + "/" + IdUtils.simpleUUID() + ".jpg"; String filename = "alarm" + "/" + IdUtils.simpleUUID() + ".jpg"; cmd.setObjectName(filename); String url = HikClientUtil.picCutCate(cmd); return url; @@ -446,7 +439,7 @@ * 通用光电报警推送mqtt */ private void publishMqtt(CameraEventInfo info) { printLog(info); printLog(info); MqttConsumer.publish(2, false, "camera", JSON.toJSONString(info)); } src/main/java/com/ard/utils/other/CodeGeneration.java
New file @@ -0,0 +1,126 @@ package com.ard.utils.other; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.Oracle12cDialect; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.querys.OracleQuery; import com.baomidou.mybatisplus.generator.config.querys.PostgreSqlQuery; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import java.util.Collections; /** * @ClassName: CodeGeneration * @Description: 代码生成器 * @Author: Administrator * @Date: 2023年03月25日 14:49 * @Version: 1.0 **/ public class CodeGeneration { public static void main(String[] args) { /** * 先配置数据源 */ //PostgreSqlQuery postgreSqlQuery = new PostgreSqlQuery() { // @Override // public String[] fieldCustom() { // return new String[]{"Default"}; // } //}; OracleQuery oracleQuery = new OracleQuery() { @Override public String[] fieldCustom() { return new String[]{"Default"}; } }; DataSourceConfig dsc = new DataSourceConfig.Builder("jdbc:oracle:thin:@//112.98.126.2:21521/orcl","c##ard_user","123456") .dbQuery(oracleQuery).build(); //通过datasourceConfig创建AutoGenerator AutoGenerator generator = new AutoGenerator(dsc); /** * 全局配置 */ String projectPath = System.getProperty("user.dir"); //获取项目路径 String filePath = projectPath + "/src/main/java"; //java下的文件路径 GlobalConfig global = new GlobalConfig.Builder() .outputDir(filePath)//生成的输出路径 .author("刘苏义")//生成的作者名字 //.enableSwagger()开启swagger,需要添加swagger依赖并配置 .dateType(DateType.TIME_PACK)//时间策略 .commentDate("yyyy年MM月dd日")//格式化时间格式 .disableOpenDir()//禁止打开输出目录,默认false .fileOverride()//覆盖生成文件 .build(); /** * 包配置 */ PackageConfig packages = new PackageConfig.Builder() .entity("domian")//实体类包名 .parent("com.ard.alarm.bridge")//父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名 .controller("controller")//控制层包名 .mapper("mapper")//mapper层包名 .xml("mapper.xml")//数据访问层xml包名 .service("service")//service层包名 .serviceImpl("service.impl")//service实现类包名 .pathInfo(Collections.singletonMap(OutputFile.xml, projectPath + "/src/main/resources/mapper")) .build(); /** * 策略配置开始 */ StrategyConfig strategyConfig = new StrategyConfig.Builder() .enableCapitalMode()//开启全局大写命名 //.likeTable()模糊表匹配 .addInclude("DATABRIDGE")//添加表匹配,指定要生成的数据表名,不写默认选定数据库所有表 //.disableSqlFilter()禁用sql过滤:默认(不使用该方法)true //.enableSchema()启用schema:默认false .entityBuilder() //实体策略配置 //.disableSerialVersionUID()禁用生成SerialVersionUID:默认true .enableChainModel()//开启链式模型 .enableLombok()//开启lombok .enableRemoveIsPrefix()//开启 Boolean 类型字段移除 is 前缀 .enableTableFieldAnnotation()//开启生成实体时生成字段注解 //.addTableFills()添加表字段填充 .naming(NamingStrategy.underline_to_camel)//数据表映射实体命名策略:默认下划线转驼峰underline_to_camel .columnNaming(NamingStrategy.underline_to_camel)//表字段映射实体属性命名规则:默认null,不指定按照naming执行 .idType(IdType.AUTO)//添加全局主键类型 .formatFileName("%s")//格式化实体名称,%s取消首字母I .build() .mapperBuilder()//mapper文件策略 .enableMapperAnnotation()//开启mapper注解 .enableBaseResultMap()//启用xml文件中的BaseResultMap 生成 .enableBaseColumnList()//启用xml文件中的BaseColumnList //.cache(缓存类.class)设置缓存实现类 .formatMapperFileName("%sMapper")//格式化Dao类名称 .formatXmlFileName("%sMapper")//格式化xml文件名称 .build() .serviceBuilder()//service文件策略 .formatServiceFileName("%sService")//格式化 service 接口文件名称 .formatServiceImplFileName("%sServiceImpl")//格式化 service 接口文件名称 .build() .controllerBuilder()//控制层策略 //.enableHyphenStyle()开启驼峰转连字符,默认:false .enableRestStyle()//开启生成@RestController .formatFileName("%sController")//格式化文件名称 .build(); /*至此,策略配置才算基本完成!*/ /** * 将所有配置项整合到AutoGenerator中进行执行 */ generator.global(global) .packageInfo(packages) .strategy(strategyConfig) .execute(); } } src/main/resources/GeneratorMapper.xml
File was deleted src/main/resources/application-dev.yml
@@ -35,7 +35,7 @@ port: 40000 enabled: true tcp: enabled: false enabled: true # mqtt配置 mqtt: host: tcp://192.168.2.15:1883 @@ -58,18 +58,18 @@ endpoint: http://192.168.2.15:9001 accessKey: admin secretKey: xzx12345 # mybatis配置 mybatis: typeAliasesPackage: com.ard.alarm.**.domain mapperLocations: classpath:/mapper/*.xml # mybatis-plus配置 mybatis-plus: type-aliases-package: com.ard.alarm.**.domain mapper-locations: classpath:/mapper/*.xml # 日志等级配置 logging: level: hikSdk: info hikSdk: debug mqtt: info netty: info netty: debug external: info camera: info tube: info digitization3: debug stealAlarm: info digitization3: info stealAlarm: info src/main/resources/application-prod.yml
@@ -56,10 +56,10 @@ # 三厂数字化地址 digitization3: enabled: false mybatis: typeAliasesPackage: com.ard.alarm.**.domain mapperLocations: classpath:/mapper/*.xml # mybatis-plus配置 mybatis-plus: type-aliases-package: com.ard.alarm.**.domain mapper-locations: classpath:/mapper/*.xml server: port: 8088 logging: src/main/resources/logback-spring.xml
@@ -2,8 +2,8 @@ <configuration> <!--日志存放路径--> <property name="log.path" value="./logs"/> <!--日志输出格式--> <property name="log.pattern" value="%d{HH:mm:ss.SSS}[%thread]%-5level%logger{20}-[%method,%line]-%msg%n"/> <!-- 日志输出格式 --> <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/> <!--控制台输出--> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> src/main/resources/mapper/ArdCamerasMapper.xml
File was deleted src/main/resources/mapper/ArdEquipExternalMapper.xml
File was deleted src/main/resources/mapper/ArdEquipRadarMapper.xml
File was deleted src/main/resources/mapper/DataBridgeMapper.xml
File was deleted