From 1c3c68d3dc45e4d519088de17001284858de5eb9 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期六, 06 六月 2020 10:50:02 +0800 Subject: [PATCH] #导出 --- src/main/java/com/zy/asrs/controller/MatCodeController.java | 21 ++---- src/main/java/com/zy/common/utils/excel/ExcelUtils.java | 14 ++-- src/main/webapp/views/matCode/matCode.html | 22 +++++++ src/main/webapp/static/js/matCode/matCode.js | 58 +++++++------------ src/main/java/com/zy/common/web/FileController.java | 23 +++++++ 5 files changed, 80 insertions(+), 58 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/MatCodeController.java b/src/main/java/com/zy/asrs/controller/MatCodeController.java index eb80c17..b36c779 100644 --- a/src/main/java/com/zy/asrs/controller/MatCodeController.java +++ b/src/main/java/com/zy/asrs/controller/MatCodeController.java @@ -101,18 +101,10 @@ // 瀵煎嚭 @RequestMapping(value = "/matCode/export/auth") - @ManagerAuth - public void export(@RequestBody JSONObject param, HttpServletResponse response) throws Exception{ -// List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); -// EntityWrapper<MatCode> wrapper = new EntityWrapper<>(); -// Map<String, Object> map = excludeTrash(param.getJSONObject("matCode")); -// convert(map, wrapper); -// List<MatCode> list = matCodeService.selectList(wrapper); - - + public void export(@RequestParam(required = false) String fileName, + @RequestParam(required = false) Integer rowCount, + HttpServletResponse response) throws Exception { List<MatCode> list = matCodeService.selectList(new EntityWrapper<>()); - - List<MatCodeExcel> excels = new ArrayList<>(); for (MatCode matCode : list) { MatCodeExcel excel = new MatCodeExcel(); @@ -122,12 +114,15 @@ excel.setStr1(matCode.getStr1()); excel.setStr2(matCode.getStr2()); excels.add(excel); + if (rowCount != null && excels.size() >= rowCount){ + break; + } } response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); - String fileName = URLEncoder.encode("娴嬭瘯", "UTF-8"); + fileName = URLEncoder.encode(Cools.isEmpty(fileName)?"鐗╂枡缂栫爜":fileName, "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); - EasyExcel.write(response.getOutputStream(), MatCodeExcel.class).sheet("妯℃澘").doWrite(excels); + EasyExcel.write(response.getOutputStream(), MatCodeExcel.class).sheet("琛�1").doWrite(excels); } // 瀵煎叆 diff --git a/src/main/java/com/zy/common/utils/excel/ExcelUtils.java b/src/main/java/com/zy/common/utils/excel/ExcelUtils.java index d51ec8e..61cc2a7 100644 --- a/src/main/java/com/zy/common/utils/excel/ExcelUtils.java +++ b/src/main/java/com/zy/common/utils/excel/ExcelUtils.java @@ -14,13 +14,11 @@ public class ExcelUtils { public static void main(String[] args) { -// new ExcelUtils().simpleRead(); new ExcelUtils().simpleWrite(); } public void simpleRead(){ ExcelReaderBuilder read = EasyExcel.read("/Users/vincent/Desktop/3869.xls", MatCodeExcel.class, new MatCodeExcelListener()); - // 璇诲彇绗竴涓猻heet(琛�),鏂囦欢娴佷細鑷姩鍏抽棴 read.sheet().doRead(); } @@ -32,13 +30,15 @@ List<MatCodeExcel> list = new ArrayList<>(); for (int i = 0; i<1000; i++) { MatCodeExcel data = new MatCodeExcel(); - data.setMatNo("1"); - data.setBarcode("2"); - data.setMatName("3"); - data.setStr1("5"); - data.setStr2("6"); + data.setMatNo("1902997-5/6"); + data.setBarcode("80001854"); + data.setMatName("閾濆甫|1100-O|0.33*475|"); + data.setStr1("701010015907"); + data.setStr2("榧庤儨閾濅笟棣欐腐_椹潵瑗夸簹UPT"); list.add(data); } return list; } + + } diff --git a/src/main/java/com/zy/common/web/FileController.java b/src/main/java/com/zy/common/web/FileController.java index d7b9c83..a0bc022 100644 --- a/src/main/java/com/zy/common/web/FileController.java +++ b/src/main/java/com/zy/common/web/FileController.java @@ -1,16 +1,21 @@ package com.zy.common.web; import com.alibaba.excel.EasyExcel; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.R; -import com.zy.common.utils.excel.ExcelUtils; +import com.zy.asrs.entity.MatCode; +import com.zy.asrs.service.MatCodeService; import com.zy.common.utils.excel.matcode.MatCodeExcel; import com.zy.common.utils.excel.matcode.MatCodeExcelListener; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.List; /** * todo @@ -20,6 +25,8 @@ @RequestMapping("excel/") public class FileController { + @Autowired + private MatCodeService matCodeService; /** * 鏂囦欢涓婁紶 */ @@ -35,13 +42,25 @@ */ @GetMapping("download") public void download(HttpServletResponse response) throws IOException { + List<MatCode> list = matCodeService.selectList(new EntityWrapper<>()); + + List<MatCodeExcel> excels = new ArrayList<>(); + for (MatCode matCode : list) { + MatCodeExcel excel = new MatCodeExcel(); + excel.setMatNo(matCode.getMatNo()); + excel.setBarcode(matCode.getBarcode()); + excel.setMatName(matCode.getMatName()); + excel.setStr1(matCode.getStr1()); + excel.setStr2(matCode.getStr2()); + excels.add(excel); + } // 杩欓噷娉ㄦ剰 鏈夊悓瀛﹀弽搴斾娇鐢╯wagger 浼氬鑷村悇绉嶉棶棰橈紝璇风洿鎺ョ敤娴忚鍣ㄦ垨鑰呯敤postman response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴 String fileName = URLEncoder.encode("娴嬭瘯", "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); - EasyExcel.write(response.getOutputStream(), MatCodeExcel.class).sheet("妯℃澘").doWrite(ExcelUtils.data()); + EasyExcel.write(response.getOutputStream(), MatCodeExcel.class).sheet("妯℃澘").doWrite(excels); } } diff --git a/src/main/webapp/static/js/matCode/matCode.js b/src/main/webapp/static/js/matCode/matCode.js index 2e6971b..a5b5337 100644 --- a/src/main/webapp/static/js/matCode/matCode.js +++ b/src/main/webapp/static/js/matCode/matCode.js @@ -171,42 +171,19 @@ break; // 瀵煎嚭 case 'exportData': - layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true,}, function(){ - var titles=[]; - var fields=[]; - obj.config.cols[0].map(function (col) { - if (col.type === 'normal' && col.hide === false && col.toolbar == null) { - titles.push(col.title); - fields.push(col.field); - } - }); - var exportData = {}; - $.each($('#search-box [name]').serializeArray(), function() { - exportData[this.name] = this.value; - }); - var param = { - 'matCode': exportData, - 'fields': fields - }; - $.ajax({ - url: baseUrl+"/matCode/export/auth", - headers: {'token': localStorage.getItem('token')}, - data: JSON.stringify(param), - // dataType:'json', - contentType:'application/json;charset=UTF-8', - method: 'POST', - success: function (res) { - // layer.closeAll(); - // if (res.code === 200) { - // table.exportFile(titles,res.data,'xls'); - // } else if (res.code === 403) { - // top.location.href = baseUrl; - // } else { - // layer.msg(res.msg) - // } - } - }); - }); + layer.open({ + type: 1, + title: '鏁版嵁瀵煎嚭', + shadeClose: true, + content: $('#exportDataDiv'), + success: function(layero, index){ + + }, + end: function () { + $("#exportFileName").val(""); + $("#exportRowCount").val(""); + } + }) break; // 瀵煎叆 case 'intoData': @@ -228,6 +205,15 @@ } }); + // 瀵煎嚭excel + form.on('submit(exportDo)', function(data) { + layer.closeAll(); + layer.load(1, {shade: [0.1,'#fff']}); + location.href = baseUrl + "/matCode/export/auth?fileName="+$("#exportFileName").val()+"&rowCount="+$("#exportRowCount").val(); + layer.closeAll('loading'); + return false; + }); + // 瀵煎叆excel var uploader = upload.render({ elem: '#uploadEx' diff --git a/src/main/webapp/views/matCode/matCode.html b/src/main/webapp/views/matCode/matCode.html index 7fbc3da..9985e27 100644 --- a/src/main/webapp/views/matCode/matCode.html +++ b/src/main/webapp/views/matCode/matCode.html @@ -52,6 +52,28 @@ <iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe> +<!-- 瀵煎嚭鎿嶄綔寮圭獥 --> +<div id="exportDataDiv" style="display: none;padding: 20px"> + <div class="layui-form"> + <div class="layui-form-item"> + <label class="layui-form-label" style="padding: 9px 0">璁剧疆鏂囦欢鍚�</label> + <div class="layui-input-block" style="margin-left: 90px;"> + <input type="text" id="exportFileName" placeholder="閫夊~" autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label" style="padding: 9px 0">瀵煎嚭琛屾暟</label> + <div class="layui-input-block" style="margin-left: 90px;"> + <input type="text" id="exportRowCount" placeholder="閫夊~" autocomplete="off" class="layui-input" lay-verify="number" lay-reqtext="璇疯緭鍏ユ暟瀛�"> + </div> + </div> + <div style="text-align: center; margin-top: 20px"> + <button class="layui-btn layui-btn-radius layui-btn-normal" id="exportDo" lay-submit lay-filter="exportDo">寮�濮嬪鍑�</button> + </div> + </div> +</div> + + <!-- 瀵煎叆鎿嶄綔寮圭獥 --> <div id="importDataDiv" style="display: none;padding: 20px 40px"> <div class="layui-upload-drag" id="uploadEx" style="width: 200px; font-size: x-small; padding: 10px; text-align: center; box-sizing: border-box"> -- Gitblit v1.9.1