package cn.iocoder.yudao.module.mes.service.wm.materialstock; import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockPageReqVO; import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialstock.MesWmMaterialStockMapper; import jakarta.annotation.Resource; import org.junit.jupiter.api.Test; import org.springframework.jdbc.core.JdbcTemplate; import javax.sql.DataSource; import static org.junit.jupiter.api.Assertions.assertEquals; class MesWmMaterialStockSearchTest extends BaseDbUnitTest { @Resource private MesWmMaterialStockMapper mapper; @Resource private DataSource dataSource; @Test void filtersItemNameCodeVendorAndMdmIdBeforePagination() { JdbcTemplate jdbc = new JdbcTemplate(dataSource); jdbc.execute("ALTER TABLE mes_wm_material_stock ADD COLUMN IF NOT EXISTS frozen_quantity DECIMAL(14,2)"); jdbc.execute("ALTER TABLE mes_wm_material_stock ADD COLUMN IF NOT EXISTS reserved_quantity DECIMAL(14,2)"); jdbc.execute("ALTER TABLE mes_wm_material_stock ADD COLUMN IF NOT EXISTS in_transit_quantity DECIMAL(14,2)"); jdbc.execute("CREATE TABLE IF NOT EXISTS mdm_item (id BIGINT PRIMARY KEY, name VARCHAR(100), code VARCHAR(100), deleted BOOLEAN)"); jdbc.execute("CREATE TABLE IF NOT EXISTS srm_supplier (id BIGINT PRIMARY KEY, name VARCHAR(100), deleted BOOLEAN)"); jdbc.update("INSERT INTO mdm_item VALUES (901, '黑枸杞', 'E2E-901', FALSE), (902, '黄芪', 'E2E-902', FALSE)"); jdbc.update("INSERT INTO srm_supplier VALUES (801, '测试供应商', FALSE), (802, '其他供应商', FALSE)"); jdbc.update("INSERT INTO mes_wm_material_stock (item_id, vendor_id, quantity) VALUES (901, 801, 1), (902, 802, 1)"); var req = new MesWmMaterialStockPageReqVO(); req.setItemName("枸杞"); assertEquals(1L, mapper.selectPage(req, null, null, null).getTotal()); req.setItemName("E2E-901"); req.setVendorName("测试"); assertEquals(1L, mapper.selectPage(req, null, null, null).getTotal()); req.setMdmItemId(902L); assertEquals(0L, mapper.selectPage(req, null, null, null).getTotal()); req.setItemName("不存在"); req.setMdmItemId(null); assertEquals(0L, mapper.selectPage(req, null, null, null).getTotal()); } }