This commit is contained in:
2026-08-10 16:24:47 +08:00
parent 9ab7c01639
commit 59a4eb8ed5
8 changed files with 307 additions and 9 deletions
@@ -32,7 +32,7 @@ public interface OutboundDispatchReadMapper {
@Param("containerBookingId") Long containerBookingId);
@Select("SELECT id,task_status status FROM fl_loading_pick_task WHERE loading_plan_id=#{planId} "
+ "ORDER BY created_at DESC,id DESC LIMIT 1")
+ "ORDER BY started_at DESC,id DESC LIMIT 1")
IdStatus pick(@Param("planId") long planId);
@Select("""
@@ -11,14 +11,15 @@ import org.springframework.transaction.annotation.Transactional;
public class MeasurementSubmissionService {
@Resource
private InboundMeasurementService measurements;
@Resource
private MeasurementLocationOccupationService locations;
@Transactional
public InboundMeasurementResponses.MeasurementSubmitted submit(
long tenantId, long inboundId, long operatorId,
InboundMeasurementRequests.SubmitRequest request) {
var result = measurements.submit(tenantId, inboundId, operatorId, request);
// 当前版本不把托盘/库位占用作为测量提交的强制门禁;入库主状态由客服确认测量时推进,
// 仓储资源可在后续作业阶段继续维护。
locations.occupy(tenantId, inboundId, operatorId, result.measurementId(), result.version());
return result;
}
}
@@ -0,0 +1,19 @@
package com.baiyue.firstleg.outbound.dispatch;
import com.baiyue.firstleg.outbound.dispatch.mapper.OutboundDispatchReadMapper;
import org.apache.ibatis.annotations.Select;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
class OutboundDispatchReadMapperContractTest {
@Test
void pickTaskQueryOrdersByTheSchemaStartedAtColumn() throws Exception {
String sql = OutboundDispatchReadMapper.class.getMethod("pick", long.class)
.getAnnotation(Select.class).value()[0];
assertThat(sql)
.contains("ORDER BY started_at DESC,id DESC")
.doesNotContain("created_at");
}
}
@@ -9,9 +9,7 @@ import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import org.springframework.transaction.annotation.Transactional;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.when;
@SpringJUnitConfig(MeasurementSubmissionService.class)
@@ -37,7 +35,7 @@ class MeasurementSubmissionServiceTest {
assertThat(service.submit(10001L, 88L, 9L, request)).isSameAs(submitted);
verifyNoInteractions(locations);
verify(locations).occupy(10001L, 88L, 9L, 30L, 3);
}
@Test
@@ -47,6 +45,6 @@ class MeasurementSubmissionServiceTest {
30L, 3, "MEASURE_PENDING", "PENDING", "STANDARD", null, null, null);
when(measurements.submit(10001L, 88L, 9L, request)).thenReturn(submitted);
assertThat(service.submit(10001L, 88L, 9L, request)).isSameAs(submitted);
verifyNoInteractions(locations);
verify(locations).occupy(10001L, 88L, 9L, 30L, 3);
}
}