From 48b2dc4df2c247d12e4dd52c3c5d290f1e026578 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期四, 29 一月 2026 13:39:43 +0800
Subject: [PATCH] 销售订单-修复
---
src/main/java/com/zy/asrs/controller/SaleOrderController.java | 123 ++++++++++++++++++++++++++++++++--------
1 files changed, 98 insertions(+), 25 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/SaleOrderController.java b/src/main/java/com/zy/asrs/controller/SaleOrderController.java
index 4cd05cd..c527da6 100644
--- a/src/main/java/com/zy/asrs/controller/SaleOrderController.java
+++ b/src/main/java/com/zy/asrs/controller/SaleOrderController.java
@@ -23,6 +23,7 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
+import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.*;
import javax.servlet.http.HttpServletResponse;
@@ -156,6 +157,67 @@
}
}
}
+
+ /**
+ * 瀹夊叏鍦板皢瀵硅薄杞崲涓築igDecimal锛岀‘淇漬ull鍊间笉浼氳閿欒杞崲
+ * 浣跨敤BigDecimal鍙互閬垮厤娴偣鏁扮簿搴﹂棶棰橈紝鐗瑰埆閫傚悎閲戦鍜屾暟閲忓瓧娈�
+ * @param obj 寰呰浆鎹㈢殑瀵硅薄
+ * @return BigDecimal鍊硷紝濡傛灉瀵硅薄涓簄ull鎴栨棤娉曡浆鎹㈠垯杩斿洖null
+ */
+ private BigDecimal parseBigDecimalSafely(Object obj) {
+ if (obj == null) {
+ return null;
+ }
+ // 濡傛灉鏄瓧绗︿覆"null"锛岃繑鍥瀗ull
+ String str = String.valueOf(obj);
+ if ("null".equalsIgnoreCase(str) || str.trim().isEmpty()) {
+ return null;
+ }
+ try {
+ // 濡傛灉宸茬粡鏄疊igDecimal锛岀洿鎺ヨ繑鍥�
+ if (obj instanceof BigDecimal) {
+ return (BigDecimal) obj;
+ }
+ // 濡傛灉鏄疦umber绫诲瀷锛岃浆鎹负BigDecimal
+ if (obj instanceof Number) {
+ // 浣跨敤瀛楃涓茶浆鎹㈤伩鍏嶇簿搴︽崯澶�
+ return new BigDecimal(obj.toString());
+ }
+ // 瀛楃涓茶浆鎹负BigDecimal
+ return new BigDecimal(str.trim());
+ } catch (NumberFormatException e) {
+ // 杞崲澶辫触锛岃繑鍥瀗ull
+ return null;
+ }
+ }
+
+ /**
+ * 瀹夊叏鍦板皢瀵硅薄杞崲涓篋ouble锛岀‘淇漬ull鍊间笉浼氳閿欒杞崲
+ * @deprecated 寤鸿浣跨敤 parseBigDecimalSafely 鏇夸唬锛屼互閬垮厤绮惧害闂
+ * @param obj 寰呰浆鎹㈢殑瀵硅薄
+ * @return Double鍊硷紝濡傛灉瀵硅薄涓簄ull鎴栨棤娉曡浆鎹㈠垯杩斿洖null
+ */
+ @Deprecated
+ private Double parseDoubleSafely(Object obj) {
+ if (obj == null) {
+ return null;
+ }
+ // 濡傛灉鏄瓧绗︿覆"null"锛岃繑鍥瀗ull
+ String str = String.valueOf(obj);
+ if ("null".equalsIgnoreCase(str) || str.trim().isEmpty()) {
+ return null;
+ }
+ try {
+ // 灏濊瘯杞崲涓篋ouble
+ if (obj instanceof Number) {
+ return ((Number) obj).doubleValue();
+ }
+ return Double.valueOf(str);
+ } catch (NumberFormatException e) {
+ // 杞崲澶辫触锛岃繑鍥瀗ull
+ return null;
+ }
+ }
@RequestMapping(value = "/saleOrder/add/auth")
@ManagerAuth
@@ -171,37 +233,41 @@
return R.error("鏁版嵁涓嶈兘涓虹┖");
}
int successCount = 0;
+ int updateCount = 0;
for (Map<String, Object> data : dataList) {
try {
-
- SaleOrder saleOrder1 = saleOrderService.selectOne(new EntityWrapper<SaleOrder>()
+ // 妫�鏌ユ槸鍚﹀凡瀛樺湪锛堟牴鎹鍗曞彿鍜岀墿鏂欑紪鐮侊級
+ SaleOrder existOrder = saleOrderService.selectOne(new EntityWrapper<SaleOrder>()
.eq("order_code", data.get("orderCode")).eq("inv_code", data.get("invCode")));
- if (null != saleOrder1) {
- continue;
+
+ SaleOrder saleOrder;
+ boolean isUpdate = false;
+ if (existOrder != null) {
+ // 宸插瓨鍦紝鏇存柊鏁版嵁
+ saleOrder = existOrder;
+ isUpdate = true;
+ updateCount++;
+ } else {
+ // 涓嶅瓨鍦紝鍒涘缓鏂拌褰�
+ saleOrder = new SaleOrder();
+ successCount++;
}
-
- SaleOrder saleOrder = new SaleOrder();
+
saleOrder.setOrderCode(data.get("orderCode") != null ? String.valueOf(data.get("orderCode")) : null);
saleOrder.setPersonName(data.get("personName") != null ? String.valueOf(data.get("personName")) : null);
saleOrder.setInvCode(data.get("invCode") != null ? String.valueOf(data.get("invCode")) : null);
saleOrder.setInvName(data.get("invName") != null ? String.valueOf(data.get("invName")) : null);
saleOrder.setInvStd(data.get("invStd") != null ? String.valueOf(data.get("invStd")) : null);
- saleOrder.setOrderQty(
- data.get("orderQty") != null ? Double.valueOf(String.valueOf(data.get("orderQty"))) : null);
- saleOrder.setProductQty(
- data.get("productQty") != null ? Double.valueOf(String.valueOf(data.get("productQty"))) : null);
- saleOrder
- .setInQty(data.get("inQty") != null ? Double.valueOf(String.valueOf(data.get("inQty"))) : null);
- saleOrder.setOutQty(
- data.get("outQty") != null ? Double.valueOf(String.valueOf(data.get("outQty"))) : null);
- saleOrder.setOutAmount(
- data.get("outAmount") != null ? Double.valueOf(String.valueOf(data.get("outAmount"))) : null);
- saleOrder.setOutPrice(
- data.get("outPrice") != null ? Double.valueOf(String.valueOf(data.get("outPrice"))) : null);
- saleOrder.setIcsbeqty(
- data.get("icsbeqty") != null ? Double.valueOf(String.valueOf(data.get("icsbeqty"))) : null);
- saleOrder.setSeoseqty(
- data.get("seoseqty") != null ? Double.valueOf(String.valueOf(data.get("seoseqty"))) : null);
+
+ saleOrder.setOrderQty(parseDoubleSafely(data.get("orderQty")));
+ saleOrder.setProductQty(parseDoubleSafely(data.get("productQty")));
+ saleOrder.setInQty(parseDoubleSafely(data.get("inQty")));
+ saleOrder.setOutQty(parseDoubleSafely(data.get("outQty")));
+ saleOrder.setOutAmount(parseDoubleSafely(data.get("outAmount")));
+ saleOrder.setOutPrice(parseDoubleSafely(data.get("outPrice")));
+ saleOrder.setIcsbeqty(parseDoubleSafely(data.get("icsbeqty")));
+ saleOrder.setSeoseqty(parseDoubleSafely(data.get("seoseqty")));
+
// 鏃ユ湡瀛楁澶勭悊
if (data.get("deliveryDate") != null && !Cools.isEmpty(String.valueOf(data.get("deliveryDate")))) {
try {
@@ -212,15 +278,22 @@
// 灏濊瘯浣跨敤 DateUtils 瑙f瀽鍏朵粬鏍煎紡
saleOrder.setDeliveryDate(DateUtils.convert(String.valueOf(data.get("deliveryDate"))));
}
+ } else {
+ saleOrder.setDeliveryDate(null);
}
- saleOrderService.insert(saleOrder);
- successCount++;
+
+ // 淇濆瓨鎴栨洿鏂�
+ if (isUpdate) {
+ saleOrderService.updateById(saleOrder);
+ } else {
+ saleOrderService.insert(saleOrder);
+ }
} catch (Exception e) {
// 璁板綍澶辫触鐨勮褰曪紝缁х画澶勭悊涓嬩竴鏉�
e.printStackTrace();
}
}
- return R.ok("鎴愬姛淇濆瓨 " + successCount + " 鏉℃暟鎹�");
+ return R.ok("鎴愬姛淇濆瓨 " + successCount + " 鏉℃柊鏁版嵁锛屾洿鏂� " + updateCount + " 鏉″凡瀛樺湪鏁版嵁");
}
@RequestMapping(value = "/saleOrder/update/auth")
--
Gitblit v1.9.1