diff --git a/classes/artifacts/scfs_api_core_jar/scfs-api-core.jar b/classes/artifacts/scfs_api_core_jar/scfs-api-core.jar new file mode 100644 index 0000000..c585b2b Binary files /dev/null and b/classes/artifacts/scfs_api_core_jar/scfs-api-core.jar differ diff --git a/classes/artifacts/scfs_api_service_jar/scfs-api-service.jar b/classes/artifacts/scfs_api_service_jar/scfs-api-service.jar new file mode 100644 index 0000000..33ef4bf Binary files /dev/null and b/classes/artifacts/scfs_api_service_jar/scfs-api-service.jar differ diff --git a/classes/artifacts/scfs_api_sm_jar/scfs-api-sm.jar b/classes/artifacts/scfs_api_sm_jar/scfs-api-sm.jar new file mode 100644 index 0000000..1ae3920 Binary files /dev/null and b/classes/artifacts/scfs_api_sm_jar/scfs-api-sm.jar differ diff --git a/classes/artifacts/scfs_api_spring_boot_starter_jar/scfs-api-spring-boot-starter.jar b/classes/artifacts/scfs_api_spring_boot_starter_jar/scfs-api-spring-boot-starter.jar new file mode 100644 index 0000000..fc43951 Binary files /dev/null and b/classes/artifacts/scfs_api_spring_boot_starter_jar/scfs-api-spring-boot-starter.jar differ diff --git a/scfs-api-core/src/main/java/com/czcb/scfs/api/core/ApiClient.java b/scfs-api-core/src/main/java/com/czcb/scfs/api/core/ApiClient.java index 7cee21c..0b22a43 100644 --- a/scfs-api-core/src/main/java/com/czcb/scfs/api/core/ApiClient.java +++ b/scfs-api-core/src/main/java/com/czcb/scfs/api/core/ApiClient.java @@ -101,7 +101,7 @@ public interface ApiClient { String bodyCiphertext = requestJson.get("body").getAsString(); // 对称解密后body 明文 String bodyPlain = getProfile().getPrivacy().getSecretCipher().decrypt(Strings.toBytes(secretKeyPlain), Strings.toBytes(bodyCiphertext)); - // T支持返回String + // 支持返回String return requestClass == String.class ? requestClass.cast(bodyPlain) : Json.fromJson(bodyPlain, requestClass); } diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/InventoryOrderService.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/InventoryOrderService.java new file mode 100644 index 0000000..8dc86ab --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/InventoryOrderService.java @@ -0,0 +1,137 @@ +package com.czcb.scfs.api.service.v2.inventory; + +import com.czcb.scfs.api.core.ApiClient; +import com.czcb.scfs.api.core.http.HttpHeaders; +import com.czcb.scfs.api.core.http.HttpResponse; +import com.czcb.scfs.api.service.v2.inventory.model.*; + +import static com.czcb.scfs.api.core.Constants.API_VERSION; +import static com.czcb.scfs.api.core.Constants.V_2; + +public class InventoryOrderService { + + private final ApiClient apiClient; + + public InventoryOrderService(ApiClient apiClient) { + this.apiClient = apiClient; + } + + /** + * 312807-库融订单登记 + */ + public InventoryOrderAddResponse inventoryOrderAdd(InventoryOrderAddRequest request) { + String url = "/inventory-order/add"; + HttpResponse httpResponse = apiClient.post(url, HttpHeaders.apiVersionV2(), + request.toJsonRequest(), InventoryOrderAddResponse.class); + return httpResponse.getServiceResponse(); + } + + /** + * 312808-库融订单库存核验 + */ + public InventoryOrderCheckResponse inventoryOrderCheck(InventoryOrderCheckRequest request) { + String url = "/inventory-order/check"; + HttpResponse httpResponse = apiClient.post(url, HttpHeaders.apiVersionV2(), + request.toJsonRequest(), InventoryOrderCheckResponse.class); + return httpResponse.getServiceResponse(); + } + + /** + * 312809-库融订单融资人维护 + */ + public InventoryOrderFinanceResponse inventoryOrderFinance(InventoryOrderFinanceRequest request) { + String url = "/inventory-order/finance"; + HttpResponse httpResponse = apiClient.post(url, HttpHeaders.apiVersionV2(), + request.toJsonRequest(), InventoryOrderFinanceResponse.class); + return httpResponse.getServiceResponse(); + } + + /** + * 312810-库融订单出库 + */ + public InventoryOrderStoreOutResponse inventoryOrderStoreOut(InventoryOrderStoreOutRequest request) { + String url = "/inventory-order/store/out"; + HttpResponse httpResponse = apiClient.post(url, HttpHeaders.apiVersionV2(), + request.toJsonRequest(), InventoryOrderStoreOutResponse.class); + return httpResponse.getServiceResponse(); + } + + /** + * 312811-库融订单库存锁定/解锁 + */ + public InventoryOrderStoreLockResponse inventoryOrderStoreLock(InventoryOrderStoreLockRequest request) { + String url = "/inventory-order/store/lock"; + HttpResponse httpResponse = apiClient.post(url, HttpHeaders.apiVersionV2(), + request.toJsonRequest(), InventoryOrderStoreLockResponse.class); + return httpResponse.getServiceResponse(); + } + + /** + * 312812-库融订单融资支付 + * + * @author H.T + * @since 2026/7/14 + */ + public InventoryOrderCreditPayResponse pay(InventoryOrderCreditPayRequest request) { + String url = "/inventory-order/pay"; + HttpHeaders headers = new HttpHeaders(); + headers.addHeader(API_VERSION, V_2); + HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), InventoryOrderCreditPayResponse.class); + return httpResponse.getServiceResponse(); + } + + /** + * 312813-库融订单贷款还款 + * + * @author H.T + * @since 2026/7/14 + */ + public InventoryOrderCreditRepayResponse repay(InventoryOrderCreditRepayRequest request) { + String url = "/inventory-order/repay"; + HttpHeaders headers = new HttpHeaders(); + headers.addHeader(API_VERSION, V_2); + HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), InventoryOrderCreditRepayResponse.class); + return httpResponse.getServiceResponse(); + } + + /** + * 312814-库融订单贷款还款信息查询 + * + * @author H.T + * @since 2026/7/14 + */ + public InventoryOrderCreditRepayQueryResponse repayQuery(InventoryOrderCreditRepayQueryRequest request) { + String url = "/inventory-order/repay/query"; + HttpHeaders headers = new HttpHeaders(); + headers.addHeader(API_VERSION, V_2); + HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), InventoryOrderCreditRepayQueryResponse.class); + return httpResponse.getServiceResponse(); + } + + + + /** + * 312815-库容订单作废 + */ + public InventoryOrderInvalidResponse invalid(InventoryOrderInvalidRequest request) { + String url = "/inventory-order/invalid"; + HttpResponse httpResponse = apiClient.post(url, HttpHeaders.apiVersionV2(), + request.toJsonRequest(), InventoryOrderInvalidResponse.class); + return httpResponse.getServiceResponse(); + } + + /** + * 313107-wms库存状态变更 + */ + public InventoryOrderStoreChangeResponse inventoryOrderStoreChange(InventoryOrderStoreChangeRequest request) { + String url = "/inventory-sync/store/change"; + HttpResponse httpResponse = apiClient.post(url, HttpHeaders.apiVersionV2(), + request.toJsonRequest(), InventoryOrderStoreChangeResponse.class); + return httpResponse.getServiceResponse(); + } + + + + + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderAddRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderAddRequest.java new file mode 100644 index 0000000..7adbd01 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderAddRequest.java @@ -0,0 +1,177 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.czcb.scfs.api.core.ApiRequest; +import com.czcb.scfs.api.core.agrs.TransType; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +/** + * 312807-库融订单登记 + */ +@Data +@Accessors(chain = true) +@TransType("312807") +public class InventoryOrderAddRequest implements ApiRequest { + + /** + * 渠道编号 + */ + @SerializedName("channel_no") + private String channelNo; + + /** + * 应用编号 + */ + @SerializedName("app_no") + private String appNo; + + /** + * 流水号 + */ + @SerializedName("serial_no") + private String serialNo; + + /** + * 操作日期 + */ + @SerializedName("trans_date") + private String transDate; + + /** + * 操作时间 + */ + @SerializedName("trans_tradetime") + private String transTradeTime; + + + + /** + * 仓储系统编码 wms:冷鲜城 + */ + @SerializedName("inventory_code") + private String inventoryCode; + /** + * 货主编码 + */ + @SerializedName("consignor_code") + private String consignorCode; + /** + * 订单编号 + */ + @SerializedName("order_no") + private String orderNo; + /** + * 订单类型 J、入库单 + */ + @SerializedName("order_type") + private String orderType; + /** + * 订单金额 订单总价 + */ + @SerializedName("order_amount") + private BigDecimal orderAmount; + /** + * 报关单号 + */ + @SerializedName("customs_declaration_no") + private String customsDeclarationNo; + /** + * 海关单号 + */ + @SerializedName("customs_no") + private String customsNo; + /** + * 订单备注 + */ + @SerializedName("order_remark") + private String orderRemark; + /** + * 商品列表 + */ + @SerializedName("goods_list") + private List goodsList; + + + @Data + @Accessors(chain = true) + public static class OrderInventoryGoods implements Serializable { + /** + * 货品编码 + */ + @SerializedName("goods_code") + private String goodsCode; + /** + * 货品名称 + */ + @SerializedName("goods_name") + private String goodsName; + /** + * 海关编码 + */ + @SerializedName("hs_code") + private String hsCode; + /** + * 规格编码 + */ + @SerializedName("specification_code") + private String specificationCode; + /** + * 规格名称 + */ + @SerializedName("specification_name") + private String specificationName; + /** + * 规格单价 + */ + @SerializedName("specification_unit_price") + private BigDecimal specificationUnitPrice; + /** + * 包装数量 + */ + @SerializedName("package_quantity") + private Integer packageQuantity; + /** + * 包装单位 + */ + @SerializedName("package_unit") + private String packageUnit; + /** + * 包装容量 + */ + @SerializedName("package_capacity") + private String packageCapacity; + /** + * 货品备注 + */ + @SerializedName("goods_remark") + private String goodsRemark; + /** + * 入库单号 + */ + @SerializedName("store_no") + private String storeNo; + /** + * 入库时间 + */ + @SerializedName("store_time") + private String storeTime; + /** + * 柜号 集装箱号 + */ + @SerializedName("container_no") + private String containerNo; + /** + * 收货库位 + */ + @SerializedName("receiving_storage") + private String receivingStorage; + } + + + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderAddResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderAddResponse.java new file mode 100644 index 0000000..f2f9abe --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderAddResponse.java @@ -0,0 +1,44 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 312807-库融订单登记 + */ +@Data +@Accessors(chain = true) +public class InventoryOrderAddResponse { + + /** + * 000000:表示成功 + */ + @SerializedName("recode") + private String recode; + + /** + * 结果信息 + */ + @SerializedName("recode_info") + private String recodeInfo; + + /** + * 系统流水号 + */ + @SerializedName("sys_serial_no") + private String sysSerialNo; + + /** + * 系统日期(YYYY-MM-DD) + */ + @SerializedName("sys_date") + private String sysDate; + + /** + * 系统时间(YYYY-MM-DD hh:mm:ss) + */ + @SerializedName("sys_time") + private String sysTime; + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCheckRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCheckRequest.java new file mode 100644 index 0000000..c2ebd4b --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCheckRequest.java @@ -0,0 +1,61 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.czcb.scfs.api.core.ApiRequest; +import com.czcb.scfs.api.core.agrs.TransType; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + + +/** + * 312808-库融订单库存核验 + */ +@Data +@Accessors(chain = true) +@TransType("312808") +public class InventoryOrderCheckRequest implements ApiRequest { + + /** + * 渠道编号 + */ + @SerializedName("channel_no") + private String channelNo; + + /** + * 应用编号 + */ + @SerializedName("app_no") + private String appNo; + + /** + * 流水号 + */ + @SerializedName("serial_no") + private String serialNo; + + /** + * 操作日期 + */ + @SerializedName("trans_date") + private String transDate; + + /** + * 操作时间 + */ + @SerializedName("trans_tradetime") + private String transTradeTime; + + + /** + * 订单编号 + */ + @SerializedName("order_no") + private String orderNo; + + /** + * 核验人 + */ + @SerializedName("verifier") + private String verifier; + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCheckResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCheckResponse.java new file mode 100644 index 0000000..13840a2 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCheckResponse.java @@ -0,0 +1,44 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 312808-库融订单库存核验 + */ +@Data +@Accessors(chain = true) +public class InventoryOrderCheckResponse { + + /** + * 000000:表示成功 + */ + @SerializedName("recode") + private String recode; + + /** + * 结果信息 + */ + @SerializedName("recode_info") + private String recodeInfo; + + /** + * 系统流水号 + */ + @SerializedName("sys_serial_no") + private String sysSerialNo; + + /** + * 系统日期(YYYY-MM-DD) + */ + @SerializedName("sys_date") + private String sysDate; + + /** + * 系统时间(YYYY-MM-DD hh:mm:ss) + */ + @SerializedName("sys_time") + private String sysTime; + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditPayRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditPayRequest.java new file mode 100644 index 0000000..b9f45a3 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditPayRequest.java @@ -0,0 +1,103 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.czcb.scfs.api.core.agrs.TransType; +import com.czcb.scfs.api.service.v2.file.model.FileMaterial; +import com.czcb.scfs.api.service.v2.order.model.OrderBaseRequest; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +/** + * 312812-库融订单融资支付请求参数 + * + * @author H.T + * @since 2026-07-14 + */ +@Data +@Accessors(chain = true) +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +@TransType("312812") +public class InventoryOrderCreditPayRequest extends OrderBaseRequest implements Serializable { + /** + * 订单编号 + */ + @SerializedName("order_no") + private String orderNo; + /** + * 贷款申请账号:个人时,借款人贷款申请是需添加经营实体=借款人公司;企业时,贷款申请账号=融资账号 + */ + @SerializedName("apply_account_no") + private String applyAccountNo; + /** + * 贷款申请户名 + */ + @SerializedName("apply_account_name") + private String applyAccountName; + /** + * 融资账号A1 + */ + @SerializedName("finance_account_no_a1") + private String financeAccountNoA1; + /** + * 融资账号A2 + */ + @SerializedName("finance_account_no_a2") + private String financeAccountNoA2; + /** + * 融资户名 + */ + @SerializedName("finance_account_name") + private String financeAccountName; + /** + * 收款账号 + */ + @SerializedName("opp_account_no") + private String oppAccountNo; + /** + * 收款户名 + */ + @SerializedName("opp_account_name") + private String oppAccountName; + /** + * 收款行号 + */ + @SerializedName("opp_bank_no") + private String oppBankNo; + /** + * 收款行名 + */ + @SerializedName("opp_bank_name") + private String oppBankName; + /** + * 自有资金 大于等于0 + */ + @SerializedName("owned_amount") + private BigDecimal ownedAmount; + /** + * 提款金额 大于0 + */ + @SerializedName("finance_amount") + private BigDecimal financeAmount; + /** + * 支付金额 大于等于0 + */ + @SerializedName("pay_amount") + private BigDecimal payAmount; + /** + * 验证码 + */ + @SerializedName("verify_code") + private String verifyCode; + /** + * 放款资料 + */ + @SerializedName("file_list") + private List fileList; +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditPayResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditPayResponse.java new file mode 100644 index 0000000..4ae8b1a --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditPayResponse.java @@ -0,0 +1,33 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.czcb.scfs.api.service.v2.order.model.OrderBaseResponse; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * 312812-库融订单融资支付响应参数 + * + * @author H.T + * @since 2026-07-14 + */ +@Data +@ToString(callSuper = true) +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = true) +public class InventoryOrderCreditPayResponse extends OrderBaseResponse implements Serializable { + /** + * 贷款账号(借据编号) + */ + @SerializedName("loan_account_no") + private String loanAccountNo; + /** + * 贷款账号序号 + */ + @SerializedName("loan_account_seq_no") + private String loanAccountSeqNo; +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditRepayQueryRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditRepayQueryRequest.java new file mode 100644 index 0000000..39b6572 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditRepayQueryRequest.java @@ -0,0 +1,30 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.czcb.scfs.api.core.agrs.TransType; +import com.czcb.scfs.api.service.v2.order.model.OrderBaseRequest; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * 312814-库融订单贷款还款信息查询请求参数 + * + * @author H.T + * @since 2026-07-14 + */ +@Data +@Accessors(chain = true) +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +@TransType("312814") +public class InventoryOrderCreditRepayQueryRequest extends OrderBaseRequest implements Serializable { + /** + * 订单编号 + */ + @SerializedName("order_no") + private String orderNo; +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditRepayQueryResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditRepayQueryResponse.java new file mode 100644 index 0000000..16fc137 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditRepayQueryResponse.java @@ -0,0 +1,318 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.czcb.scfs.api.service.v2.order.model.OrderBaseResponse; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +/** + * 312814-库融订单贷款还款信息查询响应参数 + * + * @author H.T + * @since 2026-07-14 + */ +@Data +@ToString(callSuper = true) +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = true) +public class InventoryOrderCreditRepayQueryResponse extends OrderBaseResponse implements Serializable { + /** + * 订单信息 + */ + @SerializedName("order_info") + private OrderInfo orderInfo; + + /** + * 还款信息 + */ + @SerializedName("loan_info_list") + private List loanInfoList; + + @Data + public static class OrderInfo implements Serializable { + /** + * 仓储系统编码 wms:冷鲜城 + */ + @SerializedName("inventory_code") + private String inventoryCode; + /** + * 货主编码 + */ + @SerializedName("consignor_code") + private String consignorCode; + /** + * 订单编号 + */ + @SerializedName("order_no") + private String orderNo; + /** + * 订单类型 J、入库单 + */ + @SerializedName("order_type") + private String orderType; + /** + * 订单金额 订单总价 + */ + @SerializedName("order_amount") + private BigDecimal orderAmount; + /** + * 含税金额 含税总价 + */ + @SerializedName("including_tax_amount") + private BigDecimal includingTaxAmount; + /** + * 下单时间 + */ + @SerializedName("order_time") + private String orderTime; + /** + * 订单状态 0、正常 1、作废 + */ + @SerializedName("order_status") + private String orderStatus; + /** + * 订单备注 + */ + @SerializedName("order_remark") + private String orderRemark; + /** + * 核验状态 0、未核验 1、已核验 + */ + @SerializedName("check_status") + private String checkStatus; + /** + * 核验人 + */ + @SerializedName("verifier") + private String verifier; + /** + * 核验时间 + */ + @SerializedName("check_time") + private String checkTime; + /** + * 报关单号 + */ + @SerializedName("customs_declaration_no") + private String customsDeclarationNo; + /** + * 海关单号 + */ + @SerializedName("customs_no") + private String customsNo; + /** + * 融资比例 + */ + @SerializedName("finance_prop") + private BigDecimal financeProp; + /** + * 融资账号A1 + */ + @SerializedName("finance_account_a1") + private String financeAccountA1; + /** + * 融资账号A2 + */ + @SerializedName("finance_account_a2") + private String financeAccountA2; + /** + * 融资户名 + */ + @SerializedName("finance_account_name") + private String financeAccountName; + /** + * 融资额度 等于含税金额*融资比例 + */ + @SerializedName("finance_limit") + private BigDecimal financeLimit; + /** + * 已提款总额 + */ + @SerializedName("finance_amount_total") + private BigDecimal financeAmountTotal; + /** + * 融资状态 0、未融资 1、已融资 2、部分融资 + */ + @SerializedName("finance_status") + private String financeStatus; + /** + * 已还本金 + */ + @SerializedName("repay_amount_bj") + private BigDecimal repayAmountBj; + /** + * 已还利息 + */ + @SerializedName("repay_amount_lx") + private BigDecimal repayAmountLx; + /** + * 已付服务费 + */ + @SerializedName("pay_fee") + private BigDecimal payFee; + /** + * 还款状态 0、未还款 1、已还款 2、部分还款 + */ + @SerializedName("repay_status") + private String repayStatus; + /** + * 创建时间 + */ + @SerializedName("create_time") + private String createTime; + /** + * 更新时间 + */ + @SerializedName("update_time") + private String updateTime; + /** + * 订单剩余应还本金总额 + */ + @SerializedName("remain_repay_bj") + private BigDecimal remainRepayBj; + /** + * 剩余应还利息总额 + */ + @SerializedName("remain_repay_lx") + private BigDecimal remainRepayLx; + /** + * 剩余应付服务费总额 + */ + @SerializedName("remain_pay_fee") + private BigDecimal remainPayFee; + } + + @Data + public static class LoanInfo implements Serializable { + /** + * 请求流水号 + */ + @SerializedName("req_serial_no") + private String reqSerialNo; + /** + * 系统流水号 + */ + @SerializedName("sys_serial_no") + private String sysSerialNo; + /** + * 订单编号 + */ + @SerializedName("order_no") + private String orderNo; + /** + * 贷款合同编号 + */ + @SerializedName("contract_no") + private String contractNo; + /** + * 贷款申请账号 + */ + @SerializedName("apply_account_no") + private String applyAccountNo; + /** + * 贷款申请户名 + */ + @SerializedName("apply_account_name") + private String applyAccountName; + /** + * 贷款账号(借据编号) + */ + @SerializedName("loan_acct_no") + private String loanAcctNo; + /** + * 贷款账号序号 + */ + @SerializedName("acct_seq_no") + private String acctSeqNo; + /** + * 提款金额 + */ + @SerializedName("loan_amount") + private BigDecimal loanAmount; + /** + * 提款日期 yyyy-MM-dd + */ + @SerializedName("loan_date") + private String loanDate; + /** + * 提款时间 yyyy-MM-dd hh:mm:ss + */ + @SerializedName("loan_time") + private String loanTime; + /** + * 核心流水号(轮询流水号) + */ + private String coreSerialNo; + /** + * 提款摘要 + */ + @SerializedName("loan_remark") + private String loanRemark; + /** + * 还款流水号 + */ + @SerializedName("repay_serial_no") + private String repaySerialNo; + /** + * 还款状态:0-未还款;1-已还款;2-部分还款;8-未知;9-还款失败 + */ + @SerializedName("repay_status") + private String repayStatus; + /** + * 还款失败描述 + */ + @SerializedName("repay_fail_message") + private String repayFailMessage; + /** + * 还款本金 + */ + @SerializedName("repay_amount_bj") + private BigDecimal repayAmountBj; + /** + * 还款利息 + */ + @SerializedName("repay_amount_lx") + private BigDecimal repayAmountLx; + /** + * 还款时间 yyyy-MM-dd hh:mm:ss + */ + @SerializedName("repay_time") + private String repayTime; + /** + * 还款摘要 + */ + @SerializedName("repay_remark") + private String repayRemark; + /** + * 创建时间 + */ + @SerializedName("create_time") + private String createTime; + /** + * 更新时间 + */ + @SerializedName("update_time") + private String updateTime; + /** + * 借据剩余应还本金 + */ + @SerializedName("remain_repay_bj") + private BigDecimal remainRepayBj; + /** + * 借据剩余应还利息 + */ + @SerializedName("remain_repay_lx") + private BigDecimal remainRepayLx; + /** + * 借据剩余应付服务费 + */ + @SerializedName("remain_pay_fee") + private BigDecimal remainPayFee; + } +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditRepayRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditRepayRequest.java new file mode 100644 index 0000000..41e4ec3 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditRepayRequest.java @@ -0,0 +1,36 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.czcb.scfs.api.core.agrs.TransType; +import com.czcb.scfs.api.service.v2.order.model.OrderBaseRequest; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 312813-库融订单贷款还款请求参数 + * + * @author H.T + * @since 2026-07-14 + */ +@Data +@Accessors(chain = true) +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +@TransType("312813") +public class InventoryOrderCreditRepayRequest extends OrderBaseRequest implements Serializable { + /** + * 订单编号 + */ + @SerializedName("order_no") + private String orderNo; + /** + * 本次还款本金 + */ + @SerializedName("repay_amount_bj") + private BigDecimal repayAmountBj; +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditRepayResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditRepayResponse.java new file mode 100644 index 0000000..115d993 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderCreditRepayResponse.java @@ -0,0 +1,22 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.czcb.scfs.api.service.v2.order.model.OrderBaseResponse; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * 312813-库融订单贷款还款响应参数 + * + * @author H.T + * @since 2026-07-14 + */ +@Data +@ToString(callSuper = true) +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = true) +public class InventoryOrderCreditRepayResponse extends OrderBaseResponse implements Serializable { +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderFinanceRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderFinanceRequest.java new file mode 100644 index 0000000..2f79794 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderFinanceRequest.java @@ -0,0 +1,67 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.czcb.scfs.api.core.ApiRequest; +import com.czcb.scfs.api.core.agrs.TransType; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + + +/** + * 312809-库融订单融资人维护 + */ +@Data +@Accessors(chain = true) +@TransType("312809") +public class InventoryOrderFinanceRequest implements ApiRequest { + + /** + * 渠道编号 + */ + @SerializedName("channel_no") + private String channelNo; + + /** + * 应用编号 + */ + @SerializedName("app_no") + private String appNo; + + /** + * 流水号 + */ + @SerializedName("serial_no") + private String serialNo; + + /** + * 操作日期 + */ + @SerializedName("trans_date") + private String transDate; + + /** + * 操作时间 + */ + @SerializedName("trans_tradetime") + private String transTradeTime; + + + /** + * 订单编号 + */ + @SerializedName("order_no") + private String orderNo; + + /** + * 融资账号A1 + */ + @SerializedName("finance_account_no") + private String financeAccountNO; + + /** + * 融资户名 + */ + @SerializedName("finance_account_name") + private String financeAccountName; + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderFinanceResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderFinanceResponse.java new file mode 100644 index 0000000..4977e7b --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderFinanceResponse.java @@ -0,0 +1,44 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 312809-库融订单融资人维护 + */ +@Data +@Accessors(chain = true) +public class InventoryOrderFinanceResponse { + + /** + * 000000:表示成功 + */ + @SerializedName("recode") + private String recode; + + /** + * 结果信息 + */ + @SerializedName("recode_info") + private String recodeInfo; + + /** + * 系统流水号 + */ + @SerializedName("sys_serial_no") + private String sysSerialNo; + + /** + * 系统日期(YYYY-MM-DD) + */ + @SerializedName("sys_date") + private String sysDate; + + /** + * 系统时间(YYYY-MM-DD hh:mm:ss) + */ + @SerializedName("sys_time") + private String sysTime; + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderInvalidRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderInvalidRequest.java new file mode 100644 index 0000000..32d12c5 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderInvalidRequest.java @@ -0,0 +1,55 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.czcb.scfs.api.core.ApiRequest; +import com.czcb.scfs.api.core.agrs.TransType; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + + +/** + * 312815-库容订单作废 + */ +@Data +@Accessors(chain = true) +@TransType("312815") +public class InventoryOrderInvalidRequest implements ApiRequest { + + /** + * 渠道编号 + */ + @SerializedName("channel_no") + private String channelNo; + + /** + * 应用编号 + */ + @SerializedName("app_no") + private String appNo; + + /** + * 流水号 + */ + @SerializedName("serial_no") + private String serialNo; + + /** + * 操作日期 + */ + @SerializedName("trans_date") + private String transDate; + + /** + * 操作时间 + */ + @SerializedName("trans_tradetime") + private String transTradeTime; + + + /** + * 订单编号 + */ + @SerializedName("order_no") + private String orderNo; + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderInvalidResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderInvalidResponse.java new file mode 100644 index 0000000..add6a94 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderInvalidResponse.java @@ -0,0 +1,44 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 312815-库容订单作废 + */ +@Data +@Accessors(chain = true) +public class InventoryOrderInvalidResponse { + + /** + * 000000:表示成功 + */ + @SerializedName("recode") + private String recode; + + /** + * 结果信息 + */ + @SerializedName("recode_info") + private String recodeInfo; + + /** + * 系统流水号 + */ + @SerializedName("sys_serial_no") + private String sysSerialNo; + + /** + * 系统日期(YYYY-MM-DD) + */ + @SerializedName("sys_date") + private String sysDate; + + /** + * 系统时间(YYYY-MM-DD hh:mm:ss) + */ + @SerializedName("sys_time") + private String sysTime; + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreChangeRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreChangeRequest.java new file mode 100644 index 0000000..ce2c549 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreChangeRequest.java @@ -0,0 +1,79 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.czcb.scfs.api.core.ApiRequest; +import com.czcb.scfs.api.core.agrs.TransType; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + + +/** + * 313107-wms库存状态变更 + */ +@Data +@Accessors(chain = true) +@TransType("313107") +public class InventoryOrderStoreChangeRequest implements ApiRequest { + + /** + * 渠道编号 + */ + @SerializedName("channel_no") + private String channelNo; + + /** + * 应用编号 + */ + @SerializedName("app_no") + private String appNo; + + /** + * 流水号 + */ + @SerializedName("serial_no") + private String serialNo; + + /** + * 操作日期 + */ + @SerializedName("trans_date") + private String transDate; + + /** + * 操作时间 + */ + @SerializedName("trans_tradetime") + private String transTradeTime; + + + /** + * 货主编码 + */ + @SerializedName("consignor_code") + private String consignorCode; + /** + * 订单编号 + */ + @SerializedName("order_no") + private String orderNo; + + /** + * 订单编号 + */ + @SerializedName("goods_code") + private String goodsCode; + + + /** + * 入库单号 + */ + @SerializedName("store_no") + private String storeNo; + + /** + * 入库状态 + */ + @SerializedName("store_status") + private String storeStatus; + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreChangeResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreChangeResponse.java new file mode 100644 index 0000000..c37726f --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreChangeResponse.java @@ -0,0 +1,44 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 313107-wms库存状态变更 + */ +@Data +@Accessors(chain = true) +public class InventoryOrderStoreChangeResponse { + + /** + * 000000:表示成功 + */ + @SerializedName("recode") + private String recode; + + /** + * 结果信息 + */ + @SerializedName("recode_info") + private String recodeInfo; + + /** + * 系统流水号 + */ + @SerializedName("sys_serial_no") + private String sysSerialNo; + + /** + * 系统日期(YYYY-MM-DD) + */ + @SerializedName("sys_date") + private String sysDate; + + /** + * 系统时间(YYYY-MM-DD hh:mm:ss) + */ + @SerializedName("sys_time") + private String sysTime; + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreLockRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreLockRequest.java new file mode 100644 index 0000000..208de16 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreLockRequest.java @@ -0,0 +1,67 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.czcb.scfs.api.core.ApiRequest; +import com.czcb.scfs.api.core.agrs.TransType; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + + +/** + * 312811-库融订单库存锁定/解锁 + */ +@Data +@Accessors(chain = true) +@TransType("312811") +public class InventoryOrderStoreLockRequest implements ApiRequest { + + /** + * 渠道编号 + */ + @SerializedName("channel_no") + private String channelNo; + + /** + * 应用编号 + */ + @SerializedName("app_no") + private String appNo; + + /** + * 流水号 + */ + @SerializedName("serial_no") + private String serialNo; + + /** + * 操作日期 + */ + @SerializedName("trans_date") + private String transDate; + + /** + * 操作时间 + */ + @SerializedName("trans_tradetime") + private String transTradeTime; + + + /** + * 订单编号 + */ + @SerializedName("order_no") + private String orderNo; + + /** + * 订单编号 + */ + @SerializedName("goods_code") + private String goodsCode; + + /** + * 入库单号 + */ + @SerializedName("store_no") + private String storeNo; + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreLockResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreLockResponse.java new file mode 100644 index 0000000..7b3bf37 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreLockResponse.java @@ -0,0 +1,50 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 312811-库融订单库存锁定/解锁 + */ +@Data +@Accessors(chain = true) +public class InventoryOrderStoreLockResponse { + + /** + * 000000:表示成功 + */ + @SerializedName("recode") + private String recode; + + /** + * 结果信息 + */ + @SerializedName("recode_info") + private String recodeInfo; + + /** + * 系统流水号 + */ + @SerializedName("sys_serial_no") + private String sysSerialNo; + + /** + * 系统日期(YYYY-MM-DD) + */ + @SerializedName("sys_date") + private String sysDate; + + /** + * 系统时间(YYYY-MM-DD hh:mm:ss) + */ + @SerializedName("sys_time") + private String sysTime; + + /** + * 库存状态 0、在库 1、锁库 2、已出库 + */ + @SerializedName("store_status") + private String storeStatus; + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreOutRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreOutRequest.java new file mode 100644 index 0000000..60c098d --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreOutRequest.java @@ -0,0 +1,67 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.czcb.scfs.api.core.ApiRequest; +import com.czcb.scfs.api.core.agrs.TransType; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + + +/** + * 312810-库融订单出库 + */ +@Data +@Accessors(chain = true) +@TransType("312810") +public class InventoryOrderStoreOutRequest implements ApiRequest { + + /** + * 渠道编号 + */ + @SerializedName("channel_no") + private String channelNo; + + /** + * 应用编号 + */ + @SerializedName("app_no") + private String appNo; + + /** + * 流水号 + */ + @SerializedName("serial_no") + private String serialNo; + + /** + * 操作日期 + */ + @SerializedName("trans_date") + private String transDate; + + /** + * 操作时间 + */ + @SerializedName("trans_tradetime") + private String transTradeTime; + + + /** + * 订单编号 + */ + @SerializedName("order_no") + private String orderNo; + + /** + * 订单编号 + */ + @SerializedName("goods_code") + private String goodsCode; + + /** + * 入库单号 + */ + @SerializedName("store_no") + private String storeNo; + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreOutResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreOutResponse.java new file mode 100644 index 0000000..14a7fa7 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/inventory/model/InventoryOrderStoreOutResponse.java @@ -0,0 +1,44 @@ +package com.czcb.scfs.api.service.v2.inventory.model; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 312810-库融订单出库 + */ +@Data +@Accessors(chain = true) +public class InventoryOrderStoreOutResponse { + + /** + * 000000:表示成功 + */ + @SerializedName("recode") + private String recode; + + /** + * 结果信息 + */ + @SerializedName("recode_info") + private String recodeInfo; + + /** + * 系统流水号 + */ + @SerializedName("sys_serial_no") + private String sysSerialNo; + + /** + * 系统日期(YYYY-MM-DD) + */ + @SerializedName("sys_date") + private String sysDate; + + /** + * 系统时间(YYYY-MM-DD hh:mm:ss) + */ + @SerializedName("sys_time") + private String sysTime; + +} diff --git a/scfs-api-spring-boot-starter/src/main/java/com/czcb/scfs/spring/boot/starter/ScfsAutoConfiguration.java b/scfs-api-spring-boot-starter/src/main/java/com/czcb/scfs/spring/boot/starter/ScfsAutoConfiguration.java index d9a9eb8..fa934cb 100644 --- a/scfs-api-spring-boot-starter/src/main/java/com/czcb/scfs/spring/boot/starter/ScfsAutoConfiguration.java +++ b/scfs-api-spring-boot-starter/src/main/java/com/czcb/scfs/spring/boot/starter/ScfsAutoConfiguration.java @@ -12,9 +12,9 @@ import com.czcb.scfs.api.service.v2.bmd.BmdService; import com.czcb.scfs.api.service.v2.cat.order.OrderService; import com.czcb.scfs.api.service.v2.cat.project.ProjectService; import com.czcb.scfs.api.service.v2.communal.CommunalDataService; -import com.czcb.scfs.api.service.v2.contract.MchConsignContractService; import com.czcb.scfs.api.service.v2.contract.SettleContractService; import com.czcb.scfs.api.service.v2.entpay.EntPayService; +import com.czcb.scfs.api.service.v2.inventory.InventoryOrderService; import com.czcb.scfs.api.service.v2.loan.CreditPayService; import com.czcb.scfs.api.service.v2.order.*; import com.czcb.scfs.api.service.v2.waybill.WayBillService; @@ -351,6 +351,16 @@ public class ScfsAutoConfiguration { return new SummaryOrderService(apiClient); } + /** + * 电商结算汇总单管理 + */ + @Bean + @ConditionalOnMissingBean + @ConditionalOnClass(MchSummarySettleService.class) + public MchSummarySettleService mchSummarySettleService(ApiClient apiClient) { + return new MchSummarySettleService(apiClient); + } + /** * 客户端通知处理 */ @@ -362,12 +372,12 @@ public class ScfsAutoConfiguration { } /** - * 电商代销协议管理 + * 库容订单管理 */ @Bean @ConditionalOnMissingBean - @ConditionalOnClass(MchConsignContractService.class) - public MchConsignContractService mhConsignContractService(ApiClient apiClient) { - return new MchConsignContractService(apiClient); + @ConditionalOnClass(InventoryOrderService.class) + public InventoryOrderService inventoryOrderService(ApiClient apiClient) { + return new InventoryOrderService(apiClient); } }