From aba85baf069f32fe1daa49d80958723a55024e0e Mon Sep 17 00:00:00 2001
From: "shunyi.kuang" <846002312@qq.com>
Date: Thu, 2 Apr 2026 17:48:35 +0800
Subject: [PATCH 1/6] =?UTF-8?q?=E9=87=87=E8=BF=90=E9=94=80=E5=85=B3?=
=?UTF-8?q?=E8=81=94?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
itc-pcitc-mdm/itc-pcitc-mdm-api/pom.xml | 5 +
.../AddLngContractSalesPngPointPurDto.java | 98 +++++++++
.../AddLngContractSalesPngPointTransDto.java | 113 +++++++++++
.../dto/LngContractSalesPngPointPageDto.java | 30 +++
.../UpdateLngContractSalesPngPointDto.java | 23 ++-
.../UpdateLngContractSalesPngPointPurDto.java | 144 +++++++++++++
...pdateLngContractSalesPngPointTransDto.java | 156 ++++++++++++++
.../vo/LngContractSalesPngPointPageVo.java | 21 ++
.../vo/LngContractSalesPngPointPurVo.java | 161 +++++++++++++++
.../vo/LngContractSalesPngPointTransVo.java | 188 +++++++++++++++++
.../vo/LngContractSalesPngPointVo.java | 15 +-
.../controller/ContractSalesController.java | 20 +-
.../ContractSalesPngPointController.java | 133 ++++++++++++
.../entity/LngContractSalesPngPointPur.java | 172 ++++++++++++++++
.../entity/LngContractSalesPngPointTrans.java | 191 ++++++++++++++++++
.../LngContractSalesPngPointMapper.java | 17 +-
.../LngContractSalesPngPointPurMapper.java | 29 +++
.../LngContractSalesPngPointTransMapper.java | 31 +++
.../IContractSalesPngPointService.java | 20 ++
.../ContractSalesPngPointServiceImpl.java | 53 +++++
.../ship/controller/MeaPurIntController.java | 2 +-
21 files changed, 1610 insertions(+), 12 deletions(-)
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/AddLngContractSalesPngPointPurDto.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/AddLngContractSalesPngPointTransDto.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/LngContractSalesPngPointPageDto.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointPurDto.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointTransDto.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointPageVo.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointPurVo.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointTransVo.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/controller/ContractSalesPngPointController.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/entity/LngContractSalesPngPointPur.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/entity/LngContractSalesPngPointTrans.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointPurMapper.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointTransMapper.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/IContractSalesPngPointService.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/impl/ContractSalesPngPointServiceImpl.java
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/pom.xml b/itc-pcitc-mdm/itc-pcitc-mdm-api/pom.xml
index 2183062..491a81e 100644
--- a/itc-pcitc-mdm/itc-pcitc-mdm-api/pom.xml
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/pom.xml
@@ -25,6 +25,11 @@
itc-pcitc-dependencies-api
${revision}
+
+ com.geg
+ itc-ms-common-api
+ 2.0.4
+
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/AddLngContractSalesPngPointPurDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/AddLngContractSalesPngPointPurDto.java
new file mode 100644
index 0000000..d8acac0
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/AddLngContractSalesPngPointPurDto.java
@@ -0,0 +1,98 @@
+package com.xjrsoft.module.contract.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+
+
+
+
+
+/**
+* @title: 采运销关联
+* @Author 管理员
+* @Date: 2026-04-02
+* @Version 1.0
+*/
+@Data
+public class AddLngContractSalesPngPointPurDto extends com.xjrsoft.common.model.base.BaseModel {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 合同-档案主键(管道气销售合同lng_contract.id)
+ */
+ @ApiModelProperty("合同-档案主键(管道气销售合同lng_contract.id)")
+ private Long ksId;
+ /**
+ * 合同-国内销售-管道气-交割点主键(lng_contract_sales_png_point.id)
+ */
+ @ApiModelProperty("合同-国内销售-管道气-交割点主键(lng_contract_sales_png_point.id)")
+ private Long ksppId;
+ /**
+ * 交割点编码(从合同-国内销售-管道气-交割点表带过来)
+ */
+ @ApiModelProperty("交割点编码(从合同-国内销售-管道气-交割点表带过来)")
+ private String pointDelyCode;
+ /**
+ * 自主托运(Y-是,N-否;从合同-国内销售-管道气-交割点表带过来;可编辑)
+ */
+ @ApiModelProperty("自主托运(Y-是,N-否;从合同-国内销售-管道气-交割点表带过来;可编辑)")
+ private String transSign;
+ /**
+ * 合同-档案主键(管道气采购合同;自有资源为空)
+ */
+ @ApiModelProperty("合同-档案主键(管道气采购合同;自有资源为空)")
+ private Long kpId;
+ /**
+ * 合同-国内采购-管道气-上载点主键
+ */
+ @ApiModelProperty("合同-国内采购-管道气-上载点主键")
+ private Long kpppId;
+ /**
+ * 供应商编码
+ */
+ @ApiModelProperty("供应商编码")
+ private String suCode;
+ /**
+ * 上载点编码
+ */
+ @ApiModelProperty("上载点编码")
+ private String pointUpCode;
+ /**
+ * 有效期开始
+ */
+ @ApiModelProperty("有效期开始")
+ private LocalDateTime dateFrom;
+ /**
+ * 有效期结束
+ */
+ @ApiModelProperty("有效期结束")
+ private LocalDateTime dateTo;
+ /**
+ * 顺序
+ */
+ @ApiModelProperty("顺序")
+ private Short sort;
+ /**
+ * 备注
+ */
+ @ApiModelProperty("备注")
+ private String note;
+ /**
+ * 租户id
+ */
+ @ApiModelProperty("租户id")
+ private Long tenantId;
+
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/AddLngContractSalesPngPointTransDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/AddLngContractSalesPngPointTransDto.java
new file mode 100644
index 0000000..6d7db5a
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/AddLngContractSalesPngPointTransDto.java
@@ -0,0 +1,113 @@
+package com.xjrsoft.module.contract.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+
+
+
+
+
+/**
+* @title: 采运销关联
+* @Author 管理员
+* @Date: 2026-04-02
+* @Version 1.0
+*/
+@Data
+public class AddLngContractSalesPngPointTransDto extends com.xjrsoft.common.model.base.BaseModel {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 合同-档案主键(lng_contract.id)
+ */
+ @ApiModelProperty("合同-档案主键(lng_contract.id)")
+ private Long ksId;
+ /**
+ * 合同-国内销售管道气-交割点主键(lng_contract_sales_png_point.id)
+ */
+ @ApiModelProperty("合同-国内销售管道气-交割点主键(lng_contract_sales_png_point.id)")
+ private Long ksppId;
+ /**
+ * 合同-国内销售管道气-交割点-上载主键(lng_contract_sales_png_point_pur.id)
+ */
+ @ApiModelProperty("合同-国内销售管道气-交割点-上载主键(lng_contract_sales_png_point_pur.id)")
+ private Long kspppId;
+ /**
+ * 交割点编码(lng_contract_sales_png_point_pur.point_dely_code)
+ */
+ @ApiModelProperty("交割点编码(lng_contract_sales_png_point_pur.point_dely_code)")
+ private String pointDelyCode;
+ /**
+ * 资源上载点编码(lng_contract_sales_png_point_pur.point_up_code)
+ */
+ @ApiModelProperty("资源上载点编码(lng_contract_sales_png_point_pur.point_up_code)")
+ private String pointUpCode;
+ /**
+ * 自主托运(Y-是,N-否;缺省Y;隐藏;lng_contract_sales_png_point_pur.trans_sign)
+ */
+ @ApiModelProperty("自主托运(Y-是,N-否;缺省Y;隐藏;lng_contract_sales_png_point_pur.trans_sign)")
+ private String transSign;
+ /**
+ * 合同-档案主键(lng_contract.id)
+ */
+ @ApiModelProperty("合同-档案主键(lng_contract.id)")
+ private Long ktId;
+ /**
+ * 合同-管输-上下载点主键(lng_contract_trans_png.id)
+ */
+ @ApiModelProperty("合同-管输-上下载点主键(lng_contract_trans_png.id)")
+ private Long ktpId;
+ /**
+ * 托运商编码(从管输合同带出来;只读)
+ */
+ @ApiModelProperty("托运商编码(从管输合同带出来;只读)")
+ private String suCode;
+ /**
+ * 管输上载点编码(从管输合同带出来;只读)
+ */
+ @ApiModelProperty("管输上载点编码(从管输合同带出来;只读)")
+ private String pointUpTransCode;
+ /**
+ * 管输交割点编码(从管输合同带出来;只读)
+ */
+ @ApiModelProperty("管输交割点编码(从管输合同带出来;只读)")
+ private String pointDelyTransCode;
+ /**
+ * 有效期开始(从管输合同带出来;可编辑)
+ */
+ @ApiModelProperty("有效期开始(从管输合同带出来;可编辑)")
+ private LocalDateTime dateFrom;
+ /**
+ * 有效期结束(从管输合同带出来;可编辑)
+ */
+ @ApiModelProperty("有效期结束(从管输合同带出来;可编辑)")
+ private LocalDateTime dateTo;
+ /**
+ * 顺序
+ */
+ @ApiModelProperty("顺序")
+ private Short sort;
+ /**
+ * 备注
+ */
+ @ApiModelProperty("备注")
+ private String note;
+ /**
+ * 租户id
+ */
+ @ApiModelProperty("租户id")
+ private Long tenantId;
+
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/LngContractSalesPngPointPageDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/LngContractSalesPngPointPageDto.java
new file mode 100644
index 0000000..258a844
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/LngContractSalesPngPointPageDto.java
@@ -0,0 +1,30 @@
+package com.xjrsoft.module.contract.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+
+
+/**
+* @title: 分页查询入参
+* @Author 管理员
+* @Date: 2026-04-02
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class LngContractSalesPngPointPageDto extends PageInput {
+
+ /**
+ * 主键
+ */
+ @ApiModelProperty("主键")
+ private Long id;
+
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointDto.java
index 9343abd..ebb4a4c 100644
--- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointDto.java
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointDto.java
@@ -1,13 +1,20 @@
package com.xjrsoft.module.contract.dto;
+import java.io.Serializable;
+import java.util.List;
+
+import com.pictc.annotations.datalog.JoinCaseType;
+import com.pictc.annotations.datalog.JoinType;
import com.pictc.annotations.datalog.LogField;
+import com.pictc.annotations.datalog.LogJoin;
+import com.pictc.annotations.datalog.LogJoinColumn;
import com.pictc.annotations.datalog.LogTable;
+import com.pictc.annotations.datalog.ValueDirectionType;
import com.xjrsoft.common.model.base.BaseModel;
+
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-import java.io.Serializable;
-
@@ -66,4 +73,16 @@ public class UpdateLngContractSalesPngPointDto extends BaseModel implements Seri
private String note;
private Boolean hasDel = false;
+
+ /**
+ * lngContractSalesPngPointPur
+ */
+ @ApiModelProperty("lngContractSalesPngPointPur子表")
+ @LogJoin(name = "lngContractSalesPngPointPur子表",
+ columns = {
+ @LogJoinColumn(field = "ksppId",relatedField = "id", valueDirection = ValueDirectionType.RIGHT)
+ },
+ caseType = JoinCaseType.FULL, target = UpdateLngContractSalesPngPointPurDto.class, type = JoinType.MANY)
+ private List lngContractSalesPngPointPurList;
+
}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointPurDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointPurDto.java
new file mode 100644
index 0000000..bb05457
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointPurDto.java
@@ -0,0 +1,144 @@
+package com.xjrsoft.module.contract.dto;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+import com.pictc.annotations.datalog.JoinCaseType;
+import com.pictc.annotations.datalog.JoinType;
+import com.pictc.annotations.datalog.LogField;
+import com.pictc.annotations.datalog.LogJoin;
+import com.pictc.annotations.datalog.LogJoinColumn;
+import com.pictc.annotations.datalog.LogTable;
+import com.pictc.annotations.datalog.ValueDirectionType;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+
+/**
+* @title: 采运销关联
+* @Author 管理员
+* @Date: 2026-04-02
+* @Version 1.0
+*/
+@Data
+@LogTable(source="lng_contract_sales_png_point_pur",name="采运销关联")
+public class UpdateLngContractSalesPngPointPurDto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @LogField(name="主键",index=0)
+ @ApiModelProperty("主键")
+ private Long id;
+
+ /**
+ * 合同-档案主键(管道气销售合同lng_contract.id)
+ */
+ @LogField(name="合同-档案主键(管道气销售合同lng_contract.id)",index=1)
+ @ApiModelProperty("合同-档案主键(管道气销售合同lng_contract.id)")
+ private Long ksId;
+
+ /**
+ * 合同-国内销售-管道气-交割点主键(lng_contract_sales_png_point.id)
+ */
+ @LogField(name="合同-国内销售-管道气-交割点主键(lng_contract_sales_png_point.id)",index=2)
+ @ApiModelProperty("合同-国内销售-管道气-交割点主键(lng_contract_sales_png_point.id)")
+ private Long ksppId;
+
+ /**
+ * 交割点编码(从合同-国内销售-管道气-交割点表带过来)
+ */
+ @LogField(name="交割点编码(从合同-国内销售-管道气-交割点表带过来)",index=3)
+ @ApiModelProperty("交割点编码(从合同-国内销售-管道气-交割点表带过来)")
+ private String pointDelyCode;
+
+ /**
+ * 自主托运(Y-是,N-否;从合同-国内销售-管道气-交割点表带过来;可编辑)
+ */
+ @LogField(name="自主托运(Y-是,N-否;从合同-国内销售-管道气-交割点表带过来;可编辑)",index=4)
+ @ApiModelProperty("自主托运(Y-是,N-否;从合同-国内销售-管道气-交割点表带过来;可编辑)")
+ private String transSign;
+
+ /**
+ * 合同-档案主键(管道气采购合同;自有资源为空)
+ */
+ @LogField(name="合同-档案主键(管道气采购合同;自有资源为空)",index=5)
+ @ApiModelProperty("合同-档案主键(管道气采购合同;自有资源为空)")
+ private Long kpId;
+
+ /**
+ * 合同-国内采购-管道气-上载点主键
+ */
+ @LogField(name="合同-国内采购-管道气-上载点主键",index=6)
+ @ApiModelProperty("合同-国内采购-管道气-上载点主键")
+ private Long kpppId;
+
+ /**
+ * 供应商编码
+ */
+ @LogField(name="供应商编码",index=7)
+ @ApiModelProperty("供应商编码")
+ private String suCode;
+
+ /**
+ * 上载点编码
+ */
+ @LogField(name="上载点编码",index=8)
+ @ApiModelProperty("上载点编码")
+ private String pointUpCode;
+
+ /**
+ * 有效期开始
+ */
+ @LogField(name="有效期开始",index=9)
+ @ApiModelProperty("有效期开始")
+ private LocalDateTime dateFrom;
+
+ /**
+ * 有效期结束
+ */
+ @LogField(name="有效期结束",index=10)
+ @ApiModelProperty("有效期结束")
+ private LocalDateTime dateTo;
+
+ /**
+ * 顺序
+ */
+ @LogField(name="顺序",index=11)
+ @ApiModelProperty("顺序")
+ private Short sort;
+
+ /**
+ * 备注
+ */
+ @LogField(name="备注",index=12)
+ @ApiModelProperty("备注")
+ private String note;
+
+ /**
+ * 租户id
+ */
+ @LogField(name="租户id",index=13)
+ @ApiModelProperty("租户id")
+ private Long tenantId;
+
+ /**
+ * lngContractSalesPngPointTrans
+ */
+ @ApiModelProperty("lngContractSalesPngPointTrans子表")
+ @LogJoin(name = "lngContractSalesPngPointTrans子表",
+ columns = {
+ @LogJoinColumn(field = "ksppId",relatedField = "ksppId", valueDirection = ValueDirectionType.RIGHT),
+ @LogJoinColumn(field = "kspppId",relatedField = "id", valueDirection = ValueDirectionType.RIGHT)
+ },
+ caseType = JoinCaseType.FULL, target = UpdateLngContractSalesPngPointTransDto.class, type = JoinType.MANY)
+ private List lngContractSalesPngPointTransList;
+
+
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointTransDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointTransDto.java
new file mode 100644
index 0000000..e80e0c2
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointTransDto.java
@@ -0,0 +1,156 @@
+package com.xjrsoft.module.contract.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.List;
+
+import com.pictc.annotations.datalog.LogTable;
+import com.pictc.annotations.datalog.LogField;
+import com.pictc.annotations.datalog.LogJoin;
+import com.pictc.annotations.datalog.LogJoinColumn;
+import com.pictc.annotations.datalog.JoinCaseType;
+import com.pictc.annotations.datalog.JoinType;
+import com.pictc.annotations.datalog.ValueDirectionType;
+
+
+
+
+/**
+* @title: 采运销关联
+* @Author 管理员
+* @Date: 2026-04-02
+* @Version 1.0
+*/
+@Data
+@LogTable(source="lng_contract_sales_png_point_trans",name="采运销关联")
+public class UpdateLngContractSalesPngPointTransDto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @LogField(name="主键",index=0)
+ @ApiModelProperty("主键")
+ private Long id;
+
+ /**
+ * 合同-档案主键(lng_contract.id)
+ */
+ @LogField(name="合同-档案主键(lng_contract.id)",index=1)
+ @ApiModelProperty("合同-档案主键(lng_contract.id)")
+ private Long ksId;
+
+ /**
+ * 合同-国内销售管道气-交割点主键(lng_contract_sales_png_point.id)
+ */
+ @LogField(name="合同-国内销售管道气-交割点主键(lng_contract_sales_png_point.id)",index=2)
+ @ApiModelProperty("合同-国内销售管道气-交割点主键(lng_contract_sales_png_point.id)")
+ private Long ksppId;
+
+ /**
+ * 合同-国内销售管道气-交割点-上载主键(lng_contract_sales_png_point_pur.id)
+ */
+ @LogField(name="合同-国内销售管道气-交割点-上载主键(lng_contract_sales_png_point_pur.id)",index=3)
+ @ApiModelProperty("合同-国内销售管道气-交割点-上载主键(lng_contract_sales_png_point_pur.id)")
+ private Long kspppId;
+
+ /**
+ * 交割点编码(lng_contract_sales_png_point_pur.point_dely_code)
+ */
+ @LogField(name="交割点编码(lng_contract_sales_png_point_pur.point_dely_code)",index=4)
+ @ApiModelProperty("交割点编码(lng_contract_sales_png_point_pur.point_dely_code)")
+ private String pointDelyCode;
+
+ /**
+ * 资源上载点编码(lng_contract_sales_png_point_pur.point_up_code)
+ */
+ @LogField(name="资源上载点编码(lng_contract_sales_png_point_pur.point_up_code)",index=5)
+ @ApiModelProperty("资源上载点编码(lng_contract_sales_png_point_pur.point_up_code)")
+ private String pointUpCode;
+
+ /**
+ * 自主托运(Y-是,N-否;缺省Y;隐藏;lng_contract_sales_png_point_pur.trans_sign)
+ */
+ @LogField(name="自主托运(Y-是,N-否;缺省Y;隐藏;lng_contract_sales_png_point_pur.trans_sign)",index=6)
+ @ApiModelProperty("自主托运(Y-是,N-否;缺省Y;隐藏;lng_contract_sales_png_point_pur.trans_sign)")
+ private String transSign;
+
+ /**
+ * 合同-档案主键(lng_contract.id)
+ */
+ @LogField(name="合同-档案主键(lng_contract.id)",index=7)
+ @ApiModelProperty("合同-档案主键(lng_contract.id)")
+ private Long ktId;
+
+ /**
+ * 合同-管输-上下载点主键(lng_contract_trans_png.id)
+ */
+ @LogField(name="合同-管输-上下载点主键(lng_contract_trans_png.id)",index=8)
+ @ApiModelProperty("合同-管输-上下载点主键(lng_contract_trans_png.id)")
+ private Long ktpId;
+
+ /**
+ * 托运商编码(从管输合同带出来;只读)
+ */
+ @LogField(name="托运商编码(从管输合同带出来;只读)",index=9)
+ @ApiModelProperty("托运商编码(从管输合同带出来;只读)")
+ private String suCode;
+
+ /**
+ * 管输上载点编码(从管输合同带出来;只读)
+ */
+ @LogField(name="管输上载点编码(从管输合同带出来;只读)",index=10)
+ @ApiModelProperty("管输上载点编码(从管输合同带出来;只读)")
+ private String pointUpTransCode;
+
+ /**
+ * 管输交割点编码(从管输合同带出来;只读)
+ */
+ @LogField(name="管输交割点编码(从管输合同带出来;只读)",index=11)
+ @ApiModelProperty("管输交割点编码(从管输合同带出来;只读)")
+ private String pointDelyTransCode;
+
+ /**
+ * 有效期开始(从管输合同带出来;可编辑)
+ */
+ @LogField(name="有效期开始(从管输合同带出来;可编辑)",index=12)
+ @ApiModelProperty("有效期开始(从管输合同带出来;可编辑)")
+ private LocalDateTime dateFrom;
+
+ /**
+ * 有效期结束(从管输合同带出来;可编辑)
+ */
+ @LogField(name="有效期结束(从管输合同带出来;可编辑)",index=13)
+ @ApiModelProperty("有效期结束(从管输合同带出来;可编辑)")
+ private LocalDateTime dateTo;
+
+ /**
+ * 顺序
+ */
+ @LogField(name="顺序",index=14)
+ @ApiModelProperty("顺序")
+ private Short sort;
+
+ /**
+ * 备注
+ */
+ @LogField(name="备注",index=15)
+ @ApiModelProperty("备注")
+ private String note;
+
+ /**
+ * 租户id
+ */
+ @LogField(name="租户id",index=16)
+ @ApiModelProperty("租户id")
+ private Long tenantId;
+
+
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointPageVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointPageVo.java
new file mode 100644
index 0000000..a5ee337
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointPageVo.java
@@ -0,0 +1,21 @@
+package com.xjrsoft.module.contract.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 分页列表出参
+* @Author 管理员
+* @Date: 2026-04-02
+* @Version 1.0
+*/
+@Data
+public class LngContractSalesPngPointPageVo {
+
+ /**
+ * 主键
+ */
+ @ApiModelProperty("主键")
+ private String id;
+
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointPurVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointPurVo.java
new file mode 100644
index 0000000..5314c54
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointPurVo.java
@@ -0,0 +1,161 @@
+package com.xjrsoft.module.contract.vo;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 表单出参
+* @Author 管理员
+* @Date: 2026-04-02
+* @Version 1.0
+*/
+@Data
+public class LngContractSalesPngPointPurVo extends com.xjrsoft.common.model.base.BaseModel{
+
+ /**
+ * 主键
+ */
+ @ApiModelProperty("主键")
+ private Long id;
+
+
+ /**
+ * 合同-档案主键(管道气销售合同lng_contract.id)
+ */
+ @ApiModelProperty("合同-档案主键(管道气销售合同lng_contract.id)")
+ private Long ksId;
+
+
+ /**
+ * 合同-国内销售-管道气-交割点主键(lng_contract_sales_png_point.id)
+ */
+ @ApiModelProperty("合同-国内销售-管道气-交割点主键(lng_contract_sales_png_point.id)")
+ private Long ksppId;
+
+
+ /**
+ * 交割点编码(从合同-国内销售-管道气-交割点表带过来)
+ */
+ @ApiModelProperty("交割点编码(从合同-国内销售-管道气-交割点表带过来)")
+ private String pointDelyCode;
+
+
+ /**
+ * 自主托运(Y-是,N-否;从合同-国内销售-管道气-交割点表带过来;可编辑)
+ */
+ @ApiModelProperty("自主托运(Y-是,N-否;从合同-国内销售-管道气-交割点表带过来;可编辑)")
+ private String transSign;
+
+
+ /**
+ * 合同-档案主键(管道气采购合同;自有资源为空)
+ */
+ @ApiModelProperty("合同-档案主键(管道气采购合同;自有资源为空)")
+ private Long kpId;
+
+ private String kpName;
+ /**
+ * 合同-国内采购-管道气-上载点主键
+ */
+ @ApiModelProperty("合同-国内采购-管道气-上载点主键")
+ private Long kpppId;
+
+
+ /**
+ * 供应商编码
+ */
+ @ApiModelProperty("供应商编码")
+ private String suCode;
+
+ private String suName;
+ /**
+ * 上载点编码
+ */
+ @ApiModelProperty("上载点编码")
+ private String pointUpCode;
+
+ private String pointUpName;
+ /**
+ * 有效期开始
+ */
+ @ApiModelProperty("有效期开始")
+ private LocalDateTime dateFrom;
+
+
+ /**
+ * 有效期结束
+ */
+ @ApiModelProperty("有效期结束")
+ private LocalDateTime dateTo;
+
+
+ /**
+ * 顺序
+ */
+ @ApiModelProperty("顺序")
+ private Short sort;
+
+
+ /**
+ * 备注
+ */
+ @ApiModelProperty("备注")
+ private String note;
+
+
+ /**
+ * 创建人id
+ */
+ @ApiModelProperty("创建人id")
+ private Long createUserId;
+
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createDate;
+
+
+ /**
+ * 修改人id
+ */
+ @ApiModelProperty("修改人id")
+ private Long modifyUserId;
+
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty("修改时间")
+ private LocalDateTime modifyDate;
+
+
+ /**
+ * 租户id
+ */
+ @ApiModelProperty("租户id")
+ private Long tenantId;
+
+
+ /**
+ * 部门id
+ */
+ @ApiModelProperty("部门id")
+ private Long deptId;
+
+
+ /**
+ * 数据权限id
+ */
+ @ApiModelProperty("数据权限id")
+ private Long ruleUserId;
+
+
+ private List lngContractSalesPngPointTransList;
+
+
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointTransVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointTransVo.java
new file mode 100644
index 0000000..b50f8b3
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointTransVo.java
@@ -0,0 +1,188 @@
+package com.xjrsoft.module.contract.vo;
+
+import java.time.LocalDateTime;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 表单出参
+* @Author 管理员
+* @Date: 2026-04-02
+* @Version 1.0
+*/
+@Data
+public class LngContractSalesPngPointTransVo extends com.xjrsoft.common.model.base.BaseModel{
+
+ /**
+ * 主键
+ */
+ @ApiModelProperty("主键")
+ private Long id;
+
+
+ /**
+ * 合同-档案主键(lng_contract.id)
+ */
+ @ApiModelProperty("合同-档案主键(lng_contract.id)")
+ private Long ksId;
+
+
+ /**
+ * 合同-国内销售管道气-交割点主键(lng_contract_sales_png_point.id)
+ */
+ @ApiModelProperty("合同-国内销售管道气-交割点主键(lng_contract_sales_png_point.id)")
+ private Long ksppId;
+
+
+ /**
+ * 合同-国内销售管道气-交割点-上载主键(lng_contract_sales_png_point_pur.id)
+ */
+ @ApiModelProperty("合同-国内销售管道气-交割点-上载主键(lng_contract_sales_png_point_pur.id)")
+ private Long kspppId;
+
+
+ /**
+ * 交割点编码(lng_contract_sales_png_point_pur.point_dely_code)
+ */
+ @ApiModelProperty("交割点编码(lng_contract_sales_png_point_pur.point_dely_code)")
+ private String pointDelyCode;
+
+ private String pointDelyName;
+
+ /**
+ * 资源上载点编码(lng_contract_sales_png_point_pur.point_up_code)
+ */
+ @ApiModelProperty("资源上载点编码(lng_contract_sales_png_point_pur.point_up_code)")
+ private String pointUpCode;
+
+
+ /**
+ * 自主托运(Y-是,N-否;缺省Y;隐藏;lng_contract_sales_png_point_pur.trans_sign)
+ */
+ @ApiModelProperty("自主托运(Y-是,N-否;缺省Y;隐藏;lng_contract_sales_png_point_pur.trans_sign)")
+ private String transSign;
+
+
+ /**
+ * 合同-档案主键(lng_contract.id)
+ */
+ @ApiModelProperty("合同-档案主键(lng_contract.id)")
+ private Long ktId;
+
+ private String ktName;
+
+ /**
+ * 合同-管输-上下载点主键(lng_contract_trans_png.id)
+ */
+ @ApiModelProperty("合同-管输-上下载点主键(lng_contract_trans_png.id)")
+ private Long ktpId;
+
+
+ /**
+ * 托运商编码(从管输合同带出来;只读)
+ */
+ @ApiModelProperty("托运商编码(从管输合同带出来;只读)")
+ private String suCode;
+
+ private String suYsName;
+
+
+ /**
+ * 管输上载点编码(从管输合同带出来;只读)
+ */
+ @ApiModelProperty("管输上载点编码(从管输合同带出来;只读)")
+ private String pointUpTransCode;
+
+ private String pointUpTransName;
+
+ /**
+ * 管输交割点编码(从管输合同带出来;只读)
+ */
+ @ApiModelProperty("管输交割点编码(从管输合同带出来;只读)")
+ private String pointDelyTransCode;
+
+ private String pointDelyTransName;
+
+
+ /**
+ * 有效期开始(从管输合同带出来;可编辑)
+ */
+ @ApiModelProperty("有效期开始(从管输合同带出来;可编辑)")
+ private LocalDateTime dateFrom;
+
+
+ /**
+ * 有效期结束(从管输合同带出来;可编辑)
+ */
+ @ApiModelProperty("有效期结束(从管输合同带出来;可编辑)")
+ private LocalDateTime dateTo;
+
+
+ /**
+ * 顺序
+ */
+ @ApiModelProperty("顺序")
+ private Short sort;
+
+
+ /**
+ * 备注
+ */
+ @ApiModelProperty("备注")
+ private String note;
+
+
+ /**
+ * 创建人id
+ */
+ @ApiModelProperty("创建人id")
+ private Long createUserId;
+
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createDate;
+
+
+ /**
+ * 修改人id
+ */
+ @ApiModelProperty("修改人id")
+ private Long modifyUserId;
+
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty("修改时间")
+ private LocalDateTime modifyDate;
+
+
+ /**
+ * 租户id
+ */
+ @ApiModelProperty("租户id")
+ private Long tenantId;
+
+
+ /**
+ * 部门id
+ */
+ @ApiModelProperty("部门id")
+ private Long deptId;
+
+
+ /**
+ * 数据权限id
+ */
+ @ApiModelProperty("数据权限id")
+ private Long ruleUserId;
+
+
+
+
+
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointVo.java
index a8041d3..35c18e4 100644
--- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointVo.java
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointVo.java
@@ -1,13 +1,14 @@
package com.xjrsoft.module.contract.vo;
+import java.time.LocalDateTime;
+import java.util.List;
+
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
-import java.time.LocalDateTime;
-
/**
* @title: 表单出参
* @Author 管理员
@@ -33,6 +34,14 @@ public class LngContractSalesPngPointVo {
@ApiModelProperty("合同-档案主键")
private Long kId;
+ private String ksName;
+
+ private String ksNo;
+
+ private String suName;
+
+ private String comName;
+
/**
* 计量交割点编码(通常为下载点,客户托运时为上载点)
@@ -113,7 +122,7 @@ public class LngContractSalesPngPointVo {
private Long ruleUserId;
-
+ private List lngContractSalesPngPointPurList;
}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/controller/ContractSalesController.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/controller/ContractSalesController.java
index c773296..88c564c 100644
--- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/controller/ContractSalesController.java
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/controller/ContractSalesController.java
@@ -1,6 +1,18 @@
package com.xjrsoft.module.contract.controller;
-import cn.dev33.satoken.annotation.SaCheckPermission;
+import java.util.List;
+
+import javax.validation.Valid;
+
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
import com.google.api.client.util.Lists;
import com.pictc.datalog.DataOperationContent;
import com.pictc.datalog.DataOperationListener;
@@ -17,13 +29,11 @@ import com.xjrsoft.module.contract.dto.UpdateLngContractSalesPngPointDto;
import com.xjrsoft.module.contract.service.IContractSalesService;
import com.xjrsoft.module.datalog.service.DatalogService;
import com.xjrsoft.module.datalog.vo.DataChangeLogVo;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-import java.util.List;
/**
* @title: 国内管道气销售
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/controller/ContractSalesPngPointController.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/controller/ContractSalesPngPointController.java
new file mode 100644
index 0000000..c93fa0c
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/controller/ContractSalesPngPointController.java
@@ -0,0 +1,133 @@
+package com.xjrsoft.module.contract.controller;
+
+import java.util.List;
+
+import javax.validation.Valid;
+
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.pictc.datalog.DataOperationContent;
+import com.pictc.datalog.DataOperationListener;
+import com.xjrsoft.common.model.result.R;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.contract.dto.LngContractSalesPngPointPageDto;
+import com.xjrsoft.module.contract.dto.UpdateLngContractSalesPngPointDto;
+import com.xjrsoft.module.contract.entity.LngContractSalesPngPoint;
+import com.xjrsoft.module.contract.service.IContractSalesPngPointService;
+import com.xjrsoft.module.contract.vo.LngContractSalesPngPointPageVo;
+import com.xjrsoft.module.contract.vo.LngContractSalesPngPointVo;
+import com.xjrsoft.module.datalog.service.DatalogService;
+import com.xjrsoft.module.datalog.vo.DataChangeLogVo;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.util.ObjectUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+
+/**
+* @title: 采运销关联
+* @Author 管理员
+* @Date: 2026-04-02
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/contract" + "/contractSalesPngPur")
+@Api(value = "/contract" + "/contractSalesPngPur",tags = "采运销关联代码")
+@AllArgsConstructor
+public class ContractSalesPngPointController {
+
+
+ private final IContractSalesPngPointService contractSalesPngPointService;
+ private final DatalogService dataService;
+
+ @GetMapping(value = "/page")
+ @ApiOperation(value="LngContractSalesPngPoint列表(分页)")
+ @SaCheckPermission("contractSalesPngPur:list")
+ public R page(@Valid LngContractSalesPngPointPageDto dto){
+
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper
+ .eq(ObjectUtil.isNotNull(dto.getId()),LngContractSalesPngPoint::getId,dto.getId())
+ .orderByDesc(LngContractSalesPngPoint::getId)
+ .select(LngContractSalesPngPoint.class,x -> VoToColumnUtil.fieldsToColumns(LngContractSalesPngPointPageVo.class).contains(x.getProperty()));
+ IPage page = contractSalesPngPointService.page(ConventPage.getPage(dto), queryWrapper);
+ PageOutput pageOutput = ConventPage.getPageOutput(page, LngContractSalesPngPointPageVo.class);
+ return R.ok(pageOutput);
+ }
+
+ @GetMapping(value = "/info")
+ @ApiOperation(value="根据id查询LngContractSalesPngPoint信息")
+ @SaCheckPermission("contractSalesPngPur:detail")
+ public R info(@RequestParam Long id){
+ LngContractSalesPngPointVo lngContractSalesPngPoint = contractSalesPngPointService.getInfoById(id);
+
+ return R.ok(lngContractSalesPngPoint);
+ }
+
+ @GetMapping(value = "/datalog")
+ @ApiOperation(value="根据id查询LngContractSalesPngPoint数据详细日志")
+ @SaCheckPermission("contractSalesPngPur:datalog")
+ public R datalog(@RequestParam Long id){
+ List logs = dataService.findLogsByEntityId(UpdateLngContractSalesPngPointDto.class,id);
+ return R.ok(logs);
+ }
+
+
+ @PostMapping
+ @ApiOperation(value = "新增LngContractSalesPngPoint")
+ @SaCheckPermission("contractSalesPngPur:add")
+ public R add(@Valid @RequestBody UpdateLngContractSalesPngPointDto dto){
+ return R.ok( dataService.insert(dto, new DataOperationListener() {
+ @Override
+ public UpdateLngContractSalesPngPointDto before(DataOperationContent content) {
+ return null;
+ }
+
+ @Override
+ public UpdateLngContractSalesPngPointDto after(DataOperationContent content) {
+
+ return null;
+ }
+ }));
+ }
+
+ @PutMapping
+ @ApiOperation(value = "修改LngContractSalesPngPoint")
+ @SaCheckPermission("contractSalesPngPur:edit")
+ public R update(@Valid @RequestBody UpdateLngContractSalesPngPointDto dto){
+ return R.ok( dataService.updateById(dto, new DataOperationListener() {
+ @Override
+ public UpdateLngContractSalesPngPointDto before(DataOperationContent content) {
+ return null;
+ }
+
+ @Override
+ public UpdateLngContractSalesPngPointDto after(DataOperationContent content) {
+
+ return null;
+ }
+ }));
+ }
+
+ @DeleteMapping
+ @ApiOperation(value = "删除")
+ @SaCheckPermission("contractSalesPngPur:delete")
+ public R delete(@Valid @RequestBody List ids){
+ return R.ok(dataService.deleteByIds(UpdateLngContractSalesPngPointDto.class, ids));
+
+ }
+
+
+}
\ No newline at end of file
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/entity/LngContractSalesPngPointPur.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/entity/LngContractSalesPngPointPur.java
new file mode 100644
index 0000000..5369c3a
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/entity/LngContractSalesPngPointPur.java
@@ -0,0 +1,172 @@
+package com.xjrsoft.module.contract.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+
+
+/**
+* @title: 采运销关联
+* @Author 管理员
+* @Date: 2026-04-02
+* @Version 1.0
+*/
+@Data
+@TableName("lng_contract_sales_png_point_pur")
+@ApiModel(value = "采运销关联对象", description = "采运销关联")
+public class LngContractSalesPngPointPur implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @ApiModelProperty("主键")
+ @TableId
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private Long id;
+
+ /**
+ * 合同-档案主键(管道气销售合同lng_contract.id)
+ */
+ @ApiModelProperty("合同-档案主键(管道气销售合同lng_contract.id)")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private Long ksId;
+
+ /**
+ * 合同-国内销售-管道气-交割点主键(lng_contract_sales_png_point.id)
+ */
+ @ApiModelProperty("合同-国内销售-管道气-交割点主键(lng_contract_sales_png_point.id)")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private Long ksppId;
+
+ /**
+ * 交割点编码(从合同-国内销售-管道气-交割点表带过来)
+ */
+ @ApiModelProperty("交割点编码(从合同-国内销售-管道气-交割点表带过来)")
+ private String pointDelyCode;
+
+ /**
+ * 自主托运(Y-是,N-否;从合同-国内销售-管道气-交割点表带过来;可编辑)
+ */
+ @ApiModelProperty("自主托运(Y-是,N-否;从合同-国内销售-管道气-交割点表带过来;可编辑)")
+ private String transSign;
+
+ /**
+ * 合同-档案主键(管道气采购合同;自有资源为空)
+ */
+ @ApiModelProperty("合同-档案主键(管道气采购合同;自有资源为空)")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private Long kpId;
+
+ /**
+ * 合同-国内采购-管道气-上载点主键
+ */
+ @ApiModelProperty("合同-国内采购-管道气-上载点主键")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private Long kpppId;
+
+ /**
+ * 供应商编码
+ */
+ @ApiModelProperty("供应商编码")
+ private String suCode;
+
+ /**
+ * 上载点编码
+ */
+ @ApiModelProperty("上载点编码")
+ private String pointUpCode;
+
+ /**
+ * 有效期开始
+ */
+ @ApiModelProperty("有效期开始")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private LocalDateTime dateFrom;
+
+ /**
+ * 有效期结束
+ */
+ @ApiModelProperty("有效期结束")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private LocalDateTime dateTo;
+
+ /**
+ * 顺序
+ */
+ @ApiModelProperty("顺序")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private Short sort;
+
+ /**
+ * 备注
+ */
+ @ApiModelProperty("备注")
+ private String note;
+
+ /**
+ * 创建人id
+ */
+ @ApiModelProperty("创建人id")
+ @TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
+ private Long createUserId;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty("创建时间")
+ @TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
+ private LocalDateTime createDate;
+
+ /**
+ * 修改人id
+ */
+ @ApiModelProperty("修改人id")
+ @TableField(fill = FieldFill.UPDATE, updateStrategy = FieldStrategy.IGNORED)
+ private Long modifyUserId;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty("修改时间")
+ @TableField(fill = FieldFill.UPDATE, updateStrategy = FieldStrategy.IGNORED)
+ private LocalDateTime modifyDate;
+
+ /**
+ * 租户id
+ */
+ @ApiModelProperty("租户id")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private Long tenantId;
+
+ /**
+ * 部门id
+ */
+ @ApiModelProperty("部门id")
+ @TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
+ private Long deptId;
+
+ /**
+ * 数据权限id
+ */
+ @ApiModelProperty("数据权限id")
+ @TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
+ private Long ruleUserId;
+
+
+
+}
\ No newline at end of file
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/entity/LngContractSalesPngPointTrans.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/entity/LngContractSalesPngPointTrans.java
new file mode 100644
index 0000000..a098543
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/entity/LngContractSalesPngPointTrans.java
@@ -0,0 +1,191 @@
+package com.xjrsoft.module.contract.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+
+
+/**
+* @title: 采运销关联
+* @Author 管理员
+* @Date: 2026-04-02
+* @Version 1.0
+*/
+@Data
+@TableName("lng_contract_sales_png_point_trans")
+@ApiModel(value = "采运销关联对象", description = "采运销关联")
+public class LngContractSalesPngPointTrans implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @ApiModelProperty("主键")
+ @TableId
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private Long id;
+
+ /**
+ * 合同-档案主键(lng_contract.id)
+ */
+ @ApiModelProperty("合同-档案主键(lng_contract.id)")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private Long ksId;
+
+ /**
+ * 合同-国内销售管道气-交割点主键(lng_contract_sales_png_point.id)
+ */
+ @ApiModelProperty("合同-国内销售管道气-交割点主键(lng_contract_sales_png_point.id)")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private Long ksppId;
+
+ /**
+ * 合同-国内销售管道气-交割点-上载主键(lng_contract_sales_png_point_pur.id)
+ */
+ @ApiModelProperty("合同-国内销售管道气-交割点-上载主键(lng_contract_sales_png_point_pur.id)")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private Long kspppId;
+
+ /**
+ * 交割点编码(lng_contract_sales_png_point_pur.point_dely_code)
+ */
+ @ApiModelProperty("交割点编码(lng_contract_sales_png_point_pur.point_dely_code)")
+ private String pointDelyCode;
+
+ /**
+ * 资源上载点编码(lng_contract_sales_png_point_pur.point_up_code)
+ */
+ @ApiModelProperty("资源上载点编码(lng_contract_sales_png_point_pur.point_up_code)")
+ private String pointUpCode;
+
+ /**
+ * 自主托运(Y-是,N-否;缺省Y;隐藏;lng_contract_sales_png_point_pur.trans_sign)
+ */
+ @ApiModelProperty("自主托运(Y-是,N-否;缺省Y;隐藏;lng_contract_sales_png_point_pur.trans_sign)")
+ private String transSign;
+
+ /**
+ * 合同-档案主键(lng_contract.id)
+ */
+ @ApiModelProperty("合同-档案主键(lng_contract.id)")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private Long ktId;
+
+ /**
+ * 合同-管输-上下载点主键(lng_contract_trans_png.id)
+ */
+ @ApiModelProperty("合同-管输-上下载点主键(lng_contract_trans_png.id)")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private Long ktpId;
+
+ /**
+ * 托运商编码(从管输合同带出来;只读)
+ */
+ @ApiModelProperty("托运商编码(从管输合同带出来;只读)")
+ private String suCode;
+
+ /**
+ * 管输上载点编码(从管输合同带出来;只读)
+ */
+ @ApiModelProperty("管输上载点编码(从管输合同带出来;只读)")
+ private String pointUpTransCode;
+
+ /**
+ * 管输交割点编码(从管输合同带出来;只读)
+ */
+ @ApiModelProperty("管输交割点编码(从管输合同带出来;只读)")
+ private String pointDelyTransCode;
+
+ /**
+ * 有效期开始(从管输合同带出来;可编辑)
+ */
+ @ApiModelProperty("有效期开始(从管输合同带出来;可编辑)")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private LocalDateTime dateFrom;
+
+ /**
+ * 有效期结束(从管输合同带出来;可编辑)
+ */
+ @ApiModelProperty("有效期结束(从管输合同带出来;可编辑)")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private LocalDateTime dateTo;
+
+ /**
+ * 顺序
+ */
+ @ApiModelProperty("顺序")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private Short sort;
+
+ /**
+ * 备注
+ */
+ @ApiModelProperty("备注")
+ private String note;
+
+ /**
+ * 创建人id
+ */
+ @ApiModelProperty("创建人id")
+ @TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
+ private Long createUserId;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty("创建时间")
+ @TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
+ private LocalDateTime createDate;
+
+ /**
+ * 修改人id
+ */
+ @ApiModelProperty("修改人id")
+ @TableField(fill = FieldFill.UPDATE, updateStrategy = FieldStrategy.IGNORED)
+ private Long modifyUserId;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty("修改时间")
+ @TableField(fill = FieldFill.UPDATE, updateStrategy = FieldStrategy.IGNORED)
+ private LocalDateTime modifyDate;
+
+ /**
+ * 租户id
+ */
+ @ApiModelProperty("租户id")
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private Long tenantId;
+
+ /**
+ * 部门id
+ */
+ @ApiModelProperty("部门id")
+ @TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
+ private Long deptId;
+
+ /**
+ * 数据权限id
+ */
+ @ApiModelProperty("数据权限id")
+ @TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
+ private Long ruleUserId;
+
+
+
+}
\ No newline at end of file
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointMapper.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointMapper.java
index 03d819f..d0d4225 100644
--- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointMapper.java
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointMapper.java
@@ -1,9 +1,13 @@
package com.xjrsoft.module.contract.mapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.module.contract.entity.LngContractSalesPngPoint;
-import org.apache.ibatis.annotations.Mapper;
+import com.xjrsoft.module.contract.vo.LngContractSalesPngPointVo;
/**
* @title: mapper
@@ -14,4 +18,15 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface LngContractSalesPngPointMapper extends MPJBaseMapper, BaseMapper {
+ @Select("SELECT kspp.*, bspd.full_name AS point_dely_Name,ks.k_no AS ks_no, ks.k_name AS ks_name, " +
+ " NVL(com.short_name,com.name) AS com_name,cu.cu_sname AS cu_name"+
+ " FROM lng_contract_sales_png_point kspp" +
+ " JOIN lng_contract ks ON ks.id=kspp.k_id" +
+ " LEFT JOIN lng_customer cu ON cu.cu_code=ks.cp_code"+
+ " LEFT JOIN xjr_department com ON com.id=ks.com_id"+
+ " LEFT JOIN lng_b_station_png bspd ON bspd.code=kspp.point_dely_code" +
+ " WHERE kspp.id = #{ksppId}")
+ LngContractSalesPngPointVo queryLngContractSalesPngPointById(@Param("ksppId") Long ksppId);
+
+
}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointPurMapper.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointPurMapper.java
new file mode 100644
index 0000000..fcda5ab
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointPurMapper.java
@@ -0,0 +1,29 @@
+package com.xjrsoft.module.contract.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.contract.entity.LngContractSalesPngPointPur;
+import com.xjrsoft.module.contract.vo.LngContractSalesPngPointPurVo;
+
+/**
+* @title: mapper
+* @Author 管理员
+* @Date: 2026-04-02
+* @Version 1.0
+*/
+@Mapper
+public interface LngContractSalesPngPointPurMapper extends MPJBaseMapper , BaseMapper {
+
+ @Select("SELECT ksppp.*, bspu.full_name AS point_up_name, kp.k_name AS kp_name " +
+ " FROM lng_contract_sales_png_point_pur ksppp" +
+ " LEFT JOIN lng_contract kp ON kp.id=ksppp.kp_id" +
+ " LEFT JOIN lng_b_station_png bspu ON bspu.code=ksppp.point_up_code" +
+ " WHERE ksppp.kspp_id = #{ksppId}")
+ List queryLngContractSalesPngPointPurList(@Param("ksppId") Long ksppId);
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointTransMapper.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointTransMapper.java
new file mode 100644
index 0000000..02547bc
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointTransMapper.java
@@ -0,0 +1,31 @@
+package com.xjrsoft.module.contract.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.contract.entity.LngContractSalesPngPointPur;
+import com.xjrsoft.module.contract.entity.LngContractSalesPngPointTrans;
+import com.xjrsoft.module.contract.vo.LngContractSalesPngPointTransVo;
+
+/**
+* @title: mapper
+* @Author 管理员
+* @Date: 2026-04-02
+* @Version 1.0
+*/
+@Mapper
+public interface LngContractSalesPngPointTransMapper extends MPJBaseMapper , BaseMapper {
+
+ @Select("SELECT ksppt.*, su_ys.su_sname AS su_ys_name, kt.k_name AS kt_name " +
+ " FROM lng_contract_sales_png_point_trans ksppt" +
+ " LEFT JOIN lng_contract kt ON kp.id=ksppt.kt_id" +
+ " LEFT JOIN lng_supplier su_ys ON su_ys.su_code=ksppt.su_code" +
+ " WHERE ksppt.ksppp_id = #{kspppId}")
+ List queryLngContractSalesPngPointTransList(@Param("kspppId") Long kspppId);
+
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/IContractSalesPngPointService.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/IContractSalesPngPointService.java
new file mode 100644
index 0000000..59531d5
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/IContractSalesPngPointService.java
@@ -0,0 +1,20 @@
+package com.xjrsoft.module.contract.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.github.yulichang.extension.mapping.base.MPJDeepService;
+import com.github.yulichang.extension.mapping.base.MPJRelationService;
+import com.xjrsoft.module.contract.entity.LngContractSalesPngPoint;
+import com.xjrsoft.module.contract.vo.LngContractSalesPngPointVo;
+
+/**
+* @title: service
+* @Author 管理员
+* @Date: 2026-04-02
+* @Version 1.0
+*/
+
+public interface IContractSalesPngPointService extends MPJBaseService, MPJDeepService, MPJRelationService {
+
+ LngContractSalesPngPointVo getInfoById(Long id);
+
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/impl/ContractSalesPngPointServiceImpl.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/impl/ContractSalesPngPointServiceImpl.java
new file mode 100644
index 0000000..eda091d
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/impl/ContractSalesPngPointServiceImpl.java
@@ -0,0 +1,53 @@
+package com.xjrsoft.module.contract.service.impl;
+
+import java.util.List;
+
+import org.springframework.stereotype.Service;
+
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.common.model.result.R;
+import com.xjrsoft.module.contract.entity.LngContractSalesPngPoint;
+import com.xjrsoft.module.contract.mapper.LngContractSalesPngPointMapper;
+import com.xjrsoft.module.contract.mapper.LngContractSalesPngPointPurMapper;
+import com.xjrsoft.module.contract.mapper.LngContractSalesPngPointTransMapper;
+import com.xjrsoft.module.contract.service.IContractSalesPngPointService;
+import com.xjrsoft.module.contract.vo.LngContractSalesPngPointPurVo;
+import com.xjrsoft.module.contract.vo.LngContractSalesPngPointTransVo;
+import com.xjrsoft.module.contract.vo.LngContractSalesPngPointVo;
+
+import lombok.AllArgsConstructor;
+
+/**
+* @title: service
+* @Author 管理员
+* @Date: 2026-04-02
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class ContractSalesPngPointServiceImpl extends MPJBaseServiceImpl implements IContractSalesPngPointService {
+
+ private LngContractSalesPngPointMapper cspPointMapper;
+
+ private LngContractSalesPngPointPurMapper cspPointPurMapper;
+
+ private LngContractSalesPngPointTransMapper cspPointTransMapper;
+
+ @Override
+ public LngContractSalesPngPointVo getInfoById(Long id) {
+ LngContractSalesPngPointVo cspPointVo = cspPointMapper.queryLngContractSalesPngPointById(id);
+ if (cspPointVo == null) {
+ return null;
+ }
+ List cspPointPurVoList = cspPointPurMapper.queryLngContractSalesPngPointPurList(id);
+ if(cspPointPurVoList != null && cspPointPurVoList.size() >0) {
+ cspPointVo.setLngContractSalesPngPointPurList(cspPointPurVoList);
+ for(LngContractSalesPngPointPurVo cspPointPur:cspPointPurVoList) {
+ List cspPointTransVoList = cspPointTransMapper.queryLngContractSalesPngPointTransList(cspPointPur.getKsppId());
+ cspPointPur.setLngContractSalesPngPointTransList(cspPointTransVoList);
+ }
+ }
+ return cspPointVo;
+ }
+
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/ship/controller/MeaPurIntController.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/ship/controller/MeaPurIntController.java
index 8631c08..f08a365 100644
--- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/ship/controller/MeaPurIntController.java
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/ship/controller/MeaPurIntController.java
@@ -150,7 +150,7 @@ public class MeaPurIntController {
@Override
public UpdateLngMeaPurIntDto after(DataOperationContent content) {
- String sql = StringUtils.format("{? = call pc_{0}.f_save(?,?)}",
+ String sql = StringUtils.format("{? = call pc_{0}.f_save(?,?)}",
content.getTableName());
List params = Lists.newArrayList();
JdbcParam outParam = JdbcParam.ofString(null).setOut(true);
From bee8df669e6ee77d008d53308505e9cbc714cee1 Mon Sep 17 00:00:00 2001
From: "shunyi.kuang" <846002312@qq.com>
Date: Fri, 3 Apr 2026 09:03:36 +0800
Subject: [PATCH 2/6] =?UTF-8?q?=E9=87=87=E8=BF=90=E9=94=80=E5=85=B3?=
=?UTF-8?q?=E8=81=94?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../contract/mapper/LngContractSalesPngPointTransMapper.java | 2 +-
.../contract/service/impl/ContractSalesPngPointServiceImpl.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointTransMapper.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointTransMapper.java
index 02547bc..cd361e3 100644
--- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointTransMapper.java
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointTransMapper.java
@@ -23,7 +23,7 @@ public interface LngContractSalesPngPointTransMapper extends MPJBaseMapper queryLngContractSalesPngPointTransList(@Param("kspppId") Long kspppId);
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/impl/ContractSalesPngPointServiceImpl.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/impl/ContractSalesPngPointServiceImpl.java
index eda091d..a933322 100644
--- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/impl/ContractSalesPngPointServiceImpl.java
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/impl/ContractSalesPngPointServiceImpl.java
@@ -43,7 +43,7 @@ public class ContractSalesPngPointServiceImpl extends MPJBaseServiceImpl0) {
cspPointVo.setLngContractSalesPngPointPurList(cspPointPurVoList);
for(LngContractSalesPngPointPurVo cspPointPur:cspPointPurVoList) {
- List cspPointTransVoList = cspPointTransMapper.queryLngContractSalesPngPointTransList(cspPointPur.getKsppId());
+ List cspPointTransVoList = cspPointTransMapper.queryLngContractSalesPngPointTransList(cspPointPur.getId());
cspPointPur.setLngContractSalesPngPointTransList(cspPointTransVoList);
}
}
From b5c8061f2961513f43a20c721f5ecfe2ff23da47 Mon Sep 17 00:00:00 2001
From: "shunyi.kuang" <846002312@qq.com>
Date: Fri, 3 Apr 2026 15:54:15 +0800
Subject: [PATCH 3/6] =?UTF-8?q?=E9=87=87=E8=BF=90=E9=94=80=E5=85=B3?=
=?UTF-8?q?=E8=81=94?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../contract/dto/UpdateLngContractSalesPngPointDto.java | 2 +-
.../dto/UpdateLngContractSalesPngPointPurDto.java | 2 +-
.../contract/vo/LngContractSalesPngPointTransVo.java | 2 +-
.../mapper/LngContractSalesPngPointPurMapper.java | 4 +++-
.../mapper/LngContractSalesPngPointTransMapper.java | 8 +++++++-
5 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointDto.java
index ebb4a4c..bf5b4ea 100644
--- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointDto.java
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointDto.java
@@ -80,7 +80,7 @@ public class UpdateLngContractSalesPngPointDto extends BaseModel implements Seri
@ApiModelProperty("lngContractSalesPngPointPur子表")
@LogJoin(name = "lngContractSalesPngPointPur子表",
columns = {
- @LogJoinColumn(field = "ksppId",relatedField = "id", valueDirection = ValueDirectionType.RIGHT)
+ @LogJoinColumn(field = "id",relatedField = "ksppId", valueDirection = ValueDirectionType.RIGHT)
},
caseType = JoinCaseType.FULL, target = UpdateLngContractSalesPngPointPurDto.class, type = JoinType.MANY)
private List lngContractSalesPngPointPurList;
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointPurDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointPurDto.java
index bb05457..d358429 100644
--- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointPurDto.java
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractSalesPngPointPurDto.java
@@ -135,7 +135,7 @@ public class UpdateLngContractSalesPngPointPurDto implements Serializable {
@LogJoin(name = "lngContractSalesPngPointTrans子表",
columns = {
@LogJoinColumn(field = "ksppId",relatedField = "ksppId", valueDirection = ValueDirectionType.RIGHT),
- @LogJoinColumn(field = "kspppId",relatedField = "id", valueDirection = ValueDirectionType.RIGHT)
+ @LogJoinColumn(field = "id",relatedField = "kspppId", valueDirection = ValueDirectionType.RIGHT)
},
caseType = JoinCaseType.FULL, target = UpdateLngContractSalesPngPointTransDto.class, type = JoinType.MANY)
private List lngContractSalesPngPointTransList;
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointTransVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointTransVo.java
index b50f8b3..331e058 100644
--- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointTransVo.java
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractSalesPngPointTransVo.java
@@ -56,7 +56,7 @@ public class LngContractSalesPngPointTransVo extends com.xjrsoft.common.model.ba
@ApiModelProperty("资源上载点编码(lng_contract_sales_png_point_pur.point_up_code)")
private String pointUpCode;
-
+ private String pointUpName;
/**
* 自主托运(Y-是,N-否;缺省Y;隐藏;lng_contract_sales_png_point_pur.trans_sign)
*/
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointPurMapper.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointPurMapper.java
index fcda5ab..3034a1f 100644
--- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointPurMapper.java
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointPurMapper.java
@@ -20,9 +20,11 @@ import com.xjrsoft.module.contract.vo.LngContractSalesPngPointPurVo;
@Mapper
public interface LngContractSalesPngPointPurMapper extends MPJBaseMapper , BaseMapper {
- @Select("SELECT ksppp.*, bspu.full_name AS point_up_name, kp.k_name AS kp_name " +
+ @Select("SELECT ksppp.*, bspu.full_name AS point_up_name, kp.k_name AS kp_name, " +
+ " su.su_sname AS su_name"+
" FROM lng_contract_sales_png_point_pur ksppp" +
" LEFT JOIN lng_contract kp ON kp.id=ksppp.kp_id" +
+ " LEFT JOIN lng_supplier su ON su.su_code=ksppp.su_code"+
" LEFT JOIN lng_b_station_png bspu ON bspu.code=ksppp.point_up_code" +
" WHERE ksppp.kspp_id = #{ksppId}")
List queryLngContractSalesPngPointPurList(@Param("ksppId") Long ksppId);
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointTransMapper.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointTransMapper.java
index cd361e3..f35e474 100644
--- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointTransMapper.java
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractSalesPngPointTransMapper.java
@@ -21,9 +21,15 @@ import com.xjrsoft.module.contract.vo.LngContractSalesPngPointTransVo;
@Mapper
public interface LngContractSalesPngPointTransMapper extends MPJBaseMapper , BaseMapper {
- @Select("SELECT ksppt.*, su_ys.su_sname AS su_ys_name, kt.k_name AS kt_name " +
+ @Select("SELECT ksppt.*, su_ys.su_sname AS su_ys_name, kt.k_name AS kt_name, " +
+ " bspd.full_name AS point_dely_name,bspu.full_name AS point_up_name, " +
+ " bput.full_name AS point_up_trans_name,bpdt.full_name AS point_dely_trans_name " +
" FROM lng_contract_sales_png_point_trans ksppt" +
" LEFT JOIN lng_contract kt ON kt.id=ksppt.kt_id" +
+ " LEFT JOIN lng_b_station_png bspd ON bspd.code=ksppt.point_dely_code"+
+ " LEFT JOIN lng_b_station_png bspu ON bspu.code=ksppt.point_up_code"+
+ " LEFT JOIN lng_b_station_png bput ON bput.code=ksppt.point_up_trans_code"+
+ " LEFT JOIN lng_b_station_png bpdt ON bpdt.code=ksppt.point_dely_trans_code"+
" LEFT JOIN lng_supplier su_ys ON su_ys.su_code=ksppt.su_code" +
" WHERE ksppt.ksppp_id = #{kspppId}")
List queryLngContractSalesPngPointTransList(@Param("kspppId") Long kspppId);
From 06e8e5ed88ef8017a9b9ecda832b0973709c03d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=BC=A0=E7=A7=89=E5=8D=93?=
Date: Tue, 7 Apr 2026 17:51:27 +0800
Subject: [PATCH 4/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../module/fssp/callback/FsspCallback.java | 16 ++
.../module/fssp/dto/LngJkRpBillDto.java | 197 ++++++++++++++
.../xjrsoft/module/fssp/dto/LngJkRpDto.java | 182 +++++++++++++
.../module/fssp/request/AccessTokenReq.java | 41 +++
.../module/fssp/request/AppTokenReq.java | 36 +++
.../module/fssp/request/FsspDzhdfjReq.java | 16 ++
.../module/fssp/request/FsspDzhdxxReq.java | 36 +++
.../module/fssp/request/FsspPzReq.java | 36 +++
.../module/fssp/request/FsspYhjymxReq.java | 36 +++
.../module/fssp/response/AccessTokenResp.java | 25 ++
.../module/fssp/response/AppTokenResp.java | 25 ++
.../fssp/response/AsstactentryResp.java | 18 ++
.../module/fssp/response/BaseResponse.java | 14 +
.../module/fssp/response/DzhdxxResp.java | 126 +++++++++
.../module/fssp/response/FsspDataResp.java | 28 ++
.../module/fssp/response/FsspResp.java | 28 ++
.../fssp/response/ListgridviewapResp.java | 128 +++++++++
.../xjrsoft/module/fssp/response/PzResp.java | 149 +++++++++++
.../module/fssp/response/TokenResp.java | 35 +++
.../module/fssp/response/YhjymxResp.java | 132 ++++++++++
.../module/fssp/client/FsspHttpClient.java | 77 ++++++
.../module/fssp/config/FsspConfig.java | 44 ++++
.../xjrsoft/module/fssp/entity/LngJkRp.java | 233 +++++++++++++++++
.../module/fssp/entity/LngJkRpBill.java | 247 ++++++++++++++++++
.../module/fssp/handler/FsspJobHandler.java | 244 +++++++++++++++++
.../module/fssp/mapper/LngJkRpBillMapper.java | 17 ++
.../module/fssp/mapper/LngJkRpMapper.java | 17 ++
.../fssp/service/LngJkRpBillService.java | 17 ++
.../module/fssp/service/LngJkRpService.java | 17 ++
.../service/impl/LngJkRpBillServiceImpl.java | 20 ++
.../fssp/service/impl/LngJkRpServiceImpl.java | 20 ++
.../src/main/resources/bootstrap-dev.yml | 18 +-
32 files changed, 2273 insertions(+), 2 deletions(-)
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/callback/FsspCallback.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/dto/LngJkRpBillDto.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/dto/LngJkRpDto.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/AccessTokenReq.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/AppTokenReq.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspDzhdfjReq.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspDzhdxxReq.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspPzReq.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspYhjymxReq.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/AccessTokenResp.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/AppTokenResp.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/AsstactentryResp.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/BaseResponse.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/DzhdxxResp.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/FsspDataResp.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/FsspResp.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/ListgridviewapResp.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/PzResp.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/TokenResp.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/YhjymxResp.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/client/FsspHttpClient.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/config/FsspConfig.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/entity/LngJkRp.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/entity/LngJkRpBill.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/handler/FsspJobHandler.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/mapper/LngJkRpBillMapper.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/mapper/LngJkRpMapper.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/service/LngJkRpBillService.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/service/LngJkRpService.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/service/impl/LngJkRpBillServiceImpl.java
create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/service/impl/LngJkRpServiceImpl.java
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/callback/FsspCallback.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/callback/FsspCallback.java
new file mode 100644
index 0000000..65aafa2
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/callback/FsspCallback.java
@@ -0,0 +1,16 @@
+package com.xjrsoft.module.fssp.callback;
+
+
+/**
+ * FsspCallback接口定义了一个回调方法的规范
+ * 该接口用于实现回调机制,允许在特定事件发生时执行预定义的操作
+ */
+public interface FsspCallback {
+
+ /**
+ * 执行回调方法
+ * 当触发回调条件时,此方法将被调用
+ * 不接收任何参数,也不返回任何值
+ */
+ void execute(Resp resp);
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/dto/LngJkRpBillDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/dto/LngJkRpBillDto.java
new file mode 100644
index 0000000..432e4e3
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/dto/LngJkRpBillDto.java
@@ -0,0 +1,197 @@
+package com.xjrsoft.module.fssp.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 应用令牌响应类,用于封装应用令牌接口返回的数据
+ */
+@Data
+public class LngJkRpBillDto {
+
+ /**
+ * 电子回单id
+ */
+ private String id;
+
+ /**
+ * 单据编号
+ */
+ private String billno;
+
+ /**
+ * 资金组织编码, 公司三字码
+ */
+ private String orgNumber;
+
+ /**
+ * 资金组织名称
+ */
+ private String orgName;
+
+ /**
+ * 交易日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime bizdate;
+
+ /**
+ * 币别代码
+ */
+ private String currencyNumber;
+
+ /**
+ * 币别名称
+ */
+ private String currency;
+
+ /**
+ * 银行账号
+ */
+ private String accountbankNumber;
+
+ /**
+ * 银行账户名称
+ */
+ private String accountbank;
+
+ /**
+ * 明细交易时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime detaildatetime;
+
+ /**
+ * 摘要
+ */
+ private String description;
+
+ /**
+ * 业务类型, 1:普通 2:上划 3:下拨
+ */
+ private String biztype;
+
+ /**
+ * 业务参考号
+ */
+ private String bizrefno;
+
+ /**
+ * 付款金额
+ */
+ private BigDecimal debitamount;
+
+ /**
+ * 收款金额
+ */
+ private BigDecimal creditamount;
+
+ /**
+ * 对方单位
+ */
+ private String oppunit;
+
+ /**
+ * 对方账号
+ */
+ private String oppbanknumber;
+
+ /**
+ * 对方开户行
+ */
+ private String oppbank;
+
+ /**
+ * 明细流水号
+ */
+ private String detailid;
+
+ /**
+ * 电子回单号
+ */
+ private String receiptno;
+
+ /**
+ * 对账标识码
+ */
+ private String bankcheckflag;
+
+ /**
+ * 回单路径文件名
+ */
+ private String filepath;
+
+ /**
+ * 处理状态(N-未处理;E-错误;S-成功)
+ */
+ private String statusProc;
+
+ /**
+ * 处理日志
+ */
+ private String msgProc;
+
+ /**
+ * 处理时间
+ */
+ private LocalDateTime dateProc;
+
+ /**
+ * 供应链回单路径文件名
+ */
+ private String filepathAttr;
+
+ /**
+ * 附件处理状态(N-未处理;E-错误;S-成功)
+ */
+ private String statusProcAttr;
+
+ /**
+ * 附件处理日志
+ */
+ private String msgProcAttr;
+
+ /**
+ * 附件处理时间
+ */
+ private LocalDateTime dateProcAttr;
+
+ /**
+ * 创建人id
+ */
+ private Long createUserId;
+
+ /**
+ * 创建时间
+ */
+ private LocalDateTime createDate;
+
+ /**
+ * 修改人id
+ */
+ private Long modifyUserId;
+
+ /**
+ * 修改时间
+ */
+ private LocalDateTime modifyDate;
+
+ /**
+ * 租户id
+ */
+ private Long tenantId;
+
+ /**
+ * 部门id
+ */
+ private Long deptId;
+
+ /**
+ * 数据权限id
+ */
+ private Long ruleUserId;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/dto/LngJkRpDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/dto/LngJkRpDto.java
new file mode 100644
index 0000000..329fbfa
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/dto/LngJkRpDto.java
@@ -0,0 +1,182 @@
+package com.xjrsoft.module.fssp.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 应用令牌响应类,用于封装应用令牌接口返回的数据
+ */
+@Data
+public class LngJkRpDto {
+
+ /**
+ * 交易明细id
+ */
+ private String id;
+
+ /**
+ * 交易明细编号
+ */
+ private String billno;
+
+ /**
+ * 资金组织编码, 公司三字码
+ */
+ private String orgNumber;
+
+ /**
+ * 资金组织名称
+ */
+ private String orgName;
+
+ /**
+ * 交易日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime bizdate;
+
+ /**
+ * 记账日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime transdate;
+
+ /**
+ * 币别代码
+ */
+ private String currencyNumber;
+
+ /**
+ * 币别名称
+ */
+ private String currency;
+
+ /**
+ * 银行账号
+ */
+ private String accountbankNumber;
+
+ /**
+ * 银行账户名称
+ */
+ private String accountbank;
+
+ /**
+ * 交易时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime biztime;
+
+ /**
+ * 摘要
+ */
+ private String description;
+
+ /**
+ * 业务类型, 1:普通 2:上划 3:下拨
+ */
+ private String biztype;
+
+ /**
+ * 业务参考号
+ */
+ private String bizrefno;
+
+ /**
+ * 付款金额
+ */
+ private BigDecimal debitamount;
+
+ /**
+ * 收款金额
+ */
+ private BigDecimal creditamount;
+
+ /**
+ * 余额
+ */
+ private BigDecimal transbalance;
+
+ /**
+ * 对方户名
+ */
+ private String oppunit;
+
+ /**
+ * 对方账号
+ */
+ private String oppbanknumber;
+
+ /**
+ * 对方开户行
+ */
+ private String oppbank;
+
+ /**
+ * 对账标识码
+ */
+ private String bankcheckflag;
+
+ /**
+ * 电子回单号
+ */
+ private String receiptno;
+
+ /**
+ * 明细流水号
+ */
+ private String detailid;
+
+ /**
+ * 处理状态(N-未处理;E-错误;S-成功)
+ */
+ private String statusProc;
+
+ /**
+ * 处理日志
+ */
+ private String msgProc;
+
+ /**
+ * 处理时间
+ */
+ private LocalDateTime dateProc;
+
+ /**
+ * 创建人id
+ */
+ private Long createUserId;
+
+ /**
+ * 创建时间
+ */
+ private LocalDateTime createDate;
+
+ /**
+ * 修改人id
+ */
+ private Long modifyUserId;
+
+ /**
+ * 修改时间
+ */
+ private LocalDateTime modifyDate;
+
+ /**
+ * 租户id
+ */
+ private Long tenantId;
+
+ /**
+ * 部门id
+ */
+ private Long deptId;
+
+ /**
+ * 数据权限id
+ */
+ private Long ruleUserId;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/AccessTokenReq.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/AccessTokenReq.java
new file mode 100644
index 0000000..bcfbcc2
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/AccessTokenReq.java
@@ -0,0 +1,41 @@
+package com.xjrsoft.module.fssp.request;
+
+import lombok.Data;
+
+
+/**
+ * 登录API接口请求的参数信息
+ */
+@Data
+public class AccessTokenReq {
+
+ /**
+ * 用户工号
+ */
+ private String user;
+
+ /**
+ * 应用令牌
+ */
+ private String apptoken;
+
+ /**
+ * 租户ID
+ */
+ private String tenantid;
+
+ /**
+ * 数据中心ID,如果不输入,默认会选取租户下的缺省数据中心
+ */
+ private String accountId;
+
+ /**
+ * 用户类型,默认值:WorkerNumber
+ */
+ private String usertype;
+
+ /**
+ * 语言,默认值:zh_CN
+ */
+ private String language;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/AppTokenReq.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/AppTokenReq.java
new file mode 100644
index 0000000..dfeff0f
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/AppTokenReq.java
@@ -0,0 +1,36 @@
+package com.xjrsoft.module.fssp.request;
+
+import lombok.Data;
+
+
+/**
+ * 获取应用令牌请求的参数信息
+ */
+@Data
+public class AppTokenReq {
+
+ /**
+ * 第三方appId
+ */
+ private String appId;
+
+ /**
+ * 第三方app的密码
+ */
+ private String appSecuret;
+
+ /**
+ * 租户ID
+ */
+ private String tenantid;
+
+ /**
+ * 数据中心ID,如果不输入,默认会选取租户下的缺省数据中心
+ */
+ private String accountId;
+
+ /**
+ * 语言,默认值:zh_CN
+ */
+ private String language;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspDzhdfjReq.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspDzhdfjReq.java
new file mode 100644
index 0000000..0573889
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspDzhdfjReq.java
@@ -0,0 +1,16 @@
+package com.xjrsoft.module.fssp.request;
+
+import lombok.Data;
+
+/**
+ * 获取电子回单附件请求的参数信息
+ */
+@Data
+public class FsspDzhdfjReq {
+
+ // 路径文件名
+ private String path;
+
+ // API访问标识
+ private String accesstoken;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspDzhdxxReq.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspDzhdxxReq.java
new file mode 100644
index 0000000..1a163f2
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspDzhdxxReq.java
@@ -0,0 +1,36 @@
+package com.xjrsoft.module.fssp.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 获取电子回单信息请求的参数信息
+ */
+@Data
+public class FsspDzhdxxReq {
+
+ // 资金组织
+ private String orgNumber;
+
+ // 银行账号
+ private String accountbank;
+
+ // 电子回单号
+ private String receiptno;
+
+ // 交易开始时间
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime beginDate;
+
+ // 交易结束时间
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime endDate;
+
+ // 请求数据大小
+ private Integer pageSize;
+
+ // 分页页码
+ private Integer pageNo;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspPzReq.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspPzReq.java
new file mode 100644
index 0000000..6c68472
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspPzReq.java
@@ -0,0 +1,36 @@
+package com.xjrsoft.module.fssp.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 获取电子回单信息请求的参数信息
+ */
+@Data
+public class FsspPzReq {
+
+ // 核算组织
+ private String orgNumber;
+
+ // 凭证号
+ private String billno;
+
+ // 交易开始时间
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime beginDate;
+
+ // 交易结束时间
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime endDate;
+
+ // 源单id
+ private String sourcebill;
+
+ // 请求数据大小
+ private Integer pageSize;
+
+ // 分页页码
+ private Integer pageNo;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspYhjymxReq.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspYhjymxReq.java
new file mode 100644
index 0000000..8dc1486
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/request/FsspYhjymxReq.java
@@ -0,0 +1,36 @@
+package com.xjrsoft.module.fssp.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 获取银行交易明细请求的参数信息
+ */
+@Data
+public class FsspYhjymxReq {
+
+ // 资金组织
+ private String orgNumber;
+
+ // 银行账号
+ private String accountbank;
+
+ // 对账标识码
+ private String bankcheckflag;
+
+ // 交易开始时间
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime beginDate;
+
+ // 交易结束时间
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime endDate;
+
+ // 请求数据大小
+ private Integer pageSize;
+
+ // 分页页码
+ private Integer pageNo;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/AccessTokenResp.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/AccessTokenResp.java
new file mode 100644
index 0000000..e141c9a
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/AccessTokenResp.java
@@ -0,0 +1,25 @@
+package com.xjrsoft.module.fssp.response;
+
+import lombok.Data;
+
+/**
+ * 应用令牌响应类,用于封装应用令牌接口返回的数据
+ */
+@Data
+public class AccessTokenResp {
+
+ // 请求是否成功的标识,true或false
+ private String success;
+
+ // 错误代码,0是成功,其他为错误
+ private String errorCode;
+
+ // 错误消息
+ private String errorDesc;
+
+ // API访问标识,后续其他API访问需要使用。在用access_token访问的过程中,如果response error code的值为1,表示该access_token已经超时。
+ private String accessToken;
+
+ // Token过期时间
+ private Long expireTime;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/AppTokenResp.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/AppTokenResp.java
new file mode 100644
index 0000000..7438efd
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/AppTokenResp.java
@@ -0,0 +1,25 @@
+package com.xjrsoft.module.fssp.response;
+
+import lombok.Data;
+
+/**
+ * 应用令牌响应类,用于封装应用令牌接口返回的数据
+ */
+@Data
+public class AppTokenResp {
+
+ // 请求是否成功的标识,true或false
+ private String success;
+
+ // 错误代码,0是成功,其他为错误
+ private String errorCode;
+
+ // 错误消息
+ private String errorDesc;
+
+ // 应用令牌
+ private String appToken;
+
+ // Token过期时间
+ private Long expireTime;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/AsstactentryResp.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/AsstactentryResp.java
new file mode 100644
index 0000000..1a24155
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/AsstactentryResp.java
@@ -0,0 +1,18 @@
+package com.xjrsoft.module.fssp.response;
+
+import lombok.Data;
+
+/**
+ * 应用令牌响应类,用于封装应用令牌接口返回的数据
+ */
+@Data
+public class AsstactentryResp {
+
+ private String flexfield;
+
+ private String number;
+
+ private String ebsnumber;
+
+ private String name;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/BaseResponse.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/BaseResponse.java
new file mode 100644
index 0000000..caf68ca
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/BaseResponse.java
@@ -0,0 +1,14 @@
+package com.xjrsoft.module.fssp.response;
+
+/**
+ * FsspResponse 接口,用于定义从联邦服务安全平台(FSSP)获取响应的基本结构
+ * 该接口提供了一个方法来判断请求是否成功执行
+ */
+public interface BaseResponse {
+
+ /**
+ * 判断请求是否成功执行
+ * @return 如果请求成功返回true,否则返回false
+ */
+ boolean isSuccess();
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/DzhdxxResp.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/DzhdxxResp.java
new file mode 100644
index 0000000..530a36c
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/DzhdxxResp.java
@@ -0,0 +1,126 @@
+package com.xjrsoft.module.fssp.response;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 应用令牌响应类,用于封装应用令牌接口返回的数据
+ */
+@Data
+public class DzhdxxResp {
+
+ /**
+ * 电子回单id
+ */
+ private String id;
+
+ /**
+ * 单据编号
+ */
+ private String billno;
+
+ /**
+ * 资金组织编码, 公司三字码
+ */
+ private String orgNumber;
+
+ /**
+ * 资金组织名称
+ */
+ private String orgName;
+
+ /**
+ * 交易日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime bizdate;
+
+ /**
+ * 币别代码
+ */
+ private String currencyNumber;
+
+ /**
+ * 币别名称
+ */
+ private String currency;
+
+ /**
+ * 银行账号
+ */
+ private String accountbankNumber;
+
+ /**
+ * 银行账户名称
+ */
+ private String accountbank;
+
+ /**
+ * 明细交易时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime detaildatetime;
+
+ /**
+ * 摘要
+ */
+ private String description;
+
+ /**
+ * 业务类型, 1:普通 2:上划 3:下拨
+ */
+ private String biztype;
+
+ /**
+ * 业务参考号
+ */
+ private String bizrefno;
+
+ /**
+ * 付款金额
+ */
+ private BigDecimal debitamount;
+
+ /**
+ * 收款金额
+ */
+ private BigDecimal creditamount;
+
+ /**
+ * 对方单位
+ */
+ private String oppunit;
+
+ /**
+ * 对方账号
+ */
+ private String oppbanknumber;
+
+ /**
+ * 对方开户行
+ */
+ private String oppbank;
+
+ /**
+ * 明细流水号
+ */
+ private String detailid;
+
+ /**
+ * 电子回单号
+ */
+ private String receiptno;
+
+ /**
+ * 对账标识码
+ */
+ private String bankcheckflag;
+
+ /**
+ * 回单路径文件名
+ */
+ private String filepath;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/FsspDataResp.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/FsspDataResp.java
new file mode 100644
index 0000000..8933a83
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/FsspDataResp.java
@@ -0,0 +1,28 @@
+package com.xjrsoft.module.fssp.response;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * FsspDataResponse类是一个泛型类,用于封装分页数据响应结果
+ * @param 泛型类型,表示分页数据中列表元素的类型
+ */
+@Data
+public class FsspDataResp {
+
+ // 是否最后一页
+ private Boolean lastPage;
+
+ // 请求数据大小,即每页显示的记录数
+ private Integer pageSize;
+
+ // 分页页码,从1开始计数
+ private Integer pageNo;
+
+ // 总记录数,即所有数据中的总条目数
+ private Integer totalCount;
+
+ // 明细列表,包含当前页的所有数据记录
+ private List rows;
+}
\ No newline at end of file
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/FsspResp.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/FsspResp.java
new file mode 100644
index 0000000..35555c1
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/FsspResp.java
@@ -0,0 +1,28 @@
+package com.xjrsoft.module.fssp.response;
+
+import lombok.Data;
+
+/**
+ * FsspResponse 接口,用于定义从联邦服务安全平台(FSSP)获取响应的基本结构
+ * 该接口提供了一个方法来判断请求是否成功执行
+ */
+@Data
+public class FsspResp implements BaseResponse {
+
+ // 响应状态,true、false
+ private String success;
+
+ // 错误代码
+ private String errorCode;
+
+ // 返回消息
+ private String message;
+
+ // 响应数据,泛型类型
+ private FsspDataResp data;
+
+ @Override
+ public boolean isSuccess() {
+ return "true".equals(success);
+ }
+}
\ No newline at end of file
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/ListgridviewapResp.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/ListgridviewapResp.java
new file mode 100644
index 0000000..37b8b98
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/ListgridviewapResp.java
@@ -0,0 +1,128 @@
+package com.xjrsoft.module.fssp.response;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 应用令牌响应类,用于封装应用令牌接口返回的数据
+ */
+@Data
+public class ListgridviewapResp {
+
+ /**
+ * 摘要
+ */
+ private String tallyabstract;
+
+ /**
+ * 会计科目编码
+ */
+ private String account;
+
+ /**
+ * 计量单位编码
+ */
+ private String unit;
+
+ /**
+ * 数量
+ */
+ private BigDecimal quantities;
+
+ /**
+ * 单价
+ */
+ private BigDecimal price;
+
+ /**
+ * 币别编码
+ */
+ private String cuscurrency;
+
+ /**
+ * 汇率
+ */
+ private BigDecimal exrate;
+
+ /**
+ * 原币金额
+ */
+ private BigDecimal oriamount;
+
+ /**
+ * 原币借方
+ */
+ private BigDecimal tallyamount;
+
+ /**
+ * 借方金额(本位币)
+ */
+ private BigDecimal standardamount;
+
+ /**
+ * 原币贷方
+ */
+ private BigDecimal loanamount;
+
+ /**
+ * 贷方金额(本位币)
+ */
+ private BigDecimal loanstanamount;
+
+ /**
+ * 帐户
+ */
+ private String assgrpnum;
+
+ /**
+ * 帐户说明
+ */
+ private String assgrpname;
+
+ /**
+ * 船名
+ */
+ private String shipsname;
+
+ /**
+ * 航次
+ */
+ private String cruises;
+
+ /**
+ * 列次
+ */
+ private String trains;
+
+ /**
+ * 备用1
+ */
+ private String remark1;
+
+ /**
+ * 备用2
+ */
+ private String remark2;
+
+ /**
+ * 备用3
+ */
+ private String remark3;
+
+ /**
+ * 同步ebs单价
+ */
+ private BigDecimal newquantity;
+
+ /**
+ * 同步ebs数量
+ */
+ private BigDecimal newprice;
+
+ /**
+ * 核算维度
+ */
+ List asstactentry;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/PzResp.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/PzResp.java
new file mode 100644
index 0000000..46954fd
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/PzResp.java
@@ -0,0 +1,149 @@
+package com.xjrsoft.module.fssp.response;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 应用令牌响应类,用于封装应用令牌接口返回的数据
+ */
+@Data
+public class PzResp {
+
+ /**
+ * 凭证号
+ */
+ private String billno;
+
+ /**
+ * 核算组织编码, 公司三字码
+ */
+ private String orgNumber;
+
+ /**
+ * 核算组织名称
+ */
+ private String orgName;
+
+ /**
+ * 期间
+ */
+ private String period;
+
+ /**
+ * 附件数
+ */
+ private Integer attachment;
+
+ /**
+ * 账簿类型,默认:100001
+ */
+ private String accountbook;
+
+ /**
+ * 业务日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime bizdate;
+
+ /**
+ * 记账日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime bookdate;
+
+ /**
+ * 凭证类型
+ */
+ private String vouchertype;
+
+ /**
+ * 账簿类型
+ */
+ private String booktype;
+
+ /**
+ * 参考消息
+ */
+ private String description;
+
+ /**
+ * 状态,A:暂存 B:已提交 C:已审核 D:已作废
+ */
+ private String billstatus;
+
+ /**
+ * 是否过账
+ */
+ private Boolean ispost;
+
+ /**
+ * 复核状态,a:无需复核 b:待复核 c:已复核
+ */
+ private String ischeck;
+
+ /**
+ * 创建人工号
+ */
+ private String creatorNumber;
+
+ /**
+ * 创建人
+ */
+ private String creator;
+
+ /**
+ * 创建时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime createtime;
+
+ /**
+ * 制单人工号
+ */
+ private String submitterNumber;
+
+ /**
+ * 制单人
+ */
+ private String submitter;
+
+ /**
+ * 审核人工号
+ */
+ private String auditorNumber;
+
+ /**
+ * 审核人
+ */
+ private String auditor;
+
+ /**
+ * 审核时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime auditdate;
+
+ /**
+ * 过账人工号
+ */
+ private String posterNumber;
+
+ /**
+ * 过账人
+ */
+ private String poster;
+
+ /**
+ * 过账时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime posttime;
+
+ /**
+ * 记账明细
+ */
+ List listgridviewap;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/TokenResp.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/TokenResp.java
new file mode 100644
index 0000000..be405cd
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/TokenResp.java
@@ -0,0 +1,35 @@
+package com.xjrsoft.module.fssp.response;
+
+import lombok.Data;
+
+/**
+ * FsspResponse类是一个泛型类,用于封装Fssp接口的响应数据
+ * @param 泛型类型,表示响应数据的具体类型
+ */
+@Data
+public class TokenResp implements BaseResponse {
+
+ // 响应状态
+ private String state;
+
+ // 错误代码
+ private String errorCode;
+
+ // 错误信息
+ private String errorMsg;
+
+ // 响应消息
+ private String message;
+
+ // 响应数据,泛型类型
+ private T data;
+
+ /**
+ * 判断响应是否成功
+ * @return 如果状态为"success"则返回true,否则返回false
+ */
+ public boolean isSuccess() {
+ return state != null && "success".equals(state);
+ }
+
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/YhjymxResp.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/YhjymxResp.java
new file mode 100644
index 0000000..3d8eebd
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/fssp/response/YhjymxResp.java
@@ -0,0 +1,132 @@
+package com.xjrsoft.module.fssp.response;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 应用令牌响应类,用于封装应用令牌接口返回的数据
+ */
+@Data
+public class YhjymxResp {
+
+ /**
+ * 交易明细id
+ */
+ private String id;
+
+ /**
+ * 交易明细编号
+ */
+ private String billno;
+
+ /**
+ * 资金组织编码, 公司三字码
+ */
+ private String orgNumber;
+
+ /**
+ * 资金组织名称
+ */
+ private String orgName;
+
+ /**
+ * 交易日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime bizdate;
+
+ /**
+ * 记账日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime transdate;
+
+ /**
+ * 币别代码
+ */
+ private String currencyNumber;
+
+ /**
+ * 币别名称
+ */
+ private String currency;
+
+ /**
+ * 银行账号
+ */
+ private String accountbankNumber;
+
+ /**
+ * 银行账户名称
+ */
+ private String accountbank;
+
+ /**
+ * 交易时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime biztime;
+
+ /**
+ * 摘要
+ */
+ private String description;
+
+ /**
+ * 业务类型, 1:普通 2:上划 3:下拨
+ */
+ private String biztype;
+
+ /**
+ * 业务参考号
+ */
+ private String bizrefno;
+
+ /**
+ * 付款金额
+ */
+ private BigDecimal debitamount;
+
+ /**
+ * 收款金额
+ */
+ private BigDecimal creditamount;
+
+ /**
+ * 余额
+ */
+ private BigDecimal transbalance;
+
+ /**
+ * 对方户名
+ */
+ private String oppunit;
+
+ /**
+ * 对方账号
+ */
+ private String oppbanknumber;
+
+ /**
+ * 对方开户行
+ */
+ private String oppbank;
+
+ /**
+ * 对账标识码
+ */
+ private String bankcheckflag;
+
+ /**
+ * 电子回单号
+ */
+ private String receiptno;
+
+ /**
+ * 明细流水号
+ */
+ private String detailid;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/client/FsspHttpClient.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/client/FsspHttpClient.java
new file mode 100644
index 0000000..905b8c5
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/client/FsspHttpClient.java
@@ -0,0 +1,77 @@
+package com.xjrsoft.module.fssp.client;
+
+import com.pictc.enums.BusinessCode;
+import com.xjrsoft.common.exception.BusinessException;
+import com.xjrsoft.module.fssp.callback.FsspCallback;
+import com.xjrsoft.module.fssp.response.BaseResponse;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.*;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import java.net.URI;
+import java.util.Collections;
+import java.util.Map;
+
+@Slf4j
+@Component
+public class FsspHttpClient {
+
+ private static RestTemplate rest = new RestTemplate();
+
+ public static void post(Req req,
+ String url,
+ Class clz,
+ FsspCallback callback) {
+ post(req, url, clz, null, callback);
+ }
+
+ public static void post(Req req,
+ String url,
+ Class clz,
+ Map headerMap,
+ FsspCallback callback) {
+ HttpHeaders headers = new HttpHeaders();
+ headers.setContentType(MediaType.APPLICATION_JSON);
+ if (headerMap != null) {
+ for (Map.Entry entry : headerMap.entrySet()) {
+ headers.add(entry.getKey(), entry.getValue());
+ }
+ }
+ RequestEntity request = new RequestEntity(req, headers, HttpMethod.POST, URI.create(url));
+ ResponseEntity responseEntity = rest.exchange(request, clz);
+ if(!responseEntity.hasBody()) {
+ throw new BusinessException(BusinessCode.of(10901,"接口请求失败"));
+ }
+ Resp response = responseEntity.getBody();
+ if(response != null && response.isSuccess()) {
+ callback.execute(response);
+ }else {
+ throw new BusinessException(BusinessCode.of(10902,"接口响应失败"));
+ }
+ }
+
+ public static byte[] downloadFile(String path, String accessToken, String url) {
+ StringBuilder builder = new StringBuilder();
+ builder.append(url);
+ builder.append("?path=");
+ builder.append(path);
+ builder.append("&accesstoken=");
+ builder.append(accessToken);
+ HttpHeaders headers = new HttpHeaders();
+ headers.setAccept(Collections.singletonList(MediaType.APPLICATION_OCTET_STREAM));
+ headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
+ HttpEntity entity = new HttpEntity<>(headers);
+ ResponseEntity response = rest.exchange(
+ url,
+ HttpMethod.GET,
+ entity,
+ byte[].class
+ );
+ if (response.getStatusCode() == HttpStatus.OK) {
+ return response.getBody();
+ } else {
+ throw new BusinessException(BusinessCode.of(10902,"下载失败,HTTP状态码: " + response.getStatusCode()));
+ }
+ }
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/config/FsspConfig.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/config/FsspConfig.java
new file mode 100644
index 0000000..3811252
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/config/FsspConfig.java
@@ -0,0 +1,44 @@
+package com.xjrsoft.module.fssp.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.stereotype.Component;
+
+@Data
+@Component
+@RefreshScope
+@ConfigurationProperties("xjrsoft.fssp")
+public class FsspConfig {
+
+ private String appTokenUrl;
+
+ private String appId;
+
+ private String appSecuret;
+
+ private String tenantid;
+
+ private String accountId;
+
+ private String language;
+
+ private String loginUrl;
+
+ private String user;
+
+ private String usertype;
+
+ private String yhjymxUrl;
+
+ private String orgNumber;
+
+ private String accountbank;
+
+ private String dzhdxxUrl;
+
+ private String dzhdfjUrl;
+
+ private String pzUrl;
+
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/entity/LngJkRp.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/entity/LngJkRp.java
new file mode 100644
index 0000000..6b6699b
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/entity/LngJkRp.java
@@ -0,0 +1,233 @@
+package com.xjrsoft.module.fssp.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+
+/**
+* @title: 接口-收付款
+* @Author 管理员
+* @Date: 2025-12-24
+* @Version 1.0
+*/
+@Data
+@TableName("lng_jk_rp")
+@ApiModel(value = "接口-收付款对象", description = "接口-收付款")
+public class LngJkRp implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 交易明细id
+ */
+ @ApiModelProperty("交易明细id")
+ @TableId
+ private Long id;
+
+ /**
+ * 交易明细编号
+ */
+ @ApiModelProperty("交易明细编号")
+ private String billno;
+
+ /**
+ * 资金组织编码, 公司三字码
+ */
+ @ApiModelProperty("资金组织编码(公司三字码)")
+ private String orgNumber;
+
+ /**
+ * 资金组织名称
+ */
+ @ApiModelProperty("资金组织名称")
+ private String orgName;
+
+ /**
+ * 交易日期
+ */
+ @ApiModelProperty("交易日期(格式:yyyy-MM-dd)")
+ private LocalDateTime bizdate;
+
+ /**
+ * 记账日期
+ */
+ @ApiModelProperty("记账日期(格式:yyyy-MM-dd)")
+ private LocalDateTime transdate;
+
+ /**
+ * 币别代码
+ */
+ @ApiModelProperty("币别代码")
+ private String currencyNumber;
+
+ /**
+ * 币别名称
+ */
+ @ApiModelProperty("币别名称")
+ private String currency;
+
+ /**
+ * 银行账号
+ */
+ @ApiModelProperty("银行账号")
+ private String accountbankNumber;
+
+ /**
+ * 银行账户名称
+ */
+ @ApiModelProperty("银行账户名称")
+ private String accountbank;
+
+ /**
+ * 交易时间
+ */
+ @ApiModelProperty("交易时间(格式:yyyy-MM-dd HH:mm:ss)")
+ private LocalDateTime biztime;
+
+ /**
+ * 摘要
+ */
+ @ApiModelProperty("摘要")
+ private String description;
+
+ /**
+ * 业务类型, 1:普通 2:上划 3:下拨
+ */
+ @ApiModelProperty("业务类型(1:普通,2:上划,3:下拨)")
+ private String biztype;
+
+ /**
+ * 业务参考号
+ */
+ @ApiModelProperty("业务参考号")
+ private String bizrefno;
+
+ /**
+ * 付款金额
+ */
+ @ApiModelProperty("付款金额")
+ private BigDecimal debitamount;
+
+ /**
+ * 收款金额
+ */
+ @ApiModelProperty("收款金额")
+ private BigDecimal creditamount;
+
+ /**
+ * 余额
+ */
+ @ApiModelProperty("余额")
+ private BigDecimal transbalance;
+
+ /**
+ * 对方户名
+ */
+ @ApiModelProperty("对方户名")
+ private String oppunit;
+
+ /**
+ * 对方账号
+ */
+ @ApiModelProperty("对方账号")
+ private String oppbanknumber;
+
+ /**
+ * 对方开户行
+ */
+ @ApiModelProperty("对方开户行")
+ private String oppbank;
+
+ /**
+ * 对账标识码
+ */
+ @ApiModelProperty("对账标识码(可用于匹配付款单)")
+ private String bankcheckflag;
+
+ /**
+ * 电子回单号
+ */
+ @ApiModelProperty("电子回单号(可用于匹配电子回单)")
+ private String receiptno;
+
+ /**
+ * 明细流水号
+ */
+ @ApiModelProperty("明细流水号")
+ private String detailid;
+
+ /**
+ * 处理状态(N-未处理;E-错误;S-成功)
+ */
+ @ApiModelProperty("处理状态(N-未处理;E-错误;S-成功)")
+ private String statusProc;
+
+ /**
+ * 处理日志
+ */
+ @ApiModelProperty("处理日志")
+ private String msgProc;
+
+ /**
+ * 处理时间
+ */
+ @ApiModelProperty("处理时间")
+ private LocalDateTime dateProc;
+
+ /**
+ * 创建人id
+ */
+ @ApiModelProperty("创建人id")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUserId;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty("创建时间")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createDate;
+
+ /**
+ * 修改人id
+ */
+ @ApiModelProperty("修改人id")
+ @TableField(fill = FieldFill.UPDATE)
+ private Long modifyUserId;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty("修改时间")
+ @TableField(fill = FieldFill.UPDATE)
+ private LocalDateTime modifyDate;
+
+ /**
+ * 租户id
+ */
+ @ApiModelProperty("租户id")
+ private Long tenantId;
+
+ /**
+ * 部门id
+ */
+ @ApiModelProperty("部门id")
+ @TableField(fill = FieldFill.INSERT)
+ private Long deptId;
+
+ /**
+ * 数据权限id
+ */
+ @ApiModelProperty("数据权限id")
+ @TableField(fill = FieldFill.INSERT)
+ private Long ruleUserId;
+}
\ No newline at end of file
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/entity/LngJkRpBill.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/entity/LngJkRpBill.java
new file mode 100644
index 0000000..1ded37b
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/entity/LngJkRpBill.java
@@ -0,0 +1,247 @@
+package com.xjrsoft.module.fssp.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @title: 接口-收付款-电子回单
+ * @Author 管理员
+ * @Date: 2025-12-24
+ * @Version 1.0
+ */
+@Data
+@TableName("lng_jk_rp_bill")
+@ApiModel(value = "接口-收付款-电子回单对象", description = "接口-收付款-电子回单")
+public class LngJkRpBill {
+
+ /**
+ * 电子回单id
+ */
+ @ApiModelProperty("电子回单id")
+ @TableId
+ private String id;
+
+ /**
+ * 单据编号
+ */
+ @ApiModelProperty("单据编号")
+ private String billno;
+
+ /**
+ * 资金组织编码(公司三字码)
+ */
+ @ApiModelProperty("资金组织编码(公司三字码)")
+ private String orgNumber;
+
+ /**
+ * 资金组织名称
+ */
+ @ApiModelProperty("资金组织名称")
+ private String orgName;
+
+ /**
+ * 交易日期(格式:yyyy-MM-dd)
+ */
+ @ApiModelProperty("交易日期(格式:yyyy-MM-dd)")
+ private LocalDateTime bizdate;
+
+ /**
+ * 币别代码
+ */
+ @ApiModelProperty("币别代码")
+ private String currencyNumber;
+
+ /**
+ * 币别名称
+ */
+ @ApiModelProperty("币别名称")
+ private String currency;
+
+ /**
+ * 银行账号
+ */
+ @ApiModelProperty("银行账号")
+ private String accountbankNumber;
+
+ /**
+ * 银行账户名称
+ */
+ @ApiModelProperty("银行账户名称")
+ private String accountbank;
+
+ /**
+ * 明细交易时间(格式:yyyy-MM-dd HH:mm:ss)
+ */
+ @ApiModelProperty("明细交易时间(格式:yyyy-MM-dd HH:mm:ss)")
+ private LocalDateTime detaildatetime;
+
+ /**
+ * 摘要
+ */
+ @ApiModelProperty("摘要")
+ private String description;
+
+ /**
+ * 业务类型(1:普通,2:上划,3:下拨)
+ */
+ @ApiModelProperty("业务类型(1:普通,2:上划,3:下拨)")
+ private String biztype;
+
+ /**
+ * 业务参考号
+ */
+ @ApiModelProperty("业务参考号")
+ private String bizrefno;
+
+ /**
+ * 付款金额
+ */
+ @ApiModelProperty("付款金额")
+ private BigDecimal debitamount;
+
+ /**
+ * 收款金额
+ */
+ @ApiModelProperty("收款金额")
+ private BigDecimal creditamount;
+
+ /**
+ * 对方单位
+ */
+ @ApiModelProperty("对方单位")
+ private String oppunit;
+
+ /**
+ * 对方账号
+ */
+ @ApiModelProperty("对方账号")
+ private String oppbanknumber;
+
+ /**
+ * 对方开户行
+ */
+ @ApiModelProperty("对方开户行")
+ private String oppbank;
+
+ /**
+ * 明细流水号
+ */
+ @ApiModelProperty("明细流水号")
+ private String detailid;
+
+ /**
+ * 电子回单号(可用于匹配银行交易明细)
+ */
+ @ApiModelProperty("电子回单号(可用于匹配银行交易明细)")
+ private String receiptno;
+
+ /**
+ * 对账标识码
+ */
+ @ApiModelProperty("对账标识码")
+ private String bankcheckflag;
+
+ /**
+ * 回单路径文件名
+ */
+ @ApiModelProperty("回单路径文件名")
+ private String filepath;
+
+ /**
+ * 处理状态(N-未处理;E-错误;S-成功)
+ */
+ @ApiModelProperty("处理状态(N-未处理;E-错误;S-成功)")
+ private String statusProc;
+
+ /**
+ * 处理日志
+ */
+ @ApiModelProperty("处理日志")
+ private String msgProc;
+
+ /**
+ * 处理时间
+ */
+ @ApiModelProperty("处理时间")
+ private LocalDateTime dateProc;
+
+ /**
+ * 供应链回单路径文件名
+ */
+ @ApiModelProperty("供应链回单路径文件名")
+ private String filepathAttr;
+
+ /**
+ * 附件处理状态(N-未处理;E-错误;S-成功)
+ */
+ @ApiModelProperty("附件处理状态(N-未处理;E-错误;S-成功)")
+ private String statusProcAttr;
+
+ /**
+ * 附件处理日志
+ */
+ @ApiModelProperty("附件处理日志")
+ private String msgProcAttr;
+
+ /**
+ * 附件处理时间
+ */
+ @ApiModelProperty("附件处理时间")
+ private LocalDateTime dateProcAttr;
+
+ /**
+ * 创建人id
+ */
+ @ApiModelProperty("创建人id")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUserId;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty("创建时间")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createDate;
+
+ /**
+ * 修改人id
+ */
+ @ApiModelProperty("修改人id")
+ @TableField(fill = FieldFill.UPDATE)
+ private Long modifyUserId;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty("修改时间")
+ @TableField(fill = FieldFill.UPDATE)
+ private LocalDateTime modifyDate;
+
+ /**
+ * 租户id
+ */
+ @ApiModelProperty("租户id")
+ private Long tenantId;
+
+ /**
+ * 部门id
+ */
+ @ApiModelProperty("部门id")
+ @TableField(fill = FieldFill.INSERT)
+ private Long deptId;
+
+ /**
+ * 数据权限id
+ */
+ @ApiModelProperty("数据权限id")
+ @TableField(fill = FieldFill.INSERT)
+ private Long ruleUserId;
+}
diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/handler/FsspJobHandler.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/handler/FsspJobHandler.java
new file mode 100644
index 0000000..6bf2e60
--- /dev/null
+++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/fssp/handler/FsspJobHandler.java
@@ -0,0 +1,244 @@
+package com.xjrsoft.module.fssp.handler;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.google.api.client.util.Lists;
+import com.google.api.client.util.Maps;
+import com.pictc.enums.BusinessCode;
+import com.xjrsoft.common.exception.BusinessException;
+import com.xjrsoft.common.utils.CollectionUtils;
+import com.xjrsoft.common.utils.RedisUtil;
+import com.xjrsoft.module.fssp.client.FsspHttpClient;
+import com.xjrsoft.module.fssp.config.FsspConfig;
+import com.xjrsoft.module.fssp.dto.LngJkRpBillDto;
+import com.xjrsoft.module.fssp.dto.LngJkRpDto;
+import com.xjrsoft.module.fssp.entity.LngJkRp;
+import com.xjrsoft.module.fssp.entity.LngJkRpBill;
+import com.xjrsoft.module.fssp.request.*;
+import com.xjrsoft.module.fssp.response.*;
+import com.xjrsoft.module.fssp.service.LngJkRpBillService;
+import com.xjrsoft.module.fssp.service.LngJkRpService;
+import com.xjrsoft.module.system.client.IFileClient;
+import com.xjrsoft.module.system.dto.FileUploadDto;
+import com.xjrsoft.module.system.vo.LngFileUploadVo;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicReference;
+
+@Slf4j
+@Component
+public class FsspJobHandler {
+
+ private FsspConfig config;
+
+ private RedisUtil redisUtil;
+
+ private LngJkRpService lngJkRpService;
+
+ private LngJkRpBillService lngJkRpBillService;
+
+ private IFileClient iFileClient;
+
+ private static final String FSSP_APP_TOKEN = "fssp_app_token";
+
+ private static final String FSSP_ACCESS_TOKEN = "fssp_access_token";
+
+ private static final String ACCESSTOKEN = "accesstoken";
+
+ public FsspJobHandler(FsspConfig config,
+ RedisUtil redisUtil,
+ LngJkRpService lngJkRpService,
+ LngJkRpBillService lngJkRpBillService,
+ IFileClient iFileClient) {
+ this.config = config;
+ this.redisUtil = redisUtil;
+ this.lngJkRpService = lngJkRpService;
+ this.lngJkRpBillService = lngJkRpBillService;
+ this.iFileClient = iFileClient;
+ }
+
+ private String getAppToken() {
+ AppTokenReq appTokenReq = new AppTokenReq();
+ appTokenReq.setAppId(config.getAppId());
+ appTokenReq.setAppSecuret(config.getAppSecuret());
+ appTokenReq.setTenantid(config.getTenantid());
+ appTokenReq.setAccountId(config.getAccountId());
+ appTokenReq.setLanguage(config.getLanguage());
+ AtomicReference appToken = new AtomicReference<>();
+ FsspHttpClient.post(appTokenReq, config.getAppTokenUrl(), TokenResp.class, resp -> {
+ AppTokenResp data = (AppTokenResp) resp.getData();
+ if ("0".equals(data.getErrorCode())) {
+ appToken.set(data.getAppToken());
+ redisUtil.set(FSSP_APP_TOKEN, data.getAppToken(), data.getExpireTime());
+ } else {
+ throw new BusinessException(BusinessCode.of(10903,"AppToken已过期"));
+ }
+ });
+ return appToken.toString();
+ }
+
+ private String getAccessToken() {
+ AccessTokenReq accessTokenReq = new AccessTokenReq();
+ accessTokenReq.setUser(config.getUser());
+ String appToken = redisUtil.get(FSSP_APP_TOKEN);
+ accessTokenReq.setApptoken(StringUtils.isNotBlank(appToken) ? appToken : this.getAppToken());
+ accessTokenReq.setTenantid(config.getTenantid());
+ accessTokenReq.setAccountId(config.getAccountId());
+ accessTokenReq.setUsertype(config.getUsertype());
+ accessTokenReq.setLanguage(config.getLanguage());
+ AtomicReference accessToken = new AtomicReference<>();
+ FsspHttpClient.post(accessTokenReq, config.getLoginUrl(), TokenResp.class, resp -> {
+ AccessTokenResp data = (AccessTokenResp) resp.getData();
+ if ("0".equals(data.getErrorCode())) {
+ accessToken.set(data.getAccessToken());
+ redisUtil.set(FSSP_ACCESS_TOKEN, data.getAccessToken(), data.getExpireTime());
+ } else {
+ throw new BusinessException(BusinessCode.of(10903,"AccessToken已过期"));
+ }
+ });
+ return accessToken.toString();
+ }
+
+ @XxlJob("yhjymxJobHandler")
+ public void yhjymxJobHandler(Integer pageNo) {
+ log.info("定时任务---银行交易明细查询---开始");
+ FsspYhjymxReq fsspYhjymxReq = new FsspYhjymxReq();
+ fsspYhjymxReq.setOrgNumber(config.getOrgNumber());
+ fsspYhjymxReq.setAccountbank(config.getAccountbank());
+ fsspYhjymxReq.setBankcheckflag(null);
+ // 开始时间必须小于等于结束时间,且开始时间和结束时间不可相差60天以上
+ fsspYhjymxReq.setBeginDate(LocalDateTime.now());
+ fsspYhjymxReq.setEndDate(LocalDateTime.now());
+ fsspYhjymxReq.setPageSize(100);
+ fsspYhjymxReq.setPageNo(pageNo == null ? 1 : pageNo);
+ List dtoList = Lists.newArrayList();
+ Map headers = Maps.newHashMap();
+ String accesstoken = redisUtil.get(FSSP_ACCESS_TOKEN);
+ headers.put(ACCESSTOKEN, StringUtils.isNotBlank(accesstoken) ? accesstoken : this.getAccessToken());
+ FsspHttpClient.post(fsspYhjymxReq, config.getYhjymxUrl(), FsspResp.class, headers, resp -> {
+ FsspDataResp data = resp.getData();
+ if (data != null) {
+ data.getRows().forEach(row -> {
+ LngJkRpDto lngJkRpDto = (LngJkRpDto) row;
+ lngJkRpDto.setStatusProc("N");
+ lngJkRpDto.setMsgProc("接收成功");
+ lngJkRpDto.setDateProc(LocalDateTime.now());
+ dtoList.add(lngJkRpDto);
+ });
+ List list = BeanUtil.copyToList(dtoList, LngJkRp.class);
+ lngJkRpService.saveOrUpdateBatch(list);
+ if (!data.getLastPage()) {
+ yhjymxJobHandler(fsspYhjymxReq.getPageNo() + 1);
+ }
+ }
+ });
+ log.info("定时任务---电子回单信息查询---结束");
+ }
+
+ @XxlJob("dzhdxxJobHandler")
+ public void dzhdxxJobHandler(Integer pageNo) {
+ log.info("定时任务---电子回单信息查询---开始");
+ FsspDzhdxxReq fsspDzhdxxReq = new FsspDzhdxxReq();
+ fsspDzhdxxReq.setOrgNumber(config.getOrgNumber());
+ fsspDzhdxxReq.setAccountbank(config.getAccountbank());
+ fsspDzhdxxReq.setReceiptno(null);
+ // 开始时间必须小于等于结束时间,且开始时间和结束时间不可相差60天以上
+ fsspDzhdxxReq.setBeginDate(LocalDateTime.now());
+ fsspDzhdxxReq.setEndDate(LocalDateTime.now());
+ fsspDzhdxxReq.setPageSize(100);
+ fsspDzhdxxReq.setPageNo(pageNo == null ? 1 : pageNo);
+ List dtoList = Lists.newArrayList();
+ Map headers = Maps.newHashMap();
+ String accesstoken = redisUtil.get(FSSP_ACCESS_TOKEN);
+ headers.put(ACCESSTOKEN, StringUtils.isNotBlank(accesstoken) ? accesstoken : this.getAccessToken());
+ FsspHttpClient.post(fsspDzhdxxReq, config.getDzhdxxUrl(), FsspResp.class, headers, resp -> {
+ FsspDataResp data = resp.getData();
+ if (data != null) {
+ data.getRows().forEach(row -> {
+ LngJkRpBillDto lngJkRpBillDto = (LngJkRpBillDto) row;
+ lngJkRpBillDto.setStatusProc("N");
+ lngJkRpBillDto.setMsgProc("接收成功");
+ lngJkRpBillDto.setDateProc(LocalDateTime.now());
+ lngJkRpBillDto.setStatusProcAttr("N");
+ dtoList.add(lngJkRpBillDto);
+ });
+ List list = BeanUtil.copyToList(dtoList, LngJkRpBill.class);
+ lngJkRpBillService.saveOrUpdateBatch(list);
+ if (!data.getLastPage()) {
+ dzhdxxJobHandler(fsspDzhdxxReq.getPageNo() + 1);
+ }
+ }
+ });
+ log.info("定时任务---电子回单信息查询---结束");
+ }
+
+ @XxlJob("dzhdfjJobHandler")
+ public void dzhdfjJobHandler() {
+ log.info("定时任务---电子回单附件下载---开始");
+ List statusList = Lists.newArrayList();
+ statusList.add("N");
+ statusList.add("E");
+ List list = lngJkRpBillService.list(new LambdaQueryWrapper()
+ .in(LngJkRpBill::getStatusProc, statusList));
+ if (CollectionUtils.isNotEmpty(list)) {
+ list.forEach(x -> {
+ downloadFile(x);
+ });
+ }
+ log.info("定时任务---批量下载电子回单附件---结束");
+ }
+
+ private void downloadFile(LngJkRpBill lngJkRpBill) {
+ String accesstoken = redisUtil.get(FSSP_ACCESS_TOKEN);
+ if (StringUtils.isBlank(accesstoken)) {
+ accesstoken = this.getAccessToken();
+ }
+ byte[] fileByte = FsspHttpClient.downloadFile(lngJkRpBill.getFilepath(), accesstoken, config.getDzhdfjUrl());
+ FileUploadDto uploadDto = new FileUploadDto();
+ uploadDto.setBuffer(fileByte);
+ uploadDto.setTableName("lng_jk_rp_bill");
+ try {
+ LngFileUploadVo vo = iFileClient.upload(uploadDto);
+ lngJkRpBill.setFilepathAttr(vo.getFilePath());
+ lngJkRpBill.setStatusProcAttr("S");
+ lngJkRpBill.setDateProcAttr(LocalDateTime.now());
+ } catch (Exception e) {
+ lngJkRpBill.setStatusProcAttr("E");
+ lngJkRpBill.setMsgProcAttr(e.getMessage());
+ lngJkRpBill.setDateProcAttr(LocalDateTime.now());
+ }
+ }
+
+ @XxlJob("pzJobHandler")
+ public void pzJobHandler(Integer pageNo) {
+ FsspPzReq fsspPzReq = new FsspPzReq();
+ fsspPzReq.setOrgNumber(config.getOrgNumber());
+ fsspPzReq.setBillno(null);
+ // 开始时间必须小于等于结束时间,且开始时间和结束时间不可相差60天以上
+ fsspPzReq.setBeginDate(LocalDateTime.now());
+ fsspPzReq.setEndDate(LocalDateTime.now());
+ fsspPzReq.setSourcebill(null);
+ fsspPzReq.setPageSize(100);
+ fsspPzReq.setPageNo(pageNo == null ? 1 : pageNo);
+ List