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 32ae8b7..71bcbd5 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 @@ -768,6 +768,54 @@ public class BabyModel extends BaseModel { * 口腔高危(同步字段) */ private List oralHighRisk; + /** + * 龋齿 + */ + private String qc; + /** + * 护齿 + */ + private String hc; + /** + * 窝沟封闭 + */ + private String wgfb; + /** + * 检查月龄套餐 + */ + private String oralCheckMonthId; + + public String getOralCheckMonthId() { + return oralCheckMonthId; + } + + public void setOralCheckMonthId(String oralCheckMonthId) { + this.oralCheckMonthId = oralCheckMonthId; + } + + public String getQc() { + return qc; + } + + public void setQc(String qc) { + this.qc = qc; + } + + public String getHc() { + return hc; + } + + public void setHc(String hc) { + this.hc = hc; + } + + public String getWgfb() { + return wgfb; + } + + public void setWgfb(String wgfb) { + this.wgfb = wgfb; + } public List getOralHighRisk() { return oralHighRisk; diff --git a/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java index 914a83b..3e6b0dd 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java @@ -10,6 +10,7 @@ import org.apache.commons.collections.CollectionUtils; import org.springframework.data.mongodb.core.query.Criteria; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.List; @@ -1322,6 +1323,179 @@ public class BabyModelQuery extends BaseQuery implements IConvertToNativeQuery { this.highRiskAndWeakSon = highRiskAndWeakSon; } + //隆化-口腔模块 + /** + * 检查时间-开始 + */ + private Date oralCheckTimeStart; + /** + * 检查时间-结束 + */ + private Date oralCheckTimeEnd; + + /** + * 预约下次检查时间-开始 + */ + private Date nextOralCheckTimeStrat; + /** + * 预约下次检查时间-结束 + */ + private Date nextOralCheckTimeEnd; + + /** + * 检查医生 + */ + private String oralCheckDoctor; + + /** + * 阳性状态1:正常 2:阳性 (注:前端接传0代表查询1或2是口腔全部儿童列表必传。传2是口腔模块阳性列表) + */ + private String positiveType; + /** + * 口腔高危(同步字段) + */ + private List oralHighRisk; + /** + * 龋齿从几开始(个数) + */ + private String qcStart; + /** + * 龋齿到几结束(个数) + */ + private String qcEnd; + /** + * 护齿(1已做/2未做) + */ + private String hc; + /** + * 窝沟封闭(1已做/2未做) + */ + private String wgfb; + /** + * 检查月龄套餐 + */ + private String oralCheckMonthId; + /** + * 当前月龄筛选-开始 + */ + private Integer queryMonthAgeStart; + /** + * 当前月龄筛选-结束 + */ + private Integer queryMonthAgeEnd; + + public Integer getQueryMonthAgeStart() { + return queryMonthAgeStart; + } + + public void setQueryMonthAgeStart(Integer queryMonthAgeStart) { + this.queryMonthAgeStart = queryMonthAgeStart; + } + + public Integer getQueryMonthAgeEnd() { + return queryMonthAgeEnd; + } + + public void setQueryMonthAgeEnd(Integer queryMonthAgeEnd) { + this.queryMonthAgeEnd = queryMonthAgeEnd; + } + + public Date getOralCheckTimeStart() { + return oralCheckTimeStart; + } + + public void setOralCheckTimeStart(Date oralCheckTimeStart) { + this.oralCheckTimeStart = oralCheckTimeStart; + } + + public Date getOralCheckTimeEnd() { + return oralCheckTimeEnd; + } + + public void setOralCheckTimeEnd(Date oralCheckTimeEnd) { + this.oralCheckTimeEnd = oralCheckTimeEnd; + } + + public Date getNextOralCheckTimeStrat() { + return nextOralCheckTimeStrat; + } + + public void setNextOralCheckTimeStrat(Date nextOralCheckTimeStrat) { + this.nextOralCheckTimeStrat = nextOralCheckTimeStrat; + } + + public Date getNextOralCheckTimeEnd() { + return nextOralCheckTimeEnd; + } + + public void setNextOralCheckTimeEnd(Date nextOralCheckTimeEnd) { + this.nextOralCheckTimeEnd = nextOralCheckTimeEnd; + } + + public String getOralCheckDoctor() { + return oralCheckDoctor; + } + + public void setOralCheckDoctor(String oralCheckDoctor) { + this.oralCheckDoctor = oralCheckDoctor; + } + + public String getPositiveType() { + return positiveType; + } + + public void setPositiveType(String positiveType) { + this.positiveType = positiveType; + } + + public List getOralHighRisk() { + return oralHighRisk; + } + + public void setOralHighRisk(List oralHighRisk) { + this.oralHighRisk = oralHighRisk; + } + + public String getQcStart() { + return qcStart; + } + + public void setQcStart(String qcStart) { + this.qcStart = qcStart; + } + + public String getQcEnd() { + return qcEnd; + } + + public void setQcEnd(String qcEnd) { + this.qcEnd = qcEnd; + } + + public String getHc() { + return hc; + } + + public void setHc(String hc) { + this.hc = hc; + } + + public String getWgfb() { + return wgfb; + } + + public void setWgfb(String wgfb) { + this.wgfb = wgfb; + } + + public String getOralCheckMonthId() { + return oralCheckMonthId; + } + + public void setOralCheckMonthId(String oralCheckMonthId) { + this.oralCheckMonthId = oralCheckMonthId; + } + @Override public MongoQuery convertToQuery() { MongoCondition condition = MongoCondition.newInstance(); @@ -1755,6 +1929,25 @@ public class BabyModelQuery extends BaseQuery implements IConvertToNativeQuery { if (null!=settleType) { condition = condition.and("settleType", settleType, MongoOper.IS); } + if (StringUtils.isNotEmpty(positiveType)) { + if("0".equals(positiveType)){ + condition = condition.and("positiveType", Arrays.asList("1","2"), MongoOper.IN); + }else { + condition = condition.and("positiveType", positiveType, MongoOper.IS); + } + } + if (CollectionUtils.isNotEmpty(oralHighRisk)) { + condition = condition.and("oralHighRisk", oralHighRisk, MongoOper.IN); + } + if (StringUtils.isNotEmpty(oralCheckMonthId)) { + condition = condition.and("oralCheckMonthId", oralCheckMonthId, MongoOper.IS); + } + if (StringUtils.isNotEmpty(hc)) { + condition = condition.and("hc", hc, MongoOper.IS); + } + if (StringUtils.isNotEmpty(oralCheckMonthId)) { + condition = condition.and("wgfb", wgfb, MongoOper.IS); + } Criteria c = null; if (null != birthStart) { @@ -2116,7 +2309,43 @@ public class BabyModelQuery extends BaseQuery implements IConvertToNativeQuery { } } - + //龋齿个数筛选 + if(StringUtils.isNotEmpty(qcStart)){//大于等于 + //字符串判断大小 + String format = String.format("function() {\n" + + " return this.qc >= %s \n" + + " }",qcStart); + if(null != c){ + c = c.and("$where").is(format).and("qc").ne("");//加ne:该字段在mongo中是”“ ,如果表达式有>=0也可查出。可以避免空数据 + }else{ + c = Criteria.where("$where").is(format).and("qc").ne(""); + } + } + if(StringUtils.isNotEmpty(qcEnd)){//小于等于 + //字符串判断大小 + String format = String.format("function() {\n" + + " return this.qc <= %s \n" + + " }",qcEnd); + if(null != c){ + c = c.and("$where").is(format).and("qc").ne("");//加ne:该字段在mongo中是”“ ,如果表达式有>=0也可查出。可以避免空数据 + }else{ + c = Criteria.where("$where").is(format).and("qc").ne(""); + } + } + if (null != oralCheckTimeStart && oralCheckTimeStart != null) { + if (null != c) { + c = c.where("oralCheckTime").gte(oralCheckTimeStart).lte(oralCheckTimeStart); + } else { + c = Criteria.where("oralCheckTime").gte(oralCheckTimeStart).lte(oralCheckTimeStart); + } + } + if (null != nextOralCheckTimeStrat && nextOralCheckTimeEnd != null) { + if (null != c) { + c = c.where("nextOralCheckTime").gte(nextOralCheckTimeStrat).lte(nextOralCheckTimeEnd); + } else { + c = Criteria.where("nextOralCheckTime").gte(nextOralCheckTimeStrat).lte(nextOralCheckTimeEnd); + } + } /** * 多个orCondition 需要添加Criteria来控制json同级两个and或者or来解决mongodb执行查询问题 diff --git a/platform-dal/src/main/java/com/lyms/platform/query/BabyOralCheckQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/BabyOralCheckQuery.java index dea63a4..cb615fa 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/BabyOralCheckQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/BabyOralCheckQuery.java @@ -122,11 +122,11 @@ public class BabyOralCheckQuery extends BaseQuery implements IConvertToNativeQue private String ycsz; private String ycszCount; /** - * 护齿(已做/未做) + * 护齿(1已做/2未做) */ private String hc; /** - * 窝沟封闭(已做/未做) + * 窝沟封闭(1已做/2未做) */ private String wgfb; /** diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyOralCheckFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyOralCheckFacade.java index 722bcf0..671383d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyOralCheckFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyOralCheckFacade.java @@ -97,32 +97,26 @@ public class BabyOralCheckFacade { } //同步数据到儿童档案(添加) - if (StringUtils.isEmpty(babyOralCheck.getId())) { - BabyModel babyModelsyn = new BabyModel(); - babyModelsyn.setPositiveType(babyOralCheck.getPositiveType()); - babyModelsyn.setOralCheckTime(babyOralCheck.getOralCheckTime()); - babyModelsyn.setNextOralCheckTime(babyOralCheck.getNextOralCheckTime()); - babyModelsyn.setOralCheckDoctor(babyOralCheck.getOralCheckDoctor()); - babyModelsyn.setOralHighRisk(babyOralCheck.getOralHighRisk()); - Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(babyModelsyn)); + BabyOralCheckQuery checkQuery=new BabyOralCheckQuery(); + checkQuery.setBabyId(babyOralCheck.getBabyId()); + List babyOralChecks=babyOralCheckService.queryList(checkQuery,Sort.Direction.DESC,"created"); + //修改最新的记录才会同步儿童档案,新增也会同步到儿童档案 + if( (CollectionUtils.isNotEmpty(babyOralChecks) && + babyOralChecks.get(0).getId().equals(babyOralCheck.getId())) || StringUtils.isEmpty(babyOralCheck.getId())){ + BabyModel babyModel2 = new BabyModel(); + babyModel2.setPositiveType(babyOralCheck.getPositiveType()); + babyModel2.setOralCheckTime(babyOralCheck.getOralCheckTime()); + babyModel2.setNextOralCheckTime(babyOralCheck.getNextOralCheckTime()); + babyModel2.setOralCheckDoctor(babyOralCheck.getOralCheckDoctor()); + babyModel2.setOralHighRisk(babyOralCheck.getOralHighRisk()); + babyModel2.setOralCheckMonthId(babyOralCheck.getCheckMonthId()); + babyModel2.setQc(babyOralCheck.getQc()); + babyModel2.setHc(babyOralCheck.getHc()); + babyModel2.setWgfb(babyOralCheck.getWgfb()); + Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(babyModel2)); mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(babyOralCheck.getBabyId())), update, BabyModel.class); - }else {//同步数据到儿童档案(修改) - BabyOralCheckQuery checkQuery=new BabyOralCheckQuery(); - checkQuery.setBabyId(babyOralCheck.getBabyId()); - List babyOralChecks=babyOralCheckService.queryList(checkQuery,Sort.Direction.DESC,"created"); - //修改最新的记录才会同步儿童档案 - if(CollectionUtils.isNotEmpty(babyOralChecks) && - babyOralChecks.get(0).getId().equals(babyOralCheck.getId())){ - BabyModel babyModelsyn = new BabyModel(); - babyModelsyn.setPositiveType(babyOralCheck.getPositiveType()); - babyModelsyn.setOralCheckTime(babyOralCheck.getOralCheckTime()); - babyModelsyn.setNextOralCheckTime(babyOralCheck.getNextOralCheckTime()); - babyModelsyn.setOralCheckDoctor(babyOralCheck.getOralCheckDoctor()); - babyModelsyn.setOralHighRisk(babyOralCheck.getOralHighRisk()); - Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(babyModelsyn)); - mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(babyOralCheck.getBabyId())), update, BabyModel.class); - } } + BaseObjectResponse br = new BaseObjectResponse(); br.setErrorcode(ErrorCodeConstants.SUCCESS); br.setErrormsg("成功"); @@ -218,10 +212,10 @@ public class BabyOralCheckFacade { } //当前月龄筛选 if(request.getQueryMonthAgeStart()!=null){ - request.setBirthStart(DateUtil.getBirthEnd(request.getQueryMonthAgeStart())); + request.setBirthStart(DateUtil.getBirthStart(request.getQueryMonthAgeEnd())); } if(request.getQueryMonthAgeEnd()!=null){ - request.setBirthEnd(DateUtil.getBirthStart(request.getQueryMonthAgeEnd())); + request.setBirthEnd(DateUtil.getBirthEnd(request.getQueryMonthAgeStart())); } List babyOralChecks=babyOralCheckService.queryList(request,Sort.Direction.DESC,"created"); List result=new ArrayList<>(); @@ -244,6 +238,20 @@ public class BabyOralCheckFacade { babyModelQuery.setNeed("true"); babyModelQuery.setYn(YnEnums.YES.getId()); babyModelQuery.setHospitalId(hospitalId); + //结束日期加上时分秒 + if (babyModelQuery.getOralCheckTimeEnd() != null) { + babyModelQuery.setOralCheckTimeEnd(DateUtil.getDayLastSecond(babyModelQuery.getOralCheckTimeEnd())); + } + if (babyModelQuery.getNextOralCheckTimeEnd() != null) { + babyModelQuery.setNextOralCheckTimeEnd(DateUtil.getDayLastSecond(babyModelQuery.getNextOralCheckTimeEnd())); + } + //当前月龄筛选 + if(babyModelQuery.getQueryMonthAgeStart()!=null){ + babyModelQuery.setBirthStart(DateUtil.getBirthStart(babyModelQuery.getQueryMonthAgeEnd())); + } + if(babyModelQuery.getQueryMonthAgeEnd()!=null){ + babyModelQuery.setBirthEnd(DateUtil.getBirthEnd(babyModelQuery.getQueryMonthAgeStart())); + } List babyModelList = babyBookbuildingService.queryBabyBuildByCond(babyModelQuery, "oralCheckTime", Sort.Direction.DESC); BaseObjectResponse br = new BaseObjectResponse();