From e817fa156776c9ae9ab086ebc417dab7f2189a93 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Fri, 16 Dec 2022 17:01:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=B8=85=E5=8D=95-=E8=A1=A8?= =?UTF-8?q?=E5=A4=B4=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/ProjectTaskInventoryEO.java | 12 + .../modules/project/enums/ColourEnum.java | 48 +++ .../ProjectTaskInventoryEOServiceImpl.java | 282 ++++++++++++++++++ 3 files changed, 342 insertions(+) create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ColourEnum.java diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryEO.java index 37aef3e07..55fc88a64 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryEO.java @@ -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; + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ColourEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ColourEnum.java new file mode 100644 index 000000000..3261a49a9 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ColourEnum.java @@ -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; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java index 40625b660..e6cb3cdfc 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java @@ -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 hearSort(ProjectTaskInventoryEO projectTaskInventoryEO, List 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 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 designSort(List result, + String orderBy, + String orderByField, + List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "designFlowTaskStatus".equals(orderByField)){ + List conformity = result.stream() + .filter(e -> ReviewResultEnum.CONFORMITY.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList()); + List inconformity = result.stream() + .filter(e -> ReviewResultEnum.INCONFORMITY.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList()); + List toTrack = result.stream() + .filter(e -> ReviewResultEnum.TO_TRACK.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList()); + List uninvolved = result.stream() + .filter(e -> ReviewResultEnum.UNINVOLVED.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList()); + List toBeConfirmed = result.stream() + .filter(e -> ReviewResultEnum.TO_BE_CONFIRMED.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList()); + List terminationOfTask = result.stream() + .filter(e -> ReviewResultEnum.TERMINATION_OF_TASK.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList()); + + if (OrderEnum.POSITIVE.getValue().equals(orderBy)) { + //正序 + //状态为空的 + List 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 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 preSort(List result, + String orderBy, + String orderByField, + List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "prehomoFlowTaskStatus".equals(orderByField)){ + List conformity = result.stream() + .filter(e -> ReviewResultEnum.CONFORMITY.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList()); + List inconformity = result.stream() + .filter(e -> ReviewResultEnum.INCONFORMITY.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList()); + List toTrack = result.stream() + .filter(e -> ReviewResultEnum.TO_TRACK.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList()); + List uninvolved = result.stream() + .filter(e -> ReviewResultEnum.UNINVOLVED.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList()); + List toBeConfirmed = result.stream() + .filter(e -> ReviewResultEnum.TO_BE_CONFIRMED.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList()); + List terminationOfTask = result.stream() + .filter(e -> ReviewResultEnum.TERMINATION_OF_TASK.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList()); + + if (OrderEnum.POSITIVE.getValue().equals(orderBy)) { + //正序 + List 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 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 verifySort(List result, + String orderBy, + String orderByField, + List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "verifyFlowTaskStatus".equals(orderByField)){ + List conformity = result.stream() + .filter(e -> ReviewResultEnum.CONFORMITY.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList()); + List inconformity = result.stream() + .filter(e -> ReviewResultEnum.INCONFORMITY.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList()); + List toTrack = result.stream() + .filter(e -> ReviewResultEnum.TO_TRACK.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList()); + List uninvolved = result.stream() + .filter(e -> ReviewResultEnum.UNINVOLVED.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList()); + List toBeConfirmed = result.stream() + .filter(e -> ReviewResultEnum.TO_BE_CONFIRMED.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList()); + List terminationOfTask = result.stream() + .filter(e -> ReviewResultEnum.TERMINATION_OF_TASK.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList()); + + if (OrderEnum.POSITIVE.getValue().equals(orderBy)) { + //正序 + List 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 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 colourSort(List result, + String orderBy, + String orderByField, + List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "projectStatusAssess".equals(orderByField)){ + List red = result.stream() + .filter(e -> e.getProjectStatusAssess().equals(ColourEnum.RED.getValue())).collect(Collectors.toList()); + List yellow = result.stream() + .filter(e -> e.getProjectStatusAssess().equals(ColourEnum.YELLOW.getValue())).collect(Collectors.toList()); + List green = result.stream() + .filter(e -> e.getProjectStatusAssess().equals(ColourEnum.GREEN.getValue())).collect(Collectors.toList()); + List blue = result.stream() + .filter(e -> e.getProjectStatusAssess().equals(ColourEnum.BLUE.getValue())).collect(Collectors.toList()); + + if (OrderEnum.POSITIVE.getValue().equals(orderBy)) { + //正序 + List 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 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 result,String cut){ if(CollectionUtils.isNotEmpty(result)){ + List dictItemList = sysDictItemServiceImpl.selectItemsByDictCode("duty_territory"); + List certificationProgress = sysDictItemServiceImpl.selectItemsByDictCode("certification_progress"); for (ProjectTaskInventoryEO projectTaskInventoryEO : result) { + //责任领域 + if(StringUtils.isNotEmpty(projectTaskInventoryEO.getDutyTerritory())){ + List 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 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);