Просмотр исходного кода

同级分类名称相同抛异常
获取租户添加过的物料单位集合接口
获取租户添加过的产品单位集合接口

home 2 лет назад
Родитель
Сommit
8860750010

+ 27 - 4
hx-serve/product-library/src/main/java/com/fjhx/classify/service/impl/ClassifyServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fjhx.classify.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.base.BaseEntity;
 import com.fjhx.classify.mapper.ClassifyMapper;
@@ -14,7 +15,6 @@ import com.fjhx.product.service.ProductService;
 import com.fjhx.utils.Assert;
 import com.fjhx.utils.TreeUtil;
 import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.utils.ObjectUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -45,9 +45,13 @@ public class ClassifyServiceImpl extends ServiceImpl<ClassifyMapper, Classify> i
         String type = condition.get("type");
         Assert.notEmpty(type, "分类类型不能为空");
 
+        // 分类名称
+        String name = condition.get("name");
+
         List<Classify> list = lambdaQuery()
-                .eq(Classify::getType, type)
                 .select(Classify::getId, Classify::getName, Classify::getParentId)
+                .eq(Classify::getType, type)
+                .like(ObjectUtil.isNotEmpty(name), Classify::getName, name)
                 .list();
 
         // 构建树形
@@ -77,14 +81,17 @@ public class ClassifyServiceImpl extends ServiceImpl<ClassifyMapper, Classify> i
                     (ObjectUtil.isEmpty(parentIdSet) ? "" : parentIdSet + ",") + parentId);
         }
 
+        peerNameOnly(classifyVo.getParentId(), classifyVo.getName(), null);
         save(classifyVo);
     }
 
     @Override
     public void edit(ClassifyVo classifyVo) {
         Assert.notEmpty(classifyVo.getId(), "分类Id不能为空");
-        classifyVo.setParentId(null);
-        classifyVo.setParentIdSet(null);
+        Assert.notEmpty(classifyVo.getParentId(), "父分类id不能为空");
+        Assert.notEmpty(classifyVo.getName(), "分类名称不能为空");
+
+        peerNameOnly(classifyVo.getParentId(), classifyVo.getName(), classifyVo.getId());
         updateById(classifyVo);
     }
 
@@ -126,4 +133,20 @@ public class ClassifyServiceImpl extends ServiceImpl<ClassifyMapper, Classify> i
         return result;
     }
 
+    /**
+     * 保证同级名称不重复
+     */
+    private void peerNameOnly(Long parentId, String classifyName, Long excludeId) {
+
+        Integer count = lambdaQuery()
+                .eq(BaseEntity::getTenantId, AuthUtil.getTenantId())
+                .eq(Classify::getParentId, parentId)
+                .eq(Classify::getName, classifyName)
+                .ne(ObjectUtil.isNotEmpty(excludeId), BaseEntity::getId, excludeId)
+                .count();
+
+        Assert.eqZero(count, "存在相同分类名称");
+
+    }
+
 }

+ 10 - 0
hx-serve/product-library/src/main/java/com/fjhx/material/controller/MaterialController.java

@@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -52,5 +53,14 @@ public class MaterialController {
         return R.success();
     }
 
+    /**
+     * 获取租户添加过的物料单位集合
+     */
+    @PostMapping("/getUnitList")
+    public R getUnitList() {
+        List<String> unitList = materialService.getUnitList();
+        return R.success(unitList);
+    }
+
 }
 

+ 5 - 0
hx-serve/product-library/src/main/java/com/fjhx/material/mapper/MaterialMapper.java

@@ -2,6 +2,9 @@ package com.fjhx.material.mapper;
 
 import com.fjhx.entity.material.Material;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface MaterialMapper extends BaseMapper<Material> {
 
+    List<String> getUnitList(@Param("tenantId") String tenantId);
+
 }

+ 6 - 0
hx-serve/product-library/src/main/java/com/fjhx/material/mapper/MaterialMapper.xml

@@ -2,4 +2,10 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.material.mapper.MaterialMapper">
 
+    <select id="getUnitList" resultType="java.lang.String">
+        select distinct m.unit
+        from material m
+        where m.del_flag = 0
+          and m.tenant_id = #{tenantId}
+    </select>
 </mapper>

+ 6 - 0
hx-serve/product-library/src/main/java/com/fjhx/material/service/MaterialService.java

@@ -5,6 +5,7 @@ import com.fjhx.base.BaseService;
 import com.fjhx.entity.material.Material;
 import com.fjhx.params.material.MaterialVo;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -25,4 +26,9 @@ public interface MaterialService extends BaseService<Material> {
 
     void delete(MaterialVo materialVo);
 
+    /**
+     * 获取租户添加过的物料单位集合
+     */
+    List<String> getUnitList();
+
 }

+ 5 - 0
hx-serve/product-library/src/main/java/com/fjhx/material/service/impl/MaterialServiceImpl.java

@@ -121,6 +121,11 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
         removeById(materialVo.getId());
     }
 
+    @Override
+    public List<String> getUnitList() {
+        return baseMapper.getUnitList(AuthUtil.getTenantId());
+    }
+
     /**
      * 检查物料编码是否唯一
      *

+ 10 - 0
hx-serve/product-library/src/main/java/com/fjhx/product/controller/ProductController.java

@@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -52,5 +53,14 @@ public class ProductController {
         return R.success();
     }
 
+    /**
+     * 获取租户添加过的物料单位集合
+     */
+    @PostMapping("/getUnitList")
+    public R getUnitList() {
+        List<String> unitList = productService.getUnitList();
+        return R.success(unitList);
+    }
+
 }
 

+ 4 - 0
hx-serve/product-library/src/main/java/com/fjhx/product/mapper/ProductMapper.java

@@ -3,6 +3,8 @@ package com.fjhx.product.mapper;
 import com.fjhx.entity.product.Product;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * <p>
  * 产品 Mapper 接口
@@ -13,4 +15,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ProductMapper extends BaseMapper<Product> {
 
+    List<String> getUnitList(String tenantId);
+
 }

+ 7 - 0
hx-serve/product-library/src/main/java/com/fjhx/product/mapper/ProductMapper.xml

@@ -2,4 +2,11 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.product.mapper.ProductMapper">
 
+    <select id="getUnitList" resultType="java.lang.String">
+        select distinct p.unit
+        from product p
+        where p.del_flag = 0
+          and p.tenant_id = #{tenantId}
+    </select>
+
 </mapper>

+ 6 - 0
hx-serve/product-library/src/main/java/com/fjhx/product/service/ProductService.java

@@ -5,6 +5,7 @@ import com.fjhx.entity.product.Product;
 import com.fjhx.params.product.ProductVo;
 import com.fjhx.base.BaseService;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -25,4 +26,9 @@ public interface ProductService extends BaseService<Product> {
 
     void delete(ProductVo productVo);
 
+    /**
+     * 获取租户添加过的物料单位集合
+     */
+    List<String> getUnitList();
+
 }

+ 5 - 0
hx-serve/product-library/src/main/java/com/fjhx/product/service/impl/ProductServiceImpl.java

@@ -89,6 +89,11 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
         removeById(productVo.getId());
     }
 
+    @Override
+    public List<String> getUnitList() {
+        return baseMapper.getUnitList(AuthUtil.getTenantId());
+    }
+
     /**
      * 检查产品编码是否唯一
      *