diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CommonController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CommonController.java index 931c0f7..2400674 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CommonController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CommonController.java @@ -37,4 +37,18 @@ public class CommonController extends BaseController { public BaseResponse searchByKeyword(@JsonAlias CommonRequest param) { return commonServer.searchByKeyword(param); } + + /** + * 根据 cardNo、pid、womenId检索基本信息 + * + * @param param + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/baseInfoByKeyword") + @ResponseBody + @TokenRequired + public BaseResponse baseInfoByKeyword(@JsonAlias CommonRequest param) { + return commonServer.baseInfoByKeyword(param); + } + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PatientBaseInfoRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PatientBaseInfoRequest.java new file mode 100644 index 0000000..3561fe9 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PatientBaseInfoRequest.java @@ -0,0 +1,91 @@ +package com.lyms.platform.operate.web.request; + +import java.io.Serializable; + +/** + * @author dongqin + * @description 孕妇、妇女基本信息 + * @date 16:10 2019/12/10 + **/ +public class PatientBaseInfoRequest implements Serializable { + + private static final long serialVersionUID = 3477323650944830922L; + + /** + * 姓名 + */ + private String name; + + /** + * 生日 yyyy-mm-hh + */ + private String birth; + + /** + * 年龄 + */ + private String age; + + /** + * 手机号 + */ + private String phone; + + /** + * 证件号 + */ + private String cardNo; + + /** + * 居住地(省市区街道详细地址) + */ + private String addressStr; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getBirth() { + return birth; + } + + public void setBirth(String birth) { + this.birth = birth; + } + + public String getAge() { + return age; + } + + public void setAge(String age) { + this.age = age; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getCardNo() { + return cardNo; + } + + public void setCardNo(String cardNo) { + this.cardNo = cardNo; + } + + public String getAddressStr() { + return addressStr; + } + + public void setAddressStr(String addressStr) { + this.addressStr = addressStr; + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/ICommonServer.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/ICommonServer.java index 5ca4f55..9da928b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/ICommonServer.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/ICommonServer.java @@ -13,4 +13,12 @@ public interface ICommonServer { * @return */ BaseResponse searchByKeyword(CommonRequest param); + + /** + * 根据 cardNo、pid、womenId检索基本信息 + * + * @param param + * @return + */ + BaseResponse baseInfoByKeyword(CommonRequest param); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/CommonServerImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/CommonServerImpl.java index 5503d6b..d92744a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/CommonServerImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/CommonServerImpl.java @@ -1,5 +1,6 @@ package com.lyms.platform.operate.web.service.impl; +import java.util.Date; import java.util.List; import org.slf4j.Logger; @@ -11,13 +12,19 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; +import com.lyms.platform.biz.service.BasicConfigService; import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.request.CommonRequest; +import com.lyms.platform.operate.web.request.PatientBaseInfoRequest; import com.lyms.platform.operate.web.service.ICommonServer; import com.lyms.platform.operate.web.utils.CollectionUtils; +import com.lyms.platform.operate.web.utils.CommonsHelper; +import com.lyms.platform.pojo.BasicConfig; import com.lyms.platform.pojo.MaternalDeliverModel; +import com.lyms.platform.pojo.Patients; import com.lyms.platform.pojo.PersonModel; import com.lyms.platform.pojo.ResidentsArchiveModel; @@ -32,6 +39,9 @@ public class CommonServerImpl implements ICommonServer { @Autowired private MongoTemplate mongoTemplate; + @Autowired + private BasicConfigService basicConfigService; + private static final Logger log = LoggerFactory.getLogger(CommonServerImpl.class); /** @@ -114,4 +124,87 @@ public class CommonServerImpl implements ICommonServer { return new BaseResponse("参数缺失",ErrorCodeConstants.PARAMETER_ERROR); } + + /** + * 根据 cardNo、pid、womenId检索基本信息 + * + * @param param + * @return + */ + @Override + public BaseResponse baseInfoByKeyword(CommonRequest param) { + PatientBaseInfoRequest result = new PatientBaseInfoRequest(); + String cardNo = param.getCardNo(); + // 身份证号 + if (StringUtils.isNotEmpty(cardNo)) { + getResultByCardNo(result, cardNo); + + + } + + // 孕妇id + String pid = param.getPid(); + if (StringUtils.isNotEmpty(pid)) { + PersonModel personModel = mongoTemplate.findOne(Query.query(Criteria.where("id").is(pid)), PersonModel.class); + if (personModel != null) { + getResultByCardNo(result, personModel.getCardNo()); + } + } + + // 妇女id + String womenId = param.getWomenId(); + if (StringUtils.isNotEmpty(womenId)) { + ResidentsArchiveModel archiveModel = mongoTemplate.findOne(Query.query(Criteria.where("id").is(womenId)), ResidentsArchiveModel.class); + if (archiveModel != null) { + getResultByCardNo(result, archiveModel.getCertificateNum()); + } + } + BaseResponse baseResponse = new BaseResponse(); + baseResponse.setObject(result); + return baseResponse; + } + + /** + * 根据身份证号获取孕妇/妇女基本信息 + * + * @param result + * @param cardNo + */ + private void getResultByCardNo(PatientBaseInfoRequest result, String cardNo) { + // 孕妇 + PersonModel personModel = mongoTemplate.findOne(Query.query(Criteria.where("cardNo").is(cardNo)), PersonModel.class); + if (personModel != null) { + result.setName(personModel.getName()); + result.setPhone(personModel.getPhone()); + Date birth = personModel.getBirth(); + if (birth != null) { + result.setBirth(DateUtil.getyyyy_MM_dd(personModel.getBirth())); + result.setAge(DateUtil.getAge(birth).toString()); + } + result.setCardNo(cardNo); + List patients = mongoTemplate.find(Query.query(Criteria.where("pid").is(personModel.getId())).with(new Sort(Sort.Direction.DESC, "created")), Patients.class); + if (CollectionUtils.isNotEmpty(patients)) { + Patients patient = patients.get(0); + String addressStr = CommonsHelper.getResidence(patient.getAddressRegister(), patient.getProvinceRegisterId(), patient.getCityRegisterId(), + patient.getAreaRegisterId(), patient.getStreetRegisterId(), basicConfigService); + result.setAddressStr(addressStr); + } + } + + // 妇女 + ResidentsArchiveModel certificateNumModel = mongoTemplate.findOne(Query.query(Criteria.where("certificateNum").is(cardNo)), ResidentsArchiveModel.class); + if (certificateNumModel != null) { + result.setName(certificateNumModel.getUsername()); + result.setPhone(certificateNumModel.getPhone()); + Date birthday = certificateNumModel.getBirthday(); + if (birthday != null) { + result.setBirth(DateUtil.getyyyy_MM_dd(birthday)); + result.setAge(DateUtil.getAge(birthday).toString()); + } + result.setCardNo(cardNo); + String addressStr = CommonsHelper.getResidence(certificateNumModel.getProvinceId(), certificateNumModel.getCityId(), certificateNumModel.getAreaId(), + certificateNumModel.getStreetId(), certificateNumModel.getAddress(),basicConfigService); + result.setAddressStr(addressStr); + } + } }