贴标申请,仓储转运
This commit is contained in:
+1
-4
@@ -77,10 +77,7 @@ public class CargoDiscardController {
|
||||
private String scope(AuthenticatedUser user, String requested) {
|
||||
if (user == null || user.tenantId() == null) throw new ResponseStatusException(HttpStatus.UNAUTHORIZED);
|
||||
if ("PLATFORM".equals(user.appCode()) && user.tenantId() == 0L) {
|
||||
if (requested == null || requested.isBlank() || "0".equals(requested)) {
|
||||
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Platform request must specify target tenant");
|
||||
}
|
||||
return requested.trim();
|
||||
return requested == null || requested.isBlank() || "0".equals(requested) ? null : requested.trim();
|
||||
}
|
||||
return String.valueOf(user.tenantId());
|
||||
}
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ public final class CargoDiscardResponses {
|
||||
List<CandidateSku> skus) {}
|
||||
public record CandidateSku(String skuCode, String productName, long availablePackages) {}
|
||||
|
||||
public record Summary(Long id, String discardNo, String inboundCodes,
|
||||
public record Summary(Long id, String customerId, String discardNo, String inboundCodes,
|
||||
String overseasWarehouseId, String overseasWarehouseName,
|
||||
int totalPackages, BigDecimal totalFee, String currency, String status,
|
||||
String createdBy, LocalDateTime createdAt, LocalDateTime reviewedAt) {}
|
||||
|
||||
+4
-33
@@ -51,7 +51,7 @@ import java.util.Set;
|
||||
@Service
|
||||
public class CargoDiscardService {
|
||||
@Resource private com.baiyue.lastleg.service.LastlegOrderNoGenerator orderNoGenerator;
|
||||
public static final String APPROVAL_PERMISSION = "lastleg:cargo-discard:approve";
|
||||
public static final String APPROVAL_PERMISSION = "platform:overseas-warehouse:discard:approve";
|
||||
public static final String PENDING_REVIEW = "PENDING_REVIEW";
|
||||
public static final String APPROVED = "APPROVED";
|
||||
public static final String REJECTED = "REJECTED";
|
||||
@@ -171,36 +171,7 @@ public class CargoDiscardService {
|
||||
application.setCreatedAt(now); application.setUpdatedAt(now);
|
||||
applications.insert(application);
|
||||
|
||||
// A discard request is also a customer-visible tail-leg order. Keep the
|
||||
// application as the workflow record and link the order through its
|
||||
// immutable source id so cancellation/status changes stay traceable.
|
||||
LastlegOrder tailOrder = new LastlegOrder();
|
||||
tailOrder.setId(IdWorker.getId());
|
||||
tailOrder.setOrderNo(application.getDiscardNo());
|
||||
tailOrder.setCustomerId(customerId);
|
||||
tailOrder.setOrderType("CARGO_DISCARD");
|
||||
tailOrder.setInboundCode(application.getInboundCodes());
|
||||
tailOrder.setInboundOrderNo(application.getDiscardNo());
|
||||
tailOrder.setSourceRegion("LASTLEG_DISCARD");
|
||||
tailOrder.setSourceInboundId("CARGO_DISCARD:" + application.getId());
|
||||
tailOrder.setSourceOrderId(String.valueOf(application.getId()));
|
||||
tailOrder.setSourceOrderNo(application.getDiscardNo());
|
||||
tailOrder.setOverseasWarehouseId(warehouseId);
|
||||
tailOrder.setOverseasWarehouseName(warehouseName);
|
||||
tailOrder.setPackageCount(total);
|
||||
tailOrder.setCurrentStatus(PENDING_REVIEW);
|
||||
tailOrder.setVersion(0);
|
||||
tailOrder.setCreatedAt(now);
|
||||
tailOrder.setUpdatedAt(now);
|
||||
tailOrder.setSourceEventId("CARGO_DISCARD:" + application.getId());
|
||||
tailOrder.setSourceLoadingPlanId("CARGO_DISCARD");
|
||||
tailOrder.setSourcePayloadHash(requestHash);
|
||||
orders.insert(tailOrder);
|
||||
LastlegOrderStatusHistory initialOrderHistory = new LastlegOrderStatusHistory();
|
||||
initialOrderHistory.setId(IdWorker.getId()); initialOrderHistory.setCustomerId(customerId); initialOrderHistory.setOrderId(tailOrder.getId());
|
||||
initialOrderHistory.setFromStatus(null); initialOrderHistory.setToStatus(PENDING_REVIEW);
|
||||
initialOrderHistory.setEventId("CARGO_DISCARD_CREATE:" + application.getId()); initialOrderHistory.setRemark(trim(request.remark())); initialOrderHistory.setCreatedAt(now);
|
||||
orderHistories.insert(initialOrderHistory);
|
||||
// 废弃申请独立承载废弃流程,不创建尾程订单。
|
||||
|
||||
Set<Long> reservedReturnCartons = new LinkedHashSet<>();
|
||||
for (CargoDiscardRequests.Item input : request.items()) {
|
||||
@@ -218,7 +189,7 @@ public class CargoDiscardService {
|
||||
public PageResult<CargoDiscardResponses.Summary> page(String customerId, CargoDiscardRequests.Query query) {
|
||||
validateQuery(query);
|
||||
LambdaQueryWrapper<CargoDiscardApplication> wrapper = new LambdaQueryWrapper<CargoDiscardApplication>()
|
||||
.eq(CargoDiscardApplication::getCustomerId, customerId)
|
||||
.eq(StringUtils.hasText(customerId), CargoDiscardApplication::getCustomerId, customerId)
|
||||
.like(StringUtils.hasText(query.discardNo()), CargoDiscardApplication::getDiscardNo, query.discardNo())
|
||||
.like(StringUtils.hasText(query.inboundCode()), CargoDiscardApplication::getInboundCodes, query.inboundCode())
|
||||
.eq(StringUtils.hasText(query.overseasWarehouseId()), CargoDiscardApplication::getOverseasWarehouseId,
|
||||
@@ -432,7 +403,7 @@ public class CargoDiscardService {
|
||||
}
|
||||
|
||||
private CargoDiscardResponses.Summary summary(CargoDiscardApplication value) {
|
||||
return new CargoDiscardResponses.Summary(value.getId(), value.getDiscardNo(), value.getInboundCodes(),
|
||||
return new CargoDiscardResponses.Summary(value.getId(), value.getCustomerId(), value.getDiscardNo(), value.getInboundCodes(),
|
||||
value.getOverseasWarehouseId(), value.getOverseasWarehouseName(), value.getTotalPackages(),
|
||||
value.getTotalFee(), value.getCurrency(), value.getStatus(), value.getCreatedBy(), value.getCreatedAt(),
|
||||
value.getReviewedAt());
|
||||
|
||||
Reference in New Issue
Block a user