Browse Source

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

master
kami 1 year ago
parent
commit
85ac66649c
  1. 16
      src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
  2. 37
      src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java
  3. 12
      src/main/java/com/biutag/supervisiondata/mapper/wdpc/WdpcJJDInstanceMapper.java
  4. 11
      src/main/java/com/biutag/supervisiondata/pojo/constants/Prompt.java
  5. 28
      src/main/java/com/biutag/supervisiondata/pojo/constants/RedisKey.java
  6. 1
      src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskPersonal.java
  7. 2
      src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskScoreRule.java
  8. 45
      src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcJJDInstance.java
  9. 15
      src/main/java/com/biutag/supervisiondata/repository/WdpcJJDInstanceRepository.java
  10. 43
      src/main/java/com/biutag/supervisiondata/rest/ApiController.java
  11. 100
      src/main/java/com/biutag/supervisiondata/rest/JJDController.java
  12. 2
      src/main/java/com/biutag/supervisiondata/service/GBaseJJDService.java
  13. 32
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java
  14. 44
      src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java
  15. 21
      src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java
  16. 14
      src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java

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

@ -103,14 +103,17 @@ public class ApplicationEvent {
// gBaseJJDService.pullDataAndSaveRedis(start, end); // gBaseJJDService.pullDataAndSaveRedis(start, end);
// personalService.init(); // personalService.init();
// personalService.pullInvestigate();
// gBaseJJDService.pullAndSave(start, end); // gBaseJJDService.pullAndSave(start, end);
// gBaseSHRWFRService.pullAndSave(start, end); // gBaseSHRWFRService.pullAndSave(start, end);
// petitionService.personPullAndSave(start, end); // petitionService.personPullAndSave(start, end);
// personalService.pullPetitionAgain();
// pointService.personPullAndSave(start, end); // pointService.personPullAndSave(start, end);
// riskPersonalService.fixed(); // riskPersonalService.fixed();
// //
// gBaseJJDService.pullPoliceInstance(start, end);
//
// riskTaskService.heightFight(initDomain(List.of(42))); // riskTaskService.heightFight(initDomain(List.of(42)));
// petitionService.petitionModelTask(initDomain(List.of(40))); // petitionService.petitionModelTask(initDomain(List.of(40)));
// riskTaskService.eduModelTask(initDomain(List.of(34))); // riskTaskService.eduModelTask(initDomain(List.of(34)));
@ -130,13 +133,10 @@ public class ApplicationEvent {
// pointService.syncControlNoPower(initDomain(List.of(48))); // pointService.syncControlNoPower(initDomain(List.of(48)));
// pointService.syncPointCall(initDomain(List.of(50))); // pointService.syncPointCall(initDomain(List.of(50)));
// pointService.syncOilBuy(initDomain(List.of(52))); // pointService.syncOilBuy(initDomain(List.of(52)));
pointService.syncIsPetition(initDomain(List.of(101))); // pointService.syncIsPetition(initDomain(List.of(101)));
pointService.syncFatherEducation(initDomain(List.of(102))); // pointService.syncFatherEducation(initDomain(List.of(102)));
pointService.syncMotherEducation(initDomain(List.of(103))); // pointService.syncMotherEducation(initDomain(List.of(103)));
pointService.syncDomicileType(initDomain(List.of(104))); // pointService.syncDomicileType(initDomain(List.of(104)));
//暂时废弃该保安
//gBaseBAService.baModelTask(initDomain(List.of(37)));
//personalService.syncOrg();
}); });
} }

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

@ -21,11 +21,46 @@ public interface GBaseJJDMapper extends BaseMapper<GBaseJJD> {
" and bjsj between #{startTime} and #{endTime} and (bjnr is not null or cjqk is not null) order by bjsj desc") " and bjsj between #{startTime} and #{endTime} and (bjnr is not null or cjqk is not null) order by bjsj desc")
List<GBaseJJD> selectDataToRisk(@Param("startTime")String startTime, @Param("endTime")String endTime); List<GBaseJJD> selectDataToRisk(@Param("startTime")String startTime, @Param("endTime")String endTime);
/**
* 管控人员报警次数
* @return 列表
*/
@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',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 " + " 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, 1) != '9',1,0)) > 5 or sum(IF(SUBSTR(jqxzdm, 1, 1) = '9',1,0)) > 100")
List<MuchCall> selectPointCall(); List<MuchCall> 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<GBaseJJD> 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<GBaseJJD> 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<GBaseJJD> 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<GBaseJJD> selectRevenge(@Param("start")String start, @Param("end")String end);
} }

12
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<WdpcJJDInstance> {
}

11
src/main/java/com/biutag/supervisiondata/pojo/constants/Prompt.java

