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 11ae5675..6a40be15 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.wms.common.constant.Constant; import com.nflg.wms.common.constant.STATE; import com.nflg.wms.common.exception.NflgException; +import com.nflg.wms.common.pojo.qo.PdiInspectionTaskCallbackQO; import com.nflg.wms.common.pojo.qo.*; import com.nflg.wms.common.pojo.vo.*; import com.nflg.wms.common.util.UserUtil; @@ -15,6 +16,7 @@ import com.nflg.wms.common.util.VUtil; import com.nflg.wms.repository.entity.*; import com.nflg.wms.repository.service.*; import jakarta.annotation.Resource; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import jakarta.validation.Valid; import org.springframework.stereotype.Component; @@ -59,9 +61,6 @@ public class QmsIssueTicketControllerService { @Resource private IDictionaryItemService dictionaryItemService; - @Resource - private QmsIssueTicketProcessControllerService issueTicketProcessControllerService; - @Resource private IQmsPdiTaskRecordService pdiTaskRecordService; @@ -80,8 +79,11 @@ public class QmsIssueTicketControllerService { @Resource private WmsIncomingInspectionTaskCallbackService wmsIncomingInspectionTaskCallbackService; + @Value("${wms.pdi.callback.url}") + private String pdiUrl; + @Resource - private WmsPdiInspectionTaskCallbackService wmsPdiInspectionTaskCallbackService; + private WmsApiService wmsApiService; @Resource private IRoleService roleService; @@ -1296,11 +1298,11 @@ public class QmsIssueTicketControllerService { )); for (Map.Entry> entry : handlerToResultsMap.entrySet()) { - issueTicketProcessControllerService.addAsync( + + addIssueTicketProcessAndTodo( entity.getId(), entry.getKey(), - entry.getValue(), - ticketNo + entry.getValue() ); } } @@ -1408,15 +1410,35 @@ public class QmsIssueTicketControllerService { if (filteredTaskResultIds.isEmpty()) { continue; } - issueTicketProcessControllerService.addAsync( + addIssueTicketProcessAndTodo( entity.getId(), entry.getKey(), - filteredTaskResultIds, - ticketNo + filteredTaskResultIds ); } } + private void addIssueTicketProcessAndTodo(Long issueTicketId, Long handlerUserId, List taskResultIds) { + User user = userService.getById(handlerUserId); + if (user == null) { + throw new NflgException(STATE.BusinessError, "处理人用户不存在"); + } + + QmsIssueTicketProcess process = new QmsIssueTicketProcess() + .setIssueTicketId(issueTicketId) + .setHandlerUserId(handlerUserId) + .setHandlerUserName(user.getUserName()) + .setTaskResultIds(taskResultIds.stream() + .map(String::valueOf) + .collect(Collectors.joining(","))); + issueTicketProcessService.save(process); + + QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo() + .setTicketId(issueTicketId) + .setHandlerUserId(handlerUserId); + issueTicketToDoService.save(todoItem); + } + /** * 通过来料检测任务ID发起IQC检测任务类型质量问题工单 * 工单编号自动生成,来源类型固定为0(IQC检测任务),状态默认为0(待流转) @@ -1507,6 +1529,23 @@ public class QmsIssueTicketControllerService { return StrUtil.join("-", args); } + private void callbackPdiInspectionTask(QmsPdiTaskRecord taskRecord, Boolean pass) { + PdiInspectionTaskCallbackQO qo = new PdiInspectionTaskCallbackQO() + .setOrderNo(taskRecord.getOrderNo()) + .setModelNo(getPdiModelNo(taskRecord)) + .setDeviceNo(taskRecord.getDeviceNo()) + .setPass(Boolean.TRUE.equals(pass)); + wmsApiService.post(pdiUrl, qo, "PDI任务回调WMS"); + } + + private String getPdiModelNo(QmsPdiTaskRecord taskRecord) { + if (taskRecord.getDetectionRulesId() == null) { + return null; + } + QmsPdiDetectionRules rules = pdiDetectionRulesService.getById(taskRecord.getDetectionRulesId()); + return rules == null ? null : rules.getModelNo(); + } + private String buildPqcIncidentDescription(List detailList) { if (CollectionUtil.isEmpty(detailList)) { return ""; @@ -3221,7 +3260,7 @@ public class QmsIssueTicketControllerService { if (ticket.getSourceType() != null && ticket.getSourceType() == 1 && ticket.getSourceId() != null) { QmsPdiTaskRecord originalTask = createPdiRepairTask(ticket.getSourceId(), now); if (originalTask != null) { - wmsPdiInspectionTaskCallbackService.callBack(originalTask, true); + callbackPdiInspectionTask(originalTask, true); } }