package com.glxp.api.controller.basic; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.handler.WriteHandler; import com.alibaba.excel.write.metadata.style.WriteCellStyle; import com.alibaba.excel.write.metadata.style.WriteFont; import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageInfo; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.entity.basic.YbNotCode; import com.glxp.api.req.dev.YbNotCodeQuery; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.YbNotCodeResponse; import com.glxp.api.service.basic.impl.YbNotCodeServiceImpl; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.BorderStyle; import org.apache.poi.ss.usermodel.FillPatternType; import org.apache.poi.ss.usermodel.IndexedColors; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.Date; import java.util.List; import java.util.Objects; @Slf4j @RestController public class YbNotCodeController { @Resource YbNotCodeServiceImpl ybNotCodeService; @PostMapping("/udi/ybNotCode/page") public BaseResponse page(@RequestBody YbNotCodeQuery query) { List list = ybNotCodeService.pageList(query); PageInfo pageInfo = new PageInfo<>(list); PageSimpleResponse page = new PageSimpleResponse(); page.setTotal(pageInfo.getTotal()); page.setList(pageInfo.getList()); return ResultVOUtils.success(page); } @PostMapping("/udi/ybNotCode/add") public BaseResponse add(@RequestBody YbNotCode ybNotCode) { return ResultVOUtils.success(ybNotCodeService.add(ybNotCode)); } @PostMapping("/udi/ybNotCode/update") public BaseResponse update(@RequestBody YbNotCode ybNotCode) { return ResultVOUtils.success(ybNotCodeService.update(ybNotCode)); } @PostMapping("/udi/ybNotCode/delete") public BaseResponse delete(@RequestBody YbNotCode ybNotCode) { return ResultVOUtils.success(ybNotCodeService.delete(ybNotCode)); } @GetMapping("/udi/ybNotCode/export") public void export( YbNotCodeQuery query,HttpServletResponse response) throws IOException { List list; if(query.getExcelType() !=null && query.getExcelType() == 1 ){ list = ybNotCodeService.pageList( query ); }else { list = ybNotCodeService.list( new QueryWrapper<>()); } List splitCodeEntities = BeanUtil.copyToList(list, YbNotCodeResponse.class); response.setCharacterEncoding(StandardCharsets.UTF_8.name()); response.setHeader("content-Type", "application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("无码药品信息管理模板" + DateUtil.format(new Date(), "yyyy-MM-dd") + ".xlsx", StandardCharsets.UTF_8.name())); // 定义表头样式 WriteCellStyle headWriteCellStyle = new WriteCellStyle(); // 设置表头背景颜色为淡蓝色 headWriteCellStyle.setFillForegroundColor(IndexedColors.LIGHT_YELLOW.getIndex()); // 淡蓝色对应的索引值 WriteFont headWriteFont = new WriteFont(); headWriteFont.setFontHeightInPoints((short) 11); headWriteCellStyle.setWriteFont(headWriteFont); // 定义内容样式 WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); // 构建样式策略 HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle); EasyExcel.write(response.getOutputStream(), YbNotCodeResponse.class).registerWriteHandler(horizontalCellStyleStrategy) .// 注册自定义样式处理器 sheet("无码药品申报导入").doWrite(splitCodeEntities); } }