@ -22,4 +22,15 @@ public class Prompt {
处警情况 处警情况
%s %s
"""; """;
public static final String NORMAL = """
警情信息
报警人姓名%s
报警人公民身份证号码%s
报警电话号码%s
报警内容
%s
处警情况
%s
""";
} }

28
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";
}

1
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; Integer del;
} }

2
src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskScoreRule.java

@ -35,7 +35,7 @@ public class RiskScoreRule {
// 权重 // 权重
@TableField("weight") @TableField("weight")
private Integer weight; private Double weight;
// 状态 // 状态
@TableField("status") @TableField("status")

45
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;
}

15
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<WdpcJJDInstanceMapper, WdpcJJDInstance> {
}

43
src/main/java/com/biutag/supervisiondata/rest/ApiController.java

@ -136,49 +136,6 @@ public class ApiController {
} }
aiList.add(ai); aiList.add(ai);
} }
// LambdaQueryWrapper<GBaseSYRKXX> wrapper = new LambdaQueryWrapper<GBaseSYRKXX>();
// 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<GBaseSYRKXX> xxList = repository.list(wrapper);
// Map<String, GBaseSYRKXX> xxMap = new WeakHashMap<>();
// Map<String, List<GBaseSYRKXX>> 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<GBaseSYRKXX> 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()) { if(!aiList.isEmpty()) {
aiRepository.saveBatch(aiList); aiRepository.saveBatch(aiList);
} }

100
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<WdpcJJDInstance> 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 "";
}
}

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

@ -16,4 +16,6 @@ public interface GBaseJJDService {
void pullAndSave(LocalDateTime start, LocalDateTime end); void pullAndSave(LocalDateTime start, LocalDateTime end);
void pullDataAndSaveRedis(LocalDateTime start, LocalDateTime end); void pullDataAndSaveRedis(LocalDateTime start, LocalDateTime end);
void pullPoliceInstance(LocalDateTime start, LocalDateTime end);
} }

