From 4d8a93f1e0363d390227d7cdf0d2ac03ff5dec74 Mon Sep 17 00:00:00 2001 From: fshenye <12345678> Date: Tue, 5 Jul 2022 12:33:09 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E9=A2=84=E7=BA=A6=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E9=97=A8=E8=AF=8A=E9=A2=84=E7=BA=A6=EF=BC=8C?= =?UTF-8?q?=E5=8C=BB=E7=94=9F=E9=A2=84=E7=BA=A6=202.=20bugfix=EF=BC=9A?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=B8=8D=E5=88=B0=E5=8F=B7=E6=BA=90=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E7=9B=B4=E6=8E=A5=E8=BF=94=E5=9B=9E=E7=A9=BA=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E8=A6=81=E5=8E=BB=E6=9F=A5=E8=AF=A2=E9=97=A8=E8=AF=8A?= =?UTF-8?q?=E5=8F=B7=E6=BA=90=203.=20bugfix=EF=BC=9A=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E7=A7=91=E5=AE=A4=E6=97=B6=EF=BC=8Climit=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/mp/AppointmentController.java | 66 ++++++++++++------- .../hphy/controller/mp/WDController.java | 32 ++++----- .../service/impl/HpDeptInfoServiceImpl.java | 1 + .../sh/stc/sict/theme/hphy/wd/OrderInfo.java | 1 + .../stc/sict/theme/hphy/wd/WanDaConstant.java | 2 +- 5 files changed, 60 insertions(+), 42 deletions(-) diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/AppointmentController.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/AppointmentController.java index 6a02618..820650e 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/AppointmentController.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/AppointmentController.java @@ -1,24 +1,20 @@ package cn.sh.stc.sict.theme.hphy.controller.mp; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.net.Ipv4Util; import cn.hutool.core.util.IdcardUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; import cn.sh.stc.sict.cloud.common.core.constant.Constant; import cn.sh.stc.sict.cloud.common.core.util.R; import cn.sh.stc.sict.cloud.common.core.util.WebUtils; import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils; import cn.sh.stc.sict.cloud.upms.dto.CurrentUser; import cn.sh.stc.sict.theme.hphy.constant.PatientConstant; -import cn.sh.stc.sict.theme.hphy.model.HpAppointment; -import cn.sh.stc.sict.theme.hphy.model.HpDocInfo; -import cn.sh.stc.sict.theme.hphy.model.HpHosInfo; -import cn.sh.stc.sict.theme.hphy.model.HphyPatientBase; -import cn.sh.stc.sict.theme.hphy.service.HpAppointmentService; -import cn.sh.stc.sict.theme.hphy.service.HpDocInfoService; -import cn.sh.stc.sict.theme.hphy.service.HpHosInfoService; -import cn.sh.stc.sict.theme.hphy.service.HphyPatientBaseService; +import cn.sh.stc.sict.theme.hphy.model.*; +import cn.sh.stc.sict.theme.hphy.service.*; import cn.sh.stc.sict.theme.hphy.wd.*; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -45,6 +41,7 @@ public class AppointmentController { private HpDocInfoService hpDocInfoService; private HphyPatientBaseService hphyPatientBaseService; private HpHosInfoService hosInfoService; + private HpDeptInfoService hpDeptInfoService; @ApiOperation("预约须知") @GetMapping("/app/rule") @@ -56,16 +53,21 @@ public class AppointmentController { @ApiOperation("预约") @PostMapping("/app") public R appointment(@RequestBody OrderInfo order) throws Exception { + log.error("预约 order = {}", JSONUtil.toJsonStr(order)); CurrentUser current = SecurityUtils.getCurrentUser(); + HpAppointment app = new HpAppointment(); if (StrUtil.isBlank(current.getOpenId())) { return new R().error("患者信息异常!"); } if (StrUtil.isBlank(order.getHosOrgCode())) { return new R().error("预约医院信息不可为空!"); } - if (StrUtil.isBlank(order.getDoctorId())) { + if (WanDaConstant.ORDER_TYPE_OUTP.equals(order.getOrderType()) && StrUtil.isBlank(order.getDoctorId())) { return new R().error("预约医生信息不可为空!"); } + if (WanDaConstant.ORDER_TYPE_CLINC.equals(order.getOrderType()) && StrUtil.isBlank(order.getDeptId())) { + return new R().error("预约门诊信息不可为空!"); + } if (StrUtil.isBlank(order.getScheduleId()) || StrUtil.isBlank(order.getNumSourceId())) { return new R().error("预约排班号源信息不可为空!"); } @@ -77,14 +79,32 @@ public class AppointmentController { if (null == patient) { return new R().error("未找到患者信息!"); } - HpDocInfo docInfo = hpDocInfoService.getById(order.getDoctorId()); - if (null == docInfo) { - return new R().error("未找到医生信息!"); + if(WanDaConstant.ORDER_TYPE_OUTP.equals(order.getOrderType())){ + HpDocInfo docInfo = hpDocInfoService.getById(order.getDoctorId()); + if (null == docInfo) { + return new R().error("未找到医生信息!"); + } + order.setOneDeptCode(docInfo.getOneDeptCode()); + order.setDeptCode(docInfo.getDeptCode()); + order.setResourceCode(docInfo.getResourceCode()); + app.setDoctorId(docInfo.getId().toString()); + app.setResourceCertId(docInfo.getPersonId()); + app.setHosOrgName(docInfo.getHosName()); + app.setDeptName(docInfo.getDeptName()); + app.setResourceName(docInfo.getResourceName()); + }else{ + HpDeptInfo deptInfo = hpDeptInfoService.getById(order.getDeptId()); + if (null == deptInfo) { + return new R().error("未找到门诊信息!"); + } + order.setOneDeptCode(deptInfo.getOneDeptCode()); + order.setDeptCode(deptInfo.getDeptCode()); + order.setResourceCode(deptInfo.getDeptCode()); + app.setHosOrgName(deptInfo.getHosName()); + app.setDeptName(deptInfo.getDeptName()); + app.setResourceName(deptInfo.getDeptName()); } - order.setOneDeptCode(docInfo.getOneDeptCode()); - order.setDeptCode(docInfo.getDeptCode()); - order.setOrderType(WanDaConstant.ORDER_TYPE_OUTP); - order.setResourceCode(docInfo.getResourceCode()); + // order.setOrderType(WanDaConstant.ORDER_TYPE_OUTP); order.setChannelCode(WanDaConstant.CHANNEL_CODE_OTHER); order.setPayMode(WanDaConstant.PAY_MODE_HOSP); order.setUserCardType(WanDaConstant.USER_CARD_TYPE_ID); @@ -102,29 +122,25 @@ public class AppointmentController { order.setChannelName(WanDaConstant.CHANNEL_NAME); order.setNumSourceFrom(WanDaConstant.NUM_SOURCE_FROM); order.setPatient_type(WanDaConstant.PATIENT_TYPE_NORMAL); - if (StrUtil.isBlank(order.getMediCardId()) || StrUtil.isBlank(order.getMediCardType())){ + if (StrUtil.isBlank(order.getMediCardId()) || StrUtil.isBlank(order.getMediCardType())) { order.setMediCardId(patient.getMediCardId()); order.setMediCardType(patient.getMediCardType()); } order.setUserBD(DateUtil.format(IdcardUtil.getBirthDate(patient.getCertId()), DatePattern.NORM_DATE_PATTERN)); AppResult result = WanDaHttpUtil.submitOrderByUserInfo(order); if (null != result) { - MapperFactory factory = new DefaultMapperFactory.Builder().build(); - HpAppointment app = factory.getMapperFacade().map(order, HpAppointment.class); + // MapperFactory factory = new DefaultMapperFactory.Builder().build(); + // HpAppointment app = factory.getMapperFacade().map(order, HpAppointment.class); + BeanUtil.copyProperties(order, app); app.setOrderId(result.getOrderId()); app.setPatientId(patient.getId().toString()); - app.setDoctorId(docInfo.getId().toString()); - app.setResourceCertId(docInfo.getPersonId()); app.setNumSourceDetailId(result.getNumSourceDetailId()); app.setNumPassword(result.getNumPassword()); app.setRoom(result.getRoom()); app.setHosNumSourceId(result.getHosNumSourceId()); app.setStatus(Constant.STRING_NO); - app.setHosOrgName(docInfo.getHosName()); - app.setDeptName(docInfo.getDeptName()); app.setOrderNumType(order.getOrderNumType()); app.setPatientName(patient.getName()); - app.setResourceName(docInfo.getResourceName()); app.setStatus(Constant.STRING_NO); app.setEvaStatus(Constant.BYTE_NO); hpAppointmentService.save(app); @@ -183,7 +199,7 @@ public class AppointmentController { @ApiOperation("预约详情") @GetMapping("/app/info") - public R appInfo(@RequestParam("appId")String appId) { + public R appInfo(@RequestParam("appId") String appId) { HpAppointment app = hpAppointmentService.getById(appId); return new R(app); } diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/WDController.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/WDController.java index 92ef373..dcff87b 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/WDController.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/WDController.java @@ -74,22 +74,22 @@ public class WDController { List list = WanDaHttpUtil.getOrderNumInfo(numSourceInfo); - if (CollUtil.isNotEmpty(list)) { - return R.builder().code(Constant.BYTE_YES).data(list).bizCode(Constant.INT_NO).build(); - } - - DeptInfo deptInfo = new DeptInfo(); - deptInfo.setHosOrgCode(numSourceInfo.getHosOrgCode()); - deptInfo.setOneDeptCode(numSourceInfo.getOneDeptCode()); - deptInfo.setDeptCode(numSourceInfo.getDeptCode()); - List outPatInfo = WanDaHttpUtil.getResourceOutPatInfo(deptInfo); - if (CollUtil.isNotEmpty(outPatInfo)) { - numSourceInfo.setOrderType(WanDaConstant.ORDER_TYPE_CLINC); - numSourceInfo.setResourceCode(outPatInfo.get(0).getResourceCode()); - list = WanDaHttpUtil.getOrderNumInfo(numSourceInfo); - - return new R(list); - } +// if (CollUtil.isNotEmpty(list)) { +// return R.builder().code(Constant.BYTE_YES).data(list).bizCode(Constant.INT_NO).build(); +// } +// +// DeptInfo deptInfo = new DeptInfo(); +// deptInfo.setHosOrgCode(numSourceInfo.getHosOrgCode()); +// deptInfo.setOneDeptCode(numSourceInfo.getOneDeptCode()); +// deptInfo.setDeptCode(numSourceInfo.getDeptCode()); +// List outPatInfo = WanDaHttpUtil.getResourceOutPatInfo(deptInfo); +// if (CollUtil.isNotEmpty(outPatInfo)) { +// numSourceInfo.setOrderType(WanDaConstant.ORDER_TYPE_CLINC); +// numSourceInfo.setResourceCode(outPatInfo.get(0).getResourceCode()); +// list = WanDaHttpUtil.getOrderNumInfo(numSourceInfo); +// +// return new R(list); +// } return new R().success(list); } diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/service/impl/HpDeptInfoServiceImpl.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/service/impl/HpDeptInfoServiceImpl.java index f9d6915..11d27e9 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/service/impl/HpDeptInfoServiceImpl.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/service/impl/HpDeptInfoServiceImpl.java @@ -44,6 +44,7 @@ public class HpDeptInfoServiceImpl extends ServiceImpl i.eq(HpDeptInfo::getOneDeptCode, deptCode) .or().eq(HpDeptInfo::getDeptCode, deptCode)) .orderByDesc(HpDeptInfo::getDeptLevel) + .last("limit 1") ); if (deptInfo == null){ log.error("根据医院编码:{} 和科室编码:{} 未查出科室信息", hospitalCode, deptCode); diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/wd/OrderInfo.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/wd/OrderInfo.java index 0bca296..775e48e 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/wd/OrderInfo.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/wd/OrderInfo.java @@ -7,6 +7,7 @@ import lombok.Data; @XStreamAlias("OrderInfo") public class OrderInfo { private String doctorId; + private String deptId; private String hosOrgCode; private String oneDeptCode; private String deptCode; diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/wd/WanDaConstant.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/wd/WanDaConstant.java index cd62311..af667bc 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/wd/WanDaConstant.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/wd/WanDaConstant.java @@ -3,7 +3,7 @@ package cn.sh.stc.sict.theme.hphy.wd; public class WanDaConstant { /** - * 预约类型:医生 + * 预约类型:1-医生 2-门诊 */ public static final String ORDER_TYPE_OUTP = "1"; public static final String ORDER_TYPE_CLINC = "2"; -- 2.22.0