|
@@ -1,95 +0,0 @@
|
|
|
-package com.fjhx.admin.service.material.impl;
|
|
|
-
|
|
|
-import cn.hutool.core.util.ObjectUtil;
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.fjhx.admin.entity.material.dto.MaterialClassifyDto;
|
|
|
-import com.fjhx.admin.entity.material.po.MaterialClassify;
|
|
|
-import com.fjhx.admin.mapper.material.MaterialClassifyMapper;
|
|
|
-import com.fjhx.admin.service.material.MaterialClassifyService;
|
|
|
-import com.ruoyi.common.exception.ServiceException;
|
|
|
-import com.ruoyi.common.utils.TreeUtil;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-
|
|
|
-import java.util.List;
|
|
|
-
|
|
|
-
|
|
|
-/**
|
|
|
- * <p>
|
|
|
- * 物料分类 服务实现类
|
|
|
- * </p>
|
|
|
- *
|
|
|
- * @author zlj
|
|
|
- * @since 2023-03-17
|
|
|
- */
|
|
|
-@Service
|
|
|
-public class MaterialClassifyServiceImpl extends ServiceImpl<MaterialClassifyMapper, MaterialClassify> implements MaterialClassifyService {
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<JSONObject> tree(MaterialClassify materialClassify) {
|
|
|
- // 分类名称
|
|
|
- String name = materialClassify.getName();
|
|
|
-
|
|
|
- List<MaterialClassify> list = lambdaQuery()
|
|
|
- .select(MaterialClassify::getId, MaterialClassify::getName, MaterialClassify::getParentId)
|
|
|
- .like(ObjectUtil.isNotEmpty(name), MaterialClassify::getName, name)
|
|
|
- .list();
|
|
|
-
|
|
|
- // 构建树形
|
|
|
- return TreeUtil.buildTree("name", list);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void add(MaterialClassifyDto materialClassifyDto) {
|
|
|
- Long parentId = materialClassifyDto.getParentId();
|
|
|
- if (parentId == null) {
|
|
|
- materialClassifyDto.setParentId(0L);
|
|
|
- materialClassifyDto.setParentIdSet(null);
|
|
|
- } else if (parentId == 0L) {
|
|
|
- materialClassifyDto.setParentIdSet(null);
|
|
|
- } else {
|
|
|
- // 查询父级分类
|
|
|
- MaterialClassify materialClassify = getById(parentId);
|
|
|
- if (materialClassify == null) {
|
|
|
- throw new ServiceException("没有找到父级分类");
|
|
|
- }
|
|
|
-
|
|
|
- // 赋值父级id集合
|
|
|
- String parentIdSet = materialClassify.getParentIdSet();
|
|
|
- materialClassifyDto.setParentIdSet((ObjectUtil.isEmpty(parentIdSet) ? "" : parentIdSet + ",") + parentId);
|
|
|
- }
|
|
|
-
|
|
|
- peerNameOnly(materialClassifyDto.getParentId(), materialClassifyDto.getName(), null);
|
|
|
-
|
|
|
- this.save(materialClassifyDto);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void edit(MaterialClassifyDto materialClassifyDto) {
|
|
|
- peerNameOnly(materialClassifyDto.getParentId(), materialClassifyDto.getName(), materialClassifyDto.getId());
|
|
|
- this.updateById(materialClassifyDto);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void delete(Long id) {
|
|
|
- this.removeById(id);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 保证同级名称不重复
|
|
|
- */
|
|
|
- private void peerNameOnly(Long parentId, String classifyName, Long excludeId) {
|
|
|
-
|
|
|
- Long count = lambdaQuery()
|
|
|
- .eq(MaterialClassify::getParentId, parentId)
|
|
|
- .eq(MaterialClassify::getName, classifyName)
|
|
|
- .ne(ObjectUtil.isNotEmpty(excludeId), MaterialClassify::getId, excludeId)
|
|
|
- .count();
|
|
|
-
|
|
|
- if (count != 0) {
|
|
|
- throw new ServiceException("存在相同分类名称");
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-}
|