From 5232d8b5939cb832c3d17c2aa1d6eaf66e5acb74 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期四, 25 十二月 2025 14:11:05 +0800
Subject: [PATCH] 出入库历史 +月结管理 按钮权限+sql
---
src/main/webapp/static/css/common.css | 3
src/main/java/com/zy/asrs/controller/MonthlySettleController.java | 33 ++++++++
src/main/webapp/static/js/monthlySettle/monthlySettle.js | 48 +++++++++++
src/main/webapp/views/orderPakinLog/order.html | 24 +++++
src/main/java/com/zy/asrs/service/impl/MonthlySettleServiceImpl.java | 2
src/main/resources/sql/按钮权限.sql | 24 ++++++
src/main/webapp/views/monthlySettle/monthlySettle.html | 34 +++++++-
src/main/webapp/views/orderPakoutLog/order.html | 24 +++++
8 files changed, 181 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MonthlySettleController.java b/src/main/java/com/zy/asrs/controller/MonthlySettleController.java
index a3c847a..f6a9234 100644
--- a/src/main/java/com/zy/asrs/controller/MonthlySettleController.java
+++ b/src/main/java/com/zy/asrs/controller/MonthlySettleController.java
@@ -4,15 +4,19 @@
import com.core.annotations.ManagerAuth;
import com.core.common.R;
import com.zy.asrs.entity.MonthlySettle;
+import com.zy.asrs.entity.MonthlySettleDetail;
import com.zy.asrs.entity.param.DateRangeParam;
import com.zy.asrs.entity.param.MonthlySettleQueryParam;
+import com.zy.asrs.entity.result.MonthlySettleStatisticsVO;
import com.zy.asrs.service.MonthlySettleService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.List;
@RestController
public class MonthlySettleController extends BaseController {
@@ -131,5 +135,34 @@
return R.ok("鍒犻櫎鎴愬姛");
}
+ /**
+ * 瀵煎嚭鏈堢粨鏄庣粏
+ */
+ @RequestMapping(value = "/monthlySettle/detail/export/{id}/auth")
+ @ManagerAuth(memo = "瀵煎嚭鏈堢粨鏄庣粏")
+ public R exportDetail(@PathVariable("id") Long id) {
+ // 鑾峰彇鏈堢粨缁熻淇℃伅
+ MonthlySettleStatisticsVO statistics = monthlySettleService.getSettleStatistics(id);
+ if (statistics == null || statistics.getDetails() == null) {
+ return R.error("鏈堢粨鏄庣粏涓嶅瓨鍦�");
+ }
+
+ List<MonthlySettleDetail> details = statistics.getDetails();
+
+ // 瀹氫箟瀵煎嚭瀛楁
+ List<String> fields = new ArrayList<>();
+ fields.add("matnr");
+ fields.add("maktx");
+ fields.add("batch");
+ fields.add("brand");
+ fields.add("beginningQty");
+ fields.add("endingQty");
+ fields.add("diffQty");
+ fields.add("inQty");
+ fields.add("outQty");
+
+ return R.ok(exportSupport(details, fields));
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MonthlySettleServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MonthlySettleServiceImpl.java
index fcd629b..f615603 100644
--- a/src/main/java/com/zy/asrs/service/impl/MonthlySettleServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MonthlySettleServiceImpl.java
@@ -498,8 +498,6 @@
detail.setInQty(inQty);
detail.setOutQty(outQty);
detail.setEndingQty(endingQty);
- // stock_qty 瀛楁宸插簾寮冿紝瀹為檯搴撳瓨绛変簬鏈熸湯搴撳瓨锛屼笉鍐嶅崟鐙瓨鍌�
- // detail.setStockQty(endingQty);
detail.setDiffQty(diffQty);
// 鏃堕棿淇℃伅
detail.setCreateTime(new Date());
diff --git "a/src/main/resources/sql/\346\214\211\351\222\256\346\235\203\351\231\220.sql" "b/src/main/resources/sql/\346\214\211\351\222\256\346\235\203\351\231\220.sql"
new file mode 100644
index 0000000..6695205
--- /dev/null
+++ "b/src/main/resources/sql/\346\214\211\351\222\256\346\235\203\351\231\220.sql"
@@ -0,0 +1,24 @@
+-- 鏈堢粨
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'monthlySettle/monthlySettle.html', N'鏈堢粨绠$悊', null, '2', null, '1');
+
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'monthlySettle#btn-view', N'鏌ヨ', '' , '3', '0', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'monthlySettle#btn-add', N'鍙戣捣鏈堢粨', '' , '3', '1', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'monthlySettle#btn-export', N'瀵煎嚭', '' , '3', '2', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'monthlySettle#btn-delete', N'鍒犻櫎', '' , '3', '3', '1');
+
+-- 鍏ュ簱鍘嗗彶璁㈠崟
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderPakinLog/order.html', N'鍏ュ簱鍘嗗彶鍗曟嵁', null, '2', null, '1');
+
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderPakinLog#btn-view', N'鏌ヨ', '' , '3', '0', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderPakinLog#btn-edit', N'淇敼涓氬姟鏃堕棿', '' , '3', '1', '1');
+
+-- 鍑哄簱鍘嗗彶璁㈠崟
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderPakoutLog/order.html', N'鍑哄簱鍘嗗彶鍗曟嵁', null, '2', null, '1');
+
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderPakoutLog#btn-view', N'鏌ヨ', '' , '3', '0', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderPakoutLog#btn-edit', N'淇敼涓氬姟鏃堕棿', '' , '3', '1', '1');
+
+
+
+
+
diff --git a/src/main/webapp/static/css/common.css b/src/main/webapp/static/css/common.css
index 5562fb9..861ace9 100644
--- a/src/main/webapp/static/css/common.css
+++ b/src/main/webapp/static/css/common.css
@@ -206,6 +206,9 @@
#btn-into {
display: none;
}
+.btn-view {
+ display: none;
+}
/*淇敼澶嶉�夋棰滆壊*/
/*.layui-form-checked[lay-skin=primary] i {*/
diff --git a/src/main/webapp/static/js/monthlySettle/monthlySettle.js b/src/main/webapp/static/js/monthlySettle/monthlySettle.js
index 58bce67..f8600d9 100644
--- a/src/main/webapp/static/js/monthlySettle/monthlySettle.js
+++ b/src/main/webapp/static/js/monthlySettle/monthlySettle.js
@@ -29,7 +29,7 @@
{field: 'totalOutQty', align: 'center', title: '鎬诲嚭搴撴暟閲�', width: 120},
{field: 'totalMaterials', align: 'center', title: '鐗╂枡绉嶇被鏁�', width: 120},
{field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 180, width: 180},
- {align: 'center', title: '鎿嶄綔', toolbar: '#operate', width: 180}
+ {align: 'center', title: '鎿嶄綔', toolbar: '#operate', width: 240}
]],
request: {
pageName: 'curr',
@@ -368,6 +368,8 @@
var layEvent = obj.event;
if (layEvent === 'detail') {
showDetailDialog(data);
+ } else if (layEvent === 'export') {
+ exportDetail(data);
} else if (layEvent === 'delete') {
deleteSettle(data);
}
@@ -478,6 +480,50 @@
});
}
+ // 瀵煎嚭鏈堢粨鏄庣粏
+ function exportDetail(data) {
+ layer.confirm('纭畾瀵煎嚭鏈堢粨鏄庣粏 "' + data.settleNo + '" 鍚楋紵', {
+ shade: .1,
+ skin: 'layui-layer-admin'
+ }, function (i) {
+ layer.close(i);
+ layer.load(2);
+ $.ajax({
+ url: baseUrl + '/monthlySettle/detail/export/' + data.id + '/auth',
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll('loading');
+ if (res.code === 200) {
+ // 瀹氫箟琛ㄥご
+ var titles = [
+ '鐗╂枡缂栫爜',
+ '鐗╂枡鍚嶇О',
+ '鎵规',
+ '鍝佺墝',
+ '鏈熷垵搴撳瓨',
+ '鏈熸湯搴撳瓨',
+ '宸紓鏁伴噺',
+ '鏈湡鍏ュ簱',
+ '鏈湡鍑哄簱'
+ ];
+ // 浣跨敤 table.exportFile 瀵煎嚭
+ table.exportFile(titles, res.data, 'xls');
+ layer.msg('瀵煎嚭鎴愬姛', {icon: 1});
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg || '瀵煎嚭澶辫触', {icon: 2});
+ }
+ },
+ error: function() {
+ layer.closeAll('loading');
+ layer.msg('瀵煎嚭澶辫触', {icon: 2});
+ }
+ });
+ });
+ }
+
// 鍒犻櫎鏈堢粨璁板綍
function deleteSettle(data) {
layer.confirm('纭瑕佸垹闄ゆ湀缁撹褰� "' + data.settleNo + '" 鍚楋紵鍒犻櫎鍚庡皢娓呴櫎鍏宠仈鐨勫嚭鍏ュ簱璁㈠崟鏈堢粨淇℃伅锛屽彲浠ラ噸鏂拌繘琛屾湀缁撱��', {
diff --git a/src/main/webapp/views/monthlySettle/monthlySettle.html b/src/main/webapp/views/monthlySettle/monthlySettle.html
index 245e32c..686eb52 100644
--- a/src/main/webapp/views/monthlySettle/monthlySettle.html
+++ b/src/main/webapp/views/monthlySettle/monthlySettle.html
@@ -9,6 +9,31 @@
<link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
<link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
<link rel="stylesheet" href="../../static/css/cool.css" media="all">
+ <style>
+ .btn-add {
+ display: none;
+ }
+
+ .btn-edit {
+ display: none;
+ }
+
+ .btn-complete {
+ display: none;
+ }
+
+ .btn-delete {
+ display: none;
+ }
+
+ .btn-export {
+ display: none;
+ }
+
+ .btn-view {
+ display: none;
+ }
+ </style>
</head>
<body>
@@ -28,10 +53,10 @@
</div>
</div>
<div class="layui-inline">
- <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <button class="layui-btn icon-btn btn-view" lay-filter="search" lay-submit>
<i class="layui-icon"></i>鎼滅储
</button>
- <button id="startSettleBtn" class="layui-btn icon-btn layui-btn-normal">
+ <button id="startSettleBtn" class="layui-btn icon-btn layui-btn-normal btn-add">
<i class="layui-icon"></i>鍙戣捣鏈堢粨
</button>
<button type="button" class="layui-btn icon-btn layui-btn-primary" lay-filter="reset" lay-submit>
@@ -47,8 +72,9 @@
<!-- 琛ㄦ牸鎿嶄綔鍒� -->
<script type="text/html" id="operate">
- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">鏌ョ湅鏄庣粏</a>
- <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delete">鍒犻櫎</a>
+ <a class="layui-btn layui-btn-normal layui-btn-xs btn-export" lay-event="export">瀵煎嚭</a>
+ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">鏄庣粏</a>
+ <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="delete">鍒犻櫎</a>
</script>
<!-- 鍙戣捣鏈堢粨寮圭獥 -->
diff --git a/src/main/webapp/views/orderPakinLog/order.html b/src/main/webapp/views/orderPakinLog/order.html
index 96b51a1..e99606c 100644
--- a/src/main/webapp/views/orderPakinLog/order.html
+++ b/src/main/webapp/views/orderPakinLog/order.html
@@ -25,6 +25,26 @@
.layui-timeline:first-child .layui-timeline-item {
margin-top: 30px;
}
+
+ .btn-add {
+ display: none;
+ }
+
+ .btn-edit {
+ display: none;
+ }
+
+ .btn-complete {
+ display: none;
+ }
+
+ .btn-delete {
+ display: none;
+ }
+
+ .btn-view {
+ display: none;
+ }
</style>
</head>
@@ -66,7 +86,7 @@
</div>
</div>
<div class="layui-inline">
- <button class="layui-btn icon-btn" lay-filter="tbSearch" lay-submit>
+ <button class="layui-btn icon-btn btn-view" lay-filter="tbSearch" lay-submit>
<i class="layui-icon"></i>鎼滅储
</button>
</div>
@@ -92,7 +112,7 @@
<!-- 鎿嶄綔鍒� -->
<script type="text/html" id="operate">
{{# if(!d.monthlySettleId || d.monthlySettleId == 0){ }}
- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="editOrderTime">淇敼涓氬姟鏃堕棿</a>
+ <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="editOrderTime">淇敼涓氬姟鏃堕棿</a>
{{# } }}
</script>
<script type="text/html" id="orderNoTpl">
diff --git a/src/main/webapp/views/orderPakoutLog/order.html b/src/main/webapp/views/orderPakoutLog/order.html
index 9df2682..743e811 100644
--- a/src/main/webapp/views/orderPakoutLog/order.html
+++ b/src/main/webapp/views/orderPakoutLog/order.html
@@ -25,6 +25,26 @@
.layui-timeline:first-child .layui-timeline-item {
margin-top: 30px;
}
+
+ .btn-add {
+ display: none;
+ }
+
+ .btn-edit {
+ display: none;
+ }
+
+ .btn-complete {
+ display: none;
+ }
+
+ .btn-delete {
+ display: none;
+ }
+
+ .btn-view {
+ display: none;
+ }
</style>
</head>
@@ -66,7 +86,7 @@
</div>
</div>
<div class="layui-inline">
- <button class="layui-btn icon-btn" lay-filter="tbSearch" lay-submit>
+ <button class="layui-btn icon-btn btn-view" lay-filter="tbSearch" lay-submit>
<i class="layui-icon"></i>鎼滅储
</button>
</div>
@@ -92,7 +112,7 @@
<!-- 鎿嶄綔鍒� -->
<script type="text/html" id="operate">
{{# if(!d.monthlySettleId || d.monthlySettleId == 0){ }}
- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="editOrderTime">淇敼涓氬姟鏃堕棿</a>
+ <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="editOrderTime">淇敼涓氬姟鏃堕棿</a>
{{# } }}
</script>
<script type="text/html" id="orderNoTpl">
--
Gitblit v1.9.1