Files
klp-oa/klp-wms/src/main/java/com/klp/service/impl/WmsOrderServiceImpl.java
Joshi 7ba5a07176 feat(ems):优化告警记录查询逻辑并增加设备名称导出字段
- 修改 EmsAlarmRecordServiceImpl 中的 queryList 方法,使用分页查询替代原有列表查询- 新增设备名称字段支持 Excel 导出- 同步修改 WmsOrderServiceImpl 中的 queryList 方法以统一查询方式- 调整查询构造器为分页模式,设置页面大小为最大值以兼容全量数据获取
2025-10-18 10:19:20 +08:00

155 lines
5.4 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);
Page<Object> build = new PageQuery().build();
build.setSize(Long.MAX_VALUE);
Page<WmsOrderVo> wmsOrderVoPage = baseMapper.selectVoPlusPage(build, lqw);
return wmsOrderVoPage.getRecords();
}
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;
}
}