diff --git a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java index 4f4bde6..86fe6a9 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java @@ -27,9 +27,9 @@ public interface GBaseJJDMapper extends BaseMapper { */ @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',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 " + - " 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 selectPointCall(); /** diff --git a/src/main/java/com/biutag/supervisiondata/service/GBaseJJDService.java b/src/main/java/com/biutag/supervisiondata/service/GBaseJJDService.java index 4c33076..7cd3406 100644 --- a/src/main/java/com/biutag/supervisiondata/service/GBaseJJDService.java +++ b/src/main/java/com/biutag/supervisiondata/service/GBaseJJDService.java @@ -18,4 +18,9 @@ public interface GBaseJJDService { void pullDataAndSaveRedis(LocalDateTime start, LocalDateTime end); void pullPoliceInstance(LocalDateTime start, LocalDateTime end); + + /** + * 同步警情 厌世、报复、自杀、遭遇不公 + */ + void syncPoliceInstance(); } diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java index 8c7af9e..ff4fd3c 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java @@ -120,9 +120,6 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { List> mobiles = IntStream.range(0, (mobiles2.size() + 9999) / 10000) .mapToObj(i -> mobiles2.subList(i * 10000, Math.min((i + 1) * 10000, mobiles2.size()))) .collect(Collectors.toList()); - // 查询数据 - log.info("开始根据身份证实用人口信息补全 =》 {}", idCodes.size()); - int count = 0; // 身份证查到的人 List sFms = new ArrayList<>(); // 手机号查到的人 @@ -137,7 +134,9 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { LocalDate today = LocalDate.now(); GBaseSYRKXX info = null; List xxxInfo; + log.info("开始处理信息对应"); + List toInsert = new ArrayList<>(); for (RiskPersonal personal : personals) { if (personal.getIdCode() != null) { 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 hope = new WeakHashMap<>(); + for (RiskPersonal personal : toInsert) { + count++; + if(count % 100 == 0) { + log.info("{}", count); + } if (personal.getControlDepartType() != null && personal.getControlDepartType() >= DepartType.HUMAN.getType()) { continue; } - List jjds = Optional.ofNullable(jjdMap.get(personal.getIdCode())).orElse(jjdMMap.get(Optional.ofNullable(personal.getMobileNumber()).orElse(""))); - if (jjds == null || jjds.isEmpty()) { + + List jjds = jjdMap.get(personal.getIdCode()); + if (jjds == null) { + jjds = jjdMMap.get(Optional.ofNullable(personal.getMobileNumber()).orElse("")); + } + if (jjds == null|| jjds.isEmpty()) { continue; } GBaseJJD tmp = jjds.getFirst(); @@ -218,14 +229,18 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { personal.setControlDepartName(null); continue; } - PointOrg org = orgCodeMap.get(info.getSspcsdm()); - org = findOrg(org, orgIdMap); - SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(item -> jqExternalDepart.get(item)).orElse(null); + SupExternalDepart depart = hope.get(tmp.getGxdwdm()); + if(depart == 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) { personal.setControlDepartId(null); personal.setControlDepartName(null); continue; } + hope.put(tmp.getGxdwdm(), depart); personal.setControlDepartId(depart.getInternalId()); personal.setControlDepartName(depart.getInternalName()); personal.setControlDepartType(DepartType.OTHER.getType()); @@ -239,8 +254,9 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { log.info("报警时间处理异常"); } } - riskPersonalService.formatAndSave(personals, Default.BIG_TAG_JJD); - log.info("人数: {}", personals.size()); + log.info("开始写数据"); + riskPersonalService.formatAndSave(toInsert, Default.BIG_TAG_JJD); + log.info("人数: {}", toInsert.size()); } @Override @@ -299,7 +315,13 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { ).join(); } + @Override + public void syncPoliceInstance() { + + } + void toRedisCache(List jjdList, String keyName) { + RedisDao.getInstance().removeListAll(keyName); RedisDao.getInstance().pipeLineExec((connection, key, value) -> jjdList.forEach(item -> { connection.rPush(key.serialize(keyName), value.serialize(JSON.toJSONString(item))); })); diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java index 1072141..8694155 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -442,6 +442,7 @@ public class PointServiceImpl implements PointService { .id(personal.getId().toString()) .idCode(personal.getIdCode()) .tag("涉药人员") + .eventTime(LocalDateTime.now()) .personId(personal.getId()) .sourceData("发现该人员于" + drug.getGzdw() + "工作,属于特种工种中的涉药人员,增加风险分2分") .build(); @@ -816,6 +817,7 @@ public class PointServiceImpl implements PointService { .departId(person.getControlDepartId()) .departName(person.getControlDepartName()) .personId(person.getId()) + .eventTime(LocalDateTime.now()) .sourceData("发现该人员有车,增加风险分1分。") .build(); toInsert.add(createClue(task.getModelId(), 1, task.getId(), data)); diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java index 9f2a892..16f8677 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java @@ -100,7 +100,7 @@ public class PoliceServiceImpl implements PoliceService { List toInsert = new ArrayList<>(); List controlRecords = new ArrayList<>(); List toUpdatePerson = new ArrayList<>(); - List toInsertTags = new ArrayList<>(); +// List toInsertTags = new ArrayList<>(); // ******* 数据操作 ******* // 开始 for (GBaseJJD jjd : result) { @@ -117,13 +117,13 @@ public class PoliceServiceImpl implements PoliceService { } } 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()); controlRecords.add(tmpRecord); if(person.getControlTime() == null || tmpRecord.getControlTime().isAfter(person.getControlTime())) { RiskPersonal personToUpdate = getRiskPersonal(person, tmpRecord); 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; } - 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(); clue.setModelId(task.getModelId()); clue.setScore(score); clue.setName(person.getName()); clue.setIdCode(person.getIdCode()); clue.setTaskId(task.getId()); - clue.setRiskReason(tag); + clue.setRiskReason("涉"+jjd.getJqxzmc()); clue.setData(data); clue.setEventTime(jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); clue.setCreateTime(LocalDateTime.now()); diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java index bc1bc4c..cdd9194 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java +++ b/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(); BigDecimal n2 = new BigDecimal(Double.toString(Math.min(ruleScore.doubleValue(), riskScoreRule.getScore()))); 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); } // 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); total = total.add(score); } + total = total.multiply(new BigDecimal("20")); if(person.getRickScore().compareTo(total.doubleValue()) != 0) { update = new RiskPersonal(); update.setId(person.getId());