feat(wms): 生产任务列表增加联查功能

- 在 WmsProductionTaskMapper 中添加 selectVoPagePlus 方法,实现联查查询
- 更新 WmsProductionTaskBo 和 WmsProductionTaskVo,增加联查相关字段
- 修改 WmsProductionTaskServiceImpl 中的 queryPageList 方法,使用新的联查查询
- 更新 WmsStockMapper.xml 中的查询语句,优化库存查询
This commit is contained in:
2025-08-26 16:18:58 +08:00
parent 4c748a537a
commit 0c746478a0
6 changed files with 143 additions and 4 deletions

View File

@@ -0,0 +1,6 @@
alter table wms_production_task
modify order_id bigint null comment '订单ID';
alter table wms_production_task
modify order_item_id bigint null comment '订单明细ID';

View File

@@ -35,12 +35,12 @@ public class WmsProductionTaskBo extends BaseEntity {
/**
* 订单ID
*/
private Long orderId;
private Long orderId; //联查订单号
/**
* 订单明细ID
*/
private Long orderItemId;
private Long orderItemId; //产品联查
/**
* 计划名称

View File

@@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import com.klp.domain.vo.WmsManufacturingSpecVo;
import com.klp.domain.vo.WmsProductSpecGroupVo;
import lombok.Data;
@@ -74,5 +76,29 @@ public class WmsProductionTaskVo {
@ExcelProperty(value = "备注")
private String remark;
// 联查字段
/**
* 订单编号
*/
@ExcelProperty(value = "订单编号")
private String orderCode;
/**
* 产品ID
*/
@ExcelProperty(value = "产品ID")
private Long productId;
/**
* 制造规范完整对象
*/
@ExcelProperty(value = "制造规范")
private WmsManufacturingSpecVo manufacturingSpec;
/**
* 产品规范组完整对象
*/
@ExcelProperty(value = "产品规范组")
private WmsProductSpecGroupVo productSpecGroup;
}

View File

@@ -1,8 +1,11 @@
package com.klp.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.domain.WmsProductionTask;
import com.klp.domain.vo.WmsProductionTaskVo;
import com.klp.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param;
/**
* 生产任务Mapper接口
@@ -12,4 +15,5 @@ import com.klp.common.core.mapper.BaseMapperPlus;
*/
public interface WmsProductionTaskMapper extends BaseMapperPlus<WmsProductionTaskMapper, WmsProductionTask, WmsProductionTaskVo> {
Page<WmsProductionTaskVo> selectVoPagePlus(Page<Object> build,@Param("ew") QueryWrapper<WmsProductionTask> lqw);
}

View File

