diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index cd5588c..0002cbf 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -103,14 +103,17 @@ public class ApplicationEvent { // gBaseJJDService.pullDataAndSaveRedis(start, end); - // personalService.init(); +// personalService.pullInvestigate(); // gBaseJJDService.pullAndSave(start, end); // gBaseSHRWFRService.pullAndSave(start, end); // petitionService.personPullAndSave(start, end); +// personalService.pullPetitionAgain(); // pointService.personPullAndSave(start, end); // riskPersonalService.fixed(); // +// gBaseJJDService.pullPoliceInstance(start, end); +// // riskTaskService.heightFight(initDomain(List.of(42))); // petitionService.petitionModelTask(initDomain(List.of(40))); // riskTaskService.eduModelTask(initDomain(List.of(34))); @@ -130,13 +133,10 @@ public class ApplicationEvent { // pointService.syncControlNoPower(initDomain(List.of(48))); // pointService.syncPointCall(initDomain(List.of(50))); // pointService.syncOilBuy(initDomain(List.of(52))); - pointService.syncIsPetition(initDomain(List.of(101))); - pointService.syncFatherEducation(initDomain(List.of(102))); - pointService.syncMotherEducation(initDomain(List.of(103))); - pointService.syncDomicileType(initDomain(List.of(104))); - //暂时废弃该保安 - //gBaseBAService.baModelTask(initDomain(List.of(37))); - //personalService.syncOrg(); +// pointService.syncIsPetition(initDomain(List.of(101))); +// pointService.syncFatherEducation(initDomain(List.of(102))); +// pointService.syncMotherEducation(initDomain(List.of(103))); +// pointService.syncDomicileType(initDomain(List.of(104))); }); } 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 99bb11e..4f4bde6 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java @@ -21,11 +21,46 @@ public interface GBaseJJDMapper extends BaseMapper { " and bjsj between #{startTime} and #{endTime} and (bjnr is not null or cjqk is not null) order by bjsj desc") List selectDataToRisk(@Param("startTime")String startTime, @Param("endTime")String endTime); - + /** + * 管控人员报警次数 + * @return 列表 + */ @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 " + " 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 selectPointCall(); + + /** + * 厌世人员警情 + * @return 列表 + */ + @Select(" select jjdbh, gxdwdm, gxdwmc,bjrxm, bjdh, bjnr, cjqk, bjsj from dwd_asj_zhtx_jjd " + + " where (bjnr like '%厌世%' or cjqk like '%厌世%') and bjsj between #{start} and #{end} ") + List selectHater(@Param("start")String start, @Param("end")String end); + + /** + * 遭遇不公 + * @return 列表 + */ + @Select(" select jjdbh, gxdwdm, gxdwmc,bjrxm, bjdh, bjnr, cjqk, bjsj from dwd_asj_zhtx_jjd " + + " where (bjnr like '%不公%' or cjqk like '%不公%') and bjsj between #{start} and #{end} ") + List selectInjustice(@Param("start")String start, @Param("end")String end); + + /** + * 自杀 + * @return 列表 + */ + @Select(" select jjdbh, gxdwdm, gxdwmc,bjrxm, bjdh, bjnr, cjqk, bjsj from dwd_asj_zhtx_jjd " + + " where (bjnr like '%自杀%' or cjqk like '%自杀%') and bjsj between #{start} and #{end} ") + List selectSuicide(@Param("start")String start, @Param("end")String end); + + /** + * 扬言报复 + * @return 列表 + */ + @Select(" select jjdbh, gxdwdm, gxdwmc,bjrxm, bjdh, bjnr, cjqk, bjsj from dwd_asj_zhtx_jjd " + + " where (bjnr like '%报复%' or cjqk like '%报复%') and bjsj between #{start} and #{end} ") + List selectRevenge(@Param("start")String start, @Param("end")String end); } diff --git a/src/main/java/com/biutag/supervisiondata/mapper/wdpc/WdpcJJDInstanceMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/wdpc/WdpcJJDInstanceMapper.java new file mode 100644 index 0000000..c1301ef --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/mapper/wdpc/WdpcJJDInstanceMapper.java @@ -0,0 +1,12 @@ +package com.biutag.supervisiondata.mapper.wdpc; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcJJDInstance; + +/** + * @author kami on 2024-12-05 18:10:12 + * @version 0.0.1 + * @since 1.8 + */ +public interface WdpcJJDInstanceMapper extends BaseMapper { +} diff --git a/src/main/java/com/biutag/supervisiondata/pojo/constants/Prompt.java b/src/main/java/com/biutag/supervisiondata/pojo/constants/Prompt.java index 8348e3a..1a79586 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/constants/Prompt.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/constants/Prompt.java @@ -22,4 +22,15 @@ public class Prompt { 处警情况: %s """; + + public static final String NORMAL = """ + 警情信息: + 报警人姓名:%s + 报警人公民身份证号码:%s + 报警电话号码:%s + 报警内容: + %s + 处警情况: + %s + """; } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/constants/RedisKey.java b/src/main/java/com/biutag/supervisiondata/pojo/constants/RedisKey.java new file mode 100644 index 0000000..dce7e10 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/constants/RedisKey.java @@ -0,0 +1,28 @@ +package com.biutag.supervisiondata.pojo.constants; + +import lombok.experimental.UtilityClass; + +/** + * @author kami on 2024-12-05 16:42:39 + * @version 0.0.1 + * @since 1.8 + */ +@UtilityClass +public class RedisKey { + + public static final String HATER = "hater"; + + public static final String HATER_INFO = "hater:info"; + + public static final String INJUSTICE = "injustice"; + + public static final String INJUSTICE_INFO = "injustice:info"; + + public static final String SUICIDE = "suicide"; + + public static final String SUICIDE_INFO = "suicide:info"; + + public static final String REVENGE = "revenge"; + + public static final String REVENGE_INFO = "revenge:info"; +} diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskPersonal.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskPersonal.java index f666671..4ac550b 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskPersonal.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskPersonal.java @@ -96,7 +96,6 @@ public class RiskPersonal implements Serializable { /** * 逻辑删除键 */ - @TableLogic(value = "0", delval = "1") Integer del; } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskScoreRule.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskScoreRule.java index 8abf1b4..b62aac9 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskScoreRule.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskScoreRule.java @@ -35,7 +35,7 @@ public class RiskScoreRule { // 权重 @TableField("weight") - private Integer weight; + private Double weight; // 状态 @TableField("status") diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcJJDInstance.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcJJDInstance.java new file mode 100644 index 0000000..69c5e9b --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcJJDInstance.java @@ -0,0 +1,45 @@ +package com.biutag.supervisiondata.pojo.entity.wdpc; + +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 lombok.Data; + +import java.util.Date; + +/** + * @author kami on 2024-12-03 16:44:32 + * @version 0.0.1 + * @since 1.8 + */ +@Data +@TableName("`wdpc_jjd_instance`") +public class WdpcJJDInstance { + + @TableId(value = "id",type = IdType.AUTO) + Integer id; + @TableField("jjdbh") + String jjdbh; + @TableField("name") + String name; + @TableField("id_code") + String idCode; + @TableField("mobile") + String mobile; + @TableField("model_id") + Integer modelId; + @TableField("bjnr") + String bjnr; + @TableField("`cjqk`") + String cjqk; + @TableField("bjrxm") + String bjrxm; + @TableField("bjrzjhm") + String bjrzjhm; + @TableField("bjdh") + String bjdh; + @TableField("bjsj") + Date bjsj; + +} diff --git a/src/main/java/com/biutag/supervisiondata/repository/WdpcJJDInstanceRepository.java b/src/main/java/com/biutag/supervisiondata/repository/WdpcJJDInstanceRepository.java new file mode 100644 index 0000000..43a040a --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/repository/WdpcJJDInstanceRepository.java @@ -0,0 +1,15 @@ +package com.biutag.supervisiondata.repository; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.biutag.supervisiondata.mapper.wdpc.WdpcJJDInstanceMapper; +import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcJJDInstance; +import org.springframework.stereotype.Service; + +/** + * @author kami on 2024-12-05 18:10:39 + * @version 0.0.1 + * @since 1.8 + */ +@Service +public class WdpcJJDInstanceRepository extends ServiceImpl { +} diff --git a/src/main/java/com/biutag/supervisiondata/rest/ApiController.java b/src/main/java/com/biutag/supervisiondata/rest/ApiController.java index a4f86ea..7d73466 100644 --- a/src/main/java/com/biutag/supervisiondata/rest/ApiController.java +++ b/src/main/java/com/biutag/supervisiondata/rest/ApiController.java @@ -136,49 +136,6 @@ public class ApiController { } aiList.add(ai); } -// LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); -// if(!idCodes.isEmpty()) { -// wrapper.in(GBaseSYRKXX::getGmsfhm, idCodes); -// } -// if(!idCodes.isEmpty() && !mobiles.isEmpty()) { -// wrapper.or().in(GBaseSYRKXX::getLxdh, mobiles); -// } else if(!mobiles.isEmpty()) { -// wrapper.in(GBaseSYRKXX::getLxdh, mobiles); -// } -// List xxList = repository.list(wrapper); -// Map xxMap = new WeakHashMap<>(); -// Map> xxMMap = new WeakHashMap<>(); -// for (GBaseSYRKXX syrkxx : xxList) { -// xxMap.put(syrkxx.getGmsfhm(), syrkxx); -// xxMMap.computeIfAbsent(syrkxx.getLxdh(), k -> new ArrayList<>()).add(syrkxx); -// } -// -// for (WdpcJJDAi ai : aiList) { -// GBaseSYRKXX xx = xxMap.get(ai.getIdCode()); -// if(xx != null) { -// ai.setSyrkMobile(Optional.ofNullable(xx.getLxdh()).orElse("")); -// ai.setSyrkName(Optional.ofNullable(xx.getXm()).orElse("")); -// ai.setSyrkIdCode(Optional.ofNullable(xx.getGmsfhm()).orElse("")); -// continue; -// } -// List tmp = xxMMap.get(ai.getMobile()); -// if(tmp == null || tmp.isEmpty()) { -// continue; -// } -// for (GBaseSYRKXX syrkxx : tmp) { -// if(xx == null) { -// xx = syrkxx; -// continue; -// } -// if(syrkxx.getXm().equals(ai.getName())) { -// xx = syrkxx; -// break; -// } -// } -// ai.setSyrkMobile(Optional.ofNullable(xx.getLxdh()).orElse("")); -// ai.setSyrkName(Optional.ofNullable(xx.getXm()).orElse("")); -// ai.setSyrkIdCode(Optional.ofNullable(xx.getGmsfhm()).orElse("")); -// } if(!aiList.isEmpty()) { aiRepository.saveBatch(aiList); } diff --git a/src/main/java/com/biutag/supervisiondata/rest/JJDController.java b/src/main/java/com/biutag/supervisiondata/rest/JJDController.java new file mode 100644 index 0000000..0345971 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/rest/JJDController.java @@ -0,0 +1,100 @@ +package com.biutag.supervisiondata.rest; + +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.biutag.supervisiondata.config.cache.RedisDao; +import com.biutag.supervisiondata.pojo.constants.Prompt; +import com.biutag.supervisiondata.pojo.constants.RedisKey; +import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; +import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcJJDAi; +import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcJJDInstance; +import com.biutag.supervisiondata.repository.WdpcJJDInstanceRepository; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +/** + * 接警单相关 + * + * @author kami on 2024-12-05 17:03:37 + * @version 0.0.1 + * @since 1.8 + */ +@Slf4j +@RestController +@RequestMapping("/jjd") +@AllArgsConstructor +public class JJDController { + + @GetMapping("/instance/get") + public String instanceGet(Integer modelId) { + String res = null; + switch (modelId) { + case 55 -> res = (String) RedisDao.getInstance().leftPop(RedisKey.HATER); + case 56 -> res = (String) RedisDao.getInstance().leftPop(RedisKey.SUICIDE); + case 57 -> res = (String) RedisDao.getInstance().leftPop(RedisKey.INJUSTICE); + case 58 -> res = (String) RedisDao.getInstance().leftPop(RedisKey.REVENGE); + } + if (res == null) { + return ""; + } + GBaseJJD jjd = JSON.parseObject(res, GBaseJJD.class); + + RedisDao.getInstance().set("jjd_instance:".concat(jjd.getJjdbh()), res, 3600L); + + return JSONObject.of("id", jjd.getJjdbh(), "data", String.format(Prompt.NORMAL, + Optional.ofNullable(jjd.getBjrxm()).orElse(" - ")), + Optional.ofNullable(jjd.getBjrzjhm()).orElse(" - "), + Optional.ofNullable(jjd.getBjdh()).orElse(" - "), + Optional.ofNullable(jjd.getBjnr()).orElse(" - "), + Optional.ofNullable(jjd.getCjqk()).orElse(" - ")).toJSONString(); + } + + private final WdpcJJDInstanceRepository wdpcJJDInstanceRepository; + + @CrossOrigin + @PostMapping("/instance/set") + public String instanceSet(@RequestBody JSONObject data) { + String str = (String) RedisDao.getInstance().get("jjd_instance:".concat(data.getString("id"))); + if(str == null) { + return ""; + } + GBaseJJD jjd = JSON.parseObject(str, GBaseJJD.class); + + String res = data.getString("content"); + res = res.replaceFirst("```json","").replaceAll("```", "").replaceAll("\n",""); + JSONObject jb = JSON.parseObject(res); + JSONArray array = jb.getJSONArray("informations"); + if(array.isEmpty()) { + return ""; + } + log.info("{}", array); + List aiList = new ArrayList<>(); + for (int i = 0; i < array.size(); i++) { + JSONObject obj = array.getJSONObject(i); + WdpcJJDInstance instance = new WdpcJJDInstance(); + instance.setBjdh(jjd.getBjdh()); + instance.setBjrxm(jjd.getBjrxm()); + instance.setBjrzjhm(jjd.getBjrzjhm()); + instance.setBjnr(jjd.getBjnr()); + instance.setCjqk(jjd.getCjqk()); + instance.setModelId(data.getInteger("modelId")); + instance.setBjsj(jjd.getBjsj()); + instance.setJjdbh(data.getString("id")); + + instance.setMobile(Optional.ofNullable(obj.getString("mobile")).orElse("")); + instance.setName(Optional.ofNullable(obj.getString("name")).orElse("")); + instance.setIdCode(Optional.ofNullable(obj.getString("idCode")).orElse("")); + aiList.add(instance); + } + if(!aiList.isEmpty()) { + wdpcJJDInstanceRepository.saveBatch(aiList); + } + return ""; + } +} diff --git a/src/main/java/com/biutag/supervisiondata/service/GBaseJJDService.java b/src/main/java/com/biutag/supervisiondata/service/GBaseJJDService.java index d266d1b..4c33076 100644 --- a/src/main/java/com/biutag/supervisiondata/service/GBaseJJDService.java +++ b/src/main/java/com/biutag/supervisiondata/service/GBaseJJDService.java @@ -16,4 +16,6 @@ public interface GBaseJJDService { void pullAndSave(LocalDateTime start, LocalDateTime end); void pullDataAndSaveRedis(LocalDateTime start, LocalDateTime end); + + void pullPoliceInstance(LocalDateTime start, LocalDateTime end); } 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 3c82ff1..8c7af9e 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil; import com.biutag.supervisiondata.config.cache.RedisDao; import com.biutag.supervisiondata.pojo.constants.Default; +import com.biutag.supervisiondata.pojo.constants.RedisKey; import com.biutag.supervisiondata.pojo.database.PointOrg; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; @@ -139,12 +140,16 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { for (RiskPersonal personal : personals) { if (personal.getIdCode() != null) { + String[] strs = personal.getIdCode().split(","); // 多张身份证存入异常信息 personal.setIdCode(null); - xxxInfo = Arrays.stream(personal.getIdCode().split(",")) - .map(idCodeMap::get) - .filter(Objects::nonNull) - .collect(Collectors.toList()); + xxxInfo = new ArrayList<>(); + for (String s : strs) { + GBaseSYRKXX xx = idCodeMap.get(s); + if(xx != null) { + xxxInfo.add(xx); + } + } if (!xxxInfo.isEmpty()) { info = xxxInfo.getFirst(); } else { @@ -281,6 +286,25 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { log.info("完成缓存"); } + @Override + public void pullPoliceInstance(LocalDateTime start, LocalDateTime end) { + String startTime = start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + String endTime = end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + + CompletableFuture.allOf( + CompletableFutureUtil.runSyncObject(() -> toRedisCache(gBaseJJDRepository.getBaseMapper().selectRevenge(startTime, endTime), RedisKey.REVENGE)), + CompletableFutureUtil.runSyncObject(() -> toRedisCache(gBaseJJDRepository.getBaseMapper().selectHater(startTime, endTime), RedisKey.HATER)), + CompletableFutureUtil.runSyncObject(() -> toRedisCache(gBaseJJDRepository.getBaseMapper().selectInjustice(startTime, endTime), RedisKey.INJUSTICE)), + CompletableFutureUtil.runSyncObject(() -> toRedisCache(gBaseJJDRepository.getBaseMapper().selectSuicide(startTime, endTime), RedisKey.SUICIDE)) + ).join(); + } + + void toRedisCache(List jjdList, String 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/PersonalServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java index b46e022..6c8d1ec 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java @@ -121,25 +121,42 @@ public class PersonalServiceImpl implements PersonalService { syrkxx = idCodeMap.get(item.getBjrzjhm()); cache.put(item.getBjrzjhm(), new Byte[0]); if (syrkxx != null) { - personals.add(createPerson(syrkxx, item.getBjsj(), now, end, Default.BIG_TAG_JJD)); + RiskPersonal personal = createPerson(syrkxx, item.getBjsj(), now, end, Default.BIG_TAG_JJD); + if(personal != null) { + personals.add(personal); + } } continue; } String idCards = PatternUtil.takeIdCard(item.getCjqk()); if (!idCards.isEmpty()) { String[] arr = idCards.split(","); - Arrays.stream(arr).filter(s -> cache.get(s) == null).map(idCodeMap::get) - .filter(Objects::nonNull).forEach(obj -> { - personals.add(createPerson(obj, item.getBjsj(), now, end, Default.BIG_TAG_JJD)); - cache.put(obj.getGmsfhm(), new Byte[0]); - }); + for (String s : arr) { + if(cache.get(s) != null) { + continue; + } + GBaseSYRKXX xx = idCodeMap.get(s); + if(xx == null) { + continue; + } + cache.put(xx.getGmsfhm(), new Byte[0]); + RiskPersonal personal = createPerson(xx, item.getBjsj(), now, end, Default.BIG_TAG_JJD); + if(personal == null) { + continue; + } + personals.add(personal); + } continue; } List xxList = Optional.ofNullable(mobileMap.get(item.getBjdh())).orElse(new ArrayList<>()); syrkxx = compare(xxList, item.getBjrxm()); if (syrkxx != null) { cache.put(syrkxx.getGmsfhm(), new Byte[0]); - personals.add(createPerson(syrkxx, item.getBjsj(), now, end, Default.BIG_TAG_JJD)); + RiskPersonal personal = createPerson(syrkxx, item.getBjsj(), now, end, Default.BIG_TAG_JJD); + if(personal == null) { + continue; + } + personals.add(personal); } } riskPersonalService.saveDistinct(personals); @@ -217,8 +234,12 @@ public class PersonalServiceImpl implements PersonalService { } exist.put(syrkxx.getGmsfhm(), new Byte[0]); Contradiction contradiction = map.get(syrkxx.getGmsfhm()); - personals.add(createPerson(syrkxx, Optional.of(contradiction).map(Contradiction::getMaxTime) - .orElse(null), now.toLocalDate(), now, Default.BIG_TAG_SHWFR)); + RiskPersonal personal = createPerson(syrkxx, Optional.of(contradiction).map(Contradiction::getMaxTime) + .orElse(null), now.toLocalDate(), now, Default.BIG_TAG_SHWFR); + if(personal != null) { + personals.add(personal); + } + } riskPersonalService.saveDistinct(personals); } @@ -269,7 +290,10 @@ public class PersonalServiceImpl implements PersonalService { Date nowDate = new Date(); for (GBaseSYRKXX xx : xxList) { if (map.get(xx.getGmsfhm()) == null) { - personals.add(createPerson(xx, nowDate, today, now, Default.BIG_TAG_PETITION)); + RiskPersonal personal =createPerson(xx, nowDate, today, now, Default.BIG_TAG_PETITION); + if(personal != null) { + personals.add(personal); + } map.put(xx.getGmsfhm(), new Byte[0]); } } diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java index e575ffe..7ffd231 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java @@ -158,7 +158,7 @@ public class RiskPersonalServiceImpl implements RiskPersonalService { @Override public void fixed() { List personals = repository.list(); - List del = new ArrayList<>(); + List del = new ArrayList<>(); for (RiskPersonal personal : personals) { boolean up = false; if(personal.getAge() == -1) { @@ -167,11 +167,17 @@ public class RiskPersonalServiceImpl implements RiskPersonalService { personal.setAge(age); up = true; } catch (Exception e) { - del.add(personal.getId()); + RiskPersonal delete = new RiskPersonal(); + delete.setId(personal.getId()); + delete.setDel(1); + del.add(delete); } } if(personal.getAge() <= 6) { - del.add(personal.getId()); + RiskPersonal delete = new RiskPersonal(); + delete.setId(personal.getId()); + delete.setDel(1); + del.add(delete); } if(personal.getGender().equals("-1")) { try{ @@ -180,7 +186,10 @@ public class RiskPersonalServiceImpl implements RiskPersonalService { personal.setGender(gender % 2 == 0 ?"2":"1"); up = true; } catch (Exception e) { - del.add(personal.getId()); + RiskPersonal delete = new RiskPersonal(); + delete.setId(personal.getId()); + delete.setDel(1); + del.add(delete); } } if(up) { @@ -188,9 +197,7 @@ public class RiskPersonalServiceImpl implements RiskPersonalService { } } log.info("总数: {}", del.size()); - for (Integer i : del) { - repository.removeById(i); - } + repository.updateBatchById(del); } private final RiskModelTaskClueMapper clueMapper; 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 d54911d..bc1bc4c 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java @@ -96,11 +96,13 @@ 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); score=score.add(n2); } - BigDecimal ruleScore = new BigDecimal(Double.toString(rule.getScore())); - BigDecimal weight = new BigDecimal(Integer.toString(rule.getWeight())); - score = score.multiply(weight).divide(ruleScore, 2, RoundingMode.UP); +// BigDecimal ruleScore = new BigDecimal(Double.toString(rule.getScore())); +// BigDecimal weight = new BigDecimal(Double.toString(rule.getWeight())); +// score = score.multiply(weight).divide(ruleScore, 2, RoundingMode.UP); total = total.add(score); } if(person.getRickScore().compareTo(total.doubleValue()) != 0) { @@ -109,6 +111,12 @@ public class RiskScoreRuleServiceImpl implements RiskScoreRuleService { update.setRickScore(total.doubleValue()); toUpdates.add(update); } + if(total.doubleValue() <= 0.0) { + update = new RiskPersonal(); + update.setId(person.getId()); + update.setDel(1); + toUpdates.add(update); + } count++; if(count%1000 == 0) { log.info("已完成打分: {},共计:{}", count,size);