Browse Source

厌世、自杀、报复、不公数据获取

master
kami 1 year ago
parent
commit
028ced5826
  1. 4
      src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java
  2. 5
      src/main/java/com/biutag/supervisiondata/service/GBaseJJDService.java
  3. 44
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java
  4. 2
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java
  5. 10
      src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java
  6. 3
      src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java

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

@ -27,9 +27,9 @@ public interface GBaseJJDMapper extends BaseMapper<GBaseJJD> {
*/ */
@Select(" select bjdh as mobile, " + @Select(" select bjdh as mobile, " +
" sum(IF(SUBSTR(jqxzdm, 1, 2) != '99' AND SUBSTR(jqxzdm, 1, 2) != '11',1,0)) as normal, " + " sum(IF(SUBSTR(jqxzdm, 1, 2) != '99' AND SUBSTR(jqxzdm, 1, 2) != '11',1,0)) as normal, " +
" sum(IF(SUBSTR(jqxzdm, 1, 2) = '99',1,0) or SUBSTR(jqxzdm, 1, 2) = '11') as unNormal " + " sum(IF(SUBSTR(jqxzdm, 1, 2) = '99' or SUBSTR(jqxzdm, 1, 2) = '11',1,0)) as unNormal " +
" from dwd_asj_zhtx_jjd where bjsj >= '2024-01-01 00:00:00' and bjdh is not null " + " 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") " group by bjdh HAVING sum(IF(SUBSTR(jqxzdm, 1, 2) != '99' AND SUBSTR(jqxzdm, 1, 2) != '11',1,0)) > 5 or sum(IF(SUBSTR(jqxzdm, 1, 2) = '99' or SUBSTR(jqxzdm, 1, 2) = '11',1,0)) > 100")
List<MuchCall> selectPointCall(); List<MuchCall> selectPointCall();
/** /**

5
src/main/java/com/biutag/supervisiondata/service/GBaseJJDService.java

@ -18,4 +18,9 @@ public interface GBaseJJDService {
void pullDataAndSaveRedis(LocalDateTime start, LocalDateTime end); void pullDataAndSaveRedis(LocalDateTime start, LocalDateTime end);
void pullPoliceInstance(LocalDateTime start, LocalDateTime end); void pullPoliceInstance(LocalDateTime start, LocalDateTime end);
/**
* 同步警情 厌世报复自杀遭遇不公
*/
void syncPoliceInstance();
} }

44
src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java

