| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- package com.jeesite.modules.mes.web;
- import java.net.URLEncoder;
- import java.nio.charset.StandardCharsets;
- import java.util.List;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.shiro.authz.annotation.RequiresPermissions;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.ModelAttribute;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.ResponseBody;
- import com.jeesite.common.config.Global;
- import com.jeesite.common.entity.Page;
- import com.jeesite.common.lang.DateUtils;
- import com.jeesite.common.utils.excel.ExcelExport;
- import com.jeesite.common.web.BaseController;
- import com.jeesite.modules.mes.entity.MesMaterialInspect;
- import com.jeesite.modules.mes.service.MesMaterialInspectExportService;
- import com.jeesite.modules.mes.service.MesMaterialInspectService;
- /**
- * 来料送检单(PC 列表 / 编辑 / PDF)。数据由现有 PDA 来料报检 submit 自动生成。
- */
- @Controller
- @RequestMapping(value = "${adminPath}/mes/mesMaterialInspect")
- public class MesMaterialInspectController extends BaseController {
- @Autowired
- private MesMaterialInspectService mesMaterialInspectService;
- @Autowired
- private MesMaterialInspectExportService mesMaterialInspectExportService;
- @ModelAttribute
- public MesMaterialInspect get(String id, boolean isNewRecord) {
- return mesMaterialInspectService.get(id, isNewRecord);
- }
- @RequiresPermissions("mes:mesMaterialInspect:view")
- @RequestMapping(value = { "list", "" })
- public String list(MesMaterialInspect mesMaterialInspect, Model model) {
- model.addAttribute("mesMaterialInspect", mesMaterialInspect);
- return "modules/mes/mesMaterialInspectList";
- }
- @RequiresPermissions("mes:mesMaterialInspect:view")
- @RequestMapping(value = "listData")
- @ResponseBody
- public Page<MesMaterialInspect> listData(MesMaterialInspect mesMaterialInspect,
- HttpServletRequest request, HttpServletResponse response) {
- mesMaterialInspect.setPage(new Page<>(request, response));
- return mesMaterialInspectService.findPage(mesMaterialInspect);
- }
- @RequiresPermissions("mes:mesMaterialInspect:view")
- @RequestMapping(value = "form")
- public String form(MesMaterialInspect mesMaterialInspect, Model model) {
- model.addAttribute("mesMaterialInspect", mesMaterialInspect);
- return "modules/mes/mesMaterialInspectForm";
- }
- @RequiresPermissions("mes:mesMaterialInspect:edit")
- @PostMapping(value = "save")
- @ResponseBody
- public String save(@Validated MesMaterialInspect mesMaterialInspect) {
- mesMaterialInspectService.save(mesMaterialInspect);
- return renderResult(Global.TRUE, text("保存来料送检单成功!"));
- }
- @RequiresPermissions("mes:mesMaterialInspect:edit")
- @RequestMapping(value = "delete")
- @ResponseBody
- public String delete(MesMaterialInspect mesMaterialInspect) {
- mesMaterialInspectService.delete(mesMaterialInspect);
- return renderResult(Global.TRUE, text("删除来料送检单成功!"));
- }
- @RequiresPermissions("mes:mesMaterialInspect:view")
- @RequestMapping(value = "exportData")
- public void exportData(MesMaterialInspect mesMaterialInspect, HttpServletResponse response) {
- List<MesMaterialInspect> list = mesMaterialInspectService.findList(mesMaterialInspect);
- String fileName = "来料送检单" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
- try (ExcelExport ee = new ExcelExport("来料送检单", MesMaterialInspect.class)) {
- ee.setDataList(list).write(response, fileName);
- }
- }
- /**
- * 按行导出送检单 PDF(版式对齐 Excel 模板)
- */
- @RequiresPermissions("mes:mesMaterialInspect:view")
- @RequestMapping(value = "exportInspectPdf")
- public void exportInspectPdf(String id, HttpServletResponse response) throws Exception {
- if (StringUtils.isBlank(id)) {
- response.setContentType("text/plain;charset=UTF-8");
- response.getWriter().write("参数错误");
- return;
- }
- MesMaterialInspect row = mesMaterialInspectService.get(new MesMaterialInspect(id));
- if (row == null || StringUtils.isBlank(row.getSn())) {
- response.setContentType("text/plain;charset=UTF-8");
- response.getWriter().write("数据不完整,无法导出");
- return;
- }
- byte[] pdf = mesMaterialInspectExportService.exportPdf(row);
- String name = "来料送检单_" + StringUtils.defaultIfBlank(row.getPoNo(), "NA")
- + "_" + StringUtils.defaultIfBlank(row.getBatchNo(), "NA") + ".pdf";
- String encoded = URLEncoder.encode(name, StandardCharsets.UTF_8.name()).replace("+", "%20");
- response.setContentType("application/pdf");
- response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + encoded);
- response.setContentLength(pdf.length);
- response.getOutputStream().write(pdf);
- response.getOutputStream().flush();
- }
- }
|