物料导入分类问题解决

This commit is contained in:
秦鸿展
2026-04-22 22:44:39 +08:00
parent 87f64f0efa
commit 60874e7322
7 changed files with 126 additions and 0 deletions
@@ -1,6 +1,7 @@
package com.mhd.basic.domain.materialClassify.service;
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.mhd.basic.domain.materialClassify.entity.MaterialClassify;
@@ -12,6 +13,7 @@ import com.mhd.common.core.utils.StringUtils;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -157,5 +159,29 @@ public class MaterialClassifyDomainService {
.in(MaterialClassify::getMaterialClassifyId, Arrays.asList(materialClassifyIds)));
}
/**
* 物料主数据导入:在指定组织下按分类编码/名称/名称路径精确匹配一条有效分类,用于回填物料分类编码。
*/
public MaterialClassifyPO matchByKeywordForImport(String keyword, Long organizationId) {
if (StringUtils.isEmpty(keyword) || organizationId == null) {
return null;
}
String kw = keyword.trim();
List<MaterialClassify> list = materialClassifyService.list(new LambdaQueryWrapper<MaterialClassify>()
.eq(MaterialClassify::getOrganizationId, organizationId)
.eq(MaterialClassify::getDelFlag, 1)
.and(n -> n.isNull(MaterialClassify::getNullify).or().eq(MaterialClassify::getNullify, 1))
.and(w -> w.eq(MaterialClassify::getCode, kw)
.or().eq(MaterialClassify::getName, kw)
.or().eq(MaterialClassify::getNamePath, kw))
.orderByDesc(MaterialClassify::getLevel)
.last("limit 1"));
if (list == null || list.isEmpty()) {
return null;
}
MaterialClassifyPO po = new MaterialClassifyPO();
BeanUtils.copyProperties(list.get(0), po);
return po;
}
}