|
|
|
|
@ -5,6 +5,7 @@ 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.wdpc2.WdpcGrjdJsbry; |
|
|
|
|
import com.biutag.supervisiondata.repository.RiskTaskRepository; |
|
|
|
|
@ -51,35 +52,47 @@ public class WdpcGrjdJsbryServiceService implements WdpcGrjdJsbryService {
|
|
|
|
|
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)); |
|
|
|
|
Map<String, RiskPersonal> personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (val, old) -> val)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
Map<String, List<WdpcGrjdJsbry>> map = jsbryList.stream().collect(Collectors.groupingBy(WdpcGrjdJsbry::getIdCode)); |
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, List<WdpcGrjdJsbry>> entry : map.entrySet()) { |
|
|
|
|
RiskPersonal personal = personalMap.get(entry.getKey()); |
|
|
|
|
if(oldClueMap.get(entry.getKey()) != null || personal==null) { |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
StringBuilder text = new StringBuilder(); |
|
|
|
|
LocalDateTime time = null; |
|
|
|
|
for (WdpcGrjdJsbry wdpcGrjdJsbry : jsbryList) { |
|
|
|
|
if(oldClueMap.get(wdpcGrjdJsbry.getIdCode()) != null) { |
|
|
|
|
if(text.indexOf(wdpcGrjdJsbry.getActualId().concat(",")) != -1) continue; |
|
|
|
|
text.append(wdpcGrjdJsbry.getActualId()).append(","); |
|
|
|
|
try { |
|
|
|
|
if(time == null) { |
|
|
|
|
time = LocalDate.parse(wdpcGrjdJsbry.getActualTime(), DateTimeFormatter.ofPattern("yyyyMMdd")).atTime(0,0,0); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
StringBuilder text = new StringBuilder("该人员是精神障碍患者,诊断为:"); |
|
|
|
|
text.append(wdpcGrjdJsbry.getActualId()); |
|
|
|
|
if(wdpcGrjdJsbry.getDiseaseDescribe() != null && !wdpcGrjdJsbry.getDiseaseDescribe().isEmpty()) { |
|
|
|
|
text.append(",症状").append(wdpcGrjdJsbry.getDiseaseDescribe()); |
|
|
|
|
LocalDateTime tmp = LocalDate.parse(wdpcGrjdJsbry.getActualTime(), DateTimeFormatter.ofPattern("yyyyMMdd")).atTime(0,0,0); |
|
|
|
|
if (time.isBefore(tmp)) { |
|
|
|
|
time = tmp; |
|
|
|
|
} |
|
|
|
|
} catch (Exception ignored) { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
ClueData data = ClueData.builder() |
|
|
|
|
.name(wdpcGrjdJsbry.getName()) |
|
|
|
|
.name(personal.getName()) |
|
|
|
|
.id("psychosis") |
|
|
|
|
.idCode(wdpcGrjdJsbry.getIdCode()) |
|
|
|
|
.idCode(personal.getIdCode()) |
|
|
|
|
.tags(List.of(Default.PSYCHOSIS_TAG)) |
|
|
|
|
.score(5) |
|
|
|
|
.sourceData(text.toString()) |
|
|
|
|
.sourceData("该人员是精神障碍患者,诊断为:".concat(text.toString())) |
|
|
|
|
.eventTime(time) |
|
|
|
|
.build(); |
|
|
|
|
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(DataUtil.createClueData(task, data)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(!toInsert.isEmpty()) { |
|
|
|
|
clueService.saveClues(toInsert, "B31是否有精神疾病"); |
|
|
|
|
} |
|
|
|
|
|