Merge remote-tracking branch 'origin/qms/develop' into qms/develop
This commit is contained in:
commit
27538c238e
|
|
@ -536,7 +536,7 @@ public class IncomingInspectionTaskControllerService {
|
|||
return aqls.stream()
|
||||
.filter(aql -> Objects.equals(aql.getId(), id))
|
||||
.findFirst()
|
||||
.orElseThrow(() -> new NflgException(STATE.BusinessError,"未找到AQL"));
|
||||
.orElseThrow(() -> new NflgException(STATE.BusinessError, "未找到AQL"));
|
||||
}
|
||||
|
||||
private Pair<Long, Short> calculatedAqlType(QmsIncomingInspectionTask task, QmsInspectionStandard standard
|
||||
|
|
@ -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());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -758,7 +755,7 @@ public class IncomingInspectionTaskControllerService {
|
|||
.eq(QmsQualityInspector::getInspectionType, 1)
|
||||
.last("LIMIT 1")
|
||||
.one();
|
||||
if (Objects.isNull(inspector)){
|
||||
if (Objects.isNull(inspector)) {
|
||||
return new QmsIncomingInspectionTaskCountVO();
|
||||
}
|
||||
return incomingInspectionTaskService.countByCurrentUser(inspector.getId());
|
||||
|
|
@ -786,7 +783,7 @@ public class IncomingInspectionTaskControllerService {
|
|||
|
||||
// 校验是否存在已检任务
|
||||
boolean hasFinished = tasks.stream()
|
||||
.anyMatch(t -> Objects.equals(t.getInspectionStatus(),(short)2));
|
||||
.anyMatch(t -> Objects.equals(t.getInspectionStatus(), (short) 2));
|
||||
VUtil.trueThrowBusinessError(hasFinished)
|
||||
.throwMessage("已检状态的任务不允许转办");
|
||||
|
||||
|
|
@ -949,7 +946,7 @@ public class IncomingInspectionTaskControllerService {
|
|||
inspectionStandardItemService.lambdaQuery()
|
||||
.select(QmsInspectionStandardItem::getId, QmsInspectionStandardItem::getPdfDrawing)
|
||||
.eq(QmsInspectionStandardItem::getInspectionStandardId, standard.getId())
|
||||
.eq(QmsInspectionStandardItem::getItemType,1)
|
||||
.eq(QmsInspectionStandardItem::getItemType, 1)
|
||||
.list()
|
||||
.stream()
|
||||
.map(it -> new PdfDrawingVO(it.getId(), it.getPdfDrawing()))
|
||||
|
|
@ -995,7 +992,7 @@ public class IncomingInspectionTaskControllerService {
|
|||
QmsIncomingInspectionTask task = incomingInspectionTaskService.getById(request.getTaskId());
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在");
|
||||
VUtil.trueThrowBusinessError(task.getInspectionStatus() == 2).throwMessage("该任务已完成");
|
||||
if(StrUtil.isNotBlank(request.getMaterialUniqueNo())){
|
||||
if (StrUtil.isNotBlank(request.getMaterialUniqueNo())) {
|
||||
VUtil.trueThrowBusinessError(!incomingInspectionTaskQrService.lambdaQuery()
|
||||
.eq(QmsIncomingInspectionTaskQr::getTaskId, request.getTaskId())
|
||||
.eq(QmsIncomingInspectionTaskQr::getMaterialQrCode, request.getMaterialUniqueNo())
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ public class WmsIncomingInspectionTaskCallbackService {
|
|||
qo.setUnqualifiedQty(0);
|
||||
qo.setQrCodes(records.stream()
|
||||
.filter(QmsIncomingInspectionTaskRecord::getQualified)
|
||||
.map(r-> new MaterialQrCodeDTO()
|
||||
.map(r -> new MaterialQrCodeDTO()
|
||||
.setQrCode(r.getMaterialUniqueNo())
|
||||
.setInspectionQty(r.getInspectionQty())
|
||||
.setUnqualifiedQty(r.getUnqualifiedQty())
|
||||
|
|
@ -93,7 +93,7 @@ public class WmsIncomingInspectionTaskCallbackService {
|
|||
} else {
|
||||
qo.setUnqualifiedQty(taskVO.getUnqualifiedQty());
|
||||
qo.setQrCodes(records.stream()
|
||||
.map(r-> new MaterialQrCodeDTO()
|
||||
.map(r -> new MaterialQrCodeDTO()
|
||||
.setQrCode(r.getMaterialUniqueNo())
|
||||
.setInspectionQty(r.getInspectionQty())
|
||||
.setUnqualifiedQty(r.getUnqualifiedQty())
|
||||
|
|
@ -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) {
|
||||
|
|
@ -191,7 +189,7 @@ public class WmsIncomingInspectionTaskCallbackService {
|
|||
public void process(Long taskId) {
|
||||
QmsIncomingInspectionTaskVO taskVO = incomingInspectionTaskService.getDetail(taskId);
|
||||
VUtil.trueThrowBusinessError(Objects.equals(taskVO.getCallbackResult(), true)).throwMessage("请勿重复回调");
|
||||
VUtil.trueThrowBusinessError(!Objects.equals(taskVO.getInspectionStatus(),(short)2)).throwMessage("来料检验任务状态不允许回调");
|
||||
VUtil.trueThrowBusinessError(!Objects.equals(taskVO.getInspectionStatus(), (short) 2)).throwMessage("来料检验任务状态不允许回调");
|
||||
if (taskVO.getInspectionResult()) {
|
||||
process(taskVO, (short) 0);
|
||||
} else {
|
||||
|
|
@ -214,10 +212,10 @@ public class WmsIncomingInspectionTaskCallbackService {
|
|||
private void process(QmsIncomingInspectionTaskVO taskVO, Short processingResult) {
|
||||
switch (taskVO.getInspectionType()) {
|
||||
case 0:
|
||||
incoming(taskVO,processingResult);
|
||||
incoming(taskVO, processingResult);
|
||||
break;
|
||||
case 1:
|
||||
inventory(taskVO,processingResult);
|
||||
inventory(taskVO, processingResult);
|
||||
break;
|
||||
default:
|
||||
VUtil.trueThrowBusinessError(true).throwMessage("无效的检验类型:" + taskVO.getInspectionType());
|
||||
|
|
@ -233,7 +231,7 @@ public class WmsIncomingInspectionTaskCallbackService {
|
|||
private void process(Long taskId, Short processingResult) {
|
||||
QmsIncomingInspectionTaskVO taskVO = incomingInspectionTaskService.getDetail(taskId);
|
||||
VUtil.trueThrowBusinessError(Objects.equals(taskVO.getCallbackResult(), true)).throwMessage("请勿重复回调");
|
||||
VUtil.trueThrowBusinessError(!Objects.equals(taskVO.getInspectionStatus(),(short)2)).throwMessage("来料检验任务状态不允许回调");
|
||||
VUtil.trueThrowBusinessError(!Objects.equals(taskVO.getInspectionStatus(), (short) 2)).throwMessage("来料检验任务状态不允许回调");
|
||||
process(taskVO, processingResult);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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())
|
||||
|
|
|
|||
|
|
@ -36,6 +36,5 @@ public class NoScanningItemRequest {
|
|||
* 明细列表
|
||||
*/
|
||||
@Valid
|
||||
@NotEmpty
|
||||
private List<NoScanningItemDataRequest> datas;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
@ -304,7 +303,7 @@ public class QmsService {
|
|||
/**
|
||||
* 推送PDI检验申请
|
||||
* @param orderNo 订单编号
|
||||
* @param item 订单项
|
||||
* @param item 订单项
|
||||
*/
|
||||
public void pushPdiInspection(String orderNo, WmsInProduceOrderItem item) {
|
||||
QmsPdiTaskRecordAddQO qo = new QmsPdiTaskRecordAddQO()
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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("未找到对应收货明细, 质检单号: {}, 物料: {}, 收货单: {}, 行号: {}",
|
||||
|
|
|
|||
Loading…
Reference in New Issue