法规清单-表头排序

This commit is contained in:
zhn
2022-12-16 11:51:40 +08:00
parent e3922c9f23
commit 32d722101a
2 changed files with 250 additions and 0 deletions
@@ -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;
}
@@ -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<ProjectLawsIn
long startTime = System.currentTimeMillis();
dataDictDispose(result,projectLawsInventoryEO.getCut());
log.debug("处理数据字典消耗时间:" + (System.currentTimeMillis() - startTime));
//表头排序
result = hearSort(projectLawsInventoryEO, result);
return result;
}
private List<ProjectLawsInventoryEO> hearSort(ProjectLawsInventoryEO projectLawsInventoryEO, List<ProjectLawsInventoryEO> 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<ProjectLawsInventoryEO> 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);
}
// 认证级别WVTACom.-VTACert.-MarketReg.-Market attestationRank_dictText
if("attestationRank".equals(orderByField)){
result = attestationRankSort(orderBy,orderByField,result,list);
}
}
return result;
}
//清单确认状态排序
private List<ProjectLawsInventoryEO> inventorySort(String orderBy, String orderByField,
List<ProjectLawsInventoryEO> dummyInventoryInfoEOList,
List<ProjectLawsInventoryEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "inventoryAffirmStatusName".equals(orderByField)){
List<ProjectLawsInventoryEO> notStarted = dummyInventoryInfoEOList.stream()
.filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.NOT_STARTED.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> regEngToConfirm = dummyInventoryInfoEOList.stream()
.filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.REG_ENG_TO_CONFIRM.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> homoEngToConfirm = dummyInventoryInfoEOList.stream()
.filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.HOMO_ENG_TO_CONFIRM.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> accepted = dummyInventoryInfoEOList.stream()
.filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.ACCEPTED.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> regEngRejected = dummyInventoryInfoEOList.stream()
.filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.REG_ENG_REJECTED.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> 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<ProjectLawsInventoryEO> taskSort(String orderBy, String orderByField,
List<ProjectLawsInventoryEO> dummyInventoryInfoEOList,
List<ProjectLawsInventoryEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "taskAffirmStatusName".equals(orderByField)){
List<ProjectLawsInventoryEO> notStarted = dummyInventoryInfoEOList.stream()
.filter(e -> e.getTaskAffirmStatusName().equals(TaskAffirmStatusEnum.NOT_STARTED.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> listToConfirm = dummyInventoryInfoEOList.stream()
.filter(e -> e.getTaskAffirmStatusName().equals(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> accepted = dummyInventoryInfoEOList.stream()
.filter(e -> e.getTaskAffirmStatusName().equals(TaskAffirmStatusEnum.ACCEPTED.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> 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<ProjectLawsInventoryEO> attestationRankSort(String orderBy, String orderByField,
List<ProjectLawsInventoryEO> dummyInventoryInfoEOList,
List<ProjectLawsInventoryEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "attestationRank".equals(orderByField)){
List<ProjectLawsInventoryEO> wvta = dummyInventoryInfoEOList.stream()
.filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.WVTA.getValue())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> vta = dummyInventoryInfoEOList.stream()
.filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.VTA.getValue())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> market = dummyInventoryInfoEOList.stream()
.filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.MARKET.getValue())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> regu = dummyInventoryInfoEOList.stream()
.filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.REGU.getValue())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> na = dummyInventoryInfoEOList.stream()
.filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.NA.getValue())).collect(Collectors.toList());
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
//正序
List<ProjectLawsInventoryEO> 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<ProjectLawsInventoryEO> 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<ProjectLawsIn
if(CollectionUtils.isNotEmpty(result)){
List<SysDictItem> 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<ProjectLawsIn
if(StringUtils.isNotEmpty(attestationRank)){
String attestationRank_dictText = disposeShowDictItemValue(sysDictItems, attestationRank,cut,ProjectInventoryFieldEnum.ATTESTATION_RANK.getValue());
projectLawsInventoryEO.setAttestationRank_dictText(attestationRank_dictText);
}else{
projectLawsInventoryEO.setAttestationRank_dictText("");
}
//处理责任领域
@@ -1093,14 +1329,20 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
//认证工程师id
if(StringUtils.isNotEmpty(projectLawsInventoryEO.getHomologationEngineerId())){
userIdList.add(projectLawsInventoryEO.getHomologationEngineerId());
}else{
projectLawsInventoryEO.setHomologationEngineerName("");
}
//法规工程师id
if(StringUtils.isNotEmpty(projectLawsInventoryEO.getRegulationOwnerId())){
userIdList.add(projectLawsInventoryEO.getRegulationOwnerId());
}else{
projectLawsInventoryEO.setRegulationOwnerName("");
}
//工程接口人id
if(StringUtils.isNotEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson())){
userIdList.add(projectLawsInventoryEO.getEngineeringInterfacePerson());
}else{
projectLawsInventoryEO.setEngineeringInterfacePersonName("");
}
//设计符合性确认