From 64d6948806c3dd7d657c359354212fa3eadfaa8e Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期五, 21 十一月 2025 20:01:07 +0800
Subject: [PATCH] #盘点
---
src/main/java/com/zy/asrs/entity/CheckOrderDetl.java | 6 +-
src/main/webapp/views/checkOrder/checkOrder.html | 3 +
src/main/java/com/zy/asrs/controller/CheckOrderController.java | 47 ++++++++++++---
src/main/webapp/static/js/checkOrder/checkOrder.js | 50 ++++++++++++++++
src/main/java/com/zy/asrs/entity/result/CheckOrderExportDTO.java | 47 +++++++++++++++
5 files changed, 141 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/CheckOrderController.java b/src/main/java/com/zy/asrs/controller/CheckOrderController.java
index 8194bf9..0212f1d 100644
--- a/src/main/java/com/zy/asrs/controller/CheckOrderController.java
+++ b/src/main/java/com/zy/asrs/controller/CheckOrderController.java
@@ -1,5 +1,7 @@
package com.zy.asrs.controller;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
@@ -10,8 +12,10 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.CheckTaskListParam;
import com.zy.asrs.entity.param.OrderDomainParam;
+import com.zy.asrs.entity.result.CheckOrderExportDTO;
import com.zy.asrs.service.*;
import com.core.annotations.ManagerAuth;
+import com.zy.common.entity.NodeExcel;
import com.zy.common.model.DetlDto;
import com.zy.common.model.LocDto;
import com.zy.common.web.BaseController;
@@ -19,6 +23,8 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
import java.math.BigDecimal;
import java.util.*;
@@ -247,15 +253,38 @@
// return R.ok();
// }
- @RequestMapping(value = "/checkOrder/export/auth")
- @ManagerAuth
- public R export(@RequestBody JSONObject param){
- EntityWrapper<CheckOrder> wrapper = new EntityWrapper<>();
- List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
- Map<String, Object> map = excludeTrash(param.getJSONObject("checkOrder"));
- convert(map, wrapper);
- List<CheckOrder> list = checkOrderService.selectList(wrapper);
- return R.ok(exportSupport(list, fields));
+
+
+ @PostMapping(value = "/checkOrder/export/auth")
+ @ManagerAuth(memo = "鐩樼偣鍗曞鍑�")
+ public void export(@RequestParam("orderId") Long orderId, HttpServletResponse response) throws IOException {
+ CheckOrder checkOrder = checkOrderService.selectById(orderId);
+ if (Cools.isEmpty(checkOrder)) {
+ throw new CoolException("鏁版嵁閿欒");
+ }
+ List<CheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<CheckOrderDetl>().eq("order_id", orderId));
+
+ ArrayList<CheckOrderExportDTO> checkOrderExportDTOS = new ArrayList<>();
+ for (CheckOrderDetl checkOrderDetl : checkOrderDetls) {
+ CheckOrderExportDTO checkOrderExportDTO = new CheckOrderExportDTO();
+ checkOrderExportDTO.sync(checkOrderDetl);
+ checkOrderExportDTOS.add(checkOrderExportDTO);
+ }
+
+ String fileName = "鐩樼偣宸紓鍗昣"+checkOrder.getOrderNo() + ".xlsx";
+
+ // 璁剧疆鍝嶅簲澶达紝鎸囧畾鏂囦欢鍚�
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ response.setCharacterEncoding("utf-8");
+ // 闃叉涓枃涔辩爜
+ fileName = java.net.URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
+ response.setHeader("Content-Disposition", "attachment;filename*=" + fileName);
+
+ EasyExcel.write(response.getOutputStream(), CheckOrderExportDTO.class)
+ .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+ .sheet("sheet1")
+ .doWrite(checkOrderExportDTOS);
+
}
@RequestMapping(value = "/checkOrderQuery/auth")
diff --git a/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java b/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java
index d86d360..c2f3e39 100644
--- a/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java
+++ b/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java
@@ -489,15 +489,15 @@
// null // [闈炵┖]
// );
- public Double getDiffQty() {
+ public BigDecimal getDiffQty() {
if (null == this.status || this.status == 1 || this.status == 0 ) {
- return 0D;
+ return BigDecimal.ZERO;
}
if (null != this.anfme && this.workQty != null) {
BigDecimal subtract = new BigDecimal(this.workQty.toString()).subtract(new BigDecimal(this.anfme.toString()));
- return subtract.doubleValue();
+ return subtract;
}
// if (null != this.anfme && this.qty != null) {
// return this.anfme - this.qty;
diff --git a/src/main/java/com/zy/asrs/entity/result/CheckOrderExportDTO.java b/src/main/java/com/zy/asrs/entity/result/CheckOrderExportDTO.java
new file mode 100644
index 0000000..00b46f2
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/result/CheckOrderExportDTO.java
@@ -0,0 +1,47 @@
+package com.zy.asrs.entity.result;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.zy.common.utils.Synchro;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+
+@Data
+@EqualsAndHashCode
+@HeadRowHeight(20)
+public class CheckOrderExportDTO {
+ @ExcelProperty({"鐩樼偣宸紓鍗�", "璁㈠崟鍙�"})
+ private String orderNo;
+
+ @ExcelProperty({"鐩樼偣宸紓鍗�", "搴撲綅鍙�"})
+ private String locNo;
+
+ @ExcelProperty({"鐩樼偣宸紓鍗�", "鐗╂枡浠g爜"})
+ private String matnr;
+
+ @ExcelProperty({"鐩樼偣宸紓鍗�", "鐗╂枡鍚嶇О"})
+ private String maktx;
+
+ @ExcelProperty({"鐩樼偣宸紓鍗�", "鐗╂枡瑙勬牸"})
+ private String specs;
+
+ @ExcelProperty({"鐩樼偣宸紓鍗�", "鎵规"})
+ private String batch;
+
+ @ExcelProperty({"鐩樼偣宸紓鍗�", "搴撳瓨鏁伴噺"})
+ private BigDecimal anfme;
+
+ @ExcelProperty({"鐩樼偣宸紓鍗�", "鐩樼偣鏁伴噺"})
+ private BigDecimal workQty;
+
+ @ExcelProperty({"鐩樼偣宸紓鍗�", "宸紓鏁伴噺"})
+ private BigDecimal diffQty;
+
+
+ public void sync(Object source) {
+ Synchro.Copy(source, this);
+ }
+
+}
diff --git a/src/main/webapp/static/js/checkOrder/checkOrder.js b/src/main/webapp/static/js/checkOrder/checkOrder.js
index 0f19c71..33dfa2d 100644
--- a/src/main/webapp/static/js/checkOrder/checkOrder.js
+++ b/src/main/webapp/static/js/checkOrder/checkOrder.js
@@ -96,6 +96,8 @@
showEditModel(data);
}else if (layEvent === 'createTask') {
pakoutPreview(data.id);
+ }else if (layEvent === 'export') {
+ export1(data.id);
}else if (layEvent === 'del') {
doDel(data.id);
} else if (layEvent === 'complete') {
@@ -601,6 +603,54 @@
})
}
+ function export1(id) {
+ notice.msg('姝e湪瀵煎嚭鏂囦欢......', {icon: 4});
+ $.ajax({
+ url: baseUrl + "/checkOrder/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ orderId: id
+ },
+ method: 'POST',
+ xhrFields: {
+ responseType: 'blob'
+ },
+ success: function (data, status, xhr) {
+ notice.destroy();
+ // 浠庡搷搴斿ご鑾峰彇鏂囦欢鍚�
+ var disposition = xhr.getResponseHeader('Content-Disposition');
+ var filename = '鐩樼偣宸紓鍗�.xlsx';
+ if (disposition && disposition.indexOf('filename') !== -1) {
+ var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
+ var matches = filenameRegex.exec(disposition);
+ if (matches != null && matches[1]) {
+ filename = decodeURIComponent(matches[1].replace(/['"]/g, ''));
+ }
+ }
+
+ // 鍒涘缓涓嬭浇閾炬帴
+ var blob = new Blob([data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});
+ var link = document.createElement('a');
+ link.href = window.URL.createObjectURL(blob);
+ link.download = filename;
+ document.body.appendChild(link);
+ link.click();
+ document.body.removeChild(link);
+ window.URL.revokeObjectURL(link.href);
+
+ layer.msg('瀵煎嚭鎴愬姛', {icon: 1});
+ },
+ error: function (xhr, status, error) {
+ notice.destroy();
+ if (xhr.status === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg('瀵煎嚭澶辫触锛�' + error, {icon: 2});
+ }
+ }
+ });
+ }
+
function pakout(tableCache, layerIndex) {
// let loadIndex = layer.load(2);
notice.msg('姝e湪鐢熸垚鐩樼偣鍑哄簱浠诲姟......', {icon: 4});
diff --git a/src/main/webapp/views/checkOrder/checkOrder.html b/src/main/webapp/views/checkOrder/checkOrder.html
index 354848a..d0c64a3 100644
--- a/src/main/webapp/views/checkOrder/checkOrder.html
+++ b/src/main/webapp/views/checkOrder/checkOrder.html
@@ -108,6 +108,9 @@
{{# if (d.settle == 2 || d.settle == 11) { }}
<a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="complete">瀹岀粨</a>
{{# } }}
+ {{# if (d.settle == 4) { }}
+ <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="export">瀵煎嚭宸紓鍗�</a>
+ {{# } }}
</script>
<!-- 琛ㄦ牸鎿嶄綔鍒� -->
<script type="text/html" id="tbLook">
--
Gitblit v1.9.1