develop
Angel 6 months ago
parent eb869dd8c8
commit 59cc458a28

@ -0,0 +1,126 @@
package com.ssf.mysqloracletest.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
* @TableName model_suspected_user_info
*/
@TableName(value ="model_suspected_user_info")
@Data
public class ModelSuspectedUserInfo implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
*
*/
private String placeCode;
/**
*
*/
private String placeName;
/**
*
*/
private String dossierCode;
/**
*
*/
private String userName;
/**
*
*/
private String userPic;
/**
*
*/
private String idCard;
/**
*
*/
private String userPhone;
/**
*
*/
private Integer appearTimes;
/**
*
*/
private Integer appearDays;
/**
*
*/
private String taskStartTime;
/**
*
*/
private String taskEndTime;
/**
*
*/
private String taskDay;
/**
*
*/
private String taskAppearTimes;
/**
*
*/
private String taskAppearDays;
/**
*
*/
private Integer isEntity;
/**
*
*/
private Date createTime;
/**
*
*/
private Integer createBy;
/**
*
*/
private Date updateTime;
/**
*
*/
private Integer updateBy;
/**
* 0:,1:
*/
private Integer isActive;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,66 @@
package com.ssf.mysqloracletest.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
* @TableName model_suspected_user_info_judgement
*/
@TableName(value ="model_suspected_user_info_judgement")
@Data
public class ModelSuspectedUserInfoJudgement implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
*
*/
private String villageCode;
/**
*
*/
private String villageName;
/**
*
*/
private String userName;
/**
*
*/
private String dossierCode;
/**
*
*/
private String idcard;
/**
*
*/
private String judgementUser;
/**
*
*/
private Integer judgementStatus;
/**
*
*/
private Date judgementTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

@ -17,6 +17,8 @@ public interface BasePlaceInfoMapper extends BaseMapper<BasePlaceInfo> {
public List<BasePlaceInfo> selectVillageBaseInfoList(BasePlaceInfo basePlaceInfo);
}

@ -15,7 +15,10 @@ import java.util.Map;
*/
@Mapper
public interface BaseUserInfoMapper extends BaseMapper<BaseUserInfo> {
/**
*
*/
public List<BaseUserInfo> queryUserRecordsByIdCard(Map<String, Object> map);
}

@ -0,0 +1,18 @@
package com.ssf.mysqloracletest.mapper;
import com.ssf.mysqloracletest.domain.ModelSuspectedUserInfoJudgement;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author 10503
* @description model_suspected_user_info_judgement()Mapper
* @createDate 2024-03-15 16:01:17
* @Entity com.ssf.mysqloracletest.domain.ModelSuspectedUserInfoJudgement
*/
public interface ModelSuspectedUserInfoJudgementMapper extends BaseMapper<ModelSuspectedUserInfoJudgement> {
}

@ -0,0 +1,34 @@
package com.ssf.mysqloracletest.mapper;
import com.ssf.mysqloracletest.domain.ModelSuspectedUserInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author 10503
* @description model_suspected_user_info()Mapper
* @createDate 2024-03-15 14:30:00
* @Entity com.ssf.mysqloracletest.domain.ModelSuspectedUserInfo
*/
@Mapper
public interface ModelSuspectedUserInfoMapper extends BaseMapper<ModelSuspectedUserInfo> {
void cleanModelSuspectedUserInfo();
List<ModelSuspectedUserInfo> queryModelSuspectedUserInfoExists(ModelSuspectedUserInfo modelSuspectedUserInfo);
int addModelSuspectedUserInfo(ModelSuspectedUserInfo modelSuspectedUserInfo);
/**
*
*
* @param modelSuspectedUserInfo
* @return
*/
int updateModelSuspectedUserInfo(ModelSuspectedUserInfo modelSuspectedUserInfo);
}

@ -0,0 +1,49 @@
package com.ssf.mysqloracletest.mapper;
import com.ssf.mysqloracletest.domain.ModelSuspectedUserInfoJudgement;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface PoliceBacklogMapper {
// List<ModelSuspectedUserInfo> selectSuspectedUsers(ModelSuspectedUserInfo modelSuspectedUserInfo);
//
// int deleteVillageUserInfoJudgement(Map<String, Object> map);
//
// int insertVillageUserInfoJudgement(ModelSuspectedUserInfoJudgement modelSuspectedUserInfoJudgement);
//
// List<ModelSuspectedUserInfoJudgement> selectSuspectedUsersJudgement(ModelSuspectedUserInfoJudgement modelSuspectedUserInfoJudgement);
//
// List<ModelSuspectedVehicleInfo> selectSuspectedVehicles(ModelSuspectedVehicleInfo modelSuspectedVehicleInfo);
//
// int deleteVillageVehicleInfoJudgement(Map<String, Object> map);
//
// int insertVillageVehicleInfoJudgement(ModelSuspectedVehicleInfoJudgement modelSuspectedVehicleInfoJudgement);
//
// List<ModelSuspectedVehicleInfoJudgement> selectSuspectedVehiclesJudgement(ModelSuspectedVehicleInfoJudgement modelSuspectedVehicleInfoJudgement);
//
// int selectSuspectedUserYesJudgement();
//
// int selectSuspectedUserSumJudgement();
//
// int selectSuspectedVehicleYesJudgement();
//
// int selectSuspectedVehicleSumJudgement();
/**
*
*/
List<ModelSuspectedUserInfoJudgement> queryModelSuspectedUserInfoJudgementExists(ModelSuspectedUserInfoJudgement modelSuspectedUserInfoJudgement);
// /**
// * 更新疑似人员记录表中的is_entity
// */
// void updateIsEntityModelSuspectedUserInfo(Map<String, Object> map);
//
// /**
// * 更新信息到实名档案表,非实名档补充身份证号和姓名
// */
// void updateUserIdentity(Map<String, Object> map);
}

@ -0,0 +1,13 @@
package com.ssf.mysqloracletest.service;
import com.ssf.mysqloracletest.domain.ModelSuspectedUserInfoJudgement;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author 10503
* @description model_suspected_user_info_judgement()Service
* @createDate 2024-03-15 16:01:17
*/
public interface ModelSuspectedUserInfoJudgementService extends IService<ModelSuspectedUserInfoJudgement> {
}

@ -0,0 +1,13 @@
package com.ssf.mysqloracletest.service;
import com.ssf.mysqloracletest.domain.ModelSuspectedUserInfo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author 10503
* @description model_suspected_user_info()Service
* @createDate 2024-03-15 14:30:00
*/
public interface ModelSuspectedUserInfoService extends IService<ModelSuspectedUserInfo> {
}

