From 43525a12afaf7368decbed730f0240a6709d8355 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期三, 24 十二月 2025 12:05:58 +0800
Subject: [PATCH] 月结
---
src/main/webapp/static/js/monthlySettle/monthlySettle.js | 4
src/main/java/com/zy/asrs/entity/result/PreviousSettleEndingQtyDTO.java | 5 +
src/main/resources/mapper/MonthlySettleMapper.xml | 85 ++++++++--------
src/main/java/com/zy/asrs/service/impl/MonthlySettleServiceImpl.java | 130 ++++++++++++++++++++++++-
src/main/webapp/views/monthlySettle/monthlySettle.html | 4
src/main/java/com/zy/asrs/mapper/MonthlySettleMapper.java | 11 +
src/main/java/com/zy/asrs/entity/result/MaterialInOutRawDTO.java | 43 ++++++++
7 files changed, 226 insertions(+), 56 deletions(-)
diff --git a/src/main/java/com/zy/asrs/entity/result/MaterialInOutRawDTO.java b/src/main/java/com/zy/asrs/entity/result/MaterialInOutRawDTO.java
new file mode 100644
index 0000000..c11dc68
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/result/MaterialInOutRawDTO.java
@@ -0,0 +1,43 @@
+package com.zy.asrs.entity.result;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 鐗╂枡鍑哄叆搴撳師濮嬫暟鎹紙鏈垎绫伙級
+ */
+@Data
+public class MaterialInOutRawDTO {
+
+ /**
+ * 鐗╂枡缂栫爜
+ */
+ private String matnr;
+
+ /**
+ * 鐗╂枡鍚嶇О
+ */
+ private String maktx;
+
+ /**
+ * 鎵规
+ */
+ private String batch;
+
+ /**
+ * 鍝佺墝
+ */
+ private String brand;
+
+ /**
+ * 鏁伴噺锛堥兘鏄鏁帮級
+ */
+ private BigDecimal qty;
+
+ /**
+ * 鍏ュ嚭搴撶被鍨嬶紙0锛氭湭鐭ワ紝1锛氬叆搴擄紝2锛氬嚭搴擄級
+ */
+ private Integer pakinPakoutStatus;
+}
+
diff --git a/src/main/java/com/zy/asrs/entity/result/PreviousSettleEndingQtyDTO.java b/src/main/java/com/zy/asrs/entity/result/PreviousSettleEndingQtyDTO.java
index 5b9a727..5057f54 100644
--- a/src/main/java/com/zy/asrs/entity/result/PreviousSettleEndingQtyDTO.java
+++ b/src/main/java/com/zy/asrs/entity/result/PreviousSettleEndingQtyDTO.java
@@ -26,6 +26,11 @@
private String brand;
/**
+ * 鐗╂枡鍚嶇О
+ */
+ private String maktx;
+
+ /**
* 鏈熸湯搴撳瓨
*/
private BigDecimal endingQty;
diff --git a/src/main/java/com/zy/asrs/mapper/MonthlySettleMapper.java b/src/main/java/com/zy/asrs/mapper/MonthlySettleMapper.java
index 1710a27..8737987 100644
--- a/src/main/java/com/zy/asrs/mapper/MonthlySettleMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/MonthlySettleMapper.java
@@ -2,7 +2,7 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.MonthlySettle;
-import com.zy.asrs.entity.result.MaterialInOutStatDTO;
+import com.zy.asrs.entity.result.MaterialInOutRawDTO;
import com.zy.asrs.entity.result.PreviousSettleEndingQtyDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -30,9 +30,14 @@
int countUnfinishedOrdersInRange(@Param("startDate") String startDate, @Param("endDate") String endDate);
/**
- * 缁熻鏈堢粨鏃堕棿鑼冨洿鍐呯殑鐗╂枡鍑哄叆搴撴暟閲忥紙鍚堝苟鍏ュ簱鍜屽嚭搴擄級
+ * 缁熻鏈堢粨鏃堕棿鑼冨洿鍐呯殑鐗╂枡鍑哄叆搴撴暟閲忥紙浠庡叆搴撹〃鏌ヨ锛�
*/
- List<MaterialInOutStatDTO> statisticsMaterialInOut(@Param("startDate") String startDate, @Param("endDate") String endDate);
+ List<MaterialInOutRawDTO> statisticsMaterialInOutFromPakin(@Param("startDate") String startDate, @Param("endDate") String endDate);
+
+ /**
+ * 缁熻鏈堢粨鏃堕棿鑼冨洿鍐呯殑鐗╂枡鍑哄叆搴撴暟閲忥紙浠庡嚭搴撹〃鏌ヨ锛�
+ */
+ List<MaterialInOutRawDTO> statisticsMaterialInOutFromPakout(@Param("startDate") String startDate, @Param("endDate") String endDate);
/**
* 鑾峰彇涓婁竴涓湀缁撶殑鐗╂枡鏈熸湯搴撳瓨
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 4dd63c1..79921c6 100644
--- a/src/main/java/com/zy/asrs/service/impl/MonthlySettleServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MonthlySettleServiceImpl.java
@@ -7,6 +7,7 @@
import com.core.exception.CoolException;
import com.zy.asrs.entity.MonthlySettle;
import com.zy.asrs.entity.MonthlySettleDetail;
+import com.zy.asrs.entity.result.MaterialInOutRawDTO;
import com.zy.asrs.entity.result.MaterialInOutStatDTO;
import com.zy.asrs.entity.result.MonthlySettleResultVO;
import com.zy.asrs.entity.result.MonthlySettleStatisticsVO;
@@ -139,21 +140,84 @@
throw new CoolException("鏈堢粨鏃堕棿鑼冨洿鍐呭瓨鍦ㄦ湭瀹屾垚鐨勮鍗曪紝鏃犳硶杩涜鏈堢粨");
}
- // 缁熻鐗╂枡鍑哄叆搴撴暟閲忥紙鍚堝苟鍏ュ簱鍜屽嚭搴擄級
+ // 缁熻鐗╂枡鍑哄叆搴撴暟閲忥紙鍒嗗埆鏌ヨ涓や釜琛紝鍦↗ava浠g爜涓悎骞讹級
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String startDateStr = dateFormat.format(startDate);
String endDateStr = dateTimeFormat.format(endDate);
- List<MaterialInOutStatDTO> materialStats = this.baseMapper.statisticsMaterialInOut(startDateStr, endDateStr);
+
+ // 鍒嗗埆鏌ヨ鍏ュ簱琛ㄥ拰鍑哄簱琛�
+ List<MaterialInOutRawDTO> pakinDataList = this.baseMapper.statisticsMaterialInOutFromPakin(startDateStr, endDateStr);
+ List<MaterialInOutRawDTO> pakoutDataList = this.baseMapper.statisticsMaterialInOutFromPakout(startDateStr, endDateStr);
+
+ // 鍚堝苟涓や釜琛ㄧ殑鏁版嵁
+ List<MaterialInOutRawDTO> rawDataList = new java.util.ArrayList<>();
+ if (pakinDataList != null && !pakinDataList.isEmpty()) {
+ rawDataList.addAll(pakinDataList);
+ }
+ if (pakoutDataList != null && !pakoutDataList.isEmpty()) {
+ rawDataList.addAll(pakoutDataList);
+ }
// 妫�鏌ユ槸鍚︽湁鍑哄叆搴撳巻鍙茶鍗�
- if (materialStats == null || materialStats.isEmpty()) {
+ if (rawDataList == null || rawDataList.isEmpty()) {
throw new CoolException("鏈堢粨鏃堕棿鑼冨洿鍐呮病鏈夊嚭鍏ュ簱鍘嗗彶璁㈠崟锛屾棤娉曡繘琛屾湀缁�");
}
+
+ // 鍦↗ava浠g爜涓鐞嗗垎绫荤粺璁¢�昏緫
+ // 1. 澶勭悊NULL鍊硷紙batch銆乥rand銆乵aktx锛�
+ // 2. 鏍规嵁鐗╂枡缂栫爜銆佹壒娆°�佸搧鐗屽垎缁�
+ // 3. 鏍规嵁 pakin_pakout_status 鍖哄垎鍏ュ簱鍜屽嚭搴�
+ Map<String, MaterialInOutStatDTO> materialStatsMap = new HashMap<>();
+ Map<String, String> maktxMap = new HashMap<>(); // 瀛樺偍鐗╂枡鍚嶇О锛堝彇绗竴涓潪绌哄�硷級
+
+ for (MaterialInOutRawDTO raw : rawDataList) {
+ // 澶勭悊NULL鍊�
+ String matnr = raw.getMatnr();
+ String batch = raw.getBatch() != null ? raw.getBatch() : "";
+ String brand = raw.getBrand() != null ? raw.getBrand() : "";
+ String maktx = raw.getMaktx() != null ? raw.getMaktx() : "";
+ String key = matnr + "_" + batch + "_" + brand;
+
+ // 淇濆瓨鐗╂枡鍚嶇О锛堝彇绗竴涓潪绌哄�硷級
+ if (maktx != null && !maktx.isEmpty() && !maktxMap.containsKey(key)) {
+ maktxMap.put(key, maktx);
+ }
+
+ MaterialInOutStatDTO stat = materialStatsMap.get(key);
+ if (stat == null) {
+ stat = new MaterialInOutStatDTO();
+ stat.setMatnr(matnr);
+ stat.setMaktx(maktxMap.getOrDefault(key, ""));
+ stat.setBatch(batch);
+ stat.setBrand(brand);
+ stat.setInQty(BigDecimal.ZERO);
+ stat.setOutQty(BigDecimal.ZERO);
+ materialStatsMap.put(key, stat);
+ }
+
+ // 鏍规嵁 pakin_pakout_status 鍒嗙被缁熻
+ // 1 = 鍏ュ簱锛�2 = 鍑哄簱锛�0 = 鏈煡锛堝凡鍦⊿QL涓繃婊わ級
+ BigDecimal qty = raw.getQty() != null ? raw.getQty() : BigDecimal.ZERO;
+ Integer status = raw.getPakinPakoutStatus();
+ if (status != null && qty.compareTo(BigDecimal.ZERO) > 0) {
+ if (status == 1) {
+ // 鍏ュ簱
+ stat.setInQty(stat.getInQty().add(qty));
+ } else if (status == 2) {
+ // 鍑哄簱
+ stat.setOutQty(stat.getOutQty().add(qty));
+ }
+ }
+ }
+
+ // 杞崲涓篖ist
+ List<MaterialInOutStatDTO> materialStats = new java.util.ArrayList<>(materialStatsMap.values());
- // 鑾峰彇涓婁竴涓湀缁撹褰曪紙鐢ㄤ簬璁$畻鏈熷垵搴撳瓨锛�
- MonthlySettle previousSettle = getLatestSettle();
+ // 鑾峰彇涓婁竴涓湀缁撹褰曪紙鐢ㄤ簬璁$畻鏈熷垵搴撳瓨鍜屾壙鎺ヤ笂涓�鏈熺殑鐗╂枡锛�
+ MonthlySettle previousSettle = getLatestSettle();
Map<String, BigDecimal> previousEndingQtyMap = new HashMap<>();
+ Map<String, PreviousSettleEndingQtyDTO> previousDetailMap = new HashMap<>(); // 瀛樺偍涓婁竴鏈熺殑瀹屾暣鏄庣粏淇℃伅
if (previousSettle != null) {
List<PreviousSettleEndingQtyDTO> previousDetails = this.baseMapper.getPreviousSettleEndingQty(previousSettle.getId());
for (PreviousSettleEndingQtyDTO detail : previousDetails) {
@@ -162,6 +226,7 @@
(detail.getBrand() != null ? detail.getBrand() : "");
BigDecimal endingQty = detail.getEndingQty() != null ? detail.getEndingQty() : BigDecimal.ZERO;
previousEndingQtyMap.put(key, endingQty);
+ previousDetailMap.put(key, detail); // 淇濆瓨瀹屾暣淇℃伅锛岀敤浜庡悗缁垱寤烘槑缁�
}
}
@@ -184,7 +249,17 @@
BigDecimal totalOutQty = BigDecimal.ZERO;
int materialCount = 0;
- // 鍒涘缓鏈堢粨鏄庣粏
+ // 鍒涘缓 Map 瀛樺偍鏈湡鏈夊嚭鍏ュ簱鐨勭墿鏂欙紙鐢ㄤ簬鍒ゆ柇鏄惁闇�瑕佷粠涓婁竴鏈熺户鎵匡級
+ Map<String, MaterialInOutStatDTO> currentMaterialMap = new HashMap<>();
+ for (MaterialInOutStatDTO stat : materialStats) {
+ String matnr = stat.getMatnr();
+ String batch = stat.getBatch() != null ? stat.getBatch() : "";
+ String brand = stat.getBrand() != null ? stat.getBrand() : "";
+ String key = matnr + "_" + batch + "_" + brand;
+ currentMaterialMap.put(key, stat);
+ }
+
+ // 1. 澶勭悊鏈湡鏈夊嚭鍏ュ簱鐨勭墿鏂�
for (MaterialInOutStatDTO stat : materialStats) {
// 1. 鎻愬彇鍩虹淇℃伅
String matnr = stat.getMatnr();
@@ -216,6 +291,49 @@
materialCount++;
}
+ // 2. 澶勭悊涓婁竴鏈熷瓨鍦ㄤ絾鏈湡娌℃湁鍑哄叆搴撶殑鐗╂枡锛堥渶瑕佹壙鎺ユ樉绀猴級
+ if (previousSettle != null && !previousDetailMap.isEmpty()) {
+ for (Map.Entry<String, PreviousSettleEndingQtyDTO> entry : previousDetailMap.entrySet()) {
+ String key = entry.getKey();
+ // 濡傛灉鏈湡娌℃湁鍑哄叆搴擄紝浣嗕笂涓�鏈熸湁鏈熸湯搴撳瓨锛堜笖涓嶄负0锛夛紝鍒欓渶瑕佸垱寤轰竴鏉¤褰�
+ if (!currentMaterialMap.containsKey(key)) {
+ PreviousSettleEndingQtyDTO previousDetail = entry.getValue();
+ BigDecimal previousEndingQty = previousDetail.getEndingQty() != null ? previousDetail.getEndingQty() : BigDecimal.ZERO;
+
+ // 濡傛灉涓婁竴鏈熺殑鏈熸湯搴撳瓨涓嶄负0锛屾垨鑰呭嵆浣夸负0涔熻鏄剧ず锛堢敤浜庡姣旓級
+ // 杩欓噷鎴戜滑鎬绘槸鍒涘缓璁板綍锛屽嵆浣夸笂涓�鏈熸湡鏈簱瀛樹负0锛屽洜涓虹敤鎴疯姹�"濡傛灉涓婁竴鏈熷瓨鍦ㄨ繃锛屾湰鏈熷簱瀛樺綊闆朵篃瑕佹樉绀轰竴鏉′负0鐨勮褰�"
+ String matnr = previousDetail.getMatnr();
+ String batch = previousDetail.getBatch() != null ? previousDetail.getBatch() : "";
+ String brand = previousDetail.getBrand() != null ? previousDetail.getBrand() : "";
+ String maktx = previousDetail.getMaktx() != null ? previousDetail.getMaktx() : "";
+
+ // 鏈湡娌℃湁鍑哄叆搴擄紝鎵�浠ュ叆搴撳拰鍑哄簱鏁伴噺閮戒负0
+ BigDecimal inQty = BigDecimal.ZERO;
+ BigDecimal outQty = BigDecimal.ZERO;
+
+ // 鏈熷垵搴撳瓨 = 涓婁竴鏈熺殑鏈熸湯搴撳瓨
+ BigDecimal beginningQty = previousEndingQty;
+ // 鏈熸湯搴撳瓨 = 鏈熷垵 + 鍏ュ簱 - 鍑哄簱 = 鏈熷垵锛堝洜涓烘湰鏈熸病鏈夊嚭鍏ュ簱锛�
+ BigDecimal endingQty = beginningQty;
+ // 鑾峰彇褰撳墠瀹為檯搴撳瓨
+ BigDecimal stockQtyDecimal = getCurrentStockQty(matnr, batch);
+ // 璁$畻宸紓
+ BigDecimal diffQty = calculateDiffQty(stockQtyDecimal, endingQty);
+
+ // 鍒涘缓骞朵繚瀛樻槑缁嗚褰�
+ MonthlySettleDetail detail = buildMonthlySettleDetail(
+ monthlySettle.getId(), settleNo, matnr, batch, maktx, brand,
+ beginningQty, inQty, outQty, endingQty, stockQtyDecimal, diffQty
+ );
+ detail.setIsDeleted(0); // 鏈垹闄�
+ monthlySettleDetailMapper.insert(detail);
+
+ // 绱缁熻锛堣櫧鐒跺叆搴撳拰鍑哄簱涓�0锛屼絾涔熻璁″叆鐗╂枡绉嶇被鏁帮級
+ materialCount++;
+ }
+ }
+ }
+
// 鏇存柊鏈堢粨涓昏褰�
monthlySettle.setTotalInQty(totalInQty);
monthlySettle.setTotalOutQty(totalOutQty);
diff --git a/src/main/resources/mapper/MonthlySettleMapper.xml b/src/main/resources/mapper/MonthlySettleMapper.xml
index 78cc204..318d66e 100644
--- a/src/main/resources/mapper/MonthlySettleMapper.xml
+++ b/src/main/resources/mapper/MonthlySettleMapper.xml
@@ -58,60 +58,57 @@
) t
</select>
- <!-- 缁熻鏈堢粨鏃堕棿鑼冨洿鍐呯殑鐗╂枡鍑哄叆搴撴暟閲忥紙鍚堝苟鍏ュ簱鍑哄簱锛� -->
- <select id="statisticsMaterialInOut" resultType="com.zy.asrs.entity.result.MaterialInOutStatDTO">
+ <!-- 缁熻鏈堢粨鏃堕棿鑼冨洿鍐呯殑鐗╂枡鍑哄叆搴撴暟閲忥紙浠庡叆搴撹〃鏌ヨ锛� -->
+ <select id="statisticsMaterialInOutFromPakin" resultType="com.zy.asrs.entity.result.MaterialInOutRawDTO">
SELECT
- matnr,
- MAX(maktx) as maktx,
- batch,
- brand,
- SUM(in_qty) as inQty,
- SUM(out_qty) as outQty
- FROM (
- SELECT
- od.matnr,
- MAX(od.maktx) as maktx,
- ISNULL(od.batch, '') as batch,
- ISNULL(od.brand, '') as brand,
- SUM(od.qty) as in_qty,
- 0 as out_qty
- FROM man_order_log_pakin o
- INNER JOIN man_order_detl_log_pakin od ON o.id = od.order_id
- WHERE o.status = 1
- AND CONVERT(date, o.order_time) >= #{startDate}
- AND o.order_time <= #{endDate}
- AND o.move_status = 2
- AND (o.monthly_settle_id IS NULL OR o.monthly_settle_id = 0)
- GROUP BY od.matnr, od.batch, od.brand
- UNION ALL
- SELECT
- od.matnr,
- MAX(od.maktx) as maktx,
- ISNULL(od.batch, '') as batch,
- ISNULL(od.brand, '') as brand,
- 0 as in_qty,
- SUM(od.qty) as out_qty
- FROM man_order_log_pakout o
- INNER JOIN man_order_detl_log_pakout od ON o.id = od.order_id
- WHERE o.status = 1
- AND CONVERT(date, o.order_time) >= #{startDate}
- AND o.order_time <= #{endDate}
- AND o.move_status = 2
- AND (o.monthly_settle_id IS NULL OR o.monthly_settle_id = 0)
- GROUP BY od.matnr, od.batch, od.brand
- ) t
- GROUP BY matnr, batch, brand
+ od.matnr,
+ od.maktx,
+ od.batch,
+ od.brand,
+ SUM(od.qty) as qty,
+ COALESCE(od.pakin_pakout_status, o.pakin_pakout_status) as pakinPakoutStatus
+ FROM man_order_log_pakin o
+ INNER JOIN man_order_detl_log_pakin od ON o.id = od.order_id
+ WHERE o.status = 1
+ AND CONVERT(date, o.order_time) >= #{startDate}
+ AND o.order_time <= #{endDate}
+ AND o.move_status = 2
+ AND (o.monthly_settle_id IS NULL OR o.monthly_settle_id = 0)
+ AND COALESCE(od.pakin_pakout_status, o.pakin_pakout_status) IN (1, 2)
+ GROUP BY od.matnr, od.maktx, od.batch, od.brand, COALESCE(od.pakin_pakout_status, o.pakin_pakout_status)
+ </select>
+
+ <!-- 缁熻鏈堢粨鏃堕棿鑼冨洿鍐呯殑鐗╂枡鍑哄叆搴撴暟閲忥紙浠庡嚭搴撹〃鏌ヨ锛� -->
+ <select id="statisticsMaterialInOutFromPakout" resultType="com.zy.asrs.entity.result.MaterialInOutRawDTO">
+ SELECT
+ od.matnr,
+ od.maktx,
+ od.batch,
+ od.brand,
+ SUM(od.qty) as qty,
+ COALESCE(od.pakin_pakout_status, o.pakin_pakout_status) as pakinPakoutStatus
+ FROM man_order_log_pakout o
+ INNER JOIN man_order_detl_log_pakout od ON o.id = od.order_id
+ WHERE o.status = 1
+ AND CONVERT(date, o.order_time) >= #{startDate}
+ AND o.order_time <= #{endDate}
+ AND o.move_status = 2
+ AND (o.monthly_settle_id IS NULL OR o.monthly_settle_id = 0)
+ AND COALESCE(od.pakin_pakout_status, o.pakin_pakout_status) IN (1, 2)
+ GROUP BY od.matnr, od.maktx, od.batch, od.brand, COALESCE(od.pakin_pakout_status, o.pakin_pakout_status)
</select>
<!-- 鑾峰彇涓婁竴涓湀缁撶殑鐗╂枡鏈熸湯搴撳瓨 -->
<select id="getPreviousSettleEndingQty" resultType="com.zy.asrs.entity.result.PreviousSettleEndingQtyDTO">
SELECT
matnr,
- batch,
- brand,
+ ISNULL(batch, '') as batch,
+ ISNULL(brand, '') as brand,
+ ISNULL(maktx, '') as maktx,
ending_qty as endingQty
FROM man_monthly_settle_detail
WHERE settle_id = #{previousSettleId}
+ AND is_deleted = 0
</select>
<!-- 鏇存柊鍏ュ簱璁㈠崟鐨勬湀缁撲俊鎭� -->
diff --git a/src/main/webapp/static/js/monthlySettle/monthlySettle.js b/src/main/webapp/static/js/monthlySettle/monthlySettle.js
index dc9df4f..f5f3bb0 100644
--- a/src/main/webapp/static/js/monthlySettle/monthlySettle.js
+++ b/src/main/webapp/static/js/monthlySettle/monthlySettle.js
@@ -402,6 +402,7 @@
data: details,
page: true,
cellMinWidth: 100,
+ width: '100%',
cols: [[
{type: 'numbers', title: '搴忓彿', width: 60, align: 'center'},
{field: 'matnr', title: '鐗╂枡缂栫爜', width: 150},
@@ -545,8 +546,7 @@
}
}
});
- debugger; // 璋冭瘯鐢細妫�鏌� searchData 鐨勫��
-
+
// 鑾峰彇 table 瀹炰緥
var tableInstance = child ? parent.tableIns : tableIns;
diff --git a/src/main/webapp/views/monthlySettle/monthlySettle.html b/src/main/webapp/views/monthlySettle/monthlySettle.html
index c0ba70c..245e32c 100644
--- a/src/main/webapp/views/monthlySettle/monthlySettle.html
+++ b/src/main/webapp/views/monthlySettle/monthlySettle.html
@@ -107,7 +107,9 @@
</div>
</div>
<hr class="layui-bg-gray">
- <table id="detailTable" lay-filter="detailTable"></table>
+ <div style="overflow-x: auto; width: 100%;">
+ <table id="detailTable" lay-filter="detailTable"></table>
+ </div>
</div>
</script>
--
Gitblit v1.9.1