diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyCheckModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyCheckModel.java index 6454d12..50b347d 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyCheckModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyCheckModel.java @@ -499,6 +499,19 @@ public class BabyCheckModel extends BaseModel { //精细运动 private String fineExercise ; + /** + * 儿童检项 + */ + private String configItemId; + + public String getConfigItemId() { + return configItemId; + } + + public void setConfigItemId(String configItemId) { + this.configItemId = configItemId; + } + public String getOtherDiagnose() { return otherDiagnose; } diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/CheckItemOrder.java b/platform-dal/src/main/java/com/lyms/platform/pojo/CheckItemOrder.java index c89ad0b..e3a1fff 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/CheckItemOrder.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/CheckItemOrder.java @@ -22,6 +22,15 @@ public class CheckItemOrder extends BaseModel { private String hospitalId; private Date created; private String checkId; + private Integer type;// 1孕妇 2儿童 + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } public String getCheckId() { return checkId; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyCheckController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyCheckController.java index b35c392..887df51 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyCheckController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyCheckController.java @@ -131,7 +131,7 @@ public class BabyCheckController extends BaseController { @RequestParam(required = false) String sINCard, String coupon, @RequestParam(required = false) String ynStatus) { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); - return babyCheckFacade.queryChooseBabys(vcCardNo, cardNo,encoded,sINCard, loginState.getId(), coupon, ynStatus); + return babyCheckFacade.queryChooseBabys(vcCardNo, cardNo, encoded, sINCard, loginState.getId(), coupon, ynStatus); } @@ -486,4 +486,32 @@ public class BabyCheckController extends BaseController { public BaseResponse saveBuildByUpload(@RequestBody BabyBuildInfoParam param) { return babyCheckFacade.saveBuildByUpload(param); } + + + + /** + *处方计划报表 + * @param orderTime 预约时间 + * @param request + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/getBabyPlanReport") + @ResponseBody + @TokenRequired + public BaseResponse getBabyPlanReport(@RequestParam String orderTime, HttpServletRequest request) { + return babyCheckFacade.getBabyPlanReport(orderTime, getUserId(request)); + } + + /** + * 处方实际报表 + * @param checkTime 产检时间 + * @param request + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/getBabyActualReport") + @ResponseBody + @TokenRequired + public BaseResponse getBabyActualReport(@RequestParam String checkTime, HttpServletRequest request) { + return babyCheckFacade.getBabyActualReport(checkTime, getUserId(request)); + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CheckItemManageController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CheckItemManageController.java index 6d97378..2b755fa 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CheckItemManageController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CheckItemManageController.java @@ -126,6 +126,7 @@ public class CheckItemManageController extends BaseController { boolean end = true; CheckItemManageQuery checkItemManageQuery = new CheckItemManageQuery(); checkItemManageQuery.setAffiliateId(affiliateId); + checkItemManageQuery.setType(type); List list = checkItemManageService.getCheckItemManage(affiliateId); if (CollectionUtils.isNotEmpty(list)) { for (CheckItemManage checkItemManage : list) { @@ -153,7 +154,7 @@ public class CheckItemManageController extends BaseController { checkItemManageService.addCheckItem(checkItemManage); ResultUtils.buildSuccessResultAndWrite(response); } else { - ResultUtils.buildParameterErrorResultAndWrite(response, "此范围以填写!"); + ResultUtils.buildParameterErrorResultAndWrite(response, "此范围已填写!"); } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java index 1193b43..dcff669 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java @@ -1957,7 +1957,7 @@ public class AntExRecordFacade { String[] arrs = orderTime.split(" - "); Date start = DateUtil.parseYMD(arrs[0]); Date end = DateUtil.parseYMD(arrs[1]); - long count = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end))), CheckItemOrder.class); + long count = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("type").is(2).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end))), CheckItemOrder.class); data.put("allCount", String.valueOf(count)); Map param = new HashMap(); @@ -1967,7 +1967,7 @@ public class AntExRecordFacade { if (CollectionUtils.isNotEmpty(checkItems)) { List list = new ArrayList<>(); for (CheckItem item : checkItems) { - long itemCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime") + long itemCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").and("type").is(2).is(hospitalId).and("nextCheckTime") .gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end)).and("itemId").is(item.getId())), CheckItemOrder.class); if (itemCount == 0) { @@ -1992,7 +1992,7 @@ public class AntExRecordFacade { String[] arrs = checkTime.split(" - "); Date start = DateUtil.parseYMD(arrs[0]); Date end = DateUtil.parseYMD(arrs[1]); - long count = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end))), CheckItemOrder.class); + long count = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("type").is(2).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end))), CheckItemOrder.class); data.put("allCount", String.valueOf(count)); Map param = new HashMap(); @@ -2002,7 +2002,7 @@ public class AntExRecordFacade { if (CollectionUtils.isNotEmpty(checkItems)) { List list = new ArrayList<>(); for (CheckItem item : checkItems) { - long itemCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime") + long itemCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("type").is(2).and("nextCheckTime") .gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end)).and("itemId").is(item.getId())), CheckItemOrder.class); if (itemCount == 0) { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java index 5bf9a57..7b06a24 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java @@ -1408,11 +1408,13 @@ public class AntenatalExaminationFacade { } public void saveCheckItem(Date nextCheckTime, Patients patients,String checkItems,String checkId,String hospitalId) { + mongoTemplate.remove(Query.query(Criteria.where("checkId").is(checkId)), CheckItemOrder.class); if (StringUtils.isNotEmpty(checkItems)) { String[] arrs = checkItems.split(","); for (String id : arrs) { CheckItemOrder order = new CheckItemOrder(); + order.setType(1); order.setCreated(new Date()); order.setHospitalId(hospitalId); order.setNextCheckTime(nextCheckTime); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java index 78b357d..c3f6552 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java @@ -10,6 +10,7 @@ import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.common.enums.*; import com.lyms.platform.common.result.*; import com.lyms.platform.common.utils.*; +import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.request.*; import com.lyms.platform.operate.web.result.*; import com.lyms.platform.operate.web.service.BabyAfterVisitService; @@ -18,6 +19,7 @@ import com.lyms.platform.operate.web.service.impl.BaseServiceImpl; import com.lyms.platform.operate.web.utils.MongoUtil; import com.lyms.platform.operate.web.utils.ReflectUtil; import com.lyms.platform.permission.dao.master.CouponMapper; +import com.lyms.platform.permission.model.CheckItem; import com.lyms.platform.permission.model.Organization; import com.lyms.platform.permission.model.PatientService; import com.lyms.platform.permission.model.Users; @@ -25,6 +27,7 @@ import com.lyms.platform.permission.service.*; import com.lyms.platform.pojo.*; import com.lyms.platform.query.*; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; @@ -113,6 +116,10 @@ public class BabyCheckFacade extends BaseServiceImpl { @Autowired private BabyAfterVisitService babyAfterVisitService; + + @Autowired + private CheckItemService checkItemService; + public static final String HIS_VERSION = PropertiesUtils.getPropertyValue("his_version"); /** * 更新检查 @@ -132,6 +139,12 @@ public class BabyCheckFacade extends BaseServiceImpl { List models = babyCheckService.queryBabyCheckRecord(query); babyCheckService.updateBabyCheck(model, request.getId()); + + if (StringUtils.isNotEmpty(request.getNextDate())) + { + saveCheckItem(model.getNextDate(), request.getBuildId(),request.getConfigItemId(),model.getId(),hospitalId); + } + if (CollectionUtils.isNotEmpty(models)) { operateLogFacade.addModifyOptLog(userId, Integer.valueOf(hospitalId), models.get(0), model, OptActionEnums.UPDATE.getId(), "修改儿童检查"); } @@ -494,7 +507,7 @@ public class BabyCheckFacade extends BaseServiceImpl { model.setAlotExercise(request.getAlotExercise()); model.setFineExercise(request.getFineExercise()); - + model.setConfigItemId(request.getConfigItemId()); return model; } @@ -597,6 +610,13 @@ public class BabyCheckFacade extends BaseServiceImpl { model.setCreated(new Date()); model = babyCheckService.addBabyCheck(model); + if (StringUtils.isNotEmpty(request.getNextDate())) + { + saveCheckItem(model.getNextDate(), request.getBuildId(),request.getConfigItemId(),model.getId(),hospitalId); + } + + + // 添加追访记录 Date nextDate = bm.getNextDate(); if (nextDate != null) { @@ -709,6 +729,28 @@ public class BabyCheckFacade extends BaseServiceImpl { } + + + public void saveCheckItem(Date nextCheckTime, String buildId,String checkItems,String checkId,String hospitalId) { + mongoTemplate.remove(Query.query(Criteria.where("checkId").is(checkId)), CheckItemOrder.class); + if (org.apache.commons.lang.StringUtils.isNotEmpty(checkItems)) { + String[] arrs = checkItems.split(","); + for (String id : arrs) + { + CheckItemOrder order = new CheckItemOrder(); + order.setType(2); + order.setCreated(new Date()); + order.setHospitalId(hospitalId); + order.setNextCheckTime(nextCheckTime); + order.setItemId(id); + order.setCheckId(checkId); + order.setPatientId(buildId); + mongoTemplate.save(order); + } + + } + } + public void updateLastGrowth(BabyCheckModel model) { babyBookbuildingService.updateBabyLastGrowth(model); } @@ -3209,4 +3251,75 @@ public class BabyCheckFacade extends BaseServiceImpl { } return new BaseResponse(); } + + public BaseResponse getBabyPlanReport(String orderTime, Integer userId) { + + Map data = new HashMap<>(); + String hospitalId = autoMatchFacade.getHospitalId(userId); + if (orderTime != null) { + String[] arrs = orderTime.split(" - "); + Date start = DateUtil.parseYMD(arrs[0]); + Date end = DateUtil.parseYMD(arrs[1]); + long count = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("type").is(1).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end))), CheckItemOrder.class); + data.put("allCount", String.valueOf(count)); + + Map param = new HashMap(); + param.put("type",null); + param.put("hospitalId",hospitalId); + List checkItems = checkItemService.getCheckItemList(param); + if (CollectionUtils.isNotEmpty(checkItems)) { + List list = new ArrayList<>(); + for (CheckItem item : checkItems) { + long itemCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("type").is(1).and("nextCheckTime") + .gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end)).and("itemId").is(item.getId())), CheckItemOrder.class); + if (itemCount == 0) + { + continue; + } + Map map = new HashMap<>(); + map.put("itemName", item.getProject()); + map.put("itemCount", String.valueOf(itemCount)); + list.add(map); + } + data.put("itemList", list); + } + } + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setData(data).setErrormsg("成功"); + } + + public BaseResponse getBabyActualReport(String checkTime, Integer userId) { + + Map data = new HashMap<>(); + String hospitalId = autoMatchFacade.getHospitalId(userId); + if (checkTime != null) { + String[] arrs = checkTime.split(" - "); + Date start = DateUtil.parseYMD(arrs[0]); + Date end = DateUtil.parseYMD(arrs[1]); + long count = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("type").is(1).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end))), CheckItemOrder.class); + data.put("allCount", String.valueOf(count)); + + Map param = new HashMap(); + param.put("type",null); + param.put("hospitalId",hospitalId); + List checkItems = checkItemService.getCheckItemList(param); + if (CollectionUtils.isNotEmpty(checkItems)) { + List list = new ArrayList<>(); + for (CheckItem item : checkItems) { + long itemCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("type").is(1).and("nextCheckTime") + .gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end)).and("itemId").is(item.getId())), CheckItemOrder.class); + if (itemCount == 0) + { + continue; + } + Map map = new HashMap<>(); + map.put("itemName", item.getProject()); + map.put("itemCount", String.valueOf(itemCount)); + map.put("actualCount", "0"); + list.add(map); + } + data.put("itemList", list); + } + } + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setData(data).setErrormsg("成功"); + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyCheckRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyCheckRequest.java index 1c93b6f..a6085dd 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyCheckRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyCheckRequest.java @@ -459,6 +459,22 @@ public class BabyCheckRequest { private String socialContactIA; private String socialContactDQ; + + + /** + * 儿童检项 + */ + private String configItemId; + + + public String getConfigItemId() { + return configItemId; + } + + public void setConfigItemId(String configItemId) { + this.configItemId = configItemId; + } + public String getHeightEvaluateStandard() { return heightEvaluateStandard; }