Browse Source

精神病

master
kami 1 year ago
parent
commit
b7c6b20311
  1. 12
      src/main/java/com/biutag/supervisiondata/mapper/wdpc/WdpcGrjdJsbryMapper.java
  2. 4
      src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java
  3. 54
      src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcGrjdJsbry.java
  4. 12
      src/main/java/com/biutag/supervisiondata/repository/RiskTaskRepository.java
  5. 16
      src/main/java/com/biutag/supervisiondata/repository/WdpcGrjdJsbryRepository.java
  6. 1
      src/main/java/com/biutag/supervisiondata/rest/JJDController.java
  7. 5
      src/main/java/com/biutag/supervisiondata/service/PersonalService.java
  8. 13
      src/main/java/com/biutag/supervisiondata/service/WdpcGrjdJsbryService.java
  9. 20
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java
  10. 121
      src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java
  11. 2
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java
  12. 11
      src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java
  13. 2
      src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java
  14. 121
      src/main/java/com/biutag/supervisiondata/service/impl/WdpcGrjdJsbryServiceService.java
  15. 25
      src/main/java/com/biutag/supervisiondata/util/OrgUtil.java

12
src/main/java/com/biutag/supervisiondata/mapper/wdpc/WdpcGrjdJsbryMapper.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.WdpcGrjdJsbry;
/**
* @author kami on 2024-12-06 10:23:13
* @version 0.0.1
* @since 1.8
*/
public interface WdpcGrjdJsbryMapper extends BaseMapper<WdpcGrjdJsbry> {
}

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

