问题管理-表头排序
This commit is contained in:
+55
@@ -0,0 +1,55 @@
|
||||
package com.jero.modules.project.enums;
|
||||
|
||||
import com.jero.common.constant.enums.CutEnum;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 问题优先级枚举类
|
||||
*/
|
||||
public enum ProblemPriorityEnum {
|
||||
|
||||
LOW("低","Low"),
|
||||
MIDDLE("中","Middle"),
|
||||
HIGH("高","High"),
|
||||
;
|
||||
|
||||
|
||||
String valueCn;
|
||||
String valueEn;
|
||||
|
||||
private ProblemPriorityEnum(String valueCn, String valueEn) {
|
||||
this.valueCn = valueCn;
|
||||
this.valueEn = valueEn;
|
||||
}
|
||||
|
||||
public String getValueCn() {
|
||||
return valueCn;
|
||||
}
|
||||
|
||||
public void setValueCn(String valueCn) {
|
||||
this.valueCn = valueCn;
|
||||
}
|
||||
|
||||
public String getValueEn() {
|
||||
return valueEn;
|
||||
}
|
||||
|
||||
public void setValueEn(String valueEn) {
|
||||
this.valueEn = valueEn;
|
||||
}
|
||||
|
||||
public static List<String> getValueAll(String cut) {
|
||||
ProblemPriorityEnum[] values = values();
|
||||
List<String> result = new ArrayList<>();
|
||||
for (ProblemPriorityEnum taskStatusEnum : values) {
|
||||
if(CutEnum.CN.getValue().equals(cut)){
|
||||
result.add(taskStatusEnum.getValueCn());
|
||||
}else{
|
||||
result.add(taskStatusEnum.getValueEn());
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
+36
-12
@@ -22,6 +22,7 @@ import com.jero.modules.project.entity.ProjectTaskInventoryDetailEO;
|
||||
import com.jero.modules.project.enums.ColourEnum;
|
||||
import com.jero.modules.project.enums.ComplianceFlowStatusEnum;
|
||||
import com.jero.modules.project.enums.DataEnum;
|
||||
import com.jero.modules.project.enums.ProblemPriorityEnum;
|
||||
import com.jero.modules.project.enums.ReviewResultEnum;
|
||||
import com.jero.modules.project.mapper.NcrTrackMapper;
|
||||
import com.jero.modules.project.mapper.ProblemManagementEOMapper;
|
||||
@@ -73,6 +74,7 @@ import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
@@ -382,7 +384,7 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
//条件查询
|
||||
trackVOList = parameterQuery(ncrTrackVO, trackVOList);
|
||||
//表头排序
|
||||
heartSort(ncrTrackVO, trackVOList,problemPriorityList,ncrTrackVO.getCut());
|
||||
trackVOList = heartSort(ncrTrackVO, trackVOList,problemPriorityList,ncrTrackVO.getCut());
|
||||
if(StringUtils.isBlank(ncrTrackVO.getOrderByField())){
|
||||
Collections.sort(trackVOList, new Comparator<NcrTrackVO>() {
|
||||
@Override
|
||||
@@ -405,9 +407,10 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
return problemManagement;
|
||||
}
|
||||
|
||||
private void heartSort(NcrTrackVO ncrTrackVO, List<NcrTrackVO> trackVOList,List<DictModel> problemPriorityList,String cut) {
|
||||
private List<NcrTrackVO> heartSort(NcrTrackVO ncrTrackVO, List<NcrTrackVO> trackVOList,List<DictModel> problemPriorityList,String cut) {
|
||||
Collator comparator = Collator.getInstance(Locale.CHINESE);
|
||||
if("problemPriority".equals(ncrTrackVO.getOrderByField())){
|
||||
List<String> valueList = ProblemPriorityEnum.getValueAll(cut);
|
||||
//优先级数据字典转换
|
||||
for (NcrTrackVO trackVO : trackVOList) {
|
||||
String problemPriority = trackVO.getProblemPriority();
|
||||
@@ -422,18 +425,38 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
}
|
||||
}
|
||||
}
|
||||
List<NcrTrackVO> ncrTrackVOList = new LinkedList<>();
|
||||
//优先级没有值的数据
|
||||
List<NcrTrackVO> dataNoList = trackVOList.stream().filter(e -> !valueList.contains(e.getProblemPriorityName())).collect(Collectors.toList());
|
||||
|
||||
if (OrderEnum.POSITIVE.getValue().equals(ncrTrackVO.getOrderBy())) {
|
||||
Collections.sort(trackVOList, (e1, e2) -> {
|
||||
String e1Field = StringUtils.isNotBlank(e1.getProblemPriorityName()) ? e1.getProblemPriorityName() : "";
|
||||
String e2Field = StringUtils.isNotBlank(e2.getProblemPriorityName()) ? e2.getProblemPriorityName() : "";
|
||||
return comparator.compare(e1Field, e2Field);
|
||||
});
|
||||
for (String s : valueList) {
|
||||
List<NcrTrackVO> collect = trackVOList.stream().filter(e -> s.equals(e.getProblemPriorityName())).collect(Collectors.toList());
|
||||
if(ObjectUtils.isNotEmpty(collect)){
|
||||
ncrTrackVOList.addAll(collect);
|
||||
}
|
||||
}
|
||||
if(ObjectUtils.isNotEmpty(dataNoList)){
|
||||
ncrTrackVOList.addAll(dataNoList);
|
||||
}
|
||||
if(ObjectUtils.isNotEmpty(ncrTrackVOList)){
|
||||
trackVOList = ncrTrackVOList;
|
||||
}
|
||||
|
||||
} else if (OrderEnum.REVERSE.getValue().equals(ncrTrackVO.getOrderBy())) {
|
||||
Collections.sort(trackVOList, (e1, e2) -> {
|
||||
String e1Field = StringUtils.isNotBlank(e1.getProblemPriorityName()) ? e1.getProblemPriorityName() : "";
|
||||
String e2Field = StringUtils.isNotBlank(e2.getProblemPriorityName()) ? e2.getProblemPriorityName() : "";
|
||||
return comparator.compare(e2Field, e1Field);
|
||||
});
|
||||
for (int i = valueList.size()-1; i >= 0; i--) {
|
||||
int finalI = i;
|
||||
List<NcrTrackVO> collect = trackVOList.stream().filter(e -> valueList.get(finalI).equals(e.getProblemPriorityName())).collect(Collectors.toList());
|
||||
if(ObjectUtils.isNotEmpty(collect)){
|
||||
ncrTrackVOList.addAll(collect);
|
||||
}
|
||||
}
|
||||
if(ObjectUtils.isNotEmpty(dataNoList)){
|
||||
ncrTrackVOList.addAll(dataNoList);
|
||||
}
|
||||
if(ObjectUtils.isNotEmpty(ncrTrackVOList)){
|
||||
trackVOList = ncrTrackVOList;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ("title".equals(ncrTrackVO.getOrderByField())) {
|
||||
@@ -587,6 +610,7 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
});
|
||||
}
|
||||
}
|
||||
return trackVOList;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user