feat(mat-purchase): 添加采购单分页查询功能并优化数据展示
- 新增 MatPurchaseVo 扩展字段包括配料名称、规格、型号、单位和当前库存 - 在 MatPurchaseMapper 中添加 selectVoPagePlus 方法支持分页查询 - 创建 MatPurchaseMapper.xml 中的 selectVoPagePlus 查询语句实现多表关联查询 - 修改 MatPurchaseServiceImpl 实现类中的 queryPageList 方法使用新的分页查询方法 - 添加 buildQueryWrapperPlus 私有方法构建查询条件并支持按截止时间倒序排列 - 更新查询逻辑从使用 LambdaQueryWrapper 到 QueryWrapper 并优化查询性能
This commit is contained in:
@@ -99,5 +99,31 @@ public class MatPurchaseVo {
|
|||||||
@ExcelProperty(value = "备注")
|
@ExcelProperty(value = "备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配料名称
|
||||||
|
*/
|
||||||
|
private String materialName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配料规格
|
||||||
|
*/
|
||||||
|
private String spec;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配料型号
|
||||||
|
*/
|
||||||
|
private String model;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配料单位
|
||||||
|
*/
|
||||||
|
private String unit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前库存
|
||||||
|
*/
|
||||||
|
private BigDecimal currentStock;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
package com.gear.mat.mapper;
|
package com.gear.mat.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.gear.mat.domain.MatPurchase;
|
import com.gear.mat.domain.MatPurchase;
|
||||||
import com.gear.mat.domain.vo.MatPurchaseVo;
|
import com.gear.mat.domain.vo.MatPurchaseVo;
|
||||||
import com.gear.common.core.mapper.BaseMapperPlus;
|
import com.gear.common.core.mapper.BaseMapperPlus;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 采购单主(管理在途库存)Mapper接口
|
* 采购单主(管理在途库存)Mapper接口
|
||||||
@@ -12,4 +16,6 @@ import com.gear.common.core.mapper.BaseMapperPlus;
|
|||||||
*/
|
*/
|
||||||
public interface MatPurchaseMapper extends BaseMapperPlus<MatPurchaseMapper, MatPurchase, MatPurchaseVo> {
|
public interface MatPurchaseMapper extends BaseMapperPlus<MatPurchaseMapper, MatPurchase, MatPurchaseVo> {
|
||||||
|
|
||||||
|
Page<MatPurchaseVo> selectVoPagePlus(@Param("page") Page<MatPurchaseVo> page, @Param(Constants.WRAPPER) Wrapper<MatPurchase> wrapper);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.gear.mat.service.impl;
|
package com.gear.mat.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.gear.common.utils.StringUtils;
|
import com.gear.common.utils.StringUtils;
|
||||||
import com.gear.common.core.page.TableDataInfo;
|
import com.gear.common.core.page.TableDataInfo;
|
||||||
import com.gear.common.core.domain.PageQuery;
|
import com.gear.common.core.domain.PageQuery;
|
||||||
@@ -44,11 +45,30 @@ public class MatPurchaseServiceImpl implements IMatPurchaseService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<MatPurchaseVo> queryPageList(MatPurchaseBo bo, PageQuery pageQuery) {
|
public TableDataInfo<MatPurchaseVo> queryPageList(MatPurchaseBo bo, PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<MatPurchase> lqw = buildQueryWrapper(bo);
|
QueryWrapper<MatPurchase> qw = buildQueryWrapperPlus(bo);
|
||||||
Page<MatPurchaseVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
Page<MatPurchaseVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), qw);
|
||||||
return TableDataInfo.build(result);
|
return TableDataInfo.build(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private QueryWrapper<MatPurchase> buildQueryWrapperPlus(MatPurchaseBo bo) {
|
||||||
|
QueryWrapper<MatPurchase> qw = Wrappers.query();
|
||||||
|
qw.eq(StringUtils.isNotBlank(bo.getPurchaseNo()), "mp.purchase_no", bo.getPurchaseNo());
|
||||||
|
qw.eq(StringUtils.isNotBlank(bo.getFactory()), "mp.factory", bo.getFactory());
|
||||||
|
qw.eq(bo.getMaterialId() != null, "mp.material_id", bo.getMaterialId());
|
||||||
|
qw.eq(bo.getPlanNum() != null, "mp.plan_num", bo.getPlanNum());
|
||||||
|
qw.eq(bo.getPurchasePrice() != null, "mp.purchase_price", bo.getPurchasePrice());
|
||||||
|
qw.ge(bo.getBeginTime() != null, "mp.deadline", bo.getBeginTime());
|
||||||
|
qw.le(bo.getEndTime() != null, "mp.deadline", bo.getEndTime());
|
||||||
|
qw.eq(bo.getStatus() != null, "mp.status", bo.getStatus());
|
||||||
|
qw.eq(bo.getCancelTime() != null, "mp.cancel_time", bo.getCancelTime());
|
||||||
|
qw.eq(StringUtils.isNotBlank(bo.getOperator()), "mp.operator", bo.getOperator());
|
||||||
|
// 逻辑删除
|
||||||
|
qw.eq("mp.del_flag", 0);
|
||||||
|
// 排序
|
||||||
|
qw.orderByDesc("mp.deadline");
|
||||||
|
return qw;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询采购单主(管理在途库存)列表
|
* 查询采购单主(管理在途库存)列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -23,5 +23,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="remark" column="remark"/>
|
<result property="remark" column="remark"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="selectVoPagePlus" resultType="com.gear.mat.domain.vo.MatPurchaseVo">
|
||||||
|
SELECT
|
||||||
|
mp.purchase_id AS purchaseId,
|
||||||
|
mp.purchase_no AS purchaseNo,
|
||||||
|
mp.factory AS factory,
|
||||||
|
mp.material_id AS materialId,
|
||||||
|
mp.plan_num AS planNum,
|
||||||
|
mp.purchase_price AS purchasePrice,
|
||||||
|
mp.deadline AS deadline,
|
||||||
|
mp.status AS status,
|
||||||
|
mp.cancel_time AS cancelTime,
|
||||||
|
mp.operator AS operator,
|
||||||
|
mp.remark,
|
||||||
|
mm.material_name AS materialName,
|
||||||
|
mm.spec AS spec,
|
||||||
|
mm.model AS model,
|
||||||
|
mm.factory AS materialFactory,
|
||||||
|
mm.unit AS unit,
|
||||||
|
mm.current_stock AS currentStock
|
||||||
|
FROM mat_purchase mp
|
||||||
|
LEFT JOIN mat_material mm ON mp.material_id = mm.material_id AND mm.del_flag = 0
|
||||||
|
${ew.customSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user