From 0079be77d58c5836dfbd6b3603a6580823ec590a Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期日, 12 十一月 2023 16:03:00 +0800
Subject: [PATCH] #
---
src/main/webapp/views/pakStore/stockOut.html | 5 +
src/main/java/com/zy/common/entity/OutLocBoxExcel.java | 22 +++++
src/main/java/com/zy/asrs/entity/result/OutLocBoxVo.java | 24 ++++++
src/main/java/com/zy/asrs/controller/MatController.java | 33 ++++++++
src/main/webapp/static/js/pakStore/stockOut.js | 58 ++++++++++++++
src/main/java/com/zy/asrs/utils/OutLocBoxExcelListener.java | 69 +++++++++++++++++
6 files changed, 210 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MatController.java b/src/main/java/com/zy/asrs/controller/MatController.java
index 53e9135..9c53503 100644
--- a/src/main/java/com/zy/asrs/controller/MatController.java
+++ b/src/main/java/com/zy/asrs/controller/MatController.java
@@ -17,9 +17,11 @@
import com.zy.asrs.entity.result.KeyValueVo;
import com.zy.asrs.service.MatService;
import com.zy.asrs.utils.MatExcelListener;
+import com.zy.asrs.utils.OutLocBoxExcelListener;
import com.zy.common.CodeRes;
import com.zy.common.config.AdminInterceptor;
import com.zy.common.entity.MatExcel;
+import com.zy.common.entity.OutLocBoxExcel;
import com.zy.common.utils.BarcodeUtils;
import com.zy.common.utils.QrCode;
import com.zy.common.web.BaseController;
@@ -331,4 +333,35 @@
}
+ /*************************************** 鏁版嵁鐩稿叧 ***********************************************/
+
+ /**
+ * excel瀵煎叆妯℃澘涓嬭浇
+ */
+ @RequestMapping(value = "/out/loc/box/excel/import/mould")
+ public void outLocBoxExcelImportMould(HttpServletResponse response) throws IOException {
+ List<OutLocBoxExcel> excels = new ArrayList<>();
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("utf-8");
+ String fileName = URLEncoder.encode("瀵煎叆绠卞彿鍑哄簱妯℃澘", "UTF-8");
+ response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+ EasyExcel.write(response.getOutputStream(), OutLocBoxExcel.class)
+ .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+ .sheet("鍑哄簱妯℃澘")
+ .doWrite(excels);
+ }
+
+ // excel瀵煎叆
+ @PostMapping(value = "/out/loc/box/excel/import/auth")
+ @ManagerAuth(memo = "瀵煎叆绠卞彿鍑哄簱")
+ @Transactional
+ public R outLocBoxExcelImport(MultipartFile file) throws IOException {
+ OutLocBoxExcelListener listener = new OutLocBoxExcelListener(getUserId());
+ EasyExcel.read(file.getInputStream(), OutLocBoxExcel.class, listener).sheet().doRead();
+ return R.ok("鎴愬姛鍑哄簱"+listener.getTotal()+"鏉″晢鍝佹暟鎹�");
+ }
+
+ /*************************************** xm-select ***********************************************/
+
+
}
diff --git a/src/main/java/com/zy/asrs/entity/result/OutLocBoxVo.java b/src/main/java/com/zy/asrs/entity/result/OutLocBoxVo.java
new file mode 100644
index 0000000..1ceae65
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/result/OutLocBoxVo.java
@@ -0,0 +1,24 @@
+package com.zy.asrs.entity.result;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotations.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by vincent on 2021/4/13
+ */
+@Data
+public class OutLocBoxVo {
+
+ @ExcelProperty(value = "绠卞彿")
+ private String batch;
+
+ public OutLocBoxVo() {
+ }
+
+ public OutLocBoxVo(String batch) {
+ this.batch = batch;
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/utils/OutLocBoxExcelListener.java b/src/main/java/com/zy/asrs/utils/OutLocBoxExcelListener.java
new file mode 100644
index 0000000..e0a4fd3
--- /dev/null
+++ b/src/main/java/com/zy/asrs/utils/OutLocBoxExcelListener.java
@@ -0,0 +1,69 @@
+package com.zy.asrs.utils;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.core.exception.CoolException;
+import com.zy.common.entity.OutLocBoxExcel;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by vincent on 2019-11-25
+ */
+@Slf4j
+public class OutLocBoxExcelListener extends AnalysisEventListener<OutLocBoxExcel> {
+
+ private int total = 0;
+ private Long userId;
+ List<String> batchs = new ArrayList<>();
+
+ public OutLocBoxExcelListener() {
+ }
+
+ public OutLocBoxExcelListener(Long userId) {
+ this.userId = userId;
+ }
+
+ /**
+ * 姣忛殧5鏉″瓨鍌ㄦ暟鎹簱锛屽疄闄呬娇鐢ㄤ腑鍙互3000鏉★紝鐒跺悗娓呯悊list 锛屾柟渚垮唴瀛樺洖鏀�
+ */
+ private static final int BATCH_COUNT = 50;
+
+ private final List<OutLocBoxExcel> list = new ArrayList<>();
+
+ /**
+ * 杩欓噷浼氫竴琛岃鐨勮繑鍥炲ご
+ */
+ @Override
+ public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
+ }
+
+ /**
+ * 杩欎釜姣忎竴鏉℃暟鎹В鏋愰兘浼氭潵璋冪敤
+ */
+ @Override
+ public void invoke(OutLocBoxExcel excel, AnalysisContext ctx) {
+ String batch = excel.getBatch();
+ batchs.add(batch);
+ total++;
+ }
+
+ /**
+ * 鎵�鏈夋暟鎹В鏋愬畬鎴愪簡璋冪敤
+ * 閫傚悎浜嬪姟
+ */
+ @Override
+ public void doAfterAllAnalysed(AnalysisContext ctx) {
+ log.info("鐢熸垚{}鏉″嚭搴撲换鍔★紒", total);
+ }
+
+ public int getTotal() {
+ return total;
+ }
+}
diff --git a/src/main/java/com/zy/common/entity/OutLocBoxExcel.java b/src/main/java/com/zy/common/entity/OutLocBoxExcel.java
new file mode 100644
index 0000000..0f0e7a3
--- /dev/null
+++ b/src/main/java/com/zy/common/entity/OutLocBoxExcel.java
@@ -0,0 +1,22 @@
+package com.zy.common.entity;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.Mat;
+import com.zy.asrs.entity.result.OutLocBoxVo;
+import lombok.Data;
+
+/**
+ * 0.A 1.B 2.C 3.D 4.E 5.F 6.G 7.H 8.I
+ * 9.J 10.K 11.L 12.M 13.N 14.O 15.P 16.Q 17.R 18.S
+ * 19.T 20.U 21.V 22.W 23.X 24.Y 25.Z
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class OutLocBoxExcel extends OutLocBoxVo {
+
+ private String batch;
+
+}
diff --git a/src/main/webapp/static/js/pakStore/stockOut.js b/src/main/webapp/static/js/pakStore/stockOut.js
index a514dc8..96f5e97 100644
--- a/src/main/webapp/static/js/pakStore/stockOut.js
+++ b/src/main/webapp/static/js/pakStore/stockOut.js
@@ -1,5 +1,6 @@
var locDetlLayerIdx;
var locDetlData = [];
+var admin;
function getCol() {
var cols = [
// {field: 'count', align: 'center',title: '鍑哄簱鏁伴噺', edit:'text', width: 130, style:'color: blue;font-weight: bold'},
@@ -19,7 +20,7 @@
var $ = layui.jquery;
var layer = layui.layer;
var form = layui.form;
- var admin = layui.admin;
+ admin = layui.admin;
tableIns = table.render({
elem: '#chooseData',
@@ -175,3 +176,58 @@
tableIns.reload({data: locDetlData});
layer.close(locDetlLayerIdx);
}
+
+
+// excel瀵煎叆妯℃澘涓嬭浇
+function excelMouldDownload(){
+ layer.load(1, {shade: [0.1,'#fff']});
+ location.href = baseUrl + "/out/loc/box/excel/import/mould";
+ layer.closeAll('loading');
+}
+
+// excel瀵煎叆
+function importExcel() {
+ $("#importExcel").trigger("click");
+}
+function upload(obj){
+ if(!obj.files) {
+ return;
+ }
+ var file = obj.files[0];
+ admin.confirm('纭鍚屾 [' + file.name +'] 鏂囦欢鍚楋紵', function (index) {
+ layer.load(1, {shade: [0.1,'#fff']});
+ var url = baseUrl + "/out/loc/box/excel/import/auth";
+ var form = new FormData();
+ form.append("file", file);
+ xhr = new XMLHttpRequest();
+ xhr.open("post", url, true); //post鏂瑰紡锛寀rl涓烘湇鍔″櫒璇锋眰鍦板潃锛宼rue 璇ュ弬鏁拌瀹氳姹傛槸鍚﹀紓姝ュ鐞嗐��
+ xhr.setRequestHeader('token', localStorage.getItem('token'));
+ xhr.onload = uploadComplete; //璇锋眰瀹屾垚
+ xhr.onerror = uploadFailed; //璇锋眰澶辫触
+ xhr.onloadend = function () { // // 涓婁紶瀹屾垚閲嶇疆鏂囦欢娴�
+ layer.closeAll('loading');
+ $("#importExcel").val("");
+ };
+ // xhr.upload.onprogress = progressFunction;//銆愪笂浼犺繘搴﹁皟鐢ㄦ柟娉曞疄鐜般��
+ xhr.upload.onloadstart = function(){//涓婁紶寮�濮嬫墽琛屾柟娉�
+ ot = new Date().getTime(); //璁剧疆涓婁紶寮�濮嬫椂闂�
+ oloaded = 0;//璁剧疆涓婁紶寮�濮嬫椂锛屼互涓婁紶鐨勬枃浠跺ぇ灏忎负0
+ };
+ xhr.send(form);
+ }, function(index){
+ $("#importExcel").val("");
+ });
+}
+function uploadComplete(evt) {
+ var res = JSON.parse(evt.target.responseText);
+ if(res.code === 200) {
+ layer.msg(res.msg, {icon: 1});
+ loadTree("");
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+}
+function uploadFailed(evt) {
+ var res = JSON.parse(evt.target.responseText);
+ layer.msg(res.msg, {icon: 2});
+}
\ No newline at end of file
diff --git a/src/main/webapp/views/pakStore/stockOut.html b/src/main/webapp/views/pakStore/stockOut.html
index 3e02f19..c20d9e8 100644
--- a/src/main/webapp/views/pakStore/stockOut.html
+++ b/src/main/webapp/views/pakStore/stockOut.html
@@ -84,6 +84,7 @@
<!-- 鍔熻兘鍖� -->
<div class="function-area">
<button id="mat-query" class="function-btn">鎻愬彇搴撳瓨</button>
+ <button class="function-btn" style="width: auto;float:right;" onclick="excelMouldDownload()">瀵煎叆绠卞彿鍑哄簱妯℃澘涓嬭浇</button>
</div>
<hr>
@@ -102,6 +103,9 @@
</select>
<!-- 2.鍚姩鍑哄簱 -->
<button class="layui-btn layui-btn-lg" id="btn-outbound" lay-event="outbound">鍚姩鍑哄簱</button>
+ <!-- 3.瀵煎叆绠卞彿鍑哄簱 -->
+ <button class="layui-btn layui-btn-lg" onclick="importExcel()" style="font-size: 12px;width: auto;">瀵煎叆绠卞彿鍑哄簱</button>
+ <span style="display: none"><input id="importExcel" type="file" onchange="upload(this)">鍚姩鍑哄簱</span>
</div>
</div>
</script>
@@ -116,6 +120,7 @@
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/jquery/jQuery.print.js"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
--
Gitblit v1.9.1