From 8d6924062f83c846e0328d6a4f81fd5ed6c47e77 Mon Sep 17 00:00:00 2001 From: dqcer Date: Mon, 27 May 2019 22:40:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=81=A5=E5=BA=B7=E7=BB=9F=E8=AE=A1-=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=84=BF=E7=AB=A5=E8=86=B3=E9=A3=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/pojo/BabyNutritionModel.java | 13 +++ .../com/lyms/platform/pojo/HealthChargeModel.java | 13 +++ .../lyms/platform/query/BabyNutritionQuery.java | 17 +++ .../com/lyms/platform/query/HealthChargeQuery.java | 16 +++ .../web/controller/BabyNutritionController.java | 21 +++- .../operate/web/facade/BabyNutritionFacade.java | 124 +++++++++++++++------ .../operate/web/facade/HealthChargeFacade.java | 43 ++++++- .../operate/web/request/BabyNutritionRequest.java | 12 ++ .../web/request/BabyNutritionSettleRequest.java | 11 ++ .../operate/web/request/HealthChargeRequest.java | 14 +++ .../operate/web/result/BabyNutritionResult.java | 14 +++ .../web/service/impl/BloodPressureServiceImpl.java | 2 +- .../web/service/impl/BloodSugarServiceImpl.java | 2 +- .../web/service/impl/PatientWeightServiceImpl.java | 2 +- .../service/impl/TemporaryBloodServiceImpl.java | 2 +- .../impl/TemporaryBloodSugarServiceImpl.java | 2 +- .../service/impl/TemporaryWeightServiceImpl.java | 4 +- 17 files changed, 266 insertions(+), 46 deletions(-) create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyNutritionSettleRequest.java diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyNutritionModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyNutritionModel.java index 1acc2a6..3f4304a 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyNutritionModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyNutritionModel.java @@ -121,6 +121,19 @@ public class BabyNutritionModel { private String remark; + /** + * 解读医生 + */ + private String interpretDoctorId; + + public String getInterpretDoctorId() { + return interpretDoctorId; + } + + public void setInterpretDoctorId(String interpretDoctorId) { + this.interpretDoctorId = interpretDoctorId; + } + public List getFoods() { return foods; } diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/HealthChargeModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/HealthChargeModel.java index 2238b64..b0852bb 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/HealthChargeModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/HealthChargeModel.java @@ -27,6 +27,11 @@ public class HealthChargeModel extends BaseModel { //建档id或者临时档案id private String foreignId; + /** + * 儿童 - 建档id或者临时档案id + */ + private String babyForeignId; + //打印报告等级 private Integer type; @@ -154,4 +159,12 @@ public class HealthChargeModel extends BaseModel { public void setSource(Integer source) { this.source = source; } + + public String getBabyForeignId() { + return babyForeignId; + } + + public void setBabyForeignId(String babyForeignId) { + this.babyForeignId = babyForeignId; + } } \ No newline at end of file diff --git a/platform-dal/src/main/java/com/lyms/platform/query/BabyNutritionQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/BabyNutritionQuery.java index 2171066..71c21ac 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/BabyNutritionQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/BabyNutritionQuery.java @@ -36,6 +36,8 @@ public class BabyNutritionQuery extends BaseQuery implements IConvertToNativeQue private Date nutritiTimeStart; private Date nutritiTimeEnd; + private String interpretDoctorId; + @Override public MongoQuery convertToQuery() { @@ -56,9 +58,16 @@ public class BabyNutritionQuery extends BaseQuery implements IConvertToNativeQue condition = condition.and("hospitalId", hospitalId, MongoOper.IS); } + if (null != interpretDoctorId) { + condition = condition.and("interpretDoctorId", interpretDoctorId, MongoOper.IS); + } + + if (null != doctorId) { condition = condition.and("doctorId", doctorId, MongoOper.IS); } + + Criteria c = null; if(null != createdStart && createdEnd != null){ @@ -83,6 +92,14 @@ public class BabyNutritionQuery extends BaseQuery implements IConvertToNativeQue } + public String getInterpretDoctorId() { + return interpretDoctorId; + } + + public void setInterpretDoctorId(String interpretDoctorId) { + this.interpretDoctorId = interpretDoctorId; + } + public Date getCreatedEnd() { return createdEnd; } diff --git a/platform-dal/src/main/java/com/lyms/platform/query/HealthChargeQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/HealthChargeQuery.java index 6753acb..c6aed86 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/HealthChargeQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/HealthChargeQuery.java @@ -30,6 +30,11 @@ public class HealthChargeQuery extends BaseQuery implements IConvertToNativeQuer //建档id或者临时档案id private String foreignId; + /** + * 儿童 - 建档id或者临时档案id + */ + private String babyForeignId; + //打印报告等级 private Integer type; @@ -52,6 +57,14 @@ public class HealthChargeQuery extends BaseQuery implements IConvertToNativeQuer */ private String doctorId; + public String getBabyForeignId() { + return babyForeignId; + } + + public void setBabyForeignId(String babyForeignId) { + this.babyForeignId = babyForeignId; + } + public String getDoctorId() { return doctorId; } @@ -104,6 +117,9 @@ public class HealthChargeQuery extends BaseQuery implements IConvertToNativeQuer if (null != doctorId) { condition = condition.and("doctorId", doctorId, MongoOper.IS); } + if (null != babyForeignId) { + condition = condition.and("babyForeignId", babyForeignId, MongoOper.IS); + } Criteria c = null; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyNutritionController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyNutritionController.java index 91b0504..86913c3 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyNutritionController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyNutritionController.java @@ -7,6 +7,7 @@ import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.operate.web.facade.BabyNutritionFacade; import com.lyms.platform.operate.web.request.BabyNutritionRequest; +import com.lyms.platform.operate.web.request.BabyNutritionSettleRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -62,8 +63,10 @@ public class BabyNutritionController extends BaseController { @RequestParam(required = false) String vcCardNo, @RequestParam(required = false) String babyName, @RequestParam(required = false) String recordTime, + @RequestParam(required = false) String interpretDoctorId, + @RequestParam(required = false) String settleStatus, HttpServletRequest request) { - return babyNutritionFacade.queryBabyNutritionList(page, limit, queryNo, vcCardNo, babyName, getUserId(request), recordTime); + return babyNutritionFacade.queryBabyNutritionList(page, limit, queryNo, vcCardNo, babyName, getUserId(request), recordTime, interpretDoctorId, settleStatus); } @@ -127,4 +130,20 @@ public class BabyNutritionController extends BaseController { return null; } + /** + * 未结算列表 + * + * @param request + * @return + */ + @RequestMapping(method = RequestMethod.POST, value = "/unSettle/list") + @ResponseBody + @TokenRequired + public BaseResponse unSettleList(@Valid @RequestBody BabyNutritionSettleRequest request, + HttpServletRequest httpServletRequest) { + // TODO: 2019/5/27 + return null; + //return babyNutritionFacade.unSettleList(request, getUserId(httpServletRequest)); + } + } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyNutritionFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyNutritionFacade.java index f832390..2578a65 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyNutritionFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyNutritionFacade.java @@ -15,6 +15,7 @@ import com.lyms.platform.operate.web.result.*; import com.lyms.platform.operate.web.service.PatientWeightService; import com.lyms.platform.permission.model.Organization; +import com.lyms.platform.permission.model.Users; import com.lyms.platform.permission.service.MeasureDataInfoService; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.permission.service.UsersService; @@ -73,6 +74,15 @@ public class BabyNutritionFacade { @Autowired private PatientWeightService patientWeightService; + @Autowired + private HealthChargeFacade healthChargeFacade; + + @Autowired + private UsersService usersService; + + @Autowired + private HealthChargeService healthChargeService; + public BaseObjectResponse queryBabyNutritionRecord(String babyId) { Map resMap = new HashMap<>(); BabyBasicResult base = new BabyBasicResult(); @@ -188,7 +198,21 @@ public class BabyNutritionFacade { return results; } - public BaseResponse queryBabyNutritionList(Integer page, Integer limit, String queryNo, String vcCardNo, String babyName,Integer userId,String recordTime) { + /** + * + * @param page + * @param limit + * @param queryNo + * @param vcCardNo + * @param babyName + * @param userId + * @param recordTime + * @param interpretDoctorId 报告解读人 + * @param settleStatus 结算状态 + * @return + */ + public BaseResponse queryBabyNutritionList(Integer page, Integer limit, String queryNo, String vcCardNo, + String babyName,Integer userId,String recordTime, String interpretDoctorId, String settleStatus) { String hospitalId = autoMatchFacade.getHospitalId(userId); List list = new ArrayList<>(); List babyIds = new ArrayList<>(); @@ -224,6 +248,8 @@ public class BabyNutritionFacade { babyQuery.setBabyIds(babyIds); babyQuery.setLimit(limit); babyQuery.setPage(page); + babyQuery.setInterpretDoctorId(interpretDoctorId); + if (StringUtils.isNotEmpty(recordTime)) { String[] dates = recordTime.split(" - "); @@ -239,42 +265,59 @@ public class BabyNutritionFacade { { for (BabyNutritionModel model : models) { - Map map = new HashMap(); + Integer currentSettleStatus = getSettleStatus(model); + if (settleStatus != null){ + if (currentSettleStatus != null && (currentSettleStatus == Integer.parseInt(settleStatus))){ + Map map = new HashMap(); + map.put("id",model.getId()); + map.put("babyId",model.getBabyId()); + + BabyModel baby = babyBookbuildingService.queryBabyBuildById(model.getBabyId()); + map.put("babyName",baby.getName()); + map.put("babySex", SexEnum.getTextById(baby.getSex())); + map.put("monthAge",StringUtils.emptyDeal(DateUtil.getBabyMonthAge(baby.getBirth(), new Date()))); + map.put("motherName", baby.getMname()); + map.put("phone", baby.getMphone()); + map.put("vcCardNo", baby.getVcCardNo()); + + String highRiskInfos = basicConfigFacade.queryBaseInfoByStr(baby.getHighRiskInfo()); + map.put("highRiskInfos",highRiskInfos); + + String diagnose = ""; + if (StringUtils.isNotEmpty(baby.getPid())) { + List diagList = babyCheckFacade.getBabyLastDiagnose(baby.getPid()); + if (CollectionUtils.isNotEmpty(diagList)) { + for (Object obj : diagList) { + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById((String) obj); + if (basicConfig != null) { + diagnose += basicConfig.getName() + " "; + } + } + } + } - map.put("id",model.getId()); - map.put("babyId",model.getBabyId()); + map.put("diagnose", StringUtils.emptyDeal(diagnose)); + + map.put("weight", model.getWeight()); + map.put("height", model.getHeight()); + map.put("recordTime", DateUtil.getyyyy_MM_dd(model.getNutritiTime())); - BabyModel baby = babyBookbuildingService.queryBabyBuildById(model.getBabyId()); - map.put("babyName",baby.getName()); - map.put("babySex", SexEnum.getTextById(baby.getSex())); - map.put("monthAge",StringUtils.emptyDeal(DateUtil.getBabyMonthAge(baby.getBirth(), new Date()))); - map.put("motherName", baby.getMname()); - map.put("phone", baby.getMphone()); - map.put("vcCardNo", baby.getVcCardNo()); - - String highRiskInfos = basicConfigFacade.queryBaseInfoByStr(baby.getHighRiskInfo()); - map.put("highRiskInfos",highRiskInfos); - - String diagnose = ""; - if (StringUtils.isNotEmpty(baby.getPid())) { - List diagList = babyCheckFacade.getBabyLastDiagnose(baby.getPid()); - if (CollectionUtils.isNotEmpty(diagList)) { - for (Object obj : diagList) { - BasicConfig basicConfig = basicConfigService.getOneBasicConfigById((String) obj); - if (basicConfig != null) { - diagnose += basicConfig.getName() + " "; + // 新增报表解读人和结算状态 + String currInterpretDoctorId = model.getInterpretDoctorId(); + String interpretDoctorName = ""; + if (StringUtils.isNotEmpty(currInterpretDoctorId)){ + Users users = usersService.getUsers(Integer.parseInt(currInterpretDoctorId)); + if (users != null){ + interpretDoctorName = users.getName(); } } + String settleStatusName = currentSettleStatus == 1 ? "未结算" : "已结算"; + map.put("interpretDoctorName", interpretDoctorName); + map.put("settleStatusName", settleStatusName); + + list.add(map); } } - - map.put("diagnose", StringUtils.emptyDeal(diagnose)); - - map.put("weight", model.getWeight()); - map.put("height", model.getHeight()); - map.put("recordTime", DateUtil.getyyyy_MM_dd(model.getNutritiTime())); - - list.add(map); } } @@ -287,6 +330,23 @@ public class BabyNutritionFacade { return objectResponse; } + /** + * 获取结算状态 + * + * @param model + * @return 1-未结算 2-已结算 null-异常 + */ + private Integer getSettleStatus(BabyNutritionModel model) { + HealthChargeQuery healthChargeQuery = new HealthChargeQuery(); + healthChargeQuery.setBabyForeignId(model.getId()); + List healthChargeModelList = healthChargeService.queryHealthChargeList(healthChargeQuery); + if (CollectionUtils.isNotEmpty(healthChargeModelList)){ + HealthChargeModel healthChargeModel = healthChargeModelList.get(0); + return healthChargeModel.getStatus(); + } + return null; + } + public BaseObjectResponse queryBabyNutritionReport(String id,Integer userId) { @@ -618,8 +678,8 @@ public class BabyNutritionFacade { data.put("wlysitems", wlysitems); + healthChargeFacade.addHealthCharge(hospitalId, 4, model.getId(), null, null, userId, model.getInterpretDoctorId(), true); } - BaseObjectResponse objectResponse = new BaseObjectResponse(); objectResponse.setData(data); objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/HealthChargeFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/HealthChargeFacade.java index 90d3891..6ce9b26 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/HealthChargeFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/HealthChargeFacade.java @@ -53,13 +53,37 @@ public class HealthChargeFacade { @Autowired private UsersService usersService; - public BaseResponse addHealthCharge(String hospitalId,Integer healthType,String foreignId,Integer type,Integer source, Integer userId, String doctorId){ + /** + * 新增字段:报表解读人 孕妇/儿童 + * + * @param hospitalId 医院id + * @param healthType 打印类型 1体重 2 血糖 3 血压 4妊高症 4-儿童膳食 + * @param foreignId 档案id (院内建档或者临时档案id)孕妇/儿童 + * @param type 打印报告类别 1普通报告 2高危报告(暂时不用) + * @param source 档案来源类型 1院内建档 2零时建档 (暂时不用) + * @param userId 当前登陆用户id + * @param doctorId 报表解读人id + * @param isBaby 是否为儿童 + * @return + */ + public BaseResponse addHealthCharge(String hospitalId, + Integer healthType, + String foreignId, + Integer type, + Integer source, + Integer userId, + String doctorId, + boolean isBaby){ HealthChargeRequest request = new HealthChargeRequest(); request.setHospitalId(hospitalId); request.setHealthType(healthType); - request.setForeignId(foreignId); - request.setType(type); - request.setSource(source); + if (isBaby){ + request.setBabyForeignId(foreignId); + } else { + request.setForeignId(foreignId); + request.setType(type); + request.setSource(source); + } request.setDoctorId(doctorId); return addHealthCharge(request, userId); } @@ -95,9 +119,16 @@ public class HealthChargeFacade { public BaseResponse addHealthCharge(HealthChargeRequest request, Integer userId) { HealthChargeQuery healthChargeQuery = new HealthChargeQuery(); - healthChargeQuery.setForeignId(request.getForeignId()); + String babyForeignId = request.getBabyForeignId(); + if (StringUtils.isNotEmpty(babyForeignId)){ + // 儿童 + healthChargeQuery.setBabyForeignId(babyForeignId); + }else { + // 孕妇 + healthChargeQuery.setForeignId(request.getForeignId()); + healthChargeQuery.setSource(request.getSource()); + } healthChargeQuery.setHealthType(request.getHealthType()); - healthChargeQuery.setSource(request.getSource()); List list = healthChargeService.queryHealthChargeList(healthChargeQuery); boolean isSave = false; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyNutritionRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyNutritionRequest.java index a3dccc7..d0038f2 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyNutritionRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyNutritionRequest.java @@ -128,7 +128,18 @@ public class BabyNutritionRequest implements IBasicRequestConvert foods; private String remark; + /** + * 解读医生 + */ + private String interpretDoctorId; + public String getInterpretDoctorId() { + return interpretDoctorId; + } + + public void setInterpretDoctorId(String interpretDoctorId) { + this.interpretDoctorId = interpretDoctorId; + } @Override public BabyNutritionModel convertToDataModel() { @@ -177,6 +188,7 @@ public class BabyNutritionRequest implements IBasicRequestConvert> dayWeights2 = patientWeight.getDayWeights2(); String doctorId = getDoctorId(dayWeights2); - healthChargeFacade.addHealthCharge(hospitalId, 1, patientWeight.getPatientId(), 1, 1, userId, doctorId); + healthChargeFacade.addHealthCharge(hospitalId, 1, patientWeight.getPatientId(), 1, 1, userId, doctorId, false); return RespBuilder.buildSuccess(map); } return RespBuilder.buildSuccess(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TemporaryBloodServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TemporaryBloodServiceImpl.java index a2bdcc1..d4f488b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TemporaryBloodServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TemporaryBloodServiceImpl.java @@ -400,7 +400,7 @@ public class TemporaryBloodServiceImpl extends BaseServiceImpl implements ITempo } } } - healthChargeFacade.addHealthCharge(hospitalId, 3, temporaryBloo.getTemporaryUserId(), 1, 2, userId, doctorId); + healthChargeFacade.addHealthCharge(hospitalId, 3, temporaryBloo.getTemporaryUserId(), 1, 2, userId, doctorId, false); return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(datas); } else { return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("失败").setData("请检查数据是否填写完整!"); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TemporaryBloodSugarServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TemporaryBloodSugarServiceImpl.java index 502baeb..e179c5e 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TemporaryBloodSugarServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TemporaryBloodSugarServiceImpl.java @@ -409,7 +409,7 @@ public class TemporaryBloodSugarServiceImpl extends BaseServiceImpl implements I doctorId = temporaryBloodSugar.getDoctorId(); } - healthChargeFacade.addHealthCharge(hospitalId, 2, id, 1, 2, userId, doctorId); + healthChargeFacade.addHealthCharge(hospitalId, 2, id, 1, 2, userId, doctorId, false); resp.setData(data); resp.setErrorcode(ResponseCode.SUCCESS.getCode()); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TemporaryWeightServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TemporaryWeightServiceImpl.java index 1ebb0e5..c0f3cc4 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TemporaryWeightServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TemporaryWeightServiceImpl.java @@ -491,7 +491,7 @@ public class TemporaryWeightServiceImpl extends BaseServiceImpl implements Tempo List> dayWeights2 = temporaryWeight.getDayWeights2(); String doctorId = patientWeightService.getDoctorId(dayWeights2); - healthChargeFacade.addHealthCharge(hospitalId, 1, temporaryWeight.getTemporaryUserId(), 1, 2, userId, doctorId); + healthChargeFacade.addHealthCharge(hospitalId, 1, temporaryWeight.getTemporaryUserId(), 1, 2, userId, doctorId, false); return RespBuilder.buildSuccess(map); } return RespBuilder.buildSuccess(); @@ -837,7 +837,7 @@ public class TemporaryWeightServiceImpl extends BaseServiceImpl implements Tempo List> dayWeights2 = temporary.getDayWeights2(); String doctorId = patientWeightService.getDoctorId(dayWeights2); - healthChargeFacade.addHealthCharge(hospitalId, 1, temporary.getTemporaryUserId(), 2, 2, userId, doctorId); + healthChargeFacade.addHealthCharge(hospitalId, 1, temporary.getTemporaryUserId(), 2, 2, userId, doctorId, false); return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(this.getFirstOrNull(datas)); } -- 1.8.3.1