@@ -1,6 +1,7 @@
package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -44,11 +45,27 @@ public class WmsProductionTaskServiceImpl implements IWmsProductionTaskService {
*/
@Override
public TableDataInfo<WmsProductionTaskVo> queryPageList(WmsProductionTaskBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsProductionTask> lqw = buildQueryWrapper(bo);
Page<WmsProductionTaskVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
QueryWrapper<WmsProductionTask> lqw = buildQueryWrapperPlus(bo);
Page<WmsProductionTaskVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
private QueryWrapper<WmsProductionTask> buildQueryWrapperPlus(WmsProductionTaskBo bo) {
QueryWrapper<WmsProductionTask> lqw = Wrappers.query();
lqw.eq(bo.getProductSpecGroupId() != null, "t.product_spec_group_id", bo.getProductSpecGroupId());
lqw.eq(bo.getManufacturingSpecId() != null, "t.manufacturing_spec_id", bo.getManufacturingSpecId());
lqw.eq(bo.getOrderId() != null, "t.order_id", bo.getOrderId());
lqw.eq(bo.getOrderItemId() != null, "t.order_item_id", bo.getOrderItemId());
lqw.like(StringUtils.isNotBlank(bo.getPlanName()), "t.plan_name", bo.getPlanName());
lqw.eq(StringUtils.isNotBlank(bo.getPlanCode()), "t.plan_code", bo.getPlanCode());
lqw.eq(bo.getStatus() != null, "t.status", bo.getStatus());
//逻辑删除
lqw.eq("t.del_flag", 0);
//按照创建时间倒序
lqw.orderByDesc("t.create_time");
return lqw;
}
/**
* 查询生产任务列表
*/

View File

@@ -21,5 +21,91 @@
<result property="delFlag" column="del_flag"/>
</resultMap>
<resultMap type="com.klp.domain.vo.WmsProductionTaskVo" id="WmsProductionTaskVoResult">
<result property="taskId" column="task_id"/>
<result property="productSpecGroupId" column="product_spec_group_id"/>
<result property="manufacturingSpecId" column="manufacturing_spec_id"/>
<result property="orderId" column="order_id"/>
<result property="orderItemId" column="order_item_id"/>
<result property="planName" column="plan_name"/>
<result property="planCode" column="plan_code"/>
<result property="status" column="status"/>
<result property="remark" column="remark"/>
<result property="orderCode" column="order_code"/>
<result property="productId" column="product_id"/>
<!-- 制造规范对象映射 -->
<association property="manufacturingSpec" javaType="com.klp.domain.vo.WmsManufacturingSpecVo">
<result property="specId" column="ms_spec_id"/>
<result property="specCode" column="ms_spec_code"/>
<result property="specName" column="ms_spec_name"/>
<result property="businessUnit" column="ms_business_unit"/>
<result property="projectTeam" column="ms_project_team"/>
<result property="productModule" column="ms_product_module"/>
<result property="identifier" column="ms_identifier"/>
<result property="material" column="ms_material"/>
<result property="specification" column="ms_specification"/>
<result property="processRoute" column="ms_process_route"/>
<result property="processParams" column="ms_process_params"/>
<result property="scope" column="ms_scope"/>
<result property="inspectionStandard" column="ms_inspection_standard"/>
</association>
<!-- 产品规范组对象映射 -->
<association property="productSpecGroup" javaType="com.klp.domain.vo.WmsProductSpecGroupVo">
<result property="groupId" column="psg_group_id"/>
<result property="groupCode" column="psg_group_code"/>
<result property="productId" column="psg_product_id"/>
<result property="groupName" column="psg_group_name"/>
<result property="status" column="psg_status"/>
<result property="remark" column="psg_remark"/>
</association>
</resultMap>
<select id="selectVoPagePlus" resultMap="WmsProductionTaskVoResult">
select
t.task_id,
t.product_spec_group_id,
t.manufacturing_spec_id,
t.order_id,
t.order_item_id,
t.plan_name,
t.plan_code,
t.status,
t.remark,
o.order_code,
od.product_id,
-- 制造规范字段添加ms_前缀
ms.spec_id as ms_spec_id,
ms.spec_code as ms_spec_code,
ms.spec_name as ms_spec_name,
ms.business_unit as ms_business_unit,
ms.project_team as ms_project_team,
ms.product_module as ms_product_module,
ms.identifier as ms_identifier,
ms.material as ms_material,
ms.specification as ms_specification,
ms.process_route as ms_process_route,
ms.process_params as ms_process_params,
ms.scope as ms_scope,
ms.inspection_standard as ms_inspection_standard,
-- 产品规范组字段添加psg_前缀
psg.group_id as psg_group_id,
psg.group_code as psg_group_code,
psg.product_id as psg_product_id,
psg.group_name as psg_group_name,
psg.status as psg_status,
psg.remark as psg_remark
from
wms_production_task t
left join wms_order o on t.order_id = o.order_id
left join wms_order_detail od on t.order_item_id = od.detail_id
left join wms_manufacturing_spec ms on t.manufacturing_spec_id = ms.spec_id and ms.del_flag = 0
left join wms_product_spec_group psg on t.product_spec_group_id = psg.group_id and psg.del_flag = 0
${ew.customSqlSegment}
</select>
</mapper>