From 076dd23c615e66b2c495bb123aadf041940f03b2 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期三, 12 二月 2025 14:43:57 +0800
Subject: [PATCH] 协客云的三个接口初稿
---
src/main/java/com/gs/xky/mapper/DeliveryNoticeMapper.java | 19
src/main/java/com/gs/xky/mapper/TblBarcodeInformationMapper.java | 18
src/main/java/com/gs/xky/dto/BarcodeDeliveryNo.java | 34 +
src/main/resources/mapper/TblBarcodeInformationMapper.xml | 7
src/main/java/com/gs/xky/service/Impl/DeliveryNoticeServiceImpl.java | 77 +++
src/main/java/com/gs/xky/config/ApiResponse.java | 4
src/main/java/com/gs/xky/config/DataAcquisitionConfiguration.java | 21
src/main/java/com/gs/xky/service/TblBarcodeInformationService.java | 18
src/main/java/com/gs/xky/entity/DeliveryNoticeDetail.java | 298 +++++++++++++
src/main/java/com/gs/xky/dto/LineList.java | 81 +++
src/main/java/com/gs/xky/service/Impl/DeliveryNoticeDetailServiceImpl.java | 22 +
src/main/resources/mapper/DeliveryNoticeDetailMapper.xml | 8
src/main/java/com/gs/xky/dto/XkyDetail.java | 63 ++
src/main/java/com/gs/xky/entity/DeliveryNotice.java | 189 ++++++++
src/main/java/com/gs/xky/entity/TblBarcodeInformation.java | 113 +++++
src/main/java/com/gs/xky/dto/CustomsData.java | 29 +
src/main/java/com/gs/xky/config/XkyCommonParam.java | 25 +
src/test/java/com/gs/xky/XkyApplicationTests.java | 44 -
src/main/resources/mapper/DeliveryNoticeMapper.xml | 11
src/main/java/com/gs/xky/service/Impl/TblBarcodeInformationServiceImpl.java | 61 ++
src/main/java/com/gs/xky/service/XkyService.java | 110 +++++
src/main/java/com/gs/xky/service/DeliveryNoticeService.java | 17
src/main/java/com/gs/xky/config/BodyParam.java | 4
src/main/java/com/gs/xky/service/DeliveryNoticeDetailService.java | 13
src/main/java/com/gs/xky/mapper/DeliveryNoticeDetailMapper.java | 18
25 files changed, 1,252 insertions(+), 52 deletions(-)
diff --git a/src/main/java/com/gs/xky/config/ApiResponse.java b/src/main/java/com/gs/xky/config/ApiResponse.java
index 7cc1488..477f499 100644
--- a/src/main/java/com/gs/xky/config/ApiResponse.java
+++ b/src/main/java/com/gs/xky/config/ApiResponse.java
@@ -1,5 +1,6 @@
package com.gs.xky.config;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -10,6 +11,7 @@
@Data
@AllArgsConstructor
@NoArgsConstructor
+@JsonIgnoreProperties(ignoreUnknown = true)
public class ApiResponse<T> {
private int result;
@@ -17,6 +19,8 @@
private String errorCode;
private String errorMsg;
+ private T data;
+
private List<T> dataList; // Add this field to match the response
}
diff --git a/src/main/java/com/gs/xky/config/BodyParam.java b/src/main/java/com/gs/xky/config/BodyParam.java
index 4ee5127..faa9e15 100644
--- a/src/main/java/com/gs/xky/config/BodyParam.java
+++ b/src/main/java/com/gs/xky/config/BodyParam.java
@@ -29,4 +29,8 @@
private int[] status;
private int logisticsStatus;
+
+ private String deliveryNo;
+
+ private int returnVerifyFlag;
}
diff --git a/src/main/java/com/gs/xky/config/DataAcquisitionConfiguration.java b/src/main/java/com/gs/xky/config/DataAcquisitionConfiguration.java
index e6a829f..b516a43 100644
--- a/src/main/java/com/gs/xky/config/DataAcquisitionConfiguration.java
+++ b/src/main/java/com/gs/xky/config/DataAcquisitionConfiguration.java
@@ -4,23 +4,20 @@
public class DataAcquisitionConfiguration {
//娴嬭瘯鐜
- public static final String TEST_COMPANY_CODE =
- "55958795";
+ public static final String TEST_COMPANY_CODE = "55958795";
- public static final String TEST_APP_KEY =
- "ab2d86b6dffabcc81dca6855c727c246";
+ public static final String TEST_APP_KEY = "ab2d86b6dffabcc81dca6855c727c246";
- public static final String TEST_APP_SECRET =
- "01b17babe2a96d5ebd802e67709f33d1";
+ public static final String TEST_APP_SECRET = "01b17babe2a96d5ebd802e67709f33d1";
+ public static final String TEST_ERP_CODE = "Z106";
//姝e紡鐜
- public static final String COMPANY_CODE =
- "72505985";
+ public static final String COMPANY_CODE = "72505985";
- public static final String APP_KEY =
- "a2866f03bb7f76387bfb1a98001f0e31";
+ public static final String APP_KEY = "a2866f03bb7f76387bfb1a98001f0e31";
- public static final String APP_SECRET =
- "f13bd1bcb130f0090ed92dc021e5f4e1";
+ public static final String APP_SECRET = "f13bd1bcb130f0090ed92dc021e5f4e1";
+
+ public static final String ERP_CODE = "Z106";
}
diff --git a/src/main/java/com/gs/xky/config/XkyCommonParam.java b/src/main/java/com/gs/xky/config/XkyCommonParam.java
index fef8af5..3fea50e 100644
--- a/src/main/java/com/gs/xky/config/XkyCommonParam.java
+++ b/src/main/java/com/gs/xky/config/XkyCommonParam.java
@@ -1,5 +1,6 @@
package com.gs.xky.config;
+import com.alibaba.fastjson.JSON;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -12,4 +13,28 @@
private ApiCommonParam commonParam;
private BodyParam body;
+
+
+ public static XkyCommonParam GetInit() {
+
+ long currentTimeMillis = System.currentTimeMillis();
+
+ ApiCommonParam apiParam = new ApiCommonParam();
+ apiParam.setAppKey(DataAcquisitionConfiguration.TEST_APP_KEY);//鍙戞惡瀹簯鎻愪緵鐨刟ppKey
+ apiParam.setVersion("1.0");//鎺ュ彛鐗堟湰
+ apiParam.setOperateCompanyCode(DataAcquisitionConfiguration.TEST_COMPANY_CODE);//鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮�
+ apiParam.setOwnerCompanyCode(DataAcquisitionConfiguration.TEST_COMPANY_CODE);//鏁版嵁鎵�灞炲叕鍙哥紪鐮�,闈為泦鍥㈠叕鍙搁粯璁よ祴鍊间负鎿嶄綔鍏徃
+ apiParam.setTimestamps(currentTimeMillis / 1000);//褰撳墠鏃堕棿瀵瑰簲鐨勬椂闂存埑锛堢鏁帮級
+
+ String appSecret = DataAcquisitionConfiguration.TEST_APP_SECRET;//鎼哄浜戞彁渚涚殑appSecret
+
+ String sign = SignUtils.buildCurrentSign(JSON.toJSONString(apiParam), appSecret);
+ apiParam.setSign(sign);
+
+ XkyCommonParam commonParam = new XkyCommonParam();
+ commonParam.setCommonParam(apiParam);
+
+ return commonParam;
+ }
+
}
diff --git a/src/main/java/com/gs/xky/dto/BarcodeDeliveryNo.java b/src/main/java/com/gs/xky/dto/BarcodeDeliveryNo.java
new file mode 100644
index 0000000..36b2649
--- /dev/null
+++ b/src/main/java/com/gs/xky/dto/BarcodeDeliveryNo.java
@@ -0,0 +1,34 @@
+package com.gs.xky.dto;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class BarcodeDeliveryNo {
+
+ private String productCode; //浜у搧缂栫爜
+ private String smallBarcode; //灏忓寘鏉$爜
+ private String bigBarcode; //澶у寘鏉$爜
+ private String outerBarcode; //澶栫鏉$爜
+ private String includeQty; //褰撳墠灏忓寘鏉$爜鍖呭惈鐨勬暟閲�
+ private String smallPackageLength; //灏忓寘鏉$爜-闀�
+ private String smallPackageWidth; //灏忓寘鏉$爜-瀹�
+ private String smallPackageHeight; //灏忓寘鏉$爜-楂�
+ private String bigPackageLength; //澶у寘鏉$爜-闀�
+ private String bigPackageWidth; //澶у寘鏉$爜-瀹�
+ private String bigPackageHeight; //澶у寘鏉$爜-楂�
+ private String outerPackageLength; //澶栫鏉$爜-闀�
+ private String outerPackageWidth; //澶栫鏉$爜-瀹�
+ private String outerPackageHeight; //澶栫鏉$爜-楂�
+ private String smallPackageSn; //褰撳墠灏忓寘鏉$爜鐨勬祦姘寸爜
+ private String bigPackageSn; //褰撳墠澶у寘鏉$爜鐨勬祦姘寸爜
+ private String outPackageSn; //褰撳墠澶栫鏉$爜鐨勬祦姘寸爜
+ private String dynamicData; //鏉$爜瑙勫垯涓搴旂殑鍔ㄦ�佸瓧娈电殑鍊�, key瀵瑰簲鐨勫彇鍊间负dynamicDescList.field鐨勫�硷紱濡傛灉浼佷笟璋冩暣浜嗘潯鐮佽鍒欙紝璇锋牴鎹甦ynamicDescList杩斿洖鐨勭粨鏋滐紝浜嗚В鍚勫姩鎬佹暟鎹殑鍚箟
+ private String packLevel; //鍖呰灞傜骇
+
+}
diff --git a/src/main/java/com/gs/xky/dto/CustomsData.java b/src/main/java/com/gs/xky/dto/CustomsData.java
new file mode 100644
index 0000000..b8b0e6d
--- /dev/null
+++ b/src/main/java/com/gs/xky/dto/CustomsData.java
@@ -0,0 +1,29 @@
+package com.gs.xky.dto;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class CustomsData {
+
+ private String dnXkNo; //閫佽揣閫氱煡鍗曟嵁鍙�
+ private String dnInnerNo; //鍐呴儴鍗曟嵁鍙�
+ private String billLadingXkNo; //鎶ュ崟鍙风爜
+ private String customsTypeCode; //鎶ュ叧绫诲瀷缂栫爜
+ private String customsTypeName; //鎶ュ叧绫诲瀷鍚嶇О
+ private String destinationPortTypeCode; //鐩殑娓紪鐮�
+ private String destinationPortTypeName; //鐩殑娓悕绉�
+ private String portLoadingTypeCode; //瑁呰繍娓紪鐮�
+ private String portLoadingTypeName; //瑁呰繍娓悕绉�
+ private String originalCountryCode; //鍘熶骇鍥界紪鐮�
+ private String originalCountryName; //鍘熶骇鍥藉悕绉�
+ private String externalInvoiceXkNo; //澶栭儴鍙戠エ鍙风爜
+ private String externalInvoiceDate; //澶栭儴鍙戠エ鏃ユ湡
+
+}
diff --git a/src/main/java/com/gs/xky/dto/LineList.java b/src/main/java/com/gs/xky/dto/LineList.java
new file mode 100644
index 0000000..d5735b4
--- /dev/null
+++ b/src/main/java/com/gs/xky/dto/LineList.java
@@ -0,0 +1,81 @@
+package com.gs.xky.dto;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class LineList {
+
+ private String lineNo; //椤规鍙�
+ private String poErpNo; //ERP閲囪喘鍗曞彿
+ private String purchaseType; //閲囪喘鍗曠被鍨� 1锛氫竴鑸噰璐紱2锛氬澶栭噰璐�
+ private String poLineNo; //閲囪喘鍗曢」娆�
+ private String productCode; //浜у搧缂栫爜
+ private String productName; //浜у搧鍚嶇О
+ private String productScale; //浜у搧瑙勬牸
+ private String deliveryUnitCode; //鍑鸿揣鍗曚綅缂栫爜
+ private String deliveryUnitName; //鍑鸿揣鍗曚綅鍚嶇О
+ private String deliveryQty; //鍑鸿揣鏁伴噺
+ private String deliveryValuationQty; //鍑鸿揣璁′环鏁伴噺
+ private String price; //鍑鸿揣浜у搧鍗曚环
+ private String taxPrice; //鍑鸿揣浜у搧鍚◣鍗曚环
+ private String schDynamicValue; //鎺掔▼鑷畾涔夐」鐨勫��
+ private String scheduleBatchNo; //鎺掔▼鎵规鍙�
+ private String scheduleOrderNo; //鎺掔▼鍗曞彿
+ private String scheduleDetailNo; //瀵瑰簲鎺掔▼ItemDetail鐨勪富閿垪
+ private String urgentFlag; //鏄惁鎬ユ枡 0:鍚� ; 1锛氭槸
+ private String srcBillType; //鍘熷鍗曟嵁绫诲瀷1锛氳鍗曪紱2锛氭帓绋�; 3:鎸夐��璐� 4:鎸夊鍝�
+ private String purchaseDesc; //閲囪喘椤规鐨勯噰璐鏄庝俊鎭�
+ private String srcOrderLineRemark; //鍗曟嵁澶囨敞锛宻rcBillType=1 瀵瑰簲閲囪喘璁㈠崟鍗曡韩鐨勫娉�; srcBillType=2 瀵瑰簲鎺掔▼椤规鐨勫娉�
+ private String status; //鐘舵�侊紙1:寰呯鏀讹紱2:绛炬敹涓紱3: 宸插畬鎴愶紱锛�
+ private String receiveStatus; //鏀惰揣鐘舵�侊紙0-鏈敹璐�;1-閮ㄥ垎鏀惰揣;2-鍏ㄩ儴鏀惰揣锛�
+ private String grossWeight; //鏁村崟姣涢噸
+ private String netWeight; //鏁村崟鍑�閲�
+ private String unitWeightCode; //閲嶉噺鍗曚綅缂栫爜
+ private String unitWeightName; //閲嶉噺鍗曚綅鍚嶇О
+ private String packingQty; //鍖呰鏁�
+ private String brandName; //鍝佺墝
+ private String otherExtend; //鍏跺畠璇存槑
+ private String originalCountryCode; //鍘熶骇鍥界紪鐮�
+ private String originalCountryName; //鍘熶骇鍥藉悕绉�
+ private String remark; //閫佽揣閫氱煡鍗曡韩澶囨敞
+ private String extendN01; //鎵╁睍瀛楁1
+ private String extendN02; //鎵╁睍瀛楁2
+ private String extendN03; //鎵╁睍瀛楁3
+ private String extendN04; //鎵╁睍瀛楁4
+ private String extendN05; //鎵╁睍瀛楁5
+ private String extendN06; //鎵╁睍瀛楁6
+ private String storeCode; //浠撳簱缂栫爜
+ private String storeName; //浠撳簱鍚嶇О
+ private String verifyQty; //閫佹鏁伴噺
+ private String allowQty; //鍏佽鏀惰揣鏁伴噺
+ private String compromiseQty; //璁╂鏀惰揣鏁伴噺
+ private String refusedQty; //鎷掓敹鏁伴噺
+ private String rtoErpNo; //閫�璐у崟ERP鍗曞彿
+ private String rtoLineNo; //閫�璐ч」娆″彿
+ private String prodLength; //闀�
+ private String prodWidth; //瀹�
+ private String prodHeight; //楂�
+ private String buyerName; //閲囪喘鍛�
+ private String expectedDate; //璁㈠崟浜ゆ湡锛堜互鏃堕棿鎴冲舰寮忥級
+ private String answerDate; //鎺掑畾浜ゆ湡锛堜互鏃堕棿鎴冲舰寮忥級
+ private String currencyCode; //甯佸埆缂栫爜
+ private String currencyName; //甯佸埆鍚嶇О
+ private String sendVerifyStatus; //閫佹鐘舵�侊紙0:鏈�佹锛�1:閮ㄥ垎閫佹锛�2:鍏ㄩ儴閫佹 3鍏嶆锛�
+ private String resultFlag; //妫�楠岀粨鏋滄爣璇嗭紙0:鍏嶆 1:鍏ㄩ儴鍚堟牸锛�2:閮ㄥ垎鍚堟牸锛�3:鎷掓敹锛�
+ private String applyDeliveryQty; //鐢宠鍑鸿揣鏁伴噺
+ private String applyDeliveryValuationQty; //鐢宠鍑鸿揣璁′环鏁伴噺
+ private String batchNumber; //鎵瑰彿
+ private String receiveQty; //鏀惰揣鏁伴噺
+ private String storageQty; //鍏ュ簱鏁伴噺
+ private String returnQty; //閫�璐ф暟閲�
+ private String firstCheck; //浼樺厛妫�楠� 0 姝e父锛�1 浼樺厛锛�2 绱ф��
+ private String poLineNoShow; //骞冲彴灞曠ず閲囪喘鍗曢」娆�
+
+}
diff --git a/src/main/java/com/gs/xky/dto/XkyDetail.java b/src/main/java/com/gs/xky/dto/XkyDetail.java
new file mode 100644
index 0000000..7748342
--- /dev/null
+++ b/src/main/java/com/gs/xky/dto/XkyDetail.java
@@ -0,0 +1,63 @@
+package com.gs.xky.dto;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class XkyDetail {
+
+ private String deliveryNo; //閫佽揣鍗曞彿
+ private String innerVendorCode; //渚涘簲鍟嗙紪鐮�
+ private String innerVendorName; //渚涘簲鍟嗗悕绉�
+ private String deliveryType; //閫佽揣绫诲瀷 锛� 1 :鏅��(姝e父鍑鸿揣) 2锛氳ˉ璐�(鍏堝叆搴擄紝鍚庤ˉ鍑鸿揣鍗�) 3: 澶囧搧 4:鏍峰搧 5:VMI
+ private String deliveryDate; //閫佽揣鏃ユ湡锛堜互鏃堕棿鎴冲舰寮忥級
+ private String planArrivedDate; //棰勮閫佽揪鏃ユ湡锛堜互鏃堕棿鎴冲舰寮忥級
+ private String contactPersion; //閫佽揣鑱旂郴浜�
+ private String contactMobile; //閫佽揣浜鸿仈绯荤數璇�
+ private String addressCode; //鍐呴儴鏀惰揣鍦扮偣缂栫爜
+ private String addressInfo; //鏀惰揣鏄庣粏鍦板潃
+ private String deliveryCarNo; //閫佽揣杞︾墝鍙�
+ private String remark; //閫佽揣閫氱煡鍗曡韩澶囨敞
+ private String status; //閫佽揣鍗曠姸鎬� 1: 寰呯鏀讹紱 2: 绛炬敹涓紱 3: 宸插畬鎴愶紱 4: 鎾ゅ洖锛� 8: 宸蹭綔搴燂紱鐗堟湰2.0鏂板 5锛氱敵璇蜂腑锛� 7锛氬悓鎰忥紝 9锛氶儴鍒嗗悓鎰� 10: 宸插喕缁� 11: 鐢宠鎾ゅ洖
+ private String directDeliveryFlag; //鐩磋繍鏍囪瘑 1锛氭槸锛�0鍚�
+ private String logisticsStatus; //鐗╂祦鐘舵�� 0:鏈彂鍑猴紱1:宸插彂璐э紱2:宸插埌璐�
+ private String publishTime; //鏈�鍚庝竴娆″彂甯冩椂闂�
+ private String updateTime; //鏈�鍚庝竴娆℃洿鏂版椂闂�
+ private String profitCenterCode; //鍒╂鼎涓績(鎴栨敹璐ч儴闂�)缂栫爜
+ private String grossWeight; //鏁村崟姣涢噸
+ private String netWeight; //鏁村崟鍑�閲�
+ private String unitWeightCode; //閲嶉噺鍗曚綅缂栫爜
+ private String unitWeightName; //閲嶉噺鍗曚綅鍚嶇О
+ private String totalPackingQty; //鎬诲寘瑁呮暟
+ private String totalPackageQuantity; //鎵嬪伐濉啓锛屾�诲寘鏁�
+ private String transportTypeCode; //杩愯緭鏂瑰紡缂栫爜
+ private String transportTypeName; //杩愯緭鏂瑰紡鍚嶇О
+ private String packingWayCode; //鍖呰鏂瑰紡缂栫爜
+ private String packingWayName; //鍖呰鏂瑰紡鍚嶇О
+ private String extendN01; //鎵╁睍瀛楁1
+ private String extendN02; //鎵╁睍瀛楁2
+ private String extendN03; //鎵╁睍瀛楁3
+ private String platformExtendN04; //鎵╁睍瀛楁4
+ private String platformExtendN05; //鎵╁睍瀛楁5
+ private String platformExtendN06; //鎵╁睍瀛楁6
+ private String platformExtendN07; //鎵╁睍瀛楁7
+ private String platformExtendN08; //鎵╁睍瀛楁8
+ private String cargoDeliveryTime; //璐х墿閫佽揪鏃ユ湡锛堜互鏃堕棿鎴冲舰寮忥級
+ private String logisticsType; //鐗╂祦鏂瑰紡鏁板瓧褰㈠紡(1-渚涘簲鍟嗛�佽揣2-蹇��3-閲囪喘鏂硅嚜鎻�)
+ private String logisticsTypeShow; //鐗╂祦鏂瑰紡涓枃灞曠ず
+ private String logisticsNumber; //鐗╂祦鍗曞彿
+ private String firstCheck; //浼樺厛妫�楠� 0 姝e父锛�1 浼樺厛锛�2 绱ф��
+
+ // private List<CustomsData> customsData;//鎶ュ叧璧勬枡
+ private List<LineList> lineList;//閫佽揣鍗曡韩鍒楄〃
+
+}
diff --git a/src/main/java/com/gs/xky/entity/DeliveryNotice.java b/src/main/java/com/gs/xky/entity/DeliveryNotice.java
new file mode 100644
index 0000000..d6f10b0
--- /dev/null
+++ b/src/main/java/com/gs/xky/entity/DeliveryNotice.java
@@ -0,0 +1,189 @@
+package com.gs.xky.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 閫佽揣閫氱煡鍗曚富琛�
+ *
+ * @TableName DELIVERY_NOTICE
+ */
+@TableName(value = "DELIVERY_NOTICE")
+@Data
+@KeySequence(value = "SEQ_XKY", dbType = DbType.ORACLE)
+public class DeliveryNotice implements Serializable {
+ @TableField(exist = false)
+ private static final long serialVersionUID = 1L;
+ /**
+ * SEQ_XKY
+ */
+ @TableId
+ private Long id;
+ /**
+ * 閫佽揣鍗曞彿
+ */
+ private String deliveryNo;
+ /**
+ * 渚涘簲鍟嗙紪鐮�
+ */
+ private String innerVendorCode;
+ /**
+ * 渚涘簲鍟嗗悕绉�
+ */
+ private String innerVendorName;
+ /**
+ * 閫佽揣绫诲瀷锛�1-鏅�� 2-琛ヨ揣 3-澶囧搧 4-鏍峰搧 5-VMI
+ */
+ private String deliveryType;
+ /**
+ * 閫佽揣鏃ユ湡(鏃堕棿鎴�)
+ */
+ private String deliveryDate;
+ /**
+ * 棰勮閫佽揪鏃ユ湡(鏃堕棿鎴�)
+ */
+ private String planArrivedDate;
+ /**
+ * 閫佽揣鑱旂郴浜�
+ */
+ private String contactPersion;
+ /**
+ * 閫佽揣浜鸿仈绯荤數璇�
+ */
+ private String contactMobile;
+ /**
+ * 鍐呴儴鏀惰揣鍦扮偣缂栫爜
+ */
+ private String addressCode;
+ /**
+ * 鏀惰揣鏄庣粏鍦板潃
+ */
+ private String addressInfo;
+ /**
+ * 閫佽揣杞︾墝鍙�
+ */
+ private String deliveryCarNo;
+ /**
+ * 澶囨敞
+ */
+ private String remark;
+ /**
+ * 鐘舵��:1-寰呯鏀� 2-绛炬敹涓� 3-宸插畬鎴� 4-鎾ゅ洖 8-宸蹭綔搴� 5-鐢宠涓� 7-鍚屾剰 9-閮ㄥ垎鍚屾剰 10-宸插喕缁� 11-鐢宠鎾ゅ洖
+ */
+ private String status;
+ /**
+ * 鐩磋繍鏍囪瘑:1-鏄� 0-鍚�
+ */
+ private String directDeliveryFlag;
+ /**
+ * 鐗╂祦鐘舵��:0-鏈彂鍑� 1-宸插彂璐� 2-宸插埌璐�
+ */
+ private String logisticsStatus;
+ /**
+ * 鏈�鍚庝竴娆″彂甯冩椂闂�
+ */
+ private String publishTime;
+ /**
+ * 鏈�鍚庝竴娆℃洿鏂版椂闂�
+ */
+ private String updateTime;
+ /**
+ * 鍒╂鼎涓績缂栫爜
+ */
+ private String profitCenterCode;
+ /**
+ * 鏁村崟姣涢噸
+ */
+ private String grossWeight;
+ /**
+ * 鏁村崟鍑�閲�
+ */
+ private String netWeight;
+ /**
+ * 閲嶉噺鍗曚綅缂栫爜
+ */
+ private String unitWeightCode;
+ /**
+ * 閲嶉噺鍗曚綅鍚嶇О
+ */
+ private String unitWeightName;
+ /**
+ * 鎬诲寘瑁呮暟
+ */
+ private String totalPackingQty;
+ /**
+ * 鎵嬪伐濉啓鎬诲寘鏁�
+ */
+ private String totalPackageQuantity;
+ /**
+ * 杩愯緭鏂瑰紡缂栫爜
+ */
+ private String transportTypeCode;
+ /**
+ * 杩愯緭鏂瑰紡鍚嶇О
+ */
+ private String transportTypeName;
+ /**
+ * 鍖呰鏂瑰紡缂栫爜
+ */
+ private String packingWayCode;
+ /**
+ * 鍖呰鏂瑰紡鍚嶇О
+ */
+ private String packingWayName;
+ /**
+ * 鎵╁睍瀛楁1
+ */
+ private String extendN01;
+ /**
+ * 鎵╁睍瀛楁2
+ */
+ private String extendN02;
+ /**
+ * 鎵╁睍瀛楁3
+ */
+ private String extendN03;
+ /**
+ * 鎵╁睍瀛楁4
+ */
+ private String platformExtendN04;
+ /**
+ * 鎵╁睍瀛楁5
+ */
+ private String platformExtendN05;
+ /**
+ * 鎵╁睍瀛楁6
+ */
+ private String platformExtendN06;
+ /**
+ * 鎵╁睍瀛楁7
+ */
+ private String platformExtendN07;
+ /**
+ * 鎵╁睍瀛楁8
+ */
+ private String platformExtendN08;
+ /**
+ * 璐х墿閫佽揪鏃ユ湡(鏃堕棿鎴�)
+ */
+ private Date cargoDeliveryTime;
+ /**
+ * 鐗╂祦鏂瑰紡:1-渚涘簲鍟嗛�佽揣 2-蹇�� 3-閲囪喘鏂硅嚜鎻�
+ */
+ private String logisticsType;
+ /**
+ * 鐗╂祦鏂瑰紡涓枃灞曠ず
+ */
+ private String logisticsTypeShow;
+ /**
+ * 鐗╂祦鍗曞彿
+ */
+ private String logisticsNumber;
+ /**
+ * 浼樺厛妫�楠�:0-姝e父 1-浼樺厛 2-绱ф��
+ */
+ private String firstCheck;
+}
\ No newline at end of file
diff --git a/src/main/java/com/gs/xky/entity/DeliveryNoticeDetail.java b/src/main/java/com/gs/xky/entity/DeliveryNoticeDetail.java
new file mode 100644
index 0000000..880ae00
--- /dev/null
+++ b/src/main/java/com/gs/xky/entity/DeliveryNoticeDetail.java
@@ -0,0 +1,298 @@
+package com.gs.xky.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 閫佽揣閫氱煡鍗曟嵁鏄庣粏琛�
+ *
+ * @TableName DELIVERY_NOTICE_DETAIL
+ */
+@TableName(value = "DELIVERY_NOTICE_DETAIL")
+@Data
+@KeySequence(value = "SEQ_XKY", dbType = DbType.ORACLE)
+public class DeliveryNoticeDetail implements Serializable {
+ @TableField(exist = false)
+ private static final long serialVersionUID = 1L;
+ /**
+ * SEQ_XKY
+ */
+ @TableId
+ private Long id;
+
+ private Long pid;
+ /**
+ * 椤规鍙�
+ */
+ private String lineNo;
+ /**
+ * ERP閲囪喘鍗曞彿
+ */
+ private String poErpNo;
+ /**
+ * 閲囪喘鍗曠被鍨� 1锛氫竴鑸噰璐紱2锛氬澶栭噰璐�
+ */
+ private String purchaseType;
+ /**
+ * 閲囪喘鍗曢」娆�
+ */
+ private String poLineNo;
+ /**
+ * 浜у搧缂栫爜
+ */
+ private String productCode;
+ /**
+ * 浜у搧鍚嶇О
+ */
+ private String productName;
+ /**
+ * 浜у搧瑙勬牸
+ */
+ private String productScale;
+ /**
+ * 鍑鸿揣鍗曚綅缂栫爜
+ */
+ private String deliveryUnitCode;
+ /**
+ * 鍑鸿揣鍗曚綅鍚嶇О
+ */
+ private String deliveryUnitName;
+ /**
+ * 鍑鸿揣鏁伴噺
+ */
+ private String deliveryQty;
+ /**
+ * 鍑鸿揣璁′环鏁伴噺
+ */
+ private String deliveryValuationQty;
+ /**
+ * 鍑鸿揣浜у搧鍗曚环
+ */
+ private String price;
+ /**
+ * 鍑鸿揣浜у搧鍚◣鍗曚环
+ */
+ private String taxPrice;
+ /**
+ * 鎺掔▼鑷畾涔夐」鐨勫��
+ */
+ private String schDynamicValue;
+ /**
+ * 鎺掔▼鎵规鍙�
+ */
+ private String scheduleBatchNo;
+ /**
+ * 鎺掔▼鍗曞彿
+ */
+ private String scheduleOrderNo;
+ /**
+ * 瀵瑰簲鎺掔▼ItemDetail鐨勪富閿垪
+ */
+ private String scheduleDetailNo;
+ /**
+ * 鏄惁鎬ユ枡 0:鍚� ; 1锛氭槸
+ */
+ private String urgentFlag;
+ /**
+ * 鍘熷鍗曟嵁绫诲瀷1锛氳鍗曪紱2锛氭帓绋�; 3:鎸夐��璐� 4:鎸夊鍝�
+ */
+ private String srcBillType;
+ /**
+ * 閲囪喘椤规鐨勯噰璐鏄庝俊鎭�
+ */
+ private String purchaseDesc;
+ /**
+ * 鍗曟嵁澶囨敞锛宻rcBillType=1 瀵瑰簲閲囪喘璁㈠崟鍗曡韩鐨勫娉�; srcBillType=2 瀵瑰簲鎺掔▼椤规鐨勫娉�
+ */
+ private String srcOrderLineRemark;
+ /**
+ * 鐘舵�侊紙1:寰呯鏀讹紱2:绛炬敹涓紱3: 宸插畬鎴愶紱锛�
+ */
+ private String status;
+ /**
+ * 鏀惰揣鐘舵�侊紙0-鏈敹璐�;1-閮ㄥ垎鏀惰揣;2-鍏ㄩ儴鏀惰揣锛�
+ */
+ private String receiveStatus;
+ /**
+ * 鏁村崟姣涢噸
+ */
+ private String grossWeight;
+ /**
+ * 鏁村崟鍑�閲�
+ */
+ private String netWeight;
+ /**
+ * 閲嶉噺鍗曚綅缂栫爜
+ */
+ private String unitWeightCode;
+ /**
+ * 閲嶉噺鍗曚綅鍚嶇О
+ */
+ private String unitWeightName;
+ /**
+ * 鍖呰鏁�
+ */
+ private String packingQty;
+ /**
+ * 鍝佺墝
+ */
+ private String brandName;
+ /**
+ * 鍏跺畠璇存槑
+ */
+ private String otherExtend;
+ /**
+ * 鍘熶骇鍥界紪鐮�
+ */
+ private String originalCountryCode;
+ /**
+ * 鍘熶骇鍥藉悕绉�
+ */
+ private String originalCountryName;
+ /**
+ * 閫佽揣閫氱煡鍗曡韩澶囨敞
+ */
+ private String remark;
+ /**
+ * 鎵╁睍瀛楁1
+ */
+ private String extendN01;
+ /**
+ * 鎵╁睍瀛楁2
+ */
+ private String extendN02;
+ /**
+ * 鎵╁睍瀛楁3
+ */
+ private String extendN03;
+ /**
+ * 鎵╁睍瀛楁4
+ */
+ private String extendN04;
+ /**
+ * 鎵╁睍瀛楁5
+ */
+ private String extendN05;
+ /**
+ * 鎵╁睍瀛楁6
+ */
+ private String extendN06;
+ /**
+ * 浠撳簱缂栫爜
+ */
+ private String storeCode;
+ /**
+ * 浠撳簱鍚嶇О
+ */
+ private String storeName;
+ /**
+ * 閫佹鏁伴噺
+ */
+ private String verifyQty;
+ /**
+ * 鍏佽鏀惰揣鏁伴噺
+ */
+ private String allowQty;
+ /**
+ * 璁╂鏀惰揣鏁伴噺
+ */
+ private String compromiseQty;
+ /**
+ * 鎷掓敹鏁伴噺
+ */
+ private String refusedQty;
+ /**
+ * 閫�璐у崟ERP鍗曞彿
+ */
+ private String rtoErpNo;
+ /**
+ * 閫�璐ч」娆″彿
+ */
+ private String rtoLineNo;
+ /**
+ * 闀�
+ */
+ private String prodLength;
+ /**
+ * 瀹�
+ */
+ private String prodWidth;
+ /**
+ * 楂�
+ */
+ private String prodHeight;
+ /**
+ * 閲囪喘鍛�
+ */
+ private String buyerName;
+ /**
+ * 璁㈠崟浜ゆ湡锛堜互鏃堕棿鎴冲舰寮忥級
+ */
+ private String expectedDate;
+ /**
+ * 鎺掑畾浜ゆ湡锛堜互鏃堕棿鎴冲舰寮忥級
+ */
+ private String answerDate;
+ /**
+ * 甯佸埆缂栫爜
+ */
+ private String currencyCode;
+ /**
+ * 甯佸埆鍚嶇О
+ */
+ private String currencyName;
+ /**
+ * 閫佹鐘舵�侊紙0:鏈�佹锛�1:閮ㄥ垎閫佹锛�2:鍏ㄩ儴閫佹 3鍏嶆锛�
+ */
+ private String sendVerifyStatus;
+ /**
+ * 妫�楠岀粨鏋滄爣璇嗭紙0:鍏嶆 1:鍏ㄩ儴鍚堟牸锛�2:閮ㄥ垎鍚堟牸锛�3:鎷掓敹锛�
+ */
+ private String resultFlag;
+ /**
+ * 鐢宠鍑鸿揣鏁伴噺
+ */
+ private String applyDeliveryQty;
+ /**
+ * 鐢宠鍑鸿揣璁′环鏁伴噺
+ */
+ private String applyDeliveryValuationQty;
+ /**
+ * 鎵瑰彿
+ */
+ private String batchNumber;
+ /**
+ * 鏀惰揣鏁伴噺
+ */
+ private String receiveQty;
+ /**
+ * 鍏ュ簱鏁伴噺
+ */
+ private String storageQty;
+ /**
+ * 閫�璐ф暟閲�
+ */
+ private String returnQty;
+ /**
+ * 浼樺厛妫�楠� 0 姝e父锛�1 浼樺厛锛�2 绱ф��
+ */
+ private String firstCheck;
+ /**
+ * 骞冲彴灞曠ず閲囪喘鍗曢」娆�
+ */
+ private String poLineNoShow;
+ /**
+ * 澶囨敞
+ */
+ private String remarks;
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private String createTime;
+ /**
+ * 鏇存柊鏃堕棿
+ */
+ private String updateTime;
+}
\ No newline at end of file
diff --git a/src/main/java/com/gs/xky/entity/TblBarcodeInformation.java b/src/main/java/com/gs/xky/entity/TblBarcodeInformation.java
new file mode 100644
index 0000000..d7dd5c7
--- /dev/null
+++ b/src/main/java/com/gs/xky/entity/TblBarcodeInformation.java
@@ -0,0 +1,113 @@
+package com.gs.xky.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 鏉$爜淇℃伅琛�
+ *
+ * @TableName TBL_BARCODE_INFORMATION
+ */
+@TableName(value = "TBL_BARCODE_INFORMATION")
+@Data
+@KeySequence(value = "SEQ_XKY", dbType = DbType.ORACLE)
+public class TblBarcodeInformation implements Serializable {
+ @TableField(exist = false)
+ private static final long serialVersionUID = 1L;
+ /**
+ * SEQ_XKY
+ */
+ @TableId
+ private Long id;
+ /**
+ * 閫佽揣鍗曞彿
+ */
+ private String deliveryNo;
+ /**
+ * 浜у搧缂栫爜
+ */
+ private String productCode;
+ /**
+ * 灏忓寘鏉$爜
+ */
+ private String smallBarcode;
+ /**
+ * 澶у寘鏉$爜
+ */
+ private String bigBarcode;
+ /**
+ * 澶栫鏉$爜
+ */
+ private String outerBarcode;
+ /**
+ * 褰撳墠灏忓寘鏉$爜鍖呭惈鐨勬暟閲�
+ */
+ private String includeQty;
+ /**
+ * 灏忓寘鏉$爜-闀�
+ */
+ private String smallPackageLength;
+ /**
+ * 灏忓寘鏉$爜-瀹�
+ */
+ private String smallPackageWidth;
+ /**
+ * 灏忓寘鏉$爜-楂�
+ */
+ private String smallPackageHeight;
+ /**
+ * 澶у寘鏉$爜-闀�
+ */
+ private String bigPackageLength;
+ /**
+ * 澶у寘鏉$爜-瀹�
+ */
+ private String bigPackageWidth;
+ /**
+ * 澶у寘鏉$爜-楂�
+ */
+ private String bigPackageHeight;
+ /**
+ * 澶栫鏉$爜-闀�
+ */
+ private String outerPackageLength;
+ /**
+ * 澶栫鏉$爜-瀹�
+ */
+ private String outerPackageWidth;
+ /**
+ * 澶栫鏉$爜-楂�
+ */
+ private String outerPackageHeight;
+ /**
+ * 褰撳墠灏忓寘鏉$爜鐨勬祦姘寸爜
+ */
+ private String smallPackageSn;
+ /**
+ * 褰撳墠澶у寘鏉$爜鐨勬祦姘寸爜
+ */
+ private String bigPackageSn;
+ /**
+ * 褰撳墠澶栫鏉$爜鐨勬祦姘寸爜
+ */
+ private String outPackageSn;
+ /**
+ * 鏉$爜瑙勫垯涓搴旂殑鍔ㄦ�佸瓧娈电殑鍊�
+ */
+ private String dynamicData;
+ /**
+ * 鍖呰灞傜骇
+ */
+ private String packLevel;
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private Date createTime;
+ /**
+ * 鏇存柊鏃堕棿
+ */
+ private Date updateTime;
+}
\ No newline at end of file
diff --git a/src/main/java/com/gs/xky/mapper/DeliveryNoticeDetailMapper.java b/src/main/java/com/gs/xky/mapper/DeliveryNoticeDetailMapper.java
new file mode 100644
index 0000000..c07110b
--- /dev/null
+++ b/src/main/java/com/gs/xky/mapper/DeliveryNoticeDetailMapper.java
@@ -0,0 +1,18 @@
+package com.gs.xky.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gs.xky.entity.DeliveryNoticeDetail;
+
+/**
+ * @author 28567
+ * @description 閽堝琛ㄣ�怐ELIVERY_NOTICE_DETAIL(閫佽揣閫氱煡鍗曟嵁鏄庣粏琛�)銆戠殑鏁版嵁搴撴搷浣淢apper
+ * @createDate 2025-02-11 22:30:01
+ * @Entity com.gs.xky.entity.DeliveryNoticeDetail
+ */
+public interface DeliveryNoticeDetailMapper extends BaseMapper<DeliveryNoticeDetail> {
+
+}
+
+
+
+
diff --git a/src/main/java/com/gs/xky/mapper/DeliveryNoticeMapper.java b/src/main/java/com/gs/xky/mapper/DeliveryNoticeMapper.java
new file mode 100644
index 0000000..792eeb7
--- /dev/null
+++ b/src/main/java/com/gs/xky/mapper/DeliveryNoticeMapper.java
@@ -0,0 +1,19 @@
+package com.gs.xky.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gs.xky.entity.DeliveryNotice;
+
+/**
+ * @author 28567
+ * @description 閽堝琛ㄣ�怐ELIVERY_NOTICE(閫佽揣閫氱煡鍗曚富琛�)銆戠殑鏁版嵁搴撴搷浣淢apper
+ * @createDate 2025-02-11 20:55:22
+ * @Entity com.gs.xky.entity.DeliveryNotice
+ */
+public interface DeliveryNoticeMapper extends BaseMapper<DeliveryNotice> {
+
+ long getNextVal();
+}
+
+
+
+
diff --git a/src/main/java/com/gs/xky/mapper/TblBarcodeInformationMapper.java b/src/main/java/com/gs/xky/mapper/TblBarcodeInformationMapper.java
new file mode 100644
index 0000000..4a310c4
--- /dev/null
+++ b/src/main/java/com/gs/xky/mapper/TblBarcodeInformationMapper.java
@@ -0,0 +1,18 @@
+package com.gs.xky.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gs.xky.entity.TblBarcodeInformation;
+
+/**
+ * @author 28567
+ * @description 閽堝琛ㄣ�怲BL_BARCODE_INFORMATION(鏉$爜淇℃伅琛�)銆戠殑鏁版嵁搴撴搷浣淢apper
+ * @createDate 2025-02-12 12:52:06
+ * @Entity com.gs.xky.entity.TblBarcodeInformation
+ */
+public interface TblBarcodeInformationMapper extends BaseMapper<TblBarcodeInformation> {
+
+}
+
+
+
+
diff --git a/src/main/java/com/gs/xky/service/DeliveryNoticeDetailService.java b/src/main/java/com/gs/xky/service/DeliveryNoticeDetailService.java
new file mode 100644
index 0000000..3bc2830
--- /dev/null
+++ b/src/main/java/com/gs/xky/service/DeliveryNoticeDetailService.java
@@ -0,0 +1,13 @@
+package com.gs.xky.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gs.xky.entity.DeliveryNoticeDetail;
+
+/**
+ * @author 28567
+ * @description 閽堝琛ㄣ�怐ELIVERY_NOTICE_DETAIL(閫佽揣閫氱煡鍗曟嵁鏄庣粏琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice
+ * @createDate 2025-02-11 22:30:01
+ */
+public interface DeliveryNoticeDetailService extends IService<DeliveryNoticeDetail> {
+
+}
diff --git a/src/main/java/com/gs/xky/service/DeliveryNoticeService.java b/src/main/java/com/gs/xky/service/DeliveryNoticeService.java
new file mode 100644
index 0000000..c6dc124
--- /dev/null
+++ b/src/main/java/com/gs/xky/service/DeliveryNoticeService.java
@@ -0,0 +1,17 @@
+package com.gs.xky.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gs.xky.dto.XkyDetail;
+import com.gs.xky.entity.DeliveryNotice;
+
+/**
+ * @author 28567
+ * @description 閽堝琛ㄣ�怐ELIVERY_NOTICE(閫佽揣閫氱煡鍗曚富琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice
+ * @createDate 2025-02-11 20:55:22
+ */
+public interface DeliveryNoticeService extends IService<DeliveryNotice> {
+
+ boolean saveDeliveryNotice(XkyDetail xkyDetail);
+
+
+}
diff --git a/src/main/java/com/gs/xky/service/Impl/DeliveryNoticeDetailServiceImpl.java b/src/main/java/com/gs/xky/service/Impl/DeliveryNoticeDetailServiceImpl.java
new file mode 100644
index 0000000..258a5df
--- /dev/null
+++ b/src/main/java/com/gs/xky/service/Impl/DeliveryNoticeDetailServiceImpl.java
@@ -0,0 +1,22 @@
+package com.gs.xky.service.Impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gs.xky.entity.DeliveryNoticeDetail;
+import com.gs.xky.mapper.DeliveryNoticeDetailMapper;
+import com.gs.xky.service.DeliveryNoticeDetailService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author 28567
+ * @description 閽堝琛ㄣ�怐ELIVERY_NOTICE_DETAIL(閫佽揣閫氱煡鍗曟嵁鏄庣粏琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+ * @createDate 2025-02-11 22:30:01
+ */
+@Service
+public class DeliveryNoticeDetailServiceImpl extends ServiceImpl<DeliveryNoticeDetailMapper, DeliveryNoticeDetail>
+ implements DeliveryNoticeDetailService {
+
+}
+
+
+
+
diff --git a/src/main/java/com/gs/xky/service/Impl/DeliveryNoticeServiceImpl.java b/src/main/java/com/gs/xky/service/Impl/DeliveryNoticeServiceImpl.java
new file mode 100644
index 0000000..dbe82a4
--- /dev/null
+++ b/src/main/java/com/gs/xky/service/Impl/DeliveryNoticeServiceImpl.java
@@ -0,0 +1,77 @@
+package com.gs.xky.service.Impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gs.xky.dto.LineList;
+import com.gs.xky.dto.XkyDetail;
+import com.gs.xky.entity.DeliveryNotice;
+import com.gs.xky.entity.DeliveryNoticeDetail;
+import com.gs.xky.mapper.DeliveryNoticeMapper;
+import com.gs.xky.service.DeliveryNoticeDetailService;
+import com.gs.xky.service.DeliveryNoticeService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 28567
+ * @description 閽堝琛ㄣ�怐ELIVERY_NOTICE(閫佽揣閫氱煡鍗曚富琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+ * @createDate 2025-02-11 20:55:22
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+@RequiredArgsConstructor
+public class DeliveryNoticeServiceImpl extends ServiceImpl<DeliveryNoticeMapper, DeliveryNotice>
+ implements DeliveryNoticeService {
+
+ private final DeliveryNoticeDetailService detailService;
+
+
+ @Override
+ public boolean saveDeliveryNotice(XkyDetail xkyDetail) {
+
+ LambdaQueryWrapper<DeliveryNotice> wrapper = new LambdaQueryWrapper<>();
+
+ wrapper.eq(DeliveryNotice::getDeliveryNo, xkyDetail.getDeliveryNo());
+
+ long count = count(wrapper);
+
+ if (count > 0) {
+ LambdaUpdateWrapper<DeliveryNotice> updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper.eq(DeliveryNotice::getDeliveryNo, xkyDetail.getDeliveryNo());
+ remove(updateWrapper);
+ }
+
+ DeliveryNotice deliveryNotice = new DeliveryNotice();
+ BeanUtil.copyProperties(xkyDetail, deliveryNotice);
+
+ long id = baseMapper.getNextVal();
+ deliveryNotice.setId(id);
+
+ List<LineList> lineList = xkyDetail.getLineList();
+
+ if (CollUtil.isEmpty(lineList)) {
+ return true;
+ }
+
+ List<DeliveryNoticeDetail> noticeDetails = new ArrayList<>();
+ for (LineList list : lineList) {
+ DeliveryNoticeDetail detail = new DeliveryNoticeDetail();
+ BeanUtil.copyProperties(list, detail);
+ detail.setPid(id);
+ noticeDetails.add(detail);
+ }
+
+ return save(deliveryNotice) && detailService.saveBatch(noticeDetails);
+ }
+}
+
+
+
+
diff --git a/src/main/java/com/gs/xky/service/Impl/TblBarcodeInformationServiceImpl.java b/src/main/java/com/gs/xky/service/Impl/TblBarcodeInformationServiceImpl.java
new file mode 100644
index 0000000..717955d
--- /dev/null
+++ b/src/main/java/com/gs/xky/service/Impl/TblBarcodeInformationServiceImpl.java
@@ -0,0 +1,61 @@
+package com.gs.xky.service.Impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gs.xky.dto.BarcodeDeliveryNo;
+import com.gs.xky.entity.TblBarcodeInformation;
+import com.gs.xky.mapper.TblBarcodeInformationMapper;
+import com.gs.xky.service.TblBarcodeInformationService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 28567
+ * @description 閽堝琛ㄣ�怲BL_BARCODE_INFORMATION(鏉$爜淇℃伅琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+ * @createDate 2025-02-12 12:52:06
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+@RequiredArgsConstructor
+public class TblBarcodeInformationServiceImpl extends ServiceImpl<TblBarcodeInformationMapper, TblBarcodeInformation>
+ implements TblBarcodeInformationService {
+
+
+ @Override
+ public boolean SaveBarcodeInformation(List<BarcodeDeliveryNo> barcodeList, String deliveryNo) {
+
+ if (CollUtil.isEmpty(barcodeList)) {
+ return false;
+ }
+
+ List<TblBarcodeInformation> tbBarcodeInformationList = new ArrayList<TblBarcodeInformation>();
+
+ LambdaUpdateWrapper<TblBarcodeInformation> updateWrapper = new LambdaUpdateWrapper<>();
+
+ for (BarcodeDeliveryNo barcodeDeliveryNo : barcodeList) {
+
+ updateWrapper.clear();
+ updateWrapper.eq(TblBarcodeInformation::getSmallBarcode, barcodeDeliveryNo.getSmallBarcode());
+ remove(updateWrapper);
+
+ TblBarcodeInformation barcodeInformation = new TblBarcodeInformation();
+ BeanUtil.copyProperties(barcodeDeliveryNo, barcodeInformation);
+
+ barcodeInformation.setDeliveryNo(deliveryNo);
+
+ tbBarcodeInformationList.add(barcodeInformation);
+ }
+
+ return saveBatch(tbBarcodeInformationList);
+ }
+}
+
+
+
+
diff --git a/src/main/java/com/gs/xky/service/TblBarcodeInformationService.java b/src/main/java/com/gs/xky/service/TblBarcodeInformationService.java
new file mode 100644
index 0000000..d8f38c4
--- /dev/null
+++ b/src/main/java/com/gs/xky/service/TblBarcodeInformationService.java
@@ -0,0 +1,18 @@
+package com.gs.xky.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gs.xky.dto.BarcodeDeliveryNo;
+import com.gs.xky.entity.TblBarcodeInformation;
+
+import java.util.List;
+
+/**
+ * @author 28567
+ * @description 閽堝琛ㄣ�怲BL_BARCODE_INFORMATION(鏉$爜淇℃伅琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice
+ * @createDate 2025-02-12 12:52:06
+ */
+public interface TblBarcodeInformationService extends IService<TblBarcodeInformation> {
+
+ boolean SaveBarcodeInformation(List<BarcodeDeliveryNo> barcodeList, String deliveryNo);
+
+}
diff --git a/src/main/java/com/gs/xky/service/XkyService.java b/src/main/java/com/gs/xky/service/XkyService.java
new file mode 100644
index 0000000..7a26aea
--- /dev/null
+++ b/src/main/java/com/gs/xky/service/XkyService.java
@@ -0,0 +1,110 @@
+package com.gs.xky.service;
+
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.gs.xky.config.ApiResponse;
+import com.gs.xky.config.BodyParam;
+import com.gs.xky.config.DataAcquisitionConfiguration;
+import com.gs.xky.config.XkyCommonParam;
+import com.gs.xky.dto.BarcodeDeliveryNo;
+import com.gs.xky.dto.XkyDetail;
+import com.gs.xky.dto.XkyEntity;
+import com.gs.xky.entity.DeliveryNotice;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.IOException;
+import java.util.List;
+
+@Service
+@Transactional(rollbackFor = Exception.class)
+@RequiredArgsConstructor
+public class XkyService {
+
+ private final ApiService apiService;
+
+
+ private final DeliveryNoticeService deliveryNoticeService;
+
+ private final TblBarcodeInformationService barcodeInformationService;
+
+ public void GetSaveDetail() throws IOException {
+ long currentTimeMillis = System.currentTimeMillis();
+
+ XkyCommonParam param = XkyCommonParam.GetInit();
+
+ // 璁$畻浜斿垎閽熷墠鐨勬椂闂存埑
+ long startDate = currentTimeMillis - (65 * 60 * 1000); // 5 鍒嗛挓 = 5 * 60 * 1000 姣
+
+ // 鍒涘缓 BodyParam 瀵硅薄骞惰祴鍊�
+ BodyParam bodyParam = new BodyParam();
+ bodyParam.setStartDate(startDate);
+ bodyParam.setEndDate(currentTimeMillis);
+ bodyParam.setErpCode(DataAcquisitionConfiguration.TEST_ERP_CODE);
+ bodyParam.setStatus(new int[]{1});
+ bodyParam.setLogisticsStatus(2);
+
+ param.setBody(bodyParam);
+
+ ApiResponse<XkyEntity> noList = apiService.sendListRequest(param, XkyEntity.class, "https://openapi.xiekeyun.com/delivery/getNoList.json");
+
+// List<String> deliveryNoList = noList.getDataList().stream().map(XkyEntity::getDeliveryNo).collect(Collectors.toList());
+
+ List<XkyEntity> deliveryNoList = noList.getDataList();
+
+ LambdaUpdateWrapper<DeliveryNotice> deliveryNoticeWrapper = new LambdaUpdateWrapper<>();
+
+ deliveryNoList.forEach(deliveryNo -> {
+ try {
+
+ if ("4".equals(deliveryNo.getStatus()) || "8".equals(deliveryNo.getStatus())) {
+ deliveryNoticeWrapper.clear();
+ deliveryNoticeWrapper.eq(DeliveryNotice::getDeliveryNo, deliveryNo.getDeliveryNo());
+ deliveryNoticeService.remove(deliveryNoticeWrapper);
+ }
+
+ XkyDetail detail = getDetail(deliveryNo.getDeliveryNo());
+ deliveryNoticeService.saveDeliveryNotice(detail);
+ List<BarcodeDeliveryNo> barcodeDeliveryNos = GetBarcodeInformation(deliveryNo.getDeliveryNo());
+ barcodeInformationService.SaveBarcodeInformation(barcodeDeliveryNos, deliveryNo.getDeliveryNo());
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ });
+ }
+
+ private XkyDetail getDetail(String deliveryNo) throws IOException {
+ XkyCommonParam param = XkyCommonParam.GetInit();
+
+ // 鍒涘缓 BodyParam 瀵硅薄骞惰祴鍊�
+ BodyParam bodyParam = new BodyParam();
+
+ bodyParam.setErpCode(DataAcquisitionConfiguration.TEST_ERP_CODE);
+ bodyParam.setDeliveryNo(deliveryNo);
+
+
+ param.setBody(bodyParam);
+
+ ApiResponse<XkyDetail> noList = apiService.sendListRequest(param, XkyDetail.class, "https://openapi.xiekeyun.com/delivery/getDetail.json");
+
+ return noList.getData();
+ }
+
+ private List<BarcodeDeliveryNo> GetBarcodeInformation(String deliveryNo) throws IOException {
+ XkyCommonParam param = XkyCommonParam.GetInit();
+
+ // 鍒涘缓 BodyParam 瀵硅薄骞惰祴鍊�
+ BodyParam bodyParam = new BodyParam();
+
+ bodyParam.setErpCode(DataAcquisitionConfiguration.TEST_ERP_CODE);
+ bodyParam.setDeliveryNo(deliveryNo);
+
+ param.setBody(bodyParam);
+
+
+ ApiResponse<BarcodeDeliveryNo> noList = apiService.sendListRequest(param, BarcodeDeliveryNo.class, "https://openapi.xiekeyun.com/barcode/byDeliveryNo.json");
+
+ return noList.getDataList();
+ }
+}
diff --git a/src/main/resources/mapper/DeliveryNoticeDetailMapper.xml b/src/main/resources/mapper/DeliveryNoticeDetailMapper.xml
new file mode 100644
index 0000000..05a237d
--- /dev/null
+++ b/src/main/resources/mapper/DeliveryNoticeDetailMapper.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gs.xky.mapper.DeliveryNoticeDetailMapper">
+
+
+</mapper>
diff --git a/src/main/resources/mapper/DeliveryNoticeMapper.xml b/src/main/resources/mapper/DeliveryNoticeMapper.xml
new file mode 100644
index 0000000..a7d8ba7
--- /dev/null
+++ b/src/main/resources/mapper/DeliveryNoticeMapper.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gs.xky.mapper.DeliveryNoticeMapper">
+
+ <select id="getNextVal" resultType="java.lang.Long">
+ SELECT SEQ_XKY.NEXTVAL
+ FROM DUAL
+ </select>
+</mapper>
diff --git a/src/main/resources/mapper/TblBarcodeInformationMapper.xml b/src/main/resources/mapper/TblBarcodeInformationMapper.xml
new file mode 100644
index 0000000..10b60b4
--- /dev/null
+++ b/src/main/resources/mapper/TblBarcodeInformationMapper.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gs.xky.mapper.TblBarcodeInformationMapper">
+
+</mapper>
diff --git a/src/test/java/com/gs/xky/XkyApplicationTests.java b/src/test/java/com/gs/xky/XkyApplicationTests.java
index a127cb1..7344742 100644
--- a/src/test/java/com/gs/xky/XkyApplicationTests.java
+++ b/src/test/java/com/gs/xky/XkyApplicationTests.java
@@ -1,9 +1,6 @@
package com.gs.xky;
-import com.alibaba.fastjson.JSON;
-import com.gs.xky.config.*;
-import com.gs.xky.dto.XkyEntity;
-import com.gs.xky.service.ApiService;
+import com.gs.xky.service.XkyService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@@ -15,45 +12,12 @@
@Autowired
- private ApiService apiService;
+ private XkyService xkyService;
@Test
void contextLoads() throws IOException {
- long currentTimeMillis = System.currentTimeMillis();
-
- ApiCommonParam apiParam = new ApiCommonParam();
- apiParam.setAppKey(DataAcquisitionConfiguration.TEST_APP_KEY);//鍙戞惡瀹簯鎻愪緵鐨刟ppKey
- apiParam.setVersion("1.0");//鎺ュ彛鐗堟湰
- apiParam.setOperateCompanyCode(DataAcquisitionConfiguration.TEST_COMPANY_CODE);//鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮�
- apiParam.setOwnerCompanyCode(DataAcquisitionConfiguration.TEST_COMPANY_CODE);//鏁版嵁鎵�灞炲叕鍙哥紪鐮�,闈為泦鍥㈠叕鍙搁粯璁よ祴鍊间负鎿嶄綔鍏徃
- apiParam.setTimestamps(currentTimeMillis / 1000);//褰撳墠鏃堕棿瀵瑰簲鐨勬椂闂存埑锛堢鏁帮級
-
- String appSecret = DataAcquisitionConfiguration.TEST_APP_SECRET;//鎼哄浜戞彁渚涚殑appSecret
-
- String sign = SignUtils.buildCurrentSign(JSON.toJSONString(apiParam), appSecret);
- apiParam.setSign(sign);
-
-
- // 璁$畻浜斿垎閽熷墠鐨勬椂闂存埑
- long startDate = currentTimeMillis - (65 * 60 * 1000); // 5 鍒嗛挓 = 5 * 60 * 1000 姣
-
- // 鍒涘缓 BodyParam 瀵硅薄骞惰祴鍊�
- BodyParam bodyParam = new BodyParam();
- bodyParam.setStartDate(startDate);
- bodyParam.setEndDate(currentTimeMillis);
- bodyParam.setErpCode("Z106");
- bodyParam.setStatus(new int[]{1});
- bodyParam.setLogisticsStatus(2);
-
- XkyCommonParam param = new XkyCommonParam();
- param.setCommonParam(apiParam);
- param.setBody(bodyParam);
-
-
- ApiResponse<XkyEntity> xkyEntityApiResponse = apiService.sendListRequest(param, XkyEntity.class, "https://openapi.xiekeyun.com/delivery/getNoList.json");
-
- System.out.println(JSON.toJSONString(xkyEntityApiResponse));
+ xkyService.GetSaveDetail();
}
-}
+}
\ No newline at end of file
--
Gitblit v1.9.3