bug249:手术管理-》门诊手术安排:【新增手术安排】-》【查找】在门诊医生站已【删除】作废的手术申请单在查询界面还能查询出来.

bug426:门诊医生站-检查开立:已选择列表应支持树形展开,显示套餐明细(项目/数量/单价
This commit is contained in:
2026-05-08 15:03:17 +08:00
parent 814f9561fe
commit 1fc7116f19
6 changed files with 73 additions and 4 deletions

View File

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

View File

@@ -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<CheckPackageDetail> details = checkPackageDetailService.list(
new LambdaQueryWrapper<CheckPackageDetail>()
.eq(CheckPackageDetail::getPackageId, packageId)
.orderByAsc(CheckPackageDetail::getOrderNum)
.orderByAsc(CheckPackageDetail::getId));
List<Map<String, Object>> result = details.stream().map(d -> {
Map<String, Object> 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))

View File

@@ -31,6 +31,9 @@ public class CheckMethodDto {
/* 套餐名称 */
private String packageName;
/* 套餐ID */
private Long packageId;
/* 套餐价格 - Bug #384修复通过packageName匹配CheckPackage获取 */
private BigDecimal packagePrice;

View File

@@ -25,7 +25,9 @@ public interface ISurgeryAppService {
* @param plannedTimeEnd 计划结束时间
* @return 手术列表
*/
IPage<SurgeryDto> getSurgeryPage(SurgeryDto surgeryDto, Integer pageNo, Integer pageSize, String plannedTimeStart, String plannedTimeEnd);
IPage<SurgeryDto> getSurgeryPage(SurgeryDto surgeryDto, Integer pageNo, Integer pageSize,
String plannedTimeStart, String plannedTimeEnd,
String createTimeStart, String createTimeEnd);
/**
* 根据ID查询手术详情

View File

@@ -108,7 +108,9 @@ public class SurgeryAppServiceImpl implements ISurgeryAppService {
* @return 手术列表
*/
@Override
public IPage<SurgeryDto> getSurgeryPage(SurgeryDto surgeryDto, Integer pageNo, Integer pageSize, String plannedTimeStart, String plannedTimeEnd) {
public IPage<SurgeryDto> getSurgeryPage(SurgeryDto surgeryDto, Integer pageNo, Integer pageSize,
String plannedTimeStart, String plannedTimeEnd,
String createTimeStart, String createTimeEnd) {
QueryWrapper<SurgeryDto> queryWrapper = HisQueryUtils.buildQueryWrapper(surgeryDto, null,
new HashSet<String>() {{
add("surgery_no");
@@ -149,6 +151,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);
}

View File

@@ -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<SurgeryDto> page = surgeryAppService.getSurgeryPage(surgeryDto, pageNo, pageSize, plannedTimeStart, plannedTimeEnd);
IPage<SurgeryDto> page = surgeryAppService.getSurgeryPage(surgeryDto, pageNo, pageSize,
plannedTimeStart, plannedTimeEnd, createTimeStart, createTimeEnd);
return R.ok(page);
}