32
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.common.interfaces.CompletableFutureUtil;
import com.biutag.supervisiondata.config.cache.RedisDao; import com.biutag.supervisiondata.config.cache.RedisDao;
import com.biutag.supervisiondata.pojo.constants.Default; 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.database.PointOrg;
import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD;
@ -139,12 +140,16 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
for (RiskPersonal personal : personals) { for (RiskPersonal personal : personals) {
if (personal.getIdCode() != null) { if (personal.getIdCode() != null) {
String[] strs = personal.getIdCode().split(",");
// 多张身份证存入异常信息 // 多张身份证存入异常信息
personal.setIdCode(null); personal.setIdCode(null);
xxxInfo = Arrays.stream(personal.getIdCode().split(",")) xxxInfo = new ArrayList<>();
.map(idCodeMap::get) for (String s : strs) {
.filter(Objects::nonNull) GBaseSYRKXX xx = idCodeMap.get(s);
.collect(Collectors.toList()); if(xx != null) {
xxxInfo.add(xx);
}
}
if (!xxxInfo.isEmpty()) { if (!xxxInfo.isEmpty()) {
info = xxxInfo.getFirst(); info = xxxInfo.getFirst();
} else { } else {
@ -281,6 +286,25 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
log.info("完成缓存"); 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<GBaseJJD> jjdList, String keyName) {
RedisDao.getInstance().pipeLineExec((connection, key, value) -> jjdList.forEach(item -> {
connection.rPush(key.serialize(keyName), value.serialize(JSON.toJSONString(item)));
}));
}
/** /**
* 多身份证对比名称 * 多身份证对比名称
* *

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

@ -121,25 +121,42 @@ public class PersonalServiceImpl implements PersonalService {
syrkxx = idCodeMap.get(item.getBjrzjhm()); syrkxx = idCodeMap.get(item.getBjrzjhm());
cache.put(item.getBjrzjhm(), new Byte[0]); cache.put(item.getBjrzjhm(), new Byte[0]);
if (syrkxx != null) { 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; continue;
} }
String idCards = PatternUtil.takeIdCard(item.getCjqk()); String idCards = PatternUtil.takeIdCard(item.getCjqk());
if (!idCards.isEmpty()) { if (!idCards.isEmpty()) {
String[] arr = idCards.split(","); String[] arr = idCards.split(",");
Arrays.stream(arr).filter(s -> cache.get(s) == null).map(idCodeMap::get) for (String s : arr) {
.filter(Objects::nonNull).forEach(obj -> { if(cache.get(s) != null) {
personals.add(createPerson(obj, item.getBjsj(), now, end, Default.BIG_TAG_JJD)); continue;
cache.put(obj.getGmsfhm(), new Byte[0]); }
}); 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; continue;
} }
List<GBaseSYRKXX> xxList = Optional.ofNullable(mobileMap.get(item.getBjdh())).orElse(new ArrayList<>()); List<GBaseSYRKXX> xxList = Optional.ofNullable(mobileMap.get(item.getBjdh())).orElse(new ArrayList<>());
syrkxx = compare(xxList, item.getBjrxm()); syrkxx = compare(xxList, item.getBjrxm());
if (syrkxx != null) { if (syrkxx != null) {
cache.put(syrkxx.getGmsfhm(), new Byte[0]); 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); riskPersonalService.saveDistinct(personals);
@ -217,8 +234,12 @@ public class PersonalServiceImpl implements PersonalService {
} }
exist.put(syrkxx.getGmsfhm(), new Byte[0]); exist.put(syrkxx.getGmsfhm(), new Byte[0]);
Contradiction contradiction = map.get(syrkxx.getGmsfhm()); Contradiction contradiction = map.get(syrkxx.getGmsfhm());
personals.add(createPerson(syrkxx, Optional.of(contradiction).map(Contradiction::getMaxTime) RiskPersonal personal = createPerson(syrkxx, Optional.of(contradiction).map(Contradiction::getMaxTime)
.orElse(null), now.toLocalDate(), now, Default.BIG_TAG_SHWFR)); .orElse(null), now.toLocalDate(), now, Default.BIG_TAG_SHWFR);
if(personal != null) {
personals.add(personal);
}
} }
riskPersonalService.saveDistinct(personals); riskPersonalService.saveDistinct(personals);
} }
@ -269,7 +290,10 @@ public class PersonalServiceImpl implements PersonalService {
Date nowDate = new Date(); Date nowDate = new Date();
for (GBaseSYRKXX xx : xxList) { for (GBaseSYRKXX xx : xxList) {
if (map.get(xx.getGmsfhm()) == null) { 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]); map.put(xx.getGmsfhm(), new Byte[0]);
} }
} }

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

@ -158,7 +158,7 @@ public class RiskPersonalServiceImpl implements RiskPersonalService {
@Override @Override
public void fixed() { public void fixed() {
List<RiskPersonal> personals = repository.list(); List<RiskPersonal> personals = repository.list();
List<Integer> del = new ArrayList<>(); List<RiskPersonal> del = new ArrayList<>();
for (RiskPersonal personal : personals) { for (RiskPersonal personal : personals) {
boolean up = false; boolean up = false;
if(personal.getAge() == -1) { if(personal.getAge() == -1) {
@ -167,11 +167,17 @@ public class RiskPersonalServiceImpl implements RiskPersonalService {
personal.setAge(age); personal.setAge(age);
up = true; up = true;
} catch (Exception e) { } 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) { 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")) { if(personal.getGender().equals("-1")) {
try{ try{
@ -180,7 +186,10 @@ public class RiskPersonalServiceImpl implements RiskPersonalService {
personal.setGender(gender % 2 == 0 ?"2":"1"); personal.setGender(gender % 2 == 0 ?"2":"1");
up = true; up = true;
} catch (Exception e) { } catch (Exception e) {
del.add(personal.getId()); RiskPersonal delete = new RiskPersonal();
delete.setId(personal.getId());
delete.setDel(1);
del.add(delete);
} }
} }
if(up) { if(up) {
@ -188,9 +197,7 @@ public class RiskPersonalServiceImpl implements RiskPersonalService {
} }
} }
log.info("总数: {}", del.size()); log.info("总数: {}", del.size());
for (Integer i : del) { repository.updateBatchById(del);
repository.removeById(i);
}
} }
private final RiskModelTaskClueMapper clueMapper; private final RiskModelTaskClueMapper clueMapper;

14
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(); 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()));
n2 = n2.multiply(weight);
score=score.add(n2); score=score.add(n2);
} }
BigDecimal ruleScore = new BigDecimal(Double.toString(rule.getScore())); // BigDecimal ruleScore = new BigDecimal(Double.toString(rule.getScore()));
BigDecimal weight = new BigDecimal(Integer.toString(rule.getWeight())); // BigDecimal weight = new BigDecimal(Double.toString(rule.getWeight()));
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);
} }
if(person.getRickScore().compareTo(total.doubleValue()) != 0) { if(person.getRickScore().compareTo(total.doubleValue()) != 0) {
@ -109,6 +111,12 @@ public class RiskScoreRuleServiceImpl implements RiskScoreRuleService {
update.setRickScore(total.doubleValue()); update.setRickScore(total.doubleValue());
toUpdates.add(update); toUpdates.add(update);
} }
if(total.doubleValue() <= 0.0) {
update = new RiskPersonal();
update.setId(person.getId());
update.setDel(1);
toUpdates.add(update);
}
count++; count++;
if(count%1000 == 0) { if(count%1000 == 0) {
log.info("已完成打分: {},共计:{}", count,size); log.info("已完成打分: {},共计:{}", count,size);

Loading…
Cancel
Save