From 3e729b88b8852d6b1be1f2af4374c28e2972b2de Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Thu, 7 Sep 2023 11:45:48 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A8=E5=A4=B4=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/NcrTrackController.java | 2 +- .../service/impl/NcrTrackServiceImpl.java | 168 +++++++++++++++++- 2 files changed, 166 insertions(+), 4 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java index 3638b75e0..77aa1c209 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java @@ -58,7 +58,7 @@ public class NcrTrackController { HttpServletRequest req) { List pageInfo = iNcrTrackService.getPageInfo(ncrTrackVO); //表头排序 - orderHeader(ncrTrackVO, pageInfo); +// orderHeader(ncrTrackVO, pageInfo); Page pages = iNcrTrackService.getPages(pageNo, pageSize, pageInfo); return Result.OK(ncrTrackVO.getCut(),pages); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java index f14824a05..01d0bda9e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java @@ -1,6 +1,5 @@ package com.jero.modules.project.service.impl; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -11,6 +10,7 @@ import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.LoginUser; import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.service.IBussDocumentLibraryEOService; +import com.jero.modules.dummy.enums.OrderEnum; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.project.entity.ProblemManagementEO; @@ -23,15 +23,14 @@ import com.jero.modules.project.enums.ReviewResultEnum; import com.jero.modules.project.mapper.NcrTrackMapper; import com.jero.modules.project.mapper.ProblemManagementEOMapper; import com.jero.modules.project.service.INcrTrackService; -import com.jero.modules.project.service.IProblemManagementEOService; import com.jero.modules.project.vo.NcrTrackInfoVO; import com.jero.modules.project.vo.NcrTrackVO; import com.jero.modules.project.vo.ProblemManagementVO; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.enums.DicCodeEnum; -import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.IProjectUserDutyTerritoryService; +import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import com.jero.modules.wkflow.enums.FlowTypeEnum; @@ -52,11 +51,15 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; +import java.text.Collator; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; @@ -338,10 +341,169 @@ public class NcrTrackServiceImpl extends ServiceImpl } //条件查询 trackVOList = parameterQuery(ncrTrackVO, trackVOList); + //表头排序 + heartSort(ncrTrackVO, trackVOList); + + return trackVOList; } } + private void heartSort(NcrTrackVO ncrTrackVO, List trackVOList) { + Collator comparator = Collator.getInstance(Locale.CHINESE); + if ("title".equals(ncrTrackVO.getOrderByField())) { + if (OrderEnum.POSITIVE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getTitle()) ? e1.getTitle() : ""; + String e2Field = StringUtils.isNotBlank(e2.getTitle()) ? e2.getTitle() : ""; + return comparator.compare(e1Field, e2Field); + }); + } else if (OrderEnum.REVERSE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getTitle()) ? e1.getTitle() : ""; + String e2Field = StringUtils.isNotBlank(e2.getTitle()) ? e2.getTitle() : ""; + return comparator.compare(e2Field, e1Field); + }); + } + } + if ("lawsName".equals(ncrTrackVO.getOrderByField())) { + if (OrderEnum.POSITIVE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getLawsName()) ? e1.getLawsName() : ""; + String e2Field = StringUtils.isNotBlank(e2.getLawsName()) ? e2.getLawsName() : ""; + return comparator.compare(e1Field, e2Field); + }); + } else if (OrderEnum.REVERSE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getLawsName()) ? e1.getLawsName() : ""; + String e2Field = StringUtils.isNotBlank(e2.getLawsName()) ? e2.getLawsName() : ""; + return comparator.compare(e2Field, e1Field); + }); + } + } + if ("projectName".equals(ncrTrackVO.getOrderByField())) { + if (OrderEnum.POSITIVE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getProjectName()) ? e1.getProjectName() : ""; + String e2Field = StringUtils.isNotBlank(e2.getProjectName()) ? e2.getProjectName() : ""; + return comparator.compare(e1Field, e2Field); + }); + } else if (OrderEnum.REVERSE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getProjectName()) ? e1.getProjectName() : ""; + String e2Field = StringUtils.isNotBlank(e2.getProjectName()) ? e2.getProjectName() : ""; + return comparator.compare(e2Field, e1Field); + }); + } + } + if ("problemType_dictText".equals(ncrTrackVO.getOrderByField())) { + if (OrderEnum.POSITIVE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getProblemType_dictText()) ? e1.getProblemType_dictText() : ""; + String e2Field = StringUtils.isNotBlank(e2.getProblemType_dictText()) ? e2.getProblemType_dictText() : ""; + return comparator.compare(e1Field, e2Field); + }); + } else if (OrderEnum.REVERSE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getProblemType_dictText()) ? e1.getProblemType_dictText() : ""; + String e2Field = StringUtils.isNotBlank(e2.getProblemType_dictText()) ? e2.getProblemType_dictText() : ""; + return comparator.compare(e2Field, e1Field); + }); + } + } + if ("dutyTerritory".equals(ncrTrackVO.getOrderByField())) { + if (OrderEnum.POSITIVE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getDutyTerritory()) ? e1.getDutyTerritory() : ""; + String e2Field = StringUtils.isNotBlank(e2.getDutyTerritory()) ? e2.getDutyTerritory() : ""; + return comparator.compare(e1Field, e2Field); + }); + } else if (OrderEnum.REVERSE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getDutyTerritory()) ? e1.getDutyTerritory() : ""; + String e2Field = StringUtils.isNotBlank(e2.getDutyTerritory()) ? e2.getDutyTerritory() : ""; + return comparator.compare(e2Field, e1Field); + }); + } + } + if ("problemState".equals(ncrTrackVO.getOrderByField())) { + if (OrderEnum.POSITIVE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getProblemState()) ? e1.getProblemState() : ""; + String e2Field = StringUtils.isNotBlank(e2.getProblemState()) ? e2.getProblemState() : ""; + return comparator.compare(e1Field, e2Field); + }); + } else if (OrderEnum.REVERSE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getProblemState()) ? e1.getProblemState() : ""; + String e2Field = StringUtils.isNotBlank(e2.getProblemState()) ? e2.getProblemState() : ""; + return comparator.compare(e2Field, e1Field); + }); + } + } + if ("createBy".equals(ncrTrackVO.getOrderByField())) { + if (OrderEnum.POSITIVE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getCreateBy()) ? e1.getCreateBy() : ""; + String e2Field = StringUtils.isNotBlank(e2.getCreateBy()) ? e2.getCreateBy() : ""; + return comparator.compare(e1Field, e2Field); + }); + } else if (OrderEnum.REVERSE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getCreateBy()) ? e1.getCreateBy() : ""; + String e2Field = StringUtils.isNotBlank(e2.getCreateBy()) ? e2.getCreateBy() : ""; + return comparator.compare(e2Field, e1Field); + }); + } + } + if ("createTime".equals(ncrTrackVO.getOrderByField())) { + if (OrderEnum.POSITIVE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, new Comparator() { + @Override + public int compare(NcrTrackVO o1, NcrTrackVO o2) { + if (o1.getCreateTime() == null || o2.getCreateTime() == null) { + return 0; + } + return o1.getCreateTime().compareTo(o2.getCreateTime()); + } + }); + } else if (OrderEnum.REVERSE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, new Comparator() { + @Override + public int compare(NcrTrackVO o1, NcrTrackVO o2) { + if (o1.getCreateTime() == null || o2.getCreateTime() == null) { + return 0; + } + return o2.getCreateTime().compareTo(o1.getCreateTime()); + } + }); + } + } + if ("updateTime".equals(ncrTrackVO.getOrderByField())) { + if (OrderEnum.POSITIVE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, new Comparator() { + @Override + public int compare(NcrTrackVO o1, NcrTrackVO o2) { + if (o1.getUpdateTime() == null || o2.getUpdateTime() == null) { + return 0; + } + return o1.getUpdateTime().compareTo(o2.getUpdateTime()); + } + }); + } else if (OrderEnum.REVERSE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, new Comparator() { + @Override + public int compare(NcrTrackVO o1, NcrTrackVO o2) { + if (o1.getUpdateTime() == null || o2.getUpdateTime() == null) { + return 0; + } + return o2.getUpdateTime().compareTo(o1.getUpdateTime()); + } + }); + } + } + } + @NotNull private List parameterQuery(NcrTrackVO ncrTrackVO, List trackVOList) { if(!trackVOList.isEmpty()){