@ -0,0 +1,22 @@
package com.ssf.mysqloracletest.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ssf.mysqloracletest.domain.ModelSuspectedUserInfoJudgement;
import com.ssf.mysqloracletest.service.ModelSuspectedUserInfoJudgementService;
import com.ssf.mysqloracletest.mapper.ModelSuspectedUserInfoJudgementMapper;
import org.springframework.stereotype.Service;
/**
* @author 10503
* @description model_suspected_user_info_judgement()Service
* @createDate 2024-03-15 16:01:17
*/
@Service
public class ModelSuspectedUserInfoJudgementServiceImpl extends ServiceImpl<ModelSuspectedUserInfoJudgementMapper, ModelSuspectedUserInfoJudgement>
implements ModelSuspectedUserInfoJudgementService{
}

@ -0,0 +1,24 @@
package com.ssf.mysqloracletest.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ssf.mysqloracletest.domain.ModelSuspectedUserInfo;
import com.ssf.mysqloracletest.service.ModelSuspectedUserInfoService;
import com.ssf.mysqloracletest.mapper.ModelSuspectedUserInfoMapper;
import org.springframework.stereotype.Service;
/**
* @author 10503
* @description model_suspected_user_info()Service
* @createDate 2024-03-15 14:30:00
*/
@Service
@DS("mysql")
public class ModelSuspectedUserInfoServiceImpl extends ServiceImpl<ModelSuspectedUserInfoMapper, ModelSuspectedUserInfo>
implements ModelSuspectedUserInfoService{
}