@ -50,6 +50,8 @@ public class Default {
public static final String INVESTIGATE_FOUR = "四无人员";
public static final String PSYCHOSIS_TAG = "精神障碍患者";
// ***********因素*************
public static final String AGE_IG = "年龄因素";
@ -97,4 +99,6 @@ public class Default {
public static final String MOTHER_EDUCATION = "母亲文化程度";
public static final String DOMICILETYPE = "户籍类型";
}

54
src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcGrjdJsbry.java

@ -0,0 +1,54 @@
package com.biutag.supervisiondata.pojo.entity.wdpc;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* 精神病人
* @author kami on 2024-12-06 10:20:42
* @version 0.0.1
* @since 1.8
*/
@Data
@TableName("`wdpc_grjd_jsbry`")
public class WdpcGrjdJsbry implements Serializable {
/**
* 名称
*/
@TableField("`name`")
String name;
/**
* 身份证号码
*/
@TableField("`id_code`")
String idCode;
@TableField("`actaul_time`")
String actaulTime;
@TableField("`actaul_id`")
String actaulId;
/**
* 症状
*/
@TableField("`disease_describe`")
String diseaseDescribe;
/**
* 肇事次数
*/
@TableField("`illegal_number`")
Integer illegalNumber;
/**
* 自杀次数
*/
@TableField("`hurt_self_number`")
String hurtSelfNumber;
/**
* 自杀未遂次数
*/
@TableField("`suicide_number`")
Integer suicideNumber;
}

12
src/main/java/com/biutag/supervisiondata/repository/RiskTaskRepository.java

@ -5,6 +5,8 @@ import com.biutag.supervisiondata.mapper.mine.RiskTaskMapper;
import com.biutag.supervisiondata.pojo.entity.mine.RiskTask;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/**
* @author kami on 2024-11-11 14:10:01
* @version 0.0.1
@ -12,4 +14,14 @@ import org.springframework.stereotype.Service;
*/
@Service
public class RiskTaskRepository extends ServiceImpl<RiskTaskMapper, RiskTask> {
public RiskTask create(Integer size, Integer modelId) {
RiskTask task = new RiskTask();
task.setModelId(modelId);
task.setStartTime(LocalDateTime.now());
task.setState(0);
task.setScanSize(size);
save(task);
return task;
}
}

16
src/main/java/com/biutag/supervisiondata/repository/WdpcGrjdJsbryRepository.java

@ -0,0 +1,16 @@
package com.biutag.supervisiondata.repository;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervisiondata.mapper.wdpc.WdpcGrjdJsbryMapper;
import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdJsbry;
import org.springframework.stereotype.Service;
/**
* @author kami on 2024-12-06 10:25:23
* @version 0.0.1
* @since 1.8
*/
@Service
public class WdpcGrjdJsbryRepository extends ServiceImpl<WdpcGrjdJsbryMapper, WdpcGrjdJsbry> {
}

1
src/main/java/com/biutag/supervisiondata/rest/JJDController.java

@ -7,7 +7,6 @@ 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;

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

@ -43,5 +43,10 @@ public interface PersonalService {
*/
void pullInvestigate();
/**
* 精神病
*/
void pullPsychosis();
void init();
}

13
src/main/java/com/biutag/supervisiondata/service/WdpcGrjdJsbryService.java

@ -0,0 +1,13 @@
package com.biutag.supervisiondata.service;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain;
/**
* @author kami on 2024-12-06 12:47:08
* @version 0.0.1
* @since 1.8
*/
public interface WdpcGrjdJsbryService {
void syncPys(TaskParamDomain domain);
}

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

@ -20,6 +20,7 @@ import com.biutag.supervisiondata.repository.SupExternalDepartRepository;
import com.biutag.supervisiondata.service.GBaseJJDService;
import com.biutag.supervisiondata.service.RiskPersonalService;
import com.biutag.supervisiondata.util.IdCodeUtil;
import com.biutag.supervisiondata.util.OrgUtil;
import com.biutag.supervisiondata.util.PatternUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -178,7 +179,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
personal = refreshPersonal(personal, info, today);
if (info.getSspcsdm() != null) {
PointOrg org = orgCodeMap.get(info.getSspcsdm());
org = findOrg(org, orgIdMap);
org = OrgUtil.findOrg(org, orgIdMap);
if (org != null) {
SupExternalDepart depart = pointExternalDepart.get(org.getDm());
if (depart != null) {
@ -194,13 +195,8 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
}
}
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()) {
continue;
}
@ -232,7 +228,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
SupExternalDepart depart = hope.get(tmp.getGxdwdm());
if(depart == null) {
PointOrg org = orgCodeMap.get(tmp.getGxdwdm());
org = findOrg(org, orgIdMap);
org = OrgUtil.findOrg(org, orgIdMap);
depart = Optional.ofNullable(org).map(PointOrg::getDm).map(item -> jqExternalDepart.get(item)).orElse(null);
}
if (depart == null) {
@ -345,16 +341,6 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
return info;
}
PointOrg findOrg(PointOrg org, Map<String, PointOrg> orgIdMap) {
if (org == null) {
return null;
}
if (org.getPcs() == null || !org.getPcs().equals("1")) {
return findOrg(orgIdMap.get(org.getPid()), orgIdMap);
}
return org;
}
RiskPersonal createPerson(GBaseJJD item) {
RiskPersonal person = new RiskPersonal();
person.setName(item.getBjrxm());

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

@ -4,10 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil;
import com.biutag.supervisiondata.pojo.constants.Default;
import com.biutag.supervisiondata.pojo.database.Contradiction;
import com.biutag.supervisiondata.pojo.database.PointOrg;
import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseZDRY;
import com.biutag.supervisiondata.pojo.entity.mine.*;
import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdJsbry;
import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdXfsj;
import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdXfsjCs;
import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcRyLgXX;
@ -16,6 +18,7 @@ import com.biutag.supervisiondata.repository.*;
import com.biutag.supervisiondata.service.PersonalService;
import com.biutag.supervisiondata.service.RiskPersonalService;
import com.biutag.supervisiondata.util.IdCodeUtil;
import com.biutag.supervisiondata.util.OrgUtil;
import com.biutag.supervisiondata.util.PatternUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -187,7 +190,8 @@ public class PersonalServiceImpl implements PersonalService {
personal.setControlDepartType(DepartType.POINT.getType());
try {
personal.setControlTime(LocalDateTime.parse(ry.getJlbgsj(), DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
} catch (Exception e) {
} catch (Exception ignored) {
}
// 基本信息
personal.setAge(IdCodeUtil.idCard2Age(personal.getIdCode(), now));
@ -312,31 +316,57 @@ public class PersonalServiceImpl implements PersonalService {
@Override
public void pullPetitionAgain() {
List<String> idCodes = new ArrayList<>();
CompletableFuture.allOf(CompletableFutureUtil.runSyncObject(() -> {
idCodes.addAll(xfsjRepository.list(new LambdaQueryWrapper<WdpcGrjdXfsj>().select(WdpcGrjdXfsj::getIdCode, WdpcGrjdXfsj::getName)).stream().map(WdpcGrjdXfsj::getIdCode).toList());
}), CompletableFutureUtil.runSyncObject(() -> {
idCodes.addAll(xfsjCsRepository.list(new LambdaQueryWrapper<WdpcGrjdXfsjCs>().select(WdpcGrjdXfsjCs::getIdCode, WdpcGrjdXfsjCs::getName)).stream().map(WdpcGrjdXfsjCs::getIdCode).toList());
})).join();
CompletableFuture.allOf(CompletableFutureUtil.runSyncObject(() -> idCodes.addAll(xfsjRepository.list(new LambdaQueryWrapper<WdpcGrjdXfsj>().select(WdpcGrjdXfsj::getIdCode, WdpcGrjdXfsj::getName)).stream().map(WdpcGrjdXfsj::getIdCode).toList())), CompletableFutureUtil.runSyncObject(() -> idCodes.addAll(xfsjCsRepository.list(new LambdaQueryWrapper<WdpcGrjdXfsjCs>().select(WdpcGrjdXfsjCs::getIdCode, WdpcGrjdXfsjCs::getName)).stream().map(WdpcGrjdXfsjCs::getIdCode).toList()))).join();
List<String> idCards = idCodes.stream().distinct().toList();
List<List<String>> idCards2 = IntStream.range(0, (idCards.size() + 9999) / 10000)
.mapToObj(i -> idCards.subList(i * 10000, Math.min((i + 1) * 10000, idCards.size())))
.toList();
List<GBaseSYRKXX> xxList = new ArrayList<>();
xxList.addAll(getByIdCode(idCards2));
List<SupExternalDepart> supDeparts = externalDepartRepository.list(new LambdaQueryWrapper<SupExternalDepart>()
.select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, SupExternalDepart::getSource)
.eq(SupExternalDepart::getSource, "重点人员"));
List<PointOrg> orgs = zdryRepository.getBaseMapper().selectOrg();
Map<String, PointOrg> orgIdMap = new WeakHashMap<>();
Map<String, PointOrg> orgCodeMap = new WeakHashMap<>();
for (PointOrg org : orgs) {
orgIdMap.put(org.getId(), org);
orgCodeMap.put(org.getDm(), org);
}
Map<String, SupExternalDepart> supExternalDepartMap = supDeparts.stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val,old) -> val));
List<GBaseSYRKXX> xxList = new ArrayList<>(getByIdCode(idCards2));
// 去重
List<RiskPersonal> personals = new ArrayList<>();
Map<String, Byte[]> map = new WeakHashMap<>();
LocalDateTime now = LocalDateTime.now();
LocalDate today = now.toLocalDate();
Date nowDate = new Date();
Map<String, SupExternalDepart> hope = new WeakHashMap<>();
for (GBaseSYRKXX xx : xxList) {
if (map.get(xx.getGmsfhm()) == null) {
RiskPersonal personal = createPerson(xx, nowDate, today, now, Default.BIG_TAG_PETITION);
if(personal == null) {
continue;
}
SupExternalDepart depart = hope.get(xx.getSspcsdm());
if(depart == null) {
personal.setMobileNumber(xx.getLxdh());
PointOrg org = orgCodeMap.get(xx.getSspcsdm());
org = OrgUtil.findOrg(org, orgIdMap);
depart = Optional.ofNullable(org).map(PointOrg::getDm).map(supExternalDepartMap::get).orElse(null);
}
if(depart != null) {
hope.put(xx.getSspcsdm(), depart);
personal.setControlDepartId(depart.getInternalId());
personal.setControlDepartName(depart.getInternalName());
personal.setControlDepartType(DepartType.HUMAN.getType());
} else {
personal.setControlDepartId(null);
personal.setControlDepartName(null);
}
personals.add(personal);
map.put(xx.getGmsfhm(), new Byte[0]);
}
@ -371,6 +401,79 @@ public class PersonalServiceImpl implements PersonalService {
}
}
private final WdpcGrjdJsbryRepository jsbryRepository;
private final SupExternalDepartRepository externalDepartRepository;
@Override
public void pullPsychosis() {
List<WdpcGrjdJsbry> jsbryList = jsbryRepository.list(new LambdaQueryWrapper<WdpcGrjdJsbry>()
.select(WdpcGrjdJsbry::getName, WdpcGrjdJsbry::getIdCode, WdpcGrjdJsbry::getActaulTime));
LocalDate now = LocalDate.now();
// id去重
List<String> idCodes = jsbryList.stream().map(WdpcGrjdJsbry::getIdCode).distinct().toList();
List<List<String>> idCards2 = IntStream.range(0, (idCodes.size() + 9999) / 10000)
.mapToObj(i -> idCodes.subList(i * 10000, Math.min((i + 1) * 10000, idCodes.size())))
.toList();
List<GBaseSYRKXX> xxList = new ArrayList<>(getByIdCode(idCards2));
Map<String, GBaseSYRKXX> xxMap = xxList.stream().collect(Collectors.toMap(GBaseSYRKXX::getGmsfhm, Function.identity(), (val, old) -> val));
List<SupExternalDepart> supDeparts = externalDepartRepository.list(new LambdaQueryWrapper<SupExternalDepart>()
.select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, SupExternalDepart::getSource)
.eq(SupExternalDepart::getSource, "重点人员"));
List<PointOrg> orgs = zdryRepository.getBaseMapper().selectOrg();
Map<String, PointOrg> orgIdMap = new WeakHashMap<>();
Map<String, PointOrg> orgCodeMap = new WeakHashMap<>();
for (PointOrg org : orgs) {
orgIdMap.put(org.getId(), org);
orgCodeMap.put(org.getDm(), org);
}
Map<String, SupExternalDepart> supExternalDepartMap = supDeparts.stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val,old) -> val));
Map<String, Byte[]> map = new WeakHashMap<>();
List<RiskPersonal> personals = new ArrayList<>();
Map<String, SupExternalDepart> hope = new WeakHashMap<>();
for (WdpcGrjdJsbry ry : jsbryList) {
if(map.get(ry.getIdCode()) != null) {
continue;
}
map.put(ry.getIdCode(), new Byte[0]);
GBaseSYRKXX xx = xxMap.get(ry.getIdCode());
RiskPersonal person = new RiskPersonal();
person.setName(ry.getName());
person.setIdCode(ry.getIdCode());
person.setAge(IdCodeUtil.idCard2Age(ry.getIdCode(), now));
person.setGender(IdCodeUtil.idCard2Gender(ry.getIdCode()));
person.setCreateTime(LocalDateTime.now());
person.setControlTime(LocalDateTime.now());
if(xx != null) {
SupExternalDepart depart = hope.get(xx.getSspcsdm());
if(depart == null) {
person.setMobileNumber(xx.getLxdh());
PointOrg org = orgCodeMap.get(xx.getSspcsdm());
org = OrgUtil.findOrg(org, orgIdMap);
depart = Optional.ofNullable(org).map(PointOrg::getDm).map(supExternalDepartMap::get).orElse(null);
}
if(depart != null) {
hope.put(xx.getSspcsdm(), depart);
person.setControlDepartId(depart.getInternalId());
person.setControlDepartName(depart.getInternalName());
person.setControlDepartType(DepartType.HUMAN.getType());
}
}
person.setTags(Default.PSYCHOSIS_TAG);
personals.add(person);
}
if(!personals.isEmpty()) {
riskPersonalService.saveDistinct(personals);
}
}
private final RiskTestRepository riskTestRepository;
@Override
@ -439,7 +542,7 @@ public class PersonalServiceImpl implements PersonalService {
person.setMobileNumber(item.getLxdh());
person.setControlDepartId(item.getSspcsdm());
person.setControlDepartName(item.getSspcsmc());
person.setControlDepartType(DepartType.HUMAN.getType());
person.setControlDepartType(DepartType.OTHER.getType());
person.setIdCode(item.getGmsfhm().toUpperCase());
person.setCreateTime(time);
person.setAge(IdCodeUtil.idCard2Age(person.getIdCode(), now));

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

@ -1012,7 +1012,7 @@ public class PointServiceImpl implements PointService {
.filter(Character::isDigit)
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
.toString();
if (number.length() < 8 || number.equals("00000000")) {
if (number.length() <= 8 || number.equals("00000000")) {
continue;
}
mobiles.append(m).append(",");

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

@ -63,7 +63,6 @@ public class RiskPersonalServiceImpl implements RiskPersonalService {
.in(RiskPersonal::getIdCode, old)));
}
Map<String, RiskPersonal> oldMap = oldPerson.stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (oldValue, newValue) -> newValue));
// list.stream().filter(item -> item.getIdCode()!=null).forEach(it -> it.setIdCode(it.getIdCode().toUpperCase()));
// 暂时先去重 后面要加标签
Map<String, List<RiskPersonal>> map = list.stream().filter(item -> item.getIdCode()!=null)
.collect(Collectors.groupingBy(RiskPersonal::getIdCode));
@ -75,16 +74,6 @@ 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);
// }
// 看看这个人老数据里面有没有
RiskPersonal oldPersonal = oldMap.get(tmp.getIdCode());
if(oldPersonal == null) {

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

@ -119,7 +119,7 @@ public class RiskScoreRuleServiceImpl implements RiskScoreRuleService {
toUpdates.add(update);
}
count++;
if(count%1000 == 0) {
if(count%100000 == 0) {
log.info("已完成打分: {},共计:{}", count,size);
}
}

121
src/main/java/com/biutag/supervisiondata/service/impl/WdpcGrjdJsbryServiceService.java

@ -0,0 +1,121 @@
package com.biutag.supervisiondata.service.impl;
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.mine.RiskModelTaskClue;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal;
import com.biutag.supervisiondata.pojo.entity.mine.RiskTask;
import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdJsbry;
import com.biutag.supervisiondata.repository.RiskTaskRepository;
import com.biutag.supervisiondata.repository.WdpcGrjdJsbryRepository;
import com.biutag.supervisiondata.service.WdpcGrjdJsbryService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @author kami on 2024-12-06 14:01:46
* @version 0.0.1
* @since 1.8
*/
@Slf4j
@Service
@AllArgsConstructor
public class WdpcGrjdJsbryServiceService implements WdpcGrjdJsbryService {
private final WdpcGrjdJsbryRepository jsbryRepository;
private final RiskTaskRepository taskRepository;
@Override
public void syncPys(TaskParamDomain domain) {
List<WdpcGrjdJsbry> jsbryList = jsbryRepository.list(new LambdaQueryWrapper<WdpcGrjdJsbry>()
.select(WdpcGrjdJsbry::getName, WdpcGrjdJsbry::getIdCode, WdpcGrjdJsbry::getActaulTime,
WdpcGrjdJsbry::getActaulId, WdpcGrjdJsbry::getSuicideNumber, WdpcGrjdJsbry::getHurtSelfNumber,WdpcGrjdJsbry::getIllegalNumber,WdpcGrjdJsbry::getDiseaseDescribe));
Map<String, List<WdpcGrjdJsbry>> jsbMap = jsbryList.stream().collect(Collectors.groupingBy(WdpcGrjdJsbry::getIdCode));
RiskTask task = taskRepository.create(jsbryList.size(), 59);
List<RiskModelTaskClue> oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>());
Map<String, RiskModelTaskClue> oldClueMap = oldList.stream().collect(Collectors.toMap(RiskModelTaskClue::getIdCode, Function.identity(), (val, old) -> val));
List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (Map.Entry<String, List<WdpcGrjdJsbry>> entry : jsbMap.entrySet()) {
if(oldClueMap.get(entry.getKey()) != null) {
continue;
}
StringBuilder text = new StringBuilder("该人员是精神障碍患者,诊断为");
StringBuilder tag = new StringBuilder();
StringBuilder tag2 = new StringBuilder();
WdpcGrjdJsbry jsb = entry.getValue().getFirst();
LocalDate date = null;
for (WdpcGrjdJsbry wdpcGrjdJsbry : entry.getValue()) {
if(tag.indexOf(wdpcGrjdJsbry.getActaulId()) != -1) {
tag.append(wdpcGrjdJsbry.getActaulId()).append(",");
text.append(wdpcGrjdJsbry.getActaulId()).append(",");
if(wdpcGrjdJsbry.getDiseaseDescribe()!=null && !wdpcGrjdJsbry.getDiseaseDescribe().isEmpty()) {
tag2.append(wdpcGrjdJsbry.getDiseaseDescribe()).append(",");
}
}
try {
LocalDate tmp = LocalDate.parse(jsb.getActaulTime(), DateTimeFormatter.ofPattern("yyyyMMdd"));
if(date == null) {
date = tmp;
continue;
}
if(tmp.isAfter(date)) {
date = tmp;
}
} catch (Exception e) {
log.error("精神病转化时间异常");
}
}
if(tag2.length() > 0) {
text.append("症状为:").append(tag2);
}
text.append("增加风险分5分");
ClueData data = ClueData.builder()
.name(jsb.getName())
.id("psychosis")
.idCode(jsb.getIdCode())
.tag(Default.PSYCHOSIS_TAG)
.sourceData(text.toString())
.build();
if(date != null) {
data.setEventTime(date.atTime(0,0,0));
} else {
data.setEventTime(LocalDateTime.now());
}
toInsert.add(createClue(task.getModelId(), 5, task.getId(), data));
}
}
RiskModelTaskClue createClue(Integer modelId, Integer score, Integer taskId, ClueData data) {
RiskModelTaskClue clue = new RiskModelTaskClue();
clue.setModelId(modelId);
clue.setScore(score);
clue.setName(data.getName());
clue.setIdCode(data.getIdCode());
clue.setTaskId(taskId);
clue.setData(data.getSourceData());
clue.setEventTime(data.getEventTime());
clue.setCreateTime(LocalDateTime.now());
clue.setUpdateTime(LocalDateTime.now());
clue.setCaseIds(data.getId());
clue.setRiskReason(data.getTag());
return clue;
}
}

25
src/main/java/com/biutag/supervisiondata/util/OrgUtil.java

@ -0,0 +1,25 @@
package com.biutag.supervisiondata.util;
import com.biutag.supervisiondata.pojo.database.PointOrg;
import lombok.experimental.UtilityClass;
import java.util.Map;
/**
* @author kami on 2024-12-06 10:43:55
* @version 0.0.1
* @since 1.8
*/
@UtilityClass
public class OrgUtil {
public static PointOrg findOrg(PointOrg org, Map<String, PointOrg> orgIdMap) {
if (org == null) {
return null;
}
if (org.getPcs() == null || !org.getPcs().equals("1")) {
return findOrg(orgIdMap.get(org.getPid()), orgIdMap);
}
return org;
}
}
Loading…
Cancel
Save