暂存提交
This commit is contained in:
+16
@@ -0,0 +1,16 @@
|
||||
package com.baiyue.warehouse.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baiyue.warehouse.entity.ServiceCapabilityEntity;
|
||||
import org.apache.ibatis.annotations.Delete;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 仓库服务能力 MyBatis-Plus Mapper,负责 {@code wh_service_capability} 表访问及仓库子记录的物理清理。
|
||||
*/
|
||||
public interface ServiceCapabilityMapper extends BaseMapper<ServiceCapabilityEntity> {
|
||||
|
||||
@Delete("DELETE FROM wh_service_capability WHERE customer_id = #{customerId} AND warehouse_id = #{warehouseId}")
|
||||
int physicallyDeleteByWarehouse(@Param("customerId") long customerId,
|
||||
@Param("warehouseId") long warehouseId);
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.baiyue.warehouse.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baiyue.warehouse.entity.WarehouseAddressEntity;
|
||||
import org.apache.ibatis.annotations.Delete;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 仓库地址 MyBatis-Plus Mapper,负责 {@code wh_warehouse_address} 表访问及仓库子记录的物理清理。
|
||||
*/
|
||||
public interface WarehouseAddressMapper extends BaseMapper<WarehouseAddressEntity> {
|
||||
|
||||
@Delete("DELETE FROM wh_warehouse_address WHERE customer_id = #{customerId} AND warehouse_id = #{warehouseId}")
|
||||
int physicallyDeleteByWarehouse(@Param("customerId") long customerId,
|
||||
@Param("warehouseId") long warehouseId);
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.baiyue.warehouse.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baiyue.warehouse.entity.WarehouseLocationEntity;
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
public interface WarehouseLocationMapper extends BaseMapper<WarehouseLocationEntity> {
|
||||
/**
|
||||
* The unique location-code index makes this safe for concurrent first use of an older warehouse.
|
||||
*/
|
||||
@Insert("""
|
||||
INSERT IGNORE INTO wh_location
|
||||
(id, customer_id, warehouse_id, zone_code, location_code, location_type,
|
||||
max_load_kg, status, remark, deleted, version)
|
||||
VALUES
|
||||
(#{location.id}, #{location.customerId}, #{location.warehouseId}, #{location.zoneCode},
|
||||
#{location.locationCode}, #{location.locationType}, #{location.maxLoadKg},
|
||||
#{location.status}, #{location.remark}, 0, 0)
|
||||
""")
|
||||
int insertDefaultVirtualLocationIgnore(@Param("location") WarehouseLocationEntity location);
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
package com.baiyue.warehouse.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baiyue.warehouse.entity.WarehouseEntity;
|
||||
|
||||
/**
|
||||
* 仓库主数据 MyBatis-Plus Mapper,提供 {@code wh_warehouse} 表的单表持久化访问。
|
||||
*/
|
||||
public interface WarehouseMapper extends BaseMapper<WarehouseEntity> {}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package com.baiyue.warehouse.mapper;
|
||||
|
||||
import com.baiyue.warehouse.entity.WarehousePalletBindingEntity;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
public interface WarehousePalletBindingMapper extends BaseMapper<WarehousePalletBindingEntity> {
|
||||
@Select("SELECT * FROM wh_pallet_business_binding WHERE customer_id=#{customerId} AND warehouse_id=#{warehouseId} " +
|
||||
"AND business_type=#{businessType} AND business_id=#{businessId} LIMIT 1")
|
||||
WarehousePalletBindingEntity find(@Param("customerId") long customerId, @Param("warehouseId") long warehouseId,
|
||||
@Param("businessType") String businessType, @Param("businessId") String businessId);
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package com.baiyue.warehouse.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baiyue.warehouse.entity.WarehousePalletEntity;
|
||||
|
||||
public interface WarehousePalletMapper extends BaseMapper<WarehousePalletEntity> {
|
||||
}
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
package com.baiyue.warehouse.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baiyue.warehouse.entity.WarehouseResourceLockEntity;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
public interface WarehouseResourceLockMapper extends BaseMapper<WarehouseResourceLockEntity> {
|
||||
@Select("""
|
||||
SELECT * FROM wh_resource_lock
|
||||
WHERE customer_id = #{customerId} AND reservation_key = #{reservationKey}
|
||||
LIMIT 1
|
||||
""")
|
||||
WarehouseResourceLockEntity findByReservationKey(@Param("customerId") long customerId,
|
||||
@Param("reservationKey") String reservationKey);
|
||||
|
||||
@Select("SELECT * FROM wh_resource_lock WHERE customer_id=#{customerId} AND pallet_id=#{palletId} " +
|
||||
"AND status='ACTIVE' ORDER BY locked_at DESC LIMIT 1")
|
||||
WarehouseResourceLockEntity findActiveByPallet(@Param("customerId") long customerId,
|
||||
@Param("palletId") long palletId);
|
||||
|
||||
@Update("""
|
||||
UPDATE wh_pallet
|
||||
SET status = 'OCCUPIED', location_id = #{locationId}, updated_at = CURRENT_TIMESTAMP(3), version = version + 1
|
||||
WHERE id = #{palletId} AND customer_id = #{customerId} AND warehouse_id = #{warehouseId}
|
||||
AND status = 'IDLE' AND deleted = 0
|
||||
""")
|
||||
int occupyPallet(@Param("customerId") long customerId, @Param("warehouseId") long warehouseId,
|
||||
@Param("palletId") long palletId, @Param("locationId") long locationId);
|
||||
|
||||
@Update("""
|
||||
UPDATE wh_location
|
||||
SET status = 'OCCUPIED', updated_at = CURRENT_TIMESTAMP(3), version = version + 1
|
||||
WHERE id = #{locationId} AND customer_id = #{customerId} AND warehouse_id = #{warehouseId}
|
||||
AND status = 'IDLE' AND deleted = 0
|
||||
""")
|
||||
int occupyLocation(@Param("customerId") long customerId, @Param("warehouseId") long warehouseId,
|
||||
@Param("locationId") long locationId);
|
||||
|
||||
@Update("""
|
||||
UPDATE wh_pallet
|
||||
SET status = 'IDLE', location_id = NULL, updated_at = CURRENT_TIMESTAMP(3), version = version + 1
|
||||
WHERE id = #{palletId} AND customer_id = #{customerId} AND warehouse_id = #{warehouseId}
|
||||
AND location_id = #{locationId} AND status = 'OCCUPIED' AND deleted = 0
|
||||
""")
|
||||
int releasePallet(@Param("customerId") long customerId, @Param("warehouseId") long warehouseId,
|
||||
@Param("palletId") long palletId, @Param("locationId") long locationId);
|
||||
|
||||
@Update("""
|
||||
UPDATE wh_pallet
|
||||
SET status = 'IDLE', updated_at = CURRENT_TIMESTAMP(3), version = version + 1
|
||||
WHERE id = #{palletId} AND customer_id = #{customerId} AND warehouse_id = #{warehouseId}
|
||||
AND location_id = #{locationId} AND status = 'OCCUPIED' AND deleted = 0
|
||||
""")
|
||||
int releasePalletAtVirtualLocation(@Param("customerId") long customerId,
|
||||
@Param("warehouseId") long warehouseId,
|
||||
@Param("palletId") long palletId,
|
||||
@Param("locationId") long locationId);
|
||||
|
||||
@Update("""
|
||||
UPDATE wh_location
|
||||
SET status = 'IDLE', updated_at = CURRENT_TIMESTAMP(3), version = version + 1
|
||||
WHERE id = #{locationId} AND customer_id = #{customerId} AND warehouse_id = #{warehouseId}
|
||||
AND status = 'OCCUPIED' AND deleted = 0
|
||||
""")
|
||||
int releaseLocation(@Param("customerId") long customerId, @Param("warehouseId") long warehouseId,
|
||||
@Param("locationId") long locationId);
|
||||
|
||||
@Update("""
|
||||
UPDATE wh_pallet
|
||||
SET status = 'SCRAPPED', location_id = NULL, updated_at = CURRENT_TIMESTAMP(3), version = version + 1
|
||||
WHERE id = #{palletId} AND customer_id = #{customerId} AND warehouse_id = #{warehouseId}
|
||||
AND location_id = #{locationId} AND status = 'OCCUPIED' AND deleted = 0
|
||||
""")
|
||||
int scrapPallet(@Param("customerId") long customerId, @Param("warehouseId") long warehouseId,
|
||||
@Param("palletId") long palletId, @Param("locationId") long locationId);
|
||||
|
||||
@Update("""
|
||||
UPDATE wh_pallet
|
||||
SET status = 'SCRAPPED', updated_at = CURRENT_TIMESTAMP(3), version = version + 1
|
||||
WHERE id = #{palletId} AND customer_id = #{customerId} AND warehouse_id = #{warehouseId}
|
||||
AND location_id = #{locationId} AND status = 'OCCUPIED' AND deleted = 0
|
||||
""")
|
||||
int scrapPalletAtVirtualLocation(@Param("customerId") long customerId,
|
||||
@Param("warehouseId") long warehouseId,
|
||||
@Param("palletId") long palletId,
|
||||
@Param("locationId") long locationId);
|
||||
|
||||
@Update("UPDATE wh_pallet SET status='SCRAPPED',updated_at=CURRENT_TIMESTAMP(3),version=version+1 " +
|
||||
"WHERE customer_id=#{customerId} AND id=#{palletId} AND status='OCCUPIED' AND deleted=0")
|
||||
int scrapPalletWithoutLock(@Param("customerId") long customerId, @Param("palletId") long palletId);
|
||||
|
||||
@Update("""
|
||||
UPDATE wh_resource_lock
|
||||
SET status = #{status}, released_at = CURRENT_TIMESTAMP(3), updated_at = CURRENT_TIMESTAMP(3)
|
||||
WHERE id = #{id} AND status = 'ACTIVE'
|
||||
""")
|
||||
int closeLock(@Param("id") long id, @Param("status") String status);
|
||||
}
|
||||
Reference in New Issue
Block a user