@ -120,9 +120,6 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
List<List<String>> mobiles = IntStream.range(0, (mobiles2.size() + 9999) / 10000) List<List<String>> mobiles = IntStream.range(0, (mobiles2.size() + 9999) / 10000)
.mapToObj(i -> mobiles2.subList(i * 10000, Math.min((i + 1) * 10000, mobiles2.size()))) .mapToObj(i -> mobiles2.subList(i * 10000, Math.min((i + 1) * 10000, mobiles2.size())))
.collect(Collectors.toList()); .collect(Collectors.toList());
// 查询数据
log.info("开始根据身份证实用人口信息补全 =》 {}", idCodes.size());
int count = 0;
// 身份证查到的人 // 身份证查到的人
List<GBaseSYRKXX> sFms = new ArrayList<>(); List<GBaseSYRKXX> sFms = new ArrayList<>();
// 手机号查到的人 // 手机号查到的人
@ -137,7 +134,9 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
LocalDate today = LocalDate.now(); LocalDate today = LocalDate.now();
GBaseSYRKXX info = null; GBaseSYRKXX info = null;
List<GBaseSYRKXX> xxxInfo; List<GBaseSYRKXX> xxxInfo;
log.info("开始处理信息对应");
List<RiskPersonal> toInsert = new ArrayList<>();
for (RiskPersonal personal : personals) { for (RiskPersonal personal : personals) {
if (personal.getIdCode() != null) { if (personal.getIdCode() != null) {
String[] strs = personal.getIdCode().split(","); String[] strs = personal.getIdCode().split(",");
@ -191,14 +190,26 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
} }
} }
} }
toInsert.add(personal);
} }
} }
for (RiskPersonal personal : personals) { log.info("开始处理部门, {}", toInsert.size());
int count = 0;
Map<String, SupExternalDepart> hope = new WeakHashMap<>();
for (RiskPersonal personal : toInsert) {
count++;
if(count % 100 == 0) {
log.info("{}", count);
}
if (personal.getControlDepartType() != null && personal.getControlDepartType() >= DepartType.HUMAN.getType()) { if (personal.getControlDepartType() != null && personal.getControlDepartType() >= DepartType.HUMAN.getType()) {
continue; continue;
} }
List<GBaseJJD> jjds = Optional.ofNullable(jjdMap.get(personal.getIdCode())).orElse(jjdMMap.get(Optional.ofNullable(personal.getMobileNumber()).orElse("")));
if (jjds == null || jjds.isEmpty()) { List<GBaseJJD> jjds = jjdMap.get(personal.getIdCode());
if (jjds == null) {
jjds = jjdMMap.get(Optional.ofNullable(personal.getMobileNumber()).orElse(""));
}
if (jjds == null|| jjds.isEmpty()) {
continue; continue;
} }
GBaseJJD tmp = jjds.getFirst(); GBaseJJD tmp = jjds.getFirst();
@ -218,14 +229,18 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
personal.setControlDepartName(null); personal.setControlDepartName(null);
continue; continue;
} }
PointOrg org = orgCodeMap.get(info.getSspcsdm()); SupExternalDepart depart = hope.get(tmp.getGxdwdm());
org = findOrg(org, orgIdMap); if(depart == null) {
SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(item -> jqExternalDepart.get(item)).orElse(null); PointOrg org = orgCodeMap.get(tmp.getGxdwdm());
org = findOrg(org, orgIdMap);
depart = Optional.ofNullable(org).map(PointOrg::getDm).map(item -> jqExternalDepart.get(item)).orElse(null);
}
if (depart == null) { if (depart == null) {
personal.setControlDepartId(null); personal.setControlDepartId(null);
personal.setControlDepartName(null); personal.setControlDepartName(null);
continue; continue;
} }
hope.put(tmp.getGxdwdm(), depart);
personal.setControlDepartId(depart.getInternalId()); personal.setControlDepartId(depart.getInternalId());
personal.setControlDepartName(depart.getInternalName()); personal.setControlDepartName(depart.getInternalName());
personal.setControlDepartType(DepartType.OTHER.getType()); personal.setControlDepartType(DepartType.OTHER.getType());
@ -239,8 +254,9 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
log.info("报警时间处理异常"); log.info("报警时间处理异常");
} }
} }
riskPersonalService.formatAndSave(personals, Default.BIG_TAG_JJD); log.info("开始写数据");
log.info("人数: {}", personals.size()); riskPersonalService.formatAndSave(toInsert, Default.BIG_TAG_JJD);
log.info("人数: {}", toInsert.size());
} }
@Override @Override
@ -299,7 +315,13 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
).join(); ).join();
} }
@Override
public void syncPoliceInstance() {
}
void toRedisCache(List<GBaseJJD> jjdList, String keyName) { void toRedisCache(List<GBaseJJD> jjdList, String keyName) {
RedisDao.getInstance().removeListAll(keyName);
RedisDao.getInstance().pipeLineExec((connection, key, value) -> jjdList.forEach(item -> { RedisDao.getInstance().pipeLineExec((connection, key, value) -> jjdList.forEach(item -> {
connection.rPush(key.serialize(keyName), value.serialize(JSON.toJSONString(item))); connection.rPush(key.serialize(keyName), value.serialize(JSON.toJSONString(item)));
})); }));

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

@ -442,6 +442,7 @@ public class PointServiceImpl implements PointService {
.id(personal.getId().toString()) .id(personal.getId().toString())
.idCode(personal.getIdCode()) .idCode(personal.getIdCode())
.tag("涉药人员") .tag("涉药人员")
.eventTime(LocalDateTime.now())
.personId(personal.getId()) .personId(personal.getId())
.sourceData("发现该人员于" + drug.getGzdw() + "工作,属于特种工种中的涉药人员,增加风险分2分") .sourceData("发现该人员于" + drug.getGzdw() + "工作,属于特种工种中的涉药人员,增加风险分2分")
.build(); .build();
@ -816,6 +817,7 @@ public class PointServiceImpl implements PointService {
.departId(person.getControlDepartId()) .departId(person.getControlDepartId())
.departName(person.getControlDepartName()) .departName(person.getControlDepartName())
.personId(person.getId()) .personId(person.getId())
.eventTime(LocalDateTime.now())
.sourceData("发现该人员有车,增加风险分1分。") .sourceData("发现该人员有车,增加风险分1分。")
.build(); .build();
toInsert.add(createClue(task.getModelId(), 1, task.getId(), data)); toInsert.add(createClue(task.getModelId(), 1, task.getId(), data));

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

@ -100,7 +100,7 @@ public class PoliceServiceImpl implements PoliceService {
List<RiskModelTaskClue> toInsert = new ArrayList<>(); List<RiskModelTaskClue> toInsert = new ArrayList<>();
List<RiskPersonalControlRecord> controlRecords = new ArrayList<>(); List<RiskPersonalControlRecord> controlRecords = new ArrayList<>();
List<RiskPersonal> toUpdatePerson = new ArrayList<>(); List<RiskPersonal> toUpdatePerson = new ArrayList<>();
List<RiskPersonalTag> toInsertTags = new ArrayList<>(); // List<RiskPersonalTag> toInsertTags = new ArrayList<>();
// ******* 数据操作 ******* // ******* 数据操作 *******
// 开始 // 开始
for (GBaseJJD jjd : result) { for (GBaseJJD jjd : result) {
@ -117,13 +117,13 @@ public class PoliceServiceImpl implements PoliceService {
} }
} }
if(insert) { if(insert) {
toInsert.add(createClue(task, 1, person, Dispute.contains(jjd.getJqxzmc()), jjd, "通过对近12个月的警情筛查,发现该人员涉及:"+jjd.getJqxzmc()+"的警情,接警单编号为:"+jjd.getJjdbh()+",该警情属于矛盾纠纷,增加风险分1分(发生一起增加1分,最高10分)")); toInsert.add(createClue(task, 1, person, jjd, "通过对近12个月的警情筛查,发现该人员涉及:"+jjd.getJqxzmc()+"的警情,接警单编号为:"+jjd.getJjdbh()+",该警情属于矛盾纠纷,增加风险分1分(发生一起增加1分,最高10分)"));
RiskPersonalControlRecord tmpRecord = createControlRecord(person, jjd, toInsert.getLast().getRiskReason()); RiskPersonalControlRecord tmpRecord = createControlRecord(person, jjd, toInsert.getLast().getRiskReason());
controlRecords.add(tmpRecord); controlRecords.add(tmpRecord);
if(person.getControlTime() == null || tmpRecord.getControlTime().isAfter(person.getControlTime())) { if(person.getControlTime() == null || tmpRecord.getControlTime().isAfter(person.getControlTime())) {
RiskPersonal personToUpdate = getRiskPersonal(person, tmpRecord); RiskPersonal personToUpdate = getRiskPersonal(person, tmpRecord);
toUpdatePerson.add(personToUpdate); toUpdatePerson.add(personToUpdate);
toInsertTags.add(createTag(Dispute.contains(jjd.getJqxzmc()), toInsert.getLast().getEventTime(), person)); // toInsertTags.add(createTag(Dispute.contains(jjd.getJqxzmc()), toInsert.getLast().getEventTime(), person));
} }
} }
} }
@ -170,14 +170,14 @@ public class PoliceServiceImpl implements PoliceService {
return personToUpdate; return personToUpdate;
} }
RiskModelTaskClue createClue(RiskTask task, Integer score, RiskPersonal person, String tag,GBaseJJD jjd, String data) { RiskModelTaskClue createClue(RiskTask task, Integer score, RiskPersonal person, GBaseJJD jjd, String data) {
RiskModelTaskClue clue = new RiskModelTaskClue(); RiskModelTaskClue clue = new RiskModelTaskClue();
clue.setModelId(task.getModelId()); clue.setModelId(task.getModelId());
clue.setScore(score); clue.setScore(score);
clue.setName(person.getName()); clue.setName(person.getName());
clue.setIdCode(person.getIdCode()); clue.setIdCode(person.getIdCode());
clue.setTaskId(task.getId()); clue.setTaskId(task.getId());
clue.setRiskReason(tag); clue.setRiskReason("涉"+jjd.getJqxzmc());
clue.setData(data); clue.setData(data);
clue.setEventTime(jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); clue.setEventTime(jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
clue.setCreateTime(LocalDateTime.now()); clue.setCreateTime(LocalDateTime.now());

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

@ -97,7 +97,7 @@ public class RiskScoreRuleServiceImpl implements RiskScoreRuleService {
Integer ruleScore = temp.stream().mapToInt(RiskModelTaskClue::getScore).sum(); Integer ruleScore = temp.stream().mapToInt(RiskModelTaskClue::getScore).sum();
BigDecimal n2 = new BigDecimal(Double.toString(Math.min(ruleScore.doubleValue(), riskScoreRule.getScore()))); BigDecimal n2 = new BigDecimal(Double.toString(Math.min(ruleScore.doubleValue(), riskScoreRule.getScore())));
BigDecimal weight = new BigDecimal(Double.toString(riskScoreRule.getWeight())); BigDecimal weight = new BigDecimal(Double.toString(riskScoreRule.getWeight()));
n2 = n2.multiply(weight); n2 = n2.multiply(weight).divide(new BigDecimal("100"), 2, RoundingMode.UP);
score=score.add(n2); score=score.add(n2);
} }
// BigDecimal ruleScore = new BigDecimal(Double.toString(rule.getScore())); // BigDecimal ruleScore = new BigDecimal(Double.toString(rule.getScore()));
@ -105,6 +105,7 @@ public class RiskScoreRuleServiceImpl implements RiskScoreRuleService {
// score = score.multiply(weight).divide(ruleScore, 2, RoundingMode.UP); // score = score.multiply(weight).divide(ruleScore, 2, RoundingMode.UP);
total = total.add(score); total = total.add(score);
} }
total = total.multiply(new BigDecimal("20"));
if(person.getRickScore().compareTo(total.doubleValue()) != 0) { if(person.getRickScore().compareTo(total.doubleValue()) != 0) {
update = new RiskPersonal(); update = new RiskPersonal();
update.setId(person.getId()); update.setId(person.getId());

Loading…
Cancel
Save