diff --git a/src/main/java/tech/riemann/ims/controller/platform/material/MaterialController.java b/src/main/java/tech/riemann/ims/controller/platform/material/MaterialController.java index c6e028c..390eac5 100644 --- a/src/main/java/tech/riemann/ims/controller/platform/material/MaterialController.java +++ b/src/main/java/tech/riemann/ims/controller/platform/material/MaterialController.java @@ -65,37 +65,23 @@ public class MaterialController { public IPage materials( @Parameter(description = "页码") @RequestParam(required = false, defaultValue = "1") int page, @Parameter(description = "页面大小") @RequestParam(required = false, defaultValue = "10") int size, - @Parameter(description = "类型") @RequestParam(required = false, defaultValue = "") Integer type, + @Parameter(description = "类型") @RequestParam(required = false, defaultValue = "") String type, @Parameter(description = "搜索关键词") @RequestParam(required = false, defaultValue = "") String key) { - boolean hasLike = Strings.isNotBlank(key); - key = String.format("%%%s%%", key); - Page result = materialService.page(Page.of(page, size), Wrappers.lambdaQuery() - .like(hasLike, Material::getName, key) - .or() - .like(hasLike, Material::getCode, key) - .or() - .like(hasLike, Material::getType, key) - .orderByDesc(Material::getUpdatedTime)); + String[] types = StringUtils.isNotBlank(type) ? type.split(",") : new String[0]; + Page result = materialService.getPage(Page.of(page, size), List.of(types),key); result.getRecords().forEach(item -> item.setTypeName(typeService.getTypeName(item.getType()))); return result; } @GetMapping("material/download-excel") @Operation(summary = "导出物料列表") - public void downloadExcel(@Parameter(description = "类型") @RequestParam(required = false, defaultValue = "") Integer type, + public void downloadExcel(@Parameter(description = "类型") @RequestParam(required = false, defaultValue = "") String type, @Parameter(description = "搜索关键词") @RequestParam(required = false, defaultValue = "") String key, HttpServletResponse response) { - boolean hasLike = Strings.isNotBlank(key); - key = String.format("%%%s%%", key); - List result = materialService.list(Wrappers.lambdaQuery() - .like(hasLike, Material::getName, key) - .or() - .like(hasLike, Material::getCode, key) - .or() - .like(hasLike, Material::getType, key) - .orderByDesc(Material::getUpdatedTime)); - result.forEach(item -> item.setTypeName(typeService.getTypeName(item.getType()))); - ExcelUtil.exportExcel(response, "物料列表-" + System.currentTimeMillis(), "库存", Material.class, result); + String[] types = StringUtils.isNotBlank(type) ? type.split(",") : new String[0]; + Page result = materialService.getPage(Page.of(1, 10000), List.of(types),key); + result.getRecords().forEach(item -> item.setTypeName(typeService.getTypeName(item.getType()))); + ExcelUtil.exportExcel(response, "物料列表-" + System.currentTimeMillis(), "库存", Material.class, result.getRecords()); } @PostMapping("material/list") diff --git a/src/main/java/tech/riemann/ims/mapper/material/MaterialMapper.java b/src/main/java/tech/riemann/ims/mapper/material/MaterialMapper.java index 56a76b6..9b6c72b 100644 --- a/src/main/java/tech/riemann/ims/mapper/material/MaterialMapper.java +++ b/src/main/java/tech/riemann/ims/mapper/material/MaterialMapper.java @@ -1,6 +1,7 @@ package tech.riemann.ims.mapper.material; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import tech.riemann.ims.entity.material.Material; @@ -12,4 +13,6 @@ import java.util.List; */ public interface MaterialMapper extends BaseMapper { List queryLikeRight( @Param("types") List types); + + Page getPage(Page page, List types, String key); } diff --git a/src/main/java/tech/riemann/ims/service/material/IMaterialService.java b/src/main/java/tech/riemann/ims/service/material/IMaterialService.java index 0b1be89..834bbf1 100644 --- a/src/main/java/tech/riemann/ims/service/material/IMaterialService.java +++ b/src/main/java/tech/riemann/ims/service/material/IMaterialService.java @@ -1,5 +1,6 @@ package tech.riemann.ims.service.material; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.nutz.spring.boot.service.interfaces.IdNameEntityService; import tech.riemann.ims.entity.material.Material; @@ -13,4 +14,6 @@ import java.util.List; public interface IMaterialService extends IService, IdNameEntityService { List queryLikeRight(List types); + + Page getPage(Page page, List types, String key); } diff --git a/src/main/java/tech/riemann/ims/service/material/impl/MaterialServiceImpl.java b/src/main/java/tech/riemann/ims/service/material/impl/MaterialServiceImpl.java index 7514967..3b01c5b 100644 --- a/src/main/java/tech/riemann/ims/service/material/impl/MaterialServiceImpl.java +++ b/src/main/java/tech/riemann/ims/service/material/impl/MaterialServiceImpl.java @@ -1,5 +1,6 @@ package tech.riemann.ims.service.material.impl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import org.nutz.dao.Dao; @@ -28,4 +29,9 @@ public class MaterialServiceImpl extends ServiceImpl i public List queryLikeRight(List types) { return baseMapper.queryLikeRight(types); } + + @Override + public Page getPage(Page page, List types, String key) { + return baseMapper.getPage(page, types, key); + } } diff --git a/src/main/resources/mapper/MaterialMapper.xml b/src/main/resources/mapper/MaterialMapper.xml index d25c277..2706597 100644 --- a/src/main/resources/mapper/MaterialMapper.xml +++ b/src/main/resources/mapper/MaterialMapper.xml @@ -30,5 +30,40 @@ + \ No newline at end of file