Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/biutag/supervisiondata/task/TaskService.java
master
sjh 1 year ago
parent
commit
0c9d3c8eea
  1. 65
      src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
  2. 10
      src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java
  3. 4
      src/main/java/com/biutag/supervisiondata/mapper/mine/RiskTestMapper.java
  4. 51
      src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java
  5. 18
      src/main/java/com/biutag/supervisiondata/pojo/database/MuchCall.java
  6. 2
      src/main/java/com/biutag/supervisiondata/pojo/enums/Dispute.java
  7. 2
      src/main/java/com/biutag/supervisiondata/service/RiskModelTaskClueService.java
  8. 1
      src/main/java/com/biutag/supervisiondata/service/RiskPersonalService.java
  9. 3
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseBAServiceImpl.java
  10. 5
      src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java
  11. 72
      src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java
  12. 20
      src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java
  13. 2
      src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java
  14. 106
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java
  15. 20
      src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java
  16. 81
      src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java
  17. 47
      src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java
  18. 29
      src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java
  19. 35
      src/main/java/com/biutag/supervisiondata/task/TaskService.java

65
src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java

@ -98,39 +98,40 @@ public class ApplicationEvent {
public void serviceReady() {
RedisDao.getInstance().init(redisTemplate);
// LocalDateTime start = LocalDateTime.of(2024, 1, 1, 0, 0, 0);
// LocalDateTime end = LocalDateTime.now();
LocalDateTime start = LocalDateTime.of(2024, 1, 1, 0, 0, 0);
LocalDateTime end = LocalDateTime.now();
CompletableFutureUtil.runSync(() -> {
// gBaseJJDService.pullAndSave(start, end);
// gBaseSHRWFRService.pullAndSave(start, end);
// petitionService.personPullAndSave(start, end);
// pointService.personPullAndSave(start, end);
// riskPersonalService.fixed();
// List<RiskPersonal> persons = riskPersonalRepository.list();
// List<RiskModelTaskClue> clues = riskModelTaskClueRepository.list(new LambdaQueryWrapper<RiskModelTaskClue>()
// .eq(RiskModelTaskClue::getDel, 0));
// Map<Integer, List<RiskModelTaskClue>> map = clues.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getModelId));
// TaskParamDomain domain = new TaskParamDomain(persons, map);
// riskTaskService.eduModelTask(domain);
// riskTaskService.infoModelTask(domain);
// riskTaskService.caseModelTask(domain);
// gBaseBAService.baModelTask(domain);
// policeService.contradictModelTask(domain);
// habitService.habitModelTask(domain);
// marriageService.marriageModelTask(domain);
// petitionService.petitionModelTask(domain);
// riskTaskService.riskAreaModelTask(domain);
// riskTaskService.heightFight(domain);
// pointService.syncScore(domain);
// pointService.syncViolence(domain);
// noControlService.syncNoControlData(domain);
// pointService.syncKillSelf(domain);
// pointService.syncDrug(domain);
// pointService.syncControlNoPower(domain);
// riskScoreRuleService.runScore();
// pointService.syncPointCall(domain);
personalService.syncOrg();
gBaseJJDService.pullAndSave(start, end);
gBaseSHRWFRService.pullAndSave(start, end);
petitionService.personPullAndSave(start, end);
pointService.personPullAndSave(start, end);
riskPersonalService.fixed();
List<RiskPersonal> persons = riskPersonalRepository.list();
List<RiskModelTaskClue> clues = riskModelTaskClueRepository.list(new LambdaQueryWrapper<RiskModelTaskClue>()
.eq(RiskModelTaskClue::getDel, 0));
Map<Integer, List<RiskModelTaskClue>> map = clues.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getModelId));
TaskParamDomain domain = new TaskParamDomain(persons, map);
petitionService.petitionModelTask(domain);
riskTaskService.heightFight(domain);
riskTaskService.eduModelTask(domain);
riskTaskService.infoModelTask(domain);
riskTaskService.caseModelTask(domain);
gBaseBAService.baModelTask(domain);
policeService.contradictModelTask(domain);
habitService.habitModelTask(domain);
marriageService.marriageModelTask(domain);
riskTaskService.riskAreaModelTask(domain);
pointService.syncScore(domain);
pointService.syncViolence(domain);
noControlService.syncNoControlData(domain);
pointService.syncKillSelf(domain);
pointService.syncDrug(domain);
// riskPersonalService.fixed2();
pointService.syncControlNoPower(domain);
pointService.syncPointCall(domain);
// personalService.syncOrg();
});
}

10
src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java

@ -1,6 +1,7 @@
package com.biutag.supervisiondata.mapper.dwd;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervisiondata.pojo.database.MuchCall;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -21,7 +22,10 @@ public interface GBaseJJDMapper extends BaseMapper<GBaseJJD> {
List<GBaseJJD> selectDataToRisk(@Param("startTime")String startTime, @Param("endTime")String endTime);
@Select(" select bjrlxdh, bjdh, jqxzdm, bjrzjhm from dwd_asj_zhtx_jjd " +
" where bjsj >= '2024-01-01 00:00:00'")
List<GBaseJJD> selectPointCall();
@Select(" select bjdh, " +
" sum(IF(SUBSTR(jqxzdm, 1, 1) != '9',1,0)) as normal, " +
" sum(IF(SUBSTR(jqxzdm, 1, 1) = '9',1,0)) as unNormal " +
" from dwd_asj_zhtx_jjd where bjsj >= '2024-01-01 00:00:00' and bjdh is not null " +
" group by bjdh HAVING sum(IF(SUBSTR(jqxzdm, 1, 1) != '9',1,0)) > 5 or sum(IF(SUBSTR(jqxzdm, 1, 1) = '9',1,0)) > 100")
List<MuchCall> selectPointCall();
}

4
src/main/java/com/biutag/supervisiondata/mapper/mine/RiskTestMapper.java

@ -2,6 +2,7 @@ package com.biutag.supervisiondata.mapper.mine;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervisiondata.pojo.entity.mine.RiskTest;
import org.apache.ibatis.annotations.Update;
/**
* @author kami on 2024-11-13 16:17:36
@ -9,4 +10,7 @@ import com.biutag.supervisiondata.pojo.entity.mine.RiskTest;
* @since 1.8
*/
public interface RiskTestMapper extends BaseMapper<RiskTest> {
@Update("truncate table risk_test")
int truncateTable();
}

51
src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java

