任务清单-表头排序

This commit is contained in:
zhn
2022-12-16 17:01:11 +08:00
parent 32d722101a
commit e817fa1567
3 changed files with 342 additions and 0 deletions
@@ -120,6 +120,8 @@ public class ProjectTaskInventoryEO implements Serializable {
@ApiModelProperty(value = "认证进度")
@Dict(dicCode = "certification_progress")
private String certificationProgress;
@TableField(exist = false)
private String certificationProgressName;
/**认证进度备注*/
@Excel(name = "认证进度备注", width = 15)
@@ -150,6 +152,8 @@ public class ProjectTaskInventoryEO implements Serializable {
@Dict(dicCode ="duty_territory")
@Excel(name = "责任领域", width = 20)
private String dutyTerritory;
@TableField(exist = false)
private String dutyTerritoryName;
/**设计符合性 待办id**/
@TableField(exist = false)
@@ -337,4 +341,12 @@ public class ProjectTaskInventoryEO implements Serializable {
@TableField(exist = false)
private String prehomoDutyId;
//排序(1->正序, 2->倒序)
@TableField(exist = false)
private String orderBy;
//排序字段
@TableField(exist = false)
private String orderByField;
}
@@ -0,0 +1,48 @@
package com.jero.modules.project.enums;
/**
* 当前状态枚举类
*/
public enum ColourEnum {
RED("红色","1"), // 未完成
YELLOW("黄色","2"), // 已完成
GREEN("绿色","3"), // 展示数据
BLUE("蓝色","4") // 展示数据
;
String name;
String value;
private ColourEnum(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;
}
public static String getTextByValue(String value) {
ColourEnum[] values = values();
for (ColourEnum taskStatusEnum : values) {
if (taskStatusEnum.value.equals(value)) {
return taskStatusEnum.name;
}
}
return null;
}
}
@@ -14,6 +14,7 @@ import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.feishu.vo.FeishuMsg2Vo;
import com.jero.modules.feishu.vo.FeishuMsgVo;
@@ -51,6 +52,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.text.Collator;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -289,9 +291,263 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
).collect(Collectors.toList());
disposeData(result,projectTaskInventoryEO.getCut());
}
result = hearSort(projectTaskInventoryEO, result);
return result;
}
private List<ProjectTaskInventoryEO> hearSort(ProjectTaskInventoryEO projectTaskInventoryEO, List<ProjectTaskInventoryEO> result) {
//标准信息 serialNumber
// String orderBy = "1";
// String orderByField = "projectStatusAssess";
String orderBy = projectTaskInventoryEO.getOrderBy();
String orderByField = projectTaskInventoryEO.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());
});
}
}
// 责任领域 dutyTerritoryName
if("dutyTerritory".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(result,(e1, e2)->{
return comparator.compare(e1.getDutyTerritoryName(),e2.getDutyTerritoryName());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(result,(e1,e2)->{
return comparator.compare(e2.getDutyTerritoryName(),e1.getDutyTerritoryName());
});
}
}
// 认证进度 certificationProgressName
if("certificationProgressName".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(result,(e1, e2)->{
return comparator.compare(e1.getCertificationProgressName(),e2.getCertificationProgressName());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(result,(e1,e2)->{
return comparator.compare(e2.getCertificationProgressName(),e1.getCertificationProgressName());
});
}
}
List<ProjectTaskInventoryEO> list = new LinkedList<>();
// 设计符合性确认 designFlowTaskStatus ReviewResultEnum
result = designSort(result, orderBy, orderByField, list);
// Pre-Homo确认 prehomoFlowTaskStatus ReviewResultEnum
result = preSort(result, orderBy, orderByField, list);
// 验证符合性确认 verifyFlowTaskStatus ReviewResultEnum
result = verifySort(result, orderBy, orderByField, list);
// 当前状态 projectStatusAssess
result = colourSort(result, orderBy, orderByField, list);
}
return result;
}
private List<ProjectTaskInventoryEO> designSort(List<ProjectTaskInventoryEO> result,
String orderBy,
String orderByField,
List<ProjectTaskInventoryEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "designFlowTaskStatus".equals(orderByField)){
List<ProjectTaskInventoryEO> conformity = result.stream()
.filter(e -> ReviewResultEnum.CONFORMITY.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> inconformity = result.stream()
.filter(e -> ReviewResultEnum.INCONFORMITY.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> toTrack = result.stream()
.filter(e -> ReviewResultEnum.TO_TRACK.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> uninvolved = result.stream()
.filter(e -> ReviewResultEnum.UNINVOLVED.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> toBeConfirmed = result.stream()
.filter(e -> ReviewResultEnum.TO_BE_CONFIRMED.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> terminationOfTask = result.stream()
.filter(e -> ReviewResultEnum.TERMINATION_OF_TASK.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
//正序
//状态为空的
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
list.addAll(collect);
list.addAll(toBeConfirmed);
list.addAll(conformity);
list.addAll(inconformity);
list.addAll(toTrack);
list.addAll(uninvolved);
list.addAll(terminationOfTask);
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
//倒序
list.addAll(terminationOfTask);
list.addAll(uninvolved);
list.addAll(toTrack);
list.addAll(inconformity);
list.addAll(conformity);
list.addAll(toBeConfirmed);
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
list.addAll(collect);
}
}
if(ObjectUtils.isEmpty(list)){
return result;
}else{
return list;
}
}
private List<ProjectTaskInventoryEO> preSort(List<ProjectTaskInventoryEO> result,
String orderBy,
String orderByField,
List<ProjectTaskInventoryEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "prehomoFlowTaskStatus".equals(orderByField)){
List<ProjectTaskInventoryEO> conformity = result.stream()
.filter(e -> ReviewResultEnum.CONFORMITY.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> inconformity = result.stream()
.filter(e -> ReviewResultEnum.INCONFORMITY.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> toTrack = result.stream()
.filter(e -> ReviewResultEnum.TO_TRACK.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> uninvolved = result.stream()
.filter(e -> ReviewResultEnum.UNINVOLVED.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> toBeConfirmed = result.stream()
.filter(e -> ReviewResultEnum.TO_BE_CONFIRMED.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> terminationOfTask = result.stream()
.filter(e -> ReviewResultEnum.TERMINATION_OF_TASK.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
//正序
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
list.addAll(collect);
list.addAll(toBeConfirmed);
list.addAll(conformity);
list.addAll(inconformity);
list.addAll(toTrack);
list.addAll(uninvolved);
list.addAll(terminationOfTask);
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
//倒序
list.addAll(terminationOfTask);
list.addAll(uninvolved);
list.addAll(toTrack);
list.addAll(inconformity);
list.addAll(conformity);
list.addAll(toBeConfirmed);
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
list.addAll(collect);
}
}
if(ObjectUtils.isEmpty(list)){
return result;
}else{
return list;
}
}
private List<ProjectTaskInventoryEO> verifySort(List<ProjectTaskInventoryEO> result,
String orderBy,
String orderByField,
List<ProjectTaskInventoryEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "verifyFlowTaskStatus".equals(orderByField)){
List<ProjectTaskInventoryEO> conformity = result.stream()
.filter(e -> ReviewResultEnum.CONFORMITY.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> inconformity = result.stream()
.filter(e -> ReviewResultEnum.INCONFORMITY.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> toTrack = result.stream()
.filter(e -> ReviewResultEnum.TO_TRACK.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> uninvolved = result.stream()
.filter(e -> ReviewResultEnum.UNINVOLVED.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> toBeConfirmed = result.stream()
.filter(e -> ReviewResultEnum.TO_BE_CONFIRMED.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> terminationOfTask = result.stream()
.filter(e -> ReviewResultEnum.TERMINATION_OF_TASK.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
//正序
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
list.addAll(collect);
list.addAll(toBeConfirmed);
list.addAll(conformity);
list.addAll(inconformity);
list.addAll(toTrack);
list.addAll(uninvolved);
list.addAll(terminationOfTask);
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
//倒序
list.addAll(terminationOfTask);
list.addAll(uninvolved);
list.addAll(toTrack);
list.addAll(inconformity);
list.addAll(conformity);
list.addAll(toBeConfirmed);
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
list.addAll(collect);
}
}
if(ObjectUtils.isEmpty(list)){
return result;
}else{
return list;
}
}
private List<ProjectTaskInventoryEO> colourSort(List<ProjectTaskInventoryEO> result,
String orderBy,
String orderByField,
List<ProjectTaskInventoryEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "projectStatusAssess".equals(orderByField)){
List<ProjectTaskInventoryEO> red = result.stream()
.filter(e -> e.getProjectStatusAssess().equals(ColourEnum.RED.getValue())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> yellow = result.stream()
.filter(e -> e.getProjectStatusAssess().equals(ColourEnum.YELLOW.getValue())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> green = result.stream()
.filter(e -> e.getProjectStatusAssess().equals(ColourEnum.GREEN.getValue())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> blue = result.stream()
.filter(e -> e.getProjectStatusAssess().equals(ColourEnum.BLUE.getValue())).collect(Collectors.toList());
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
//正序
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getProjectStatusAssess())).collect(Collectors.toList());
list.addAll(collect);
list.addAll(green);
list.addAll(yellow);
list.addAll(red);
list.addAll(blue);
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
//倒序
list.addAll(blue);
list.addAll(red);
list.addAll(yellow);
list.addAll(green);
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getProjectStatusAssess())).collect(Collectors.toList());
list.addAll(collect);
}
}
if(ObjectUtils.isEmpty(list)){
return result;
}else{
return list;
}
}
@Override
public Result<?> processCall(JSONObject jsonObject) {
String requestSource = jsonObject.getString("requestSource");
@@ -1341,7 +1597,33 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
*/
public void disposeData(List<ProjectTaskInventoryEO> result,String cut){
if(CollectionUtils.isNotEmpty(result)){
List<SysDictItem> dictItemList = sysDictItemServiceImpl.selectItemsByDictCode("duty_territory");
List<SysDictItem> certificationProgress = sysDictItemServiceImpl.selectItemsByDictCode("certification_progress");
for (ProjectTaskInventoryEO projectTaskInventoryEO : result) {
//责任领域
if(StringUtils.isNotEmpty(projectTaskInventoryEO.getDutyTerritory())){
List<SysDictItem> collect = dictItemList.stream()
.filter(dict -> StringUtils.equals(dict.getItemValue(), projectTaskInventoryEO.getDutyTerritory())).collect(Collectors.toList());
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
projectTaskInventoryEO.setDutyTerritoryName(collect.get(0).getItemText());
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
projectTaskInventoryEO.setDutyTerritoryName(collect.get(0).getEnName());
}
}else{
projectTaskInventoryEO.setDutyTerritoryName("");
}
//认证进度 certificationProgress
if(StringUtils.isNotEmpty(projectTaskInventoryEO.getCertificationProgress())){
List<SysDictItem> collect = certificationProgress.stream()
.filter(dict -> StringUtils.equals(dict.getItemValue(), projectTaskInventoryEO.getCertificationProgress())).collect(Collectors.toList());
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
projectTaskInventoryEO.setCertificationProgressName(collect.get(0).getItemText());
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
projectTaskInventoryEO.setCertificationProgressName(collect.get(0).getEnName());
}
}else{
projectTaskInventoryEO.setCertificationProgressName("");
}
if(StringUtils.isNotEmpty(projectTaskInventoryEO.getDesignStatus())){
String textByValue = DesignComplianceStatusEnum.getTextByValue(projectTaskInventoryEO.getDesignStatus(), cut);
projectTaskInventoryEO.setDesignStatus(textByValue);