You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-spms-java/src/main/java/com/glxp/api/controller/basic/YbNotCodeController.java

108 lines
4.4 KiB
Java

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<YbNotCode> 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<YbNotCode> list;
if(query.getExcelType() !=null && query.getExcelType() == 1
){
list = ybNotCodeService.pageList( query );
}else {
list = ybNotCodeService.list( new QueryWrapper<>());
}
List<YbNotCodeResponse> 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);
}
}