From 1fc7116f19de8ad3f551334188030916101a8cd3 Mon Sep 17 00:00:00 2001 From: yangkexiang <1677036288@qq.com> Date: Fri, 8 May 2026 15:03:17 +0800 Subject: [PATCH] =?UTF-8?q?bug249:=E6=89=8B=E6=9C=AF=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E3=80=8B=E9=97=A8=E8=AF=8A=E6=89=8B=E6=9C=AF=E5=AE=89=E6=8E=92?= =?UTF-8?q?=EF=BC=9A=E3=80=90=E6=96=B0=E5=A2=9E=E6=89=8B=E6=9C=AF=E5=AE=89?= =?UTF-8?q?=E6=8E=92=E3=80=91-=E3=80=8B=E3=80=90=E6=9F=A5=E6=89=BE?= =?UTF-8?q?=E3=80=91=E5=9C=A8=E9=97=A8=E8=AF=8A=E5=8C=BB=E7=94=9F=E7=AB=99?= =?UTF-8?q?=E5=B7=B2=E3=80=90=E5=88=A0=E9=99=A4=E3=80=91=E4=BD=9C=E5=BA=9F?= =?UTF-8?q?=E7=9A=84=E6=89=8B=E6=9C=AF=E7=94=B3=E8=AF=B7=E5=8D=95=E5=9C=A8?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=95=8C=E9=9D=A2=E8=BF=98=E8=83=BD=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=87=BA=E6=9D=A5.=20bug426:=E9=97=A8=E8=AF=8A?= =?UTF-8?q?=E5=8C=BB=E7=94=9F=E7=AB=99-=E6=A3=80=E6=9F=A5=E5=BC=80?= =?UTF-8?q?=E7=AB=8B=EF=BC=9A=E5=B7=B2=E9=80=89=E6=8B=A9=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=BA=94=E6=94=AF=E6=8C=81=E6=A0=91=E5=BD=A2=E5=B1=95=E5=BC=80?= =?UTF-8?q?=EF=BC=8C=E6=98=BE=E7=A4=BA=E5=A5=97=E9=A4=90=E6=98=8E=E7=BB=86?= =?UTF-8?q?=EF=BC=88=E9=A1=B9=E7=9B=AE/=E6=95=B0=E9=87=8F/=E5=8D=95?= =?UTF-8?q?=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CheckMethodAppServiceImpl.java | 1 + .../check/controller/CheckTypeController.java | 30 +++++++++++++++++ .../openhis/web/check/dto/CheckMethodDto.java | 3 ++ .../appservice/ISurgeryAppService.java | 4 ++- .../impl/SurgeryAppServiceImpl.java | 32 ++++++++++++++++++- .../controller/SurgeryController.java | 7 ++-- 6 files changed, 73 insertions(+), 4 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/check/appservice/impl/CheckMethodAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/check/appservice/impl/CheckMethodAppServiceImpl.java index 51bd6d0e..cf60f32e 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/check/appservice/impl/CheckMethodAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/check/appservice/impl/CheckMethodAppServiceImpl.java @@ -106,6 +106,7 @@ public class CheckMethodAppServiceImpl implements ICheckMethodAppService { if (ObjectUtil.isNotEmpty(m.getPackageName())) { CheckPackage pkg = packageMap.get(m.getPackageName()); if (pkg != null) { + dto.setPackageId(pkg.getId()); dto.setPackagePrice(pkg.getPackagePrice()); dto.setServiceFee(pkg.getServiceFee()); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/check/controller/CheckTypeController.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/check/controller/CheckTypeController.java index 360a72ea..cd6c55ae 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/check/controller/CheckTypeController.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/check/controller/CheckTypeController.java @@ -220,6 +220,36 @@ public class CheckTypeController extends BaseController { return AjaxResult.success(result); } + /** + * 查询检查套餐明细,用于医生站已选择套餐展开显示 + */ + @GetMapping({ "/package/{packageId}/details", "/check-package/{packageId}/details" }) + public AjaxResult getPackageDetails(@PathVariable Long packageId) { + List details = checkPackageDetailService.list( + new LambdaQueryWrapper() + .eq(CheckPackageDetail::getPackageId, packageId) + .orderByAsc(CheckPackageDetail::getOrderNum) + .orderByAsc(CheckPackageDetail::getId)); + + List> result = details.stream().map(d -> { + Map item = new LinkedHashMap<>(); + item.put("id", d.getId()); + item.put("packageId", d.getPackageId()); + item.put("itemCode", d.getItemCode()); + item.put("itemName", d.getItemName()); + item.put("name", d.getItemName()); + item.put("quantity", d.getQuantity()); + item.put("unit", d.getUnit()); + item.put("unitPrice", d.getUnitPrice()); + item.put("price", d.getUnitPrice()); + item.put("amount", d.getAmount()); + item.put("orderNum", d.getOrderNum()); + return item; + }).collect(Collectors.toList()); + + return AjaxResult.success(result); + } + /** 套餐级别文字映射 */ private String parseLevelText(String level) { if ("1".equals(level)) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/check/dto/CheckMethodDto.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/check/dto/CheckMethodDto.java index 54582a31..4859dbaa 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/check/dto/CheckMethodDto.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/check/dto/CheckMethodDto.java @@ -31,6 +31,9 @@ public class CheckMethodDto { /* 套餐名称 */ private String packageName; + /* 套餐ID */ + private Long packageId; + /* 套餐价格 - Bug #384修复:通过packageName匹配CheckPackage获取 */ private BigDecimal packagePrice; diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/appservice/ISurgeryAppService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/appservice/ISurgeryAppService.java index 457b8652..a5554917 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/appservice/ISurgeryAppService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/appservice/ISurgeryAppService.java @@ -25,7 +25,9 @@ public interface ISurgeryAppService { * @param plannedTimeEnd 计划结束时间 * @return 手术列表 */ - IPage getSurgeryPage(SurgeryDto surgeryDto, Integer pageNo, Integer pageSize, String plannedTimeStart, String plannedTimeEnd); + IPage getSurgeryPage(SurgeryDto surgeryDto, Integer pageNo, Integer pageSize, + String plannedTimeStart, String plannedTimeEnd, + String createTimeStart, String createTimeEnd); /** * 根据ID查询手术详情 diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/appservice/impl/SurgeryAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/appservice/impl/SurgeryAppServiceImpl.java index 04f00917..971ab367 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/appservice/impl/SurgeryAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/appservice/impl/SurgeryAppServiceImpl.java @@ -108,7 +108,9 @@ public class SurgeryAppServiceImpl implements ISurgeryAppService { * @return 手术列表 */ @Override - public IPage getSurgeryPage(SurgeryDto surgeryDto, Integer pageNo, Integer pageSize, String plannedTimeStart, String plannedTimeEnd) { + public IPage getSurgeryPage(SurgeryDto surgeryDto, Integer pageNo, Integer pageSize, + String plannedTimeStart, String plannedTimeEnd, + String createTimeStart, String createTimeEnd) { QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(surgeryDto, null, new HashSet() {{ add("surgery_no"); @@ -148,6 +150,34 @@ public class SurgeryAppServiceImpl implements ISurgeryAppService { } } } + + // 申请时间范围(创建时间 create_time)查询:用于“手术申请查询”弹窗 + if (createTimeStart != null && !createTimeStart.isEmpty()) { + try { + LocalDateTime startDateTime = LocalDateTime.parse(createTimeStart, DateTimeFormatter.ISO_DATE_TIME); + queryWrapper.ge("create_time", startDateTime); + } catch (Exception e) { + try { + LocalDateTime startDateTime = LocalDateTime.parse(createTimeStart + "T00:00:00", DateTimeFormatter.ISO_DATE_TIME); + queryWrapper.ge("create_time", startDateTime); + } catch (Exception ex) { + log.error("解析创建开始时间失败: {}", createTimeStart, ex); + } + } + } + if (createTimeEnd != null && !createTimeEnd.isEmpty()) { + try { + LocalDateTime endDateTime = LocalDateTime.parse(createTimeEnd, DateTimeFormatter.ISO_DATE_TIME); + queryWrapper.le("create_time", endDateTime); + } catch (Exception e) { + try { + LocalDateTime endDateTime = LocalDateTime.parse(createTimeEnd + "T23:59:59", DateTimeFormatter.ISO_DATE_TIME); + queryWrapper.le("create_time", endDateTime); + } catch (Exception ex) { + log.error("解析创建结束时间失败: {}", createTimeEnd, ex); + } + } + } queryWrapper.orderByDesc("create_time"); return surgeryAppMapper.getSurgeryPage(new Page<>(pageNo, pageSize), queryWrapper); diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/controller/SurgeryController.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/controller/SurgeryController.java index e9f01bc9..b20ed8eb 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/controller/SurgeryController.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/controller/SurgeryController.java @@ -40,9 +40,12 @@ public class SurgeryController { @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, @RequestParam(value = "plannedTimeStart", required = false) String plannedTimeStart, - @RequestParam(value = "plannedTimeEnd", required = false) String plannedTimeEnd) { + @RequestParam(value = "plannedTimeEnd", required = false) String plannedTimeEnd, + @RequestParam(value = "createTimeStart", required = false) String createTimeStart, + @RequestParam(value = "createTimeEnd", required = false) String createTimeEnd) { // 将时间范围参数传递给服务层 - IPage page = surgeryAppService.getSurgeryPage(surgeryDto, pageNo, pageSize, plannedTimeStart, plannedTimeEnd); + IPage page = surgeryAppService.getSurgeryPage(surgeryDto, pageNo, pageSize, + plannedTimeStart, plannedTimeEnd, createTimeStart, createTimeEnd); return R.ok(page); }