|
@@ -128,9 +128,35 @@ public class PrintInfusionCardService {
|
|
|
info.setBottleCardDrugs(fetchDrugsForBottleCard(main, sideDrugs));
|
|
|
response.add(info);
|
|
|
}
|
|
|
+
|
|
|
+ // 按bed_no去掉最后一个字符后转为数字排序
|
|
|
+ response.sort((o1, o2) -> {
|
|
|
+ // 获取并处理bedNo(去掉最后一个字符)
|
|
|
+ String bedNo1 = getTrimmedBedNo(o1.getPatInfo());
|
|
|
+ String bedNo2 = getTrimmedBedNo(o2.getPatInfo());
|
|
|
+
|
|
|
+ // 转为数字比较
|
|
|
+ try {
|
|
|
+ Integer b1 = bedNo1.isEmpty() ? 0 : Integer.parseInt(bedNo1);
|
|
|
+ Integer b2 = bedNo2.isEmpty() ? 0 : Integer.parseInt(bedNo2);
|
|
|
+ return b1.compareTo(b2);
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
+ // 非数字格式按处理后的字符串字典序排序
|
|
|
+ return bedNo1.compareTo(bedNo2);
|
|
|
+ }
|
|
|
+ });
|
|
|
return ResultVoUtil.success(response);
|
|
|
}
|
|
|
|
|
|
+ // 辅助方法:获取去掉最后一个字符的bedNo
|
|
|
+ private String getTrimmedBedNo(PatientBriefInfo patInfo) {
|
|
|
+ if (patInfo == null || patInfo.getBedNo() == null || patInfo.getBedNo().length() == 0) {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ // 去掉最后一个字符(若长度为1则返回空字符串)
|
|
|
+ return patInfo.getBedNo().substring(0, patInfo.getBedNo().length() - 1);
|
|
|
+ }
|
|
|
+
|
|
|
private List<YzActOccInfusionNew> fetchDrugsForBottleCard(YzActOccInfusionNew main, List<YzActOccInfusionNew> sideDrugs) {
|
|
|
List<YzActOccInfusionNew> list = new ArrayList<>();
|
|
|
list.add(main);
|