Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r37568 -r37808 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 37568) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 37808) @@ -6396,10 +6396,37 @@ for (Entry object : cMap.entrySet()) { tousseInBasketArray.add(object.getValue()); } - //根据加急等级排序(降序) - if(CssdUtils.getSystemSetConfigByNameBool("enableUrgentFunction", false)){ - tousseInBasketArray.sort(Comparator.comparing(obj -> ((JSONObject) obj).getInt("urgentGrade")).reversed()); - } + tousseInBasketArray.sort(new Comparator() { + @Override + public int compare(JSONObject o1, JSONObject o2) { + int gradeComparison = Integer.compare(o2.getInt("urgentGrade"), o1.getInt("urgentGrade")); + if (gradeComparison != 0) { + return gradeComparison; + } + // 如果加急等级相同,则按科室排序(升序) + String o1Depart = o1.optString("depart"); + if(StringUtils.isBlank(o1Depart)){ + o1Depart = ""; + } + String o2Depart = o2.optString("depart"); + if(StringUtils.isBlank(o2Depart)){ + o2Depart = ""; + } + int departReuslt = o1Depart.compareTo(o2Depart); + if (departReuslt != 0) { + return departReuslt; + } + String o1Barcode = o1.optString("barcode"); + if(StringUtils.isBlank(o1Barcode)){ + o1Barcode = ""; + } + String o2Barcode = o2.optString("barcode"); + if(StringUtils.isBlank(o2Barcode)){ + o2Barcode = ""; + } + return o1Barcode.compareTo(o2Barcode); + } + }); jsonObj.put("children", tousseInBasketArray); //只要有一个包加急,篮筐就显示加急 //获取器械包中最高的加急等级,默认加急等级为0,便于排序 @@ -6419,10 +6446,38 @@ jsonArray.add(jsonObj); } - //根据加急等级排序(降序) - if(CssdUtils.getSystemSetConfigByNameBool("enableUrgentFunction", false)){ - jsonArray.sort(Comparator.comparing(obj -> ((JSONObject) obj).getInt("maxUrgentGrade")).reversed()); - } + jsonArray.sort(new Comparator() { + @Override + public int compare(JSONObject o1, JSONObject o2) { + int gradeComparison = Integer.compare(o2.getInt("maxUrgentGrade"), o1.getInt("maxUrgentGrade")); + if (gradeComparison != 0) { + return gradeComparison; + } + // 如果加急等级相同,则按科室排序(升序) + String o1Depart = o1.optString("depart"); + if(StringUtils.isBlank(o1Depart)){ + o1Depart = ""; + } + String o2Depart = o2.optString("depart"); + if(StringUtils.isBlank(o2Depart)){ + o2Depart = ""; + } + int departReuslt = o1Depart.compareTo(o2Depart); + if (departReuslt != 0) { + return departReuslt; + } + String o1Barcode = o1.optString("barcode"); + if(StringUtils.isBlank(o1Barcode)){ + o1Barcode = ""; + } + String o2Barcode = o2.optString("barcode"); + if(StringUtils.isBlank(o2Barcode)){ + o2Barcode = ""; + } + return o1Barcode.compareTo(o2Barcode); + } + }); + // Collections.sort(jsonArray, ); appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_STERILIZATION, Log.TYPE_QUERY, "未入筐物品查询时间:" + (afterWithoutReviewedBasket - startTime) + "ms,入筐物品查询时间:" + (afterInReviewedBasket - afterWithoutReviewedBasket)