|
@@ -10,10 +10,16 @@ import com.huimv.eartag2.manage2.service.BasePigpenService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.huimv.eartag2.manage2.utils.IDUtil;
|
|
|
import com.huimv.eartag2.manage2.utils.ResultUtil;
|
|
|
+import com.huimv.eartag2.manage2.vo.TreeBasePigpen;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
/**
|
|
|
* <p>
|
|
|
* 服务实现类
|
|
@@ -101,18 +107,56 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Result list(String farmCode, String pigpenName, String stageCode, Integer pageNo, Integer pageSize) {
|
|
|
- if(pageNo == 0){
|
|
|
- pageNo = 1;
|
|
|
- }
|
|
|
- Page<BasePigpen> page = new Page<>(pageNo, pageSize);
|
|
|
+ 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);
|
|
|
//创建排序
|
|
|
// queryWrapper.orderByAsc("sort");
|
|
|
- Page<BasePigpen> pageBasePigpen = basePigpenMapper.selectPage(page, queryWrapper);
|
|
|
- return new Result(ResultCode.SUCCESS,pageBasePigpen);
|
|
|
+ List<BasePigpen> basePigpens = basePigpenMapper.selectList(queryWrapper);
|
|
|
+ //Page<BasePigpen> pageBasePigpen = basePigpenMapper.selectPage(page, 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.getFarmCode());
|
|
|
+ baseVo.setPigpenCode(basePigpen.getPigpenCode());
|
|
|
+ baseVo.setParentId(basePigpen.getParentId());
|
|
|
+ baseVo.setSort(basePigpen.getSort());
|
|
|
+ baseVo.setPigpenName(basePigpen.getPigpenName());
|
|
|
+ baseVo.setStageCode(basePigpen.getStageCode());
|
|
|
+ baseVo.setType(basePigpen.getType());
|
|
|
+ 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;
|
|
|
}
|
|
|
}
|