虚拟清单详情页-表头排序
This commit is contained in:
+19
@@ -90,6 +90,8 @@ public class DummyInventoryInfoEO implements Serializable {
|
||||
@ApiModelProperty(value = "适用范围")
|
||||
@Dict(dicCode ="apply_scope")
|
||||
private java.lang.String shi4Yong4Fan4Wei2;
|
||||
@TableField(exist = false)
|
||||
private java.lang.String shi4Yong4Fan4Wei2Str;
|
||||
|
||||
/**状态*/
|
||||
@Excel(name = "状态", width = 15,dicCode ="state")
|
||||
@@ -97,6 +99,9 @@ public class DummyInventoryInfoEO implements Serializable {
|
||||
@Dict(dicCode ="state")
|
||||
private java.lang.String state;
|
||||
|
||||
@TableField(exist = false)
|
||||
private java.lang.String stateStr;
|
||||
|
||||
/**对应标准*/
|
||||
@Excel(name = "对应标准", width = 15)
|
||||
@ApiModelProperty(value = "对应标准")
|
||||
@@ -147,6 +152,9 @@ public class DummyInventoryInfoEO implements Serializable {
|
||||
@Dict(dicCode ="attestation_rank")
|
||||
private java.lang.String attestationRank;
|
||||
|
||||
@TableField(exist = false)
|
||||
private java.lang.String attestationRankStr;
|
||||
|
||||
/**适用增补件*/
|
||||
@ApiModelProperty(value = "适用增补件")
|
||||
@Excel(name = "适用增补件", width = 15)
|
||||
@@ -166,6 +174,9 @@ public class DummyInventoryInfoEO implements Serializable {
|
||||
@Dict(dicCode ="duty_territory")
|
||||
private java.lang.String dutyTerritory;
|
||||
|
||||
@TableField(exist = false)
|
||||
private java.lang.String dutyTerritoryStr;
|
||||
|
||||
/**备注*/
|
||||
@Excel(name = "备注", width = 15)
|
||||
@ApiModelProperty(value = "备注")
|
||||
@@ -287,6 +298,14 @@ public class DummyInventoryInfoEO implements Serializable {
|
||||
//文档库id
|
||||
private String bussDocumentLibraryId;
|
||||
|
||||
//排序(1->正序, 2->倒序)
|
||||
@TableField(exist = false)
|
||||
private String orderBy;
|
||||
|
||||
//排序字段
|
||||
@TableField(exist = false)
|
||||
private String orderByField;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
package com.jero.modules.dummy.enums;
|
||||
|
||||
/**
|
||||
* @description
|
||||
* @date 2022/1/21 15:22
|
||||
* @auth zhn
|
||||
*/
|
||||
public enum AttestationRankEnum {
|
||||
WVTA("WVTA","WVTA"),
|
||||
VTA("Com.Cert-VTA","Com.Cert-VTA"),
|
||||
MARKET("Com.Cert-Market","Com.Cert-Market"),
|
||||
REGU("Regu-Market","Regu-Market"),
|
||||
NA("NA","NA");
|
||||
|
||||
|
||||
|
||||
String name;
|
||||
String value;
|
||||
|
||||
private AttestationRankEnum(String name, String value) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
+228
-4
@@ -16,11 +16,14 @@ import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.DateUtils;
|
||||
import com.jero.common.util.oss.CosBootUtil;
|
||||
import com.jero.modules.document.entity.BussDocumentLibraryEO;
|
||||
import com.jero.modules.document.enums.LawsStateEnum;
|
||||
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.entity.DummyInventoryInfoEOEn;
|
||||
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.mapper.DummyInventoryInfoEOMapper;
|
||||
import com.jero.modules.dummy.service.IDummyInventoryInfoEOService;
|
||||
import com.jero.modules.dummy.util.DeepCopyListUtil;
|
||||
@@ -59,6 +62,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.text.Collator;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
@@ -376,16 +380,176 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
*/
|
||||
@Override
|
||||
public List<DummyInventoryInfoEO> queryList(DummyInventoryInfoEO dummyInventoryInfoEO,HttpServletRequest req) {
|
||||
// dummyInventoryInfoEO.setOrderBy("2");
|
||||
// dummyInventoryInfoEO.setOrderByField("shi4Yong4Fan4Wei2");
|
||||
String orderBy = dummyInventoryInfoEO.getOrderBy();
|
||||
String orderByField = dummyInventoryInfoEO.getOrderByField();
|
||||
|
||||
QueryWrapper<DummyInventoryInfoEO> queryWrapper = QueryGenerator.initQueryWrapper(dummyInventoryInfoEO,req.getParameterMap());
|
||||
// queryWrapper.in("dummy_inventory_base_id",dummyInventoryInfoEO.getDummyInventoryBaseId());
|
||||
queryWrapper.orderByDesc("create_time","serial_number");
|
||||
//新车型实施日期,在产车实施日期(排序)
|
||||
if("xin1_che1_xing2_shi2_shi1_ri4_qi1".equals(orderByField) || "implement_time".equals(orderByField)){
|
||||
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
|
||||
queryWrapper.orderByAsc(orderByField);
|
||||
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
|
||||
queryWrapper.orderByDesc(orderByField);
|
||||
}
|
||||
}
|
||||
if(StringUtils.isBlank(orderByField)){
|
||||
queryWrapper.orderByDesc("create_time","serial_number");
|
||||
}
|
||||
|
||||
List<DummyInventoryInfoEO> dummyInventoryInfoEOList = this.list(queryWrapper);
|
||||
//数据字典
|
||||
List<SysDictItem> sysDictItems = sysDictItemServiceImpl.selectItemsAll();
|
||||
//技术领域处理
|
||||
treeDict(dummyInventoryInfoEO, dummyInventoryInfoEOList);
|
||||
treeDict(dummyInventoryInfoEO, dummyInventoryInfoEOList,sysDictItems);
|
||||
|
||||
//表头排序
|
||||
dummyInventoryInfoEOList = hearSort(orderBy, orderByField, dummyInventoryInfoEOList);
|
||||
|
||||
|
||||
return dummyInventoryInfoEOList;
|
||||
}
|
||||
|
||||
private List<DummyInventoryInfoEO> hearSort(String orderBy, String orderByField, List<DummyInventoryInfoEO> dummyInventoryInfoEOList) {
|
||||
if(ObjectUtils.isNotEmpty(orderByField)){
|
||||
Collator comparator = Collator.getInstance(Locale.CHINESE);
|
||||
//编号
|
||||
if("serialNumber".equals(orderByField)){
|
||||
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
|
||||
Collections.sort(dummyInventoryInfoEOList,(e1, e2)->{
|
||||
return comparator.compare(e1.getSerialNumber(),e2.getSerialNumber());
|
||||
});
|
||||
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
|
||||
Collections.sort(dummyInventoryInfoEOList,(e1,e2)->{
|
||||
return comparator.compare(e2.getSerialNumber(),e1.getSerialNumber());
|
||||
});
|
||||
}
|
||||
}
|
||||
//适用范围
|
||||
if("shi4Yong4Fan4Wei2".equals(orderByField)){
|
||||
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
|
||||
Collections.sort(dummyInventoryInfoEOList,(e1, e2)->{
|
||||
return comparator.compare(e1.getShi4Yong4Fan4Wei2Str(),e2.getShi4Yong4Fan4Wei2Str());
|
||||
});
|
||||
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
|
||||
Collections.sort(dummyInventoryInfoEOList,(e1,e2)->{
|
||||
return comparator.compare(e2.getShi4Yong4Fan4Wei2Str(),e1.getShi4Yong4Fan4Wei2Str());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//WVTA ID
|
||||
if("wvtaId".equals(orderByField)){
|
||||
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
|
||||
Collections.sort(dummyInventoryInfoEOList,(e1, e2)->{
|
||||
return comparator.compare(e1.getWvtaId(),e2.getWvtaId());
|
||||
});
|
||||
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
|
||||
Collections.sort(dummyInventoryInfoEOList,(e1,e2)->{
|
||||
return comparator.compare(e2.getWvtaId(),e1.getWvtaId());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
List<DummyInventoryInfoEO> list = new LinkedList<>();
|
||||
//状态(现行,即将实施,草稿,被替代,废止)
|
||||
dummyInventoryInfoEOList = stateSort(orderBy, orderByField, dummyInventoryInfoEOList, list);
|
||||
|
||||
//认证级别(WVTA,Com.-VTA,Cert.-Market,Reg.-Market,NA)
|
||||
dummyInventoryInfoEOList = attestationRankSort(orderBy, orderByField, dummyInventoryInfoEOList, list);
|
||||
|
||||
//责任领域
|
||||
if("dutyTerritory".equals(orderByField)){
|
||||
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
|
||||
Collections.sort(dummyInventoryInfoEOList,(e1,e2)->{
|
||||
return comparator.compare(e1.getDutyTerritoryStr(),e2.getDutyTerritoryStr());
|
||||
});
|
||||
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
|
||||
Collections.sort(dummyInventoryInfoEOList,(e1,e2)->{
|
||||
return comparator.compare(e2.getDutyTerritoryStr(),e1.getDutyTerritoryStr());
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
return dummyInventoryInfoEOList;
|
||||
}
|
||||
|
||||
private List<DummyInventoryInfoEO> attestationRankSort(String orderBy, String orderByField, List<DummyInventoryInfoEO> dummyInventoryInfoEOList, List<DummyInventoryInfoEO> list) {
|
||||
if(ObjectUtils.isNotEmpty(orderByField) && "attestationRank".equals(orderByField)){
|
||||
List<DummyInventoryInfoEO> wvta = dummyInventoryInfoEOList.stream()
|
||||
.filter(e -> e.getAttestationRankStr().startsWith(AttestationRankEnum.WVTA.getValue())).collect(Collectors.toList());
|
||||
List<DummyInventoryInfoEO> vta = dummyInventoryInfoEOList.stream()
|
||||
.filter(e -> e.getAttestationRankStr().startsWith(AttestationRankEnum.VTA.getValue())).collect(Collectors.toList());
|
||||
List<DummyInventoryInfoEO> market = dummyInventoryInfoEOList.stream()
|
||||
.filter(e -> e.getAttestationRankStr().startsWith(AttestationRankEnum.MARKET.getValue())).collect(Collectors.toList());
|
||||
List<DummyInventoryInfoEO> regu = dummyInventoryInfoEOList.stream()
|
||||
.filter(e -> e.getAttestationRankStr().startsWith(AttestationRankEnum.REGU.getValue())).collect(Collectors.toList());
|
||||
List<DummyInventoryInfoEO> na = dummyInventoryInfoEOList.stream()
|
||||
.filter(e -> e.getAttestationRankStr().startsWith(AttestationRankEnum.NA.getValue())).collect(Collectors.toList());
|
||||
|
||||
|
||||
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
|
||||
//正序
|
||||
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);
|
||||
}
|
||||
}
|
||||
if(ObjectUtils.isNotEmpty(list)){
|
||||
return list;
|
||||
}else{
|
||||
return dummyInventoryInfoEOList;
|
||||
}
|
||||
}
|
||||
|
||||
private List<DummyInventoryInfoEO> stateSort(String orderBy, String orderByField, List<DummyInventoryInfoEO> dummyInventoryInfoEOList, List<DummyInventoryInfoEO> list) {
|
||||
if(ObjectUtils.isNotEmpty(orderByField) && "state".equals(orderByField)){
|
||||
List<DummyInventoryInfoEO> active = dummyInventoryInfoEOList.stream()
|
||||
.filter(e -> LawsStateEnum.ACTIVE.getName().equals(e.getStateStr())).collect(Collectors.toList());
|
||||
List<DummyInventoryInfoEO> theUpcoming = dummyInventoryInfoEOList.stream()
|
||||
.filter(e -> LawsStateEnum.THE_UPCOMING.getName().equals(e.getStateStr())).collect(Collectors.toList());
|
||||
List<DummyInventoryInfoEO> draft = dummyInventoryInfoEOList.stream()
|
||||
.filter(e -> LawsStateEnum.DRAFT.getName().equals(e.getStateStr())).collect(Collectors.toList());
|
||||
List<DummyInventoryInfoEO> beReplaced = dummyInventoryInfoEOList.stream()
|
||||
.filter(e -> LawsStateEnum.BE_REPLACED.getName().equals(e.getStateStr())).collect(Collectors.toList());
|
||||
List<DummyInventoryInfoEO> abolish = dummyInventoryInfoEOList.stream()
|
||||
.filter(e -> LawsStateEnum.ABOLISH.getName().equals(e.getStateStr())).collect(Collectors.toList());
|
||||
if ("1".equals(orderBy)) {
|
||||
//正序
|
||||
list.addAll(active);
|
||||
list.addAll(theUpcoming);
|
||||
list.addAll(draft);
|
||||
list.addAll(beReplaced);
|
||||
list.addAll(abolish);
|
||||
|
||||
} else if ("2".equals(orderBy)) {
|
||||
//倒序
|
||||
list.addAll(abolish);
|
||||
list.addAll(beReplaced);
|
||||
list.addAll(draft);
|
||||
list.addAll(theUpcoming);
|
||||
list.addAll(active);
|
||||
}
|
||||
}
|
||||
if(ObjectUtils.isNotEmpty(list)){
|
||||
return list;
|
||||
}else{
|
||||
return dummyInventoryInfoEOList;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 复制
|
||||
@@ -840,7 +1004,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
* @param dummyInventoryInfoEO
|
||||
* @param dummyInventoryInfoEOList
|
||||
*/
|
||||
private void treeDict(DummyInventoryInfoEO dummyInventoryInfoEO, List<DummyInventoryInfoEO> dummyInventoryInfoEOList) {
|
||||
private void treeDict(DummyInventoryInfoEO dummyInventoryInfoEO, List<DummyInventoryInfoEO> dummyInventoryInfoEOList,List<SysDictItem> sysDictItems) {
|
||||
|
||||
List<String> deliverableList = new ArrayList<>();
|
||||
if(dummyInventoryInfoEOList.size() != 0){
|
||||
@@ -869,6 +1033,42 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
List<SysCategory> categoryList = sysCategoryService.list();
|
||||
|
||||
for (DummyInventoryInfoEO record : dummyInventoryInfoEOList) {
|
||||
String shi4Yong4Fan4Wei2 = record.getShi4Yong4Fan4Wei2();
|
||||
String state = record.getState();
|
||||
String attestationRank = record.getAttestationRank();
|
||||
String dutyTerritory = record.getDutyTerritory();
|
||||
if(StringUtils.isBlank(record.getWvtaId())){
|
||||
record.setWvtaId("");
|
||||
}
|
||||
|
||||
//适用范围 apply_scope
|
||||
if(StringUtils.isNotBlank(shi4Yong4Fan4Wei2)){
|
||||
String applyScope = getItemText(dummyInventoryInfoEO.getCut(), sysDictItems, shi4Yong4Fan4Wei2, "apply_scope");
|
||||
record.setShi4Yong4Fan4Wei2Str(applyScope);
|
||||
}else{
|
||||
record.setShi4Yong4Fan4Wei2Str("");
|
||||
}
|
||||
//状态 state
|
||||
if(StringUtils.isNotBlank(state)){
|
||||
String stateTemp = getItemText(dummyInventoryInfoEO.getCut(), sysDictItems, state, "state");
|
||||
record.setStateStr(stateTemp);
|
||||
}else{
|
||||
record.setStateStr("");
|
||||
}
|
||||
//认证级别 attestation_rank
|
||||
if(StringUtils.isNotBlank(attestationRank)){
|
||||
String attestationRankTemp = getItemText(dummyInventoryInfoEO.getCut(), sysDictItems, attestationRank, "attestation_rank");
|
||||
record.setAttestationRankStr(attestationRankTemp);
|
||||
}else{
|
||||
record.setAttestationRankStr("");
|
||||
}
|
||||
//责任领域 duty_territory
|
||||
if(StringUtils.isNotBlank(dutyTerritory)){
|
||||
String dutyTerritoryTemp = getItemText(dummyInventoryInfoEO.getCut(), sysDictItems, dutyTerritory, "duty_territory");
|
||||
record.setDutyTerritoryStr(dutyTerritoryTemp);
|
||||
}else{
|
||||
record.setDutyTerritoryStr("");
|
||||
}
|
||||
//技术领域
|
||||
if (categoryList.size() != 0 && StringUtils.isNotBlank(record.getTechnologyTerritory())) {
|
||||
List<String> technologyTerritoryList = Arrays.asList(record.getTechnologyTerritory().split(","));
|
||||
@@ -922,6 +1122,30 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
}
|
||||
}
|
||||
|
||||
private String getItemText(String cut, List<SysDictItem> sysDictItems, String field,String dictCode) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (String s : field.split(",")) {
|
||||
List<SysDictItem> sysDictItemList = sysDictItems.stream()
|
||||
.filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals(dictCode))
|
||||
.collect(Collectors.toList());
|
||||
if(ObjectUtils.isNotEmpty(sysDictItemList)){
|
||||
List<SysDictItem> collect = sysDictItemList.stream().filter(e -> s.equals(e.getItemValue())).collect(Collectors.toList());
|
||||
if(ObjectUtils.isNotEmpty(collect)){
|
||||
if(CutEnum.CN.getValue().equals(cut)){
|
||||
sb.append(collect.get(0).getItemText());
|
||||
}else{
|
||||
sb.append(collect.get(0).getEnName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
String substring = "";
|
||||
if(StringUtils.isNotBlank(sb)){
|
||||
substring = sb.substring(0, sb.length());
|
||||
}
|
||||
return substring;
|
||||
}
|
||||
|
||||
private String getTreeName(DummyInventoryInfoEO dummyInventoryInfoEO, List<SysCategory> categoryList, List<String> technologyTerritoryList) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (String technologyTerritory : technologyTerritoryList) {
|
||||
|
||||
Reference in New Issue
Block a user