feat(aps): 添加排产单明细分页查询合同的技术涵

- 在ApsPlanDetailMapper中新增selectVoPagePlus方法支持分页查询
- 在ApsPlanDetailMapper.xml中添加对应的SQL查询语句
- 在ApsPlanDetailServiceImpl中实现分页查询逻辑和查询条件构建
- 在ApsPlanDetailVo中添加techAnnex字段用于显示技术附件信息
- 集成MyBatis-Plus分页插件和查询包装器功能
- 优化查询条件构建,支持按计划单ID、订单ID、合同编号等多条件筛选
- 实现按创建时间倒序排列的排序功能
This commit is contained in:
2026-04-06 10:36:50 +08:00
parent 82c801cf9c
commit e82d015cea
4 changed files with 71 additions and 2 deletions

View File

@@ -261,5 +261,11 @@ public class ApsPlanDetailVo {
@ExcelProperty(value = "备注")
private String remark;
/**
* 技术附件
*/
@ExcelProperty(value = "技术附件")
private String techAnnex;
}

View File

@@ -1,8 +1,12 @@
package com.klp.aps.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.aps.domain.entity.ApsPlanDetail;
import com.klp.aps.domain.vo.ApsPlanDetailVo;
import com.klp.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
@@ -15,4 +19,6 @@ import java.util.Collection;
public interface ApsPlanDetailMapper extends BaseMapperPlus<ApsPlanDetailMapper, ApsPlanDetail, ApsPlanDetailVo> {
int deleteByPlanSheetIds(Collection<Long> planSheetIds);
Page<ApsPlanDetailVo> selectVoPagePlus(Page<ApsPlanDetailVo> page, @Param("ew") QueryWrapper<ApsPlanDetail> queryWrapper);
}

View File

@@ -1,6 +1,7 @@
package com.klp.aps.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,57 @@ public class ApsPlanDetailServiceImpl implements IApsPlanDetailService {
*/
@Override
public TableDataInfo<ApsPlanDetailVo> queryPageList(ApsPlanDetailBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<ApsPlanDetail> lqw = buildQueryWrapper(bo);
Page<ApsPlanDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
QueryWrapper<ApsPlanDetail> qw = buildQueryWrapperPlus(bo);
Page<ApsPlanDetailVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), qw);
return TableDataInfo.build(result);
}
private QueryWrapper<ApsPlanDetail> buildQueryWrapperPlus(ApsPlanDetailBo bo) {
Map<String, Object> params = bo.getParams();
QueryWrapper<ApsPlanDetail> qw = new QueryWrapper<>();
qw.eq("d.del_flag", 0);
qw.eq(bo.getPlanSheetId() != null, "d.plan_sheet_id", bo.getPlanSheetId());
qw.eq(bo.getOrderId() != null, "d.order_id", bo.getOrderId());
qw.eq(StringUtils.isNotBlank(bo.getBizSeqNo()), "d.biz_seq_no", bo.getBizSeqNo());
qw.eq(StringUtils.isNotBlank(bo.getOrderCode()), "d.order_code", bo.getOrderCode());
qw.eq(StringUtils.isNotBlank(bo.getContractCode()), "d.contract_code", bo.getContractCode());
qw.like(StringUtils.isNotBlank(bo.getCustomerName()), "d.customer_name", bo.getCustomerName());
qw.eq(StringUtils.isNotBlank(bo.getSalesman()), "d.salesman", bo.getSalesman());
qw.eq(StringUtils.isNotBlank(bo.getRawManufacturer()), "d.raw_manufacturer", bo.getRawManufacturer());
qw.eq(StringUtils.isNotBlank(bo.getRawMaterial()), "d.raw_material", bo.getRawMaterial());
qw.eq(bo.getRawThick() != null, "d.raw_thick", bo.getRawThick());
qw.eq(bo.getRawWidth() != null, "d.raw_width", bo.getRawWidth());
qw.eq(bo.getRawMaterialId() != null, "d.raw_material_id", bo.getRawMaterialId());
qw.eq(StringUtils.isNotBlank(bo.getRawCoilNos()), "d.raw_coil_nos", bo.getRawCoilNos());
qw.eq(StringUtils.isNotBlank(bo.getRawLocation()), "d.raw_location", bo.getRawLocation());
qw.eq(StringUtils.isNotBlank(bo.getRawPackaging()), "d.raw_packaging", bo.getRawPackaging());
qw.eq(StringUtils.isNotBlank(bo.getRawEdgeReq()), "d.raw_edge_req", bo.getRawEdgeReq());
qw.eq(StringUtils.isNotBlank(bo.getRawCoatingType()), "d.raw_coating_type", bo.getRawCoatingType());
qw.eq(bo.getRawNetWeight() != null, "d.raw_net_weight", bo.getRawNetWeight());
qw.like(StringUtils.isNotBlank(bo.getProductName()), "d.product_name", bo.getProductName());
qw.eq(StringUtils.isNotBlank(bo.getProductMaterial()), "d.product_material", bo.getProductMaterial());
qw.eq(bo.getCoatingG() != null, "d.coating_g", bo.getCoatingG());
qw.eq(bo.getProductWidth() != null, "d.product_width", bo.getProductWidth());
qw.eq(bo.getRollingThick() != null, "d.rolling_thick", bo.getRollingThick());
qw.eq(bo.getMarkCoatThick() != null, "d.mark_coat_thick", bo.getMarkCoatThick());
qw.eq(StringUtils.isNotBlank(bo.getTonSteelLengthRange()), "d.ton_steel_length_range", bo.getTonSteelLengthRange());
qw.eq(bo.getPlanQty() != null, "d.plan_qty", bo.getPlanQty());
qw.eq(bo.getPlanWeight() != null, "d.plan_weight", bo.getPlanWeight());
qw.eq(StringUtils.isNotBlank(bo.getSurfaceTreatment()), "d.surface_treatment", bo.getSurfaceTreatment());
qw.eq(StringUtils.isNotBlank(bo.getWidthReq()), "d.width_req", bo.getWidthReq());
qw.eq(StringUtils.isNotBlank(bo.getProductPackaging()), "d.product_packaging", bo.getProductPackaging());
qw.eq(StringUtils.isNotBlank(bo.getProductEdgeReq()), "d.product_edge_req", bo.getProductEdgeReq());
qw.eq(StringUtils.isNotBlank(bo.getUsageReq()), "d.usage_req", bo.getUsageReq());
qw.eq(StringUtils.isNotBlank(bo.getPostProcess()), "d.post_process", bo.getPostProcess());
qw.eq(StringUtils.isNotBlank(bo.getNextProcess()), "d.next_process", bo.getNextProcess());
qw.eq(StringUtils.isNotBlank(bo.getSampleReq()), "d.sample_req", bo.getSampleReq());
qw.eq(bo.getStartTime() != null, "d.start_time", bo.getStartTime());
qw.eq(bo.getEndTime() != null, "d.end_time", bo.getEndTime());
//根据创建时间倒叙
qw.orderByDesc("d.create_time");
return qw;
}
/**
* 查询排产单明细列表
*/

View File

@@ -58,4 +58,14 @@
</foreach>
</delete>
<select id="selectVoPagePlus" resultType="com.klp.aps.domain.vo.ApsPlanDetailVo">
SELECT
d.*,
c.tech_annex AS techAnnex
FROM aps_plan_detail d
LEFT JOIN crm_order o ON d.order_id = o.order_id AND o.del_flag = 0
LEFT JOIN crm_contract c ON o.contract_id = c.contract_id AND c.del_flag = 0
${ew.customSqlSegment}
</select>
</mapper>