diff --git a/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverQuery.java index 8191832..9d1c9b8 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverQuery.java @@ -6,6 +6,7 @@ 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 org.apache.commons.collections.CollectionUtils; +import org.bson.types.ObjectId; import org.springframework.data.mongodb.core.query.Criteria; import java.util.Date; @@ -126,6 +127,9 @@ public class MatDeliverQuery extends BaseQuery implements IConvertToNativeQuery // 1 <2500g、2 ≥4000g、3 ≥2500g与<4000g之间 private Integer weight; + private List babyIds; + + @Override public MongoQuery convertToQuery() { MongoCondition condition = MongoCondition.newInstance(); @@ -269,21 +273,8 @@ public class MatDeliverQuery extends BaseQuery implements IConvertToNativeQuery } } - if (weight != null) { - - //1 <2500g、2 ≥4000g、3 ≥2500g与<4000g之间 - switch (weight) { - case 1: - condition = condition.and("baby.babyWeight", "2500", MongoOper.LT); - break; - case 2: - condition = condition.and("baby.babyWeight", "4000", MongoOper.GTE); - break; - case 3: - isAddStart = Boolean.TRUE; - c = Criteria.where("baby.babyWeight").gte("2500").lt("4000"); - break; - } + if (babyIds != null && babyIds.size() > 0) { + condition = condition.and("baby._id", babyIds, MongoOper.IN); } if (null != createdStart) { @@ -332,6 +323,13 @@ public class MatDeliverQuery extends BaseQuery implements IConvertToNativeQuery return condition.toMongoQuery(); } + public List getBabyIds() { + return babyIds; + } + + public void setBabyIds(List babyIds) { + this.babyIds = babyIds; + } public Integer getWeight() { return weight; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java index 5a1efb6..8ad4475 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java @@ -5,6 +5,7 @@ import com.lyms.hospitalapi.lcdcf.LcdcfHisModel; import com.lyms.hospitalapi.lcdcf.LcdcfHisService; import com.lyms.platform.biz.service.*; import com.lyms.platform.common.constants.ErrorCodeConstants; +import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.enums.*; import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseObjectResponse; @@ -31,11 +32,13 @@ import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.map.HashedMap; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; +import org.bson.types.ObjectId; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; @@ -1681,21 +1684,19 @@ public class MatDeliverFacade { if (matdeliverFollowRequest.getStartDay() != null && matdeliverFollowRequest.getEndDay() != null ) { matDeliverQuery.setCreatedStart(DateUtil.formatDate(DateUtil.addDay(new Date(), -matdeliverFollowRequest.getEndDay()))); - matDeliverQuery.setEndStart(DateUtil.formatDate(DateUtil.addDay(new Date(), -matdeliverFollowRequest.getStartDay()+1))); + matDeliverQuery.setEndStart(DateUtil.formatDate(DateUtil.addDay(new Date(), -matdeliverFollowRequest.getStartDay()))); } else if (matdeliverFollowRequest.getStartDay() != null) { matDeliverQuery.setCreatedStart(DateUtil.formatDate(DateUtil.addDay(new Date(), -matdeliverFollowRequest.getStartDay()))); - matDeliverQuery.setEndStart(DateUtil.formatDate(DateUtil.addDay(new Date(), -matdeliverFollowRequest.getStartDay()+1))); + matDeliverQuery.setEndStart(DateUtil.formatDate(DateUtil.addDay(new Date(), -matdeliverFollowRequest.getStartDay()))); } else if(matdeliverFollowRequest.getEndDay() != null) { matDeliverQuery.setCreatedStart(DateUtil.formatDate(DateUtil.addDay(new Date(), -matdeliverFollowRequest.getEndDay()))); - matDeliverQuery.setEndStart(DateUtil.formatDate(DateUtil.addDay(new Date(), -matdeliverFollowRequest.getEndDay()+1))); + matDeliverQuery.setEndStart(DateUtil.formatDate(DateUtil.addDay(new Date(), -matdeliverFollowRequest.getEndDay()))); } - System.out.println(DateUtil.getyyyy_MM_dd(matDeliverQuery.getCreatedStart())); - System.out.println(DateUtil.getyyyy_MM_dd(matDeliverQuery.getEndStart())); // if (matdeliverFollowRequest.getFollowStage() != null) {//按访视阶段查询 // if (matdeliverFollowRequest.getFollowStage() == 1) {//1、访视期内 分娩时间为:21天到当前时间 @@ -1858,7 +1859,7 @@ public class MatDeliverFacade { } } - + String hid = autoMatchFacade.getHospitalId(childbirthManagerRequest.getOperatorId()); patientsQuery.setYn(YnEnums.YES.getId()); patientsQuery.setIsAutoFm(YnEnums.NO.getId()); patientsQuery.setType(3); @@ -1866,7 +1867,7 @@ public class MatDeliverFacade { List hospitalList = new ArrayList<>(); if (StringUtils.isEmpty(childbirthManagerRequest.getIsArea())) { // 非区域 - hospitalList.add(autoMatchFacade.getHospitalId(childbirthManagerRequest.getOperatorId())); + hospitalList.add(hid); } else { // 区域 if (StringUtils.isNotEmpty(childbirthManagerRequest.getHospitalId())) { @@ -1954,7 +1955,36 @@ public class MatDeliverFacade { matDeliverQuery.setHloseBloodType(childbirthManagerRequest.getHloseBloodType()); String deliveryModeQueryJson = "fmfs\\\":\\\"" + childbirthManagerRequest.getDeliveryMode(); matDeliverQuery.setDeliveryModeQueryJson(StringUtils.isEmpty(childbirthManagerRequest.getDeliveryMode()) ? null : deliveryModeQueryJson); - matDeliverQuery.setWeight(childbirthManagerRequest.getWeight()); +// matDeliverQuery.setWeight(childbirthManagerRequest.getWeight()); + + if (childbirthManagerRequest.getWeight() != null) + { + BabyModelQuery babyModelQuery = new BabyModelQuery(); + babyModelQuery.setDataStatus(false); + babyModelQuery.setHospitalId(hid); + babyModelQuery.setBuildType(2); + + switch (childbirthManagerRequest.getWeight()) { + case 1: + babyModelQuery.setBabyWeightEnd(String.valueOf(2500 - 0.01)); + break; + case 2: + babyModelQuery.setBabyWeightStart(String.valueOf(4000)); + break; + case 3: + babyModelQuery.setBabyWeightStart(String.valueOf(2500)); + babyModelQuery.setBabyWeightEnd(String.valueOf(4000 - 0.01)); + break; + } + List babyModelList = babyService.queryBabyWithQuery(babyModelQuery); + List babyParentIdList = new ArrayList<>(); + for (BabyModel babyModel : babyModelList) { + babyParentIdList.add(babyModel.getParentId()); + } + parentIdList.retainAll(babyParentIdList); + matDeliverQuery.setParentIdList(parentIdList); + } + List maternalDeliverModelList; if (!childbirthManagerRequest.isExcel() && (childbirthManagerRequest.getHloseBloodType() != null @@ -1962,6 +1992,7 @@ public class MatDeliverFacade { matDeliverQuery.setLimit(childbirthManagerRequest.getLimit()); matDeliverQuery.setPage(childbirthManagerRequest.getPage()); matDeliverQuery.setNeed("need"); + System.out.println(matDeliverQuery.convertToQuery().convertToMongoQuery().toString()); maternalDeliverModelList = matDeliverService.pageQuery(matDeliverQuery); // 这里就设置分页内容 childbirthManagerResult.setPageInfo(matDeliverQuery.getPageInfo());