diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPersonDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPersonDao.java index 0a0d4e0..bce728a 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPersonDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPersonDao.java @@ -15,4 +15,6 @@ public interface IPersonDao { public PersonModel addPerson(PersonModel model); public void updatePerson(PersonModel obj, String id); + + List queryPersons(MongoQuery mongoQuery); } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PersonDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PersonDaoImpl.java index 990e6e5..84e1dc6 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PersonDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PersonDaoImpl.java @@ -24,4 +24,9 @@ public class PersonDaoImpl extends BaseMongoDAOImpl implements IPer public void updatePerson(PersonModel obj, String id) { update(new MongoQuery(new MongoCondition("id", id, MongoOper.IS)).convertToMongoQuery(), obj); } + + @Override + public List queryPersons(MongoQuery mongoQuery) { + return find(mongoQuery.convertToMongoQuery()); + } } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PersonService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PersonService.java index 1a81b73..42b587f 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PersonService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PersonService.java @@ -3,9 +3,12 @@ package com.lyms.platform.biz.service; import com.lyms.platform.biz.dal.IPersonDao; import com.lyms.platform.pojo.PersonModel; +import com.lyms.platform.query.PersonModelQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + @Service public class PersonService { @@ -22,4 +25,7 @@ public class PersonService { } + public List queryPersons(PersonModelQuery personModelQuery) { + return personDao.queryPersons(personModelQuery.convertToQuery()); + } } diff --git a/platform-dal/src/main/java/com/lyms/platform/query/PersonModelQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/PersonModelQuery.java new file mode 100644 index 0000000..1bda8c1 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/query/PersonModelQuery.java @@ -0,0 +1,139 @@ +package com.lyms.platform.query; + +import com.lyms.platform.common.base.IConvertToNativeQuery; +import com.lyms.platform.common.dao.BaseQuery; +import com.lyms.platform.common.dao.operator.MongoCondition; +import com.lyms.platform.common.dao.operator.MongoOper; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.common.utils.StringUtils; +import org.springframework.data.mongodb.core.query.Criteria; + +import java.util.Date; + +/** + * 个人基本信息 + * + * @author lqy + */ +public class PersonModelQuery extends BaseQuery implements IConvertToNativeQuery { + + private String id; + + //姓名 + private String name; + + //身份证号 + private String cardNo; + + //手机 + private String phone; + + //生日 + private Date birth; + + //类型 1 孕妇 2 儿童 3孕妇 + private Integer type; + + private Date created; + + private Date modified; + + private Integer yn; + + + @Override + public MongoQuery convertToQuery() { + MongoCondition condition = MongoCondition.newInstance(); + + if (null != cardNo && phone != null) { + MongoCondition con1 = MongoCondition.newInstance("cardNo", cardNo, MongoOper.IS); + MongoCondition con = MongoCondition.newInstance("phone", phone, MongoOper.IS); + condition = condition.orCondition(new MongoCondition[]{con1, con}); + } + if (!StringUtils.isEmpty(id)) { + condition = condition.and("id", id, MongoOper.IS); + } + + if (!StringUtils.isEmpty(name)) { + condition = condition.and("name", name, MongoOper.IS); + } + + if (type != null) { + condition = condition.and("type", type, MongoOper.IS); + } + + return condition.toMongoQuery(); + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCardNo() { + return cardNo; + } + + public void setCardNo(String cardNo) { + this.cardNo = cardNo; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public Date getBirth() { + return birth; + } + + public void setBirth(Date birth) { + this.birth = birth; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } + + public Date getModified() { + return modified; + } + + public void setModified(Date modified) { + this.modified = modified; + } + + public Integer getYn() { + return yn; + } + + public void setYn(Integer yn) { + this.yn = yn; + } +} \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java index 1531426..d4fb94b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java @@ -202,20 +202,39 @@ public class BabyBookbuildingFacade { } - PersonModel pmodel = new PersonModel(); - pmodel.setName(request.getBabyName()); - pmodel.setBirth(DateUtil.parseYMD(request.getBabyBirthday())); - pmodel.setPhone(request.getMommyPhone()); - pmodel.setCardNo(request.getMommyCertificateNum()); - pmodel.setType(1); - pmodel.setYn(YnEnums.YES.getId()); - pmodel.setModified(new Date()); - pmodel.setCreated(new Date()); - PersonModel resultModel = personService.addPerson(pmodel); + PersonModel resperson = null; + if (request.getMommyPhone() != null || request.getMommyCertificateNum() != null) + { + PersonModelQuery personModelQuery = new PersonModelQuery(); + personModelQuery.setPhone(request.getMommyPhone()); + personModelQuery.setYn(YnEnums.YES.getId()); + List personModels = personService.queryPersons(personModelQuery); + PersonModel pmodel = new PersonModel(); + pmodel.setName(request.getBabyName()); + pmodel.setBirth(DateUtil.parseYMD(request.getBabyBirthday())); + pmodel.setPhone(request.getMommyPhone()); + pmodel.setCardNo(request.getMommyCertificateNum()); + pmodel.setType(2); + pmodel.setYn(YnEnums.YES.getId()); + pmodel.setModified(new Date()); + if (CollectionUtils.isNotEmpty(personModels) && personModels.get(0) != null) + { + + resperson = personModels.get(0); + personService.updatePerson(pmodel,personModels.get(0).getId()); + } + else + { + pmodel.setYn(YnEnums.YES.getId()); + pmodel.setCreated(new Date()); + resperson = personService.addPerson(pmodel); + } + } + BabyModel model = getBabyModel(request); - model.setPid(resultModel.getId()); + model.setPid(resperson.getId()); BabyModelQuery babyQuery = new BabyModelQuery(); babyQuery.setYn(YnEnums.YES.getId()); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java index a64f2ff..6b4b703 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java @@ -97,19 +97,33 @@ public class BookbuildingFacade { return br; } } + PersonModel resperson = null; + if (yunRequest.getPregnantPhone() != null || yunRequest.getPregnantCertificateNum() != null) + { + PersonModelQuery personModelQuery = new PersonModelQuery(); + personModelQuery.setPhone(yunRequest.getPregnantPhone()); + personModelQuery.setYn(YnEnums.YES.getId()); + List personModels = personService.queryPersons(personModelQuery); + PersonModel pmodel = new PersonModel(); + pmodel.setName(yunRequest.getPregnantName()); + pmodel.setBirth(DateUtil.parseYMD(yunRequest.getBirthday())); + pmodel.setPhone(yunRequest.getPregnantPhone()); + pmodel.setCardNo(yunRequest.getPregnantCertificateNum()); + pmodel.setType(1); + pmodel.setModified(new Date()); + if (CollectionUtils.isNotEmpty(personModels) && personModels.get(0) != null) + { - - - PersonModel pmodel = new PersonModel(); - pmodel.setName(yunRequest.getPregnantName()); - pmodel.setBirth(DateUtil.parseYMD(yunRequest.getBirthday())); - pmodel.setPhone(yunRequest.getPregnantPhone()); - pmodel.setCardNo(yunRequest.getPregnantCertificateNum()); - pmodel.setType(1); - pmodel.setYn(YnEnums.YES.getId()); - pmodel.setCreated(new Date()); - pmodel.setModified(new Date()); - PersonModel resperson = personService.addPerson(pmodel); + resperson = personModels.get(0); + personService.updatePerson(pmodel,personModels.get(0).getId()); + } + else + { + pmodel.setYn(YnEnums.YES.getId()); + pmodel.setCreated(new Date()); + resperson = personService.addPerson(pmodel); + } + } Patients patient = getPatientsData(yunRequest); if (resperson != null)