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 74ffb267..817fbfd5 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 @@ -508,8 +508,8 @@ public class QmsIssueTicketControllerService { /** * 查询本人的PDI工单详情 - * 校验当前登录人在 qms_issue_ticket_process 中为处理人/审批人/上级领导 - * 仅返回当前登录人相关的处理记录及其措施 + * 校验当前登录人为工单创建者,或在处理记录中为处理人/审批人/上级领导 + * 工单创建者返回全部处理记录,其他人仅返回自己相关的处理记录及措施 */ public QmsPdiTicketMyDetailVO getMyPdiTicketDetail(Long id) { Long currentUserId = UserUtil.getUserId(); @@ -517,15 +517,26 @@ public class QmsIssueTicketControllerService { // 查询工单基本信息 QmsIssueTicket ticket = issueTicketService.getById(id); - // 查询当前登录人相关的处理记录(处理人ID/审批人ID/上级领导ID = 当前用户) - List processes = issueTicketProcessService.lambdaQuery() - .eq(QmsIssueTicketProcess::getIssueTicketId, id) - .and(w -> w - .eq(QmsIssueTicketProcess::getHandlerUserId, currentUserId) - .or().eq(QmsIssueTicketProcess::getApprovalUserId, currentUserId) - .or().eq(QmsIssueTicketProcess::getLeaderUserId, currentUserId) - ) - .list(); + // 判断是否为工单创建者 + boolean isCreator = ticket.getCreateUserId() != null && ticket.getCreateUserId().equals(currentUserId); + + List processes; + if (isCreator) { + // 工单创建者:返回全部处理记录 + processes = issueTicketProcessService.lambdaQuery() + .eq(QmsIssueTicketProcess::getIssueTicketId, id) + .list(); + } else { + // 非创建者:仅返回自己相关的处理记录 + processes = issueTicketProcessService.lambdaQuery() + .eq(QmsIssueTicketProcess::getIssueTicketId, id) + .and(w -> w + .eq(QmsIssueTicketProcess::getHandlerUserId, currentUserId) + .or().eq(QmsIssueTicketProcess::getApprovalUserId, currentUserId) + .or().eq(QmsIssueTicketProcess::getLeaderUserId, currentUserId) + ) + .list(); + } // 构建返回VO QmsPdiTicketMyDetailVO vo = new QmsPdiTicketMyDetailVO(); diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java index f6583045..7fbd6448 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java @@ -146,7 +146,8 @@ public class QmsPdiInspectionResultsControllerService { * 3. 检查 type=0/1/3 是否都有结果 * 4. 检查 type=2 是否都传了图片 * 5. 设置 detection_completion_time,将 overallResult 存入 task_record - * 6. 若有不合格项则以 list 返回(仅 type=0/1/3),无则返回 null + * 6. 根据整体判定+检测项结果设置状态:合格=2(已完成),不合格=3(待流转) + * 7. 若有不合格项则以 list 返回(仅 type=0/1/3),无则返回 null */ @Transactional public List submit(QmsPdiInspectionResultsSubmitQO request) { @@ -200,28 +201,31 @@ public class QmsPdiInspectionResultsControllerService { } // 4. 将整体判定结果存入 task_record + boolean overallResult = request.getOverallResult() != null && request.getOverallResult(); taskRecordService.lambdaUpdate() .eq(QmsPdiTaskRecord::getId, taskRecord.getId()) - .set(QmsPdiTaskRecord::getInspectionInspection, - request.getOverallResult() != null && request.getOverallResult()) + .set(QmsPdiTaskRecord::getInspectionInspection, overallResult) .update(); - // 5. 设置检测完成时间、是否延期、状态改为已完成 + // 5. 查询不合格检测项(type=0/1/3) + List failedItems = inspectionResultsService.lambdaQuery() + .eq(QmsPdiInspectionResults::getTaskId, request.getTaskId()) + .ne(QmsPdiInspectionResults::getInspectionItemType, 2) + .eq(QmsPdiInspectionResults::getInspectionItemResults, false) + .list(); + + // 6. 根据整体判定+检测项结果设置状态:有不合格则=3(待流转),全合格则=2(已完成) + boolean hasDefect = !overallResult || !failedItems.isEmpty(); boolean overdue = taskRecord.getRequiredCompletionTime() != null && now.isAfter(taskRecord.getRequiredCompletionTime()); taskRecordService.lambdaUpdate() .eq(QmsPdiTaskRecord::getId, taskRecord.getId()) .set(QmsPdiTaskRecord::getDetectionCompletionTime, now) .set(QmsPdiTaskRecord::getOverdue, overdue) - .set(QmsPdiTaskRecord::getInspectionEnable, 2) + .set(QmsPdiTaskRecord::getInspectionEnable, hasDefect ? 3 : 2) .update(); - // 6. 返回不合格项(只查 type=0/1/3) - List failedItems = inspectionResultsService.lambdaQuery() - .eq(QmsPdiInspectionResults::getTaskId, request.getTaskId()) - .ne(QmsPdiInspectionResults::getInspectionItemType, 2) - .eq(QmsPdiInspectionResults::getInspectionItemResults, false) - .list(); + // 7. 返回不合格项 return failedItems.isEmpty() ? null : failedItems; } @@ -248,6 +252,7 @@ public class QmsPdiInspectionResultsControllerService { vo.setInProgressCount(toInt(countMap.get("inProgressCount"))); vo.setOverdueCount(toInt(countMap.get("overdueCount"))); vo.setCompletedCount(toInt(countMap.get("completedCount"))); + vo.setPendingTransferCount(toInt(countMap.get("pendingTransferCount"))); return vo; } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiTaskRecordSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiTaskRecordSearchQO.java index 3b0a6924..3effb725 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiTaskRecordSearchQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiTaskRecordSearchQO.java @@ -30,7 +30,7 @@ public class QmsPdiTaskRecordSearchQO { private String inspectorName; /** - * 质检状态(可选):0待检查,1检验中,2已完成 + * 质检状态(可选):0待检查,1检验中,2已完成,3待流转 */ private Integer inspectionEnable; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiInspectionResultsPageVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiInspectionResultsPageVO.java index 68604063..675895bc 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiInspectionResultsPageVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiInspectionResultsPageVO.java @@ -51,7 +51,7 @@ public class QmsPdiInspectionResultsPageVO { private LocalDateTime requiredCompletionTime; /** - * 质检状态:0=待检查,1=检验中,2=已完成 + * 质检状态:0=待检查,1=检验中,2=已完成,3=待流转 */ private Integer inspectionEnable; } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskListVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskListVO.java index c591761e..6522f12f 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskListVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskListVO.java @@ -39,4 +39,9 @@ public class QmsPdiTaskListVO { * 已完成数量(inspection_enable=2) */ private int completedCount; + + /** + * 待流转数量(inspection_enable=3) + */ + private int pendingTransferCount; } 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 d547a00f..940954be 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 @@ -111,7 +111,7 @@ public class QmsPdiTaskRecordDefectPageVO { private Boolean overdue; /** - * 工单流程状态(来自qms_issue_ticket.status):0=待流转,1=处理中,2=已完成;null=未创建工单 + * 流程状态:有工单时取工单状态(0=待流转,1=处理中,2=已完成),无工单时取任务状态(2=已完成,3=待流转) */ private Short status; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordSummaryVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordSummaryVO.java index 606e6077..394503e8 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordSummaryVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordSummaryVO.java @@ -56,7 +56,7 @@ public class QmsPdiTaskRecordSummaryVO { private Integer specialItemCount; /** - * 质检状态:0=待检查,1=检验中,2=已完成 + * 质检状态:0=待检查,1=检验中,2=已完成,3=待流转 */ private Integer inspectionEnable; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsPdiTaskRecord.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsPdiTaskRecord.java index d63832b1..610c224d 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsPdiTaskRecord.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsPdiTaskRecord.java @@ -38,7 +38,7 @@ public class QmsPdiTaskRecord implements Serializable { private Long detectionRulesId; /** - * 质检状态:0为待检查,1为检验中,2为已完成 + * 质检状态:0为待检查,1为检验中,2为已完成,3为待流转 */ private Integer inspectionEnable; diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsPdiInspectionResultsMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsPdiInspectionResultsMapper.xml index caa01723..85046063 100644 --- a/nflg-wms-repository/src/main/resources/mapper/QmsPdiInspectionResultsMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/QmsPdiInspectionResultsMapper.xml @@ -71,7 +71,8 @@ COUNT(CASE WHEN t.inspection_enable = 0 THEN 1 END) AS "pendingCount", COUNT(CASE WHEN t.inspection_enable = 1 THEN 1 END) AS "inProgressCount", COUNT(CASE WHEN t.overdue = true THEN 1 END) AS "overdueCount", - COUNT(CASE WHEN t.inspection_enable = 2 THEN 1 END) AS "completedCount" + COUNT(CASE WHEN t.inspection_enable = 2 THEN 1 END) AS "completedCount", + COUNT(CASE WHEN t.inspection_enable = 3 THEN 1 END) AS "pendingTransferCount" FROM qms_pdi_task_record t LEFT JOIN qms_pdi_detection_rules r ON r.id = t.detection_rules_id diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsPdiTaskRecordMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsPdiTaskRecordMapper.xml index b4a048e6..9a5e1b4c 100644 --- a/nflg-wms-repository/src/main/resources/mapper/QmsPdiTaskRecordMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/QmsPdiTaskRecordMapper.xml @@ -51,9 +51,9 @@ AND t.warehouse_no = #{request.warehouseNo} - + AND ( - t.inspection_enable IN (0, 1) + t.inspection_enable IN (0, 1, 3) OR ( t.inspection_enable = 2 AND t.inspection_inspection = true @@ -92,7 +92,7 @@ t.required_completion_time AS requiredCompletionTime, t.detection_completion_time AS detectionCompletionTime, t.overdue, - it.status AS status, + COALESCE(it.status, t.inspection_enable) AS status, it.ticket_no AS ticketNo, it.ticket_title AS ticketTitle FROM qms_pdi_task_record t @@ -101,8 +101,8 @@ LEFT JOIN "user" ua ON ua.id = t.assistant_id LEFT JOIN qms_issue_ticket it ON it.source_type = 1 AND it.source_id = t.id - - AND t.inspection_enable = 2 + + AND t.inspection_enable IN (2, 3) AND t.inspection_inspection = false AND EXISTS ( SELECT 1 @@ -132,7 +132,7 @@ AND t.warehouse_no = #{request.warehouseNo} - AND it.status = #{request.status} + AND COALESCE(it.status, t.inspection_enable) = #{request.status} ORDER BY t.id DESC