Browse Source

Merge remote-tracking branch 'origin/master'

master
sjh 1 year ago
parent
commit
50cf2aaa1c
  1. 12
      src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcGrjdJsbry.java
  2. 2
      src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java
  3. 57
      src/main/java/com/biutag/supervisiondata/service/impl/WdpcGrjdJsbryServiceService.java

12
src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcGrjdJsbry.java

@ -26,10 +26,10 @@ public class WdpcGrjdJsbry implements Serializable {
*/
@TableField("`id_code`")
String idCode;
@TableField("`actaul_time`")
String actaulTime;
@TableField("`actaul_id`")
String actaulId;
@TableField("`actual_time`")
String actualTime;
@TableField("`actual_id`")
String actualId;
/**
* 症状
*/
@ -39,7 +39,7 @@ public class WdpcGrjdJsbry implements Serializable {
* 肇事次数
*/
@TableField("`illegal_number`")
Integer illegalNumber;
String illegalNumber;
/**
* 自杀次数
*/
@ -49,6 +49,6 @@ public class WdpcGrjdJsbry implements Serializable {
* 自杀未遂次数
*/
@TableField("`suicide_number`")
Integer suicideNumber;
String suicideNumber;
}

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

@ -408,7 +408,7 @@ public class PersonalServiceImpl implements PersonalService {
@Override
public void pullPsychosis() {
List<WdpcGrjdJsbry> jsbryList = jsbryRepository.list(new LambdaQueryWrapper<WdpcGrjdJsbry>()
.select(WdpcGrjdJsbry::getName, WdpcGrjdJsbry::getIdCode, WdpcGrjdJsbry::getActaulTime));
.select(WdpcGrjdJsbry::getName, WdpcGrjdJsbry::getIdCode, WdpcGrjdJsbry::getActualTime));
LocalDate now = LocalDate.now();
// id去重
List<String> idCodes = jsbryList.stream().map(WdpcGrjdJsbry::getIdCode).distinct().toList();

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

@ -44,67 +44,42 @@ public class WdpcGrjdJsbryServiceService implements WdpcGrjdJsbryService {
@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));
.select(WdpcGrjdJsbry::getName, WdpcGrjdJsbry::getIdCode, WdpcGrjdJsbry::getActualTime,
WdpcGrjdJsbry::getActualId, WdpcGrjdJsbry::getSuicideNumber, WdpcGrjdJsbry::getHurtSelfNumber,WdpcGrjdJsbry::getIllegalNumber,WdpcGrjdJsbry::getDiseaseDescribe));
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;
for (WdpcGrjdJsbry wdpcGrjdJsbry : jsbryList) {
if(oldClueMap.get(wdpcGrjdJsbry.getIdCode()) != null) {
continue;
}
if(tmp.isAfter(date)) {
date = tmp;
StringBuilder text = new StringBuilder("该人员是精神障碍患者,诊断为:");
text.append(wdpcGrjdJsbry.getActualId());
if(wdpcGrjdJsbry.getDiseaseDescribe() != null && !wdpcGrjdJsbry.getDiseaseDescribe().isEmpty()) {
text.append(",症状").append(wdpcGrjdJsbry.getDiseaseDescribe());
}
} catch (Exception e) {
log.error("精神病转化时间异常");
}
}
if(tag2.length() > 0) {
text.append("症状为:").append(tag2);
}
text.append("增加风险分5分");
ClueData data = ClueData.builder()
.name(jsb.getName())
.name(wdpcGrjdJsbry.getName())
.id("psychosis")
.idCode(jsb.getIdCode())
.idCode(wdpcGrjdJsbry.getIdCode())
.tag(Default.PSYCHOSIS_TAG)
.sourceData(text.toString())
.build();
if(date != null) {
data.setEventTime(date.atTime(0,0,0));
} else {
try {
LocalDate tmp = LocalDate.parse(wdpcGrjdJsbry.getActualTime(), DateTimeFormatter.ofPattern("yyyyMMdd"));
data.setEventTime(tmp.atTime(0,0,0));
} catch (Exception e) {
data.setEventTime(LocalDateTime.now());
}
toInsert.add(createClue(task.getModelId(), 5, task.getId(), data));
}
if(!toInsert.isEmpty()) {
clueService.saveClues(toInsert, Default.WF_IG);
clueService.saveClues(toInsert, "精神心理特征");
}
taskRepository.updateTask(task.getId(), toInsert.size(), 0);
}

Loading…
Cancel
Save