diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBabyDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBabyDao.java index 1631e74..3bdbc6f 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBabyDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBabyDao.java @@ -21,4 +21,6 @@ public interface IBabyDao { public List queryBabyWithQuery(MongoQuery query); public Page findPageWithQuery(MongoQuery query); + + public void findAndModify(MongoQuery query,BabyModel babyModel); } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BabyDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BabyDaoImpl.java index c882100..7f71adc 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BabyDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BabyDaoImpl.java @@ -49,4 +49,8 @@ public class BabyDaoImpl extends BaseMongoDAOImpl implements IBabyDao public Page findPageWithQuery(MongoQuery query) { return findPage(query.convertToMongoQuery()); } + + public void findAndModify(MongoQuery query,BabyModel babyModel){ + findAndModify(query.convertToMongoQuery(),babyModel); + } } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyService.java index 2c2a1b0..7fd9806 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyService.java @@ -50,7 +50,11 @@ public class BabyService { return iBabyDao.queryBabyWithQuery(query.addOrder(Direction.ASC, "id")); } - + + + public void findAndModify(MongoQuery query,BabyModel babyModel){ + iBabyDao.findAndModify(query,babyModel); + } public Page findPageWithQuery(MongoQuery query){ return iBabyDao.findPageWithQuery(MongoCondition.newInstance().toMongoQuery().addOrder(Direction.ASC, "id")); diff --git a/platform-common/src/main/java/com/lyms/platform/common/dao/BaseMongoDAOImpl.java b/platform-common/src/main/java/com/lyms/platform/common/dao/BaseMongoDAOImpl.java index d5e0d12..d95c1e8 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/dao/BaseMongoDAOImpl.java +++ b/platform-common/src/main/java/com/lyms/platform/common/dao/BaseMongoDAOImpl.java @@ -100,6 +100,15 @@ public class BaseMongoDAOImpl implements BaseMongoDAO { mongoTemplate.findAllAndRemove(query, this.getEntityClass()); } + + public void findAndModify(Query query,T obj){ + Assert.notNull(obj, "execute findAndModify method must not null."); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(obj)); + Assert.notNull(update, "execute findAndModify method must not null.update:"+update); + mongoTemplate.findAndModify(query,update,this.getEntityClass()); + } + /** * 获取需要操作的实体类class * diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyModel.java index 02b1743..ecd3266 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyModel.java @@ -32,6 +32,18 @@ public class BabyModel extends BaseModel { private Date created; private Date modified; + /** + * 社区id + */ + private String communityId; + + public String getCommunityId() { + return communityId; + } + + public void setCommunityId(String communityId) { + this.communityId = communityId; + } public Date getCreated() { return created; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyManagerFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyManagerFacade.java index 8d06c29..776482a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyManagerFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyManagerFacade.java @@ -1,29 +1,31 @@ package com.lyms.platform.operate.web.facade; -import java.util.*; - -import com.lyms.platform.biz.service.*; -import com.lyms.platform.common.utils.DateUtil; -import com.lyms.platform.common.utils.JsonUtil; -import com.lyms.platform.pojo.CommunityConfig; -import com.lyms.platform.pojo.Patients; -import com.lyms.platform.query.PatientsQuery; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - +import com.lyms.platform.biz.service.BabyService; +import com.lyms.platform.biz.service.CommunityConfigService; +import com.lyms.platform.biz.service.PatientsService; +import com.lyms.platform.biz.service.PuerperaService; import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.operate.web.request.BabyManagerQueryRequest; import com.lyms.platform.operate.web.request.BabyManagerUpdateRequest; import com.lyms.platform.operate.web.result.BabyResult; import com.lyms.platform.pojo.BabyModel; +import com.lyms.platform.pojo.CommunityConfig; +import com.lyms.platform.pojo.Patients; import com.lyms.platform.pojo.PuerperaModel; import com.lyms.platform.query.BabyModelQuery; -import com.lyms.platform.query.PuerperaModelQuery; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; @Component public class BabyManagerFacade { @@ -42,7 +44,7 @@ public class BabyManagerFacade { /** * 根据条件查询符合条件的新生儿 - * + * * @param babyManagerRequest * @return */ @@ -97,30 +99,36 @@ public class BabyManagerFacade { // 根据关键字先查询产妇信息 - - babyQuery.setNeed("y"); - List babies = babyService.queryBabyWithQuery(babyQuery); - if (CollectionUtils.isNotEmpty(babies)) { - for (BabyModel baby : babies) { - data.add(buildResult(baby,"")); + babyQuery.setNeed("y"); + List babies = babyService.queryBabyWithQuery(babyQuery); + if (CollectionUtils.isNotEmpty(babies)) { + String communityId=""; + for (BabyModel baby : babies) { + if (StringUtils.isNotEmpty(baby.getParentId())) { + //查询患者 + Patients patients = patientsService.findOnePatientById(baby.getParentId()); + if(null!=patients){ + communityId = patients.getCommunityId(); + } } + data.add(buildResult(baby, communityId)); } + } return new BaseListResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(data).setPageInfo(babyQuery.getPageInfo()); } /** * 删除一条新生儿数据 - * - * @param id - * 新生儿id + * + * @param id 新生儿id * @return 返回结果 */ public BaseResponse deleteOneBabyById(String id) { BabyModel obj = new BabyModel(); obj.setYn(YnEnums.NO.getId()); obj.setId(id); - babyService.updateOneBaby(obj,id); + babyService.updateOneBaby(obj, id); return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); } @@ -130,7 +138,7 @@ public class BabyManagerFacade { /** * 构建放回的数据 - * + * * @param baby * @param puerModel * @return @@ -152,6 +160,7 @@ public class BabyManagerFacade { babyResult.setCommunity(StringUtils.isEmpty(puerModel.getCommunityId()) ? "" : puerModel.getCommunityId()); return babyResult; } + public BabyResult buildResult(BabyModel baby, Patients puerModel) { BabyResult babyResult = new BabyResult(); @@ -169,7 +178,8 @@ public class BabyManagerFacade { babyResult.setCommunity(StringUtils.isEmpty(puerModel.getCommunityId()) ? "" : puerModel.getCommunityId()); return babyResult; } - public BabyResult buildResult(BabyModel patients,String communityId){ + + public BabyResult buildResult(BabyModel patients, String communityId) { BabyResult babyResult = new BabyResult(); /* String addr = ""; if (StringUtils.isNotEmpty(patients.getAddress())) { @@ -183,29 +193,29 @@ public class BabyManagerFacade { babyResult.setAddress(patients.getAddress()); babyResult.setCommunityId(StringUtils.isEmpty(communityId) ? "" : communityId); - String comm="未分配"; - /* if(StringUtils.isNotEmpty(patients.getCommunityId())){ + String comm = "未分配"; + if(StringUtils.isNotEmpty(patients.getCommunityId())){ CommunityConfig communityConfig = communityConfigService.getCommunityById(patients.getCommunityId()); if(null!=communityConfig){ comm= communityConfig.getName(); } - }*/ - String gender= "未知"; - if("1".equals(patients.getSex()+"")){ - gender="男"; - }else { - gender="女"; + } + String gender = "未知"; + if ("1".equals(patients.getSex() + "")) { + gender = "男"; + } else { + gender = "女"; } babyResult.setName(patients.getName()); babyResult.setBirth(DateUtil.getyyyy_MM_dd(patients.getBirth())); babyResult.setSex(gender); babyResult.setCommunity(comm); - babyResult.setMotherName("母亲名字"); + babyResult.setMotherName(patients.getMname()); babyResult.setMotherPhone(patients.getMphone()); babyResult.setId(patients.getId()); - String tips= visitFacade.getFindTips(patients.getId()); + String tips = visitFacade.getFindTips(patients.getId()); babyResult.setVisit(tips); babyResult.setVisitStatus(patients.getVisitstatus()); - return babyResult; + return babyResult; } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java index af14331..1c12231 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java @@ -1,5 +1,6 @@ package com.lyms.platform.operate.web.facade; +import com.lyms.platform.biz.service.BabyService; import com.lyms.platform.biz.service.CommunityConfigService; import com.lyms.platform.biz.service.PatientsService; import com.lyms.platform.common.constants.ErrorCodeConstants; @@ -12,8 +13,10 @@ import com.lyms.platform.operate.web.request.PuerperaManagerQueryRequest; import com.lyms.platform.operate.web.request.PuerperaManagerUpdateRequest; import com.lyms.platform.operate.web.request.PuerperaMatcherCommunityRequest; import com.lyms.platform.operate.web.result.PuerperaResult; +import com.lyms.platform.pojo.BabyModel; import com.lyms.platform.pojo.CommunityConfig; import com.lyms.platform.pojo.Patients; +import com.lyms.platform.query.BabyModelQuery; import com.lyms.platform.query.PatientsQuery; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; @@ -36,6 +39,8 @@ public class PatientFacade { private CommunityConfigService communityConfigService; @Autowired private VisitFacade visitFacade; + @Autowired + private BabyService babyService; /** @@ -46,9 +51,20 @@ public class PatientFacade { */ public BaseResponse matchCommunity(PuerperaMatcherCommunityRequest puerperaMatcherCommunityRequest) { Patients puerperaModel = patientsService.findOnePatientById(puerperaMatcherCommunityRequest.getParentId()); + Assert.notNull(puerperaModel, "产妇信息不存在"); + puerperaModel.setCommunityId(puerperaMatcherCommunityRequest.getCommunityId()); patientsService.updatePatient(puerperaModel); + + BabyModelQuery babyModelQuery = new BabyModelQuery(); + babyModelQuery.setParentId(puerperaModel.getId()); + babyModelQuery.setYn(YnEnums.YES.getId()); + + BabyModel babyModel = new BabyModel(); + babyModel.setCommunityId(puerperaMatcherCommunityRequest.getCommunityId()); + babyModel.setMphone(puerperaModel.getPhone()); + babyService.findAndModify(babyModelQuery.convertToQuery(),babyModel); //TODO 产妇分配了社区,需要给对应的社区提示消息 return new BaseResponse().setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/VisitFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/VisitFacade.java index 7afc95d..96f91cc 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/VisitFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/VisitFacade.java @@ -8,10 +8,12 @@ import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.operate.web.request.BabyVisitAddRequest; import com.lyms.platform.operate.web.request.VisitAddRequest; import com.lyms.platform.operate.web.request.VisitAddRequest.SimpleVisitPuerpera; -import com.lyms.platform.operate.web.result.*; +import com.lyms.platform.operate.web.result.AddressInner; +import com.lyms.platform.operate.web.result.BabyVisitResult; import com.lyms.platform.operate.web.result.BabyVisitResult.BabyVisit; -import com.lyms.platform.permission.model.Regions; -import com.lyms.platform.permission.service.RegionsService; +import com.lyms.platform.operate.web.result.SimpleVisit; +import com.lyms.platform.operate.web.result.VisitResult; +import com.lyms.platform.operate.web.utils.CommonsHelper; import com.lyms.platform.pojo.*; import com.lyms.platform.query.BabyModelQuery; import com.lyms.platform.query.PatientsQuery; @@ -62,7 +64,7 @@ public class VisitFacade { * @return */ public BaseObjectResponse findOneByCardNo(String cardNo) { - Patients puerperaModel = findOnePuerperaByCardNo(cardNo,3); + Patients puerperaModel = findOnePuerperaByCardNo(cardNo, 3); if (null == puerperaModel) { return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.DEPT_NOT_EXISTS).setErrormsg("产妇信息不存在"); } @@ -78,7 +80,7 @@ public class VisitFacade { private BaseObjectResponse doBiz(Patients puerperaModel) { VisitResult data = new VisitResult(); if (null != puerperaModel) { - data.convertToResult1(puerperaModel, fullAddress(puerperaModel)); + data.convertToResult1(puerperaModel, CommonsHelper.fullAddress(puerperaModel,basicConfigService)); VisitQuery visitQuery = new VisitQuery(); visitQuery.setParentId(puerperaModel.getId()); List visits = visitService.queryVisit(visitQuery); @@ -96,47 +98,12 @@ public class VisitFacade { } /** - * 填充地址信息 - * - * @param puerperaModel - * @return - */ - private Address fullAddress(Patients puerperaModel) { - Address address = new Address(); - address.setArea(getName(puerperaModel.getAreaId())); - address.setCity(getName(puerperaModel.getCityId())); - address.setProvince(getName(puerperaModel.getProvinceId())); - address.setAddress(puerperaModel.getAddress()); - return address; - } - - private Address fullAddress(BabyModel puerperaModel) { - Address address = new Address(); - address.setArea(getName(puerperaModel.getAreaId())); - address.setCity(getName(puerperaModel.getCityId())); - address.setProvince(getName(puerperaModel.getProvinceId())); - address.setAddress(puerperaModel.getAddress()); - return address; - } - - private AddressInner getName(String id) { - AddressInner addressInner= new AddressInner(); - addressInner.setId(id); - BasicConfig config = basicConfigService.getOneBasicConfigById(id); - if (null == config) { - return addressInner; - } - addressInner.setName(config.getName()); - return addressInner; - } - - /** * 根据身份证号码获取产妇信息 * * @param cardNo 身份证号码 * @return 产妇信息 */ - private Patients findOnePuerperaByCardNo(String cardNo,int type) { + private Patients findOnePuerperaByCardNo(String cardNo, int type) { PatientsQuery query = new PatientsQuery(); //先根据传入的手机号 // query.setCardNo(cardNo); @@ -177,7 +144,7 @@ public class VisitFacade { // parentId = puerperaService.addPuerpera(visitRequest.getPuerpera().build()).getId(); Patients patients = visitRequest.getPatients(); patients.setType(3); - patients.setYn(1); + patients.setYn(YnEnums.YES.getId()); patients.setId(null); parentId = patientsService.addPatient(patients).getId(); } @@ -214,15 +181,24 @@ public class VisitFacade { public BaseResponse addOrUpdateBabyAndVisit(BabyVisitAddRequest babyVisitAddRequest) { - String babyId= babyVisitAddRequest.getParentId(); + String babyId = babyVisitAddRequest.getParentId(); // 访视记录id为空表示新增 - BabyVisitModel babyVisitModel = babyVisitAddRequest.convertToDataModel(); + BabyVisitModel babyVisitModel = babyVisitAddRequest.convertToDataModel(); //表示需要新增小孩的数据 - if(StringUtils.isBlank(babyId)){ - babyId = babyService.addOneBaby(babyVisitAddRequest.getBabyModel()).getId(); - }else{ + if (StringUtils.isBlank(babyId)) { + //根据母亲的手机号去查询产妇id + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setPhone(babyVisitAddRequest.getMphone()); + patientsQuery.setType(3); + List patientses = patientsService.queryPatient(patientsQuery); + BabyModel babyModel = babyVisitAddRequest.getBabyModel(); + if (CollectionUtils.isNotEmpty(patientses)) { + babyModel.setParentId(patientses.get(0).getId()); + } + babyId = babyService.addOneBaby(babyModel).getId(); + } else { //修改小孩基本信息 - babyService.updateOneBaby(babyVisitAddRequest.getBabyModel(),babyId); + babyService.updateOneBaby(babyVisitAddRequest.getBabyModel(), babyId); } babyVisitModel.setParentId(babyId); //表示新增访视记录 @@ -233,10 +209,10 @@ public class VisitFacade { babyVisitService.updateOneBabyVisit(babyVisitAddRequest.convertToDataModel(), babyVisitAddRequest.getId()); } //添加成功后修改新生儿的访视状态 - BabyModel babyModel =new BabyModel(); + BabyModel babyModel = new BabyModel(); babyModel.setId(babyId); babyModel.setVisitstatus(1); - babyService.updateOneBaby(babyModel,babyId); + babyService.updateOneBaby(babyModel, babyId); return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); } @@ -262,7 +238,7 @@ public class VisitFacade { return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.DEPT_NOT_EXISTS).setErrormsg("产妇信息不存在"); } return findBabyVisit(puerperaModel);*/ - BabyModel babyModel = findOneBabyByMphone(cardNo); + BabyModel babyModel = findOneBabyByMphone(cardNo); if (null == babyModel) { return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.DEPT_NOT_EXISTS).setErrormsg("新生儿信息不存在"); } @@ -270,22 +246,20 @@ public class VisitFacade { } /** - * * 根据母亲手机号查询新生儿 * - * @param mPhone 母亲的手机号 - * + * @param mPhone 母亲的手机号 * @return 新生儿 */ - public BabyModel findOneBabyByMphone(String mPhone){ - BabyModelQuery babyModelQuery = new BabyModelQuery(); - babyModelQuery.setYn(1); + public BabyModel findOneBabyByMphone(String mPhone) { + BabyModelQuery babyModelQuery = new BabyModelQuery(); + babyModelQuery.setYn(YnEnums.YES.getId()); babyModelQuery.setMphone(mPhone); - List babyList = babyService.queryBabyWithQuery(babyModelQuery); - if(CollectionUtils.isEmpty(babyList)){ + List babyList = babyService.queryBabyWithQuery(babyModelQuery); + if (CollectionUtils.isEmpty(babyList)) { return null; } - return babyList.get(0); + return babyList.get(0); } @@ -309,7 +283,7 @@ public class VisitFacade { // TODO 需要转换成具体的result对象 // 设置产妇的信息 - babyVisitResult.convertToResult1(babyModel, fullAddress(babyModel)); + babyVisitResult.convertToResult1(babyModel, CommonsHelper.fullAddress(babyModel, basicConfigService)); babyVisitResult.setData(data); return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(babyVisitResult); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/BabyVisitResult.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/BabyVisitResult.java index 4f40812..97425cb 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/BabyVisitResult.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/BabyVisitResult.java @@ -778,7 +778,6 @@ public class BabyVisitResult implements IBasicResultConvert