@ -18,19 +18,19 @@ public class Default {
public static final String BIG_TAG_SHWFR = "涉违法犯罪人员";
public static final String PETITION_CASE_TAG = "案件核查";
public static final String PETITION_CASE_TAG = "信访、投诉-案件核查";
public static final String PETITION_12337_TAG = "12337";
public static final String PETITION_12337_TAG = "信访、投诉-12337";
public static final String PETITION_TAG = "信访投诉";
public static final String PETITION_TAG = "信访、投诉-其他信访投诉";
public static final String BIG_TAG_PETITION = "涉投诉举报信访人员";
public static final String BA_TAG = "从事特种职业-保安";
public static final String BA_TAG = "保安";
public static final String BIG_TAG_TRUBO = "涉矛盾纠纷";
public static final String DRUG_TAG = "涉药";
public static final String FIGHT_BORN = "成长地区暴力警情高于平均水平";
public static final String BIG_TAG_TRUBO = "涉矛盾纠纷";
public static final String FIGHT_MUCH = "多次矛盾纠纷";
@ -40,4 +40,43 @@ public class Default {
public static final String CALL_REDIS = "call:point";
public static final String BASIC = "基础信息";
public static final String MUCH_CALL = "重点人员报警异常";
// ***********因素*************
public static final String AGE_IG = "年龄因素";
public static final String GENDER_IG = "性别因素";
public static final String EDU_IG = "学历因素";
public static final String WFR_IG = "犯罪前科因素";
public static final String IMPORT_IG = "特种职业因素";
public static final String TRUBO_IG = "涉矛盾纠纷因素";
public static final String HABBIT_IG = "不良嗜好因素";
public static final String FIGHT_IG = "民风习俗因素";
public static final String POINT_IG = "重点对象因素";
public static final String VIOLENCE_IG ="暴力伤害行为因素";
public static final String CONTROLLER_IG ="重点对象日常管控不到位因素";
public static final String CONTROLLER2_IG ="风险人员排查不到位因素";
public static final String KILL_IG = "个人极端因素";
public static final String MAIL_IG = "诉求不满或长期未化解因素";
public static final String FIGHT_MUCH_IG = "高频矛盾纠纷因素";
public static final String MARRAY_IG = "婚姻因素";
public static final String NO_LOVE_IG = "感情失意因素";
}

18
src/main/java/com/biutag/supervisiondata/pojo/database/MuchCall.java

@ -0,0 +1,18 @@
package com.biutag.supervisiondata.pojo.database;
import lombok.Data;
/**
* @author kami on 2024-11-26 14:40:51
* @version 0.0.1
* @since 1.8
*/
@Data
public class MuchCall {
String mobile;
Integer normal;
Integer unNormal;
}

2
src/main/java/com/biutag/supervisiondata/pojo/enums/Dispute.java

@ -22,7 +22,7 @@ public enum Dispute {
TUDI("土地", "涉土地纠纷"),
MONEY2("劳资", "涉劳资纠纷"),
HOME("家庭暴力", "涉家庭暴力纠纷"),
NEIBER("邻里纠纷", "涉邻里纠纷纠纷");
NEIBER("邻里纠纷", "涉邻里纠纷");
private final String title;

2
src/main/java/com/biutag/supervisiondata/service/RiskModelTaskClueService.java

@ -12,5 +12,5 @@ import java.util.List;
*/
public interface RiskModelTaskClueService {
void saveClues(List<RiskModelTaskClue> list);
void saveClues(List<RiskModelTaskClue> list, String bigTag);
}

1
src/main/java/com/biutag/supervisiondata/service/RiskPersonalService.java

@ -25,4 +25,5 @@ public interface RiskPersonalService {
void saveDistinct(List<RiskPersonal> riskPersonals);
void fixed();
void fixed2();
}

3
src/main/java/com/biutag/supervisiondata/service/impl/GBaseBAServiceImpl.java

@ -66,7 +66,6 @@ public class GBaseBAServiceImpl implements GBaseBAService {
Map<String, List<GBaseBAXX>> map = xxList.stream().collect(Collectors.groupingBy(GBaseBAXX::getSfzhm));
Map<String, RiskPersonal> personMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (oldValue, newValue) -> newValue));
log.info("开干");
for (Map.Entry<String, List<GBaseBAXX>> entry : map.entrySet()) {
GBaseBAXX tmp = entry.getValue().getFirst();
if (tmp.getRyztdm() == null) {
@ -129,7 +128,7 @@ public class GBaseBAServiceImpl implements GBaseBAService {
log.info("数据库操作阶段");
// 新增
if (!toInsert.isEmpty()) {
riskModelTaskClueService.saveClues(toInsert);
riskModelTaskClueService.saveClues(toInsert, Default.IMPORT_IG);
}
// 修改
if (!toUpdate.isEmpty()) {

5
src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java

@ -3,6 +3,7 @@ package com.biutag.supervisiondata.service.impl;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervisiondata.pojo.ClueData;
import com.biutag.supervisiondata.pojo.constants.Default;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseWFRXX;
@ -134,7 +135,7 @@ public class HabitServiceImpl implements HabitService {
.departName(aj.getBadwidmc())
.name(person.getName())
.idCode(person.getIdCode())
.tag(aj.getAjlbmc())
.tag("不良嗜好-"+aj.getAjlbmc())
.personId(person.getId())
.sourceData("结合案件信息和违法人信息相关数据,发现该人员有:"+aj.getAjlbmc()+"类型的案件,案件编号为:"+aj.getAjbh()+",属于存在不良嗜好,增加风险分1分(存在涉赌、涉酒、涉黄不良嗜好的,每项+1分,最高3分)")
.build();
@ -192,7 +193,7 @@ public class HabitServiceImpl implements HabitService {
}
log.info("开始进行数据库操作");
if(!toInsert.isEmpty()) {
riskModelTaskClueService.saveClues(toInsert);
riskModelTaskClueService.saveClues(toInsert, Default.HABBIT_IG);
}
if(!toInsertRecord.isEmpty()) {
controlRecordService.batchInsert(toInsertRecord);

72
src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java

@ -3,6 +3,7 @@ package com.biutag.supervisiondata.service.impl;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervisiondata.pojo.ClueData;
import com.biutag.supervisiondata.pojo.constants.Default;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseHY;
@ -48,7 +49,9 @@ public class MarriageServiceImpl implements MarriageService {
// 婚姻不用管管控
// clue 应该要看结婚状态
RiskTask task = createTask(domain.getPersons().size(), 39);
riskTaskRepository.save(task);
RiskTask task2 = createTask(domain.getPersons().size(), 51);
riskTaskRepository.saveBatch(List.of(task,task2));
List<GBaseHY> hyList = new ArrayList<>();
log.info("开始查询结婚数据:{}", domain.getIdCards().size());
int count = 0;
@ -81,11 +84,19 @@ public class MarriageServiceImpl implements MarriageService {
log.info("男性数据:{}", manMap.size());
log.info("女性数据:{}", femanMap.size());
// 旧线索
List<RiskModelTaskClue> oldClues = Optional.ofNullable(domain.getMap().get(39)).orElse(new ArrayList<>());
List<RiskModelTaskClue> oldClues = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>());
Map<String, RiskModelTaskClue> oldClueMap = oldClues.stream().collect(Collectors.toMap(RiskModelTaskClue::getIdCode, Function.identity(), (oldValue, newValue) -> newValue));
// 旧线索
List<RiskModelTaskClue> oldClues2 = Optional.ofNullable(domain.getMap().get(task2.getModelId())).orElse(new ArrayList<>());
Map<String, RiskModelTaskClue> oldClueMap2 = oldClues2.stream().collect(Collectors.toMap(RiskModelTaskClue::getIdCode, Function.identity(), (oldValue, newValue) -> newValue));
// 遍历了
List<ClueData> toInsertData = new ArrayList<>();
List<RiskModelTaskClue> toUpdateData = new ArrayList<>();
List<ClueData> toInsertData2 = new ArrayList<>();
List<RiskModelTaskClue> toUpdateData2 = new ArrayList<>();
long targetTime = System.currentTimeMillis() - 31536000000l;
for (RiskPersonal person : domain.getPersons()) {
List<GBaseHY> tmpList = manMap.get(person.getIdCode());
if(tmpList == null) {
@ -116,8 +127,12 @@ public class MarriageServiceImpl implements MarriageService {
}
if(last.getYwlxdmdm().toUpperCase().contains("IB") || last.getYwlxdmdm().toUpperCase().contains("ICB")) {
// 离婚 如果旧数据不存在就要新增
if(last.getDjrq().getTime() > targetTime) {
// 近365天的离婚
RiskModelTaskClue clue = oldClueMap.get(person.getIdCode());
if(clue == null) {
if(clue != null) {
continue;
}
ClueData data = ClueData.builder()
.personId(person.getId())
.tag(last.getYwlxdmmc())
@ -128,32 +143,75 @@ public class MarriageServiceImpl implements MarriageService {
.build();
data.setEventTime(last.getDjrq().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
toInsertData.add(data);
} else {
// 365天之前的离婚,进基础因素
RiskModelTaskClue clue = oldClueMap2.get(person.getIdCode());
if(clue != null) {
continue;
}
ClueData data = ClueData.builder()
.personId(person.getId())
.tag(last.getYwlxdmmc())
.id(last.getXlzjdjzh())
.idCode(person.getIdCode())
.name(person.getName())
.sourceData("根据该人员最新的婚姻登记信息,发现该人员登记为离婚,存在感情失意的可能,增加风险分3分")
.build();
data.setEventTime(last.getDjrq().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
toInsertData2.add(data);
}
} else if(last.getYwlxdmdm().toUpperCase().contains("IA") || last.getYwlxdmdm().toUpperCase().contains("ICA")) {
// 结婚 如果旧数据存在就要修改为0
// 近365天的离婚
if(last.getDjrq().getTime() > targetTime) {
RiskModelTaskClue clue = oldClueMap.get(person.getIdCode());
if(clue != null) {
if(clue == null) {
continue;
}
RiskModelTaskClue update = new RiskModelTaskClue();
update.setId(clue.getId());
update.setDel(1);
toUpdateData.add(update);
} else {
RiskModelTaskClue clue = oldClueMap2.get(person.getIdCode());
if(clue == null) {
continue;
}
RiskModelTaskClue update = new RiskModelTaskClue();
update.setId(clue.getId());
update.setDel(1);
toUpdateData2.add(update);
}
}
}
List<RiskModelTaskClue> toInsert = new ArrayList<>();
log.info("插入数据条数: {}", toInsertData.size());
List<RiskModelTaskClue> toInsert2 = new ArrayList<>();
log.info("插入数据条数: {} | {}", toInsertData.size(), toInsertData2.size());
for (ClueData toInsertDatum : toInsertData) {
toInsert.add(createClue(task.getModelId(), 3, task.getId(), toInsertDatum));
}
for (ClueData toInsertDatum : toInsertData2) {
toInsert2.add(createClue(task2.getModelId(), 1, task2.getId(), toInsertDatum));
}
if(!toInsertData.isEmpty()) {
riskModelTaskClueService.saveClues(toInsert);
if(!toInsert.isEmpty()) {
riskModelTaskClueService.saveClues(toInsert, Default.NO_LOVE_IG);
}
if(!toInsert2.isEmpty()) {
riskModelTaskClueService.saveClues(toInsert2, Default.MARRAY_IG);
}
if(!toUpdateData.isEmpty()) {
log.info("修改线索 | {}", toUpdateData.size());
clueRepository.updateBatchById(toUpdateData);
}
if(!toUpdateData2.isEmpty()) {
log.info("修改线索2 | {}", toUpdateData2.size());
clueRepository.updateBatchById(toUpdateData2);
}
RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId());
updateTask.setInsertSize(toInsert.size());

20
src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java

@ -52,7 +52,7 @@ public class NoControlServiceImpl implements NoControlService {
// clue 应该要看结婚状态
RiskTask task = createTask(domain.getPersons().size(), 45);
riskTaskRepository.save(task);
RiskTask task2 = createTask(domain.getPersons().size(), 47);
RiskTask task2 = createTask(domain.getPersons().size(), 49);
riskTaskRepository.save(task2);
List<ClueData> clueData = new ArrayList<>();
@ -83,14 +83,14 @@ public class NoControlServiceImpl implements NoControlService {
idCodes.put(clueDatum.getIdCode(), personal);
toUpdate.add(newOne);
}
RiskPersonalTag tag = new RiskPersonalTag();
tag.setBigTag(Default.NO_CONTROL);
tag.setTagTime(Optional.ofNullable(clueDatum.getEventTime()).orElse(LocalDateTime.now()));
tag.setName(clueDatum.getName());
tag.setIdCode(clueDatum.getIdCode());
tag.setSmallTag(clueDatum.getTag());
tag.setCreateTime(LocalDateTime.now());
tags.add(tag);
// RiskPersonalTag tag = new RiskPersonalTag();
// tag.setBigTag(Default.NO_CONTROL);
// tag.setTagTime(Optional.ofNullable(clueDatum.getEventTime()).orElse(LocalDateTime.now()));
// tag.setName(clueDatum.getName());
// tag.setIdCode(clueDatum.getIdCode());
// tag.setSmallTag(clueDatum.getTag());
// tag.setCreateTime(LocalDateTime.now());
// tags.add(tag);
if(clueDatum.getTag().equals("神疾病三级以上人员管控不到位")) {
clues.add(createClue(task2.getModelId(), 3, task.getId(), clueDatum));
} else {
@ -106,7 +106,7 @@ public class NoControlServiceImpl implements NoControlService {
personalRepository.updateBatchById(toUpdate);
}
if(!clues.isEmpty()) {
clueService.saveClues(clues);
clueService.saveClues(clues, Default.CONTROLLER2_IG);
}
RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId());

2
src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java

@ -467,7 +467,7 @@ public class PetitionServiceImpl implements PetitionService {
}
}
if(!toInsert.isEmpty()) {
riskModelTaskClueService.saveClues(toInsert);
riskModelTaskClueService.saveClues(toInsert, Default.MAIL_IG);
}
if(!toUpdates.isEmpty()) {

106
src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java

@ -6,6 +6,7 @@ import com.biutag.supervisiondata.config.cache.RedisDao;
import com.biutag.supervisiondata.mapper.mine.SupDepartMapper;
import com.biutag.supervisiondata.pojo.ClueData;
import com.biutag.supervisiondata.pojo.constants.Default;
import com.biutag.supervisiondata.pojo.database.MuchCall;
import com.biutag.supervisiondata.pojo.domain.*;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseTbDZdrylb;
@ -82,7 +83,7 @@ public class PointServiceImpl implements PointService {
.eventTime(Optional.ofNullable(personal.getControlTime()).orElse(LocalDateTime.now()))
.departId(personal.getControlDepartId())
.departName(personal.getControlDepartName())
.sourceData("该人员存在标签:" + personal.getTags() + ",属于特定人员,增加风险分5分")
.sourceData("该人员存在标签:" + personal.getTags() + ",属于重点人员,增加风险分5分")
.build()));
}
continue;
@ -97,13 +98,13 @@ public class PointServiceImpl implements PointService {
.eventTime(Optional.ofNullable(personal.getControlTime()).orElse(LocalDateTime.now()))
.departId(personal.getControlDepartId())
.departName(personal.getControlDepartName())
.sourceData("该人员存在标签:" + personal.getTags() + ",属于特定人员,增加风险分5分")
.sourceData("该人员存在标签:" + personal.getTags() + ",属于重点人员,增加风险分5分")
.build()));
}
}
}
if (!toInsert.isEmpty()) {
modelTaskClueService.saveClues(toInsert);
modelTaskClueService.saveClues(toInsert, Default.POINT_IG);
}
RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId());
@ -165,7 +166,7 @@ public class PointServiceImpl implements PointService {
}
if (!toInsert.isEmpty()) {
modelTaskClueService.saveClues(toInsert);
modelTaskClueService.saveClues(toInsert, Default.VIOLENCE_IG);
}
RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId());
@ -215,7 +216,7 @@ public class PointServiceImpl implements PointService {
}
if (!toInsert.isEmpty()) {
modelTaskClueService.saveClues(toInsert);
modelTaskClueService.saveClues(toInsert, Default.KILL_IG);
}
RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId());
@ -228,7 +229,7 @@ public class PointServiceImpl implements PointService {
@Override
public void syncDrug(TaskParamDomain domain) {
RiskTask task = createTask(domain.getPersons().size(), 47);
RiskTask task = createTask(domain.getPersons().size(), 37);
taskRepository.save(task);
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
@ -253,9 +254,8 @@ public class PointServiceImpl implements PointService {
.build();
toInsert.add(createClue(task.getModelId(), 2, task.getId(), data));
}
if (!toInsert.isEmpty()) {
log.info("增加涉药人员:{}", toInsert.size());
modelTaskClueService.saveClues(toInsert);
if(!toInsert.isEmpty()) {
modelTaskClueService.saveClues(toInsert, Default.IMPORT_IG);
}
RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId());
@ -287,7 +287,7 @@ public class PointServiceImpl implements PointService {
.name(personal.getName())
.id(personal.getId().toString())
.idCode(personal.getIdCode())
.tag("特定对象日常管控不到位")
.tag("重点对象管控民警所控人员100人以上疑似日常管控不到位")
.departId(gBaseZDRY.getXzdpcsdm())
.departName(gBaseZDRY.getXzdpcs())
.personId(personal.getId())
@ -298,7 +298,7 @@ public class PointServiceImpl implements PointService {
}
if (!toInsert.isEmpty()) {
log.info("增加特定对象日常管控不到位人员:{}", toInsert.size());
modelTaskClueService.saveClues(toInsert);
modelTaskClueService.saveClues(toInsert, Default.CONTROLLER_IG);
}
RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId());
@ -318,35 +318,14 @@ public class PointServiceImpl implements PointService {
RiskTask task = createTask(domain.getPersons().size(), 50);
taskRepository.save(task);
// 获取接警数据
List<GBaseJJD> result = jjdRepository.getBaseMapper().selectPointCall();
List<MuchCall> result = jjdRepository.getBaseMapper().selectPointCall();
List<RiskPersonal> person = getPersons();
Map<String, Integer> map = new HashMap<>();
Map<String, Integer> noUseMap = new HashMap<>();
Map<String, MuchCall> map = result.stream().collect(Collectors.toMap(MuchCall::getMobile, Function.identity(), (val, old) -> val));
for (GBaseJJD gBaseJJD : result) {
String dh = gBaseJJD.getBjrlxdh();
if (dh == null || dh.isEmpty()) {
dh = gBaseJJD.getBjdh();
}
if (dh == null || dh.isEmpty()) {
continue;
}
if (gBaseJJD.getJqxzdm() == null) {
continue;
}
if (gBaseJJD.getJqxzdm().startsWith("9")) {
Integer count = Optional.ofNullable(noUseMap.get(dh)).orElse(0);
count++;
noUseMap.put(dh, count);
} else {
Integer count = Optional.ofNullable(map.get(dh)).orElse(0);
count++;
map.put(dh, count);
}
}
log.info("报警:{},{}", map.size(), noUseMap.size());
List<RiskModelTaskClue> toInsert = new ArrayList<>();
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
Map<String, List<RiskPersonal>> aMAP = person.stream().collect(Collectors.groupingBy(RiskPersonal::getIdCode));
RedisDao.getInstance().removeListAll(Default.CALL_REDIS);
List<RiskTest> tmp = new ArrayList<>();
@ -355,22 +334,30 @@ public class PointServiceImpl implements PointService {
continue;
}
RiskPersonal personal = entry.getValue().getFirst();
if(oldMap.get(personal.getIdCode()) != null) {
continue;
}
String[] str = personal.getMobileNumber().split(",");
int num = 0;
int noUsefulNum = 0;
StringBuilder mobile = new StringBuilder();
for (String s : str) {
if (s.contains("无") || s.equals("00000000") || s.equals("1")) {
String number = s.chars()
.filter(Character::isDigit)
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
.toString();
if (number.length() < 8 || number.equals("00000000")) {
continue;
}
mobile.append(s).append(",");
int count = Optional.ofNullable(map.get(s)).orElse(0);
int count = Optional.ofNullable(map.get(s)).map(MuchCall::getNormal).orElse(0);
num += count;
int count2 = Optional.ofNullable(noUseMap.get(s)).orElse(0);
int count2 = Optional.ofNullable(map.get(s)).map(MuchCall::getUnNormal).orElse(0);
noUsefulNum += count2;
}
if (num > 5 || noUsefulNum > 100) {
if(num == 0 && noUsefulNum==0) {
continue;
}
StringBuilder mark = new StringBuilder();
for (RiskPersonal p : entry.getValue()) {
mark.append(p.getTags()).append(",");
@ -380,7 +367,7 @@ public class PointServiceImpl implements PointService {
call.setNoUsefulCallCount(noUsefulNum);
call.setLabels(mark.substring(0, mark.length() - 1));
call.setName(personal.getName());
call.setMobiles(mobile.substring(0, mobile.length() - 1));
call.setMobiles(mobile.length()==0?"":mobile.substring(0, mobile.length() - 1));
call.setIdCode(personal.getIdCode());
call.setControlId(personal.getControlDepartId());
call.setControlName(personal.getControlDepartName());
@ -400,7 +387,7 @@ public class PointServiceImpl implements PointService {
ClueData data = ClueData.builder()
.name(personal.getName())
.idCode(personal.getIdCode())
.tag("特定对象日常管控不到位")
.tag("重点对象多次报警疑似管控不到位")
.departId(personal.getControlDepartId())
.departName(call.getControlName())
.personId(personal.getId())
@ -409,14 +396,14 @@ public class PointServiceImpl implements PointService {
.build();
toInsert.add(createClue(task.getModelId(), 4, task.getId(), data));
}
}
riskTestRepository.getBaseMapper().truncateTable();
if (!tmp.isEmpty()) {
riskTestRepository.saveBatch(tmp);
}
if (!toInsert.isEmpty()) {
log.info("增加特定对象日常管控不到位人员:{}", toInsert.size());
modelTaskClueService.saveClues(toInsert);
modelTaskClueService.saveClues(toInsert, Default.CONTROLLER_IG);
}
RiskTask updateTask = new RiskTask();
@ -472,10 +459,10 @@ public class PointServiceImpl implements PointService {
}
SupDepart findLevelThreeDepart(SupDepart supDepart, Map<String, SupDepart> departMap) {
if(supDepart == null){
if (supDepart == null) {
return null;
}
if(supDepart.getLevel() == 3) {
if (supDepart.getLevel() == 3) {
return supDepart;
}
supDepart = departMap.get(supDepart.getPid());
@ -490,7 +477,7 @@ public class PointServiceImpl implements PointService {
List<GBaseTbDZdrylb> lbList = zdrylbRepository.list(new LambdaQueryWrapper<GBaseTbDZdrylb>()
.select(GBaseTbDZdrylb::getCode, GBaseTbDZdrylb::getDefine));
List<SupDepart> supDeparts = supDepartMapper.selectList(new LambdaQueryWrapper<SupDepart>()
.select(SupDepart::getId,SupDepart::getCode, SupDepart::getLevel, SupDepart::getShortName, SupDepart::getPid)
.select(SupDepart::getId, SupDepart::getCode, SupDepart::getLevel, SupDepart::getShortName, SupDepart::getPid)
.ge(SupDepart::getLevel, 3));
Map<String, Integer> supExternalDepartMap = new WeakHashMap<>();
@ -543,15 +530,15 @@ public class PointServiceImpl implements PointService {
SupDepart depart = supDepartCodeMap.get(ry.getGxdwjgdm());
depart = findLevelThreeDepart(depart, supDepartIdMap);
Integer exist = supExternalDepartMap.get(ry.getGxdwjgdm());
if(exist == null) {
if (exist == null) {
SupExternalDepart externalDepart = new SupExternalDepart();
externalDepart.setExternalId(ry.getGxdwjgdm());
externalDepart.setExternalName(ry.getGxdw());
externalDepart.setSource("重点人员");
externalDeparts.add(externalDepart);
supExternalDepartMap.put(ry.getGxdwjgdm(),1);
supExternalDepartMap.put(ry.getGxdwjgdm(), 1);
}
if(depart == null) {
if (depart == null) {
noDepartCount++;
}
for (String s : sb) {
@ -580,14 +567,25 @@ public class PointServiceImpl implements PointService {
} catch (Exception e) {
}
if (ry.getZdrylxfs() != null) {
// personal.setMobileNumber(ry.getZdrylxfs().length() > 20 ? "" : ry.getZdrylxfs());
personal.setMobileNumber(ry.getZdrylxfs());
String[] str = ry.getZdrylxfs().split(",");
StringBuilder mobiles = new StringBuilder();
for (String m : str) {
String number = m.chars()
.filter(Character::isDigit)
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
.toString();
if (number.length() < 8 || number.equals("00000000")) {
continue;
}
mobiles.append(m).append(",");
}
personal.setMobileNumber(mobiles.length() == 0 ? "" : mobiles.substring(0, mobiles.length() - 1));
}
personals.add(personal);
}
map.put(ry.getSfzh(), tmp);
}
log.info("重点人员入库数:{} 未匹配到本地组织机构数:{}",zdCount, noDepartCount);
log.info("重点人员入库数:{} 未匹配到本地组织机构数:{}", zdCount, noDepartCount);
externalDepartRepository.saveBatch(externalDeparts);
return personals;
}

20
src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java

@ -121,7 +121,7 @@ public class PoliceServiceImpl implements PoliceService {
}
}
if(insert) {
toInsert.add(createClue(task.getModelId(), 1, person, task.getId(), jjd, "通过对近12个月的警情筛查,发现该人员涉及:"+jjd.getJqxzmc()+"的警情,接警单编号为:"+jjd.getJjdbh()+",该警情属于矛盾纠纷,增加风险分1分(发生一起增加1分,最高10分)"));
toInsert.add(createClue(task, 1, person, Dispute.contains(jjd.getJqxzmc()), jjd, "通过对近12个月的警情筛查,发现该人员涉及:"+jjd.getJqxzmc()+"的警情,接警单编号为:"+jjd.getJjdbh()+",该警情属于矛盾纠纷,增加风险分1分(发生一起增加1分,最高10分)"));
RiskPersonalControlRecord tmpRecord = createControlRecord(person, jjd, toInsert.getLast().getRiskReason());
controlRecords.add(tmpRecord);
if(person.getControlTime() == null || tmpRecord.getControlTime().isAfter(person.getControlTime())) {
@ -133,7 +133,7 @@ public class PoliceServiceImpl implements PoliceService {
}
if(!toInsert.isEmpty()) {
log.info("新增线索:{}",toInsert.size());
riskModelTaskClueService.saveClues(toInsert);
riskModelTaskClueService.saveClues(toInsert, Default.TRUBO_IG);
}
if(!controlRecords.isEmpty()) {
log.info("新增管控记录:{}",controlRecords.size());
@ -144,10 +144,10 @@ public class PoliceServiceImpl implements PoliceService {
riskPersonalRepository.updateBatchById(toUpdatePerson, 5000);
}
if(!toInsertTags.isEmpty()) {
log.info("操作新增标签数据:{}",toInsertTags.size());
tagService.saveBatchTag(toInsertTags, Default.BIG_TAG_TRUBO);
}
// if(!toInsertTags.isEmpty()) {
// log.info("操作新增标签数据:{}",toInsertTags.size());
// tagService.saveBatchTag(toInsertTags, Default.BIG_TAG_TRUBO);
// }
if(!updateClueList.isEmpty()) {
taskClueRepository.updateBatchById(updateClueList, 10000);
@ -174,14 +174,14 @@ public class PoliceServiceImpl implements PoliceService {
return personToUpdate;
}
RiskModelTaskClue createClue(Integer modelId, Integer score, RiskPersonal person, Integer taskId,GBaseJJD jjd, String data) {
RiskModelTaskClue createClue(RiskTask task, Integer score, RiskPersonal person, String tag,GBaseJJD jjd, String data) {
RiskModelTaskClue clue = new RiskModelTaskClue();
clue.setModelId(modelId);
clue.setModelId(task.getModelId());
clue.setScore(score);
clue.setName(person.getName());
clue.setIdCode(person.getIdCode());
clue.setTaskId(taskId);
clue.setRiskReason(jjd.getJqxzmc());
clue.setTaskId(task.getId());
clue.setRiskReason(tag);
clue.setData(data);
clue.setEventTime(jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
clue.setCreateTime(LocalDateTime.now());

81
src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java

@ -1,13 +1,17 @@
package com.biutag.supervisiondata.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervisiondata.common.exception.BusinessException;
import com.biutag.supervisiondata.common.response.StatusCode;
import com.biutag.supervisiondata.mapper.mine.RiskModelTaskClueMapper;
import com.biutag.supervisiondata.pojo.constants.Default;
import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonalControlRecord;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonalTag;
import com.biutag.supervisiondata.repository.RiskPersonalTagRepository;
import com.biutag.supervisiondata.service.RiskModelTaskClueService;
import com.biutag.supervisiondata.service.RiskPersonalTagService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Qualifier;
@ -17,9 +21,9 @@ import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@ -36,28 +40,80 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService {
@Qualifier("chaosBean")
private final DataSource dataSource;
public Connection getConnection() throws SQLException {
private final RiskPersonalTagRepository tagRepository;
Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
@Override
public void saveClues(List<RiskModelTaskClue> list) {
public void saveClues(List<RiskModelTaskClue> list, String bigTag) {
List<List<RiskModelTaskClue>> control = IntStream.range(0, (list.size() + 9999) / 10000)
.mapToObj(i -> list.subList(i * 10000, Math.min((i + 1) * 10000, list.size())))
.collect(Collectors.toList());
for (List<RiskModelTaskClue> record : control) {
try {
batchInsert(record);
batchInsert(record, bigTag);
} catch (Exception e) {
log.error("", e);
}
}
Map<String, List<RiskModelTaskClue>> map = list.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode));
// 标签要插入的人员
List<String> idCodes = new ArrayList<>();
for (Map.Entry<String, List<RiskModelTaskClue>> entry : map.entrySet()) {
idCodes.add(entry.getKey());
}
List<RiskPersonalTag> oldTags = new ArrayList<>();
List<List<String>> idCode = IntStream.range(0, (idCodes.size() + 9999) / 10000)
.mapToObj(i -> idCodes.subList(i * 10000, Math.min((i + 1) * 10000, idCodes.size())))
.collect(Collectors.toList());
for (List<String> strList : idCode) {
oldTags.addAll(tagRepository.list(new LambdaQueryWrapper<RiskPersonalTag>()
.select(RiskPersonalTag::getSmallTag, RiskPersonalTag::getIdCode)
.eq(RiskPersonalTag::getBigTag, bigTag)
.in(RiskPersonalTag::getIdCode, strList)));
}
Map<String, List<RiskPersonalTag>> oldTagMap = oldTags.stream().collect(Collectors.groupingBy(RiskPersonalTag::getIdCode));
Map<String, Byte[]> oldMap;
List<RiskPersonalTag> tags = new ArrayList<>();
for (Map.Entry<String, List<RiskModelTaskClue>> entry : map.entrySet()) {
List<RiskPersonalTag> oldTagList = Optional.ofNullable(oldTagMap.get(entry.getKey())).orElse(new ArrayList<>());
// 旧的tag
oldMap = new WeakHashMap<>();
for (RiskPersonalTag tag : oldTagList) {
oldMap.put(tag.getSmallTag(), new Byte[0]);
}
for (RiskModelTaskClue clue : entry.getValue()) {
if (bigTag.equals(Default.BIG_TAG_SHWFR)) {
String[] strs = clue.getRiskReason().split(",");
for (int i = 0, len = strs.length; i < len; i++) {
if (oldMap.get(strs[i]) == null) {
tags.add(creatTag(bigTag, strs[i], clue));
oldMap.put(strs[i], new Byte[0]);
}
}
continue;
}
if (oldMap.get(clue.getRiskReason()) == null) {
tags.add(creatTag(bigTag, clue.getRiskReason(), clue));
oldMap.put(clue.getRiskReason(), new Byte[0]);
}
}
}
if (!tags.isEmpty()) {
tagRepository.saveBatch(tags, 10000);
}
}
final String sql = "INSERT INTO risk_model_task_clue(model_id, name, id_code, task_id, source_id, risk_reason, data, score, event_time, create_time, update_time, case_ids) VALUES(?,?,?,?,?,?,?,?,?,?,?,?)";
public void batchInsert(List<RiskModelTaskClue> alliances) {
public void batchInsert(List<RiskModelTaskClue> alliances, String bigTag) {
try (Connection connection = getConnection();
PreparedStatement prepareStatement = connection.prepareStatement(sql)) {
connection.setAutoCommit(false);
@ -68,7 +124,7 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService {
prepareStatement.setObject(3, Optional.ofNullable(it.getIdCode()).orElse(""));
prepareStatement.setObject(4, it.getTaskId());
prepareStatement.setObject(5, it.getSourceId());
prepareStatement.setObject(6, Optional.ofNullable(it.getRiskReason()).orElse(""));
prepareStatement.setObject(6, bigTag);
prepareStatement.setObject(7, Optional.ofNullable(it.getData()).orElse(""));
prepareStatement.setObject(8, Optional.ofNullable(it.getScore()).orElse(0));
prepareStatement.setObject(9, Optional.ofNullable(it.getEventTime()).map(item -> item.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).orElse(null));
@ -87,4 +143,15 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService {
throw new BusinessException(StatusCode.BUSINESS, "数据保存失败");
}
}
RiskPersonalTag creatTag(String bigTag, String tag, RiskModelTaskClue clue) {
RiskPersonalTag riskTag = new RiskPersonalTag();
riskTag.setBigTag(bigTag);
riskTag.setTagTime(LocalDateTime.now());
riskTag.setName(clue.getName());
riskTag.setIdCode(clue.getIdCode());
riskTag.setSmallTag(tag);
riskTag.setCreateTime(LocalDateTime.now());
return riskTag;
}
}

47
src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java

@ -3,10 +3,14 @@ package com.biutag.supervisiondata.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervisiondata.common.exception.BusinessException;
import com.biutag.supervisiondata.common.response.StatusCode;
import com.biutag.supervisiondata.mapper.mine.RiskModelTaskClueMapper;
import com.biutag.supervisiondata.pojo.constants.Default;
import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonalControlRecord;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonalTag;
import com.biutag.supervisiondata.repository.RiskPersonalRepository;
import com.biutag.supervisiondata.repository.RiskPersonalTagRepository;
import com.biutag.supervisiondata.service.RiskPersonalService;
import com.biutag.supervisiondata.service.RiskPersonalTagService;
import com.biutag.supervisiondata.util.IdCodeUtil;
@ -41,8 +45,7 @@ public class RiskPersonalServiceImpl implements RiskPersonalService {
private final RiskPersonalTagService tagService;
@Qualifier("chaosBean")
private final DataSource dataSource;
private final RiskPersonalTagRepository tagRepository;
@Override
@ -72,16 +75,16 @@ public class RiskPersonalServiceImpl implements RiskPersonalService {
for (Map.Entry<String, List<RiskPersonal>> entry : map.entrySet()) {
RiskPersonal tmp = entry.getValue().getFirst();
for (RiskPersonal riskPersonal : entry.getValue()) {
RiskPersonalTag tag = new RiskPersonalTag();
tag.setBigTag(bigTag);
tag.setTagTime(Optional.ofNullable(riskPersonal.getControlTime()).orElse(LocalDateTime.now()));
tag.setName(riskPersonal.getName());
tag.setIdCode(riskPersonal.getIdCode());
tag.setSmallTag(riskPersonal.getTags());
tag.setCreateTime(LocalDateTime.now());
tags.add(tag);
}
// for (RiskPersonal riskPersonal : entry.getValue()) {
// RiskPersonalTag tag = new RiskPersonalTag();
// tag.setBigTag(bigTag);
// tag.setTagTime(Optional.ofNullable(riskPersonal.getControlTime()).orElse(LocalDateTime.now()));
// tag.setName(riskPersonal.getName());
// tag.setIdCode(riskPersonal.getIdCode());
// tag.setSmallTag(riskPersonal.getTags());
// tag.setCreateTime(LocalDateTime.now());
// tags.add(tag);
// }
// 看看这个人老数据里面有没有
RiskPersonal oldPersonal = oldMap.get(tmp.getIdCode());
if(oldPersonal == null) {
@ -189,4 +192,24 @@ public class RiskPersonalServiceImpl implements RiskPersonalService {
repository.removeById(i);
}
}
private final RiskModelTaskClueMapper clueMapper;
@Override
public void fixed2() {
List<RiskModelTaskClue> clues = clueMapper.selectList(new LambdaQueryWrapper<RiskModelTaskClue>().eq(RiskModelTaskClue::getModelId, 32));
List<RiskPersonalTag> tags = new ArrayList<>();
for (RiskModelTaskClue clue : clues) {
RiskPersonalTag riskTag = new RiskPersonalTag();
riskTag.setBigTag(Default.BASIC);
riskTag.setTagTime(LocalDateTime.now());
riskTag.setName(clue.getName());
riskTag.setIdCode(clue.getIdCode());
riskTag.setSmallTag(clue.getRiskReason());
riskTag.setCreateTime(LocalDateTime.now());
tags.add(riskTag);
}
tagRepository.saveBatch(tags);
}
}

29
src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java

@ -73,8 +73,8 @@ public class RiskTaskServiceImpl implements RiskTaskService {
@Override
public void infoModelTask(TaskParamDomain domain) {
RiskTask ageTask = createTask(domain.getPersons().size(), 33);
RiskTask genderTask = createTask(domain.getPersons().size(), 32);
RiskTask ageTask = createTask(domain.getPersons().size(), 33);
riskTaskRepository.save(ageTask);
riskTaskRepository.save(genderTask);
@ -108,14 +108,13 @@ public class RiskTaskServiceImpl implements RiskTaskService {
genderUpdate.setInsertSize(size);
genderUpdate.setState(1);
genderUpdate.setEndTime(LocalDateTime.now());
List<RiskModelTaskClue> clues = new ArrayList<>();
clues.addAll(infos[0].getToInsert());
clues.addAll(infos[1].getToInsert());
riskModelTaskClueService.saveClues(clues);
riskTaskRepository.updateById(ageUpdate);
riskModelTaskClueService.saveClues(infos[0].getToInsert(), Default.AGE_IG);
riskModelTaskClueService.saveClues(infos[1].getToInsert(), Default.GENDER_IG);
if(!infos[0].getToHidden().isEmpty()) {
clueRepository.updateBatchById(infos[0].getToHidden());
}
riskTaskRepository.updateById(ageUpdate);
}
@Override
@ -189,7 +188,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
int size = 0;
if (!toInsert.isEmpty()) {
size = toInsert.size();
riskModelTaskClueService.saveClues(toInsert);
riskModelTaskClueService.saveClues(toInsert, Default.EDU_IG);
log.info("批量新增学历完成");
}
eduUpdate.setInsertSize(size);
@ -371,7 +370,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
RiskTask caseUpdate = new RiskTask();
caseUpdate.setId(caseTask.getId());
if (!toInsertClue.isEmpty()) {
riskModelTaskClueService.saveClues(toInsertClue);
riskModelTaskClueService.saveClues(toInsertClue, Default.WFR_IG);
}
if (!toUpdateClue.isEmpty()) {
clueRepository.updateBatchById(toUpdateClue);
@ -559,12 +558,12 @@ public class RiskTaskServiceImpl implements RiskTaskService {
.personId(person.getId())
.eventTime(LocalDateTime.now())
.sourceData("发现该人员在"+gBaseSYRKXX.getCsdxzqhmc()+"成长,该地区暴力警情情况较多,增加风险分2分")
.tag(Default.FIGHT_BORN)
.tag(gBaseSYRKXX.getCsdxzqhmc())
.build(), "area___"+person.getId().toString()));
}
if(!toInsert.isEmpty()) {
log.info("开始操作新增项:{}", toInsert.size());
riskModelTaskClueService.saveClues(toInsert);
riskModelTaskClueService.saveClues(toInsert, Default.FIGHT_IG);
}
RiskTask endTask = endTask(task.getId());
endTask.setInsertSize(toInsert.size());
@ -619,7 +618,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
manList.add(fightMan.getGmsfhm());
continue;
}
RiskModelTaskClue clue = createClue(task.getModelId(),3, person,task.getId(), Default.FIGHT_MUCH, "该人员在近期发生"+fightMan.getFightCount()+"起矛盾纠纷,属于高频次矛盾纠纷发生人员,增加风险分3分");
RiskModelTaskClue clue = createClue(task.getModelId(),3, person,task.getId(), fightMan.getFightCount()+"起纠纷", "该人员在近期发生"+fightMan.getFightCount()+"起矛盾纠纷,属于高频次矛盾纠纷发生人员,增加风险分3分");
toInsert.add(clue);
person.setId(null);
person.setTags(Default.FIGHT_MUCH);
@ -659,7 +658,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
}
if(!toInsert.isEmpty()) {
log.info("新增线索 | {}", toInsert.size());
riskModelTaskClueService.saveClues(toInsert);
riskModelTaskClueService.saveClues(toInsert, Default.FIGHT_MUCH_IG);
}
RiskTask endTask = endTask(task.getId());
@ -692,7 +691,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
}
// 符合条件但是又没有旧数据 | 新增
if (age >= 16 && age <= 34) {
RiskModelTaskClue clue = createClue(33, 1, person, task.getId(), "年龄处于16岁至34岁之间", "该人员年龄为"+age+",属于16岁至34岁之间,增加风险分1分");
RiskModelTaskClue clue = createClue(task.getModelId(), 1, person, task.getId(), "年龄处于16岁至34岁之间", "该人员年龄为"+age+",属于16岁至34岁之间,增加风险分1分");
taskClue.add(clue);
if (old != null) {
RiskModelTaskClue hidden = new RiskModelTaskClue();
@ -703,7 +702,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
continue;
}
if (age >= 35 && age <= 55) {
RiskModelTaskClue clue = createClue(33, 2, person, task.getId(), "年龄处于35岁至55岁之间", "该人员年龄为"+age+",属于35岁至55岁之间,增加风险分2分");
RiskModelTaskClue clue = createClue(task.getModelId(), 2, person, task.getId(), "年龄处于35岁至55岁之间", "该人员年龄为"+age+",属于35岁至55岁之间,增加风险分2分");
taskClue.add(clue);
if (old != null) {
RiskModelTaskClue hidden = new RiskModelTaskClue();
@ -750,7 +749,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
if (oldMap.get(person.getIdCode()) != null) {
continue;
}
RiskModelTaskClue clue = createClue(32, 1, person, task.getId(), "性别为男性", "该人员性别为男性,增加风险分1分");
RiskModelTaskClue clue = createClue(32, 1, person, task.getId(), "男性", "该人员性别为男性,增加风险分1分");
taskClue.add(clue);
}
return ClueInfo.builder().toInsert(taskClue).build();

35
src/main/java/com/biutag/supervisiondata/task/TaskService.java

@ -2,10 +2,22 @@ package com.biutag.supervisiondata.task;
import com.biutag.supervisiondata.service.ModelClueService;
import lombok.AllArgsConstructor;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain;
import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal;
import com.biutag.supervisiondata.repository.RiskModelTaskClueRepository;
import com.biutag.supervisiondata.repository.RiskPersonalRepository;
import com.biutag.supervisiondata.service.PointService;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author kami on 2024-07-25 10:52:39
@ -17,10 +29,31 @@ import org.springframework.stereotype.Component;
@AllArgsConstructor
public class TaskService {
@Resource
private PointService pointService;
@Resource
private RiskPersonalRepository riskPersonalRepository;
private final ModelClueService modelClueService;
@Scheduled(cron = "0 0/10 * * * ?")
@Resource
private RiskModelTaskClueRepository riskModelTaskClueRepository;
/**
* 1点半执行
*/
@Scheduled(cron = "0 30 01 * * ?")
public void ageModel() {
// pointService.syncPointCall(initDomain());
}
TaskParamDomain initDomain() {
List<RiskPersonal> persons = riskPersonalRepository.list();
List<RiskModelTaskClue> clues = riskModelTaskClueRepository.list(new LambdaQueryWrapper<RiskModelTaskClue>()
.eq(RiskModelTaskClue::getDel, 0));
Map<Integer, List<RiskModelTaskClue>> map = clues.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getModelId));
TaskParamDomain domain = new TaskParamDomain(persons, map);
return domain;
}
@Scheduled(cron = "* * 3 * * *")

Loading…
Cancel
Save