物料导入分类问题解决
This commit is contained in:
+7
@@ -138,4 +138,11 @@ public class MaterialClassifyApplicationService {
|
||||
public Boolean nullifyByIds(Long[] materialClassifyIds){
|
||||
return materialClassifyDomainService.nullifyByIds(materialClassifyIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 物料主数据导入:按组织+关键词(分类编码/名称/名称路径)匹配分类,供 WMS Feign 调用。
|
||||
*/
|
||||
public MaterialClassifyPO matchByKeywordForImport(String keyword, Long organizationId) {
|
||||
return materialClassifyDomainService.matchByKeywordForImport(keyword, organizationId);
|
||||
}
|
||||
}
|
||||
|
||||
+26
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.mhd.basic.interfaces.assember.*;
|
||||
import com.mhd.basic.interfaces.dto.*;
|
||||
import com.mhd.basic.interfaces.facade.vo.SysAreaVO;
|
||||
import com.mhd.basic.application.service.common.CommonApplicationService;
|
||||
import com.mhd.basic.application.service.materialClassify.MaterialClassifyApplicationService;
|
||||
import com.mhd.basic.domain.areaAggregate.repository.po.SysAreaPO;
|
||||
import com.mhd.basic.domain.areaAggregate.repository.todo.SysProvinceCityCountyDO;
|
||||
import com.mhd.basic.domain.common.entity.DataPermission;
|
||||
@@ -60,6 +61,8 @@ public class BasicAPI extends BaseController {
|
||||
private SysAppVersionManageApplicationService sysAppVersionManageApplicationService;
|
||||
@Resource
|
||||
private CommonApplicationService commonApplicationService;
|
||||
@Resource
|
||||
private MaterialClassifyApplicationService materialClassifyApplicationService;
|
||||
|
||||
@ApiOperation("查询系统协议列表")
|
||||
@GetMapping("/basicAgreemenList")
|
||||
@@ -555,4 +558,11 @@ public class BasicAPI extends BaseController {
|
||||
sysMultistageDictDo.setTopParentDictCode(topCode);
|
||||
return AjaxResult.success(sysMultistageDictApplicationService.selectSysMultistageDictList(sysMultistageDictDo));
|
||||
}
|
||||
|
||||
@ApiOperation("物料主数据导入-按关键词匹配一条物料分类(返回 material_classify.code 供 WMS 写入)")
|
||||
@GetMapping("/matchMaterialClassifyForImport")
|
||||
public AjaxResult matchMaterialClassifyForImport(@RequestParam("keyword") String keyword,
|
||||
@RequestParam("organizationId") Long organizationId) {
|
||||
return AjaxResult.success(materialClassifyApplicationService.matchByKeywordForImport(keyword, organizationId));
|
||||
}
|
||||
}
|
||||
|
||||
+12
@@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.mhd.basic.interfaces.dto.materialClassify.MaterialClassifyDTO;
|
||||
@@ -108,6 +109,17 @@ public class MaterialClassifyApi extends BaseController{
|
||||
{
|
||||
return toAjax(materialClassifyApplicationService.nullifyByIds(materialClassifyIds));
|
||||
}
|
||||
|
||||
/**
|
||||
* 物料主数据导入:按组织与关键词匹配一条物料分类,用于回填分类编码
|
||||
*/
|
||||
@ApiOperation("物料主数据导入-匹配物料分类")
|
||||
@GetMapping("/matchForMaterialImport")
|
||||
public AjaxResult matchForMaterialImport(
|
||||
@RequestParam("keyword") String keyword,
|
||||
@RequestParam("organizationId") Long organizationId) {
|
||||
return AjaxResult.success(materialClassifyApplicationService.matchByKeywordForImport(keyword, organizationId));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user