工单状态新增字段修改
This commit is contained in:
parent
15f79032c0
commit
82b8a1fe07
|
|
@ -454,10 +454,10 @@ public class QmsIssueTicketControllerService {
|
||||||
|
|
||||||
// 3. 根据审批状态分支处理
|
// 3. 根据审批状态分支处理
|
||||||
if (approvalStatus == 1) {
|
if (approvalStatus == 1) {
|
||||||
// 驳回:不创建处理记录,巡检工单直接关闭
|
// 驳回:不创建处理记录,巡检工单直接报废
|
||||||
issueTicketService.lambdaUpdate()
|
issueTicketService.lambdaUpdate()
|
||||||
.eq(QmsIssueTicket::getId, ticket.getId())
|
.eq(QmsIssueTicket::getId, ticket.getId())
|
||||||
.set(QmsIssueTicket::getStatus, (short) 3)
|
.set(QmsIssueTicket::getStatus, (short) 4)
|
||||||
.set(QmsIssueTicket::getApprovalStatus, approvalStatus)
|
.set(QmsIssueTicket::getApprovalStatus, approvalStatus)
|
||||||
.set(request.getApprovalOpinion() != null,
|
.set(request.getApprovalOpinion() != null,
|
||||||
QmsIssueTicket::getApprovalOpinion, request.getApprovalOpinion())
|
QmsIssueTicket::getApprovalOpinion, request.getApprovalOpinion())
|
||||||
|
|
@ -1304,8 +1304,14 @@ public class QmsIssueTicketControllerService {
|
||||||
.eq(QmsIssueTicket::getStatus, (short) 3)
|
.eq(QmsIssueTicket::getStatus, (short) 3)
|
||||||
.count();
|
.count();
|
||||||
|
|
||||||
// 工单总数 = 待处理 + 处理中 + 已完成 + 已关闭
|
Long scrapCount = issueTicketService.lambdaQuery()
|
||||||
long totalCount = pendingCount + processingCount + completedCount + closedCount;
|
.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);
|
pageData.setTotalCount(totalCount);
|
||||||
|
|
@ -1313,6 +1319,7 @@ public class QmsIssueTicketControllerService {
|
||||||
pageData.setProcessingCount(processingCount);
|
pageData.setProcessingCount(processingCount);
|
||||||
pageData.setCompletedCount(completedCount);
|
pageData.setCompletedCount(completedCount);
|
||||||
pageData.setClosedCount(closedCount);
|
pageData.setClosedCount(closedCount);
|
||||||
|
pageData.setScrapCount(scrapCount);
|
||||||
|
|
||||||
return pageData;
|
return pageData;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -331,7 +331,7 @@ public class QmsIssueTicketProcessControllerService {
|
||||||
|
|
||||||
issueTicketService.lambdaUpdate()
|
issueTicketService.lambdaUpdate()
|
||||||
.eq(QmsIssueTicket::getId, ticket.getId())
|
.eq(QmsIssueTicket::getId, ticket.getId())
|
||||||
.set(QmsIssueTicket::getStatus, (short) 3)
|
.set(QmsIssueTicket::getStatus, (short) 4)
|
||||||
.set(QmsIssueTicket::getApprovalStatus, (short) 1)
|
.set(QmsIssueTicket::getApprovalStatus, (short) 1)
|
||||||
.set(QmsIssueTicket::getApprovalOpinion, request.getApprovalOpinion())
|
.set(QmsIssueTicket::getApprovalOpinion, request.getApprovalOpinion())
|
||||||
.set(QmsIssueTicket::getApprovalTime, now)
|
.set(QmsIssueTicket::getApprovalTime, now)
|
||||||
|
|
|
||||||
|
|
@ -867,6 +867,8 @@ public class QmsReportControllerService {
|
||||||
vo.setUnfinishedCount(0);
|
vo.setUnfinishedCount(0);
|
||||||
vo.setPendingTransferCount(0);
|
vo.setPendingTransferCount(0);
|
||||||
vo.setProcessingCount(0);
|
vo.setProcessingCount(0);
|
||||||
|
vo.setClosedCount(0);
|
||||||
|
vo.setScrapCount(0);
|
||||||
vo.setCompletionRate(0.0);
|
vo.setCompletionRate(0.0);
|
||||||
vo.setAvgProcessingTime("0天0小时");
|
vo.setAvgProcessingTime("0天0小时");
|
||||||
vo.setStatusDistributions(buildEmptyStatusDistributions());
|
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 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 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 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;
|
int unfinishedCount = total - completedCount;
|
||||||
|
|
||||||
vo.setCompletedCount(completedCount);
|
vo.setCompletedCount(completedCount);
|
||||||
vo.setUnfinishedCount(unfinishedCount);
|
vo.setUnfinishedCount(unfinishedCount);
|
||||||
vo.setPendingTransferCount(pendingTransferCount);
|
vo.setPendingTransferCount(pendingTransferCount);
|
||||||
vo.setProcessingCount(processingCount);
|
vo.setProcessingCount(processingCount);
|
||||||
|
vo.setClosedCount(closedCount);
|
||||||
|
vo.setScrapCount(scrapCount);
|
||||||
|
|
||||||
// 3. 总体完成率
|
// 3. 总体完成率
|
||||||
vo.setCompletionRate(round2(completedCount * 100.0 / total));
|
vo.setCompletionRate(round2(completedCount * 100.0 / total));
|
||||||
|
|
@ -895,8 +901,9 @@ public class QmsReportControllerService {
|
||||||
// 4. 平均处理时长(已完成工单的 completeTime - createTime)
|
// 4. 平均处理时长(已完成工单的 completeTime - createTime)
|
||||||
vo.setAvgProcessingTime(calculateTicketAvgProcessingTime(allTickets));
|
vo.setAvgProcessingTime(calculateTicketAvgProcessingTime(allTickets));
|
||||||
|
|
||||||
// 5. 三种状态占比
|
// 5. 状态占比
|
||||||
vo.setStatusDistributions(buildStatusDistributions(total, pendingTransferCount, processingCount, completedCount));
|
vo.setStatusDistributions(buildStatusDistributions(total, pendingTransferCount, processingCount,
|
||||||
|
completedCount, closedCount, scrapCount));
|
||||||
|
|
||||||
// 6. 完成状态分布(已完成工单中各审批结果占比)
|
// 6. 完成状态分布(已完成工单中各审批结果占比)
|
||||||
vo.setCompletionStatusList(buildCompletionStatusList(allTickets, completedCount));
|
vo.setCompletionStatusList(buildCompletionStatusList(allTickets, completedCount));
|
||||||
|
|
@ -937,10 +944,10 @@ public class QmsReportControllerService {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建三种状态占比
|
* 构建状态占比
|
||||||
*/
|
*/
|
||||||
private List<QmsTicketReportVO.StatusDistribution> buildStatusDistributions(
|
private List<QmsTicketReportVO.StatusDistribution> buildStatusDistributions(
|
||||||
int total, int pendingTransfer, int processing, int completed) {
|
int total, int pendingTransfer, int processing, int completed, int closed, int scrap) {
|
||||||
List<QmsTicketReportVO.StatusDistribution> list = new ArrayList<>();
|
List<QmsTicketReportVO.StatusDistribution> list = new ArrayList<>();
|
||||||
|
|
||||||
QmsTicketReportVO.StatusDistribution d0 = new QmsTicketReportVO.StatusDistribution();
|
QmsTicketReportVO.StatusDistribution d0 = new QmsTicketReportVO.StatusDistribution();
|
||||||
|
|
@ -961,6 +968,18 @@ public class QmsReportControllerService {
|
||||||
d2.setPercentage(round2(completed * 100.0 / total));
|
d2.setPercentage(round2(completed * 100.0 / total));
|
||||||
list.add(d2);
|
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;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -968,7 +987,7 @@ public class QmsReportControllerService {
|
||||||
* 构建空状态分布
|
* 构建空状态分布
|
||||||
*/
|
*/
|
||||||
private List<QmsTicketReportVO.StatusDistribution> buildEmptyStatusDistributions() {
|
private List<QmsTicketReportVO.StatusDistribution> buildEmptyStatusDistributions() {
|
||||||
return buildStatusDistributions(1, 0, 0, 0);
|
return buildStatusDistributions(1, 0, 0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ public class QmsIssueTicketSearchQO extends PageQO {
|
||||||
private Short ticketType;
|
private Short ticketType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工单状态:0=待流转,1=处理中,2=已完成
|
* 工单状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废
|
||||||
*/
|
*/
|
||||||
private Short status;
|
private Short status;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import lombok.experimental.Accessors;
|
||||||
public class QmsIssueTicketTabletSearchQO extends PageQO {
|
public class QmsIssueTicketTabletSearchQO extends PageQO {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工单状态:0=待流转,1=处理中,2=已完成(可选)
|
* 工单状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废(可选)
|
||||||
*/
|
*/
|
||||||
private Short status;
|
private Short status;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ public class QmsPdiTaskRecordDefectSearchQO {
|
||||||
private Integer inspectionType;
|
private Integer inspectionType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工单流程状态(可选,来自qms_issue_ticket.status):0=待流转,1=处理中,2=已完成
|
* 工单流程状态(可选,来自qms_issue_ticket.status):0=待流转,1=处理中,2=已完成,3=已关闭,4=报废
|
||||||
*/
|
*/
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ public class QmsInspectionTicketDetailVO {
|
||||||
private Long directorId;
|
private Long directorId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工单状态:0=待流转,1=处理中,2=已完成
|
* 工单状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废
|
||||||
*/
|
*/
|
||||||
private Short status;
|
private Short status;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ public class QmsIssueTicketDetailVO {
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 状态:0=待流转,1=处理中,2=已完成,3=已关闭
|
* 状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废
|
||||||
*/
|
*/
|
||||||
private Short status;
|
private Short status;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,4 +35,9 @@ public class QmsIssueTicketTabletPageData extends PageData<QmsIssueTicketVO> {
|
||||||
* 已关闭数(status=3)
|
* 已关闭数(status=3)
|
||||||
*/
|
*/
|
||||||
private Long closedCount;
|
private Long closedCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 报废数(status=4)
|
||||||
|
*/
|
||||||
|
private Long scrapCount;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ public class QmsIssueTicketToDoVO {
|
||||||
private LocalDateTime completeTime;
|
private LocalDateTime completeTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 状态:0=待流转,1=处理中,2=已完成,3=已关闭
|
* 状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废
|
||||||
*/
|
*/
|
||||||
private Short status;
|
private Short status;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ public class QmsIssueTicketVO {
|
||||||
private String incidentLocation;
|
private String incidentLocation;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 状态:0=待流转,1=处理中,2=已完成,3=已关闭
|
* 状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废
|
||||||
*/
|
*/
|
||||||
private Short status;
|
private Short status;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -118,7 +118,7 @@ public class QmsPdiTaskRecordDefectPageVO {
|
||||||
private Long ticketId;
|
private Long ticketId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程状态:有工单时取工单状态(0=待流转,1=处理中,2=已完成),无工单时取任务状态(3=未发起)
|
* 流程状态:有工单时取工单状态(0=待流转,1=处理中,2=已完成,3=已关闭,4=报废),无工单时取任务状态(3=未发起)
|
||||||
*/
|
*/
|
||||||
private Short status;
|
private Short status;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ public class QmsPdiTicketDetailVO {
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工单状态:0=待流转,1=处理中,2=已完成,3=已关闭
|
* 工单状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废
|
||||||
*/
|
*/
|
||||||
private Short status;
|
private Short status;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,7 @@ public class QmsPdiTicketMyDetailVO {
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 状态:0=待流转,1=处理中,2=已完成,3=已关闭
|
* 状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废
|
||||||
*/
|
*/
|
||||||
private Short status;
|
private Short status;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ public class QmsPqcTicketMyDetailVO {
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 状态:0=待流转,1=处理中,2=已完成,3=已关闭
|
* 状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废
|
||||||
*/
|
*/
|
||||||
private Short status;
|
private Short status;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,16 @@ public class QmsTicketReportVO {
|
||||||
*/
|
*/
|
||||||
private Integer processingCount;
|
private Integer processingCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已关闭数(status=3)
|
||||||
|
*/
|
||||||
|
private Integer closedCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 报废数(status=4)
|
||||||
|
*/
|
||||||
|
private Integer scrapCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总体完成率(百分比)
|
* 总体完成率(百分比)
|
||||||
*/
|
*/
|
||||||
|
|
@ -46,7 +56,7 @@ public class QmsTicketReportVO {
|
||||||
private String avgProcessingTime;
|
private String avgProcessingTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 各状态占比列表(待流转、处理中、已完成)
|
* 各状态占比列表(待流转、处理中、已完成、已关闭、报废)
|
||||||
*/
|
*/
|
||||||
private List<StatusDistribution> statusDistributions;
|
private List<StatusDistribution> statusDistributions;
|
||||||
|
|
||||||
|
|
@ -82,7 +92,7 @@ public class QmsTicketReportVO {
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public static class StatusDistribution {
|
public static class StatusDistribution {
|
||||||
/** 状态(0=待流转,1=处理中,2=已完成) */
|
/** 状态(0=待流转,1=处理中,2=已完成,3=已关闭,4=报废) */
|
||||||
private Short status;
|
private Short status;
|
||||||
/** 状态名称 */
|
/** 状态名称 */
|
||||||
private String statusName;
|
private String statusName;
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@ public class QmsIssueTicket implements Serializable {
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 状态:0=待流转,1=处理中,2=已完成,3=已关闭
|
* 状态:0=待流转,1=处理中,2=已完成,3=已关闭,4=报废
|
||||||
*/
|
*/
|
||||||
private Short status;
|
private Short status;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue