Commit 62202937 authored by 施翔轲's avatar 施翔轲

查询物资类别树相关

parent cdcb4bf4
...@@ -207,6 +207,7 @@ tenant: ...@@ -207,6 +207,7 @@ tenant:
- s_materiel_project - s_materiel_project
- labor_leader_customer_risk - labor_leader_customer_risk
- f_supplier_limited_relieve - f_supplier_limited_relieve
- d_customer_class
# MyBatisPlus配置 # MyBatisPlus配置
# https://baomidou.com/config/ # https://baomidou.com/config/
......
package com.dsk.cscec.controller;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.R;
import com.dsk.cscec.domain.vo.DCustomerClassTreeVo;
import com.dsk.cscec.service.DCustomerClassService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* (DCustomerClass)表控制层
*
* @author sxk
* @since 2024-06-19 17:03:19
*/
@RestController
@RequestMapping("dCustomerClass")
public class DCustomerClassController extends BaseController {
@Resource
private DCustomerClassService baseService;
/**
* 查询物资类别树
*/
@GetMapping("/queryMaterialClassTree")
public R<List<DCustomerClassTreeVo>> queryMaterialClassTree() {
return R.ok(baseService.queryMaterialClassTree());
}
}
package com.dsk.cscec.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* (DCustomerClass)实体类
*
* @author sxk
* @since 2024-06-19 17:03:19
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DCustomerClass implements Serializable {
private static final long serialVersionUID = 623070004380284125L;
/**
* 类别ID
*/
private String customerClassId;
/**
* 类别编码
*/
private Long customerClassCode;
/**
* 类别名称
*/
private String customerClassName;
/**
* 类别名称编码1
*/
private String customerClassCode1;
/**
* 类别名称1
*/
private String customerClassName1;
/**
* 类别名称编码2
*/
private String customerClassCode2;
/**
* 类别名称2
*/
private String customerClassName2;
/**
* 类别名称编码3
*/
private String customerClassCode3;
/**
* 类别名称3
*/
private String customerClassName3;
/**
* 层级编号
*/
private Long levelNo;
/**
* 是否叶子结点
*/
private String isleaf;
/**
* 是否有效
*/
private String isvalid;
/**
* 备注
*/
private String remark;
/**
* 父级ID
*/
private String parentId;
/**
* 加载时间
*/
private Date loadTime;
}
package com.dsk.cscec.domain.vo;
import com.dsk.cscec.domain.DCustomerClass;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
/**
* @author sxk
* @date 2024.06.19
* @time 17:28
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DCustomerClassTreeVo extends DCustomerClass {
/**
* 子集
*/
private List<DCustomerClassTreeVo> children = new ArrayList<>();
}
package com.dsk.cscec.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsk.cscec.domain.DCustomerClass;
/**
* (DCustomerClass)表数据库访问层
*
* @author sxk
* @since 2024-06-19 17:03:19
*/
public interface DCustomerClassMapper extends BaseMapper<DCustomerClass> {
}
package com.dsk.cscec.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.cscec.domain.DCustomerClass;
import com.dsk.cscec.domain.vo.DCustomerClassTreeVo;
import java.util.List;
/**
* (DCustomerClass)表服务接口
*
* @author sxk
* @since 2024-06-19 17:03:19
*/
public interface DCustomerClassService extends IService<DCustomerClass> {
/**
* 查询物资类别树
*/
List<DCustomerClassTreeVo> queryMaterialClassTree();
}
package com.dsk.cscec.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.cscec.domain.DCustomerClass;
import com.dsk.cscec.domain.vo.DCustomerClassTreeVo;
import com.dsk.cscec.mapper.DCustomerClassMapper;
import com.dsk.cscec.service.DCustomerClassService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* (DCustomerClass)表服务实现类
*
* @author sxk
* @since 2024-06-19 17:03:19
*/
@Service("dCustomerClassService")
public class DCustomerClassServiceImpl extends ServiceImpl<DCustomerClassMapper, DCustomerClass> implements DCustomerClassService {
@Resource
private DCustomerClassMapper baseMapper;
/**
* 查询物资类别树
*/
@Override
public List<DCustomerClassTreeVo> queryMaterialClassTree() {
List<DCustomerClassTreeVo> finalTree = new ArrayList<>();
//构建树
List<DCustomerClass> originList = baseMapper.selectList(null);
originList.forEach(item -> {
//筛选分供资源分类并添加根节点
if ("分供资源分类".equals(item.getCustomerClassName()) &&
item.getLevelNo() == 0 &&
"Y".equals(item.getIsvalid())) {
DCustomerClassTreeVo rootVo = BeanUtil.toBean(item, DCustomerClassTreeVo.class);
finalTree.add(rootVo);
//递归添加物资类别子节点
this.addChild(rootVo, BeanUtil.copyToList(originList, DCustomerClassTreeVo.class));
}
});
return finalTree;
}
/**
* 递归添加物资类别子节点
*/
private void addChild(DCustomerClassTreeVo parent, List<DCustomerClassTreeVo> tree) {
tree.forEach(item -> {
if (item.getParentId().equals(parent.getCustomerClassId())) {
parent.getChildren().add(item);
addChild(item, tree);
}
});
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment