24282 1 жил өмнө
parent
commit
aadb584de7

+ 7 - 5
sd-business/src/main/java/com/sd/business/controller/bom/BomClassifyController.java

@@ -1,6 +1,6 @@
 package com.sd.business.controller.bom;
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.sd.business.entity.bom.dto.BomClassifyDto;
 import com.sd.business.entity.bom.dto.BomClassifySelectDto;
@@ -12,6 +12,8 @@ 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;
+
 
 /**
  * <p>
@@ -29,11 +31,11 @@ public class BomClassifyController {
     private BomClassifyService bomClassifyService;
 
     /**
-     * bom分类分页
+     * bom分类树形
      */
-    @PostMapping("/page")
-    public Page<BomClassifyVo> page(@RequestBody BomClassifySelectDto dto) {
-        return bomClassifyService.getPage(dto);
+    @PostMapping("/tree")
+    public List<JSONObject> tree(@RequestBody BomClassifySelectDto dto) {
+        return bomClassifyService.tree(dto);
     }
 
     /**

+ 5 - 0
sd-business/src/main/java/com/sd/business/entity/bom/dto/BomClassifySelectDto.java

@@ -14,4 +14,9 @@ import lombok.Setter;
 @Setter
 public class BomClassifySelectDto extends BaseSelectDto {
 
+    /**
+     * 分类名称
+     */
+    private String name;
+
 }

+ 6 - 0
sd-business/src/main/java/com/sd/business/entity/bom/po/BomClassify.java

@@ -5,6 +5,9 @@ import com.ruoyi.common.core.domain.BasePo;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
 /**
  * <p>
  * bom分类
@@ -21,16 +24,19 @@ public class BomClassify extends BasePo {
     /**
      * 上级分类id
      */
+    @NotNull(message = "上级分类id不能为空")
     private Long parentId;
 
     /**
      * 分类名称
      */
+    @NotBlank(message = "分类名称不能为空")
     private String name;
 
     /**
      * 分类编码
      */
+    @NotBlank(message = "分类编码不能为空")
     private String code;
 
     /**

+ 0 - 9
sd-business/src/main/java/com/sd/business/mapper/bom/BomClassifyMapper.java

@@ -1,11 +1,7 @@
 package com.sd.business.mapper.bom;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.sd.business.entity.bom.po.BomClassify;
-import com.sd.business.entity.bom.vo.BomClassifyVo;
-import org.apache.ibatis.annotations.Param;
 
 
 /**
@@ -18,9 +14,4 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface BomClassifyMapper extends BaseMapper<BomClassify> {
 
-    /**
-     * bom分类分页
-     */
-    Page<BomClassifyVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<BomClassify> wrapper);
-
 }

+ 5 - 3
sd-business/src/main/java/com/sd/business/service/bom/BomClassifyService.java

@@ -1,12 +1,14 @@
 package com.sd.business.service.bom;
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.common.core.service.BaseService;
 import com.sd.business.entity.bom.dto.BomClassifyDto;
 import com.sd.business.entity.bom.dto.BomClassifySelectDto;
 import com.sd.business.entity.bom.po.BomClassify;
 import com.sd.business.entity.bom.vo.BomClassifyVo;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -19,9 +21,9 @@ import com.sd.business.entity.bom.vo.BomClassifyVo;
 public interface BomClassifyService extends BaseService<BomClassify> {
 
     /**
-     * bom分类分页
+     * bom分类树形
      */
-    Page<BomClassifyVo> getPage(BomClassifySelectDto dto);
+    List<JSONObject> tree(BomClassifySelectDto dto);
 
     /**
      * bom分类明细

+ 26 - 7
sd-business/src/main/java/com/sd/business/service/bom/impl/BomClassifyServiceImpl.java

@@ -1,9 +1,12 @@
 package com.sd.business.service.bom.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.ruoyi.common.core.domain.BaseIdPo;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.TreeUtil;
 import com.sd.business.entity.bom.dto.BomClassifyDto;
 import com.sd.business.entity.bom.dto.BomClassifySelectDto;
 import com.sd.business.entity.bom.po.BomClassify;
@@ -12,6 +15,8 @@ import com.sd.business.mapper.bom.BomClassifyMapper;
 import com.sd.business.service.bom.BomClassifyService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -25,11 +30,10 @@ import org.springframework.stereotype.Service;
 public class BomClassifyServiceImpl extends ServiceImpl<BomClassifyMapper, BomClassify> implements BomClassifyService {
 
     @Override
-    public Page<BomClassifyVo> getPage(BomClassifySelectDto dto) {
-        IWrapper<BomClassify> wrapper = getWrapper();
-        wrapper.orderByDesc("bc", BomClassify::getId);
-        Page<BomClassifyVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
-        return page;
+    public List<JSONObject> tree(BomClassifySelectDto dto) {
+        List<BomClassify> list = list(q -> q
+                .like(ObjectUtil.isNotEmpty(dto.getName()), BomClassify::getName, dto.getName()));
+        return TreeUtil.buildTreeObj(list);
     }
 
     @Override
@@ -41,11 +45,26 @@ public class BomClassifyServiceImpl extends ServiceImpl<BomClassifyMapper, BomCl
 
     @Override
     public void add(BomClassifyDto bomClassifyDto) {
+        long count = count(q -> q
+                .eq(BomClassify::getCode, bomClassifyDto.getCode())
+                .last("limit 1")
+        );
+        if (count > 0) {
+            throw new ServiceException("分类编码已存在");
+        }
         this.save(bomClassifyDto);
     }
 
     @Override
     public void edit(BomClassifyDto bomClassifyDto) {
+        long count = count(q -> q
+                .eq(BomClassify::getCode, bomClassifyDto.getCode())
+                .ne(BaseIdPo::getId, bomClassifyDto.getId())
+                .last("limit 1")
+        );
+        if (count > 0) {
+            throw new ServiceException("分类编码已存在");
+        }
         this.updateById(bomClassifyDto);
     }
 

+ 0 - 14
sd-business/src/main/resources/mapper/bom/BomClassifyMapper.xml

@@ -1,19 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.sd.business.mapper.bom.BomClassifyMapper">
-    <select id="getPage" resultType="com.sd.business.entity.bom.vo.BomClassifyVo">
-        select bc.id,
-               bc.parent_id,
-               bc.name,
-               bc.code,
-               bc.sort,
-               bc.remark,
-               bc.create_user,
-               bc.create_time,
-               bc.update_user,
-               bc.update_time
-        from bom_classify bc
-            ${ew.customSqlSegment}
-    </select>
 
 </mapper>