From 82b8a1fe074a0f043d48f106b05c6895c1e16f65 Mon Sep 17 00:00:00 2001 From: yf001217 <834502597@qq.com> Date: Wed, 17 Jun 2026 09:20:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E7=8A=B6=E6=80=81=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AD=97=E6=AE=B5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QmsIssueTicketControllerService.java | 15 +++++++--- ...msIssueTicketProcessControllerService.java | 2 +- .../service/QmsReportControllerService.java | 29 +++++++++++++++---- .../pojo/qo/QmsIssueTicketSearchQO.java | 2 +- .../pojo/qo/QmsIssueTicketTabletSearchQO.java | 2 +- .../qo/QmsPdiTaskRecordDefectSearchQO.java | 2 +- .../pojo/vo/QmsInspectionTicketDetailVO.java | 2 +- .../pojo/vo/QmsIssueTicketDetailVO.java | 2 +- .../pojo/vo/QmsIssueTicketTabletPageData.java | 5 ++++ .../common/pojo/vo/QmsIssueTicketToDoVO.java | 2 +- .../wms/common/pojo/vo/QmsIssueTicketVO.java | 2 +- .../pojo/vo/QmsPdiTaskRecordDefectPageVO.java | 2 +- .../common/pojo/vo/QmsPdiTicketDetailVO.java | 2 +- .../pojo/vo/QmsPdiTicketMyDetailVO.java | 2 +- .../pojo/vo/QmsPqcTicketMyDetailVO.java | 2 +- .../wms/common/pojo/vo/QmsTicketReportVO.java | 14 +++++++-- .../wms/repository/entity/QmsIssueTicket.java | 2 +- 17 files changed, 65 insertions(+), 24 deletions(-) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java index bfc8622b..21810002 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java @@ -454,10 +454,10 @@ public class QmsIssueTicketControllerService { // 3. 根据审批状态分支处理 if (approvalStatus == 1) { - // 驳回:不创建处理记录,巡检工单直接关闭 + // 驳回:不创建处理记录,巡检工单直接报废 issueTicketService.lambdaUpdate() .eq(QmsIssueTicket::getId, ticket.getId()) - .set(QmsIssueTicket::getStatus, (short) 3) + .set(QmsIssueTicket::getStatus, (short) 4) .set(QmsIssueTicket::getApprovalStatus, approvalStatus) .set(request.getApprovalOpinion() != null, QmsIssueTicket::getApprovalOpinion, request.getApprovalOpinion()) @@ -1304,8 +1304,14 @@ public class QmsIssueTicketControllerService { .eq(QmsIssueTicket::getStatus, (short) 3) .count(); - // 工单总数 = 待处理 + 处理中 + 已完成 + 已关闭 - long totalCount = pendingCount + processingCount + completedCount + closedCount; + Long scrapCount = issueTicketService.lambdaQuery() + .eq(QmsIssueTicket::getSourceType, (short) 2) + .eq(QmsIssueTicket::getCreateUserId, currentUserId) + .eq(QmsIssueTicket::getStatus, (short) 4) + .count(); + + // 工单总数 = 待处理 + 处理中 + 已完成 + 已关闭 + 报废 + long totalCount = pendingCount + processingCount + completedCount + closedCount + scrapCount; // 设置统计字段 pageData.setTotalCount(totalCount); @@ -1313,6 +1319,7 @@ public class QmsIssueTicketControllerService { pageData.setProcessingCount(processingCount); pageData.setCompletedCount(completedCount); pageData.setClosedCount(closedCount); + pageData.setScrapCount(scrapCount); return pageData; } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java index 0237ff3e..7856fba8 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java @@ -331,7 +331,7 @@ public class QmsIssueTicketProcessControllerService { issueTicketService.lambdaUpdate() .eq(QmsIssueTicket::getId, ticket.getId()) - .set(QmsIssueTicket::getStatus, (short) 3) + .set(QmsIssueTicket::getStatus, (short) 4) .set(QmsIssueTicket::getApprovalStatus, (short) 1) .set(QmsIssueTicket::getApprovalOpinion, request.getApprovalOpinion()) .set(QmsIssueTicket::getApprovalTime, now) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsReportControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsReportControllerService.java index 1332f203..4f0732b9 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsReportControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsReportControllerService.java @@ -867,6 +867,8 @@ public class QmsReportControllerService { vo.setUnfinishedCount(0); vo.setPendingTransferCount(0); vo.setProcessingCount(0); + vo.setClosedCount(0); + vo.setScrapCount(0); vo.setCompletionRate(0.0); vo.setAvgProcessingTime("0天0小时"); vo.setStatusDistributions(buildEmptyStatusDistributions()); @@ -882,12 +884,16 @@ public class QmsReportControllerService { int completedCount = (int) allTickets.stream().filter(t -> t.getStatus() != null && t.getStatus() == 2).count(); int pendingTransferCount = (int) allTickets.stream().filter(t -> t.getStatus() != null && t.getStatus() == 0).count(); int processingCount = (int) allTickets.stream().filter(t -> t.getStatus() != null && t.getStatus() == 1).count(); + int closedCount = (int) allTickets.stream().filter(t -> t.getStatus() != null && t.getStatus() == 3).count(); + int scrapCount = (int) allTickets.stream().filter(t -> t.getStatus() != null && t.getStatus() == 4).count(); int unfinishedCount = total - completedCount; vo.setCompletedCount(completedCount); vo.setUnfinishedCount(unfinishedCount); vo.setPendingTransferCount(pendingTransferCount); vo.setProcessingCount(processingCount); + vo.setClosedCount(closedCount); + vo.setScrapCount(scrapCount); // 3. 总体完成率 vo.setCompletionRate(round2(completedCount * 100.0 / total)); @@ -895,8 +901,9 @@ public class QmsReportControllerService { // 4. 平均处理时长(已完成工单的 completeTime - createTime) vo.setAvgProcessingTime(calculateTicketAvgProcessingTime(allTickets)); - // 5. 三种状态占比 - vo.setStatusDistributions(buildStatusDistributions(total, pendingTransferCount, processingCount, completedCount)); + // 5. 状态占比 + vo.setStatusDistributions(buildStatusDistributions(total, pendingTransferCount, processingCount, + completedCount, closedCount, scrapCount)); // 6. 完成状态分布(已完成工单中各审批结果占比) vo.setCompletionStatusList(buildCompletionStatusList(allTickets, completedCount)); @@ -937,10 +944,10 @@ public class QmsReportControllerService { } /** - * 构建三种状态占比 + * 构建状态占比 */ private List buildStatusDistributions( - int total, int pendingTransfer, int processing, int completed) { + int total, int pendingTransfer, int processing, int completed, int closed, int scrap) { List list = new ArrayList<>(); QmsTicketReportVO.StatusDistribution d0 = new QmsTicketReportVO.StatusDistribution(); @@ -961,6 +968,18 @@ public class QmsReportControllerService { d2.setPercentage(round2(completed * 100.0 / total)); list.add(d2); + QmsTicketReportVO.StatusDistribution d3 = new QmsTicketReportVO.StatusDistribution(); + d3.setStatus((short) 3); + d3.setStatusName("已关闭"); + d3.setPercentage(round2(closed * 100.0 / total)); + list.add(d3); + + QmsTicketReportVO.StatusDistribution d4 = new QmsTicketReportVO.StatusDistribution(); + d4.setStatus((short) 4); + d4.setStatusName("报废"); + d4.setPercentage(round2(scrap * 100.0 / total)); + list.add(d4); + return list; } @@ -968,7 +987,7 @@ public class QmsReportControllerService { * 构建空状态分布 */ private List buildEmptyStatusDistributions() { - return buildStatusDistributions(1, 0, 0, 0); + return buildStatusDistributions(1, 0, 0, 0, 0, 0); } /** diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketSearchQO.java index 775db3fc..f6d26dad 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketSearchQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketSearchQO.java @@ -38,7 +38,7 @@ public class QmsIssueTicketSearchQO extends PageQO { private Short ticketType; /** - * 工单状态:0=待流转,1=处理中,2=已完成 + * 工单状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废 */ private Short status; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketTabletSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketTabletSearchQO.java index 1902deaf..c9c2eb88 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketTabletSearchQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketTabletSearchQO.java @@ -13,7 +13,7 @@ import lombok.experimental.Accessors; public class QmsIssueTicketTabletSearchQO extends PageQO { /** - * 工单状态:0=待流转,1=处理中,2=已完成(可选) + * 工单状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废(可选) */ private Short status; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiTaskRecordDefectSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiTaskRecordDefectSearchQO.java index ff526c7f..27c99585 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiTaskRecordDefectSearchQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiTaskRecordDefectSearchQO.java @@ -44,7 +44,7 @@ public class QmsPdiTaskRecordDefectSearchQO { private Integer inspectionType; /** - * 工单流程状态(可选,来自qms_issue_ticket.status):0=待流转,1=处理中,2=已完成 + * 工单流程状态(可选,来自qms_issue_ticket.status):0=待流转,1=处理中,2=已完成,3=已关闭,4=报废 */ private Integer status; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionTicketDetailVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionTicketDetailVO.java index 8272e742..5d9fecd5 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionTicketDetailVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionTicketDetailVO.java @@ -78,7 +78,7 @@ public class QmsInspectionTicketDetailVO { private Long directorId; /** - * 工单状态:0=待流转,1=处理中,2=已完成 + * 工单状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废 */ private Short status; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketDetailVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketDetailVO.java index f2e351d6..3fbaa667 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketDetailVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketDetailVO.java @@ -84,7 +84,7 @@ public class QmsIssueTicketDetailVO { private String remark; /** - * 状态:0=待流转,1=处理中,2=已完成,3=已关闭 + * 状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废 */ private Short status; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketTabletPageData.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketTabletPageData.java index a3da57f9..631c1e78 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketTabletPageData.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketTabletPageData.java @@ -35,4 +35,9 @@ public class QmsIssueTicketTabletPageData extends PageData { * 已关闭数(status=3) */ private Long closedCount; + + /** + * 报废数(status=4) + */ + private Long scrapCount; } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketToDoVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketToDoVO.java index 39754cbc..cfb12449 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketToDoVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketToDoVO.java @@ -53,7 +53,7 @@ public class QmsIssueTicketToDoVO { private LocalDateTime completeTime; /** - * 状态:0=待流转,1=处理中,2=已完成,3=已关闭 + * 状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废 */ private Short status; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketVO.java index 92cb6f0d..40fba4ed 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketVO.java @@ -79,7 +79,7 @@ public class QmsIssueTicketVO { private String incidentLocation; /** - * 状态:0=待流转,1=处理中,2=已完成,3=已关闭 + * 状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废 */ private Short status; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDefectPageVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDefectPageVO.java index 3790d879..0e757f90 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDefectPageVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDefectPageVO.java @@ -118,7 +118,7 @@ public class QmsPdiTaskRecordDefectPageVO { private Long ticketId; /** - * 流程状态:有工单时取工单状态(0=待流转,1=处理中,2=已完成),无工单时取任务状态(3=未发起) + * 流程状态:有工单时取工单状态(0=待流转,1=处理中,2=已完成,3=已关闭,4=报废),无工单时取任务状态(3=未发起) */ private Short status; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTicketDetailVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTicketDetailVO.java index 21377431..8faed754 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTicketDetailVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTicketDetailVO.java @@ -54,7 +54,7 @@ public class QmsPdiTicketDetailVO { private LocalDateTime createTime; /** - * 工单状态:0=待流转,1=处理中,2=已完成,3=已关闭 + * 工单状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废 */ private Short status; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTicketMyDetailVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTicketMyDetailVO.java index 79256d42..2ec76064 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTicketMyDetailVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTicketMyDetailVO.java @@ -108,7 +108,7 @@ public class QmsPdiTicketMyDetailVO { private String remark; /** - * 状态:0=待流转,1=处理中,2=已完成,3=已关闭 + * 状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废 */ private Short status; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcTicketMyDetailVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcTicketMyDetailVO.java index bfb58a01..bb888aa7 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcTicketMyDetailVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcTicketMyDetailVO.java @@ -104,7 +104,7 @@ public class QmsPqcTicketMyDetailVO { private String remark; /** - * 状态:0=待流转,1=处理中,2=已完成,3=已关闭 + * 状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废 */ private Short status; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsTicketReportVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsTicketReportVO.java index 3d30aa8f..f545d35c 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsTicketReportVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsTicketReportVO.java @@ -35,6 +35,16 @@ public class QmsTicketReportVO { */ private Integer processingCount; + /** + * 已关闭数(status=3) + */ + private Integer closedCount; + + /** + * 报废数(status=4) + */ + private Integer scrapCount; + /** * 总体完成率(百分比) */ @@ -46,7 +56,7 @@ public class QmsTicketReportVO { private String avgProcessingTime; /** - * 各状态占比列表(待流转、处理中、已完成) + * 各状态占比列表(待流转、处理中、已完成、已关闭、报废) */ private List statusDistributions; @@ -82,7 +92,7 @@ public class QmsTicketReportVO { */ @Data public static class StatusDistribution { - /** 状态(0=待流转,1=处理中,2=已完成) */ + /** 状态(0=待流转,1=处理中,2=已完成,3=已关闭,4=报废) */ private Short status; /** 状态名称 */ private String statusName; diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIssueTicket.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIssueTicket.java index 8768008e..1844d44f 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIssueTicket.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIssueTicket.java @@ -105,7 +105,7 @@ public class QmsIssueTicket implements Serializable { private String remark; /** - * 状态:0=待流转,1=处理中,2=已完成,3=已关闭 + * 状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废 */ private Short status;