From 4a9460082562e8ce58de261b5cd70ae1abfbebc4 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 30 Jan 2026 15:16:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(mat):=20=E6=B7=BB=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E8=AE=B0=E5=BD=95=E7=9A=84=E8=81=94=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 selectVoPagePlus 方法支持多表关联查询 - 扩展 MatPurchaseInDetailVo 实体类增加采购和物料相关字段 - 实现 buildQueryWrapperPlus 方法优化查询条件构建 - 添加多表关联的 SQL 映射配置 - 支持按采购单号、物料信息等条件进行分页查询 --- .../mat/domain/vo/MatPurchaseInDetailVo.java | 77 +++++++++++++++++++ .../mat/mapper/MatPurchaseInDetailMapper.java | 4 + .../impl/MatPurchaseInDetailServiceImpl.java | 23 +++++- .../mapper/MatPurchaseInDetailMapper.xml | 34 ++++++++ 4 files changed, 136 insertions(+), 2 deletions(-) diff --git a/gear-mat/src/main/java/com/gear/mat/domain/vo/MatPurchaseInDetailVo.java b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatPurchaseInDetailVo.java index 92de9a4..a0995f3 100644 --- a/gear-mat/src/main/java/com/gear/mat/domain/vo/MatPurchaseInDetailVo.java +++ b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatPurchaseInDetailVo.java @@ -84,4 +84,81 @@ public class MatPurchaseInDetailVo { private String remark; + /** + * 采购单号 唯一 如P20260130001 + */ + private String purchaseNo; + + /** + * 厂家 + */ + private String factory; + + /** + * 配料ID 关联material.id + */ + private Long purchaseMaterialId; + + /** + * 采购计划数量 + */ + private BigDecimal planNum; + + /** + * 采购单价(本次录入价格) + */ + private BigDecimal purchasePrice; + + /** + * 采购截止日期(要求入库日期) + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deadline; + + /** + * 采购状态 1-待入(在途) 2-已完成(全部入库) 3-已取消(归零) 4-部分入库 + */ + private Integer status; + + /** + * 取消时间 状态为3时赋值 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date cancelTime; + + /** + * 采购人/操作人 + */ + private String purchaseOperator; + + + /** + * 配料名称 + */ + private String materialName; + + /** + * 配料规格 + */ + private String spec; + + /** + * 配料型号 + */ + private String model; + + + /** + * 配料单位 + */ + private String unit; + + /** + * 当前库存 + */ + private BigDecimal currentStock; + + } diff --git a/gear-mat/src/main/java/com/gear/mat/mapper/MatPurchaseInDetailMapper.java b/gear-mat/src/main/java/com/gear/mat/mapper/MatPurchaseInDetailMapper.java index f6ba4f3..7179279 100644 --- a/gear-mat/src/main/java/com/gear/mat/mapper/MatPurchaseInDetailMapper.java +++ b/gear-mat/src/main/java/com/gear/mat/mapper/MatPurchaseInDetailMapper.java @@ -1,8 +1,11 @@ package com.gear.mat.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gear.mat.domain.MatPurchaseInDetail; import com.gear.mat.domain.vo.MatPurchaseInDetailVo; import com.gear.common.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; /** * 入库记录Mapper接口 @@ -12,4 +15,5 @@ import com.gear.common.core.mapper.BaseMapperPlus; */ public interface MatPurchaseInDetailMapper extends BaseMapperPlus { + Page selectVoPagePlus(Page build,@Param("ew") QueryWrapper lqw); } diff --git a/gear-mat/src/main/java/com/gear/mat/service/impl/MatPurchaseInDetailServiceImpl.java b/gear-mat/src/main/java/com/gear/mat/service/impl/MatPurchaseInDetailServiceImpl.java index 648f80d..57b5710 100644 --- a/gear-mat/src/main/java/com/gear/mat/service/impl/MatPurchaseInDetailServiceImpl.java +++ b/gear-mat/src/main/java/com/gear/mat/service/impl/MatPurchaseInDetailServiceImpl.java @@ -1,6 +1,7 @@ package com.gear.mat.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.gear.common.utils.StringUtils; import com.gear.common.core.page.TableDataInfo; import com.gear.common.core.domain.PageQuery; @@ -44,11 +45,29 @@ public class MatPurchaseInDetailServiceImpl implements IMatPurchaseInDetailServi */ @Override public TableDataInfo queryPageList(MatPurchaseInDetailBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + QueryWrapper lqw = buildQueryWrapperPlus(bo); + Page result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw); return TableDataInfo.build(result); } + private QueryWrapper buildQueryWrapperPlus(MatPurchaseInDetailBo bo) { + QueryWrapper qw = Wrappers.query(); + qw.eq(bo.getPurchaseId() != null, "mpid.purchase_id", bo.getPurchaseId()); + qw.eq(bo.getMaterialId() != null, "mpid.material_id", bo.getMaterialId()); + qw.eq(bo.getInNum() != null, "mpid.in_num", bo.getInNum()); + qw.eq(bo.getInPrice() != null, "mpid.in_price", bo.getInPrice()); + qw.eq(bo.getInAmount() != null, "mpid.in_amount", bo.getInAmount()); +// qw.eq(bo.getInTime() != null, "mpid.in_time", bo.getInTime()) 决定使用beginTime和endTime筛选 + qw.ge(bo.getBeginTime() != null, "mpid.in_time", bo.getBeginTime()); + qw.le(bo.getEndTime() != null, "mpid.in_time", bo.getEndTime()); + qw.eq(StringUtils.isNotBlank(bo.getOperator()), "mpid.operator", bo.getOperator()); + // 逻辑删除 + qw.eq("mpid.del_flag", 0); + // 排序 + qw.orderByDesc("mpid.in_time"); + return qw; + } + /** * 查询入库记录列表 */ diff --git a/gear-mat/src/main/resources/mapper/MatPurchaseInDetailMapper.xml b/gear-mat/src/main/resources/mapper/MatPurchaseInDetailMapper.xml index 6b46091..d8c3a65 100644 --- a/gear-mat/src/main/resources/mapper/MatPurchaseInDetailMapper.xml +++ b/gear-mat/src/main/resources/mapper/MatPurchaseInDetailMapper.xml @@ -20,6 +20,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +