From 359a0d155942c6f31fe80a8dfad16efe13e982ea Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期一, 02 二月 2026 15:21:07 +0800
Subject: [PATCH] 校验工or0
---
src/main/java/com/zy/asrs/controller/SaleOrderController.java | 72 ++++++++++++++++++++++++++++++++----
1 files changed, 64 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/SaleOrderController.java b/src/main/java/com/zy/asrs/controller/SaleOrderController.java
index c527da6..1c96798 100644
--- a/src/main/java/com/zy/asrs/controller/SaleOrderController.java
+++ b/src/main/java/com/zy/asrs/controller/SaleOrderController.java
@@ -234,6 +234,7 @@
}
int successCount = 0;
int updateCount = 0;
+ int skipCount = 0;
for (Map<String, Object> data : dataList) {
try {
// 妫�鏌ユ槸鍚﹀凡瀛樺湪锛堟牴鎹鍗曞彿鍜岀墿鏂欑紪鐮侊級
@@ -242,11 +243,39 @@
SaleOrder saleOrder;
boolean isUpdate = false;
+ boolean hasQtyChange = false;
+
if (existOrder != null) {
- // 宸插瓨鍦紝鏇存柊鏁版嵁
- saleOrder = existOrder;
- isUpdate = true;
- updateCount++;
+ // 宸插瓨鍦紝妫�鏌ユ暟閲忓瓧娈垫槸鍚︽湁鍙樺寲
+ Double newOrderQty = parseDoubleSafely(data.get("orderQty"));
+ Double newProductQty = parseDoubleSafely(data.get("productQty"));
+ Double newInQty = parseDoubleSafely(data.get("inQty"));
+ Double newOutQty = parseDoubleSafely(data.get("outQty"));
+ Double newOutAmount = parseDoubleSafely(data.get("outAmount"));
+ Double newOutPrice = parseDoubleSafely(data.get("outPrice"));
+ Double newIcsbeqty = parseDoubleSafely(data.get("icsbeqty"));
+ Double newSeoseqty = parseDoubleSafely(data.get("seoseqty"));
+
+ // 姣旇緝鏁伴噺瀛楁鏄惁鏈夊彉鍖�
+ hasQtyChange = !isDoubleEqual(existOrder.getOrderQty(), newOrderQty)
+ || !isDoubleEqual(existOrder.getProductQty(), newProductQty)
+ || !isDoubleEqual(existOrder.getInQty(), newInQty)
+ || !isDoubleEqual(existOrder.getOutQty(), newOutQty)
+ || !isDoubleEqual(existOrder.getOutAmount(), newOutAmount)
+ || !isDoubleEqual(existOrder.getOutPrice(), newOutPrice)
+ || !isDoubleEqual(existOrder.getIcsbeqty(), newIcsbeqty)
+ || !isDoubleEqual(existOrder.getSeoseqty(), newSeoseqty);
+
+ // 鍙湁褰撴暟閲忔湁鍙樺寲鏃舵墠鏇存柊
+ if (hasQtyChange) {
+ saleOrder = existOrder;
+ isUpdate = true;
+ updateCount++;
+ } else {
+ // 鏁伴噺娌℃湁鍙樺寲锛岃烦杩囨洿鏂�
+ skipCount++;
+ continue;
+ }
} else {
// 涓嶅瓨鍦紝鍒涘缓鏂拌褰�
saleOrder = new SaleOrder();
@@ -293,7 +322,33 @@
e.printStackTrace();
}
}
- return R.ok("鎴愬姛淇濆瓨 " + successCount + " 鏉℃柊鏁版嵁锛屾洿鏂� " + updateCount + " 鏉″凡瀛樺湪鏁版嵁");
+ String message = "鎴愬姛淇濆瓨 " + successCount + " 鏉℃柊鏁版嵁锛屾洿鏂� " + updateCount + " 鏉″凡瀛樺湪鏁版嵁";
+ if (skipCount > 0) {
+ message += "锛岃烦杩� " + skipCount + " 鏉℃暟閲忔湭鍙樺寲鐨勬暟鎹�";
+ }
+ return R.ok(message);
+ }
+
+ /**
+ * 姣旇緝涓や釜Double鍊兼槸鍚︾浉绛夛紙澶勭悊null鍊煎拰0鍊硷級
+ * 閲嶈锛歯ull鍜�0琚涓烘槸涓嶅悓鐨勫�硷紝闇�瑕佹洿鏂�
+ * @param d1 绗竴涓狣ouble鍊�
+ * @param d2 绗簩涓狣ouble鍊�
+ * @return true-鐩哥瓑锛宖alse-涓嶇浉绛�
+ */
+ private boolean isDoubleEqual(Double d1, Double d2) {
+ // 涓や釜閮芥槸null锛岃涓虹浉绛�
+ if (d1 == null && d2 == null) {
+ return true;
+ }
+ // 涓�涓负null锛屽彟涓�涓笉涓簄ull锛岃涓轰笉鐩哥瓑锛堥渶瑕佹洿鏂帮級
+ // 娉ㄦ剰锛歯ull鍜�0鏄笉鍚岀殑锛宯ull鍜�0.0浼氳繑鍥瀎alse锛岃Е鍙戞洿鏂�
+ if (d1 == null || d2 == null) {
+ return false;
+ }
+ // 涓や釜閮戒笉涓簄ull锛屼娇鐢ㄨ宸寖鍥存瘮杈冿紝閬垮厤娴偣鏁扮簿搴﹂棶棰�
+ // 娉ㄦ剰锛�0鍊间細琚纭瘮杈冿紝渚嬪锛�0.0鍜�0.0浼氳繑鍥瀟rue锛�100.0鍜�0.0浼氳繑鍥瀎alse
+ return Math.abs(d1 - d2) < 0.0001;
}
@RequestMapping(value = "/saleOrder/update/auth")
@@ -496,11 +551,12 @@
// 琛ㄥご
String[] headers = { "鐢熶骇鍗曞彿", "涓氬姟鍛�", "鍥惧彿", "鐗╂枡鍚嶇О", "瑙勬牸", "璁㈠崟鏁伴噺", "浜よ揣鏃ユ湡",
- "浠诲姟鍗曟暟閲�", "鎴愬搧鏁伴噺", "鍑鸿揣閫氱煡鏁�", "瀹炲嚭鏁伴噺", "瀵硅处鏁伴噺", "瀵硅处鍗曚环", "瀵硅处閲戦",
+ "浠诲姟鍗曟暟閲�", "鎴愬搧鏁伴噺", "鍑鸿揣閫氱煡鏁�", /* "瀹炲嚭鏁伴噺", */ "瀵硅处鏁伴噺", "瀵硅处鍗曚环", "瀵硅处閲戦",
"鍖呮潗鐗堣垂", "閫�绋庤祫鏂�", "寮�绁�", "鍐呴檰璐�", "鏀舵", "搴旀敹娆句綑棰�",
"瀵硅处鏁伴噺娈嬩綑", "瀵硅处閲戦娈嬩綑", "浠诲姟鍗曟畫浣�", "瀹炲嚭鏁伴噺娈嬩綑", "鏀舵娈嬩綑" };
+ // 瀹炲嚭鏁伴噺瀛楁宸查殣钘忥紝isCalc鏁扮粍闇�瑕佺浉搴旇皟鏁达紙绉婚櫎涓�涓猣alse锛�
boolean[] isCalc = { false, false, false, false, false, false, false,
- false, false, false, false, false, false, false,
+ false, false, false, /* false, */ false, false, false,
false, false, false, false, false, false,
true, true, true, true, true };
@@ -528,7 +584,7 @@
createNumCell(row, col++, order.getProductQty(), dataStyle);
createNumCell(row, col++, order.getInQty(), dataStyle);
createNumCell(row, col++, order.getIcsbeqty(), dataStyle);
- createNumCell(row, col++, order.getSeoseqty(), dataStyle);
+ // createNumCell(row, col++, order.getSeoseqty(), dataStyle);
createNumCell(row, col++, order.getOutQty(), dataStyle);
createNumCell(row, col++, order.getOutPrice(), dataStyle);
createNumCell(row, col++, order.getOutAmount(), dataStyle);
--
Gitblit v1.9.1