From 5ca5e7de230f92e468cda70000b5aaa1ccb06b8e Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期一, 23 三月 2026 14:03:39 +0800
Subject: [PATCH] 优化平库明细导出逻辑
---
src/main/webapp/views/manLocDetl/PLocDetl.html | 2
src/main/java/com/zy/asrs/controller/ManLocDetlController.java | 45 +++-----
src/main/webapp/static/js/manLocDetl/PLocDetl.js | 105 +++++++++++---------
src/main/webapp/static/js/manLocDetl/manLocDetl.js | 105 +++++++++++---------
4 files changed, 138 insertions(+), 119 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/ManLocDetlController.java b/src/main/java/com/zy/asrs/controller/ManLocDetlController.java
index 612634e..6e254a7 100644
--- a/src/main/java/com/zy/asrs/controller/ManLocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/ManLocDetlController.java
@@ -15,7 +15,6 @@
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.service.ManLocDetlService;
import com.zy.asrs.service.MatService;
-import com.zy.common.utils.RoleUtils;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
@@ -26,6 +25,8 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -53,26 +54,14 @@
@RequestMapping(value = "/manLocDetl/export/auth")
@ManagerAuth(memo = "搴撲綅鏄庣粏瀵煎嚭")
public R export(@RequestBody JSONObject param){
- List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
- EntityWrapper<ManLocDetl> wrapper = new EntityWrapper<>();
- Map<String, Object> map = excludeTrash(param.getJSONObject("locDetl"));
- String row = "";
- if (map.get("row") != null) {
- String chooseRow = (String) map.get("row");
- if (chooseRow.length() == 1) {
- row = "0" + chooseRow;
- map.remove("row");
- }else {
- row = chooseRow;
- map.remove("row");
- }
- }
- convert(map, wrapper);
- if (!row.equals("")){
- wrapper.and()
- .where("loc_no like '" +row +"%'");
- }
- List<ManLocDetl> list = manLocDetlService.selectList(wrapper);
+ List<String> fields = param.getJSONArray("fields") == null
+ ? Collections.emptyList()
+ : JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ Map<String, Object> searchParam = param.getJSONObject("locDetl") == null
+ ? new HashMap<>()
+ : excludeTrash(param.getJSONObject("locDetl"));
+ String condition = searchParam.get("condition") == null ? null : String.valueOf(searchParam.remove("condition"));
+ List<ManLocDetl> list = manLocDetlService.selectList(buildWrapper(searchParam, condition));
return R.ok(exportSupport(list, fields));
}
@@ -130,11 +119,7 @@
@RequestParam(required = false)String orderByType,
@RequestParam(required = false)String condition,
@RequestParam Map<String, Object> param){
-
- EntityWrapper<ManLocDetl> wrapper = new EntityWrapper<>();
- excludeTrash(param);
- convert(param, wrapper);
- allLike(ManLocDetl.class, param.keySet(), wrapper, condition);
+ EntityWrapper<ManLocDetl> wrapper = buildWrapper(param, condition);
if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
return R.ok(manLocDetlService.selectPage(new Page<>(curr, limit), wrapper));
@@ -191,5 +176,13 @@
}
}
+ private EntityWrapper<ManLocDetl> buildWrapper(Map<String, Object> param, String condition) {
+ EntityWrapper<ManLocDetl> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ allLike(ManLocDetl.class, param.keySet(), wrapper, condition);
+ return wrapper;
+ }
+
}
diff --git a/src/main/webapp/static/js/manLocDetl/PLocDetl.js b/src/main/webapp/static/js/manLocDetl/PLocDetl.js
index 8682c53..86685d4 100644
--- a/src/main/webapp/static/js/manLocDetl/PLocDetl.js
+++ b/src/main/webapp/static/js/manLocDetl/PLocDetl.js
@@ -80,10 +80,7 @@
// 鐩戝惉鎺掑簭浜嬩欢
table.on('sort(locDetl)', function (obj) {
- var searchData = {};
- $.each($('#search-box [name]').serializeArray(), function() {
- searchData[this.name] = this.value;
- });
+ var searchData = getSearchData();
searchData['orderByField'] = obj.field;
searchData['orderByType'] = obj.type;
tableIns.reload({
@@ -155,43 +152,9 @@
}
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 = {
- 'locDetl': exportData,
- 'fields': fields
- };
- var loadIndex = layer.msg('姝e湪瀵煎嚭...', {icon: 16, shade: 0.01, time: false});
- $.ajax({
- url: baseUrl+"/locDetl/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.close(loadIndex);
- 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.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(confirmIndex){
+ layer.close(confirmIndex);
+ exportTableData(obj.config.cols[0], baseUrl+"/manLocDetl/export/auth", table, layer);
});
break;
}
@@ -456,11 +419,7 @@
});
function tableReload(child) {
- var searchData = {
- };
- $.each($('#search-box [name]').serializeArray(), function() {
- searchData[this.name] = this.value;
- });
+ var searchData = getSearchData();
(child ? parent.tableIns : tableIns).reload({
where: searchData,
page: {
@@ -538,3 +497,57 @@
$("#search").click();
}
});
+
+function getSearchData() {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ return searchData;
+}
+
+function getExportColumns(cols) {
+ var titles = [];
+ var fields = [];
+ cols.map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ return {
+ titles: titles,
+ fields: fields
+ };
+}
+
+function exportTableData(cols, exportUrl, table, layer) {
+ var exportColumns = getExportColumns(cols);
+ var loadIndex = layer.msg('姝e湪瀵煎嚭...', {icon: 16, shade: 0.01, time: false});
+ $.ajax({
+ url: exportUrl,
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify({
+ 'locDetl': getSearchData(),
+ 'fields': exportColumns.fields
+ }),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200) {
+ table.exportFile(exportColumns.titles, res.data, 'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg);
+ }
+ },
+ error: function () {
+ layer.msg('瀵煎嚭澶辫触锛岃绋嶅悗閲嶈瘯');
+ },
+ complete: function () {
+ layer.close(loadIndex);
+ }
+ });
+}
diff --git a/src/main/webapp/static/js/manLocDetl/manLocDetl.js b/src/main/webapp/static/js/manLocDetl/manLocDetl.js
index ff281b0..7ed6196 100644
--- a/src/main/webapp/static/js/manLocDetl/manLocDetl.js
+++ b/src/main/webapp/static/js/manLocDetl/manLocDetl.js
@@ -98,10 +98,7 @@
// 鐩戝惉鎺掑簭浜嬩欢
table.on('sort(locDetl)', function (obj) {
- var searchData = {};
- $.each($('#search-box [name]').serializeArray(), function() {
- searchData[this.name] = this.value;
- });
+ var searchData = getSearchData();
searchData['orderByField'] = obj.field;
searchData['orderByType'] = obj.type;
tableIns.reload({
@@ -173,43 +170,9 @@
}
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 = {
- 'locDetl': exportData,
- 'fields': fields
- };
- var loadIndex = layer.msg('姝e湪瀵煎嚭...', {icon: 16, shade: 0.01, time: false});
- $.ajax({
- url: baseUrl+"/locDetl/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.close(loadIndex);
- 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.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(confirmIndex){
+ layer.close(confirmIndex);
+ exportTableData(obj.config.cols[0], baseUrl+"/manLocDetl/export/auth", table, layer);
});
break;
}
@@ -475,11 +438,7 @@
});
function tableReload(child) {
- var searchData = {
- };
- $.each($('#search-box [name]').serializeArray(), function() {
- searchData[this.name] = this.value;
- });
+ var searchData = getSearchData();
(child ? parent.tableIns : tableIns).reload({
where: searchData,
page: {
@@ -557,3 +516,57 @@
$("#search").click();
}
});
+
+function getSearchData() {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ return searchData;
+}
+
+function getExportColumns(cols) {
+ var titles = [];
+ var fields = [];
+ cols.map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ return {
+ titles: titles,
+ fields: fields
+ };
+}
+
+function exportTableData(cols, exportUrl, table, layer) {
+ var exportColumns = getExportColumns(cols);
+ var loadIndex = layer.msg('姝e湪瀵煎嚭...', {icon: 16, shade: 0.01, time: false});
+ $.ajax({
+ url: exportUrl,
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify({
+ 'locDetl': getSearchData(),
+ 'fields': exportColumns.fields
+ }),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200) {
+ table.exportFile(exportColumns.titles, res.data, 'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg);
+ }
+ },
+ error: function () {
+ layer.msg('瀵煎嚭澶辫触锛岃绋嶅悗閲嶈瘯');
+ },
+ complete: function () {
+ layer.close(loadIndex);
+ }
+ });
+}
diff --git a/src/main/webapp/views/manLocDetl/PLocDetl.html b/src/main/webapp/views/manLocDetl/PLocDetl.html
index 991e69c..e61490d 100644
--- a/src/main/webapp/views/manLocDetl/PLocDetl.html
+++ b/src/main/webapp/views/manLocDetl/PLocDetl.html
@@ -56,7 +56,7 @@
</div>
<script type="text/html" id="toolbar">
<div class="layui-btn-container">
- <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="margin-top: 10px">瀵煎嚭</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" lay-event="exportData" style="margin-top: 10px">瀵煎嚭</button>
</div>
</script>
--
Gitblit v1.9.1