@ -0,0 +1,292 @@
package com.ssf.mysqloracletest.task;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.ssf.mysqloracletest.domain.BasePlaceInfo;
import com.ssf.mysqloracletest.domain.BaseUserInfo;
import com.ssf.mysqloracletest.domain.ModelSuspectedUserInfo;
import com.ssf.mysqloracletest.domain.ModelSuspectedUserInfoJudgement;
import com.ssf.mysqloracletest.mapper.BaseUserInfoMapper;
import com.ssf.mysqloracletest.mapper.GoalPersonMapper;
import com.ssf.mysqloracletest.mapper.ModelSuspectedUserInfoMapper;
import com.ssf.mysqloracletest.mapper.PoliceBacklogMapper;
import com.ssf.mysqloracletest.service.BasePlaceInfoService;
import com.ssf.mysqloracletest.service.BaseUserInfoService;
import com.ssf.mysqloracletest.utils.DateTool;
import com.ssf.mysqloracletest.utils.safe.AESTools;
import com.ssf.mysqloracletest.utils.safe.AesConstant;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.*;
@Component
@RequiredArgsConstructor
public class PersonSuspectedTask {
@Resource
DateTool dateTool;
private static final Logger logger = LoggerFactory.getLogger(PersonSuspectedTask.class);
private final ModelSuspectedUserInfoMapper modelSuspectedUserInfoMapper;
private final BasePlaceInfoService basePlaceInfoService;
private final GoalPersonMapper goalPersonMapper;
private final BaseUserInfoService baseUserInfoService;
private final BaseUserInfoMapper baseUserInfoMapper;
private final PoliceBacklogMapper policeBacklogMapper;
@Scheduled(initialDelay = 100, fixedDelay = 3000)
public void goalPersonSuspected(String nearlyDays, String appearDays, String appearTimes) {
nearlyDays = "30";
appearDays = "20";
appearTimes = "30";
logger.info("goalPersonSuspected 人员分析 疑似小区住户 nearlyDays:" + nearlyDays + ", appearDays:" + appearDays + ", appearTimes" + appearTimes + ", threadName:" + Thread.currentThread().getName());
modelSuspectedUserInfoMapper.cleanModelSuspectedUserInfo();
// 1.查询近30天人脸抓拍数据
// 2.出现天数大于20或者次数大于30
if (StringUtils.isBlank(appearDays) || StringUtils.isBlank(appearTimes) || StringUtils.isBlank(nearlyDays)) {
return;
}
//入参校验
try {
Integer.parseInt(appearDays.trim());
Integer.parseInt(appearTimes.trim());
Integer.parseInt(nearlyDays.trim());
appearDays = appearDays.trim();
appearTimes = appearTimes.trim();
nearlyDays = nearlyDays.trim();
} catch (Exception ex) {
return;
}
//查询汇聚平台中小区编码
List<BasePlaceInfo> villageBaseInfos = basePlaceInfoService.queryVillageInfos();
if (CollectionUtils.isEmpty(villageBaseInfos)) {
return;
}
String villageCode = "";
// 4.清空临时结果表为入数据做准备
for (BasePlaceInfo villageBaseInfo : villageBaseInfos) {
villageCode = villageBaseInfo.getPlaceCode();
if (StringUtils.isBlank(villageCode)) {
//小区编码为空则跳过
continue;
}
//分别统计每个小区任务
Map<String, Object> map = new HashMap<>();
map.put("startTime", dateTool.getDayStart(Integer.parseInt(nearlyDays)));
map.put("endTime", dateTool.getDayEnd(1));
map.put("villageCode", villageCode);
map.put("appearTimes", appearTimes);
map.put("appearDays", appearDays);
// 注意:查询档案方式, 天数维度和次数维度求【交集】
List<String> appearTimesList = goalPersonMapper.queryUserRecordsByCountHz(map);
List<String> appearDaysList = goalPersonMapper.queryUserRecordsByDayHz(map);
logger.info("villageCode=" + villageCode + ", appearTimesList=" + appearTimesList.size() + ", appearDaysList=" + appearDaysList.size());
// if (CollectionUtils.isEmpty(appearTimesList)) {
// logger.info("villageCode=" + villageCode + ", appearTimesList null");
// } else {
// logger.info("villageCode=" + villageCode + ", appearTimesList=" + appearTimesList.size());
// }
// if (CollectionUtils.isEmpty(appearDaysList)) {
// logger.info("villageCode=" + villageCode + ", appearDaysList null");
// } else {
// logger.info("villageCode=" + villageCode + ", appearDaysList=" + appearDaysList.size());
// }
//临时档案缓存数据
Map<String, String> mapIdCardTmp = new HashMap<>();
//结果档案交集数据
Map<String, String> mapIdCardRes = new HashMap<>();
if (CollectionUtils.isNotEmpty(appearDaysList)) {
for (String day : appearDaysList) {
if (StringUtils.isNotBlank(day)) {
mapIdCardTmp.put(day, day);
}
}
appearDaysList.clear();
}
if (CollectionUtils.isNotEmpty(appearTimesList)) {
for (String time : appearTimesList) {
if (StringUtils.isNotBlank(time)) {
if (StringUtils.isNotBlank(mapIdCardTmp.get(time))
&& mapIdCardTmp.get(time).equals(time)) {
mapIdCardRes.put(time, time);
}
}
}
appearTimesList.clear();
}
// logger.info("villageCode=" + villageCode + ", mapIdCardRes=" + mapIdCardRes.size());
Map<String, BaseUserInfo> usersMap = queryUsers(villageCode);
// logger.info("villageCode=" + villageCode + ", usersMap=" + usersMap.size());
List<ModelSuspectedUserInfo> suspected = new ArrayList<>();
List<String> idCards = new ArrayList<>();
for (Map.Entry<String, String> entry : mapIdCardRes.entrySet()) {
if (StringUtils.isBlank(entry.getKey()) || idCards.contains(entry.getKey())) {
continue;
}
idCards.add(entry.getKey());
}
logger.info("villageCode=" + villageCode + ", idCards=" + idCards.size());
// logger.info("villageCode=" + villageCode + ", idCards=" + idCards.size());
//没有满足条件的档案ID则跳过
if (CollectionUtils.isEmpty(idCards)) {
usersMap.clear();
mapIdCardTmp.clear();
mapIdCardRes.clear();
continue;
}
for (String idCard : idCards) {
if (StringUtils.isNotBlank(idCard)) {
// 通过idCard查询记录
map.put("idcard", idCard);
ModelSuspectedUserInfo suspectUserInfo = getSuspectUserInfo(baseUserInfoMapper.queryUserRecordsByIdCard(map));
if (null != suspectUserInfo) {
// //判断这个推荐出来的人是否为本小区住户;两种情况1非实名2实名
// if (!queryInUserInfo(suspectUserInfo.getIdcard(), usersMap)) {
// suspectUserInfo.setC1("2");//未登记
// } else {
// suspectUserInfo.setC1("1");//已登记
// }
suspectUserInfo.setTaskStartTime(String.valueOf(map.get("startTime")));
suspectUserInfo.setTaskEndTime(String.valueOf(map.get("endTime")));
suspectUserInfo.setTaskDay(nearlyDays);
suspectUserInfo.setTaskAppearDays(String.valueOf(map.get("appearDays")));
suspectUserInfo.setTaskAppearTimes(String.valueOf(map.get("appearTimes")));
// suspectUserInfo.setIsEntity(Integer.parseInt(Constant.IS_ENTITY_1));
suspectUserInfo.setDossierCode("");
suspected.add(suspectUserInfo);
}
}
}
// logger.info("villageCode=" + villageCode + ", suspected=" + suspected.size());
if (CollectionUtils.isNotEmpty(suspected)) {
for (ModelSuspectedUserInfo modelSuspectedUserInfo : suspected) {
try {
// //去住户表查询是否已经存在关联手机号码使用备用字段c3存储
// VillageUserInfoMp one = villageUserInfoMpService.getOne(new LambdaQueryWrapper<VillageUserInfoMp>().eq(VillageUserInfoMp::getIdcard, modelSuspectedUserInfo.getIdcard()), false);
//去实有人口表查询身份证对应手机号使用c3存储
String encryptIdcard = modelSuspectedUserInfo.getIdCard();
// VillageActualUserInfoMp one = villageActualUserInfoMpService.getOne(new LambdaQueryWrapper<VillageActualUserInfoMp>().eq(VillageActualUserInfoMp::getIdcard, AESTools.decrypt(encryptIdcard, AesConstant.AES_ID_CARD)), false);
//
// Optional.ofNullable(one).ifPresent(e -> modelSuspectedUserInfo.setC3(e.getPhone()));
//villageCode,idcard用于判断临时结果表【model_suspected_user_info】是否已经存在
List<ModelSuspectedUserInfo> modelSuspectedUserInfos = modelSuspectedUserInfoMapper.queryModelSuspectedUserInfoExists(modelSuspectedUserInfo);
if (CollectionUtils.isEmpty(modelSuspectedUserInfos)) {
modelSuspectedUserInfoMapper.addModelSuspectedUserInfo(modelSuspectedUserInfo);
logger.info("住户身份证为:{}", encryptIdcard);
logger.info("人员分析 疑似小区住户 新增推送 " + JSONObject.toJSONString(modelSuspectedUserInfo));
} else {
//1.说明已经在临时表结果中出现过
//2.先去研判表查询一下,判断是否研判过
ModelSuspectedUserInfoJudgement modelSuspectedUserInfoJudgement = new ModelSuspectedUserInfoJudgement();
modelSuspectedUserInfoJudgement.setVillageCode(villageCode);
modelSuspectedUserInfoJudgement.setIdcard(encryptIdcard);
modelSuspectedUserInfoJudgement.setDossierCode("");
List<ModelSuspectedUserInfoJudgement> modelSuspectedUserInfoJudgementExists = policeBacklogMapper.queryModelSuspectedUserInfoJudgementExists(modelSuspectedUserInfoJudgement);
//modelSuspectedUserInfoJudgementExists 大于0 说明研判表【model_suspected_user_info_judgement】已经存在,则丢掉
if (CollectionUtils.isEmpty(modelSuspectedUserInfoJudgementExists)) {
//防止实名非实名状态被更新需要设置is_entity为null;更新临时结果表中的信息保持最新同时不更新is_entity
modelSuspectedUserInfo.setIsEntity(null);
modelSuspectedUserInfo.setId(modelSuspectedUserInfos.get(0).getId());
modelSuspectedUserInfoMapper.updateModelSuspectedUserInfo(modelSuspectedUserInfo);
logger.info("人员分析 疑似小区住户 更新已推送过记录保持最新一次 " + JSONObject.toJSONString(modelSuspectedUserInfo));
}
}
} catch (Exception es) {
es.printStackTrace();
logger.error("人员分析 疑似小区住户 异常 " + es.getMessage());
}
}
}
idCards.clear();
usersMap.clear();
suspected.clear();
mapIdCardTmp.clear();
mapIdCardRes.clear();
}
logger.info("goalPersonSuspected 人员分析 疑似小区住户 结束, 时间:" + dateTool.getDateTime(System.currentTimeMillis() / 1000));
}
private Map<String, BaseUserInfo> queryUsers(String villageCode) {
Map<String, BaseUserInfo> map = new HashMap<>();
try {
List<BaseUserInfo> villageUserInfos = queryVillageUserInfos(villageCode);
for (BaseUserInfo userInfo : villageUserInfos) {
String idCard = userInfo.getIdCard();
if (StringUtils.isBlank(idCard)) {
continue;
}
if (!map.containsKey(userInfo.getIdCard())) {
map.put(userInfo.getIdCard(), userInfo);
}
}
} catch (Exception e) {
return map;
}
return map;
}
/**
*
*/
private List<BaseUserInfo> queryVillageUserInfos(String villageCode) {
BaseUserInfo villageUserInfo = new BaseUserInfo();
villageUserInfo.setPlaceCode(villageCode);
List<BaseUserInfo> villageUserInfos = baseUserInfoService.lambdaQuery()
.isNotNull(BaseUserInfo::getIdCard)
.eq(BaseUserInfo::getPlaceCode,villageCode).list();
if (CollectionUtils.isEmpty(villageUserInfos)) {
return new ArrayList<>();
}
return villageUserInfos;
}
/**
*
*/
private ModelSuspectedUserInfo getSuspectUserInfo(List<BaseUserInfo> villageUserRecords) {
List<String> list = new ArrayList<>();
if (null != villageUserRecords && villageUserRecords.size() > 0) {
BaseUserInfo villageUserRecord = villageUserRecords.get(0);
logger.info("getSuspectUserInfo=" + JSONObject.toJSONString(villageUserRecord));
ModelSuspectedUserInfo modelSuspectedUserInfo = new ModelSuspectedUserInfo();
modelSuspectedUserInfo.setPlaceCode(villageUserRecord.getPlaceCode());
modelSuspectedUserInfo.setPlaceName(villageUserRecord.getPlaceName());
modelSuspectedUserInfo.setUserName(villageUserRecord.getUserName());
if (StringUtils.isNotBlank(villageUserRecord.getUserStandardPic())) {
modelSuspectedUserInfo.setUserPic(villageUserRecord.getUserStandardPic());
}
// if (StringUtils.isBlank(modelSuspectedUserInfo.getUserPic())) {
// modelSuspectedUserInfo.setUserPic(villageUserRecord.getPersonPic());
// }
modelSuspectedUserInfo.setIdCard(villageUserRecord.getIdCard());
// modelSuspectedUserInfo.setIdentityType(villageUserRecord.getIdentityType());
modelSuspectedUserInfo.setAppearTimes(villageUserRecords.size());
// for (BaseUserInfo userRecord : villageUserRecords) {
// String ymd = dateTool.getDayStr(userRecord.getPassTime());
// if (StringUtils.isBlank(ymd) || list.contains(ymd)) {
// continue;
// }
// list.add(ymd);
// }
modelSuspectedUserInfo.setAppearDays(list.size());
return modelSuspectedUserInfo;
}
return null;
}
}

