package org.jeecg.modules.base.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.jeecg.modules.base.entity.Unit;
|
import org.jeecg.modules.base.entity.UnitCategory;
|
import org.jeecg.modules.base.mapper.UnitMapper;
|
import org.jeecg.modules.base.mapper.UnitCategoryMapper;
|
import org.jeecg.modules.base.service.IUnitCategoryService;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Objects;
|
|
@Service
|
public class UnitCategoryServiceImpl extends ServiceImpl<UnitCategoryMapper, UnitCategory> implements IUnitCategoryService {
|
|
@Resource
|
private UnitCategoryMapper unitCategoryMapper;
|
@Resource
|
private UnitMapper unitMapper;
|
|
// 初始化工装类别
|
// private static final String initUnitCategory = "计量单位分类";
|
/**
|
* 查询计量单位分类树
|
* @return
|
*/
|
@Override
|
public List<UnitCategory> getTreeList() {
|
List<UnitCategory> treeList = new ArrayList<>();
|
LambdaQueryWrapper<UnitCategory> query = new LambdaQueryWrapper<UnitCategory>();
|
List<UnitCategory> list = this.list(query);
|
for(UnitCategory unitCategory1 :list){
|
LambdaQueryWrapper<UnitCategory> momBaseUnitCategoryLambdaQueryWrapper = new LambdaQueryWrapper<UnitCategory>();
|
momBaseUnitCategoryLambdaQueryWrapper.eq(UnitCategory::getId, unitCategory1.getPid());
|
UnitCategory unitCategory = unitCategoryMapper.selectOne(momBaseUnitCategoryLambdaQueryWrapper);
|
if(unitCategory ==null||"".equals(unitCategory)){
|
unitCategory1.setPName("");
|
}else{
|
unitCategory1.setPName(unitCategory.getCode()+ unitCategory.getName());
|
}
|
if(Objects.equals(unitCategory1.getPid(), "-1")){
|
treeList.add(findChild(list, unitCategory1));
|
}
|
}
|
return treeList;
|
}
|
|
@Override
|
public void initFristUnitCategory() {
|
|
UnitCategory unitCategory;
|
List<UnitCategory> unitCategoryList = super.lambdaQuery()
|
.eq(UnitCategory::getName, "计量单位分类")
|
.eq(UnitCategory::getDelFlag, "0").list();
|
if (unitCategoryList.size() == 0) {
|
unitCategory = new UnitCategory();
|
unitCategory.setCode("0");
|
// unitCategory.setId("-1");
|
unitCategory.setCodeName("计量单位分类");
|
unitCategory.setPid("-1");
|
super.save(unitCategory);
|
}
|
}
|
|
/**
|
* 查询计量单位树
|
* @return
|
*/
|
@Override
|
public List<UnitCategory> getUnitTreeList() {
|
List<UnitCategory> treeList = new ArrayList<>();
|
LambdaQueryWrapper<UnitCategory> query = new LambdaQueryWrapper<UnitCategory>();
|
List<UnitCategory> list = this.list(query);
|
for(UnitCategory unitCategory1 :list){
|
LambdaQueryWrapper<UnitCategory> momBaseUnitCategoryLambdaQueryWrapper = new LambdaQueryWrapper<UnitCategory>();
|
momBaseUnitCategoryLambdaQueryWrapper.eq(UnitCategory::getId, unitCategory1.getPid());
|
UnitCategory unitCategory = unitCategoryMapper.selectOne(momBaseUnitCategoryLambdaQueryWrapper);
|
if(unitCategory ==null||"".equals(unitCategory)){
|
unitCategory1.setPName("");
|
}else{
|
unitCategory1.setPName(unitCategory.getCode()+ unitCategory.getName());
|
}
|
if(Objects.equals(unitCategory1.getPid(), "-1")){
|
treeList.add(findUnitChild(list, unitCategory1));
|
}
|
}
|
return treeList;
|
}
|
|
/**
|
* 查询计量单位分类的下级计量单位分类
|
* @param id
|
* @return
|
*/
|
@Override
|
public List<UnitCategory> getList(String id) {
|
List<UnitCategory> list = unitCategoryMapper.getList(id);
|
list.forEach( l ->{
|
LambdaQueryWrapper<UnitCategory> query = new LambdaQueryWrapper<>();
|
query.eq(UnitCategory::getId,id);
|
UnitCategory unitCategory = unitCategoryMapper.selectOne(query);
|
l.setPName(l.getCode()+l.getName());
|
l.setCodeName(unitCategory.getCode()+ unitCategory.getName());
|
});
|
return list;
|
}
|
/**
|
* 查询计量单位分类的所有下级计量单位分类
|
* @return
|
*/
|
private static UnitCategory findChild(List<UnitCategory> list, UnitCategory unitCategory){
|
for(UnitCategory unitCategory1 : list){
|
unitCategory1.setCodeName(unitCategory1.getCode()+ unitCategory1.getName());
|
if(Objects.equals(unitCategory1.getPid(), unitCategory.getId())){
|
if(unitCategory.getChildren() == null){
|
unitCategory.setChildren(new ArrayList<UnitCategory>());
|
}
|
unitCategory.getChildren().add(findChild(list, unitCategory1));
|
}
|
}
|
return unitCategory;
|
}
|
|
/**
|
* 查询计量单位树
|
* @return
|
*/
|
private UnitCategory findUnitChild(List<UnitCategory> list, UnitCategory unitCategory){
|
for(UnitCategory unitCategory1 : list){
|
unitCategory1.setCodeName(unitCategory1.getCode()+ unitCategory1.getName());
|
if(Objects.equals(unitCategory1.getPid(), unitCategory.getId())){
|
if(unitCategory.getChildren() == null){
|
unitCategory.setChildren(new ArrayList<UnitCategory>());
|
}
|
unitCategory.getChildren().add(findUnitChild(list, unitCategory1));
|
}else{
|
if(unitCategory.getChildren() == null){
|
unitCategory.setChildren(new ArrayList<UnitCategory>());
|
List<Unit> units = unitMapper.getListByUnitCategoryId(unitCategory.getId());
|
for(Unit l : units){
|
|
UnitCategory mom = new UnitCategory();
|
mom.setCodeName(l.getNum()+l.getName());
|
mom.setId(l.getId());
|
mom.setCode(l.getNum());
|
mom.setName(l.getName());
|
unitCategory.getChildren().add(mom);
|
|
}
|
|
}
|
|
}
|
}
|
return unitCategory;
|
}
|
|
}
|