|
|
@@ -3,10 +3,7 @@ package org.dromara.erp.service.impl;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
-import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
-import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
import org.dromara.erp.domain.ErpModel;
|
|
|
import org.dromara.erp.domain.query.ErpModelQuery;
|
|
|
import org.dromara.erp.domain.vo.ErpModelVo;
|
|
|
@@ -15,6 +12,8 @@ import org.dromara.erp.service.IErpModelService;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* ERP 型材档案 Service 业务层处理
|
|
|
@@ -28,25 +27,45 @@ public class ErpModelServiceImpl implements IErpModelService {
|
|
|
private final ErpModelMapper baseMapper;
|
|
|
|
|
|
@Override
|
|
|
- public TableDataInfo<ErpModelVo> queryPageList(ErpModelQuery query, PageQuery pageQuery) {
|
|
|
- LambdaQueryWrapper<ErpModel> lqw = buildQueryWrapper(query);
|
|
|
- Page<ErpModelVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
- return TableDataInfo.build(result);
|
|
|
+ public List<ErpModelVo> queryList(ErpModelQuery query) {
|
|
|
+ if (query != null && ObjectUtil.isNotEmpty(query.getParentRowId())) {
|
|
|
+ LambdaQueryWrapper<ErpModel> lqw = buildQueryWrapper(query);
|
|
|
+ return baseMapper.selectVoList(lqw);
|
|
|
+ }
|
|
|
+ LambdaQueryWrapper<ErpModel> lqw = buildFirstLevelWrapper(query);
|
|
|
+ List<ErpModelVo> all = baseMapper.selectVoList(lqw);
|
|
|
+ Set<String> rowIds = all.stream()
|
|
|
+ .map(ErpModelVo::getRowId)
|
|
|
+ .filter(ObjectUtil::isNotEmpty)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ return all.stream()
|
|
|
+ .filter(item -> {
|
|
|
+ String pid = item.getParentRowId();
|
|
|
+ return ObjectUtil.isEmpty(pid) || !rowIds.contains(pid);
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public List<ErpModelVo> queryList(ErpModelQuery query) {
|
|
|
- LambdaQueryWrapper<ErpModel> lqw = buildQueryWrapper(query);
|
|
|
- if (ObjectUtil.isEmpty(query.getNum()) && ObjectUtil.isEmpty(query.getName())) {
|
|
|
- lqw.last("OFFSET 0 ROWS FETCH NEXT 100 ROWS ONLY");
|
|
|
+ private LambdaQueryWrapper<ErpModel> buildFirstLevelWrapper(ErpModelQuery query) {
|
|
|
+ LambdaQueryWrapper<ErpModel> lqw = Wrappers.lambdaQuery();
|
|
|
+ if (query != null) {
|
|
|
+ lqw.like(ObjectUtil.isNotEmpty(query.getNum()), ErpModel::getNum, query.getNum());
|
|
|
+ lqw.like(ObjectUtil.isNotEmpty(query.getName()), ErpModel::getName, query.getName());
|
|
|
+ lqw.eq(ObjectUtil.isNotEmpty(query.getModelSort()), ErpModel::getModelSort, query.getModelSort());
|
|
|
+ lqw.eq(ObjectUtil.isNotEmpty(query.getModelKind()), ErpModel::getModelKind, query.getModelKind());
|
|
|
}
|
|
|
- return baseMapper.selectVoList(lqw);
|
|
|
+ lqw.eq(ErpModel::getStopUse, 0);
|
|
|
+ lqw.orderByAsc(ErpModel::getNum);
|
|
|
+ return lqw;
|
|
|
}
|
|
|
|
|
|
private LambdaQueryWrapper<ErpModel> buildQueryWrapper(ErpModelQuery query) {
|
|
|
LambdaQueryWrapper<ErpModel> lqw = Wrappers.lambdaQuery();
|
|
|
lqw.like(ObjectUtil.isNotEmpty(query.getNum()), ErpModel::getNum, query.getNum());
|
|
|
lqw.like(ObjectUtil.isNotEmpty(query.getName()), ErpModel::getName, query.getName());
|
|
|
+ lqw.eq(ObjectUtil.isNotEmpty(query.getModelSort()), ErpModel::getModelSort, query.getModelSort());
|
|
|
+ lqw.eq(ObjectUtil.isNotEmpty(query.getModelKind()), ErpModel::getModelKind, query.getModelKind());
|
|
|
+ lqw.eq(ErpModel::getParentRowId, query.getParentRowId());
|
|
|
lqw.eq(ErpModel::getStopUse, 0);
|
|
|
lqw.orderByAsc(ErpModel::getNum);
|
|
|
return lqw;
|