@ -16,11 +16,10 @@ import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -37,43 +36,48 @@ public class UserAndVehicleRecordTask {
private final DevopsDeviceInfoService devopsDeviceInfoService;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String maxTime = "2024-03-01 00:00:00";
String maxTime = "2024-03-02 00:00:00";
@Scheduled(initialDelay = 100, fixedDelay = 3000)
public void setTransitUserRecordService() {
if (!"true".equals(ConfigParam.UserAndVehicleSwitch)) {
return;
}
try {
dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
// 获取最新的 partitionField 时间
LambdaQueryWrapper<TransitUserRecord> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.orderByDesc(TransitUserRecord::getPartitionField);
queryWrapper.last("LIMIT 1");
TransitUserRecord one = transitUserRecordService.getOne(queryWrapper);
if (one != null) {
Date partitionField = one.getPartitionField();
TransitUserRecord latestRecord = transitUserRecordService.getOne(queryWrapper);
if (latestRecord != null) {
Date partitionField = latestRecord.getPartitionField();
maxTime = dateFormat.format(partitionField);
}else {
maxTime = "2024-03-02 00:00:00";
}
List<DevopsDeviceInfo> list = devopsDeviceInfoService.lambdaQuery().eq(DevopsDeviceInfo::getDeviceType, 1).list();
ArrayList<String> arrayList = new ArrayList<>();
for (DevopsDeviceInfo devopsDeviceInfo : list) {
arrayList.add(devopsDeviceInfo.getGbsChannelNo());
}
Integer count = tStrhEntityInfoKsService.lambdaQuery()
.in(TStrhEntityInfoKs::getCameraidx, arrayList)
.gt(TStrhEntityInfoKs::getCapturetime, maxTime).count();
if (count > 0) {
int num = count / 1000;
Page<TStrhEntityInfoKs> page = new Page<>( 1, 1000);
for (int i = 0; i <= num; i++) {
page.setCurrent(i + 1);
QueryWrapper<TStrhEntityInfoKs> wrapper = new QueryWrapper<>();
wrapper.in("cameraidx", arrayList);
wrapper.gt("capturetime", maxTime);
List<TStrhEntityInfoKs> records = tStrhEntityInfoKsService.page(page, wrapper).getRecords();
// 获取设备信息列表
List<DevopsDeviceInfo> devopsDeviceInfoList = devopsDeviceInfoService.lambdaQuery()
.eq(DevopsDeviceInfo::getDeviceType, 1)
.list();
List<String> cameraIdxList = devopsDeviceInfoList.stream()
.map(DevopsDeviceInfo::getGbsChannelNo)
.collect(Collectors.toList());
// 分页查询记录
int pageSize = 1000;
int pageNum = 1;
int totalCount = tStrhEntityInfoKsService.lambdaQuery()
.in(TStrhEntityInfoKs::getCameraidx, cameraIdxList)
.gt(TStrhEntityInfoKs::getCapturetime, maxTime)
.count();
if (totalCount > 0) {
int numPages = (int) Math.ceil((double) totalCount / pageSize);
for (int i = 0; i <= numPages; i++) {
Page<TStrhEntityInfoKs> page = new Page<>(pageNum++, pageSize);
QueryWrapper<TStrhEntityInfoKs> queryWrapperForPage = new QueryWrapper<>();
queryWrapperForPage.in("cameraidx", cameraIdxList);
queryWrapperForPage.gt("capturetime", maxTime);
List<TStrhEntityInfoKs> records = tStrhEntityInfoKsService.page(page, queryWrapperForPage).getRecords();
for (TStrhEntityInfoKs tStrhEntityInfoKs : records) {
TransitUserRecord transitUserRecord = new TransitUserRecord();
DevopsDeviceInfo devopsDeviceInfo = devopsDeviceInfoService.lambdaQuery().eq(DevopsDeviceInfo::getGbsChannelNo, tStrhEntityInfoKs.getCameraidx()).one();
@ -88,10 +92,22 @@ public class UserAndVehicleRecordTask {
transitUserRecord.setUserStandardPic(tStrhEntityInfoKs.getStoragepath());
transitUserRecord.setUserName(tStrhEntityInfoKs.getName());
transitUserRecord.setIdCard(tStrhEntityInfoKs.getIdentityid());
if (tStrhEntityInfoKs.getCapturetime() != null) {
transitUserRecord.setPassTime(dateFormat.parse(tStrhEntityInfoKs.getCapturetime()).getTime() / 1000);
transitUserRecord.setPartitionField(dateFormat.parse(tStrhEntityInfoKs.getCapturetime()));
// 解析passtime字符串为Date对象
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 假设passtime的格式是这种
dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); // 假设passtime是以UTC存储的
Date passtimeDate;
try {
passtimeDate = dateFormat.parse(tStrhEntityInfoKs.getCapturetime());
} catch (ParseException e) {
e.printStackTrace();
continue;
}
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("Asia/Shanghai"));
calendar.setTime(passtimeDate);
calendar.add(Calendar.HOUR_OF_DAY, 8);
Date adjustedDate = calendar.getTime();
transitUserRecord.setPassTime(adjustedDate.getTime() / 1000);
transitUserRecord.setPartitionField(adjustedDate);
TransitUserRecord one1 = transitUserRecordService.lambdaQuery().eq(TransitUserRecord::getPersonPic, tStrhEntityInfoKs.getSmalimage()).one();
if (one1 == null) {
boolean save = transitUserRecordService.save(transitUserRecord);

@ -1,11 +1,13 @@
package com.ssf.mysqloracletest.task;
import cn.hutool.db.sql.Query;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ssf.mysqloracletest.domain.*;
import com.ssf.mysqloracletest.domain.BoneVehicle;
import com.ssf.mysqloracletest.domain.DevopsDeviceInfo;
import com.ssf.mysqloracletest.domain.TMotorvehicle;
import com.ssf.mysqloracletest.domain.TransitVehicleRecord;
import com.ssf.mysqloracletest.service.BoneVehicleService;
import com.ssf.mysqloracletest.service.DevopsDeviceInfoService;
import com.ssf.mysqloracletest.service.TMotorvehicleService;
@ -13,7 +15,6 @@ import com.ssf.mysqloracletest.service.TransitVehicleRecordService;
import com.ssf.mysqloracletest.utils.ConfigParam;
import com.ssf.mysqloracletest.utils.StringKit;
import lombok.RequiredArgsConstructor;
import oracle.sql.TRANSDUMP;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
@ -35,11 +36,9 @@ public class VehicleRecordTask {
private final BoneVehicleService boneVehicleService;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String maxTime = "20240301000000";
String maxTimeStr = "20240301000000";
@Scheduled(initialDelay = 100, fixedDelay = 3000)
public void setVehicleRecordTask() {
if (!"true".equals(ConfigParam.VehicleSwitch)) {
return;
}
@ -51,7 +50,12 @@ public class VehicleRecordTask {
TransitVehicleRecord one = transitVehicleRecordService.getOne(transitVehicleRecordQueryWrapper);
if (one != null){
Date partitionField = one.getPartitionField();
maxTime = dateFormat.format(partitionField);
Calendar calendar = Calendar.getInstance();
calendar.setTime(partitionField);
calendar.add(Calendar.HOUR_OF_DAY, -8); // 减去八小时
maxTimeStr = dateFormat.format(calendar.getTime());
}else{
maxTimeStr = "20240301000000";
}
List<DevopsDeviceInfo> list = devopsDeviceInfoService.lambdaQuery().eq(DevopsDeviceInfo::getDeviceType, 2).list();
ArrayList<String> arrayList = new ArrayList<>();
@ -60,7 +64,7 @@ public class VehicleRecordTask {
}
Integer count = tMotorvehicleService.lambdaQuery()
.in(TMotorvehicle::getTollgateid, arrayList)
.gt(TMotorvehicle::getPasstime, maxTime).count();
.gt(TMotorvehicle::getPasstime, maxTimeStr).count();
if (count > 0){
int num = count/1000;
Page<TMotorvehicle> page = new Page<>(1,1000);
@ -68,7 +72,7 @@ public class VehicleRecordTask {
page.setCurrent(i + 1);
QueryWrapper<TMotorvehicle> wrapper = new QueryWrapper<>();
wrapper.in("tollgateid",arrayList);
wrapper.gt("passtime",maxTime);
wrapper.gt("passtime",maxTimeStr);
List<TMotorvehicle> records = tMotorvehicleService.page(page,wrapper).getRecords();
for (TMotorvehicle tMotorvehicle : records){
TransitVehicleRecord transitVehicleRecord = new TransitVehicleRecord();
@ -87,22 +91,21 @@ public class VehicleRecordTask {
transitVehicleRecord.setGlobalPic(tMotorvehicle.getStorageurl1());
transitVehicleRecord.setPlatePic(tMotorvehicle.getStorageurl2());
transitVehicleRecord.setDoorwayCode(tMotorvehicle.getTollgateid());
// 解析passtime字符串为Date对象
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); // 假设passtime的格式是这种
dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); // 假设passtime是以UTC存储的
Date passtimeDate;
//解析passtime字符串为Date对象
//SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); // 假设passtime的格式是这种
//dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); // 假设passtime是以UTC存储的
try {
passtimeDate = dateFormat.parse(tMotorvehicle.getPasstime());
Date passtimeDate = dateFormat.parse(tMotorvehicle.getPasstime());
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("Asia/Shanghai"));
calendar.setTime(passtimeDate);
calendar.add(Calendar.HOUR_OF_DAY, 8);
Date adjustedDate = calendar.getTime();
transitVehicleRecord.setPassTime(adjustedDate.getTime() / 1000);
transitVehicleRecord.setPartitionField(adjustedDate);
} catch (ParseException e) {
e.printStackTrace();
// 处理异常,记录日志或采取其他措施
continue;
}
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("Asia/Shanghai"));
calendar.setTime(passtimeDate);
calendar.add(Calendar.HOUR_OF_DAY, 8);
Date adjustedDate = calendar.getTime();
transitVehicleRecord.setPassTime(adjustedDate.getTime() / 1000);
transitVehicleRecord.setPartitionField(adjustedDate);
TransitVehicleRecord vehicleRecord = transitVehicleRecordService.lambdaQuery().eq(TransitVehicleRecord::getGlobalPic, tMotorvehicle.getStorageurl1()).one();
if (vehicleRecord == null){
boolean save = transitVehicleRecordService.save(transitVehicleRecord);

@ -42,7 +42,7 @@
</resultMap>
<sql id="Base_Column_List">
id,place_code,place_name,
SELECT id,place_code,place_name,
grid_code,grid_name,building_code,
building_name,unit_code,unit_name,
home_code,home_name,user_name,
@ -53,7 +53,15 @@
caring_label,is_householder,householder_relation,
user_home_rel,actual_population_flag,create_time,
create_by,update_time,update_by,
is_active
is_active FROM base_user_info
</sql>
<select id="queryUserRecordsByIdCard" parameterType="com.ssf.mysqloracletest.domain.BaseUserInfo"
resultMap="BaseResultMap">
<include refid="Base_Column_List"/>
where idcard=#{idcard} and village_code=#{villageCode} and partition_field between #{startTime} and
#{endTime}
order by pass_time desc
</select>
</mapper>

@ -40,12 +40,12 @@
<select id="queryUserRecordsByCountHz" parameterType="java.util.Map" resultType="java.lang.String"
flushCache="true"
useCache="false">
select idcard from (select idcard,count(1) as num from village_user_record where village_code=#{villageCode} and partition_field between #{startTime} and #{endTime} group by idcard)r where r.num>#{appearTimes}
select idcard from (select idcard,count(1) as num from transit_user_record where place_code=#{placeCode} and partition_field between #{startTime} and #{endTime} group by idcard)r where r.num>#{appearTimes}
</select>
<!--查询满足天数要求 idCard-->
<select id="queryUserRecordsByDayHz" parameterType="java.util.Map" resultType="java.lang.String"
flushCache="true"
useCache="false">
select m.idcard as idcard from (select idcard,FROM_UNIXTIME(pass_time,'%Y%m%d') as passDate from village_user_record where village_code=#{villageCode} and partition_field between #{startTime} and #{endTime} group by idcard,passDate)m group by m.idcard having count(distinct m.passDate)>#{appearDays}
select m.idcard as idcard from (select idcard,FROM_UNIXTIME(pass_time,'%Y%m%d') as passDate from transit_user_record where place_code=#{placeCode} and partition_field between #{startTime} and #{endTime} group by idcard,passDate)m group by m.idcard having count(distinct m.passDate)>#{appearDays}
</select>
</mapper>

@ -0,0 +1,24 @@
<?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.ssf.mysqloracletest.mapper.ModelSuspectedUserInfoJudgementMapper">
<resultMap id="BaseResultMap" type="com.ssf.mysqloracletest.domain.ModelSuspectedUserInfoJudgement">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="villageCode" column="village_code" jdbcType="VARCHAR"/>
<result property="villageName" column="village_name" jdbcType="VARCHAR"/>
<result property="userName" column="user_name" jdbcType="VARCHAR"/>
<result property="dossierCode" column="dossier_code" jdbcType="VARCHAR"/>
<result property="idcard" column="idcard" jdbcType="VARCHAR"/>
<result property="judgementUser" column="judgement_user" jdbcType="VARCHAR"/>
<result property="judgementStatus" column="judgement_status" jdbcType="TINYINT"/>
<result property="judgementTime" column="judgement_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,village_code,village_name,
user_name,dossier_code,idcard,
judgement_user,judgement_status,judgement_time
</sql>
</mapper>

@ -0,0 +1,118 @@
<?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.ssf.mysqloracletest.mapper.ModelSuspectedUserInfoMapper">
<resultMap id="BaseResultMap" type="com.ssf.mysqloracletest.domain.ModelSuspectedUserInfo">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="placeCode" column="place_code" jdbcType="VARCHAR"/>
<result property="placeName" column="place_name" jdbcType="VARCHAR"/>
<result property="dossierCode" column="dossier_code" jdbcType="VARCHAR"/>
<result property="userName" column="user_name" jdbcType="VARCHAR"/>
<result property="userPic" column="user_pic" jdbcType="VARCHAR"/>
<result property="idCard" column="id_card" jdbcType="VARCHAR"/>
<result property="userPhone" column="user_phone" jdbcType="VARCHAR"/>
<result property="appearTimes" column="appear_times" jdbcType="INTEGER"/>
<result property="appearDays" column="appear_days" jdbcType="INTEGER"/>
<result property="taskStartTime" column="task_start_time" jdbcType="VARCHAR"/>
<result property="taskEndTime" column="task_end_time" jdbcType="VARCHAR"/>
<result property="taskDay" column="task_day" jdbcType="VARCHAR"/>
<result property="taskAppearTimes" column="task_appear_times" jdbcType="VARCHAR"/>
<result property="taskAppearDays" column="task_appear_days" jdbcType="VARCHAR"/>
<result property="isEntity" column="is_entity" jdbcType="TINYINT"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="createBy" column="create_by" jdbcType="INTEGER"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="updateBy" column="update_by" jdbcType="INTEGER"/>
<result property="isActive" column="is_active" jdbcType="TINYINT"/>
</resultMap>
<sql id="Base_Column_List">
select id,place_code,place_name,
dossier_code,user_name,user_pic,
id_card,user_phone,appear_times,
appear_days,task_start_time,task_end_time,
task_day,task_appear_times,task_appear_days,
is_entity,create_time,create_by,
update_time,update_by,is_active from model_suspected_user_info
</sql>
<update id="cleanModelSuspectedUserInfo">
delete from model_suspected_user_info
</update>
<!--通过小区编号,档案号判断住户是否已经推送过-->
<select id="queryModelSuspectedUserInfoExists" parameterType="com.ssf.mysqloracletest.domain.ModelSuspectedUserInfo"
resultMap="BaseResultMap">
<include refid="Base_Column_List"/>
<where>
<if test="placeCode != null and placeCode != ''">and place_code = #{laceCode}</if>
<if test="idcard != null and idcard != ''">and idcard = #{idcard}</if>
<if test="dossierCode != null and dossierCode != ''">and dossier_code = #{dossierCode}</if>
</where>
</select>
<insert id="addModelSuspectedUserInfo" parameterType="com.ssf.mysqloracletest.domain.ModelSuspectedUserInfo"
useGeneratedKeys="true" keyProperty="id">
insert into model_suspected_user_info
(place_code,
place_name,
user_name,
user_pic,
id_card,
appear_times,
appear_days,
task_start_time,
task_end_time,
task_day,
task_appear_times,
task_appear_days,
is_entity,
dossier_code
)
values
(#{villageCode},
#{villageName},
#{userName},
#{userPic},
#{identityType},
#{idCard},
#{appearTimes},
#{appearDays},
#{taskStartTime},
#{taskEndTime},
#{taskDay},
#{taskAppearTimes},
#{taskAppearDays},
#{isEntity},
#{dossierCode})
</insert>
<update id="updateModelSuspectedUserInfo" parameterType="com.ssf.mysqloracletest.domain.ModelSuspectedUserInfo">
update model_suspected_user_info
<trim prefix="SET" suffixOverrides=",">
<if test="placeCode != null">place_code = #{placeCode},</if>
<if test="placeName != null">place_name = #{placeName},</if>
<if test="userName != null">user_name = #{userName},</if>
<if test="userPic != null">user_pic = #{userPic},</if>
<if test="identityType != null">identity_type = #{identityType},</if>
<if test="idcard != null">id_card = #{idCard},</if>
<if test="dossierCode != null">dossier_code = #{dossierCode},</if>
<if test="appearTimes != null">appear_times = #{appearTimes},</if>
<if test="appearDays != null">appear_days = #{appearDays},</if>
<if test="taskStartTime != null">task_start_time = #{taskStartTime},</if>
<if test="taskEndTime != null">task_end_time = #{taskEndTime},</if>
<if test="taskDay != null">task_day = #{taskDay},</if>
<if test="taskAppearTimes != null">task_appear_times = #{taskAppearTimes},</if>
<if test="taskAppearDays != null">task_appear_days = #{taskAppearDays},</if>
<if test="isEntity != null and isEntity != ''">is_entity = #{isEntity},</if>
<if test="createby != null">createby = #{createby},</if>
<if test="updatetime != null">updatetime = #{updatetime},</if>
<if test="updateby != null">updateby = #{updateby},</if>
<if test="isactive != null">isactive = #{isactive},</if>
</trim>
where id = #{id}
</update>
</mapper>

@ -0,0 +1,192 @@
<?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.ssf.mysqloracletest.mapper.PoliceBacklogMapper">
<select id="queryModelSuspectedUserInfoJudgementExists"
parameterType="com.ssf.mysqloracletest.domain.ModelSuspectedUserInfoJudgement"
resultType="com.ssf.mysqloracletest.domain.ModelSuspectedUserInfoJudgement">
select id,
village_code as villageCode,
village_name as villageName,
idcard,
user_name as userName,
dossier_code as dossierCode,
judgement_user as judgementUser,
judgement_status as judgementStatus,
judgement_time as judgementTime
from model_suspected_user_info_judgement
<where>
<if test="villageCode != null and villageCode != ''">and village_code = #{villageCode}</if>
<if test="idcard != null and idcard != ''">and idcard = #{idcard}</if>
<if test="dossierCode != null and dossierCode != ''">and dossier_code = #{dossierCode}</if>
</where>
</select>
<!-- <select id="selectSuspectedUsers" parameterType="com.ruoyi.analysis.face.domain.ModelSuspectedUserInfo"-->
<!-- resultType="com.ruoyi.analysis.face.domain.ModelSuspectedUserInfo">-->
<!-- select m.id,-->
<!-- m.village_code as villageCode,-->
<!-- m.village_name as villageName,-->
<!-- m.user_name as userName,-->
<!-- m.user_pic as userPic,-->
<!-- m.identity_type as identityType,-->
<!-- m.idcard,-->
<!-- m.dossier_code as dossierCode,-->
<!-- m.appear_times as appearTimes,-->
<!-- m.appear_days as appearDays,-->
<!-- m.task_start_time as taskStartTime,-->
<!-- m.task_end_time as taskEndTime,-->
<!-- m.task_day as taskDay,-->
<!-- m.task_appear_times as taskAppearTimes,-->
<!-- m.task_appear_days as taskAppearDays,-->
<!-- m.is_entity as isEntity,-->
<!-- m.createby as createby,-->
<!-- m.updatetime as updatetime,-->
<!-- m.updateby as updateby,-->
<!-- m.isactive as isactive,-->
<!-- n.judgement_user as judgementUser,-->
<!-- n.judgement_status as judgementStatus,-->
<!-- n.judgement_time as judgementTime-->
<!-- from model_suspected_user_info m-->
<!-- left join model_suspected_user_info_judgement n on m.village_code=n.village_code and m.dossier_code =-->
<!-- n.dossier_code-->
<!-- <where>-->
<!-- and m.isactive = '1'-->
<!-- and m.c1 = '2'-->
<!-- <if test="villageCode != null and villageCode != ''">and m.village_code = #{villageCode}</if>-->
<!-- <if test="villageName != null and villageName != ''">and m.village_name = #{villageName}</if>-->
<!-- <if test="userName != null and userName != ''">and m.user_name like concat('%', #{userName}, '%')</if>-->
<!-- <if test="idcard != null and idcard != ''">and m.idcard = #{idcard}</if>-->
<!-- <if test="dossierCode != null and dossierCode != ''">and m.dossier_code = #{dossierCode}</if>-->
<!-- <if test="isEntity != null and isEntity != '' ">and m.is_entity = #{isEntity}</if>-->
<!-- <if test="judgementStatus != null and judgementStatus != '' ">and n.judgement_status = #{judgementStatus}-->
<!-- </if>-->
<!-- </where>-->
<!-- order by n.judgement_time asc-->
<!-- </select>-->
<!-- <delete id="deleteVillageUserInfoJudgement">-->
<!-- delete from model_suspected_user_info_judgement where village_code = #{villageCode} and dossier_code = #{dossierCode}-->
<!-- </delete>-->
<!-- <insert id="insertVillageUserInfoJudgement"-->
<!-- parameterType="com.ruoyi.police.workbench.backlog.domain.ModelSuspectedUserInfoJudgement"-->
<!-- useGeneratedKeys="true"-->
<!-- keyProperty="id">-->
<!-- insert into model_suspected_user_info_judgement(`village_code`,`village_name`,`idcard`,`user_name`,`dossier_code`,`judgement_user`,`judgement_status`,`judgement_time`)-->
<!-- values(#{villageCode},#{villageName},#{idcard},#{userName},#{dossierCode},#{judgementUser},#{judgementStatus},#{judgementTime})-->
<!-- </insert>-->
<!-- <select id="selectSuspectedUsersJudgement"-->
<!-- parameterType="com.ruoyi.police.workbench.backlog.domain.ModelSuspectedUserInfoJudgement"-->
<!-- resultType="com.ruoyi.police.workbench.backlog.domain.ModelSuspectedUserInfoJudgement">-->
<!-- select id,-->
<!-- village_code as villageCode,-->
<!-- village_name as villageName,-->
<!-- idcard,-->
<!-- user_name as userName,-->
<!-- dossier_code as dossierCode,-->
<!-- judgement_user as judgementUser,-->
<!-- judgement_status as judgementStatus,-->
<!-- judgement_time as judgementTime-->
<!-- from model_suspected_user_info_judgement where village_code=#{villageCode} and dossier_code=#{dossierCode}-->
<!-- </select>-->
<!-- <select id="selectSuspectedVehicles"-->
<!-- parameterType="com.ruoyi.analysis.vehicle.domain.ModelSuspectedVehicleInfo"-->
<!-- resultType="com.ruoyi.analysis.vehicle.domain.ModelSuspectedVehicleInfo">-->
<!-- select m.id,-->
<!-- m.village_code as villageCode,-->
<!-- m.village_name as villageName,-->
<!-- m.vehicle_pic as vehiclePic,-->
<!-- m.plate_no as plateNo,-->
<!-- m.owner_name as ownerName,-->
<!-- m.identity_type as identityType,-->
<!-- m.idcard,-->
<!-- m.phone,-->
<!-- m.appear_times as appearTimes,-->
<!-- m.appear_days as appearDays,-->
<!-- m.task_start_time as taskStartTime,-->
<!-- m.task_end_time as taskEndTime,-->
<!-- m.task_day as taskDay,-->
<!-- m.task_appear_times as taskAppearTimes,-->
<!-- m.task_appear_days as taskAppearDays,-->
<!-- m.createby as createby,-->
<!-- m.updatetime as updatetime,-->
<!-- m.updateby as updateby,-->
<!-- m.isactive as isactive,-->
<!-- n.judgement_user as judgementUser,-->
<!-- n.judgement_status as judgementStatus,-->
<!-- n.judgement_time as judgementTime-->
<!-- from model_suspected_vehicle_info m-->
<!-- left join model_suspected_vehicle_info_judgement n on m.village_code=n.village_code and m.plate_no = n.plate_no-->
<!-- <where>-->
<!-- and m.isactive = '1'-->
<!-- <if test="villageCode != null and villageCode != ''">and m.village_code = #{villageCode}</if>-->
<!-- <if test="villageName != null and villageName != ''">and m.village_name like concat('%', #{villageName},-->
<!-- '%')-->
<!-- </if>-->
<!-- <if test="updatetime != null and updatetime != ''">and m.updatetime = #{updatetime}</if>-->
<!-- </where>-->
<!-- </select>-->
<!-- <delete id="deleteVillageVehicleInfoJudgement">-->
<!-- delete from model_suspected_vehicle_info_judgement where village_code = #{villageCode} and plate_no = #{plateNo}-->
<!-- </delete>-->
<!-- <insert id="insertVillageVehicleInfoJudgement"-->
<!-- parameterType="com.ruoyi.police.workbench.backlog.domain.ModelSuspectedVehicleInfoJudgement"-->
<!-- useGeneratedKeys="true"-->
<!-- keyProperty="id">-->
<!-- insert into model_suspected_vehicle_info_judgement(`village_code`,`village_name`,`plate_no`,`judgement_user`,`judgement_status`,`judgement_time`)-->
<!-- values(#{villageCode},#{villageName},#{plateNo},#{judgementUser},#{judgementStatus},#{judgementTime})-->
<!-- </insert>-->
<!-- <select id="selectSuspectedVehiclesJudgement"-->
<!-- parameterType="com.ruoyi.police.workbench.backlog.domain.ModelSuspectedVehicleInfoJudgement"-->
<!-- resultType="com.ruoyi.police.workbench.backlog.domain.ModelSuspectedVehicleInfoJudgement">-->
<!-- select id,-->
<!-- village_code as villageCode,-->
<!-- village_name as villageName,-->
<!-- plate_no as plateNo,-->
<!-- judgement_user as judgementUser,-->
<!-- judgement_status as judgementStatus,-->
<!-- judgement_time as judgementTime-->
<!-- from model_suspected_vehicle_info_judgement where village_code=#{villageCode} and plate_no=#{plateNo}-->
<!-- </select>-->
<!-- <select id="selectSuspectedUserYesJudgement" resultType="Integer">-->
<!-- select count(m.id) from model_suspected_user_info m-->
<!-- inner join model_suspected_user_info_judgement n on m.village_code=n.village_code and m.dossier_code = n.dossier_code-->
<!-- where (n.judgement_status = 2 or n.judgement_status = 3)-->
<!-- </select>-->
<!-- <select id="selectSuspectedUserSumJudgement" resultType="Integer">-->
<!-- select count(id) from model_suspected_user_info-->
<!-- </select>-->
<!-- <select id="selectSuspectedVehicleYesJudgement" resultType="Integer">-->
<!-- select count(m.id) from model_suspected_vehicle_info m-->
<!-- inner join model_suspected_vehicle_info_judgement n on m.village_code=n.village_code and m.plate_no = n.plate_no-->
<!-- where (n.judgement_status = 2 or n.judgement_status = 3)-->
<!-- </select>-->
<!-- <select id="selectSuspectedVehicleSumJudgement" resultType="Integer">-->
<!-- select count(id) from model_suspected_vehicle_info-->
<!-- </select>-->
<!-- <update id="updateIsEntityModelSuspectedUserInfo"-->
<!-- parameterType="com.ruoyi.analysis.face.domain.ModelSuspectedUserInfo">-->
<!-- update model_suspected_user_info set is_entity=1-->
<!-- where village_code = #{villageCode} and dossier_code=#{dossierCode} and isactive=1-->
<!-- </update>-->
<!-- <update id="updateUserIdentity"-->
<!-- parameterType="com.ruoyi.police.workbench.backlog.domain.ModelUserIdentity">-->
<!-- update village_user_identity set identity_id=#{idcard},user_name=#{userName}-->
<!-- where dossier_code=#{dossierCode}-->
<!-- </update>-->
</mapper>
Loading…
Cancel
Save