fix: reserve locations from measured volume
This commit is contained in:
+12
-3
@@ -174,9 +174,14 @@ public class MeasurementLocationOccupationService {
|
||||
return order.getActualVolumeCbm();
|
||||
}
|
||||
var measurement = measurements.findLatestMeasurement(tenantId, inboundId);
|
||||
if (measurement != null && measurement.getOriginalVolumeCbm() != null
|
||||
&& measurement.getOriginalVolumeCbm().signum() > 0) {
|
||||
return measurement.getOriginalVolumeCbm();
|
||||
if (measurement != null) {
|
||||
BigDecimal measuredVolume = positive(measurement.getTotalVolumeCbm());
|
||||
BigDecimal declaredVolume = positive(measurement.getOriginalVolumeCbm());
|
||||
if (measuredVolume != null || declaredVolume != null) {
|
||||
if (measuredVolume == null) return declaredVolume;
|
||||
if (declaredVolume == null) return measuredVolume;
|
||||
return measuredVolume.max(declaredVolume);
|
||||
}
|
||||
}
|
||||
if (order.getOrderId() == null || order.getOrderId() <= 0) {
|
||||
throw new BizException(ResultCode.CONFLICT, "入库单缺少有效实测或客户申报体积");
|
||||
@@ -200,6 +205,10 @@ public class MeasurementLocationOccupationService {
|
||||
throw new BizException(ResultCode.CONFLICT, "入库单缺少有效实测或客户申报体积");
|
||||
}
|
||||
|
||||
private static BigDecimal positive(BigDecimal value) {
|
||||
return value != null && value.signum() > 0 ? value : null;
|
||||
}
|
||||
|
||||
private static int requirePackageCount(InboundOrderEntity order) {
|
||||
if (order.getTotalPackageCount() == null || order.getTotalPackageCount() <= 0) {
|
||||
throw new BizException(ResultCode.CONFLICT, "入库单缺少有效总箱数");
|
||||
|
||||
Reference in New Issue
Block a user