Files
klp-oa/klp-wms/src/main/java/com/klp/service/impl/WmsOrderServiceImpl.java
JR 1ba25bdf63 refactor(wms): 修改订单代码查询为模糊匹配
- 将订单代码的查询条件从精确匹配修改为模糊匹配
- 提高订单搜索的灵活性和用户体验
2025-08-13 14:10:19 +08:00

152 lines
5.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsOrderBo;
import com.klp.domain.vo.WmsOrderVo;
import com.klp.domain.WmsOrder;
import com.klp.mapper.WmsOrderMapper;
import com.klp.service.IWmsOrderService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 订单主Service业务层处理
*
* @author Joshi
* @date 2025-07-18
*/
@RequiredArgsConstructor
@Service
public class WmsOrderServiceImpl implements IWmsOrderService {
private final WmsOrderMapper baseMapper;
/**
* 查询订单主
*/
@Override
public WmsOrderVo queryById(Long orderId){
return baseMapper.selectVoById(orderId);
}
/**
* 查询订单主列表
*/
@Override
public TableDataInfo<WmsOrderVo> queryPageList(WmsOrderBo bo, PageQuery pageQuery) {
QueryWrapper<WmsOrder> lqw = buildQueryWrapperPlus(bo);
Page<WmsOrderVo> result = baseMapper.selectVoPlusPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询订单主列表ByStatus
*/
@Override
public TableDataInfo<WmsOrderVo> queryPageListByStatus(WmsOrderBo bo, PageQuery pageQuery) {
QueryWrapper<WmsOrder> lqw = buildQueryWrapperByStatus(bo);
Page<WmsOrderVo> result = baseMapper.selectVoPlusPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
private QueryWrapper<WmsOrder> buildQueryWrapperByStatus(WmsOrderBo bo) {
QueryWrapper<WmsOrder> lqw = Wrappers.query();
// 修改为order_status不是零就查出来
if (bo.getOrderStatus() != null) {
if (bo.getOrderStatus() == -1) {
// 当orderStatus为-1时查询所有非0状态的记录
lqw.ne("o.order_status", 0);
} else {
// 当orderStatus为其他值时包括0按指定状态查询
lqw.eq("o.order_status", bo.getOrderStatus());
}
}
lqw.eq("o.del_flag", 0);
lqw.eq(StringUtils.isNotBlank(bo.getOrderCode()), "o.order_code", bo.getOrderCode());
lqw.eq(bo.getCustomerId() != null, "o.customer_id", bo.getCustomerId());
lqw.eq(StringUtils.isNotBlank(bo.getSalesManager()), "o.sales_manager", bo.getSalesManager());
// 当orderStatus为null时不添加任何条件查询所有记录
return lqw;
}
private QueryWrapper<WmsOrder> buildQueryWrapperPlus(WmsOrderBo bo) {
QueryWrapper<WmsOrder> lqw = Wrappers.query();
lqw.eq("o.del_flag", 0);
lqw.like(StringUtils.isNotBlank(bo.getOrderCode()), "o.order_code", bo.getOrderCode());
lqw.eq(bo.getCustomerId() != null, "o.customer_id", bo.getCustomerId());
lqw.eq(StringUtils.isNotBlank(bo.getSalesManager()), "o.sales_manager", bo.getSalesManager());
lqw.eq(bo.getOrderStatus() != null, "o.order_status", bo.getOrderStatus());
return lqw;
}
/**
* 查询订单主列表
*/
@Override
public List<WmsOrderVo> queryList(WmsOrderBo bo) {
LambdaQueryWrapper<WmsOrder> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WmsOrder> buildQueryWrapper(WmsOrderBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsOrder> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getOrderCode()), WmsOrder::getOrderCode, bo.getOrderCode());
lqw.eq(bo.getCustomerId() != null, WmsOrder::getCustomerId, bo.getCustomerId());
lqw.eq(StringUtils.isNotBlank(bo.getSalesManager()), WmsOrder::getSalesManager, bo.getSalesManager());
lqw.eq(bo.getOrderStatus() != null, WmsOrder::getOrderStatus, bo.getOrderStatus());
return lqw;
}
/**
* 新增订单主
*/
@Override
public Boolean insertByBo(WmsOrderBo bo) {
WmsOrder add = BeanUtil.toBean(bo, WmsOrder.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setOrderId(add.getOrderId());
}
return flag;
}
/**
* 修改订单主
*/
@Override
public Boolean updateByBo(WmsOrderBo bo) {
WmsOrder update = BeanUtil.toBean(bo, WmsOrder.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WmsOrder entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除订单主
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}