提交 7356fb1a 编写于 作者: yongbo.wang's avatar yongbo.wang

批量获取数据

上级 230fc96d
流水线 #26699 已失败 于阶段
in 0 second
...@@ -382,44 +382,56 @@ public class PatHealthPackServiceIml implements PatHealthPackService { ...@@ -382,44 +382,56 @@ public class PatHealthPackServiceIml implements PatHealthPackService {
AcctPatIdResp resp = new AcctPatIdResp(); AcctPatIdResp resp = new AcctPatIdResp();
Map<Integer, Integer> patFamId = new HashMap<>(); Map<Integer, Integer> patFamId = new HashMap<>();
if (acctPatIdReq != null && acctPatIdReq.getPatIds().size() > 1000) { if (acctPatIdReq == null) {
throw new AccountException(AccountExceptionEnum.PAT_QUERY_MAX); throw new AccountException(AccountExceptionEnum.PICA_PARAMS_ERROR);
} }
/**先获取是主账号本人的居民id*/ /***批量处理*/
List<AcctPatFamily> acctMembers = patFamilyMapper.getListByPatIdSelfs(acctPatIdReq.getPatIds()); List<Integer> allPatIds = acctPatIdReq.getPatIds();
for (AcctPatFamily family : acctMembers) { int once = 500;
patFamId.put(family.getPatientId(), family.getPatientId()); for (int i = 0; i < allPatIds.size(); i += once) {
} List<Integer> patIds = null;
if (allPatIds.size() < i + once) {
/** 本人为监护人的patIds*/ patIds = allPatIds.subList(i, allPatIds.size());
List<Integer> acctMemberPatIds = acctMembers.stream().map(o -> o.getPatientId()).collect(toList()); } else {
patIds = allPatIds.subList(i, i + once);
/**作为成员的记录*/ }
List<Integer> memberIds = acctPatIdReq.getPatIds().stream().filter(reqPatId -> acctMemberPatIds.stream().noneMatch(patId -> reqPatId.equals(patId))).collect(toList());
if (CollectionUtils.isNotEmpty(memberIds)) { /**先获取是主账号本人的居民id*/
List<AcctPatFamily> acctMembers = patFamilyMapper.getListByPatIdSelfs(patIds);
for (AcctPatFamily family : acctMembers) {
patFamId.put(family.getPatientId(), family.getPatientId());
}
/**获取不是本人的主账号的本人居民id*/ /** 本人为监护人的patIds*/
List<AcctPatFamily> members = patFamilyMapper.getListByPatIdNotSelfs(memberIds); List<Integer> acctMemberPatIds = acctMembers.stream().map(o -> o.getPatientId()).collect(toList());
if (CollectionUtils.isNotEmpty(members)) {
List<Integer> memberAcctIds = members.stream().map(o -> o.getAcctId()).collect(toList()); /**作为成员的记录*/
if (CollectionUtils.isNotEmpty(memberAcctIds)) { List<Integer> memberIds = patIds.stream().filter(reqPatId -> acctMemberPatIds.stream().noneMatch(patId -> reqPatId.equals(patId))).collect(toList());
List<AcctPatFamily> acctPats = patFamilyMapper.getSelfListByAcctIds(memberAcctIds);
for (AcctPatFamily family : acctPats) { if (CollectionUtils.isNotEmpty(memberIds)) {
for (AcctPatFamily member : members) {
if (StringUtils.equals(String.valueOf(family.getAcctId()), String.valueOf(member.getAcctId()))) { /**获取不是本人的主账号的本人居民id*/
patFamId.put(member.getPatientId(), family.getPatientId()); List<AcctPatFamily> members = patFamilyMapper.getListByPatIdNotSelfs(memberIds);
if (CollectionUtils.isNotEmpty(members)) {
List<Integer> memberAcctIds = members.stream().map(o -> o.getAcctId()).collect(toList());
if (CollectionUtils.isNotEmpty(memberAcctIds)) {
List<AcctPatFamily> acctPats = patFamilyMapper.getSelfListByAcctIds(memberAcctIds);
for (AcctPatFamily family : acctPats) {
for (AcctPatFamily member : members) {
if (StringUtils.equals(String.valueOf(family.getAcctId()), String.valueOf(member.getAcctId()))) {
patFamId.put(member.getPatientId(), family.getPatientId());
}
} }
} }
} }
}
/**没有主账号的patIds*/ /**没有主账号的patIds*/
memberIds.removeAll(members.stream().map(o -> o.getPatientId()).collect(toList())); memberIds.removeAll(members.stream().map(o -> o.getPatientId()).collect(toList()));
if (CollectionUtils.isNotEmpty(memberIds)) { if (CollectionUtils.isNotEmpty(memberIds)) {
for(Integer member : memberIds) { for (Integer member : memberIds) {
patFamId.put(member, member); patFamId.put(member, member);
}
} }
} }
} }
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册