diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java index c93605172..46102c993 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java @@ -472,4 +472,12 @@ public class ProjectLawsInventoryEO implements Serializable { @ApiModelProperty(value = "调取虚拟清单中文档ids") private String dummyids;//调取虚拟清单中文档ids + //排序(1->正序, 2->倒序) + @TableField(exist = false) + private String orderBy; + + //排序字段 + @TableField(exist = false) + private String orderByField; + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index 1c482d6ef..69490b99b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -31,7 +31,9 @@ import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.service.IBussDocumentLibraryEOService; import com.jero.modules.dummy.entity.DummyInventoryBaseEO; import com.jero.modules.dummy.entity.DummyInventoryInfoEO; +import com.jero.modules.dummy.enums.AttestationRankEnum; import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum; +import com.jero.modules.dummy.enums.OrderEnum; import com.jero.modules.dummy.service.IDummyInventoryInfoEOService; import com.jero.modules.dummy.service.impl.DummyInventoryBaseEOServiceImpl; import com.jero.modules.dummy.util.DeepCopyListUtil; @@ -113,6 +115,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; +import java.text.Collator; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -868,9 +871,234 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl hearSort(ProjectLawsInventoryEO projectLawsInventoryEO, List result) { +// String orderBy = "1"; +// String orderByField = "serialNumber"; + String orderBy = projectLawsInventoryEO.getOrderBy(); + String orderByField = projectLawsInventoryEO.getOrderByField(); + if(ObjectUtils.isNotEmpty(orderByField)){ + Collator comparator = Collator.getInstance(Locale.CHINESE); + //编号 serialNumber + if("serialNumber".equals(orderByField)){ + if(OrderEnum.POSITIVE.getValue().equals(orderBy)){ + Collections.sort(result,(e1, e2)->{ + return comparator.compare(e1.getSerialNumber(),e2.getSerialNumber()); + }); + }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + Collections.sort(result,(e1,e2)->{ + return comparator.compare(e2.getSerialNumber(),e1.getSerialNumber()); + }); + } + } + // WVTA ID wvtaId + if("wvtaId".equals(orderByField)){ + if(OrderEnum.POSITIVE.getValue().equals(orderBy)){ + Collections.sort(result,(e1, e2)->{ + return comparator.compare(e1.getWvtaId(),e2.getWvtaId()); + }); + }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + Collections.sort(result,(e1,e2)->{ + return comparator.compare(e2.getWvtaId(),e1.getWvtaId()); + }); + } + } + // 责任领域 dutyTerritory_dictText + if("dutyTerritory".equals(orderByField)){ + if(OrderEnum.POSITIVE.getValue().equals(orderBy)){ + Collections.sort(result,(e1, e2)->{ + return comparator.compare(e1.getDutyTerritory_dictText(),e2.getDutyTerritory_dictText()); + }); + }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + Collections.sort(result,(e1,e2)->{ + return comparator.compare(e2.getDutyTerritory_dictText(),e1.getDutyTerritory_dictText()); + }); + } + } + // 法规工程师 regulationOwnerName + if("regulationOwnerName".equals(orderByField)){ + if(OrderEnum.POSITIVE.getValue().equals(orderBy)){ + Collections.sort(result,(e1, e2)->{ + return comparator.compare(e1.getRegulationOwnerName(),e2.getRegulationOwnerName()); + }); + }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + Collections.sort(result,(e1,e2)->{ + return comparator.compare(e2.getRegulationOwnerName(),e1.getRegulationOwnerName()); + }); + } + } + // 认证工程师 homologationEngineerName + if("homologationEngineerName".equals(orderByField)){ + if(OrderEnum.POSITIVE.getValue().equals(orderBy)){ + Collections.sort(result,(e1, e2)->{ + return comparator.compare(e1.getHomologationEngineerName(),e2.getHomologationEngineerName()); + }); + }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + Collections.sort(result,(e1,e2)->{ + return comparator.compare(e2.getHomologationEngineerName(),e1.getHomologationEngineerName()); + }); + } + } + // 工程接口人 engineeringInterfacePersonName + if("engineeringInterfacePersonName".equals(orderByField)){ + if(OrderEnum.POSITIVE.getValue().equals(orderBy)){ + Collections.sort(result,(e1, e2)->{ + return comparator.compare(e1.getEngineeringInterfacePersonName(),e2.getEngineeringInterfacePersonName()); + }); + }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + Collections.sort(result,(e1,e2)->{ + return comparator.compare(e2.getEngineeringInterfacePersonName(),e1.getEngineeringInterfacePersonName()); + }); + } + } + List list = new LinkedList<>(); + // 清单确认状态(未发起,法规待确认,认证待确认,接受,法规拒绝,认证拒绝) inventoryAffirmStatusName + //InventoryAffirmStatusEnum + if("inventoryAffirmStatusName".equals(orderByField)){ + result = inventorySort(orderBy,orderByField,result,list); + } + // 任务确认状态(未发起,待确认,接受,拒绝) taskAffirmStatusName + //TaskAffirmStatusEnum + if("taskAffirmStatusName".equals(orderByField)){ + result = taskSort(orderBy,orderByField,result,list); + } + // 认证级别(WVTA,Com.-VTA,Cert.-Market,Reg.-Market) attestationRank_dictText + if("attestationRank".equals(orderByField)){ + result = attestationRankSort(orderBy,orderByField,result,list); + } + } + return result; + } + + //清单确认状态排序 + private List inventorySort(String orderBy, String orderByField, + List dummyInventoryInfoEOList, + List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "inventoryAffirmStatusName".equals(orderByField)){ + List notStarted = dummyInventoryInfoEOList.stream() + .filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.NOT_STARTED.getName())).collect(Collectors.toList()); + List regEngToConfirm = dummyInventoryInfoEOList.stream() + .filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.REG_ENG_TO_CONFIRM.getName())).collect(Collectors.toList()); + List homoEngToConfirm = dummyInventoryInfoEOList.stream() + .filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.HOMO_ENG_TO_CONFIRM.getName())).collect(Collectors.toList()); + List accepted = dummyInventoryInfoEOList.stream() + .filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.ACCEPTED.getName())).collect(Collectors.toList()); + List regEngRejected = dummyInventoryInfoEOList.stream() + .filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.REG_ENG_REJECTED.getName())).collect(Collectors.toList()); + List homoEngRejected = dummyInventoryInfoEOList.stream() + .filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.HOMO_ENG_REJECTED.getName())).collect(Collectors.toList()); + + + if (OrderEnum.POSITIVE.getValue().equals(orderBy)) { + //正序 + list.addAll(notStarted); + list.addAll(regEngToConfirm); + list.addAll(homoEngToConfirm); + list.addAll(accepted); + list.addAll(regEngRejected); + list.addAll(homoEngRejected); + + } else if (OrderEnum.REVERSE.getValue().equals(orderBy)) { + //倒序 + list.addAll(homoEngRejected); + list.addAll(regEngRejected); + list.addAll(accepted); + list.addAll(homoEngToConfirm); + list.addAll(regEngToConfirm); + list.addAll(notStarted); + } + } + if(ObjectUtils.isNotEmpty(list)){ + return list; + }else{ + return dummyInventoryInfoEOList; + } + } + // 任务确认状态排序 + private List taskSort(String orderBy, String orderByField, + List dummyInventoryInfoEOList, + List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "taskAffirmStatusName".equals(orderByField)){ + List notStarted = dummyInventoryInfoEOList.stream() + .filter(e -> e.getTaskAffirmStatusName().equals(TaskAffirmStatusEnum.NOT_STARTED.getName())).collect(Collectors.toList()); + List listToConfirm = dummyInventoryInfoEOList.stream() + .filter(e -> e.getTaskAffirmStatusName().equals(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getName())).collect(Collectors.toList()); + List accepted = dummyInventoryInfoEOList.stream() + .filter(e -> e.getTaskAffirmStatusName().equals(TaskAffirmStatusEnum.ACCEPTED.getName())).collect(Collectors.toList()); + List rejected = dummyInventoryInfoEOList.stream() + .filter(e -> e.getTaskAffirmStatusName().equals(TaskAffirmStatusEnum.REJECTED.getName())).collect(Collectors.toList()); + + + if (OrderEnum.POSITIVE.getValue().equals(orderBy)) { + //正序 + list.addAll(notStarted); + list.addAll(listToConfirm); + list.addAll(accepted); + list.addAll(rejected); + + } else if (OrderEnum.REVERSE.getValue().equals(orderBy)) { + //倒序 + list.addAll(rejected); + list.addAll(accepted); + list.addAll(listToConfirm); + list.addAll(notStarted); + } + } + if(ObjectUtils.isNotEmpty(list)){ + return list; + }else{ + return dummyInventoryInfoEOList; + } + } + //认证级别 + private List attestationRankSort(String orderBy, String orderByField, + List dummyInventoryInfoEOList, + List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "attestationRank".equals(orderByField)){ + List wvta = dummyInventoryInfoEOList.stream() + .filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.WVTA.getValue())).collect(Collectors.toList()); + List vta = dummyInventoryInfoEOList.stream() + .filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.VTA.getValue())).collect(Collectors.toList()); + List market = dummyInventoryInfoEOList.stream() + .filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.MARKET.getValue())).collect(Collectors.toList()); + List regu = dummyInventoryInfoEOList.stream() + .filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.REGU.getValue())).collect(Collectors.toList()); + List na = dummyInventoryInfoEOList.stream() + .filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.NA.getValue())).collect(Collectors.toList()); + + + if (OrderEnum.POSITIVE.getValue().equals(orderBy)) { + //正序 + List collect = dummyInventoryInfoEOList.stream().filter(e -> StringUtils.isBlank(e.getAttestationRank_dictText())).collect(Collectors.toList()); + list.addAll(collect); + list.addAll(wvta); + list.addAll(vta); + list.addAll(market); + list.addAll(regu); + list.addAll(na); + + } else if (OrderEnum.REVERSE.getValue().equals(orderBy)) { + //倒序 + list.addAll(na); + list.addAll(regu); + list.addAll(market); + list.addAll(vta); + list.addAll(wvta); + List collect = dummyInventoryInfoEOList.stream().filter(e -> StringUtils.isBlank(e.getAttestationRank_dictText())).collect(Collectors.toList()); + list.addAll(collect); + } + } + if(ObjectUtils.isNotEmpty(list)){ + return list; + }else{ + return dummyInventoryInfoEOList; + } + } + /** * 数据字典数据处理方法 * @param result 返回值 @@ -880,6 +1108,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl sysDictItems = sysDictItemServiceImpl.getBaseMapper().selectItemsAll(); for (ProjectLawsInventoryEO projectLawsInventoryEO : result) { + if(StringUtils.isBlank(projectLawsInventoryEO.getWvtaId())){ + projectLawsInventoryEO.setWvtaId(""); + } + if(StringUtils.isBlank(projectLawsInventoryEO.getDutyTerritory_dictText())){ + projectLawsInventoryEO.setDutyTerritory_dictText(""); + } //处理适用地区 String region = projectLawsInventoryEO.getRegion(); if(StringUtils.isNotEmpty(region)){ @@ -906,6 +1140,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl