新建工单功能添加
This commit is contained in:
parent
7cf102fa19
commit
2dceac7fdd
|
|
@ -57,6 +57,15 @@ public class QmsIssueTicketControllerService {
|
|||
@Resource
|
||||
private QmsIssueTicketProcessControllerService issueTicketProcessControllerService;
|
||||
|
||||
@Resource
|
||||
private IQmsPdiTaskRecordService pdiTaskRecordService;
|
||||
|
||||
@Resource
|
||||
private IQmsPdiDetectionRulesService pdiDetectionRulesService;
|
||||
|
||||
@Resource
|
||||
private IQmsPdiInspectionResultsService pdiInspectionResultsService;
|
||||
|
||||
@Resource
|
||||
private WmsIncomingInspectionTaskCallbackService wmsIncomingInspectionTaskCallbackService;
|
||||
|
||||
|
|
@ -146,6 +155,36 @@ public class QmsIssueTicketControllerService {
|
|||
String userName = UserUtil.getUserName();
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
|
||||
// 查询任务记录
|
||||
QmsPdiTaskRecord taskRecord = pdiTaskRecordService.getById(request.getTaskRecordId());
|
||||
if (Objects.isNull(taskRecord)) {
|
||||
throw new NflgException(STATE.BusinessError, "PDI检测任务记录不存在");
|
||||
}
|
||||
|
||||
// 查询检测规则
|
||||
QmsPdiDetectionRules rules = pdiDetectionRulesService.getById(taskRecord.getDetectionRulesId());
|
||||
if (Objects.isNull(rules)) {
|
||||
throw new NflgException(STATE.BusinessError, "PDI检测规则不存在");
|
||||
}
|
||||
|
||||
// 根据 inspectionType 生成工单标题
|
||||
String ticketTitle;
|
||||
if (Objects.equals(rules.getInspectionType(), 0)) {
|
||||
// 新品:机型编号-机台号-订单编号-出厂检验-检测版本号
|
||||
ticketTitle = StrUtil.join("-", rules.getMachineNo(), taskRecord.getDeviceNo(),
|
||||
taskRecord.getOrderNo(), "出厂检验", rules.getInspectionVersion());
|
||||
} else {
|
||||
// 库存:机型编号-订单编号-库存检验-检测版本号
|
||||
ticketTitle = StrUtil.join("-", rules.getMachineNo(),
|
||||
taskRecord.getOrderNo(), "库存检验", rules.getInspectionVersion());
|
||||
}
|
||||
|
||||
// 统计不合格检测项数量
|
||||
long unqualifiedCount = pdiInspectionResultsService.lambdaQuery()
|
||||
.eq(QmsPdiInspectionResults::getTaskId, request.getTaskRecordId())
|
||||
.eq(QmsPdiInspectionResults::getInspectionItemResults, false)
|
||||
.count();
|
||||
|
||||
// 自动生成工单编号
|
||||
String ticketNo = basdeSerialNumberControllerService.generateSerialNumber(38);
|
||||
|
||||
|
|
@ -153,6 +192,12 @@ public class QmsIssueTicketControllerService {
|
|||
.setSourceType((short) 1)
|
||||
.setSourceId(request.getTaskRecordId())
|
||||
.setTicketNo(ticketNo)
|
||||
.setTicketTitle(ticketTitle)
|
||||
.setProjectNo(taskRecord.getTaskNo())
|
||||
.setIncidentType(request.getIncidentType())
|
||||
.setIncidentDescription(request.getIncidentDescription())
|
||||
.setUnqualifiedQty((int) unqualifiedCount)
|
||||
.setApprovalStatus((short) 0)
|
||||
.setStatus((short) 0)
|
||||
.setCreateUserId(userId)
|
||||
.setCreateUserName(userName)
|
||||
|
|
@ -169,6 +214,20 @@ public class QmsIssueTicketControllerService {
|
|||
request.getHandlerUserId(),
|
||||
request.getInspectionResultIds()
|
||||
);
|
||||
|
||||
// 推送待办消息
|
||||
Long sourceTypeId = dictionaryItemService.getIdByCode("MessageType", "PDIDefectiveProductHandling");
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(sourceTypeId)).throwMessage("消息类型不存在");
|
||||
User handlerUser = userService.getById(request.getHandlerUserId());
|
||||
QmsTodoItem todoItem = new QmsTodoItem()
|
||||
.setCode(ticketNo)
|
||||
.setIsRead(false)
|
||||
.setSourceTypeId(sourceTypeId)
|
||||
.setSourceId(entity.getId())
|
||||
.setCreateUserId(request.getHandlerUserId())
|
||||
.setCreateUserName(handlerUser != null ? handlerUser.getUserName() : userName)
|
||||
.setCreateTime(now);
|
||||
todoItemService.save(todoItem);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
|
@ -29,4 +30,16 @@ public class QmsIssueTicketPdiAddQO {
|
|||
*/
|
||||
@NotEmpty(message = "检测结果ID列表不能为空")
|
||||
private List<Long> inspectionResultIds;
|
||||
|
||||
/**
|
||||
* 事故类型:0=一般,1=较严重,2=严重
|
||||
*/
|
||||
@NotNull(message = "事故类型不能为空")
|
||||
private Short incidentType;
|
||||
|
||||
/**
|
||||
* 事件描述(对不合格项的内容整合)
|
||||
*/
|
||||
@NotBlank(message = "事件描述不能为空")
|
||||
private String incidentDescription;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue