diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index 80eb89f2f..553e17fa4 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -2716,38 +2716,47 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl> dataList,Map params) { String orderByField = (String) params.get("orderByField"); String orderBy = (String) params.get("orderBy"); + //默认按数量倒序 + if(null == orderByField){ + orderByField = "amount"; + } + if(null == orderBy){ + orderBy = "2"; + } if(CollectionUtils.isNotEmpty(dataList)){ Collator comparator = Collator.getInstance(Locale.CHINESE); - Collections.sort(dataList,(data1,data2)->{ + String finalOrderByField = orderByField; + String finalOrderBy = orderBy; + Collections.sort(dataList,(data1, data2)->{ String param1 = ""; String param2 = ""; // 一级责任领域名称 - if("dutyTerritoryName".equals(orderByField)){ + if("dutyTerritoryName".equals(finalOrderByField)){ param1 = StringUtils.isNotEmpty((String) data1.get("dutyTerritoryName")) ? (String) data1.get("dutyTerritoryName") : ""; param2 = StringUtils.isNotEmpty((String) data2.get("dutyTerritoryName")) ? (String) data2.get("dutyTerritoryName") : ""; - if(OrderEnum.POSITIVE.getValue().equals(orderBy)){ + if(OrderEnum.POSITIVE.getValue().equals(finalOrderBy)){ return comparator.compare(param1,param2); - }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + }else if(OrderEnum.REVERSE.getValue().equals(finalOrderBy)){ return comparator.compare(param2,param1); } } // 数量 - if(StringUtils.isEmpty(orderByField) || "amount".equals(orderByField)){ + if(StringUtils.isEmpty(finalOrderByField) || "amount".equals(finalOrderByField)){ double p1 = data1.get("amount") != null ? (double) data1.get("amount") : 0; double p2 = data2.get("amount") != null ? (double) data2.get("amount") : 0; - if(StringUtils.isEmpty(orderBy) || OrderEnum.POSITIVE.getValue().equals(orderBy)){ + if(StringUtils.isEmpty(finalOrderBy) || OrderEnum.POSITIVE.getValue().equals(finalOrderBy)){ return (int)(p1 - p2); - }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + }else if(OrderEnum.REVERSE.getValue().equals(finalOrderBy)){ return (int)(p2 - p1); } } // 占比 - if("percentage".equals(orderByField)){ + if("percentage".equals(finalOrderByField)){ double p1 = StringUtils.isNotEmpty((String) data1.get("percentage")) ? Double.parseDouble (((String) data1.get("percentage")).replace("%","")) : 0; double p2 = StringUtils.isNotEmpty((String) data2.get("percentage")) ? Double.parseDouble (((String) data2.get("percentage")).replace("%","")) : 0; - if(OrderEnum.POSITIVE.getValue().equals(orderBy)){ + if(OrderEnum.POSITIVE.getValue().equals(finalOrderBy)){ return (int)(p1 - p2); - }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + }else if(OrderEnum.REVERSE.getValue().equals(finalOrderBy)){ return (int)(p2 - p1); } }