|
|
|
|
@ -13,10 +13,16 @@ import com.nmggs.query.common.utils.SM4Utils;
|
|
|
|
|
import com.nmggs.query.entity.ResData;
|
|
|
|
|
import com.nmggs.query.entity.fx.EquipmentInfo;
|
|
|
|
|
import com.nmggs.query.entity.fx.EquipmentStatistics;
|
|
|
|
|
import com.nmggs.query.entity.fx.FatigueVehicle;
|
|
|
|
|
import com.nmggs.query.entity.fx.FenceInfo;
|
|
|
|
|
import com.nmggs.query.entity.fx.HiddenDangerAreaInfo;
|
|
|
|
|
import com.nmggs.query.entity.fx.UseInfo;
|
|
|
|
|
import com.nmggs.query.entity.fx.WarningInfo;
|
|
|
|
|
import com.nmggs.query.mapper.fx.EquipmentInfoMapper;
|
|
|
|
|
import com.nmggs.query.mapper.fx.EquipmentStatisticsMapper;
|
|
|
|
|
import com.nmggs.query.mapper.fx.FatigueVehicleMapper;
|
|
|
|
|
import com.nmggs.query.mapper.fx.FenceInfoMapper;
|
|
|
|
|
import com.nmggs.query.mapper.fx.HiddenDangerAreaInfoMapper;
|
|
|
|
|
import com.nmggs.query.mapper.fx.UseInfoMapper;
|
|
|
|
|
import com.nmggs.query.mapper.fx.WarningInfoMapper;
|
|
|
|
|
import com.nmggs.query.service.ZDYHDataService;
|
|
|
|
|
@ -44,6 +50,12 @@ public class ZDYHDataServiceImpl implements ZDYHDataService {
|
|
|
|
|
private WarningInfoMapper warningInfoMapper;
|
|
|
|
|
@Resource
|
|
|
|
|
private EquipmentStatisticsMapper equipmentStatisticsMapper;
|
|
|
|
|
@Resource
|
|
|
|
|
private FatigueVehicleMapper fatigueVehicleMapper;
|
|
|
|
|
@Resource
|
|
|
|
|
private FenceInfoMapper fenceInfoMapper;
|
|
|
|
|
@Resource
|
|
|
|
|
private HiddenDangerAreaInfoMapper hiddenDangerAreaInfoMapper;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 接收重点隐患车辆设备信息
|
|
|
|
|
@ -219,6 +231,179 @@ public class ZDYHDataServiceImpl implements ZDYHDataService {
|
|
|
|
|
return Result.success("接收数据成功");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 接收电子围栏数据
|
|
|
|
|
*
|
|
|
|
|
* @param params 数据
|
|
|
|
|
* @param uuid uuid
|
|
|
|
|
* @return com.nmggs.query.common.exception.Result
|
|
|
|
|
* @author shuguang
|
|
|
|
|
* @date 2025-09-16 15:47
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@ExecutionTimeLogger
|
|
|
|
|
public Result getFenceData(Map<String, Object> params, String uuid) {
|
|
|
|
|
log.info("[uuid:{}]-开始接收重点隐患车辆电子围栏数据", uuid);
|
|
|
|
|
String authKey = PropertiesUtil.getValue("authKey");
|
|
|
|
|
String dataJson = conversionJson(params, uuid);
|
|
|
|
|
// 解析响应数据
|
|
|
|
|
ResData resData = JSON.parseObject(dataJson, ResData.class);
|
|
|
|
|
// 提取密钥和加密数据
|
|
|
|
|
String returnedKey = resData.getKey();
|
|
|
|
|
String encryptedData = resData.getData();
|
|
|
|
|
|
|
|
|
|
// 解密数据
|
|
|
|
|
String decryptedData = SM4Utils.sm4Decrypt(encryptedData, SM4Utils.sm4Decrypt(returnedKey, authKey));
|
|
|
|
|
// 将解密后的数据解析为 FenceInfo 列表
|
|
|
|
|
List<FenceInfo> infoList = JSON.parseArray(decryptedData, FenceInfo.class);
|
|
|
|
|
int updateCount = 0;
|
|
|
|
|
int insertCount = 0;
|
|
|
|
|
if (infoList != null && infoList.size() > 0) {
|
|
|
|
|
for (FenceInfo info : infoList) {
|
|
|
|
|
String fenceid = info.getFenceid();
|
|
|
|
|
String pilenumber = info.getPilenumber();
|
|
|
|
|
info.setUpdatetime(new Date());
|
|
|
|
|
QueryWrapper<FenceInfo> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
queryWrapper.eq("fenceid", fenceid)
|
|
|
|
|
.eq("pilenumber",pilenumber);
|
|
|
|
|
boolean exists = fenceInfoMapper.exists(queryWrapper);
|
|
|
|
|
if (exists) {
|
|
|
|
|
UpdateWrapper<FenceInfo> updateWrapper = new UpdateWrapper<>();
|
|
|
|
|
updateWrapper.eq("fenceid", fenceid)
|
|
|
|
|
.eq("pilenumber",pilenumber);
|
|
|
|
|
fenceInfoMapper.update(info, updateWrapper);
|
|
|
|
|
updateCount++;
|
|
|
|
|
} else {
|
|
|
|
|
fenceInfoMapper.insert(info);
|
|
|
|
|
insertCount++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
log.info("[uuid:{}]-接收重点隐患车辆电子围栏数据完成,更新数量:{},插入数量:{}", uuid, updateCount, insertCount);
|
|
|
|
|
|
|
|
|
|
return Result.success("接收数据成功");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 接收隐患区域数据
|
|
|
|
|
*
|
|
|
|
|
* @param params 数据
|
|
|
|
|
* @param uuid uuid
|
|
|
|
|
* @return com.nmggs.query.common.exception.Result
|
|
|
|
|
* @author shuguang
|
|
|
|
|
* @date 2025-09-16 15:47
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@ExecutionTimeLogger
|
|
|
|
|
public Result getHiddenDangerAreaData(Map<String, Object> params, String uuid) {
|
|
|
|
|
log.info("[uuid:{}]-开始接收重点隐患车辆隐患区域数据", uuid);
|
|
|
|
|
String authKey = PropertiesUtil.getValue("authKey");
|
|
|
|
|
String dataJson = conversionJson(params, uuid);
|
|
|
|
|
// 解析响应数据
|
|
|
|
|
ResData resData = JSON.parseObject(dataJson, ResData.class);
|
|
|
|
|
// 提取密钥和加密数据
|
|
|
|
|
String returnedKey = resData.getKey();
|
|
|
|
|
String encryptedData = resData.getData();
|
|
|
|
|
|
|
|
|
|
// 解密数据
|
|
|
|
|
String decryptedData = SM4Utils.sm4Decrypt(encryptedData, SM4Utils.sm4Decrypt(returnedKey, authKey));
|
|
|
|
|
// 将解密后的数据解析为 HiddenDangerAreaInfo 列表
|
|
|
|
|
List<HiddenDangerAreaInfo> infoList = JSON.parseArray(decryptedData, HiddenDangerAreaInfo.class);
|
|
|
|
|
int updateCount = 0;
|
|
|
|
|
int insertCount = 0;
|
|
|
|
|
if (infoList != null && infoList.size() > 0) {
|
|
|
|
|
for (HiddenDangerAreaInfo info : infoList) {
|
|
|
|
|
String fenceid = info.getFenceid();
|
|
|
|
|
String pilenumber = info.getPilenumber();
|
|
|
|
|
info.setUpdatetime(new Date());
|
|
|
|
|
QueryWrapper<HiddenDangerAreaInfo> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
queryWrapper
|
|
|
|
|
.eq("fenceid", fenceid)
|
|
|
|
|
.eq("pilenumber", pilenumber)
|
|
|
|
|
.eq("classdate", info.getClassdate());
|
|
|
|
|
boolean exists = hiddenDangerAreaInfoMapper.exists(queryWrapper);
|
|
|
|
|
if (exists) {
|
|
|
|
|
UpdateWrapper<HiddenDangerAreaInfo> updateWrapper = new UpdateWrapper<>();
|
|
|
|
|
updateWrapper
|
|
|
|
|
.eq("fenceid", fenceid)
|
|
|
|
|
.eq("pilenumber", pilenumber)
|
|
|
|
|
.eq("classdate", info.getClassdate());
|
|
|
|
|
hiddenDangerAreaInfoMapper.update(info, updateWrapper);
|
|
|
|
|
updateCount++;
|
|
|
|
|
} else {
|
|
|
|
|
hiddenDangerAreaInfoMapper.insert(info);
|
|
|
|
|
insertCount++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
log.info("[uuid:{}]-接收重点隐患车辆隐患区域数据完成,更新数量:{},插入数量:{}", uuid, updateCount, insertCount);
|
|
|
|
|
|
|
|
|
|
return Result.success("接收数据成功");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 接收违法车辆数据
|
|
|
|
|
*
|
|
|
|
|
* @param params 数据
|
|
|
|
|
* @param uuid uuid
|
|
|
|
|
* @return com.nmggs.query.common.exception.Result
|
|
|
|
|
* @author shuguang
|
|
|
|
|
* @date 2025-09-16 15:47
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@ExecutionTimeLogger
|
|
|
|
|
public Result getFatigueData(Map<String, Object> params, String uuid) {
|
|
|
|
|
log.info("[uuid:{}]-开始接收重点隐患车辆违法车辆数据", uuid);
|
|
|
|
|
String authKey = PropertiesUtil.getValue("authKey");
|
|
|
|
|
String dataJson = conversionJson(params, uuid);
|
|
|
|
|
// 解析响应数据
|
|
|
|
|
ResData resData = JSON.parseObject(dataJson, ResData.class);
|
|
|
|
|
// 提取密钥和加密数据
|
|
|
|
|
String returnedKey = resData.getKey();
|
|
|
|
|
String encryptedData = resData.getData();
|
|
|
|
|
|
|
|
|
|
// 解密数据
|
|
|
|
|
String decryptedData = SM4Utils.sm4Decrypt(encryptedData, SM4Utils.sm4Decrypt(returnedKey, authKey));
|
|
|
|
|
// 将解密后的数据解析为 FatigueVehicle 列表
|
|
|
|
|
List<FatigueVehicle> infoList = JSON.parseArray(decryptedData, FatigueVehicle.class);
|
|
|
|
|
int updateCount = 0;
|
|
|
|
|
int insertCount = 0;
|
|
|
|
|
if (infoList != null && infoList.size() > 0) {
|
|
|
|
|
for (FatigueVehicle info : infoList) {
|
|
|
|
|
String plateno = info.getPlateno();
|
|
|
|
|
Integer vehicletype = info.getVehicletype();
|
|
|
|
|
Integer datatype = info.getDatatype();
|
|
|
|
|
String enforcementtime = info.getEnforcementtime();
|
|
|
|
|
info.setInserttime(new Date());
|
|
|
|
|
QueryWrapper<FatigueVehicle> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
queryWrapper
|
|
|
|
|
.eq("plateno", plateno)
|
|
|
|
|
.eq("vehicletype", vehicletype)
|
|
|
|
|
.eq("datatype", datatype)
|
|
|
|
|
.eq("enforcementtime", enforcementtime);
|
|
|
|
|
boolean exists = fatigueVehicleMapper.exists(queryWrapper);
|
|
|
|
|
if (exists) {
|
|
|
|
|
UpdateWrapper<FatigueVehicle> updateWrapper = new UpdateWrapper<>();
|
|
|
|
|
updateWrapper
|
|
|
|
|
.eq("plateno", plateno)
|
|
|
|
|
.eq("vehicletype", vehicletype)
|
|
|
|
|
.eq("datatype", datatype)
|
|
|
|
|
.eq("enforcementtime", enforcementtime);
|
|
|
|
|
fatigueVehicleMapper.update(info, updateWrapper);
|
|
|
|
|
updateCount++;
|
|
|
|
|
} else {
|
|
|
|
|
fatigueVehicleMapper.insert(info);
|
|
|
|
|
insertCount++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
log.info("[uuid:{}]-接收重点隐患车辆违法车辆数据完成,更新数量:{},插入数量:{}", uuid, updateCount, insertCount);
|
|
|
|
|
|
|
|
|
|
return Result.success("接收数据成功");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String conversionJson(Map<String, Object> map, String uuid) {
|
|
|
|
|
String result = "";
|
|
|
|
|
// 使用ObjectMapper将List<Map<String, Object>>转换为JSON字符串
|
|
|
|
|
|