fix(firstleg): map PDA query rows to concrete beans

This commit is contained in:
2026-08-12 10:37:50 +08:00
parent b90470af97
commit 91c6ebca5c
3 changed files with 67 additions and 19 deletions
@@ -25,13 +25,26 @@ public interface LoadingPickItemMapper extends BaseMapper<LoadingPickItemEntity>
""")
List<CartonLabelRow> selectTaskCartonLabels(@Param("taskId") long taskId);
interface CartonLabelRow {
Long getPickItemId();
Long getTenantId();
String getOrderNo();
String getInboundCode();
String getCargoName();
String getBoxCode();
class CartonLabelRow {
private Long pickItemId;
private Long tenantId;
private String orderNo;
private String inboundCode;
private String cargoName;
private String boxCode;
public Long getPickItemId() { return pickItemId; }
public void setPickItemId(Long pickItemId) { this.pickItemId = pickItemId; }
public Long getTenantId() { return tenantId; }
public void setTenantId(Long tenantId) { this.tenantId = tenantId; }
public String getOrderNo() { return orderNo; }
public void setOrderNo(String orderNo) { this.orderNo = orderNo; }
public String getInboundCode() { return inboundCode; }
public void setInboundCode(String inboundCode) { this.inboundCode = inboundCode; }
public String getCargoName() { return cargoName; }
public void setCargoName(String cargoName) { this.cargoName = cargoName; }
public String getBoxCode() { return boxCode; }
public void setBoxCode(String boxCode) { this.boxCode = boxCode; }
}
@Update("UPDATE fl_loading_plan_item SET package_count=#{pickedCount},updated_by=#{operatorId},"
@@ -61,17 +61,40 @@ public interface LoadingPickTaskMapper extends BaseMapper<LoadingPickTaskEntity>
List<PendingTaskRow> selectPendingForOperator(@Param("operatorId") long operatorId,
@Param("keyword") String keyword);
interface PendingTaskRow {
Long getTaskId();
Long getLoadingPlanId();
String getContainerNo();
Long getWarehouseId();
String getWarehouseName();
String getTaskStatus();
String getWorkflowStatus();
Integer getVersion();
Integer getAssignmentVersion();
Integer getItemCount();
Integer getPendingItemCount();
class PendingTaskRow {
private Long taskId;
private Long loadingPlanId;
private String containerNo;
private Long warehouseId;
private String warehouseName;
private String taskStatus;
private String workflowStatus;
private Integer version;
private Integer assignmentVersion;
private Integer itemCount;
private Integer pendingItemCount;
public Long getTaskId() { return taskId; }
public void setTaskId(Long taskId) { this.taskId = taskId; }
public Long getLoadingPlanId() { return loadingPlanId; }
public void setLoadingPlanId(Long loadingPlanId) { this.loadingPlanId = loadingPlanId; }
public String getContainerNo() { return containerNo; }
public void setContainerNo(String containerNo) { this.containerNo = containerNo; }
public Long getWarehouseId() { return warehouseId; }
public void setWarehouseId(Long warehouseId) { this.warehouseId = warehouseId; }
public String getWarehouseName() { return warehouseName; }
public void setWarehouseName(String warehouseName) { this.warehouseName = warehouseName; }
public String getTaskStatus() { return taskStatus; }
public void setTaskStatus(String taskStatus) { this.taskStatus = taskStatus; }
public String getWorkflowStatus() { return workflowStatus; }
public void setWorkflowStatus(String workflowStatus) { this.workflowStatus = workflowStatus; }
public Integer getVersion() { return version; }
public void setVersion(Integer version) { this.version = version; }
public Integer getAssignmentVersion() { return assignmentVersion; }
public void setAssignmentVersion(Integer assignmentVersion) { this.assignmentVersion = assignmentVersion; }
public Integer getItemCount() { return itemCount; }
public void setItemCount(Integer itemCount) { this.itemCount = itemCount; }
public Integer getPendingItemCount() { return pendingItemCount; }
public void setPendingItemCount(Integer pendingItemCount) { this.pendingItemCount = pendingItemCount; }
}
}
@@ -5,9 +5,21 @@ import com.baiyue.firstleg.mapper.LoadingPickTaskMapper;
import org.apache.ibatis.annotations.Select;
import org.junit.jupiter.api.Test;
import java.lang.reflect.Modifier;
import static org.assertj.core.api.Assertions.assertThat;
class LoadingPickPdaTaskSqlContractTest {
@Test
void queryRowsAreConcreteBeansThatMyBatisCanInstantiate() throws Exception {
assertThat(LoadingPickTaskMapper.PendingTaskRow.class.isInterface()).isFalse();
assertThat(LoadingPickItemMapper.CartonLabelRow.class.isInterface()).isFalse();
assertThat(Modifier.isPublic(LoadingPickTaskMapper.PendingTaskRow.class.getConstructor().getModifiers()))
.isTrue();
assertThat(Modifier.isPublic(LoadingPickItemMapper.CartonLabelRow.class.getConstructor().getModifiers()))
.isTrue();
}
@Test
void pendingTasksAreLimitedToUnassignedOrCurrentOperatorWithoutCustomerInput() throws Exception {
String sql = LoadingPickTaskMapper.class