diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SmnController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SmnController.java index e134701..4535fd5 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SmnController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SmnController.java @@ -50,6 +50,15 @@ public class SmnController extends BaseController { return smnFacade.editHusbandSmn(param, getUserId(request)); } + @RequestMapping(method = RequestMethod.POST, value = "/addHusbandSmnResult") + @ResponseBody + @TokenRequired + public BaseResponse addHusbandSmnResult(@RequestBody HusbandSmn param, HttpServletRequest request) { + return smnFacade.addHusbandSmnResult(param, getUserId(request)); + } + + + /** * 编辑单个 diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmnFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmnFacade.java index 727ffb8..ba7bbd0 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmnFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmnFacade.java @@ -129,13 +129,6 @@ public class SmnFacade { String hospitalId = autoMatchFacade.getHospitalId(userId); Query query = new Query(); - - if(StringUtils.isNotEmpty(param.getQueryNo())) - { - query.addCriteria(new Criteria().orOperator(Criteria.where("phone").is(param.getQueryNo()), Criteria.where("cardNo").is(param.getQueryNo()), Criteria.where("username").is(param.getQueryNo()))); - } - - if(param.getQueryType() == 1) { if ("2100001291".equals(hospitalId)) @@ -187,31 +180,59 @@ public class SmnFacade { } + if(StringUtils.isNotEmpty(param.getHusbandQueryNo())) + { + query.addCriteria(new Criteria(). + orOperator(Criteria.where("husbandSmns.husbandPhone").is(param.getHusbandQueryNo()), + Criteria.where("husbandSmns.husbandCardNo").is(param.getHusbandQueryNo()), + Criteria.where("husbandSmns.husbandName").is(param.getHusbandQueryNo()))); + } + String husbandYbNum = param.getHusbandYbNum(); + if (StringUtils.isNotEmpty(husbandYbNum)) { + query.addCriteria(Criteria.where("husbandSmns.ybNum").is(husbandYbNum)); + } + Integer husbandStatus = param.getHusbandStatus(); + if (husbandStatus != null) { + query.addCriteria(Criteria.where("husbandSmns.status").is(husbandStatus)); + } + Integer husbandResult = param.getHusbandResult(); + if (husbandResult != null) { + query.addCriteria(Criteria.where("husbandSmns.result").is(husbandResult)); + } + String husbandSendDate = param.getHusbandSendDate(); + if (StringUtils.isNotEmpty(husbandSendDate)) { + String[] arrs = husbandSendDate.split(" - "); + Date start = DateUtil.parseYMD(arrs[0]); + Date end = DateUtil.parseYMD(arrs[1]); + end = DateUtil.getDayLastSecond(end); + query.addCriteria(Criteria.where("husbandSmns.sendDate").gte(start).lte(end)); + } + String husbandCheckDate = param.getHusbandCheckDate(); + if (StringUtils.isNotEmpty(husbandCheckDate)) { + String[] arrs = husbandCheckDate.split(" - "); + Date start = DateUtil.parseYMD(arrs[0]); + Date end = DateUtil.parseYMD(arrs[1]); + end = DateUtil.getDayLastSecond(end); + query.addCriteria(Criteria.where("husbandSmns.checkDate").gte(start).lte(end)); + } + + + if(StringUtils.isNotEmpty(param.getQueryNo())) + { + query.addCriteria(new Criteria().orOperator(Criteria.where("phone").is(param.getQueryNo()), Criteria.where("cardNo").is(param.getQueryNo()), Criteria.where("username").is(param.getQueryNo()))); + } String ybNum = param.getYbNum(); if (StringUtils.isNotEmpty(ybNum)) { query.addCriteria(Criteria.where("ybNum").is(ybNum)); } - Integer status = param.getStatus(); if (status != null) { query.addCriteria(Criteria.where("status").is(status)); } - Integer result = param.getResult(); if (result != null) { query.addCriteria(Criteria.where("result").is(result)); } - - Integer startWeek = param.getStartWeek(); - if (startWeek != null) { - query.addCriteria(Criteria.where("lastMenses").lte(DateUtil.addWeek(new Date(),-startWeek))); - } - - Integer endWeek = param.getEndWeek(); - if (endWeek != null) { - query.addCriteria(Criteria.where("lastMenses").gte(DateUtil.addWeek(new Date(),-endWeek))); - } - String sendDate = param.getSendDate(); if (StringUtils.isNotEmpty(sendDate)) { String[] arrs = sendDate.split(" - "); @@ -220,16 +241,6 @@ public class SmnFacade { end = DateUtil.getDayLastSecond(end); query.addCriteria(Criteria.where("sendDate").gte(start).lte(end)); } - - String created = param.getCreated(); - if (StringUtils.isNotEmpty(created)) { - String[] arrs = created.split(" - "); - Date start = DateUtil.parseYMD(arrs[0]); - Date end = DateUtil.parseYMD(arrs[1]); - end = DateUtil.getDayLastSecond(end); - query.addCriteria(Criteria.where("created").gte(start).lte(end)); - } - String checkDate = param.getCheckDate(); if (StringUtils.isNotEmpty(checkDate)) { String[] arrs = checkDate.split(" - "); @@ -238,6 +249,21 @@ public class SmnFacade { end = DateUtil.getDayLastSecond(end); query.addCriteria(Criteria.where("checkDate").gte(start).lte(end)); } + + + + + Integer startWeek = param.getStartWeek(); + if (startWeek != null) { + query.addCriteria(Criteria.where("lastMenses").lte(DateUtil.addWeek(new Date(),-startWeek))); + } + + Integer endWeek = param.getEndWeek(); + if (endWeek != null) { + query.addCriteria(Criteria.where("lastMenses").gte(DateUtil.addWeek(new Date(),-endWeek))); + } + + if (StringUtils.isNotEmpty(param.getPatientId())) { query.with(new Sort(Sort.Direction.ASC, "sendDate")); @@ -351,7 +377,62 @@ public class SmnFacade { { if (husbandSmn.getId().equals(param.getId())) { - BeanUtils.copyProperties(param,husbandSmn); + BeanUtils.copyProperties(param,husbandSmn,com.lyms.platform.common.utils.BeanUtils.getNullPropertyNames(param)); + } + } + } + smnModel.setHusbandSmns(husbandSmns); + + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(smnModel)); + mongoTemplate.updateFirst(query, update, SmnModel.class); + + return new BaseResponse(); + } + + public BaseResponse addHusbandSmnResult(HusbandSmn param, Integer userId) { + Query query = Query.query(Criteria.where("id").is(param.getParentId())); + SmnModel smnModel = mongoTemplate.findOne(query, SmnModel.class); + + List husbandSmns = smnModel.getHusbandSmns(); + if (CollectionUtils.isNotEmpty(husbandSmns)) + { + for (HusbandSmn husbandSmn : husbandSmns) + { + if (husbandSmn.getId().equals(param.getId())) + { + BeanUtils.copyProperties(param,husbandSmn,com.lyms.platform.common.utils.BeanUtils.getNullPropertyNames(param)); + if (param.getSmn7() != null && param.getSmn8() != null) + { + param.setStatus(4);//已经筛查 + String smn7Result = "未缺失"; + String smn8Result = "未缺失"; + if (param.getSmn7() > 0.8) + { + smn7Result = "纯合缺失"; + } else if (param.getSmn7() > -0.45 && param.getSmn7() <=0.45) + { + smn7Result = "杂合缺失"; + } + + if (param.getSmn8() > 1.5) + { + smn8Result = "纯合缺失"; + }else if (param.getSmn8() > -0.45 && param.getSmn8() <= 0.45) + { + smn8Result = "杂合缺失"; + } + param.setSmn7Result(smn7Result); + param.setSmn8Result(smn8Result); + if ((param.getSmn7() > -0.45 && param.getSmn7() <=0.45) || (param.getSmn8() > -0.45 && param.getSmn8() <=0.45)) + { + param.setResult(2); + } + else + { + param.setResult(1); + } + } } } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnQueryRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnQueryRequest.java index 06ebcd7..60be278 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnQueryRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnQueryRequest.java @@ -24,6 +24,62 @@ public class SmnQueryRequest extends BaseQuery { private Integer startWeek; private Integer endWeek; + + private String husbandQueryNo;//查询号 身份证号码,手机号码,姓名 + private String husbandSendDate;//送检时间 + private String husbandYbNum;//样本号 + private Integer husbandStatus; //1 未申请 2 已申请 3 已接收 4 已筛查 5 不合格 + private Integer husbandResult; //1 阴性 2 阳性 + private String husbandCheckDate;//检查日期 + + public String getHusbandSendDate() { + return husbandSendDate; + } + + public void setHusbandSendDate(String husbandSendDate) { + this.husbandSendDate = husbandSendDate; + } + + public String getHusbandYbNum() { + return husbandYbNum; + } + + public void setHusbandYbNum(String husbandYbNum) { + this.husbandYbNum = husbandYbNum; + } + + public Integer getHusbandStatus() { + return husbandStatus; + } + + public void setHusbandStatus(Integer husbandStatus) { + this.husbandStatus = husbandStatus; + } + + public Integer getHusbandResult() { + return husbandResult; + } + + public void setHusbandResult(Integer husbandResult) { + this.husbandResult = husbandResult; + } + + public String getHusbandCheckDate() { + return husbandCheckDate; + } + + public void setHusbandCheckDate(String husbandCheckDate) { + this.husbandCheckDate = husbandCheckDate; + } + + public String getHusbandQueryNo() { + return husbandQueryNo; + } + + public void setHusbandQueryNo(String husbandQueryNo) { + this.husbandQueryNo = husbandQueryNo; + } + public Integer getStartWeek() { return startWeek; }