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); }