优化
This commit is contained in:
@@ -98,7 +98,7 @@ public final class LoadingPickDtos {
|
||||
) {
|
||||
}
|
||||
|
||||
public record PickItem(Long id, Long loadingPlanItemId, Long inboundId, Long inboundDetailId,
|
||||
public record PickItem(Long id, Long loadingPlanItemId, Long tenantId, Long inboundId, Long inboundDetailId,
|
||||
String orderNo, String inboundCode, String cargoName, List<String> boxCodes,
|
||||
Integer plannedPackageCount, Integer pickedPackageCount,
|
||||
String itemStatus, Integer version) {
|
||||
|
||||
@@ -12,7 +12,7 @@ import java.util.List;
|
||||
@Mapper
|
||||
public interface LoadingPickItemMapper extends BaseMapper<LoadingPickItemEntity> {
|
||||
@Select("""
|
||||
SELECT pick_item.id AS pickItemId, plan_item.order_no AS orderNo,
|
||||
SELECT pick_item.id AS pickItemId, plan_item.account_id AS tenantId, plan_item.order_no AS orderNo,
|
||||
plan_item.inbound_code AS inboundCode, label.cargo_name AS cargoName,
|
||||
label.box_code AS boxCode
|
||||
FROM fl_loading_pick_item pick_item
|
||||
@@ -27,6 +27,7 @@ public interface LoadingPickItemMapper extends BaseMapper<LoadingPickItemEntity>
|
||||
|
||||
interface CartonLabelRow {
|
||||
Long getPickItemId();
|
||||
Long getTenantId();
|
||||
String getOrderNo();
|
||||
String getInboundCode();
|
||||
String getCargoName();
|
||||
|
||||
@@ -491,7 +491,8 @@ public class LoadingPickService {
|
||||
List<PickItem> items = source.stream().map(item -> {
|
||||
List<CartonLabelRow> cartons = cartonsByItem.getOrDefault(item.getId(), List.of());
|
||||
CartonLabelRow first = cartons.isEmpty() ? null : cartons.get(0);
|
||||
return new PickItem(item.getId(), item.getLoadingPlanItemId(), item.getInboundId(),
|
||||
return new PickItem(item.getId(), item.getLoadingPlanItemId(), first == null ? null : first.getTenantId(),
|
||||
item.getInboundId(),
|
||||
item.getInboundDetailId(), first == null ? null : first.getOrderNo(),
|
||||
first == null ? null : first.getInboundCode(), first == null ? null : first.getCargoName(),
|
||||
cartons.stream().map(CartonLabelRow::getBoxCode).toList(), item.getPlannedPackageCount(),
|
||||
|
||||
@@ -10,7 +10,9 @@ paths:
|
||||
- {name: containerNo, in: query, required: true, schema: {type: string}}
|
||||
- {name: warehouseId, in: query, required: true, schema: {type: integer, format: int64, minimum: 1}}
|
||||
responses:
|
||||
'200': {description: Task with assignment, review and item-level versions}
|
||||
'200':
|
||||
description: Task with assignment, review, stable carton codes and item-level versions
|
||||
content: {application/json: {schema: {$ref: '#/components/schemas/Task'}}}
|
||||
/api/platform/v1/first-leg/pda-loading/tasks/pending:
|
||||
get:
|
||||
summary: List active tasks available to the authenticated PDA operator
|
||||
@@ -98,6 +100,41 @@ components:
|
||||
TaskId: {name: taskId, in: path, required: true, schema: {type: integer, format: int64, minimum: 1}}
|
||||
ItemId: {name: itemId, in: path, required: true, schema: {type: integer, format: int64, minimum: 1}}
|
||||
schemas:
|
||||
Task:
|
||||
type: object
|
||||
required: [id, loadingPlanId, containerNo, taskStatus, workflowStatus, version, items]
|
||||
properties:
|
||||
id: {type: integer, format: int64}
|
||||
loadingPlanId: {type: integer, format: int64}
|
||||
containerNo: {type: string}
|
||||
taskStatus: {type: string, enum: [LOADING, COMPLETED]}
|
||||
workflowStatus: {type: string, enum: [UNASSIGNED, IN_PROGRESS, AWAITING_REVIEW, COMPLETED]}
|
||||
version: {type: integer, minimum: 0}
|
||||
assignment: {type: object, nullable: true}
|
||||
review: {type: object, nullable: true}
|
||||
items:
|
||||
type: array
|
||||
items: {$ref: '#/components/schemas/PickItem'}
|
||||
PickItem:
|
||||
type: object
|
||||
required: [id, loadingPlanItemId, tenantId, inboundId, inboundDetailId, boxCodes, plannedPackageCount, pickedPackageCount, itemStatus, version]
|
||||
properties:
|
||||
id: {type: integer, format: int64}
|
||||
loadingPlanItemId: {type: integer, format: int64}
|
||||
tenantId: {type: integer, format: int64, description: Hidden isolation key for subsequent PDA evidence calls}
|
||||
inboundId: {type: integer, format: int64}
|
||||
inboundDetailId: {type: integer, format: int64}
|
||||
orderNo: {type: string, nullable: true}
|
||||
inboundCode: {type: string, nullable: true}
|
||||
cargoName: {type: string, nullable: true}
|
||||
boxCodes:
|
||||
type: array
|
||||
description: Stable carton label codes; one successful scan represents one carton
|
||||
items: {type: string}
|
||||
plannedPackageCount: {type: integer, minimum: 1}
|
||||
pickedPackageCount: {type: integer, minimum: 0}
|
||||
itemStatus: {type: string, enum: [PENDING, PICKING, PICKED, PARTIAL, SKIPPED]}
|
||||
version: {type: integer, minimum: 0}
|
||||
PendingTask:
|
||||
type: object
|
||||
required: [taskId, loadingPlanId, containerNo, warehouseId, taskStatus, workflowStatus, version, assignmentVersion, itemCount, pendingItemCount]
|
||||
|
||||
Reference in New Issue
Block a user