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

This commit is contained in:
yf001217 2026-06-14 17:55:09 +08:00
commit 27538c238e
8 changed files with 70 additions and 78 deletions

View File

@ -740,10 +740,7 @@ public class IncomingInspectionTaskControllerService {
.eq(QmsQualityInspector::getInspectionType, 1)
.last("LIMIT 1")
.one();
if (Objects.isNull(inspector)){
return Page.of(0,0,0);
}
return incomingInspectionTaskService.todoSearch(request, inspector.getId());
return incomingInspectionTaskService.todoSearch(request, Objects.isNull(inspector) ? 0 : inspector.getId());
}
/**

View File

@ -116,34 +116,34 @@ public class WmsIncomingInspectionTaskCallbackService {
* 向WMS系统发送库存检验任务回调
*/
private void inventory(QmsIncomingInspectionTaskVO taskVO, Short processingResult) {
WmsInventoryInspectionTaskCallbackQO qo = new WmsInventoryInspectionTaskCallbackQO()
.setTaskNo(taskVO.getTaskNo())
.setRequestNo(taskVO.getRequestNo())
.setMaterialNo(taskVO.getMaterialNo())
.setFactory(taskVO.getFactory())
.setWarehouse(taskVO.getWarehouse())
.setStorageLocation(taskVO.getStorageLocation())
.setStorageDays(taskVO.getStorageDays())
.setDetectionQty(taskVO.getDetectionQty())
.setQualifiedQty(taskVO.getQualifiedQty())
.setUnqualifiedQty(taskVO.getUnqualifiedQty())
.setInspectionResult(taskVO.getInspectionResult())
.setProcessingResult(processingResult);
List<QmsIncomingInspectionTaskRecord> records = incomingInspectionTaskRecordService.lambdaQuery()
.select(QmsIncomingInspectionTaskRecord::getMaterialUniqueNo, QmsIncomingInspectionTaskRecord::getQualified)
.eq(QmsIncomingInspectionTaskRecord::getTaskId, taskVO.getId())
.list();
qo.setQualifiedMaterialUniqueNo(records.stream()
.filter(QmsIncomingInspectionTaskRecord::getQualified)
.map(QmsIncomingInspectionTaskRecord::getMaterialUniqueNo)
.toList()
);
qo.setUnqualifiedMaterialUniqueNo(records.stream()
.filter(record -> !record.getQualified())
.map(QmsIncomingInspectionTaskRecord::getMaterialUniqueNo)
.toList()
);
// WmsInventoryInspectionTaskCallbackQO qo = new WmsInventoryInspectionTaskCallbackQO()
// .setTaskNo(taskVO.getTaskNo())
// .setRequestNo(taskVO.getRequestNo())
// .setMaterialNo(taskVO.getMaterialNo())
// .setFactory(taskVO.getFactory())
// .setWarehouse(taskVO.getWarehouse())
// .setStorageLocation(taskVO.getStorageLocation())
// .setStorageDays(taskVO.getStorageDays())
// .setDetectionQty(taskVO.getDetectionQty())
// .setQualifiedQty(taskVO.getQualifiedQty())
// .setUnqualifiedQty(taskVO.getUnqualifiedQty())
// .setInspectionResult(taskVO.getInspectionResult())
// .setProcessingResult(processingResult);
//
// List<QmsIncomingInspectionTaskRecord> records = incomingInspectionTaskRecordService.lambdaQuery()
// .select(QmsIncomingInspectionTaskRecord::getMaterialUniqueNo, QmsIncomingInspectionTaskRecord::getQualified)
// .eq(QmsIncomingInspectionTaskRecord::getTaskId, taskVO.getId())
// .list();
// qo.setQualifiedMaterialUniqueNo(records.stream()
// .filter(QmsIncomingInspectionTaskRecord::getQualified)
// .map(QmsIncomingInspectionTaskRecord::getMaterialUniqueNo)
// .toList()
// );
// qo.setUnqualifiedMaterialUniqueNo(records.stream()
// .filter(record -> !record.getQualified())
// .map(QmsIncomingInspectionTaskRecord::getMaterialUniqueNo)
// .toList()
// );
// 注意本方法不可被 @Transactional 包裹否则下面"标记失败"的更新会随异常一起回滚导致失败状态丢失
try {
@ -151,10 +151,8 @@ public class WmsIncomingInspectionTaskCallbackService {
inventoryService.lambdaUpdate()
.set(WmsInventory::getDetectionStatus, (short) 2)
.set(WmsInventory::getDetectionResults, taskVO.getInspectionResult())
.eq(WmsInventory::getMaterialNo, taskVO.getMaterialNo())
.eq(WmsInventory::getFactoryNo, taskVO.getFactory())
.eq(WmsInventory::getWarehouseNo, taskVO.getWarehouse())
.eq(WmsInventory::getBinLocation, taskVO.getStorageLocation())
.eq(WmsInventory::getId, Long.valueOf(taskVO.getRequestNo()))
.eq(WmsInventory::getDetectionStatus, (short) 1)
.update();
updateCallbackResult(taskVO.getId(), true);
} catch (Exception e) {

View File

@ -231,6 +231,7 @@ public class NormalPGIController extends BaseController {
@PostMapping("noScanSubmit")
@ApiMark(moduleName = "送货单管理", apiName = "无码收货确认")
public ApiResult<Void> noScanSubmit(@Valid @RequestBody @NotNull NoScanningRequest request) {
request.getItems().removeIf(it -> CollectionUtil.isEmpty(it.getDatas()));
WmsSrmOrder order = wmsSrmOrderService.lambdaQuery()
.eq(Objects.nonNull(request.getId()), WmsSrmOrder::getId, request.getId())
.eq(StrUtil.isNotBlank(request.getNo()), WmsSrmOrder::getNoteNum, request.getNo())

View File

@ -36,6 +36,5 @@ public class NoScanningItemRequest {
* 明细列表
*/
@Valid
@NotEmpty
private List<NoScanningItemDataRequest> datas;
}

View File

@ -127,8 +127,8 @@ public class InventoryExpirationInspectionScheduledTask {
InventoryDetectionApplyQO request = new InventoryDetectionApplyQO();
request.setInventoryId(inventory.getId());
request.setInspectionQty(inventory.getNum().intValue());
request.setStorageDays(Math.max(1, (int) ChronoUnit.DAYS.between(inventory.getCreateTime(), now)));
// request.setInspectionQty(inventory.getNum().intValue());
// request.setStorageDays(Math.max(1, (int) ChronoUnit.DAYS.between(inventory.getCreateTime(), now)));
try {
qmsService.pushInventoryInspection(request);
appliedKeys.add(inspectionKey);

View File

@ -1,5 +1,7 @@
package com.nflg.wms.admin.service;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.nflg.wms.common.pojo.ApiResult;
@ -29,6 +31,7 @@ import org.springframework.web.client.RestTemplate;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
@ -177,19 +180,19 @@ public class QmsService {
VUtil.trueThrowBusinessError(Objects.isNull(inventory)).throwMessage("未找到对应库存");
VUtil.trueThrowBusinessError(Objects.equals(inventory.getDetectionStatus(), (short) 1))
.throwMessage("该库存正在检测中,不能重复发起检测任务");
VUtil.trueThrowBusinessError(
Objects.isNull(inventory.getNum())
|| BigDecimal.valueOf(request.getInspectionQty()).compareTo(inventory.getNum()) > 0
).throwMessage("检验数量不能大于库存数量");
// VUtil.trueThrowBusinessError(
// Objects.isNull(inventory.getNum())
// || BigDecimal.valueOf(request.getInspectionQty()).compareTo(inventory.getNum()) > 0
// ).throwMessage("检验数量不能大于库存数量");
ExternalInventoryInspectionApplyQO apply = new ExternalInventoryInspectionApplyQO();
apply.setRequestNo(generateInventoryInspectionRequestNo(request.getInventoryId()));
apply.setRequestNo(String.valueOf(request.getInventoryId()));
apply.setMaterialNo(inventory.getMaterialNo());
apply.setFactory(inventory.getFactoryNo());
apply.setInspectionQty(request.getInspectionQty());
apply.setInspectionQty(inventory.getNum().intValue());
apply.setWarehouse(inventory.getWarehouseNo());
apply.setStorageLocation(inventory.getBinLocation());
apply.setStorageDays(request.getStorageDays());
apply.setStorageDays((int) LocalDateTimeUtil.between(inventory.getCreateTime(), LocalDateTime.now(), ChronoUnit.DAYS));
List<String> qrCodes = getInventoryInspectionQrCodes(apply);
apply.setQrCodes(qrCodes);
@ -259,10 +262,6 @@ public class QmsService {
}
private String generateInventoryInspectionRequestNo(Long inventoryId) {
return LocalDateTime.now().format(INVENTORY_INSPECTION_REQUEST_NO_FORMATTER) + inventoryId;
}
private List<String> getInventoryInspectionQrCodes(ExternalInventoryInspectionApplyQO apply) {
List<WmsQrCodeMaster> qrCodeMasters = qrCodeMasterService.lambdaQuery()
.select(WmsQrCodeMaster::getId, WmsQrCodeMaster::getBarcodeCode)

View File

@ -16,17 +16,17 @@ public class InventoryDetectionApplyQO {
@NotNull(message = "库存ID不能为空")
private Long inventoryId;
/**
* 检验数量
*/
@NotNull(message = "检验数量不能为空")
@Min(value = 1, message = "检验数量必须大于0")
private Integer inspectionQty;
/**
* 存储时长单位
*/
@NotNull(message = "存储时长不能为空")
@Min(value = 1, message = "存储时长必须大于0")
private Integer storageDays;
// /**
// * 检验数量
// */
// @NotNull(message = "检验数量不能为空")
// @Min(value = 1, message = "检验数量必须大于0")
// private Integer inspectionQty;
//
// /**
// * 存储时长单位
// */
// @NotNull(message = "存储时长不能为空")
// @Min(value = 1, message = "存储时长必须大于0")
// private Integer storageDays;
}

View File

@ -81,9 +81,7 @@ public class QmsController extends BaseController {
// 找到入库的明细
WmsQcReceiveItem receiveItem = qcReceiveItemService.lambdaQuery()
.eq(WmsQcReceiveItem::getItemCode, qo.getMaterialNo())
.eq(WmsQcReceiveItem::getLineNumber, qo.getDeliveryOrderLine())
.eq(WmsQcReceiveItem::getNoteNum, qo.getDeliveryOrderNo())
.eq(WmsQcReceiveItem::getId, Long.valueOf(qo.getRequestNo()))
.one();
VUtil.trueThrowBusinessError(Objects.isNull(receiveItem))
.throwMessage(StrUtil.format("未找到对应收货明细, 质检单号: {}, 物料: {}, 收货单: {}, 行号: {}",