diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBpReportDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBpReportDao.java index 7c588f9..0c4cafe 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBpReportDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBpReportDao.java @@ -33,4 +33,7 @@ public interface IBpReportDao { BpReportModel getBpReport(String id); + + + void updateBpReport(BpReportModel obj, String id); } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BpReportDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BpReportDaoImpl.java index 18cd2a7..90035d7 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BpReportDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BpReportDaoImpl.java @@ -2,6 +2,8 @@ package com.lyms.platform.biz.dal.impl; import com.lyms.platform.biz.dal.IBpReportDao; import com.lyms.platform.common.dao.BaseMongoDAOImpl; +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.pojo.BpReportModel; import org.slf4j.Logger; @@ -46,4 +48,9 @@ public class BpReportDaoImpl extends BaseMongoDAOImpl implements public BpReportModel getBpReport(String id) { return findById(id); } + + @Override + public void updateBpReport(BpReportModel obj, String id) { + update(new MongoQuery(new MongoCondition("id", id, MongoOper.IS)).convertToMongoQuery(), obj); + } } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BpReportService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BpReportService.java index bd9d117..80d72f2 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BpReportService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BpReportService.java @@ -40,6 +40,9 @@ public class BpReportService { return bpReportDao.queryBpReport(query1); } + public void updateBpReport(BpReportModel obj, String id){ + bpReportDao.updateBpReport(obj,id); + } public BpReportModel findById(String id) { return bpReportDao.getBpReport(id); } diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/BpReportModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/BpReportModel.java index 00d535d..c0fdb23 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/BpReportModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/BpReportModel.java @@ -20,7 +20,7 @@ import java.util.Date; * @since BME V100R001C40B104 */ @Document(collection = "lyms_bp_report") -public class BpReportModel extends BaseModel{ +public class BpReportModel extends BaseModel { private String pid; private Date created; @@ -40,6 +40,16 @@ public class BpReportModel extends BaseModel{ //指导 private String guide; private Integer yn; + //查看状态 0 未查看 1 已查看 + private Integer status; + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } public Integer getYn() { return yn; diff --git a/platform-dal/src/main/java/com/lyms/platform/query/BpReportQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/BpReportQuery.java index 431e3ce..f66d058 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/BpReportQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/BpReportQuery.java @@ -12,7 +12,11 @@ import com.lyms.platform.common.dao.operator.MongoQuery; public class BpReportQuery extends BaseQuery implements IConvertToNativeQuery { private String pid; private Integer yn; + private Integer status; + public void setStatus(Integer status) { + this.status = status; + } @Override public MongoQuery convertToQuery() { @@ -21,6 +25,9 @@ public class BpReportQuery extends BaseQuery implements IConvertToNativeQuery { if(null!=pid){ condition=condition.and("pid", pid, MongoOper.IS); } + if(null!=pid){ + condition=condition.and("status", status, MongoOper.IS); + } if(null!=yn){ condition=condition.and("yn", yn, MongoOper.IS); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java index 57a436a..4895c86 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java @@ -111,6 +111,18 @@ public class BloodPressureController extends BaseController { return bpReportFacade.lookReportDetailById(id, week, type); } + + /** + * 获取未读的消息 + * @param pid + * @return + */ + @ResponseBody + @RequestMapping(value = "/app/unread/{pid}", method = RequestMethod.GET) + public BaseResponse checkUnReadReport(@PathVariable String pid){ + return bpReportFacade.checkUnReadReport(pid); + } + @Autowired private BpReportFacade bpReportFacade; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BpReportFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BpReportFacade.java index 0959fe1..c2fd6c6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BpReportFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BpReportFacade.java @@ -49,6 +49,29 @@ public class BpReportFacade { private PatientsService patientService; /** + * 获取未读的消息信息 + * @return + */ + public BaseResponse checkUnReadReport(String pid){ + BpReportQuery reportQuery = new BpReportQuery(); + reportQuery.setYn(YnEnums.YES.getId()); + reportQuery.setPid(pid); + reportQuery.setStatus(0); + List DATA = bpReportService.queryBpReport(reportQuery); + //查询最近一个生成的没看的记录 + Map map = new HashMap<>(); + if(CollectionUtils.isNotEmpty(DATA)){ + BpReportModel bpReport= DATA.get(DATA.size() - 1); + map.put("id", bpReport.getId()); + map.put("title", bpReport.getTitle()); + map.put("create", DateUtil.getyyyy_MM_dd(bpReport.getCreated())); + map.put("type", bpReport.getType()); + map.put("week", bpReport.getWeek()); + } + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(map); + } + + /** * 查询某个人的血压报告数据 * * @param pid pid @@ -92,54 +115,57 @@ public class BpReportFacade { BpReportModel bpReport = bpReportService.findById(reportId); List guideModelList = pressureGuideService.queryPloodPressureGuides(pressureGuideQuery); + Map data = new HashMap(); - Map data =new HashMap(); + if (null != bpReport) { + //修改为已读状态 + bpReport.setStatus(1); - if(null!=bpReport){ + bpReportService.updateBpReport(bpReport, bpReport.getId()); data.put("id", bpReport.getId()); - PatientsQuery patientsQuery1= new PatientsQuery(); + PatientsQuery patientsQuery1 = new PatientsQuery(); patientsQuery1.setPid(bpReport.getPid()); patientsQuery1.setType(1); patientsQuery1.setYn(YnEnums.YES.getId()); List patientses = patientService.queryPatient(patientsQuery1); - if(CollectionUtils.isNotEmpty(patientses)){ - data.put("age",DateUtil.getAge(patientses.get(0).getBirth())); - data.put("lastMenses",DateUtil.getyyyy_MM_dd(patientses.get(0).getLastMenses())); - data.put("name",patientses.get(0).getUsername()); - data.put("dueWeek",DateUtil.getyyyy_MM_dd(patientses.get(0).getDueDate())); + if (CollectionUtils.isNotEmpty(patientses)) { + data.put("age", DateUtil.getAge(patientses.get(0).getBirth())); + data.put("lastMenses", DateUtil.getyyyy_MM_dd(patientses.get(0).getLastMenses())); + data.put("name", patientses.get(0).getUsername()); + data.put("dueWeek", DateUtil.getyyyy_MM_dd(patientses.get(0).getDueDate())); data.put("week", DateUtil.getWeek(patientses.get(0).getLastMenses(), new Date())); } - data.put("title",bpReport.getTitle()); + data.put("title", bpReport.getTitle()); - data.put("height",bpReport.getId()); + data.put("height", bpReport.getId()); //测评评估 - data.put("assess",bpReport.getAssess()); + data.put("assess", bpReport.getAssess()); //测评次数 - data.put("count",bpReport.getCount()); + data.put("count", bpReport.getCount()); //血压值异常次数 - data.put("bpValExp",bpReport.getBpValExp()); + data.put("bpValExp", bpReport.getBpValExp()); //血压波动次数 - data.put("bpWaveCount",bpReport.getBpWaveCount()); + data.put("bpWaveCount", bpReport.getBpWaveCount()); //指导 - data.put("guide",bpReport.getGuide()); + data.put("guide", bpReport.getGuide()); - data.put("guideData",convertToResponse(guideModelList)); + data.put("guideData", convertToResponse(guideModelList)); } return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(data); } - private List convertToResponse(List data){ - List list =new ArrayList(); - for(PloodPressureGuideModel guideModel:data){ + private List convertToResponse(List data) { + List list = new ArrayList(); + for (PloodPressureGuideModel guideModel : data) { Map map = new HashMap(); - map.put("category",guideModel.getCategory()); - map.put("categoryType",guideModel.getCategoryType()); - map.put("content",guideModel.getContent()); - map.put("order",guideModel.getOrder()); + map.put("category", guideModel.getCategory()); + map.put("categoryType", guideModel.getCategoryType()); + map.put("content", guideModel.getContent()); + map.put("order", guideModel.getOrder()); list.add(map); } return list; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java index b0aaa03..a6f1359 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java @@ -149,6 +149,7 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP } } } + report.setStatus(0); report.setType(countType+bpCountType); report.setGuide(typeGuideMap.get(report.getType())); report.setBpWaveCount(String.valueOf(bpcount));