This commit is contained in:
2026-08-24 19:23:20 +08:00
parent 7e080622f3
commit 551560efda
6 changed files with 78 additions and 4 deletions
@@ -1,7 +1,9 @@
package com.baiyue.lastleg.inboundplan.pda.dto; package com.baiyue.lastleg.inboundplan.pda.dto;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive; import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;
@@ -11,11 +13,14 @@ public final class ReceivingContainerRequests {
private ReceivingContainerRequests() { } private ReceivingContainerRequests() { }
public record Action(@NotBlank @Size(max = 255) String idempotencyKey) { } public record Action(@NotBlank @Size(max = 255) String idempotencyKey) { }
public record Sign(@NotEmpty List<@Positive Long> photoFileIds, public record Sign(@Size(min = 3, max = 3) List<@Valid SignedPhoto> photos,
@NotBlank @Size(max = 255) String idempotencyKey) { } @NotBlank @Size(max = 255) String idempotencyKey) { }
public record SignedPhoto(@NotNull ReceivingPhotoRole role, @Positive long fileId) { }
public record CartonResolve(@NotBlank String cartonMark) { } public record CartonResolve(@NotBlank String cartonMark) { }
public record SkuResolve(@NotBlank @Size(max = 128) String skuCode) { }
public record PalletResolve(@NotBlank String palletCode, @NotBlank String inboundCode) { } public record PalletResolve(@NotBlank String palletCode, @NotBlank String inboundCode) { }
public record BulkReceive(@NotBlank String inboundCode, @NotBlank String palletCode, public record BulkReceive(@NotBlank String inboundCode, @NotBlank @Size(max = 128) String skuCode,
@NotBlank String palletCode,
@Positive int packageCount, @NotBlank @Size(max = 255) String idempotencyKey) { } @Positive int packageCount, @NotBlank @Size(max = 255) String idempotencyKey) { }
public record CartonReceive(@NotBlank String cartonMark, @NotBlank String palletCode, public record CartonReceive(@NotBlank String cartonMark, @NotBlank String palletCode,
@NotBlank @Size(max = 255) String idempotencyKey) { } @NotBlank @Size(max = 255) String idempotencyKey) { }
@@ -7,14 +7,17 @@ public final class ReceivingContainerResponses {
private ReceivingContainerResponses() { } private ReceivingContainerResponses() { }
public record Candidate(String containerNo, String status, int planCount, int inboundCodeCount, public record Candidate(String containerNo, String status, int planCount, int inboundCodeCount,
List<String> destinationCodes, int plannedPalletCount,
int totalPackages, int receivedPackages, boolean currentAccount) { } int totalPackages, int receivedPackages, boolean currentAccount) { }
public record Session(String containerNo, String status, String operatorName, int version, public record Session(String containerNo, String status, String operatorName, int version,
List<Long> photoFileIds, LocalDateTime preparedAt, LocalDateTime signedAt, List<SignedPhoto> photos, LocalDateTime preparedAt, LocalDateTime signedAt,
LocalDateTime receivingAt, LocalDateTime completedAt, LocalDateTime receivingAt, LocalDateTime completedAt,
int totalPackages, int receivedPackages, int pendingPackages, int totalPackages, int receivedPackages, int pendingPackages,
List<Inbound> inbounds) { } List<Inbound> inbounds) { }
public record SignedPhoto(ReceivingPhotoRole role, long fileId) { }
public record Inbound(String inboundCode, String destinationType, String destinationWarehouseId, public record Inbound(String inboundCode, String destinationType, String destinationWarehouseId,
String destinationWarehouseCode, String destinationWarehouseName, String destinationWarehouseCode, String destinationWarehouseName,
String fbaWarehouseCode, int plannedPalletCount, int totalPackages, String fbaWarehouseCode, int plannedPalletCount, int totalPackages,
@@ -26,6 +29,12 @@ public final class ReceivingContainerResponses {
String fbaWarehouseCode, int plannedPalletCount, int totalPackages, String fbaWarehouseCode, int plannedPalletCount, int totalPackages,
int receivedPackages, int pendingPackages) { } int receivedPackages, int pendingPackages) { }
public record SkuResolved(String skuCode, String productName, String inboundCode,
String destinationType, String destinationWarehouseId,
String destinationWarehouseCode, String destinationWarehouseName,
String fbaWarehouseCode, int plannedPalletCount, int totalPackages,
int receivedPackages, int pendingPackages) { }
public record PalletResolved(String palletCode, long warehouseId, String status, public record PalletResolved(String palletCode, long warehouseId, String status,
String fbaWarehouseCode, String inboundCode, String fbaWarehouseCode, String inboundCode,
String destinationType, boolean compatible) { } String destinationType, boolean compatible) { }
@@ -0,0 +1,7 @@
package com.baiyue.lastleg.inboundplan.pda.dto;
public enum ReceivingPhotoRole {
LICENSE_PLATE,
CONTAINER_SEAL,
DOOR_OPEN
}
@@ -20,7 +20,7 @@ public class ReceivingContainerSession {
private String activeOperatorKey; private String activeOperatorKey;
private String activeContainerKey; private String activeContainerKey;
private String status; private String status;
private String photoFileIds; private String signPhotos;
private LocalDateTime preparedAt; private LocalDateTime preparedAt;
private LocalDateTime signedAt; private LocalDateTime signedAt;
private LocalDateTime receivingAt; private LocalDateTime receivingAt;
@@ -0,0 +1,30 @@
package com.baiyue.lastleg.inboundplan.pda.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import lombok.Data;
import java.time.LocalDateTime;
@Data
@TableName("ll_receiving_sku_receipt")
public class ReceivingSkuReceipt {
@TableId(type = IdType.INPUT)
private Long id;
private String customerId;
private Long sessionId;
private Long planId;
private Long lineId;
private Long palletId;
private Long orderId;
private String inboundCode;
private String skuCode;
private String productName;
private Integer receivedPackages;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
@Version
private Integer version;
}
@@ -0,0 +1,23 @@
package com.baiyue.lastleg.inboundplan.pda.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baiyue.lastleg.inboundplan.pda.entity.ReceivingSkuReceipt;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface ReceivingSkuReceiptMapper extends BaseMapper<ReceivingSkuReceipt> {
@Select("SELECT * FROM ll_receiving_sku_receipt WHERE customer_id=#{customerId} " +
"AND line_id=#{lineId} AND sku_code=#{skuCode} ORDER BY id FOR UPDATE")
List<ReceivingSkuReceipt> lockLineSku(@Param("customerId") String customerId,
@Param("lineId") Long lineId,
@Param("skuCode") String skuCode);
@Select("SELECT * FROM ll_receiving_sku_receipt WHERE customer_id=#{customerId} " +
"AND plan_id=#{planId} ORDER BY line_id,pallet_id,sku_code,id")
List<ReceivingSkuReceipt> listPlan(@Param("customerId") String customerId,
@Param("planId") Long planId);
}