package com.zy.common.utils; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.core.common.SpringUtils; import com.zy.asrs.entity.Node; import com.zy.asrs.entity.Tag; import com.zy.asrs.service.NodeService; import com.zy.asrs.service.TagService; import com.zy.common.entity.NodeExcel; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; /** * Created by vincent on 2021/1/19 */ public class NodeUtils { public StringBuilder path = new StringBuilder(); public StringBuilder pathName = new StringBuilder(); public void executePath(Node node) { NodeService bean = SpringUtils.getBean(NodeService.class); Node parent = bean.selectById(node.getParentId()); if (null != parent) { path.insert(0, parent.getId()).insert(0,","); pathName.insert(0, parent.getName()).insert(0,","); if (parent.getParentId() != null) { executePath(parent); } else { path.deleteCharAt(0); pathName.deleteCharAt(0); } } } public void executePath(Tag tag) { TagService bean = SpringUtils.getBean(TagService.class); Tag parent = bean.selectById(tag.getParentId()); if (null != parent) { path.insert(0, parent.getId()).insert(0,","); pathName.insert(0, parent.getName()).insert(0,","); if (parent.getParentId() != null) { executePath(parent); } else { path.deleteCharAt(0); pathName.deleteCharAt(0); } } } public void executePath(Long parentId) { TagService bean = SpringUtils.getBean(TagService.class); Tag parent = bean.selectById(parentId); if (null != parent) { path.insert(0, parent.getId()).insert(0,","); pathName.insert(0, parent.getName()).insert(0,","); if (parent.getParentId() != null) { executePath(parent); } else { path.deleteCharAt(0); pathName.deleteCharAt(0); } } } /*************************************** 数据相关 ***********************************************/ /** * excel导入模板下载 */ @RequestMapping(value = "/node/excel/import/mould") public void nodeExcelImportMould(HttpServletResponse response) throws IOException { List excels = new ArrayList<>(); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); String fileName = URLEncoder.encode("货位档案Excel导入模板", "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); EasyExcel.write(response.getOutputStream(), NodeExcel.class) .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) .sheet("sheet1") .doWrite(excels); } }