云
2026-10-29 0a2206a53d5889b6095f4819c263be858d86ca91
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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());
    }
}