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 096d92d55..55def604b 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 @@ -149,6 +149,7 @@ public class NcrTrackServiceImpl extends ServiceImpl prehomoName = "PreHomo confirmation"; verifyName = "Verification of compliance process"; } + List problemPriorityList = sysDictService.queryDictItemsByCode(DicCodeEnum.PROBLEM_PRIORITY.getCode()); List dictItemList = sysDictItemServiceImpl.selectItemsAll(); Set userIdSet = new HashSet<>(); for (NcrTrackVO trackVO : infoList) { @@ -381,7 +382,7 @@ public class NcrTrackServiceImpl extends ServiceImpl //条件查询 trackVOList = parameterQuery(ncrTrackVO, trackVOList); //表头排序 - heartSort(ncrTrackVO, trackVOList); + heartSort(ncrTrackVO, trackVOList,problemPriorityList,ncrTrackVO.getCut()); if(StringUtils.isBlank(ncrTrackVO.getOrderByField())){ Collections.sort(trackVOList, new Comparator() { @Override @@ -404,8 +405,37 @@ public class NcrTrackServiceImpl extends ServiceImpl return problemManagement; } - private void heartSort(NcrTrackVO ncrTrackVO, List trackVOList) { + private void heartSort(NcrTrackVO ncrTrackVO, List trackVOList,List problemPriorityList,String cut) { Collator comparator = Collator.getInstance(Locale.CHINESE); + if("problemPriority".equals(ncrTrackVO.getOrderByField())){ + //优先级数据字典转换 + for (NcrTrackVO trackVO : trackVOList) { + String problemPriority = trackVO.getProblemPriority(); + if(StringUtils.isNotBlank(problemPriority)){ + List collect = problemPriorityList.stream().filter(e -> problemPriority.equals(e.getValue())).collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(collect)){ + if(CutEnum.CN.getValue().equals(cut)){ + trackVO.setProblemPriorityName(collect.get(0).getText()); + }else{ + trackVO.setProblemPriorityName(collect.get(0).getTextEn()); + } + } + } + } + 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); + }); + } 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); + }); + } + } if ("title".equals(ncrTrackVO.getOrderByField())) { if (OrderEnum.POSITIVE.getValue().equals(ncrTrackVO.getOrderBy())) { Collections.sort(trackVOList, (e1, e2) -> { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java index c9069f0c0..168d9cb19 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java @@ -97,6 +97,8 @@ public class NcrTrackVO implements Serializable { @ApiModelProperty(value = "问题优先级") private java.lang.String problemPriority; + private java.lang.String problemPriorityName; + private java.lang.String problemPriority_dictText; /**描述和分析*/ diff --git a/jero-web/src/views/projectManagement/projectNonConformance/index.vue b/jero-web/src/views/projectManagement/projectNonConformance/index.vue index ef660d37e..3d694cca9 100644 --- a/jero-web/src/views/projectManagement/projectNonConformance/index.vue +++ b/jero-web/src/views/projectManagement/projectNonConformance/index.vue @@ -301,6 +301,7 @@ align: 'left', dataIndex: 'problemPriority_dictText', width: 120, + sorter:true, ellipsis: true, }, { @@ -432,7 +433,12 @@ }, tableOnChange(pagination, filters, sorter) { this.orderBy = sorter.order == 'ascend' ? '1' : '2' - this.orderByField = sorter.columnKey + + if (sorter.columnKey == 'problemPriority_dictText'){ + this.orderByField = 'problemPriority' + }else{ + this.orderByField = sorter.columnKey + } this.getList() }, getList() {