feat(incoming-inspection): 添加检测方式字段及来料检测工单审核功能
- 在QmsIncomingInspectionTask实体中新增检测方式字段testingMethodDictItemId - 在IncomingInspectionTaskControllerService新增addNewIncomingInspectionTask方法,支持生成新检测任务 - 在来料检测任务创建时设置检测方式字段 - 调整生成任务号时的序列号参数 - 重命名工单审核请求对象为QmsIncomingInspectionIssueTicketAuditQO - 新增来料检测工单审核接口IncomingInspectionAudit,替代原有审核接口 - 审核通过时触发新任务生成,其他状态时调用异步处理逻辑 - 优化部分代码格式和导入,提升代码规范性
This commit is contained in:
parent
f3fbc2cc47
commit
cf0c66e398
|
|
@ -62,12 +62,11 @@ public class QmsIssueTicketController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 审核质量问题工单
|
||||
* 更新审批状态、审批意见、审批人信息,并根据审批结果更新工单状态
|
||||
* 来料检测工单审核
|
||||
*/
|
||||
@PostMapping("audit")
|
||||
public ApiResult<Void> audit(@Valid @RequestBody QmsIssueTicketAuditQO request) {
|
||||
issueTicketControllerService.audit(request);
|
||||
@PostMapping("audit/incoming-inspection")
|
||||
public ApiResult<Void> IncomingInspectionAudit(@Valid @RequestBody QmsIncomingInspectionIssueTicketAuditQO request) {
|
||||
issueTicketControllerService.incomingInspectionAudit(request);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -188,6 +188,7 @@ public class IncomingInspectionTaskControllerService {
|
|||
.setTaskNo(taskNo)
|
||||
.setMaterialId(material.getId())
|
||||
.setInspectionStandardId(standard.getId())
|
||||
.setTestingMethodDictItemId(standard.getTestingMethodDictItemId())
|
||||
.setSupplierCode(request.getSupplierCode())
|
||||
.setSupplierName(request.getSupplierName())
|
||||
.setDeliveryOrderNo(request.getDeliveryOrderNo())
|
||||
|
|
@ -301,7 +302,7 @@ public class IncomingInspectionTaskControllerService {
|
|||
}
|
||||
|
||||
// 5. 生成检测单号
|
||||
String taskNo = basdeSerialNumberControllerService.generateSerialNumber(35);
|
||||
String taskNo = basdeSerialNumberControllerService.generateSerialNumber(34);
|
||||
|
||||
// 6. 计算要求完成时间:当前时间 + 检验周期(天)
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
|
|
@ -313,6 +314,7 @@ public class IncomingInspectionTaskControllerService {
|
|||
.setTaskNo(taskNo)
|
||||
.setMaterialId(material.getId())
|
||||
.setInspectionStandardId(standard.getId())
|
||||
.setTestingMethodDictItemId(standard.getTestingMethodDictItemId())
|
||||
.setFactory(request.getFactory())
|
||||
.setInspectionType(1)
|
||||
.setInspectionQty(request.getInspectionQty())
|
||||
|
|
@ -356,6 +358,43 @@ public class IncomingInspectionTaskControllerService {
|
|||
.update();
|
||||
}
|
||||
|
||||
public String addNewIncomingInspectionTask(Long taskId) {
|
||||
QmsIncomingInspectionTask task = incomingInspectionTaskService.getById(taskId);
|
||||
String taskNo = basdeSerialNumberControllerService.generateSerialNumber(34);
|
||||
Long testingMethodDictItemId = dictionaryItemService.getIdByCode("InspectionStandardTestingMethod","Full");
|
||||
QmsInspectionStandard standard = inspectionStandardService.getById(task.getInspectionStandardId());
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
LocalDateTime requiredFinishTime = now.plusDays(standard.getInspectionCycle());
|
||||
QmsIncomingInspectionTask newTask = new QmsIncomingInspectionTask()
|
||||
.setRequestNo(task.getRequestNo())
|
||||
.setTaskNo(taskNo)
|
||||
.setMaterialId(task.getId())
|
||||
.setInspectionStandardId(task.getId())
|
||||
.setTestingMethodDictItemId(testingMethodDictItemId)
|
||||
.setSupplierCode(task.getSupplierCode())
|
||||
.setSupplierName(task.getSupplierName())
|
||||
.setDeliveryOrderNo(task.getDeliveryOrderNo())
|
||||
.setDeliveryOrderLine(task.getDeliveryOrderLine())
|
||||
.setPurchaseOrderNo(task.getPurchaseOrderNo())
|
||||
.setPurchaseOrderLine(task.getPurchaseOrderLine())
|
||||
.setPurchaseGroup(task.getPurchaseGroup())
|
||||
.setFactory(task.getFactory())
|
||||
.setWarehouse(task.getWarehouse())
|
||||
.setStorageLocation(task.getStorageLocation())
|
||||
.setStorageDays(task.getStorageDays())
|
||||
.setInspectionType(task.getInspectionType())
|
||||
.setDataType(task.getDataType())
|
||||
.setInspectionQty(task.getInspectionQty())
|
||||
.setInspectionStatus((short) 0)
|
||||
.setInspectorId(task.getInspectorId())
|
||||
.setInspectorName(task.getInspectorName())
|
||||
.setSubmitTime(LocalDateTime.now())
|
||||
.setRequiredFinishTime(requiredFinishTime)
|
||||
.setDetectionQty(task.getInspectionQty());
|
||||
incomingInspectionTaskService.save(newTask);
|
||||
return taskNo;
|
||||
}
|
||||
|
||||
private DictionaryItem getAql(Long id, List<DictionaryItem> aqls) {
|
||||
return aqls.stream().filter(aql -> Objects.equals(aql.getId(), id)).findFirst().get();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import cn.hutool.core.util.StrUtil;
|
|||
import com.nflg.wms.common.constant.STATE;
|
||||
import com.nflg.wms.common.exception.NflgException;
|
||||
import com.nflg.wms.common.pojo.qo.QmsIssueTicketAddQO;
|
||||
import com.nflg.wms.common.pojo.qo.QmsIssueTicketAuditQO;
|
||||
import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionIssueTicketAuditQO;
|
||||
import com.nflg.wms.common.pojo.qo.QmsIssueTicketPdiAddQO;
|
||||
import com.nflg.wms.common.pojo.qo.QmsPdiCreateAndQueryTicketQO;
|
||||
import com.nflg.wms.common.pojo.vo.*;
|
||||
|
|
@ -15,6 +15,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.apache.commons.lang3.tuple.Pair;
|
||||
import org.springframework.stereotype.Service;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
|
@ -97,7 +98,7 @@ public class QmsIssueTicketControllerService {
|
|||
QmsIssueTicketPdiAddQO addQO = new QmsIssueTicketPdiAddQO();
|
||||
addQO.setTaskRecordId(request.getTaskRecordId());
|
||||
addQO.setIncidentType(request.getIncidentType());
|
||||
|
||||
|
||||
List<QmsIssueTicketPdiAddQO.HandlerItem> handlerItems = request.getHandlers().stream()
|
||||
.map(h -> {
|
||||
QmsIssueTicketPdiAddQO.HandlerItem item = new QmsIssueTicketPdiAddQO.HandlerItem();
|
||||
|
|
@ -107,7 +108,7 @@ public class QmsIssueTicketControllerService {
|
|||
})
|
||||
.collect(Collectors.toList());
|
||||
addQO.setHandlers(handlerItems);
|
||||
|
||||
|
||||
addPdiTicket(addQO);
|
||||
|
||||
// 2. 查询该任务的不合格检测项
|
||||
|
|
@ -214,7 +215,7 @@ public class QmsIssueTicketControllerService {
|
|||
* 更新审批状态、审批意见、审批人信息、事故类型,并更新工单状态
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void audit(@Valid QmsIssueTicketAuditQO request) {
|
||||
public void incomingInspectionAudit(@Valid QmsIncomingInspectionIssueTicketAuditQO request) {
|
||||
// 校验工单存在
|
||||
QmsIssueTicket entity = issueTicketService.getById(request.getId());
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(entity))
|
||||
|
|
@ -238,10 +239,14 @@ public class QmsIssueTicketControllerService {
|
|||
.setApprovalUserId(userId)
|
||||
.setApprovalUserName(userName)
|
||||
.setApprovalTime(now);
|
||||
|
||||
if (request.getApprovalStatus() == 5) {
|
||||
entity.setAssociationTaskNo(incomingInspectionTaskControllerService.addNewIncomingInspectionTask(entity.getSourceId()));
|
||||
}
|
||||
issueTicketService.updateById(entity);
|
||||
|
||||
wmsIncomingInspectionTaskCallbackService.processAsync(entity.getSourceId(), request.getApprovalStatus());
|
||||
if (request.getApprovalStatus() != 5) {
|
||||
wmsIncomingInspectionTaskCallbackService.processAsync(entity.getSourceId(), request.getApprovalStatus());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -537,7 +542,7 @@ public class QmsIssueTicketControllerService {
|
|||
records.stream()
|
||||
.filter(record -> StrUtil.isNotBlank(record.getImageIds()))
|
||||
.forEach(record -> {
|
||||
if(StrUtil.isNotBlank(record.getImageIds())) {
|
||||
if (StrUtil.isNotBlank(record.getImageIds())) {
|
||||
record.setImages(fileUploadRecordService.lambdaQuery()
|
||||
.in(FileUploadRecord::getId, Arrays.stream(StrUtil.splitToLong(record.getImageIds(), ",")).boxed().toList())
|
||||
.list()
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.Min;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
|
@ -11,7 +10,7 @@ import lombok.experimental.Accessors;
|
|||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class QmsIssueTicketAuditQO {
|
||||
public class QmsIncomingInspectionIssueTicketAuditQO {
|
||||
|
||||
/**
|
||||
* 工单ID
|
||||
|
|
@ -52,6 +52,11 @@ public class QmsIncomingInspectionTask implements Serializable {
|
|||
*/
|
||||
private Long inspectionStandardId;
|
||||
|
||||
/**
|
||||
* 检测方式,关联字典项id(字典编码:InspectionStandardTestingMethod)
|
||||
*/
|
||||
private Long testingMethodDictItemId;
|
||||
|
||||
/**
|
||||
* 供应商编号
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue