Browse Source

Site功能导出

master
Yangzz 7 months ago
parent
commit
76040353dd
  1. 17
      src/main/java/com/gaotao/modules/factory/controller/SiteController.java
  2. 15
      src/main/java/com/gaotao/modules/factory/service/SiteService.java
  3. 55
      src/main/java/com/gaotao/modules/factory/service/impl/SiteServiceImpl.java

17
src/main/java/com/gaotao/modules/factory/controller/SiteController.java

@ -4,12 +4,12 @@ package com.gaotao.modules.factory.controller;
import com.gaotao.common.constant.SysMsgConstant;
import com.gaotao.common.utils.R;
import com.gaotao.modules.factory.entity.Site;
import com.gaotao.modules.factory.entity.vo.SiteVo;
import com.gaotao.modules.factory.service.SiteService;
import com.gaotao.modules.sys.controller.AbstractController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@RequestMapping("/site")
@ -60,4 +60,19 @@ public class SiteController extends AbstractController {
Site site = service.getSiteById(id);
return R.ok().put("row",site);
}
/*
* @Description site导出
* @Title
* @param null
* @author Yangzz
* @date 2025/6/30 09:37
* @return {@link null}
* @throw
*/
@PostMapping("/export")
public void export(HttpServletResponse response, @RequestBody Site site) {
service.export(response,site);
}
}

15
src/main/java/com/gaotao/modules/factory/service/SiteService.java

@ -2,8 +2,8 @@ package com.gaotao.modules.factory.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gaotao.modules.factory.entity.Site;
import com.gaotao.modules.factory.entity.vo.SiteVo;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
public interface SiteService extends IService<Site> {
@ -27,4 +27,17 @@ public interface SiteService extends IService<Site> {
String generateSiteId(Site site);
Site getSiteById(String id);
/*
* @Description site导出
* @Title
* @param null
* @author Yangzz
* @date 2025/6/30 09:38
* @return {@link null}
* @throw
*/
void export(HttpServletResponse response, Site site);
}

55
src/main/java/com/gaotao/modules/factory/service/impl/SiteServiceImpl.java

@ -1,18 +1,22 @@
package com.gaotao.modules.factory.service.impl;
import cn.idev.excel.FastExcel;
import cn.idev.excel.write.metadata.style.WriteCellStyle;
import cn.idev.excel.write.metadata.style.WriteFont;
import cn.idev.excel.write.style.HorizontalCellStyleStrategy;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.gaotao.common.constant.SysMsgConstant;
import com.gaotao.common.utils.WrapperGenerate;
import com.gaotao.common.utils.R;
import com.gaotao.modules.factory.dao.SiteMapper;
import com.gaotao.modules.factory.entity.Site;
import com.gaotao.modules.factory.entity.vo.SiteVo;
import com.gaotao.modules.factory.service.SiteService;
import com.gaotao.modules.label.entity.LabelFormat;
import com.gaotao.modules.label.service.LabelFormatService;
import com.gaotao.modules.pallet.entity.CatchPallet;
import com.gaotao.modules.part.entity.Part;
import com.gaotao.modules.part.service.PartService;
import com.gaotao.modules.sys.entity.SysUserEntity;
import com.gaotao.modules.sys.service.SysMenuService;
import com.gaotao.modules.sys.service.SysMsgService;
import com.gaotao.modules.sys.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
@ -20,6 +24,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@ -93,4 +100,46 @@ public class SiteServiceImpl extends ServiceImpl<SiteMapper, Site> implements Si
public Site getSiteById(String id) {
return lambdaQuery().eq(Site::getSiteId, id).one();
}
@Override
public void export(HttpServletResponse response, Site site) {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
response.setStatus(200);
List<Site> list = baseMapper.selectSiteList(site);
if (list.isEmpty()) {
// 设置返回类型为 JSON
response.setContentType("application/json;charset=UTF-8");
response.setStatus(HttpServletResponse.SC_OK); // 仍返回 200但内容为 R.error
try {
R errorResponse = R.error(500, "not find any Site Data");
String json = new ObjectMapper().writeValueAsString(errorResponse);
response.getWriter().write(json);
} catch (IOException e) {
throw new RuntimeException(e);
}
return;
}
try {
String fileName = URLEncoder.encode("Site List", "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
WriteCellStyle contentCellStyle = new WriteCellStyle();
WriteFont writeFont = new WriteFont();
writeFont.setFontName("Arial");
contentCellStyle.setWriteFont(writeFont);
// 注册策略
HorizontalCellStyleStrategy strategy = new HorizontalCellStyleStrategy(null, contentCellStyle);
FastExcel.write(response.getOutputStream(), CatchPallet.class)
.registerWriteHandler(strategy)
.sheet("site List")
.doWrite(list);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
Loading…
Cancel
Save