优化
This commit is contained in:
+1
-1
@@ -43,7 +43,7 @@ public class OpenApiInboundMeasurementController {
|
|||||||
private MojiaMeasurementOpenApiService mojiaService;
|
private MojiaMeasurementOpenApiService mojiaService;
|
||||||
|
|
||||||
@Operation(summary = "墨家设备按箱码上传单箱测量结果",
|
@Operation(summary = "墨家设备按箱码上传单箱测量结果",
|
||||||
description = "首轮联调使用固定 X-App-Key;JSON 中 picture 为 JPEG Data URL,boxCode 原样取自设备条码;带 # 的箱唛继续走箱唛测量,不带 # 的 SKU 进入一件代发 SKU 同步收件;weightKg 为 kg")
|
description = "首轮联调使用固定 X-App-Key;JSON 中 picture 为 JPEG Data URL,boxCode 原样取自设备条码;带 # 的箱唛继续走箱唛测量,不带 # 的 SKU 进入SKU同步收件;weightKg 为 kg")
|
||||||
@PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
public ApiResponse<UploadResponse> receiveMojia(
|
public ApiResponse<UploadResponse> receiveMojia(
|
||||||
@RequestHeader("X-App-Key") String appKey,
|
@RequestHeader("X-App-Key") String appKey,
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import feign.FeignException;
|
import feign.FeignException;
|
||||||
|
import org.springframework.dao.DataAccessException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@@ -99,7 +100,7 @@ public class InboundMeasurementService {
|
|||||||
? List.of() : repository.listItems(tenantId, measurement.getId());
|
? List.of() : repository.listItems(tenantId, measurement.getId());
|
||||||
List<InboundWeightResultEntity> weights = repository.listWeights(tenantId, inbound.getId());
|
List<InboundWeightResultEntity> weights = repository.listWeights(tenantId, inbound.getId());
|
||||||
List<com.baiyue.firstleg.entity.InboundPalletAllocationEntity> allocationSlots =
|
List<com.baiyue.firstleg.entity.InboundPalletAllocationEntity> allocationSlots =
|
||||||
palletAllocations.list(tenantId, inbound.getId());
|
loadAllocationSlotsForDetail(tenantId, inbound.getId());
|
||||||
Map<Long, com.baiyue.firstleg.entity.InboundPalletAllocationEntity> allocationsByWeight =
|
Map<Long, com.baiyue.firstleg.entity.InboundPalletAllocationEntity> allocationsByWeight =
|
||||||
allocationSlots.stream()
|
allocationSlots.stream()
|
||||||
.filter(item -> item.getWeightResultId() != null)
|
.filter(item -> item.getWeightResultId() != null)
|
||||||
@@ -605,8 +606,28 @@ public class InboundMeasurementService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean customerFeeConfirmed(long tenantId, long inboundId) {
|
private boolean customerFeeConfirmed(long tenantId, long inboundId) {
|
||||||
var latestFee = pricingRepository.findLatestFee(tenantId, inboundId);
|
try {
|
||||||
return latestFee != null && latestFee.getCustomerConfirmedAt() != null;
|
var latestFee = pricingRepository.findLatestFee(tenantId, inboundId);
|
||||||
|
return latestFee != null && latestFee.getCustomerConfirmedAt() != null;
|
||||||
|
} catch (DataAccessException exception) {
|
||||||
|
// Fee confirmation is an edit-lock hint only; it must not prevent opening the review page.
|
||||||
|
LOGGER.warn("读取入库费用确认状态失败,继续返回测量详情: tenantId={}, inboundId={}",
|
||||||
|
tenantId, inboundId, exception);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<com.baiyue.firstleg.entity.InboundPalletAllocationEntity> loadAllocationSlotsForDetail(
|
||||||
|
long tenantId, long inboundId) {
|
||||||
|
try {
|
||||||
|
return palletAllocations.list(tenantId, inboundId);
|
||||||
|
} catch (DataAccessException exception) {
|
||||||
|
// The location guide is supplementary evidence. A missing/old allocation table must not
|
||||||
|
// turn a measurement review read into an opaque 500 response.
|
||||||
|
LOGGER.warn("读取入库库位分配快照失败,继续返回测量详情: tenantId={}, inboundId={}",
|
||||||
|
tenantId, inboundId, exception);
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static InboundMeasurementResponses.PalletLocationGuide toPalletLocationGuide(
|
private static InboundMeasurementResponses.PalletLocationGuide toPalletLocationGuide(
|
||||||
|
|||||||
+1
-1
@@ -81,7 +81,7 @@ public class MojiaMeasurementOpenApiService {
|
|||||||
}
|
}
|
||||||
long machineWarehouseId = requireMachineWarehouse(app, request.machineNo());
|
long machineWarehouseId = requireMachineWarehouse(app, request.machineNo());
|
||||||
// 墨家同一个 boxCode 字段同时承载箱唛和 SKU:带 # 的继续走既有箱唛链路,
|
// 墨家同一个 boxCode 字段同时承载箱唛和 SKU:带 # 的继续走既有箱唛链路,
|
||||||
// 不带 # 的只进入一件代发 SKU 同步收件,不得误走箱码匹配。
|
// 不带 # 的只进入SKU同步收件,不得误走箱码匹配。
|
||||||
if (!request.boxCode().contains("#")) {
|
if (!request.boxCode().contains("#")) {
|
||||||
return saveSkuPending(app, request, image);
|
return saveSkuPending(app, request, image);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- 墨家一件代发 SKU 同步页面及操作权限。
|
-- 墨家SKU同步页面及操作权限。
|
||||||
USE baiyue_iam;
|
USE baiyue_iam;
|
||||||
SET NAMES utf8mb4;
|
SET NAMES utf8mb4;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user