diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/RareBloodGroupModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/RareBloodGroupModel.java index 096789f..cc3eeb9 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/RareBloodGroupModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/RareBloodGroupModel.java @@ -16,6 +16,7 @@ public class RareBloodGroupModel extends BaseModel { private String id; private String parentId; + private String Week;//录入孕周 private String pid; private String hospitalId; private String bloodGroupGenotyping; // 血型基因分型 @@ -25,6 +26,13 @@ public class RareBloodGroupModel extends BaseModel { private Date created; + public String getWeek() { + return Week; + } + + public void setWeek(String week) { + Week = week; + } public String getHospitalId() { return hospitalId; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java index 97f6f6e..7c54427 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java @@ -178,24 +178,38 @@ public class PuerperaManageController extends BaseController { } /** - * 稀有血型专病门诊 添加or更新 + * 稀有血型专病门诊 添加 */ - @RequestMapping(value = "/rareAddOrUpdate", method = RequestMethod.POST) + @RequestMapping(value = "/rareAdd", method = RequestMethod.POST) @ResponseBody @TokenRequired - public BaseResponse addOrUpdate(@RequestBody RareBloodGroupModel rareBloodGroupModel, HttpServletRequest request) { + public BaseResponse add(@RequestBody RareBloodGroupModel rareBloodGroupModel, HttpServletRequest request) { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); - return rareBloodGroupService.addOrUpdate( loginState.getId(),rareBloodGroupModel); + return rareBloodGroupService.add(loginState.getId(), rareBloodGroupModel); + } + @RequestMapping(value = "/wxRareAdd", method = RequestMethod.POST) + @ResponseBody + public BaseResponse wxRareAdd(@RequestBody RareBloodGroupModel rareBloodGroupModel) { + return rareBloodGroupService.add(null, rareBloodGroupModel); } /** - *稀有血型专病门诊 详情 + * 稀有血型专病门诊更新 */ + @RequestMapping(value = "/rareUpdate", method = RequestMethod.POST) @ResponseBody - @RequestMapping(value = "/infoRare", method = RequestMethod.GET) @TokenRequired - public BaseResponse infoRare(RareBloodGroupModel rareBloodGroupModel, HttpServletRequest request) { + public BaseResponse Update(@RequestBody RareBloodGroupModel rareBloodGroupModel, HttpServletRequest request) { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); - return rareBloodGroupService.info( loginState.getId(),rareBloodGroupModel); + return rareBloodGroupService.Update(loginState.getId(), rareBloodGroupModel); + } + + /** + * 稀有血型专病门诊 详情 + */ + @ResponseBody + @RequestMapping(value = "/infoListRare", method = RequestMethod.GET) + public BaseResponse infoListRare(RareBloodGroupModel rareBloodGroupModel, HttpServletRequest request) { + return rareBloodGroupService.infoListRare(null, rareBloodGroupModel); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/RareBloodGroupService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/RareBloodGroupService.java index 6813c30..d3180e1 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/RareBloodGroupService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/RareBloodGroupService.java @@ -8,9 +8,11 @@ import java.util.List; public interface RareBloodGroupService extends IBaseService { - BaseResponse addOrUpdate(Integer userId, RareBloodGroupModel rareBloodGroupModel); + BaseResponse add(Integer userId, RareBloodGroupModel rareBloodGroupModel); - BaseResponse info(Integer userId, RareBloodGroupModel rareBloodGroupModel); + BaseResponse Update(Integer userId, RareBloodGroupModel rareBloodGroupModel); + + BaseResponse infoListRare(Integer userId, RareBloodGroupModel rareBloodGroupModel); List queryList(RareQuery rareQuery); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/RareBloodGroupServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/RareBloodGroupServiceImpl.java index 7f4b5a9..0b9910b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/RareBloodGroupServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/RareBloodGroupServiceImpl.java @@ -1,18 +1,21 @@ package com.lyms.platform.operate.web.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.lyms.platform.biz.dal.IRareBloodGroupDao; +import com.lyms.platform.biz.service.PatientsService; +import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.dao.operator.MongoQuery; -import com.lyms.platform.common.enums.OptActionEnums; import com.lyms.platform.common.enums.YnEnums; -import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; -import com.lyms.platform.common.result.PageResult; import com.lyms.platform.common.result.RespBuilder; +import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.common.utils.MongoConvertHelper; import com.lyms.platform.common.utils.ReflectionUtils; import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.service.RareBloodGroupService; -import com.lyms.platform.pojo.*; +import com.lyms.platform.pojo.Patients; +import com.lyms.platform.pojo.RareBloodGroupModel; import com.lyms.platform.query.RareQuery; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; @@ -25,8 +28,7 @@ import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Service; -import java.util.Date; -import java.util.List; +import java.util.*; /** * 稀有血型 @@ -42,47 +44,89 @@ public class RareBloodGroupServiceImpl extends BaseServiceImpl implements RareBl private AutoMatchFacade autoMatchFacade; @Autowired private MongoTemplate mongoTemplate; + @Autowired + private PatientsService patientsService; @Override - public BaseResponse addOrUpdate(Integer userId, RareBloodGroupModel rareBloodGroupModel) { - String hospitalId = autoMatchFacade.getHospitalId(userId); - List babyDietReportList = null; - if (rareBloodGroupModel != null && rareBloodGroupModel.getParentId() != null) { - babyDietReportList = mongoTemplate.find(Query.query(Criteria.where("parentId").is(rareBloodGroupModel.getParentId()). - and("hospitalId").is(hospitalId). - and("yn").is(YnEnums.YES.getId())), RareBloodGroupModel.class); - } - if (babyDietReportList != null && babyDietReportList.size() > 0) { - //更新 - rareBloodGroupModel.setCreated(new Date()); - rareBloodGroupModel.setYn(YnEnums.YES.getId()); - rareBloodGroupModel.setHospitalId(hospitalId); - Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(rareBloodGroupModel)); - mongoTemplate.updateFirst(Query.query(Criteria.where("parentId").is(rareBloodGroupModel.getId())), update, RareBloodGroupModel.class); - } else { - rareBloodGroupModel.setHospitalId(hospitalId); + public BaseResponse add(Integer userId, RareBloodGroupModel rareBloodGroupModel) { + try { + + if (userId != null && "1".equals(rareBloodGroupModel.getSource())){ + String hospitalId = autoMatchFacade.getHospitalId(userId); + rareBloodGroupModel.setHospitalId(hospitalId); + rareBloodGroupModel.setSource("1"); + + } else if (userId == null && "2".equals(rareBloodGroupModel.getSource())) { + if (rareBloodGroupModel.getParentId() != null) { + Patients pat = patientsService.findOnePatientById(rareBloodGroupModel.getParentId()); + if (pat != null) { + rareBloodGroupModel.setHospitalId(pat.getHospitalId()); + rareBloodGroupModel.setPid(pat.getPid()); + rareBloodGroupModel.setSource("2"); + } + } + }else { + return new BaseResponse(); + } rareBloodGroupModel.setYn(YnEnums.YES.getId()); rareBloodGroupModel.setCreated(new Date()); + Patients p = mongoTemplate.findById(rareBloodGroupModel.getParentId(), Patients.class); + rareBloodGroupModel.setWeek(DateUtil.getWeekDesc(p.getLastMenses(), new Date()));//录入孕周 rareBloodGroupDao.addRare(rareBloodGroupModel); + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); + } catch (Exception e) { + e.printStackTrace(); + } + return new BaseResponse(); + } + + + + @Override + public BaseResponse Update(Integer userId, RareBloodGroupModel rareBloodGroupModel) { + try { +// Patients p = mongoTemplate.findById(rareBloodGroupModel.getParentId(), Patients.class); +// rareBloodGroupModel.setWeek( DateUtil.getWeekDesc(p.getLastMenses(), new Date()));//录入孕周 + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(rareBloodGroupModel)); + JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(rareBloodGroupModel)); + mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(jsonObject.getString("id"))), update, rareBloodGroupModel.getClass()); + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); + } catch (Exception e) { + e.printStackTrace(); } - return RespBuilder.buildSuccess(rareBloodGroupModel); + return new BaseResponse(); + } + @Override - public BaseResponse info(Integer userId, RareBloodGroupModel rareBloodGroupModel) { - String hospitalId = autoMatchFacade.getHospitalId(userId); + public BaseResponse infoListRare(Integer userId, RareBloodGroupModel rareBloodGroupModel) { + List> list = new ArrayList(); + Map map = new HashMap<>(); List babyDietReportList = null; - if (rareBloodGroupModel != null && StringUtils.isNotEmpty(rareBloodGroupModel.getParentId())) { - babyDietReportList = mongoTemplate.find( - Query.query(Criteria.where("hospitalId").is(hospitalId) - .and("parentId").is(rareBloodGroupModel.getParentId()) - .and("yn").is(YnEnums.YES.getId())), RareBloodGroupModel.class); - } - RareBloodGroupModel rareBloodGroupModel1 = null; - if (babyDietReportList.size() > 0) { - rareBloodGroupModel1 = babyDietReportList.get(0); + try { + if (rareBloodGroupModel != null && StringUtils.isNotEmpty(rareBloodGroupModel.getPid())) { + babyDietReportList = mongoTemplate.find(Query.query(Criteria.where("pid").is(rareBloodGroupModel.getPid()).and("yn").is(YnEnums.YES.getId())), RareBloodGroupModel.class); + if (babyDietReportList != null) { + for (int i = 0; i < babyDietReportList.size(); i++) { + RareBloodGroupModel rareBloodGroupModel1 = babyDietReportList.get(i); + map.put("entryTime", DateUtil.getyyyy_MM_dd(rareBloodGroupModel1.getCreated()));//录入时间 + map.put("bloodGroupGenotyping", rareBloodGroupModel1.getBloodGroupGenotyping());//血型基因分型 + map.put("bloodGroupAntibody", rareBloodGroupModel1.getBloodGroupAntibody());//血型抗体效价滴度 + map.put("inputWeek", rareBloodGroupModel1.getWeek());//录入孕周 + Patients p = mongoTemplate.findById(rareBloodGroupModel1.getParentId(), Patients.class); + map.put("currentWeek", DateUtil.getWeekDesc(p.getLastMenses(), new Date()));//当前孕周 + map.put("username", p.getUsername());//姓名 + map.put("dueDate", DateUtil.getyyyy_MM_dd(p.getDueDate()));//预产期 + list.add(map); + } + } + } + } catch (Exception e) { + e.printStackTrace(); } - return RespBuilder.buildSuccess(rareBloodGroupModel1); + return RespBuilder.buildSuccess(list); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/RareListWorker.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/RareListWorker.java index cee88d4..3377abb 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/RareListWorker.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/RareListWorker.java @@ -28,6 +28,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; @@ -94,7 +95,7 @@ public class RareListWorker implements Callable> { StopWatch stopWatch = new StopWatch("TwinsPatientWorker -" + patients.getId()); List babyDietReportList = mongoTemplate.find(Query.query(Criteria.where("hospitalId").is(patients.getHospitalId()) - .and("parentId").is(patients.getId()).and("yn").is(YnEnums.YES.getId())), RareBloodGroupModel.class); + .and("parentId").is(patients.getId()).and("yn").is(YnEnums.YES.getId())).with(new Sort(Sort.Direction.DESC, "created")), RareBloodGroupModel.class); if(babyDietReportList.size()==0){ continue; }else {