Merge remote-tracking branch 'origin/qms/develop' into qms/develop

This commit is contained in:
yf001217 2026-06-15 11:21:44 +08:00
commit 82b3abb564
7 changed files with 44 additions and 21 deletions

View File

@ -1180,7 +1180,7 @@ public class IncomingInspectionTaskControllerService {
updateWrapper.update();
if (request.getQualified() && task.getUnqualifiedQty() == 0) {
if (request.getQualified() && task.getQualifiedQty() > 0) {
// 异步回调需等当前事务提交后再触发否则异步线程可能读到未提交的旧状态导致回调数据错误或漏回调
Long taskId = task.getId();
if (TransactionSynchronizationManager.isSynchronizationActive()) {

View File

@ -90,6 +90,18 @@ public class WmsIncomingInspectionTaskCallbackService {
.setQualifiedQty(r.getQualifiedQty()))
.toList()
);
}else if (processingResult == 2){
qo.setUnqualifiedQty(taskVO.getInspectionQty());
qo.setQualifiedQty(0);
qo.setQrCodes(records.stream()
.map(r -> new MaterialQrCodeDTO()
.setQrCode(r.getMaterialUniqueNo())
.setInspectionQty(r.getInspectionQty())
.setUnqualifiedQty(r.getInspectionQty())
.setQualifiedQty(0)
)
.toList()
);
} else {
qo.setUnqualifiedQty(taskVO.getUnqualifiedQty());
qo.setQrCodes(records.stream()

View File

@ -237,4 +237,9 @@ public class QmsIncomingInspectionTaskVO {
* 是否强制使用二维码
*/
private Boolean mustUseQrCode;
/**
* 检测方式关联字典项id字典编码InspectionStandardTestingMethod
*/
private Long testingMethodDictItemId;
}

View File

@ -5,6 +5,7 @@ import com.nflg.wms.common.pojo.qo.NoScanningQO;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@ -132,5 +133,5 @@ public class TransferCompanyTicketVO {
/**
* 未扫描的物料凭证
*/
public List<NoScanningQO> noScannings;
public List<NoScanningQO> noScannings=new ArrayList<>();
}

View File

@ -6,6 +6,7 @@ import com.nflg.wms.common.pojo.qo.NoScanningQO;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Data
@ -143,5 +144,5 @@ public class TransferFactoryTicketVO {
/**
* 未扫描的物料凭证
*/
public List<NoScanningQO> noScannings;
public List<NoScanningQO> noScannings=new ArrayList<>();
}

View File

@ -227,7 +227,8 @@
t.storage_location,
t.storage_days,
t.callback_result,
t.detection_qty
t.detection_qty,
t.testing_method_dict_item_id
FROM qms_incoming_inspection_task t
LEFT JOIN qms_qc_material m ON t.material_id = m.id
LEFT JOIN qms_inspection_standard s ON t.inspection_standard_id = s.id

View File

@ -84,6 +84,10 @@ public class QmsController extends BaseController {
.throwMessage(StrUtil.format("未找到对应收货明细, 质检单号: {}, 物料: {}, 收货单: {}, 行号: {}",
qo.getTaskNo(), qo.getMaterialNo(), qo.getDeliveryOrderNo(), qo.getDeliveryOrderLine()));
log.info("匹配到收货明细, 质检单号: {}, 收货明细ID: {}", qo.getTaskNo(), receiveItem.getId());
receiveItem.setCheckQty(BigDecimal.valueOf(qo.getQualifiedQty() + qo.getUnqualifiedQty()));
WmsQcReceive receive = qcReceiveService.lambdaQuery()
.eq(WmsQcReceive::getId, receiveItem.getReceiveId())
.one();
// 检查物料是否生成过二维码
boolean hasQrCode = qrCodeMasterService.lambdaQuery()
@ -106,7 +110,7 @@ public class QmsController extends BaseController {
.setUnit(receiveItem.getUomCode())
// .setReceivedWarehouse("")
// .setUnqualifiedReason(data.getUnqualifiedReason())
// .setReceiveNum(data.getReceiveNum())
.setReceiveNum(receiveItem.getMaterialDoc())
.setPoNum(qo.getPurchaseOrderNo())
.setUnqualifiedQty(BigDecimal.valueOf(qo.getUnqualifiedQty()))
.setQualifiedQty(BigDecimal.valueOf(qo.getQualifiedQty()))
@ -171,9 +175,15 @@ public class QmsController extends BaseController {
Pair<String, String> returnDto = sapService.zwm3a18(zwm3A18DTO);
log.info("SAP质检入库返回, 物料凭证: {}, 年份: {}", returnDto.getKey(), returnDto.getValue());
// 更新收货明细的物料凭证和入库数量
receiveItem.setInQty(BigDecimal.valueOf(qo.getQualifiedQty()));
receiveItem.setMaterialDoc(returnDto.getKey());
receiveItem.setMaterialDocYear(returnDto.getValue());
if (Objects.isNull(receiveItem.getInQty())) {
receiveItem.setInQty(BigDecimal.valueOf(qo.getQualifiedQty()));
} else {
receiveItem.setInQty(receiveItem.getInQty().add(BigDecimal.valueOf(qo.getQualifiedQty())));
}
// receiveItem.setMaterialDoc(returnDto.getKey());
// receiveItem.setMaterialDocYear(returnDto.getValue());
inspect.setMaterialDoc105(returnDto.getKey());
inspect.setMaterialDocYear105(returnDto.getValue());
qcReceiveItemService.updateById(receiveItem);
// 检查并更新收货单完成状态
@ -183,16 +193,10 @@ public class QmsController extends BaseController {
boolean allCompleted = allItems.stream()
.allMatch(item -> item.getInQty() != null && item.getInQty().compareTo(item.getReceiptNum()) >= 0);
if (allCompleted) {
qcReceiveService.lambdaUpdate()
.eq(WmsQcReceive::getId, receiveItem.getReceiveId())
.set(WmsQcReceive::getIsCompleted, (short) 2)
.update();
receive.setIsCompleted((short) 2);
log.info("收货单全部完成, receiveId: {}", receiveItem.getReceiveId());
} else {
qcReceiveService.lambdaUpdate()
.eq(WmsQcReceive::getId, receiveItem.getReceiveId())
.set(WmsQcReceive::getIsCompleted, (short) 1)
.update();
receive.setIsCompleted((short) 1);
log.info("收货单部分完成, receiveId: {}", receiveItem.getReceiveId());
}
}
@ -201,11 +205,10 @@ public class QmsController extends BaseController {
qo.getTaskNo(), qo.getUnqualifiedQty());
}
srmQualityInspectionService.save(inspect);
qcReceiveService.lambdaUpdate()
.eq(WmsQcReceive::getOrderNo, inspect.getNoteNum())
.set(WmsQcReceive::getIsCheck, isCheck)
.update();
qcReceiveItemService.updateCheckNum(inspect.getInspectionQty(), inspect.getNoteNum(), inspect.getLineNumber(), inspect.getItemCode(), receiveItem.getMaterialDoc());
if (!Objects.equals(receive.getIsCheck(), (short) 2)) {
receive.setIsCheck(isCheck);
}
// qcReceiveItemService.updateCheckNum(inspect.getInspectionQty(), inspect.getNoteNum(), inspect.getLineNumber(), inspect.getItemCode(), receiveItem.getMaterialDoc());
//更新二维码数量
if (CollectionUtil.isNotEmpty(qo.getQrCodes())) {
List<WmsQrCodeMaster> qrCodeMasters = qrCodeMasterService.getByCodes(qo.getQrCodes().stream().map(MaterialQrCodeDTO::getQrCode).toList());