提交 2b289eb6 编写于 作者: peijun.zhao's avatar peijun.zhao

add bozi 批量查询居民信息

上级 aa193f49
流水线 #26648 已失败 于阶段
in 0 second
package com.pica.cloud.account.account.common.req;
import java.util.List;
public class AcctPatIdReq {
private List<Integer> patIds;
public List<Integer> getPatIds() {
return patIds;
}
public void setPatIds(List<Integer> patIds) {
this.patIds = patIds;
}
}
package com.pica.cloud.account.account.common.resp;
public class AcctPatId {
private Integer reqPatId;
private Integer acctPatId;
public Integer getReqPatId() {
return reqPatId;
}
public void setReqPatId(Integer reqPatId) {
this.reqPatId = reqPatId;
}
public Integer getAcctPatId() {
return acctPatId;
}
public void setAcctPatId(Integer acctPatId) {
this.acctPatId = acctPatId;
}
}
package com.pica.cloud.account.account.common.resp;
import io.swagger.annotations.ApiModel;
import java.util.List;
/**
*
*/
@ApiModel(description = "建立微信与账号关联关系-resp")
public class AcctPatIdResp {
private List<Integer> acctPatIds;
/*
private List<AcctPatId> acctPatId;
public List<AcctPatId> getAcctPatIds() {
return acctPatIds;
}
public void setAcctPatIds(List<AcctPatId> acctPatIds) {
this.acctPatIds = acctPatIds;
}*/
public List<Integer> getAcctPatIds() {
return acctPatIds;
}
public void setAcctPatIds(List<Integer> acctPatIds) {
this.acctPatIds = acctPatIds;
}
}
// Copyright 2016-2101 Pica.
package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.common.req.AcctPatFamilyReq;
import com.pica.cloud.account.account.common.req.AcctPatInfoReq;
import com.pica.cloud.account.account.common.req.AcctPatPageReq;
import com.pica.cloud.account.account.common.req.InitAcctReq;
import com.pica.cloud.account.account.common.req.*;
import com.pica.cloud.account.account.common.resp.AcctPatIdResp;
import com.pica.cloud.account.account.common.resp.PatBindResp;
import com.pica.cloud.account.account.common.resp.PatFamilyResp;
import com.pica.cloud.account.account.server.service.PatHealthPackService;
......@@ -81,6 +79,11 @@ public class PatHealthPackController {
return PicaResponse.toResponse(packService.getFamilyAcctPatId(patId));
}
@ApiOperation("根据patientIds 获取监护人-本人监护人(自身patId),本人成员(监护人patId)")
@PostMapping(value = "/familyAcct/patIds")
public PicaResponse<AcctPatIdResp> getFamilyAcctPatIds(@RequestBody AcctPatIdReq acctPatIdReq) throws Exception {
return PicaResponse.toResponse(packService.getFamilyAcctPatIds(acctPatIdReq));
}
@ApiOperation("初始主账户数据")
@PostMapping(value = "/init/accts")
......
......@@ -64,6 +64,7 @@ public enum AccountExceptionEnum {
PAT_MOBILE_BINDED_WECHAT_ERROR("216555","该手机已绑定其他微信"),
PAT_MEMBER_HAS_BINDED_SELF("216556","该成员已被账户绑定为家庭成员,不需要再次绑定"),
PAT_HAS_CREATE_ACCT("216557","初始居民已存在主账户"),
PAT_QUERY_MAX("216558","查询参数过多"),
xxx_xxx("","");
......
......@@ -22,15 +22,22 @@ public interface AcctPatFamilyMapper {
/** 获取居民id是本人的家庭组记录- 作为家庭主账户、本人居民id,单条ok 多条异常数据 */
AcctPatFamily getByPatIdSelf(Integer patId);
/** list查询 波子1000条调用 */
List<AcctPatFamily> getListByPatIdSelfs(List<Integer> list);
/** 查询居民id所在家庭组监护人- 作为家庭成员、非主账户本人居民id,单条ok 多条异常数据 */
AcctPatFamily getByPatIdNotSelf(Integer patId);
List<AcctPatFamily> getListByPatIdNotSelfs(List<Integer> list);
/** 获取主账户下所有家庭成员 */
List<AcctPatFamily> getListByAcctId(Integer acctId);
/** 根据账户id 获取主账户居民 */
AcctPatFamily getSelfByAcctId(Integer acctId);
List<AcctPatFamily> getSelfListByAcctIds(List<Integer> list);
List<AcctPatFamily> getListByPatIds(List<Integer> patIds);
List<AcctPatFamily> getByPatIdSelfList(List<Integer> patIds);
......
// Copyright 2016-2101 Pica.
package com.pica.cloud.account.account.server.service;
import com.pica.cloud.account.account.common.req.AcctPatFamilyReq;
import com.pica.cloud.account.account.common.req.AcctPatInfoReq;
import com.pica.cloud.account.account.common.req.AcctPatPageReq;
import com.pica.cloud.account.account.common.req.InitAcctReq;
import com.pica.cloud.account.account.common.req.*;
import com.pica.cloud.account.account.common.resp.AcctPatIdResp;
import com.pica.cloud.account.account.common.resp.PatBindResp;
import com.pica.cloud.account.account.common.resp.PatFamilyResp;
......@@ -36,6 +34,8 @@ public interface PatHealthPackService {
Integer getFamilyAcctPatId(Integer patId);
AcctPatIdResp getFamilyAcctPatIds(AcctPatIdReq acctPatIdReq);
Integer initAccts(List<InitAcctReq> list);
List<Integer> queryByPage(AcctPatPageReq patPageReq);
......
......@@ -3,6 +3,8 @@ package com.pica.cloud.account.account.server.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.pica.cloud.account.account.common.req.*;
import com.pica.cloud.account.account.common.resp.AcctPatId;
import com.pica.cloud.account.account.common.resp.AcctPatIdResp;
import com.pica.cloud.account.account.common.resp.PatBindResp;
import com.pica.cloud.account.account.common.resp.PatFamilyResp;
import com.pica.cloud.account.account.server.entity.AcctPatFamily;
......@@ -11,6 +13,7 @@ import com.pica.cloud.account.account.server.entity.AcctPatUnion;
import com.pica.cloud.account.account.server.enums.AccountExceptionEnum;
import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
import com.pica.cloud.account.account.server.enums.SourceTypeEnum;
import com.pica.cloud.account.account.server.exception.AccountException;
import com.pica.cloud.account.account.server.mapper.AcctPatFamilyMapper;
import com.pica.cloud.account.account.server.mapper.AcctPatInfoMapper;
import com.pica.cloud.account.account.server.mapper.AcctPatUnionMapper;
......@@ -369,6 +372,45 @@ public class PatHealthPackServiceIml implements PatHealthPackService {
return rtnPatId;
}
@Override
public AcctPatIdResp getFamilyAcctPatIds(AcctPatIdReq acctPatIdReq) {
AcctPatIdResp resp = new AcctPatIdResp();
List<Integer> acctPatIds = new ArrayList<>();
// List<AcctPatId> rtnAcctPatIds = new ArrayList<>();
if(acctPatIdReq != null && acctPatIdReq.getPatIds().size() > 1000){
throw new AccountException(AccountExceptionEnum.PAT_QUERY_MAX);
}
List<AcctPatFamily> acctMembers = patFamilyMapper.getListByPatIdSelfs(acctPatIdReq.getPatIds());
for (AcctPatFamily family : acctMembers){
//本人为监护人 返回自身patId映射
/*AcctPatId acctPatId = new AcctPatId();
acctPatId.setReqPatId(family.getPatientId());
acctPatId.setAcctPatId(family.getPatientId());
rtnAcctPatIds.add(acctPatId);*/
acctPatIds.add(family.getPatientId());
}
// 本人为监护人的patIds
List<Integer> acctMemberPatIds = acctMembers.stream().map(o-> o.getPatientId()).collect(toList());
// 作为成员的记录
List<Integer> memberIds = acctPatIdReq.getPatIds().stream().filter(reqPatId -> acctMemberPatIds.stream().noneMatch(patId -> reqPatId.equals(patId))).collect(toList());
if(CollectionUtils.isNotEmpty(memberIds)){
List<AcctPatFamily> members = patFamilyMapper.getListByPatIdNotSelfs(memberIds);
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){
acctPatIds.add(family.getPatientId());
}
resp.setAcctPatIds(acctPatIds);
}
}
return resp;
}
@Transactional
@Override
public Integer initAccts(List<InitAcctReq> list) {
......
......@@ -156,6 +156,18 @@
and delete_flag = 1;
</select>
<select id="getSelfListByAcctIds" parameterType="java.util.List" resultMap="BaseResultMap" >
select
<include refid="Base_Column_List" />
from account_pat_family
where acct_id IN
<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
and relation = 1
and delete_flag = 1;
</select>
<select id="getByPatIdSelf" parameterType="java.lang.Integer" resultMap="BaseResultMap" >
select
<include refid="Base_Column_List" />
......@@ -165,6 +177,18 @@
and delete_flag = 1;
</select>
<select id="getListByPatIdSelfs" parameterType="java.util.List" resultMap="BaseResultMap" >
select
<include refid="Base_Column_List" />
from account_pat_family
where patient_id IN
<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
and relation = 1
and delete_flag = 1;
</select>
<select id="getByPatIdNotSelf" parameterType="java.lang.Integer" resultMap="BaseResultMap" >
select
<include refid="Base_Column_List" />
......@@ -174,6 +198,18 @@
and delete_flag = 1;
</select>
<select id="getListByPatIdNotSelfs" parameterType="java.util.List" resultMap="BaseResultMap" >
select
<include refid="Base_Column_List" />
from account_pat_family
where patient_id IN
<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
AND relation != 1
and delete_flag = 1;
</select>
<select id="getListByPatIds" parameterType="java.util.List" resultMap="BaseResultMap" >
select
<include refid="Base_Column_List" />
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册