diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java index 34514e2a4..792951058 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java @@ -15,6 +15,7 @@ import com.jero.modules.cert.collect.entity.ParamsManifestEO; import com.jero.modules.cert.collect.enums.CollectManifestStatisticsStateEnum; import com.jero.modules.cert.collect.service.IParamsCollectManifestEOService; import com.jero.modules.cert.collect.service.IParamsManifestEOService; +import com.jero.modules.cert.report.entity.ParamsReportConfigDataEO; import com.jero.modules.cert.template.enums.ControlTypeEnum; import com.jero.modules.project.entity.*; import com.jero.modules.project.enums.*; @@ -50,6 +51,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.text.DecimalFormat; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.CountDownLatch; @@ -171,7 +173,8 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService projectLibraryBaseLinkedList.addAll(projectLibraryBaseListTemp); } } - Collections.sort(projectLibraryBaseList); + //Collections.sort(projectLibraryBaseList); + List dictItemList = sysDictItemServiceImpl.selectItemsByDictCode("region"); for (ProjectLibraryBase libraryBase : projectLibraryBaseList) { @@ -194,6 +197,67 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService } } } + Collections.sort(result, new Comparator>() { + @Override + public int compare(Map o1, Map o2) { + ProjectLibraryBase p1 = (ProjectLibraryBase) o1.get("projectInfo"); + ProjectLibraryBase p2 = (ProjectLibraryBase) o2.get("projectInfo"); + Date defaultTime = null; + try { + defaultTime = sdf.parse("2099-01-01"); + } catch (ParseException e) { + e.printStackTrace(); + } + Date HomoKoTime1 = defaultTime; + List> tnvList1 = (List>) o1.get("data"); + if (CollectionUtils.isNotEmpty(tnvList1)) { + List tnList1 = tnvList1.get(0); + if (CollectionUtils.isNotEmpty(tnList1)) { + for (TimeNodeVO tnv1 : tnList1) { + if (tnv1.getName().equals(ProjectTaskPlanningNameEnum.ATTESTATION_END_TIME.getName()) + || tnv1.getName().equals(ProjectTaskPlanningNameEnum.ATTESTATION_END_TIME.getValue())) { + HomoKoTime1 = tnv1.getTime(); + } + } + } + } + Date HomoKoTime2 = defaultTime; + List> tnvList2 = (List>) o2.get("data"); + if (CollectionUtils.isNotEmpty(tnvList2)) { + List tnList2 = tnvList2.get(0); + if (CollectionUtils.isNotEmpty(tnList2)) { + for (TimeNodeVO tnv2 : tnList2) { + if (tnv2.getName().equals(ProjectTaskPlanningNameEnum.ATTESTATION_END_TIME.getName()) + || tnv2.getName().equals(ProjectTaskPlanningNameEnum.ATTESTATION_END_TIME.getValue())) { + HomoKoTime2 = tnv2.getTime(); + } + } + } + } + + //首先排序-认证批准 + if(!HomoKoTime1.equals(HomoKoTime2)){ + return HomoKoTime1.compareTo(HomoKoTime2);//升序 + } + if (!p1.getProjectName().equals(p2.getProjectName())) { + return p1.getProjectName().compareTo(p2.getProjectName());//升序 + } + if (!p1.getYearName().equals(p2.getYearName())) { + if (p1.getYearName().length() != p2.getYearName().length()) { + return p1.getYearName().length() - p2.getYearName().length(); + } else { + return p1.getYearName().compareTo(p2.getYearName());//升序 + } + } + if (!p1.getTargetMarket().equals(p2.getTargetMarket())) { + return p1.getTargetMarket().compareTo(p2.getTargetMarket());//升序 + } + if (!p1.getProjectVersion().equals(p2.getProjectVersion())) { + return Integer.valueOf(p1.getProjectVersion()) - Integer.valueOf(p2.getProjectVersion());//升序 + } + return 0; + } + }); return result; }