package org.jeecg.modules.base.service.impl; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.vo.SelectTreeModel; import org.jeecg.modules.base.entity.Enterprise; import org.jeecg.modules.base.entity.MaterialCategory; import org.jeecg.modules.base.mapper.MaterialCategoryMapper; import org.jeecg.modules.base.service.IMaterialCategoryService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; import java.util.stream.Collectors; /** * @Description: 物料分类 * @Author: jeecg-boot * @Date: 2023-04-20 * @Version: V1.0 */ @Service @Transactional public class MaterialCategoryImpl extends ServiceImpl implements IMaterialCategoryService { /** * 获取版本树 * * @param pid * @param version * @return */ @Override public List getMaterialCategoryVersionTree(String pid, Integer version) { List list = baseMapper.getMaterialCategoryVersionTree(pid, version) .stream().sorted((e1, e2) -> { Integer subfix1 = Integer.parseInt(e1.getValue().substring(e1.getValue().lastIndexOf(".") + 1)); Integer subfix2 = Integer.parseInt(e2.getValue().substring(e2.getValue().lastIndexOf(".") + 1)); return Integer.compare(subfix1, subfix2); }).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(list)) { for (SelectTreeModel selectTreeModel : list) { selectTreeModel.setChildren(getMaterialCategoryVersionTree(selectTreeModel.getKey(), version)); } } return list; } /** * 根据父Id获取孩子列表 * * @param page * @param parentId * @param version * @return */ @Override public Page> getMaterialCategoryListByPid(Page> page, Integer version, String parentId) { return page.setRecords(baseMapper.getMaterialCategoryListByIds(page, version, parentId)); } /** * 获取所有版本 * * @return */ @Override public Set getAllVersion() { Set set = new TreeSet<>(Comparator.reverseOrder()); set.addAll(baseMapper.getAllVersion()); return set; } @Override public Integer getInitVersion() { Set allVersionList = getAllVersion(); List usableVersionList = baseMapper.getUsableVersion(); if (CollectionUtils.isNotEmpty(usableVersionList)) { return usableVersionList.get(0); } else if (CollectionUtils.isNotEmpty(allVersionList)) { return allVersionList.stream().findFirst().get(); } return null; } @Override public Map getNowAndLastUsableVersion() { List usableList = baseMapper.getUsableList(); List lastUsableList = baseMapper.getLastUsableList(); Map map = new HashMap<>(2); if (CollectionUtils.isNotEmpty(usableList)) { map.put("usableVersion", usableList.get(0).getVersion()); } if (CollectionUtils.isNotEmpty(lastUsableList)) { map.put("lastUsableVersion", lastUsableList.get(0).getVersion()); } return map; } @Override public List getUsableList() { return baseMapper.getUsableList(); } @Override public List getLastUsableList() { return baseMapper.getLastUsableList(); } }