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 a88294b8d..0e3d4a4fc 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 @@ -1874,6 +1874,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl> dataList,Map params) { + String orderByField = (String) params.get("orderByField"); + String orderBy = (String) params.get("orderBy"); + if(CollectionUtils.isNotEmpty(dataList) && StringUtils.isNotEmpty(orderByField) && StringUtils.isNotEmpty(orderBy)){ + Collator comparator = Collator.getInstance(Locale.CHINESE); + Collections.sort(dataList,(data1,data2)->{ + String param1 = ""; + String param2 = ""; + // 一级责任领域名称 + if("dutyTerritoryName".equals(orderByField)){ + param1 = StringUtils.isNotEmpty((String) data1.get("dutyTerritoryName")) ? (String) data1.get("dutyTerritoryName") : ""; + param2 = StringUtils.isNotEmpty((String) data2.get("dutyTerritoryName")) ? (String) data2.get("dutyTerritoryName") : ""; + } + // 数量 + if("amount".equals(orderByField)){ + param1 = StringUtils.isNotEmpty(String.valueOf(data1.get("amount"))) ? String.valueOf(data1.get("amount")) : ""; + param2 = StringUtils.isNotEmpty(String.valueOf(data2.get("amount"))) ? String.valueOf(data2.get("amount")) : ""; + } + // 占比 + if("percentage".equals(orderByField)){ + param1 = StringUtils.isNotEmpty((String) data1.get("percentage")) ? (String) data1.get("percentage") : ""; + param2 = StringUtils.isNotEmpty((String) data2.get("percentage")) ? (String) data2.get("percentage") : ""; + } + if(OrderEnum.POSITIVE.getValue().equals(orderBy)){ + return comparator.compare(param1,param2); + }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + return comparator.compare(param2,param1); + } + return 0; + }); + } + } + @Override public void exportProjectDetailsStatisticsGroupByTerritoryXls(HttpServletResponse response, HttpServletRequest request, Map params) { Map projectDetailsStatisticsGroupByTerritory = getProjectDetailsStatisticsGroupByTerritory(params);