Merge pull request '优化' (#10) from test into main
Reviewed-on: #10
This commit was merged in pull request #10.
This commit is contained in:
@@ -28,7 +28,7 @@ import java.util.List;
|
||||
@Select("SELECT COUNT(*) FROM fl_loading_pick_item WHERE pick_task_id=#{id}") int itemCount(@Param("id") long id);
|
||||
@Select("SELECT COUNT(*) FROM fl_loading_pick_item WHERE pick_task_id=#{id} AND item_status IN ('PICKED','PARTIAL','SKIPPED')") int completedItemCount(@Param("id") long id);
|
||||
@Select("SELECT COUNT(*) FROM fl_loading_pick_item WHERE pick_task_id=#{id} AND item_status NOT IN ('PICKED','PARTIAL','SKIPPED')") int unresolvedItemCount(@Param("id") long id);
|
||||
@Select("SELECT DISTINCT h.operation_reason FROM fl_loading_pick_history h WHERE h.pick_task_id=#{id} AND h.operation_reason IS NOT NULL AND h.operation_reason<>'' ORDER BY h.id") List<String> pickExceptionReasons(@Param("id") long id);
|
||||
@Select("SELECT h.operation_reason FROM fl_loading_pick_history h WHERE h.pick_task_id=#{id} AND h.operation_reason IS NOT NULL AND h.operation_reason<>'' GROUP BY h.operation_reason ORDER BY MIN(h.id)") List<String> pickExceptionReasons(@Param("id") long id);
|
||||
@Select("SELECT e.id evidenceId,NULL tenantId,NULL inboundId,e.evidence_type evidenceType,e.file_id fileId,e.file_name fileName,e.status,e.created_at uploadedAt FROM fl_loading_cabinet_evidence e JOIN fl_loading_plan p ON p.container_booking_id=e.container_booking_id WHERE p.id=#{id} ORDER BY e.created_at,e.id") List<PhotoRow> photos(@Param("id") long id);
|
||||
@Select("SELECT action_type eventType,operation_id detail,operator_id operatorId,operator_name operatorName,created_at occurredAt FROM fl_loading_pick_operation WHERE pick_task_id=#{id} ORDER BY created_at,id") List<TimelineRow> pickTimeline(@Param("id") long id);
|
||||
record ExceptionRow(Long id,String action,String reason,Long operatorId,String operatorName,java.time.LocalDateTime occurredAt,String requestHash) {}
|
||||
|
||||
@@ -53,13 +53,6 @@ public interface InboundHoldGateMapper {
|
||||
WHERE plan_item.account_id=inbound.tenant_id AND plan_item.inbound_id=inbound.id
|
||||
AND plan_item.deleted=0 AND pick_item.picked_package_count>0
|
||||
)
|
||||
OR EXISTS (
|
||||
SELECT 1 FROM fl_loading_plan_item plan_item
|
||||
JOIN fl_loading_pick_item pick_item ON pick_item.loading_plan_item_id=plan_item.id
|
||||
JOIN fl_loading_work_pallet_carton carton ON carton.pick_item_id=pick_item.id
|
||||
WHERE plan_item.account_id=inbound.tenant_id AND plan_item.inbound_id=inbound.id
|
||||
AND plan_item.deleted=0
|
||||
)
|
||||
OR EXISTS (
|
||||
SELECT 1 FROM fl_outbound_dispatch dispatch
|
||||
WHERE dispatch.tenant_id=inbound.tenant_id AND dispatch.inbound_id=inbound.id
|
||||
|
||||
+9
@@ -29,6 +29,15 @@ class ContainerOverviewSqlContractTest {
|
||||
.doesNotContain("SELECT *");
|
||||
}
|
||||
|
||||
@Test void pickExceptionReasonsRemainOrderedWithoutInvalidDistinctOrdering() throws Exception {
|
||||
String sql = String.join(" ", ContainerOverviewMapper.class
|
||||
.getDeclaredMethod("pickExceptionReasons", long.class)
|
||||
.getAnnotation(Select.class).value());
|
||||
assertThat(sql)
|
||||
.contains("GROUP BY h.operation_reason", "ORDER BY MIN(h.id)")
|
||||
.doesNotContain("SELECT DISTINCT");
|
||||
}
|
||||
|
||||
@Test void exceptionQueriesSelectEveryExceptionRowConstructorField() throws Exception {
|
||||
for (String method : java.util.List.of("exceptions", "latestException")) {
|
||||
String sql = String.join(" ", ContainerOverviewMapper.class.getDeclaredMethod(method, long.class)
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package com.baiyue.firstleg.repository;
|
||||
|
||||
import com.baiyue.firstleg.mapper.InboundHoldGateMapper;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class InboundHoldGateSqlContractTest {
|
||||
@Test void physicalWorkGateUsesOnlyCurrentFulfillmentTables() throws Exception {
|
||||
String sql = String.join(" ", InboundHoldGateMapper.class
|
||||
.getDeclaredMethod("hasPhysicalWork", long.class, long.class)
|
||||
.getAnnotation(Select.class).value());
|
||||
|
||||
assertThat(sql)
|
||||
.contains("fl_loading_pick_item", "picked_package_count>0", "fl_outbound_dispatch")
|
||||
.doesNotContain("fl_loading_work_pallet", "fl_loading_work_pallet_carton");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user