123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- package com.huimv.admin.service.impl;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.convert.Convert;
- import cn.hutool.core.util.NumberUtil;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.StringUtils;
- import com.huimv.admin.common.utils.Result;
- import com.huimv.admin.common.utils.ResultCode;
- import com.huimv.admin.common.utils.ResultUtil;
- import com.huimv.admin.entity.BasePigpen;
- import com.huimv.admin.entity.dto.BasePigpenDto;
- import com.huimv.admin.entity.vo.TreeBasePigpen;
- import com.huimv.admin.mapper.BasePigpenMapper;
- import com.huimv.admin.service.IBasePigpenService;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author author
- * @since 2023-02-13
- */
- @Service
- public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePigpen> implements IBasePigpenService {
- @Autowired
- private BasePigpenMapper basePigpenMapper;
- @Override
- @Transactional
- public Result addPigpen(BasePigpenDto basePigpenDto) {
- BasePigpen basePigpen = new BasePigpen();
- BeanUtil.copyProperties(basePigpen,basePigpenDto);
- basePigpen.setParentId(0);
- basePigpen.setFType(1);
- int insert = basePigpenMapper.insert(basePigpen);
- Integer floorNum = basePigpenDto.getFloorNum();
- for (Integer integer = 1; integer <= floorNum; integer++) {
- BasePigpen basePigpen1 = new BasePigpen();
- basePigpen1.setFType(2);
- basePigpen1.setParentId(insert);
- basePigpen1.setBuildName(Convert.numberToChinese(integer,false));
- basePigpen1.setFarmId(basePigpen.getFarmId());
- basePigpen1.setStageCode(basePigpen.getStageCode());
- }
- return ResultUtil.addResult(insert);
- }
- @Override
- public Result list(String farmCode, String pigpenName, String stageCode) {
- QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
- queryWrapper.like(StringUtils.isNotBlank(pigpenName),"pigpen_name", pigpenName);
- queryWrapper.like(StringUtils.isNotBlank(stageCode),"stage_code", stageCode);
- queryWrapper.eq(StringUtils.isNotBlank(farmCode),"farm_code", farmCode);
- //创建排序
- List<BasePigpen> basePigpens = basePigpenMapper.selectList(queryWrapper);
- //将结果List改为树
- List<TreeBasePigpen> treeBasePigpens = parseBizBaseArea(basePigpens);
- return new Result(ResultCode.SUCCESS,treeBasePigpens);
- }
- /**
- * 查询结果 转换成树形结构
- * @param bizBaseAreas 原始数据
- * @return 树
- */
- private List<TreeBasePigpen> parseBizBaseArea(List<BasePigpen> bizBaseAreas){
- //构建需要展示的树形节点结构
- Map<String, TreeBasePigpen> nodeMap = bizBaseAreas.stream().map(basePigpen -> {
- TreeBasePigpen baseVo = new TreeBasePigpen();
- baseVo.setId(basePigpen.getId()+"");
- baseVo.setFarmCode(basePigpen.getFarmId());
- baseVo.setParentId(basePigpen.getParentId());
- baseVo.setSort(basePigpen.getSort());
- baseVo.setPigpenName(basePigpen.getBuildName());
- baseVo.setType(basePigpen.getFType());
- baseVo.setChildNode(new ArrayList<>());
- return baseVo;
- }).collect(Collectors.toMap(TreeBasePigpen::getId, b -> b,(k1, k2)->k1));
- //创建数组存父亲节点
- ArrayList<TreeBasePigpen> roots = new ArrayList<>();
- //构建树形
- nodeMap.values().forEach(item->{
- String parentCode = item.getParentId()+"";
- if (nodeMap.get(parentCode) == null){
- //父节点为空,说明当前节点就已经是父节点了 将该节点存起来
- roots.add(item);
- }else {
- //父节点 不为空,说明有父节点,拿到该节点的父节点的孩子节点(就是我自己),将该节点存起来
- nodeMap.get(parentCode).getChildNode().add(item);
- }
- });
- return roots;
- }
- }
|