From 21dfddd6e09d32a50a636fff62a3d8a2ed362d5a Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期四, 20 八月 2026 16:29:49 +0800
Subject: [PATCH] feat:合同标的物新增导入 银行流水强制确认 简易合同新增 发票重开 合同标的物导入

---
 platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Contract.java                               |   14 
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/BankStatementServiceImpl.java         |  340 ++++++++++++++++++++
 platformx-business-finance-biz/src/main/resources/mapper/ContractMapper.xml                                                     |    6 
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractSubjectMatterService.java          |    6 
 platformx-business-finance-biz/src/main/resources/mapper/PaymentSlipMapper.xml                                                  |    6 
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractController.java                 |   12 
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractInvoiceController.java          |    9 
 platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/ContractInvoice.java                        |    8 
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractSubjectMatterServiceImpl.java |   55 +++
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractSubjectMatterController.java    |   15 
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java              |   60 +++
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java        |    4 
 platformx-business-finance-biz/src/main/resources/mapper/HistoryOverdueMapper.xml                                               |    6 
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java              |   12 
 platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/dto/ContractAddDTO.java                            |    6 
 platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/ContractPaymentSchedule.java                |    6 
 platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/ContractDetailVo.java                           |    7 
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractInvoiceServiceImpl.java       |  154 +++++++-
 platformx-boot/src/main/resources/application-dev.yml                                                                           |   14 
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/BankStatementController.java            |   56 +++
 platformx-business-finance-biz/src/main/resources/mapper/ContractInvoiceMapper.xml                                              |    6 
 platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/BankStatement.java                          |    4 
 platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/SubjectMatterExcelVO.java                       |   37 ++
 platformx-business-finance-biz/src/main/resources/mapper/CurrentOverdueMapper.xml                                               |    6 
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractService.java                       |    2 
 platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/StatementContractVo.java                        |   30 +
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/BankStatementService.java                  |   10 
 platformx-business-finance-biz/src/main/resources/mapper/ContractOutBoundMapper.xml                                             |   12 
 platformx-business-finance-biz/src/main/resources/template/jxc/product.xlsx                                                     |    0 
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractInvoiceService.java                |    2 
 30 files changed, 818 insertions(+), 87 deletions(-)

diff --git a/platformx-boot/src/main/resources/application-dev.yml b/platformx-boot/src/main/resources/application-dev.yml
index 8418c31..98ca39e 100644
--- a/platformx-boot/src/main/resources/application-dev.yml
+++ b/platformx-boot/src/main/resources/application-dev.yml
@@ -7,7 +7,7 @@
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     druid:
-      url: jdbc:mysql://192.168.0.146:3306/platformxx_business_finance_biz?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
+      url: jdbc:mysql://192.168.0.146:3306/platformxx_business_finance_biz1?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
       username: root
       password: root
       driver-class-name: com.mysql.cj.jdbc.Driver
@@ -53,10 +53,10 @@
 #bip 閰嶇疆
 bip:
   flag: false
-  url: https://bip01.res.jzeg.cn
-  codes: 111111111111111111111111,222222222222222222
-  appKey: 800b2805c5584f0abb8705acbe487dc5
-  appSecret: 59ba72c62a6a27203d7e517787a738be89ba55cb
+  url: https://bip-pre.res.jzeg.cn/iuap-api-gateway
+  codes: 10860,10802,10801,10861,10668,1086004,1086005
+  appKey: 95578dbdeabc41049b75e8af3dd66d19
+  appSecret: f3a098d7848f87042b39d2cc1645b6c0ffa065cd
 
 BWInvoice:
   flag: false
@@ -64,7 +64,9 @@
 
 # 5瀹跺崟浣峣d
 dept:
-  smj: 2056555602756063234
+  smj: 2089995177814495234
+  smjsc: 2089996921978040321
+  smjzt: 2089997578009128962
   sgb: 2056556196124250113
   jxc: 2056556317461270529
   tfgs: 2056556421857497090
diff --git a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/dto/ContractAddDTO.java b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/dto/ContractAddDTO.java
index 0870e9f..e991047 100644
--- a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/dto/ContractAddDTO.java
+++ b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/dto/ContractAddDTO.java
@@ -248,6 +248,12 @@
 	@Schema(description = "浠樻鏂瑰紡")
 	private String paymentMethod;
 
+	@Schema(description = "绠�鏄撳悎鍚岄檮浠禪RL")
+	private String attachmentSimpleUrl;
+
+	@Schema(description = "绠�鏄撳悎鍚岄檮浠跺悕绉�")
+	private String attachmentSimpleName;
+
 	private List<ContractPaymentScheduleAddDTO> contractPaymentSchedule;
 
 	private List<ContractSubjectMatterAddDTO> contractSubjectMatter;
diff --git a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/BankStatement.java b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/BankStatement.java
index 3efb129..cc20152 100644
--- a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/BankStatement.java
+++ b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/BankStatement.java
@@ -53,7 +53,7 @@
 	private Date tranDate;
 
 	@Schema(description = "浜ゆ槗閲戦")
-	@Column(columnDefinition = "decimal(10,2) comment '浜ゆ槗閲戦'")
+	@Column(columnDefinition = "decimal(14,2) comment '浜ゆ槗閲戦'")
 	private BigDecimal tranAmount;
 
 	@Schema(description = "鏁版嵁ID")
@@ -73,7 +73,7 @@
 	private Long contractId;
 
 	@Schema(description = "鍚堝悓纭閲戦")
-	@Column(columnDefinition = "decimal(10,2) comment '鍚堝悓纭閲戦'")
+	@Column(columnDefinition = "decimal(14,2) default 0.0 comment '鍚堝悓纭閲戦'")
 	private BigDecimal confirmAmount;
 
 	@Schema(description = "浜ゆ槗璇存槑")
diff --git a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Contract.java b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Contract.java
index d6c349c..5a9978c 100644
--- a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Contract.java
+++ b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Contract.java
@@ -55,7 +55,7 @@
     private String partyB;
 
     @Schema(description = "鍚堝悓閲戦")
-    @Column(columnDefinition = "decimal(10,2) comment '鍚堝悓閲戦'")
+    @Column(columnDefinition = "decimal(20,2) comment '鍚堝悓閲戦'")
     private BigDecimal amount;
 
     @Schema(description = "甯佺锛圕NY/USD绛夛級")
@@ -103,6 +103,14 @@
     @Schema(description = "鍒版湡鏃ユ湡")
     @Column(columnDefinition = "date comment '鍒版湡鏃ユ湡'")
     private Date expirationDate;
+
+	@Schema(description = "绠�鏄撳悎鍚岄檮浠禪RL")
+	@Column(columnDefinition = "VARCHAR(500) comment '绠�鏄撳悎鍚岄檮浠禪RL'")
+	private String attachmentSimpleUrl;
+
+	@Schema(description = "绠�鏄撳悎鍚岄檮浠跺悕绉�")
+	@Column(columnDefinition = "VARCHAR(100) comment '绠�鏄撳悎鍚岄檮浠跺悕绉�'")
+	private String attachmentSimpleName;
 
     @Schema(description = "鍚堝悓闄勪欢URL")
     @Column(columnDefinition = "VARCHAR(500) comment '鍚堝悓闄勪欢URL'")
@@ -152,7 +160,7 @@
 	private String billingStatus;
 
 	@Schema(description = "宸插紑绁ㄩ噾棰�")
-	@Column(columnDefinition = "decimal(10,2) comment '宸插紑绁ㄩ噾棰�'")
+	@Column(columnDefinition = "decimal(20,2) comment '宸插紑绁ㄩ噾棰�'")
 	private BigDecimal billingAmout;
 
 	@Schema(description = "涓嬩竴闃舵")
@@ -168,7 +176,7 @@
 	private String salesModel;
 
 	@Schema(description = "宸蹭粯娆鹃噾棰�")
-	@Column(columnDefinition = "decimal(10,2) comment '宸蹭粯娆鹃噾棰�'")
+	@Column(columnDefinition = "decimal(20,2) comment '宸蹭粯娆鹃噾棰�'")
 	private BigDecimal paidAmount;
 
 	@Schema(description = "鍚堝悓鍒嗙被")
diff --git a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/ContractInvoice.java b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/ContractInvoice.java
index d1c7a42..852792a 100644
--- a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/ContractInvoice.java
+++ b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/ContractInvoice.java
@@ -118,6 +118,14 @@
 	@Column(columnDefinition = "varchar(64) comment '鍏宠仈璇锋眰ID'")
 	private String bwRequestId;
 
+	@Schema(description = "鍏宠仈璇锋眰鍙傛暟")
+	@Column(columnDefinition = "text comment '鍏宠仈璇锋眰鍙傛暟'")
+	private String bwRequestParam;
+
+	@Schema(description = "璇锋眰缁撴灉")
+	@Column(columnDefinition = "char comment '璇锋眰缁撴灉 0/澶辫触 1/鎴愬姛'")
+	private String bwRequestResult;
+
 	@Schema(description = "棰勬敹寮�绁ㄦ爣璇�")
 	@Column(columnDefinition = "char default '0' comment '0/鍚� 1/鏄�'")
 	private String advanceFlag;
diff --git a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/ContractPaymentSchedule.java b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/ContractPaymentSchedule.java
index 9eb2f8d..c2c355c 100644
--- a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/ContractPaymentSchedule.java
+++ b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/ContractPaymentSchedule.java
@@ -33,7 +33,7 @@
     // ==================== 鍏宠仈淇℃伅 ====================
 
     @Schema(description = "鍏宠仈鍚堝悓ID")
-    @Column(columnDefinition = "bigint not null comment '鍏宠仈鍚堝悓ID'")
+    @Column(columnDefinition = "bigint comment '鍏宠仈鍚堝悓ID'")
     private Long contractId;
 
     @Schema(description = "鍚堝悓鍚嶇О")
@@ -77,11 +77,11 @@
     private BigDecimal paymentRatio;
 
     @Schema(description = "璁″垝鏀舵閲戦锛堟牴鎹悎鍚屾�婚噾棰�*姣斾緥鑷姩璁$畻锛�")
-    @Column(columnDefinition = "decimal(10,2) comment '璁″垝鏀舵閲戦'")
+    @Column(columnDefinition = "decimal(14,2) comment '璁″垝鏀舵閲戦'")
     private BigDecimal plannedAmount;
 
     @Schema(description = "瀹為檯鏀舵閲戦")
-    @Column(columnDefinition = "decimal(10,2) comment '瀹為檯鏀舵閲戦'")
+    @Column(columnDefinition = "decimal(14,2) comment '瀹為檯鏀舵閲戦'")
     private BigDecimal actualAmount;
 
     // ==================== 鏃跺簭鎺у埗 ====================
diff --git a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/ContractDetailVo.java b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/ContractDetailVo.java
index 091e25e..3761788 100644
--- a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/ContractDetailVo.java
+++ b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/ContractDetailVo.java
@@ -3,7 +3,6 @@
 import com.by4cloud.platformx.business.entity.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.persistence.Column;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -241,6 +240,12 @@
 
 	private BigDecimal advancePayment;
 
+	@Schema(description = "绠�鏄撳悎鍚岄檮浠禪RL")
+	private String attachmentSimpleUrl;
+
+	@Schema(description = "绠�鏄撳悎鍚岄檮浠跺悕绉�")
+	private String attachmentSimpleName;
+
 	private List<ContractPaymentSchedule> contractPaymentSchedule;
 
 	private List<ContractSubjectMatter> contractSubjectMatter;
diff --git a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/StatementContractVo.java b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/StatementContractVo.java
new file mode 100644
index 0000000..4dd42ca
--- /dev/null
+++ b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/StatementContractVo.java
@@ -0,0 +1,30 @@
+package com.by4cloud.platformx.business.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.persistence.Column;
+import lombok.Data;
+
+import java.math.BigDecimal;
+@Data
+public class StatementContractVo {
+
+	private Long id;
+
+	@Schema(description = "閾惰娴佹按ID")
+	private Long statetId;
+
+	@Schema(description = "浜ゆ槗娴佹按")
+	private String bankSeqNo;
+
+	@Schema(description = "鍚堝悓ID")
+	private Long contractId;
+
+	@Schema(description = "鍚堝悓纭閲戦")
+	private BigDecimal confirmAmount;
+
+	private String contractNo;
+
+	private String partyA;
+
+	private BigDecimal amount;
+}
diff --git a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/SubjectMatterExcelVO.java b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/SubjectMatterExcelVO.java
new file mode 100644
index 0000000..71a2d0b
--- /dev/null
+++ b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/SubjectMatterExcelVO.java
@@ -0,0 +1,37 @@
+package com.by4cloud.platformx.business.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.by4cloud.platformx.common.excel.annotation.ExcelLine;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class SubjectMatterExcelVO {
+
+	/**
+	 * 瀵煎叆鏃跺�欏洖鏄捐鍙�
+	 */
+	@ExcelLine
+	@ExcelIgnore
+	private Long lineNum;
+
+	@ExcelProperty("鏍囩殑鐗╁悕绉�")
+	private String materialName;
+
+	@NotBlank(message = "erp缂栫爜涓嶈兘涓虹┖")
+	@ExcelProperty("erp缂栫爜")
+	private String materialCode;
+
+	@NotNull(message = "鍗曚环涓嶈兘涓虹┖")
+	@ExcelProperty("鍗曚环")
+	private BigDecimal unitPrice;
+
+	@NotNull(message = "鏁伴噺涓嶈兘涓虹┖")
+	@ExcelProperty("鏁伴噺")
+	private BigDecimal quantity;
+
+}
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/BankStatementController.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/BankStatementController.java
index ac7e2f1..afb7a11 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/BankStatementController.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/BankStatementController.java
@@ -120,4 +120,60 @@
     public List<BankStatement> export(BankStatement bankStatement,Long[] ids) {
         return bankStatementService.list(Wrappers.lambdaQuery(bankStatement).in(ArrayUtil.isNotEmpty(ids), BankStatement::getId, ids));
     }
+
+	/**
+	 * 閫氳繃id鏌ヨ閾惰娴佹按鍘嗗彶纭
+	 * @param id id
+	 * @return R
+	 */
+	@Operation(summary = "閫氳繃id鏌ヨ閾惰娴佹按鍘嗗彶纭" , description = "閫氳繃id鏌ヨ閾惰娴佹按鍘嗗彶纭" )
+	@GetMapping("/history/{id}" )
+	public R getHistoryById(@PathVariable("id" ) Long id) {
+		return bankStatementService.getHistoryById(id);
+	}
+
+	/**
+	 * 閫氳繃id鍒犻櫎閾惰娴佹按鍘嗗彶纭
+	 * @param id id
+	 * @return R
+	 */
+	@Operation(summary = "閫氳繃id鍒犻櫎閾惰娴佹按鍘嗗彶纭" , description = "閫氳繃id鍒犻櫎閾惰娴佹按鍘嗗彶纭" )
+	@GetMapping("/itemDel/{id}" )
+	public R delHistoryById(@PathVariable("id" ) Long id) {
+		return bankStatementService.delHistoryById(id);
+	}
+
+	/**
+	 * 閫氳繃id閫�鍥為摱琛屾祦姘村巻鍙�
+	 * @param id id
+	 * @return R
+	 */
+	@Operation(summary = "閫氳繃id閫�鍥為摱琛屾祦姘村巻鍙�" , description = "閫氳繃id閫�鍥為摱琛屾祦姘村巻鍙�" )
+	@GetMapping("/backHis/{id}" )
+	public R backHis(@PathVariable("id" ) Long id) {
+		return bankStatementService.backHis(id);
+	}
+
+	/**
+	 * 閫氳繃id閫�鍥為摱琛屾祦姘翠綑棰�
+	 * @param id id
+	 * @return R
+	 */
+	@Operation(summary = "閫氳繃id閫�鍥為摱琛屾祦姘翠綑棰�" , description = "閫氳繃id閫�鍥為摱琛屾祦姘翠綑棰�" )
+	@GetMapping("/backBal/{id}" )
+	public R backBal(@PathVariable("id" ) Long id) {
+		return bankStatementService.backBal(id);
+	}
+
+	/**
+	 * 閫氳繃id閫�鍥為摱琛屾祦姘村叏閮�
+	 * @param id id
+	 * @return R
+	 */
+	@Operation(summary = "閫氳繃id閫�鍥為摱琛屾祦姘村叏閮�" , description = "閫氳繃id閫�鍥為摱琛屾祦姘村叏閮�" )
+	@GetMapping("/backAll/{id}" )
+	public R backAll(@PathVariable("id" ) Long id) {
+		return bankStatementService.backAll(id);
+	}
+
 }
\ No newline at end of file
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractController.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractController.java
index f858f61..0ade98b 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractController.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractController.java
@@ -89,6 +89,18 @@
         return contractService.add(addDTO);
     }
 
+	/**
+	 * 鏂板绠�鏄撳悎鍚�
+	 * @param addDTO 鍚堝悓绠$悊
+	 * @return R
+	 */
+	@Operation(summary = "鏂板绠�鏄撳悎鍚�" , description = "鏂板绠�鏄撳悎鍚�" )
+	@SysLog("鏂板绠�鏄撳悎鍚�" )
+	@PostMapping("/addSimple")
+	public R addSimple(@RequestBody ContractAddDTO addDTO) {
+		return contractService.addSimple(addDTO);
+	}
+
     /**
      * 淇敼鍚堝悓绠$悊
      * @param updateDTO 鍚堝悓绠$悊
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractInvoiceController.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractInvoiceController.java
index 95c50e3..8f81a5b 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractInvoiceController.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractInvoiceController.java
@@ -141,6 +141,15 @@
 	}
 
 	/**
+	 * 閲嶆柊寮�绁�
+	 * @return
+	 */
+	@GetMapping("/refresh/{invoiceId}")
+	public R refresh(@PathVariable("invoiceId")Long invoiceId) {
+		return contractInvoiceService.refresh(invoiceId);
+	}
+
+	/**
 	 * 绾㈢エ鏌ヨ
 	 * @return
 	 */
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractSubjectMatterController.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractSubjectMatterController.java
index 3652f12..2d49bad 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractSubjectMatterController.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractSubjectMatterController.java
@@ -6,7 +6,10 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.by4cloud.platformx.business.entity.ContractSubjectMatter;
+import com.by4cloud.platformx.business.vo.ProductExcelVO;
+import com.by4cloud.platformx.business.vo.SubjectMatterExcelVO;
 import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.common.excel.annotation.RequestExcel;
 import com.by4cloud.platformx.common.log.annotation.SysLog;
 import com.by4cloud.platformx.business.service.ContractSubjectMatterService;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -17,6 +20,7 @@
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.Operation;
 import lombok.RequiredArgsConstructor;
+import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -136,4 +140,15 @@
 	public R selectSubjectMatter(@PathVariable("contractId" ) Long contractId) {
 		return contractSubjectMatterService.selectSubjectMatter(contractId);
 	}
+
+	/**
+	 * 瀵煎叆鏍囩殑鐗�
+	 * @param excelVOList
+	 * @param bindingResult
+	 * @return
+	 */
+	@PostMapping("/importSubjectMatter")
+	public R importSubjectMatter(@RequestExcel List<SubjectMatterExcelVO> excelVOList, BindingResult bindingResult) {
+		return contractSubjectMatterService.importSubjectMatter(excelVOList, bindingResult);
+	}
 }
\ No newline at end of file
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/BankStatementService.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/BankStatementService.java
index 72f5663..32bf17c 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/BankStatementService.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/BankStatementService.java
@@ -8,4 +8,14 @@
 public interface BankStatementService extends IIService<BankStatement> {
 
 	R edit(BankStatementUpdateDTO updateDTO);
+
+	R getHistoryById(Long id);
+
+	R delHistoryById(Long id);
+
+	R backBal(Long id);
+
+	R backAll(Long id);
+
+	R backHis(Long id);
 }
\ No newline at end of file
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractInvoiceService.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractInvoiceService.java
index 8aeb719..05563f5 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractInvoiceService.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractInvoiceService.java
@@ -32,4 +32,6 @@
 	Page pageScope(Page page, ContractQueryDTO queryDTO);
 
 	R getContractHouseWater(Long contractId);
+
+	R refresh(Long invoiceId);
 }
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractService.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractService.java
index b3394f0..49fb6ab 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractService.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractService.java
@@ -64,4 +64,6 @@
     void exportContractSMJGYPMMWord(Long id, HttpServletResponse response);
 
 	void exportContractJXCXSWord(Long id, HttpServletResponse response);
+
+	R addSimple(ContractAddDTO addDTO);
 }
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractSubjectMatterService.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractSubjectMatterService.java
index 5c37dfb..72190b0 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractSubjectMatterService.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractSubjectMatterService.java
@@ -2,11 +2,17 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.by4cloud.platformx.business.entity.ContractSubjectMatter;
+import com.by4cloud.platformx.business.vo.SubjectMatterExcelVO;
 import com.by4cloud.platformx.common.core.util.R;
+import org.springframework.validation.BindingResult;
+
+import java.util.List;
 
 public interface ContractSubjectMatterService extends IService<ContractSubjectMatter> {
 
     R selectSubjectMatterProcess(Long id);
 
     R selectSubjectMatter(Long contractId);
+
+    R importSubjectMatter(List<SubjectMatterExcelVO> excelVOList, BindingResult bindingResult);
 }
\ No newline at end of file
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/BankStatementServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/BankStatementServiceImpl.java
index 0bc4219..ad2c82a 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/BankStatementServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/BankStatementServiceImpl.java
@@ -6,8 +6,10 @@
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.by4cloud.platformx.admin.api.entity.SysDept;
 import com.by4cloud.platformx.admin.api.feign.RemoteDeptService;
@@ -20,8 +22,10 @@
 import com.by4cloud.platformx.business.mapper.ContractMapper;
 import com.by4cloud.platformx.business.service.BankStatementService;
 import com.by4cloud.platformx.business.service.PaymentConfirmService;
+import com.by4cloud.platformx.business.vo.StatementContractVo;
 import com.by4cloud.platformx.common.core.util.R;
 import com.by4cloud.platformx.common.security.util.SecurityUtils;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
@@ -30,6 +34,7 @@
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 閾惰娴佹按
@@ -52,8 +57,8 @@
 	@Value("${bip.url}")
 	private String url;
 
-	@Value("${BWInvoice.flag}")
-	private Boolean bwFlag;
+	@Value("${bip.flag}")
+	private Boolean bipFlag;
 
 	@Override
 	public R edit(BankStatementUpdateDTO updateDTO) {
@@ -66,6 +71,15 @@
 		if (toPaidTotal.compareTo(statement.getTranAmount().subtract(statement.getConfirmAmount()))>0){
 			return R.failed("纭鏀舵鎬婚涓嶈兘瓒呰繃浜ゆ槗娴佹按閲戦");
 		}
+
+		//bip鎺ㄩ��
+		if (bipFlag) {
+			R r = pushSaveCollection(statement, updateDTO.getContractCollectionList());
+			if (!r.isOk()){
+				return r;
+			}
+		}
+
 		statement.setConfirmAmount(statement.getConfirmAmount().add(toPaidTotal));
 		baseMapper.updateById(statement);
 
@@ -88,16 +102,10 @@
 			paymentConfirmService.add(addDTO);
 		});
 
-
-
-		//bip鎺ㄩ��
-		if (bwFlag) {
-			pushSaveCollection(statement, updateDTO.getContractCollectionList());
-		}
 		return R.ok();
 	}
 
-	private void pushSaveCollection(BankStatement statement, List<StatementContractDTO> contractDTOList) {
+	private R pushSaveCollection(BankStatement statement, List<StatementContractDTO> contractDTOList) {
 		String accessToken = "";
 		if (redisTemplate.hasKey("BIP_TOKEN")) {
 			accessToken = (String) redisTemplate.opsForValue().get("BIP_TOKEN");
@@ -106,27 +114,33 @@
 		}
 		if (StrUtil.isEmpty(accessToken)) {
 			log.error("bip accessToken 鑾峰彇寮傚父");
-			return;
+			return R.failed("bip accessToken 鑾峰彇寮傚父");
 		}
 		String finalAccessToken = accessToken;
 
 		BusinessCustomer customer = businessCustomerMapper.selectById(statement.getBusGuestId());
 		if (ObjUtil.isNull(customer)||StrUtil.isEmpty(customer.getBipCode())){
 			log.error("鏌ヨ瀹㈡埛淇℃伅寮傚父");
-			return;
+			return R.failed("鏌ヨ瀹㈡埛淇℃伅寮傚父");
 		}
 		R<SysDept> r = remoteDeptService.getById(SecurityUtils.getUser().getCompId());
+		log.info("鏌ヨ鍗曚綅淇℃伅:{}",JSONObject.toJSONString(r.getData()));
 		if (!r.isOk()){
 			log.error("鏌ヨ鍗曚綅淇℃伅寮傚父");
-			return;
+			return R.failed("鏌ヨ鍗曚綅淇℃伅寮傚父");
 		}
 		SysDept dept = r.getData();
 		JSONObject params = genRequestParam(statement,dept,customer,contractDTOList);
 
 		log.info("鏀舵鍗曢泦鎴� Request:{}", params.toJSONString());
-		String result = HttpUtil.post(url + "/yonbip/EFI/receivable/save?access_token=" + finalAccessToken, params.toJSONString());
+		String result = HttpUtil.post(url + "/yonbip/EFI/collection/saveandsubmit?access_token=" + finalAccessToken, params.toJSONString());
 		log.info("鏀舵鍗曢泦鎴� Response:{}", result);
 
+		JSONObject resultJson = JSONObject.parseObject(result);
+		if (!resultJson.getString("code").equals("200")) {
+			return R.failed(resultJson.getString("message"));
+		}
+		return R.ok();
 	}
 
 	private JSONObject genRequestParam(BankStatement statement,SysDept dept,BusinessCustomer customer,List<StatementContractDTO> contractDTOList) {
@@ -139,8 +153,10 @@
 		data.put("customerCode",customer.getBipCode());//瀹㈡埛缂栫爜
 		data.put("financeOrgCode",dept.getBipCode());//寮�绁ㄧ粍缁囩紪鐮�
 		data.put("orgCode",dept.getBipCode());//涓氬姟缁勭粐缂栫爜
-		data.put("bustypeCode","");//浜ゆ槗绫诲瀷缂栫爜 鏆備及榛樿ZGYSFP锛岄攢鍞粯璁JHYXGLXT
+		data.put("bustypeCode","ar_colsale");// TODO 浜ゆ槗绫诲瀷缂栫爜 鏆備及榛樿ZGYSFP锛岃澶囬粯璁BYXGLXT鏆傛椂涓嶈兘鐢�
 		data.put("oriCurrencyCode","CNY");//甯佺
+		data.put("srcBillType","38");
+		data.put("srcBillNo",statement.getBankSeqNo());
 		data.put("_status","Insert");
 		JSONArray bodyItem = new JSONArray();
 		for (StatementContractDTO statementContractDTO:contractDTOList) {
@@ -156,4 +172,300 @@
 		jsonObject.put("data",data);
 		return  jsonObject;
 	}
+
+	@Override
+	public R getHistoryById(Long id) {
+		MPJLambdaWrapper<BankStatementItem> wrapper = new MPJLambdaWrapper<BankStatementItem>()
+				.selectAll(BankStatementItem.class)
+				.select(Contract::getContractNo)
+				.select(Contract::getPartyA)
+				.select(Contract::getAmount)
+				.leftJoin(Contract.class,Contract::getId,BankStatementItem::getContractId)
+				.eq(BankStatementItem::getCompId,SecurityUtils.getUser().getCompId())
+				.orderByDesc(BankStatementItem::getCreateTime);
+		return R.ok(bankStatementItemMapper.selectJoinList(StatementContractVo.class, wrapper));
+	}
+
+	@Override
+	public R delHistoryById(Long id) {
+
+		BankStatementItem statement = bankStatementItemMapper.selectById(id);
+		BankStatement bankStatement = baseMapper.selectById(statement.getStatetId());
+		Contract contract = contractMapper.selectById(statement.getContractId());
+		if (ObjUtil.isNull(contract)){
+			return R.failed("鍚堝悓淇℃伅寮傚父");
+		}
+		BusinessCustomer customer = businessCustomerMapper.selectById(contract.getPartyAId());
+		if (ObjUtil.isNull(customer)){
+			return R.failed("瀹㈡埛淇℃伅淇℃伅寮傚父");
+		}
+		R<SysDept> r = remoteDeptService.getById(contract.getPartyBId());
+		if (!r.isOk()){
+			return r;
+		}
+		//bip鎺ㄩ��
+		if (bipFlag) {
+			String accessToken = "";
+			if (redisTemplate.hasKey("BIP_TOKEN")) {
+				accessToken = (String) redisTemplate.opsForValue().get("BIP_TOKEN");
+			} else {
+				accessToken = paymentConfirmService.getAccessToken(accessToken);
+			}
+			if (StrUtil.isEmpty(accessToken)) {
+				log.error("bip accessToken 鑾峰彇寮傚父");
+				return R.failed("bip accessToken 鑾峰彇寮傚父");
+			}
+			String finalAccessToken = accessToken;
+			JSONObject request = genRefundParam(bankStatement,statement, contract, customer, r.getData());
+			log.info("鏀舵閫�娆惧崟-閫�娆惧崟涓�鍘嗗彶纭璇锋眰鍏ュ弬锛歿}", request.toJSONString());
+			String result = HttpUtil.post(url + "/yonbip/EFI/arRefund/saveandsubmit?access_token=" + finalAccessToken, request.toJSONString());
+			log.info("鏀舵閫�娆惧崟-閫�娆惧崟涓�鍘嗗彶纭璇锋眰鍥炲弬:{}", result);
+			JSONObject resultJson = JSONObject.parseObject(result);
+			if (!resultJson.getString("code").equals("200")) {
+				return R.failed(resultJson.getString("message"));
+			}
+		}
+		bankStatementItemMapper.deleteById(id);
+
+		bankStatement.setConfirmAmount(bankStatement.getConfirmAmount().subtract(statement.getConfirmAmount()));
+		baseMapper.updateById(bankStatement);
+		return R.ok();
+	}
+
+	private JSONObject genRefundParam(BankStatement bankStatement,BankStatementItem statement, Contract contract,BusinessCustomer customer, SysDept dept) {
+		JSONObject jsonObject = new JSONObject();
+		JSONObject data = new JSONObject();
+		data.put("billDate",DateUtil.now());
+		data.put("exchangeRate","1");//姹囩巼
+		data.put("exchangeRateDate",DateUtil.now());//姹囩巼鏃堕棿
+		data.put("objectType","1");
+		data.put("customerCode",customer.getBipCode());//瀹㈡埛缂栫爜
+		data.put("financeOrgCode",dept.getBipCode());//寮�绁ㄧ粍缁囩紪鐮�
+		data.put("orgCode",dept.getBipCode());//涓氬姟缁勭粐缂栫爜
+		data.put("bustypeCode","ar_refsale");//浜ゆ槗绫诲瀷缂栫爜 鏆備及榛樿ZGYSFP锛岄攢鍞粯璁JHYXGLXT
+		data.put("oriCurrencyCode","CNY");//甯佺
+		data.put("srcBillType","38");
+		data.put("srcBillNo",bankStatement.getBankSeqNo());
+		data.put("_status","Insert");
+		JSONArray bodyItem = new JSONArray();
+		JSONObject item = new JSONObject();
+		item.put("oriTaxIncludedAmount", statement.getConfirmAmount());
+		item.put("contractNo", contract.getContractNo());
+		item.put("quickTypeCode", "1");
+		item.put("_status", "Insert");
+		bodyItem.add(item);
+		data.put("bodyItem",bodyItem);
+		jsonObject.put("data",data);
+		return  jsonObject;
+	}
+
+	@Override
+	public R backBal(Long id) {
+		BankStatement bankStatement = baseMapper.selectById(id);
+		BusinessCustomer customer = businessCustomerMapper.selectById(bankStatement.getBusGuestId());
+		if (ObjUtil.isNull(customer)||StrUtil.isEmpty(customer.getBipCode())){
+			log.error("鏌ヨ瀹㈡埛淇℃伅寮傚父");
+			return R.failed("鏌ヨ瀹㈡埛淇℃伅寮傚父");
+		}
+		R<SysDept> r = remoteDeptService.getById(SecurityUtils.getUser().getCompId());
+		if (!r.isOk()){
+			log.error("鏌ヨ鍗曚綅淇℃伅寮傚父");
+			return R.failed("鏌ヨ鍗曚綅淇℃伅寮傚父");
+		}
+		SysDept dept = r.getData();
+		List<BankStatementItem> items = bankStatementItemMapper.selectList(Wrappers.<BankStatementItem>lambdaQuery()
+				.eq(BankStatementItem::getStatetId,id));
+		if (bipFlag){
+			String accessToken = "";
+			if (redisTemplate.hasKey("BIP_TOKEN")) {
+				accessToken = (String) redisTemplate.opsForValue().get("BIP_TOKEN");
+			} else {
+				accessToken = paymentConfirmService.getAccessToken(accessToken);
+			}
+			if (StrUtil.isEmpty(accessToken)) {
+				log.error("bip accessToken 鑾峰彇寮傚父");
+				return R.failed("bip accessToken 鑾峰彇寮傚父");
+			}
+			String finalAccessToken = accessToken;
+			JSONObject request = genBackBalParam(bankStatement,customer,dept,items);
+			log.info("鏀舵閫�娆惧崟-閫�娆句綑棰濊姹傚叆鍙傦細{}", request.toJSONString());
+			String result = HttpUtil.post(url + "/yonbip/EFI/arRefund/saveandsubmit?access_token=" + finalAccessToken, request.toJSONString());
+			log.info("鏀舵閫�娆惧崟-閫�娆句綑棰濊姹傚洖鍙�:{}", result);
+			JSONObject resultJson = JSONObject.parseObject(result);
+			if (!resultJson.getString("code").equals("200")) {
+				return R.failed(resultJson.getString("message"));
+			}
+		}
+		bankStatement.setTranAmount(bankStatement.getConfirmAmount());
+		baseMapper.updateById(bankStatement);
+		return R.ok();
+	}
+
+	private JSONObject genBackBalParam(BankStatement bankStatement, BusinessCustomer customer, SysDept dept, List<BankStatementItem> items) {
+		JSONObject jsonObject = new JSONObject();
+		JSONObject data = new JSONObject();
+		data.put("billDate",DateUtil.now());
+		data.put("exchangeRate","1");//姹囩巼
+		data.put("exchangeRateDate",DateUtil.now());//姹囩巼鏃堕棿
+		data.put("objectType","1");
+		data.put("customerCode",customer.getBipCode());//瀹㈡埛缂栫爜
+		data.put("financeOrgCode",dept.getBipCode());//寮�绁ㄧ粍缁囩紪鐮�
+		data.put("orgCode",dept.getBipCode());//涓氬姟缁勭粐缂栫爜
+		data.put("bustypeCode","ar_refsale");//浜ゆ槗绫诲瀷缂栫爜 鏆備及榛樿ZGYSFP锛岄攢鍞粯璁JHYXGLXT
+		data.put("oriCurrencyCode","CNY");//甯佺
+		data.put("srcBillType","38");
+		data.put("srcBillNo",bankStatement.getBankSeqNo());
+		data.put("_status","Insert");
+		JSONArray bodyItem = new JSONArray();
+		JSONObject item = new JSONObject();
+		item.put("oriTaxIncludedAmount", bankStatement.getTranAmount().subtract(bankStatement.getConfirmAmount()));
+		item.put("quickTypeCode", "1");
+		item.put("_status", "Insert");
+		bodyItem.add(item);
+		data.put("bodyItem",bodyItem);
+		jsonObject.put("data",data);
+		return  jsonObject;
+	}
+
+	@Override
+	public R backAll(Long id) {
+		BankStatement bankStatement = baseMapper.selectById(id);
+		BusinessCustomer customer = businessCustomerMapper.selectById(bankStatement.getBusGuestId());
+		if (ObjUtil.isNull(customer)||StrUtil.isEmpty(customer.getBipCode())){
+			log.error("鏌ヨ瀹㈡埛淇℃伅寮傚父");
+			return R.failed("鏌ヨ瀹㈡埛淇℃伅寮傚父");
+		}
+		R<SysDept> r = remoteDeptService.getById(SecurityUtils.getUser().getCompId());
+		if (!r.isOk()){
+			log.error("鏌ヨ鍗曚綅淇℃伅寮傚父");
+			return R.failed("鏌ヨ鍗曚綅淇℃伅寮傚父");
+		}
+		SysDept dept = r.getData();
+		List<BankStatementItem> items = bankStatementItemMapper.selectList(Wrappers.<BankStatementItem>lambdaQuery()
+				.eq(BankStatementItem::getStatetId,id));
+		if (bipFlag){
+			String accessToken = "";
+			if (redisTemplate.hasKey("BIP_TOKEN")) {
+				accessToken = (String) redisTemplate.opsForValue().get("BIP_TOKEN");
+			} else {
+				accessToken = paymentConfirmService.getAccessToken(accessToken);
+			}
+			if (StrUtil.isEmpty(accessToken)) {
+				log.error("bip accessToken 鑾峰彇寮傚父");
+				return R.failed("bip accessToken 鑾峰彇寮傚父");
+			}
+			String finalAccessToken = accessToken;
+			JSONObject request = genBackAllParam(bankStatement,customer,dept,items);
+			log.info("鏀舵閫�娆惧崟-閫�娆炬墍鏈夎姹傚叆鍙傦細{}", request.toJSONString());
+			String result = HttpUtil.post(url + "/yonbip/EFI/arRefund/saveandsubmit?access_token=" + finalAccessToken, request.toJSONString());
+			log.info("鏀舵閫�娆惧崟-閫�娆炬墍鏈夎姹傚洖鍙�:{}", result);
+			JSONObject resultJson = JSONObject.parseObject(result);
+			if (!resultJson.getString("code").equals("200")) {
+				return R.failed(resultJson.getString("message"));
+			}
+		}
+		bankStatement.setConfirmAmount(new BigDecimal("0"));
+		baseMapper.updateById(bankStatement);
+		return R.ok();
+	}
+
+	private JSONObject genBackAllParam(BankStatement bankStatement, BusinessCustomer customer, SysDept dept, List<BankStatementItem> items) {
+		JSONObject jsonObject = new JSONObject();
+		JSONObject data = new JSONObject();
+		data.put("billDate",DateUtil.now());
+		data.put("exchangeRate","1");//姹囩巼
+		data.put("exchangeRateDate",DateUtil.now());//姹囩巼鏃堕棿
+		data.put("objectType","1");
+		data.put("customerCode",customer.getBipCode());//瀹㈡埛缂栫爜
+		data.put("financeOrgCode",dept.getBipCode());//寮�绁ㄧ粍缁囩紪鐮�
+		data.put("orgCode",dept.getBipCode());//涓氬姟缁勭粐缂栫爜
+		data.put("bustypeCode","ar_refsale");//浜ゆ槗绫诲瀷缂栫爜 鏆備及榛樿ZGYSFP锛岄攢鍞粯璁JHYXGLXT
+		data.put("oriCurrencyCode","CNY");//甯佺
+		data.put("srcBillType","38");
+		data.put("srcBillNo",bankStatement.getBankSeqNo());
+		data.put("_status","Insert");
+		JSONArray bodyItem = new JSONArray();
+		JSONObject item = new JSONObject();
+		item.put("oriTaxIncludedAmount", bankStatement.getTranAmount());
+		item.put("quickTypeCode", "1");
+		item.put("_status", "Insert");
+		bodyItem.add(item);
+		data.put("bodyItem",bodyItem);
+		jsonObject.put("data",data);
+		return  jsonObject;
+	}
+
+	@Override
+	public R backHis(Long id) {
+		BankStatement bankStatement = baseMapper.selectById(id);
+		BusinessCustomer customer = businessCustomerMapper.selectById(bankStatement.getBusGuestId());
+		if (ObjUtil.isNull(customer)||StrUtil.isEmpty(customer.getBipCode())){
+			log.error("鏌ヨ瀹㈡埛淇℃伅寮傚父");
+			return R.failed("鏌ヨ瀹㈡埛淇℃伅寮傚父");
+		}
+		R<SysDept> r = remoteDeptService.getById(SecurityUtils.getUser().getCompId());
+		if (!r.isOk()){
+			log.error("鏌ヨ鍗曚綅淇℃伅寮傚父");
+			return R.failed("鏌ヨ鍗曚綅淇℃伅寮傚父");
+		}
+		SysDept dept = r.getData();
+		List<BankStatementItem> items = bankStatementItemMapper.selectList(Wrappers.<BankStatementItem>lambdaQuery()
+				.eq(BankStatementItem::getStatetId,id));
+		if (bipFlag){
+			String accessToken = "";
+			if (redisTemplate.hasKey("BIP_TOKEN")) {
+				accessToken = (String) redisTemplate.opsForValue().get("BIP_TOKEN");
+			} else {
+				accessToken = paymentConfirmService.getAccessToken(accessToken);
+			}
+			if (StrUtil.isEmpty(accessToken)) {
+				log.error("bip accessToken 鑾峰彇寮傚父");
+				return R.failed("bip accessToken 鑾峰彇寮傚父");
+			}
+			String finalAccessToken = accessToken;
+			JSONObject request = genBackHisParam(bankStatement,customer,dept,items);
+			log.info("鏀舵閫�娆惧崟-閫�娆惧巻鍙茬‘璁よ姹傚叆鍙傦細{}", request.toJSONString());
+			String result = HttpUtil.post(url + "/yonbip/EFI/arRefund/saveandsubmit?access_token=" + finalAccessToken, request.toJSONString());
+			log.info("鏀舵閫�娆惧崟-閫�娆惧巻鍙茬‘璁よ姹傚洖鍙�:{}", result);
+			JSONObject resultJson = JSONObject.parseObject(result);
+			if (!resultJson.getString("code").equals("200")) {
+				return R.failed(resultJson.getString("message"));
+			}
+		}
+
+		bankStatement.setConfirmAmount(new BigDecimal("0"));
+		baseMapper.updateById(bankStatement);
+		bankStatementItemMapper.deleteByIds(items.stream().map(item->item.getId()).collect(Collectors.toList()));
+		return R.ok();
+	}
+
+	private JSONObject genBackHisParam(BankStatement bankStatement, BusinessCustomer customer, SysDept dept,List<BankStatementItem> items) {
+		JSONObject jsonObject = new JSONObject();
+		JSONObject data = new JSONObject();
+		data.put("billDate",DateUtil.now());
+		data.put("exchangeRate","1");//姹囩巼
+		data.put("exchangeRateDate",DateUtil.now());//姹囩巼鏃堕棿
+		data.put("objectType","1");
+		data.put("customerCode",customer.getBipCode());//瀹㈡埛缂栫爜
+		data.put("financeOrgCode",dept.getBipCode());//寮�绁ㄧ粍缁囩紪鐮�
+		data.put("orgCode",dept.getBipCode());//涓氬姟缁勭粐缂栫爜
+		data.put("bustypeCode","ar_refsale");//浜ゆ槗绫诲瀷缂栫爜 鏆備及榛樿ZGYSFP锛岄攢鍞粯璁JHYXGLXT
+		data.put("oriCurrencyCode","CNY");//甯佺
+		data.put("srcBillType","38");
+		data.put("srcBillNo",bankStatement.getBankSeqNo());
+		data.put("_status","Insert");
+		JSONArray bodyItem = new JSONArray();
+		for (BankStatementItem statementItem:items) {
+			Contract contract = contractMapper.selectById(statementItem.getContractId());
+			JSONObject item = new JSONObject();
+			item.put("oriTaxIncludedAmount", statementItem.getConfirmAmount());
+			item.put("contractNo", contract.getContractNo());
+			item.put("quickTypeCode", "1");
+			item.put("_status", "Insert");
+			bodyItem.add(item);
+		}
+		data.put("bodyItem",bodyItem);
+		jsonObject.put("data",data);
+		return  jsonObject;
+	}
 }
\ No newline at end of file
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractInvoiceServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractInvoiceServiceImpl.java
index 9325098..976dd7c 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractInvoiceServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractInvoiceServiceImpl.java
@@ -507,7 +507,7 @@
 				ContractOutBound contractOutBound = contractOutBoundMapper.selectById(contractOutBoundInvoiceVo.getContractOutBoundId());
 				contractOutBound.setInvoiceStatus("1");
 				if (contractOutBoundInvoiceVo.getInvoiceNum().compareTo(contractOutBound.getOutBoundNum().subtract(contractOutBound.getInvoiceNum())) <= 0) {
-					contractOutBound.setInvoiceNum(contractOutBound.getInvoiceNum().subtract(contractOutBoundInvoiceVo.getInvoiceNum()));
+					contractOutBound.setInvoiceNum(contractOutBound.getInvoiceNum().add(contractOutBoundInvoiceVo.getInvoiceNum()));
 				}
 				contractOutBoundMapper.updateById(contractOutBound);
 			});
@@ -550,11 +550,13 @@
 			JSONObject invoiceDetail = new JSONObject();
 
 			invoiceDetail.put("goodsLineNo", lineNo);
+			invoiceDetail.put("goodsName", invoiceItemVo.getItemName());
+			invoiceDetail.put("projectName", invoiceItemVo.getItemName());
 			invoiceDetail.put("goodsCode", invoiceItemVo.getTaxCode());
 			invoiceDetail.put("goodsTaxRate", invoiceItemVo.getTaxRate().divide(new BigDecimal("100")));
 			invoiceDetail.put("goodsUnit", invoiceItemVo.getUnit());
 			invoiceDetail.put("goodsQuantity", invoiceItemVo.getQuantity());
-			invoiceDetail.put("goodsPrice", invoiceItemVo.getUnitPrice());
+//			invoiceDetail.put("goodsPrice", invoiceItemVo.getUnitPrice());
 			if (!StrUtil.equals(vo.getContractCategory(), "water_house")) {
 				invoiceDetail.put("goodsTotalPrice", invoiceItemVo.getPriceNoTax());
 			} else {
@@ -565,7 +567,7 @@
 			invoiceDetailsList.add(invoiceDetail);
 			lineNo++;
 		}
-		jsonObject.put("invoiceDetailsList", invoiceDetailsList);
+		data.put("invoiceDetailsList", invoiceDetailsList);
 		//璐柟
 		data.put("buyerTaxNo", vo.getPartyAOrgCode());
 		data.put("buyerName", vo.getPartyA());
@@ -691,7 +693,7 @@
 			invoiceDetail.put("goodsTaxRate", invoiceItemVo.getTaxRate().divide(new BigDecimal("100")));
 			invoiceDetail.put("goodsUnit", invoiceItemVo.getUnit());
 			invoiceDetail.put("goodsQuantity", invoiceItemVo.getQuantity());
-			invoiceDetail.put("goodsPrice", invoiceItemVo.getUnitPrice());
+//			invoiceDetail.put("goodsPrice", invoiceItemVo.getUnitPrice());
 			invoiceDetail.put("goodsTotalPrice", invoiceItemVo.getPriceNoTax().multiply(new BigDecimal("-1")));
 			invoiceDetail.put("goodsTotalTax", invoiceItemVo.getPriceTax().multiply(new BigDecimal("-1")));
 			invoiceDetailsList.add(invoiceDetail);
@@ -706,19 +708,22 @@
 	public R queryBlueInvoice() {
 		if (bwFlag) {
 			List<ContractInvoice> contractInvoices = baseMapper.selectList(Wrappers.<ContractInvoice>lambdaQuery()
-					.eq(ContractInvoice::getInvoiceCategory, "1").eq(ContractInvoice::getInvoiceStatus, "1"));
+					.eq(ContractInvoice::getApprovalStatus, "1")
+					.eq(ContractInvoice::getBwRequestResult,"1")
+					.isNull(ContractInvoice::getInvoicePath));
 			if (ArrayUtil.isNotEmpty(contractInvoices)) {
 				contractInvoices.stream().forEach(contractInvoice -> {
 					JSONObject request = new JSONObject();
 					request.put("taxNo", contractInvoice.getTaxNo());
 					JSONObject data = new JSONObject();
-					data.put("taxNo", contractInvoice.getSerialNo());
+					data.put("serialNo", contractInvoice.getSerialNo());
 					data.put("returnType", "3");
 					data.put("invoiceIssueMode", "1");
+					request.put("data",data);
 					String requestId = IdUtil.fastUUID();
 
 					log.info("serial_no:{},鍙戠エ鏌ヨ鍏ュ弬锛歿},", contractInvoice.getSerialNo(), request.toJSONString());
-					String result = HttpUtil.post("method=baiwang.output.format.query&version=1.0&request_id=" + requestId, request.toJSONString());
+					String result = HttpUtil.post(bwUrl+"method=baiwang.output.format.query&version=1.0&request_id=" + requestId, request.toJSONString());
 					log.info("serial_no:{},鍙戠エ鏌ヨ鍥炲弬锛歿},", contractInvoice.getSerialNo(), result);
 					saveBwRequestRecord("baiwang.output.format.query", requestId, request.toJSONString(), result);
 					JSONObject resultObj = JSONObject.parseObject(result);
@@ -728,8 +733,6 @@
 						contractInvoice.setInvoiceStatus("2");
 						baseMapper.updateById(contractInvoice);
 					}
-					//鎺ㄩ�丅IP
-					pushBipInvoice(contractInvoice);
 				});
 			}
 		}
@@ -768,11 +771,11 @@
 			JSONObject params = genBlueReceiveParams(contractInvoice, contract, customer, dept);
 			String finalAccessToken = accessToken;
 
-			log.info("XSJZ_YS_DJ_INSERT Request:{}", params.toJSONString());
+			log.info("搴旀敹鍙戠エ闆嗘垚鍏ュ弬:{}", params.toJSONString());
 			String result = HttpUtil.post(url + "/yonbip/EFI/receivable/save?access_token=" + finalAccessToken, params.toJSONString());
-			log.info("XSJZ_YS_DJ_INSERT Response:{}", result);
+			log.info("搴旀敹鍙戠エ闆嗘垚鍥炲弬:{}", result);
 			//淇濆瓨璇锋眰璁板綍
-			paymentConfirmService.saveBipRequestRecord(params, "< XSJZ_YS_DJ_001>-搴旀敹鍙戠エ淇濆瓨鎺ュ彛", result);
+			paymentConfirmService.saveBipRequestRecord(params, "搴旀敹鍙戠エ闆嗘垚鎺ュ彛", result);
 			JSONObject resultJson = JSONObject.parseObject(result);
 			if (resultJson.containsKey("code") && resultJson.getString("code").equals("200")) {
 				JSONObject data = resultJson.getJSONObject("data");
@@ -787,11 +790,11 @@
 			JSONObject params = genRedReceiveParams(contractInvoice);
 			String finalAccessToken = accessToken;
 
-			log.info("XSJZ_YS_DJ_DELETE Request:", params.toJSONString());
+			log.info("搴旀敹鍙戠エ鍒犻櫎鍏ュ弬:{}", params.toJSONString());
 			String result = HttpUtil.post(url + "/yonbip/EFI/receivable/delete?access_token=" + finalAccessToken, params.toJSONString());
-			log.info("XSJZ_YS_DJ_DELETE Response:{}", result);
+			log.info("搴旀敹鍙戠エ鍒犻櫎鍥炲弬:{}", result);
 			//淇濆瓨璇锋眰璁板綍
-			paymentConfirmService.saveBipRequestRecord(params, "< XSJZ_YS_DJ_002>-搴旀敹鍙戠エ鍒犻櫎鎺ュ彛", result);
+			paymentConfirmService.saveBipRequestRecord(params, "搴旀敹鍙戠エ鍒犻櫎鎺ュ彛", result);
 			JSONObject resultJson = JSONObject.parseObject(result);
 			if (resultJson.containsKey("code") && resultJson.getString("code").equals("200")) {
 				contractInvoice.setBipPush("1");
@@ -898,6 +901,7 @@
 		vo.setContractCategory(contract.getContractCategory());
 		invoice.setApprovalStatus("1");
 		baseMapper.updateById(invoice);
+		invoice.setBwRequestResult("0");
 		//钃濈エ
 		if (invoice.getInvoiceCategory().equals("1")) {
 			// TODO 寮�钃濈エ鎺ュ彛
@@ -905,23 +909,29 @@
 			if (bwFlag) {
 				String requestId = IdUtil.fastUUID();
 				invoice.setBwRequestId(requestId);
-				log.info("钃濈エ璇锋眰鎺ュ彛鍏ュ弬", request.toJSONString());
+				invoice.setBwRequestResult("1");
+				invoice.setBwRequestParam(request.toJSONString());
+				log.info("钃濈エ璇锋眰鎺ュ彛鍏ュ弬:{}", request.toJSONString());
 				String result = HttpUtil.post(bwUrl + "method=baiwang.output.invoice.issue&version=1.0&requestId=" + requestId, request.toJSONString());
-				log.info("钃濈エ璇锋眰鎺ュ彛鍥炲弬", result);
+				log.info("钃濈エ璇锋眰鎺ュ彛鍥炲弬:{}", result);
 				saveBwRequestRecord("baiwang.output.invoice.issue", requestId, request.toJSONString(), result);
 				JSONObject resultObj = JSONObject.parseObject(result);
 				if (resultObj.containsKey("requestId") && StrUtil.equals(resultObj.getString("requestId"), requestId) &&
-						!resultObj.getBoolean("success")) {
-					log.error("寮�绁ㄥけ璐ワ紒锛侊紒");
-					return;
+						resultObj.getBoolean("success")) {
+					log.info("寮�绁ㄦ垚鍔燂紒锛侊紒");
+					invoice.setBwRequestResult("1");
 				}
 				JSONObject modelJson = resultObj.getJSONObject("model");
-				JSONArray models = modelJson.getJSONArray("success");
-				if (ArrayUtil.isNotEmpty(models)) {
-					JSONObject model = (JSONObject) models.get(0);
-					Date invoiceDate = DateUtil.parse(model.getString("invoiceDate"), DatePattern.PURE_DATETIME_PATTERN);
-					invoice.setInvoiceTime(invoiceDate);
-					invoice.setInvoiceNo(model.getString("invoiceNo"));
+				if (ObjUtil.isNotNull(modelJson)) {
+					JSONArray models = modelJson.getJSONArray("success");
+					if (CollUtil.isNotEmpty(models)) {
+						JSONObject model = (JSONObject) models.get(0);
+						Date invoiceDate = DateUtil.parse(model.getString("invoiceDate"), DatePattern.PURE_DATETIME_PATTERN);
+						invoice.setInvoiceTime(invoiceDate);
+						invoice.setInvoiceNo(model.getString("invoiceNo"));
+						//鎺ㄩ�丅IP
+						pushBipInvoice(invoice);
+					}
 				}
 			}
 			if (StrUtil.isNotBlank(vo.getAdvanceInvoice())){
@@ -938,6 +948,13 @@
 					}
 					if (contract.getBillingAmout().compareTo(contract.getAmount()) < 0) {
 						contract.setBillingStatus("1");
+						List<ContractOutBound> outBoundList = contractOutBoundMapper.selectList(Wrappers.<ContractOutBound>lambdaQuery()
+								.eq(ContractOutBound::getContractId,contract.getId())
+								.apply("invoice_num < out_bound_num"));
+						if (CollUtil.isNotEmpty(outBoundList)){
+							contract.setBillingStatus("2");
+						}
+
 					}
 					//闃叉閲嶅瀹″紑绁ㄥ鏍搁�氳繃鍚� 寮�绁ㄩ噾棰濊秴鍑哄悎鍚岄噾棰�
 					if (contract.getBillingAmout().compareTo(contract.getAmount()) > 0) {
@@ -979,6 +996,7 @@
 				}
 				contractMapper.updateById(contract);
 			}
+			baseMapper.updateById(invoice);
 		}
 		//绾㈢エ
 		if (invoice.getInvoiceCategory().equals("2")) {
@@ -987,6 +1005,7 @@
 			JSONObject request = genRedInvoice(contract, blueInvoice, invoice.getSerialNo());
 			String requestId = IdUtil.fastUUID();
 			invoice.setBwRequestId(requestId);
+			invoice.setBwRequestParam(request.toJSONString());
 			if (bwFlag) {
 				log.info("绾㈠瓧纭鍗曡姹傛帴鍙e叆鍙�:{}", request.toJSONString());
 				String result = HttpUtil.post(bwUrl + "method=baiwang.output.redinvoice.add&version=1.0&requestId=" + requestId, request.toJSONString());
@@ -994,12 +1013,13 @@
 				saveBwRequestRecord("baiwang.output.redinvoice.add", requestId, request.toJSONString(), result);
 				JSONObject resultObj = JSONObject.parseObject(result);
 				if (resultObj.containsKey("requestId") && StrUtil.equals(resultObj.getString("requestId"), requestId) &&
-						!resultObj.getBoolean("success")) {
-					log.error("绾㈠瓧纭鍗曞け璐ワ紒锛侊紒");
-					return;
+						resultObj.getBoolean("success")) {
+					log.info("绾㈠瓧纭鍗曟垚鍔燂紒锛侊紒");
+					invoice.setBwRequestResult("1");
+
 				}
 				JSONArray models = resultObj.getJSONArray("model");
-				if (ArrayUtil.isNotEmpty(models)) {
+				if (CollUtil.isNotEmpty(models)) {
 					JSONObject model = (JSONObject) models.get(0);
 
 					if (StrUtil.isEmpty(model.getString("confirmBillingMark")) || StrUtil.equals(model.getString("confirmBillingMark"), "N")) {
@@ -1014,6 +1034,7 @@
 					}
 				}
 			}
+			baseMapper.updateById(invoice);
 			contract.setBillingAmout(contract.getBillingAmout().subtract(invoice.getInvoiceTotalPriceTax()));
 			//闃叉閲嶅瀹″紑绁ㄥ鏍搁�氳繃鍚� 寮�绁ㄩ噾棰濅负璐�
 			if (contract.getBillingAmout().compareTo(new BigDecimal("0")) < 0) {
@@ -1120,4 +1141,77 @@
 	public Page pageScope(Page page, ContractQueryDTO queryDTO) {
 		return baseMapper.pageScope(page, queryDTO, DataScope.of("comp_id"));
 	}
+
+	@Override
+	public R refresh(Long invoiceId) {
+		ContractInvoice invoice = baseMapper.selectById(invoiceId);
+		//钃濈エ
+		if (invoice.getInvoiceCategory().equals("1")) {
+			// TODO 寮�钃濈エ鎺ュ彛
+			if (bwFlag) {
+				String requestId = IdUtil.fastUUID();
+				invoice.setBwRequestId(requestId);
+				invoice.setBwRequestResult("1");
+				invoice.setBwRequestParam(invoice.getBwRequestParam());
+				log.info("钃濈エ璇锋眰鎺ュ彛鍏ュ弬:{}", invoice.getBwRequestParam());
+				String result = HttpUtil.post(bwUrl + "method=baiwang.output.invoice.issue&version=1.0&requestId=" + requestId, invoice.getBwRequestParam());
+				log.info("钃濈エ璇锋眰鎺ュ彛鍥炲弬:{}", result);
+				saveBwRequestRecord("baiwang.output.invoice.issue", requestId, invoice.getBwRequestParam(), result);
+				JSONObject resultObj = JSONObject.parseObject(result);
+				if (resultObj.containsKey("requestId") && StrUtil.equals(resultObj.getString("requestId"), requestId) &&
+						!resultObj.getBoolean("success")) {
+					log.error("寮�绁ㄥけ璐ワ紒锛侊紒");
+					return R.failed(resultObj.getString("message"));
+				}
+				invoice.setBwRequestResult("1");
+				JSONObject modelJson = resultObj.getJSONObject("model");
+				JSONArray models = modelJson.getJSONArray("success");
+				if (CollUtil.isNotEmpty(models)) {
+					JSONObject model = (JSONObject) models.get(0);
+					Date invoiceDate = DateUtil.parse(model.getString("invoiceDate"), DatePattern.PURE_DATETIME_PATTERN);
+					invoice.setInvoiceTime(invoiceDate);
+					invoice.setInvoiceNo(model.getString("invoiceNo"));
+					//鎺ㄩ�丅IP
+					pushBipInvoice(invoice);
+				}
+			}
+		}
+		//绾㈢エ
+		if (invoice.getInvoiceCategory().equals("2")) {
+			// TODO 寮�绾㈢エ鎺ュ彛
+			String requestId = IdUtil.fastUUID();
+			invoice.setBwRequestId(requestId);
+			invoice.setBwRequestParam(invoice.getBwRequestParam());
+			if (bwFlag) {
+				log.info("绾㈠瓧纭鍗曡姹傛帴鍙e叆鍙�:{}", invoice.getBwRequestParam());
+				String result = HttpUtil.post(bwUrl + "method=baiwang.output.redinvoice.add&version=1.0&requestId=" + requestId, invoice.getBwRequestParam());
+				log.info("绾㈠瓧纭鍗曡姹傛帴鍙e洖鍙�:{}", result);
+				saveBwRequestRecord("baiwang.output.redinvoice.add", requestId, invoice.getBwRequestParam(), result);
+				JSONObject resultObj = JSONObject.parseObject(result);
+				if (resultObj.containsKey("requestId") && StrUtil.equals(resultObj.getString("requestId"), requestId) &&
+						!resultObj.getBoolean("success")) {
+					log.error("绾㈠瓧纭鍗曟垚鍔燂紒锛侊紒");
+
+					return R.failed(resultObj.getString("message"));
+				}
+				invoice.setBwRequestResult("1");
+				JSONArray models = resultObj.getJSONArray("model");
+				if (ArrayUtil.isNotEmpty(models)) {
+					JSONObject model = (JSONObject) models.get(0);
+					if (StrUtil.isEmpty(model.getString("confirmBillingMark")) || StrUtil.equals(model.getString("confirmBillingMark"), "N")) {
+						//绛夊緟纭
+						invoice.setRedReversal("3");
+					} else if (StrUtil.equals(model.getString("confirmBillingMark"), "Y")) {
+						//纭鍗冲紑
+						invoice.setInvoiceNo(model.getString("redInvoiceNo"));
+						invoice.setRedReversal("1");
+						//鎺ㄩ�丅IP
+						pushBipInvoice(invoice);
+					}
+				}
+			}
+		}
+		baseMapper.updateById(invoice);
+		return R.ok();
+	}
 }
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java
index 8b4e1b6..4245c12 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java
@@ -103,6 +103,12 @@
 	@Value("${dept.smj}")
 	private String smj;
 
+	@Value("${dept.smjsc}")
+	private String smjsc;
+
+	@Value("${dept.smjzt}")
+	private String smjzt;
+
 	@Value("${dept.sgb}")
 	private String sgb;
 
@@ -163,7 +169,8 @@
 			return R.failed("鏍囩殑鐗╀笉鑳戒负绌�");
 		}
 
-		if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smj)){
+		if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smj)||StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smjsc)||
+				StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smjzt)){
 			contract.setContractNo(generateSMJContractNo());
 		}
 		if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",sgb)){
@@ -286,7 +293,8 @@
 		contract.setPaidAmount(new BigDecimal("0"));
 		contract.setBillingAmout(new BigDecimal("0"));
 		contract.setNickName(SecurityUtils.getUser().getNickname());
-		if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smj)){
+		if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smj)||StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smjsc)||
+				StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smjzt)){
 			contract.setContractNo(generateSMJContractNo());
 		}
 		if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",sgb)){
@@ -423,6 +431,12 @@
 	@Override
 	public R startApproval(Long id) {
 		Contract contract = baseMapper.selectById(id);
+
+		//绠�鏄撳悎鍚屾棤娉曠户缁悗缁搷浣�
+		if (StrUtil.equals(contract.getContractCategory(), "simple")){
+			return R.failed("璇疯ˉ鍏呮爣鐨勭墿鍜屾敹娆鹃樁娈靛悗鍐嶈繘琛屾搷浣滐紒");
+		}
+
 		//鍚姩娴佺▼
 		ProcessInstanceParamDto dto = new ProcessInstanceParamDto();
 		Map<String, Object> map = BeanUtil.beanToMap(contract);
@@ -441,6 +455,7 @@
 		Contract contract = baseMapper.selectById(id);
 		contract.setContractStatus(2);
 		baseMapper.updateById(contract);
+
 
 		List<ContractSubjectMatter> subjectMatterList = contractSubjectMatterMapper.selectList(Wrappers.<ContractSubjectMatter>lambdaQuery()
 				.eq(ContractSubjectMatter::getContractId,id));
@@ -968,7 +983,8 @@
 		newContract.setErpPushFlag("0");
 		newContract.setContractStatus(0);
 		newContract.setBillingAmout(new BigDecimal("0"));
-		if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smj)){
+		if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smj)||StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smjsc)||
+				StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smjzt)){
 			newContract.setContractNo(generateSMJContractNo());
 		}
 		if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",sgb)){
@@ -2216,4 +2232,42 @@
 			e.printStackTrace();
 		}
 	}
+
+	@Override
+	public R addSimple(ContractAddDTO addDTO) {
+		Contract contract = BeanUtil.copyProperties(addDTO, Contract.class);
+		contract.setPartyBId(SecurityUtils.getUser().getCompId());
+		contract.setPartyB(SecurityUtils.getUser().getCompName());
+		if (StrUtil.isEmpty(addDTO.getPartyA())){
+			BusinessCustomer bc = businessCustomerMapper.selectById(addDTO.getPartyAId());
+			if (ObjUtil.isNotNull(bc)){
+				contract.setPartyA(bc.getCompanyName());
+			}
+		}
+
+		contract.setPaidAmount(new BigDecimal("0"));
+		contract.setBillingStatus("1");
+		contract.setBillingAmout(new BigDecimal("0"));
+		contract.setErpPushFlag("0");
+		contract.setNickName(SecurityUtils.getUser().getNickname());
+
+		if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smj)||StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smjsc)||
+				StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smjzt)){
+			contract.setContractNo(generateSMJContractNo());
+		}
+		if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",sgb)){
+			contract.setContractNo(generateGYBContractNo());
+		}
+		if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",ymj)){
+			contract.setContractNo(generateYMJContractNo());
+		}
+		if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",tfgs)){
+			contract.setContractNo(generateTFContractNo());
+		}
+		if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",jxc)){
+			contract.setContractNo(generateJXCContractNo());
+		}
+		baseMapper.insert(contract);
+		return R.ok();
+	}
 }
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractSubjectMatterServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractSubjectMatterServiceImpl.java
index 05de0eb..1e9a195 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractSubjectMatterServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractSubjectMatterServiceImpl.java
@@ -1,19 +1,33 @@
 package com.by4cloud.platformx.business.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.by4cloud.platformx.admin.api.entity.SysDept;
+import com.by4cloud.platformx.admin.api.vo.DeptExcelVO;
+import com.by4cloud.platformx.business.dto.ContractSubjectMatterAddDTO;
 import com.by4cloud.platformx.business.entity.ContractSubjectMatter;
+import com.by4cloud.platformx.business.entity.Product;
 import com.by4cloud.platformx.business.mapper.ContractSubjectMatterMapper;
+import com.by4cloud.platformx.business.mapper.ProductMapper;
 import com.by4cloud.platformx.business.service.ContractSubjectMatterService;
 import com.by4cloud.platformx.business.vo.ContractSubjectMatterVo;
+import com.by4cloud.platformx.business.vo.SubjectMatterExcelVO;
 import com.by4cloud.platformx.common.core.util.R;
 import com.by4cloud.platformx.common.data.datascope.DataScope;
 import com.by4cloud.platformx.common.data.mybatis.BaseModel;
+import com.by4cloud.platformx.common.excel.vo.ErrorMessage;
+import com.by4cloud.platformx.common.security.util.SecurityUtils;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.validation.BindingResult;
 
+import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 /**
  * 鍚堝悓鏍囩殑鐗╂槑缁嗚〃
@@ -22,7 +36,11 @@
  * @date 2026-04-29 16:39:29
  */
 @Service
+@RequiredArgsConstructor
 public class ContractSubjectMatterServiceImpl extends ServiceImpl<ContractSubjectMatterMapper, ContractSubjectMatter> implements ContractSubjectMatterService {
+
+	private final ProductMapper productMapper;
+
 	@Override
 	public R selectSubjectMatterProcess(Long id) {
 		MPJLambdaWrapper<ContractSubjectMatter> wrapper = new MPJLambdaWrapper<ContractSubjectMatter>()
@@ -38,4 +56,41 @@
 		return R.ok(baseMapper.selectListByScope(Wrappers.<ContractSubjectMatter>lambdaQuery().eq(ContractSubjectMatter::getContractId,contractId)
 				.orderByAsc(ContractSubjectMatter::getCreateTime), DataScope.of("comp_id")));
 	}
+
+	@Override
+	public R importSubjectMatter(List<SubjectMatterExcelVO> excelVOList, BindingResult bindingResult) {
+		List<ErrorMessage> errorMessageList = (List<ErrorMessage>) bindingResult.getTarget();
+		List<ContractSubjectMatterAddDTO> addDTOList = new ArrayList<>();
+		for (SubjectMatterExcelVO item : excelVOList) {
+			Set<String> errorMsg = new HashSet<>();
+
+			Product one = productMapper.selectOne(Wrappers.<Product>lambdaQuery()
+					.eq(Product::getErpCode, item.getMaterialCode())
+					.eq(Product::getCompId, SecurityUtils.getUser().getCompId()));
+
+			if (one == null) {
+				errorMsg.add(item.getMaterialCode()+"erp缂栫爜涓嶅瓨鍦�");
+			}
+			if (CollUtil.isEmpty(errorMsg)) {
+				ContractSubjectMatterAddDTO addDTO = new ContractSubjectMatterAddDTO();
+				addDTO.setMaterialCode(item.getMaterialCode());
+				addDTO.setMaterialInternalName(one.getProductName());
+				addDTO.setMaterialName(item.getMaterialName());
+				addDTO.setUnitPrice(item.getUnitPrice());
+				addDTO.setQuantity(item.getQuantity());
+				addDTO.setSpecification(one.getProductType());
+				addDTOList.add(addDTO);
+			}
+			else {
+				// 鏁版嵁涓嶅悎娉曟儏鍐�
+				errorMessageList.add(new ErrorMessage(item.getLineNum(), errorMsg));
+			}
+		}
+		if (CollUtil.isNotEmpty(errorMessageList)) {
+			return R.failed(errorMessageList,"閮ㄩ棬瀵煎叆澶辫触");
+		}
+		return R.ok(addDTOList, "閮ㄩ棬瀵煎叆鎴愬姛");
+	}
+
+
 }
\ No newline at end of file
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java
index 2a7809e..32a829d 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java
@@ -50,6 +50,12 @@
 	@Value("${dept.smj}")
 	private String smj;
 
+	@Value("${dept.smjsc}")
+	private String smjsc;
+
+	@Value("${dept.smjzt}")
+	private String smjzt;
+
 	@Value("${dept.sgb}")
 	private String sgb;
 
@@ -102,7 +108,8 @@
 		//鍑哄簱
 		addDTO.getSubjectMatterList().stream().forEach(outSubjectMatterAddDTO -> {
 			OutBound outBound = BeanUtil.copyProperties(outSubjectMatterAddDTO, OutBound.class);
-			if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smj)){
+			if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smj)||StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smjsc)||
+					StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smjzt)){
 				outBound.setBatchNumber(generateSMJContractCKNo());
 			}
 			if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",sgb)){
@@ -545,7 +552,8 @@
 			contractSubjectMatterMapper.updateById(subjectMatter);
 			//
 			OutBound outBound = new OutBound();
-			if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smj)){
+			if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smj)||StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smjsc)||
+					StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smjzt)){
 				outBound.setBatchNumber(generateSMJContractCKNo());
 			}
 			if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",sgb)){
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java
index 2df9d21..885ac46 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java
@@ -528,7 +528,7 @@
 					throw new RuntimeException(e);
 				}
 				log.info("閾惰娴佹按鏌ヨ Request:{}", params.toJSONString());
-				String result = HttpUtil.post(url + "/iuap-api-auth/yonbip/ctm/cmp/bankReconciliationQuery?access_token=" + finalAccessToken, params.toJSONString());
+				String result = HttpUtil.post(url + "/yonbip/ctm/cmp/bankReconciliationQuery?access_token=" + finalAccessToken, params.toJSONString());
 				log.info("閾惰娴佹按鏌ヨ Response:{}", result);
 				//淇濆瓨璇锋眰璁板綍
 				saveBipRequestRecord(params, "閾惰娴佹按鏌ヨ鎺ュ彛", result);
@@ -558,7 +558,7 @@
 		} catch (InvalidKeyException e) {
 			throw new RuntimeException(e);
 		}
-		String getTokenResult = HttpUtil.get(url + "/iuap-api-auth/open-auth/selfAppAuth/getAccessToken?appKey=" + appKey + "&timestamp=" + timestamp
+		String getTokenResult = HttpUtil.get(url + "/open-auth/selfAppAuth/getAccessToken?appKey=" + appKey + "&timestamp=" + timestamp
 				+ "&signature=" + signature);
 		log.info("Get access_token Response:{}", getTokenResult);
 		JSONObject tokenJson = JSONObject.parseObject(getTokenResult);
diff --git a/platformx-business-finance-biz/src/main/resources/mapper/ContractInvoiceMapper.xml b/platformx-business-finance-biz/src/main/resources/mapper/ContractInvoiceMapper.xml
index 20efb7b..1873e9d 100644
--- a/platformx-business-finance-biz/src/main/resources/mapper/ContractInvoiceMapper.xml
+++ b/platformx-business-finance-biz/src/main/resources/mapper/ContractInvoiceMapper.xml
@@ -44,21 +44,21 @@
 				   SELECT sum(ci.invoice_total_price_tax)
 				   FROM contract_invoice ci
 				   WHERE ci.del_flag = '0'
-					 AND comp_id = 2056555602756063234
+					 AND comp_id = 2089995177814495234
 					 AND ci.invoice_time &gt;= CURDATE()
 					 AND ci.invoice_time &lt; DATE_ADD(CURDATE(), INTERVAL 1 DAY ))                            smjbr,
 			   (
 				   SELECT sum(ci.invoice_total_price_tax)
 				   FROM contract_invoice ci
 				   WHERE ci.del_flag = '0'
-					 AND comp_id = 2056555602756063234
+					 AND comp_id = 2089995177814495234
 					 AND ci.invoice_time &gt;= DATE_FORMAT(CURDATE(), '%Y-%m-01')
 					 AND ci.invoice_time &lt; DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01')) smjby,
 			   (
 				   SELECT sum(ci.invoice_total_price_tax)
 				   FROM contract_invoice ci
 				   WHERE ci.del_flag = '0'
-					 AND comp_id = 2056555602756063234
+					 AND comp_id = 2089995177814495234
 					 AND ci.invoice_time &gt;= DATE_FORMAT(CURDATE(), '%Y-01-01')
 					 AND ci.invoice_time &lt; DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01'))  smjbn,
 			   (
diff --git a/platformx-business-finance-biz/src/main/resources/mapper/ContractMapper.xml b/platformx-business-finance-biz/src/main/resources/mapper/ContractMapper.xml
index 5936e13..a22070a 100644
--- a/platformx-business-finance-biz/src/main/resources/mapper/ContractMapper.xml
+++ b/platformx-business-finance-biz/src/main/resources/mapper/ContractMapper.xml
@@ -1178,7 +1178,7 @@
 		contract c
 		WHERE
 		c.del_flag = '0'
-		AND comp_id = 2056555602756063234
+		AND comp_id = 2089995177814495234
 		AND c.sign_date &gt;= CURDATE()
 		AND c.sign_date &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) smjbr,
 		(
@@ -1188,7 +1188,7 @@
 		contract c
 		WHERE
 		c.del_flag = '0'
-		AND comp_id = 2056555602756063234
+		AND comp_id = 2089995177814495234
 		AND c.sign_date &gt;=DATE_FORMAT( CURDATE(), '%Y-%m-01' )
 		AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) smjby,
 		(
@@ -1198,7 +1198,7 @@
 		contract c
 		WHERE
 		c.del_flag = '0'
-		AND comp_id = 2056555602756063234
+		AND comp_id = 2089995177814495234
 		AND c.sign_date &gt;=DATE_FORMAT( CURDATE(), '%Y-01-01' )
 		AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) smjbn,
 		(
diff --git a/platformx-business-finance-biz/src/main/resources/mapper/ContractOutBoundMapper.xml b/platformx-business-finance-biz/src/main/resources/mapper/ContractOutBoundMapper.xml
index cba7f38..57c4e28 100644
--- a/platformx-business-finance-biz/src/main/resources/mapper/ContractOutBoundMapper.xml
+++ b/platformx-business-finance-biz/src/main/resources/mapper/ContractOutBoundMapper.xml
@@ -74,7 +74,7 @@
 		cob.del_flag = '0'
 		AND cob.contract_id = csm.contract_id
 		AND cob.subject_matter_code = csm.material_code
-		AND cob.comp_id = 2056555602756063234
+		AND cob.comp_id = 2089995177814495234
 		 <!--  AND cob.out_bound_time &gt;= CURDATE() -->
 		AND cob.out_bound_time &lt; DATE_ADD( CURDATE(), INTERVAL -6 DAY )) smjbr,
 		(
@@ -87,7 +87,7 @@
 		cob.del_flag = '0'
 		AND cob.contract_id = csm.contract_id
 		AND cob.subject_matter_code = csm.material_code
-		AND cob.comp_id = 2056555602756063234
+		AND cob.comp_id = 2089995177814495234
 		AND cob.out_bound_time &gt;= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
 		AND cob.out_bound_time &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) smjby,
 		(
@@ -100,7 +100,7 @@
 		cob.del_flag = '0'
 		AND cob.contract_id = csm.contract_id
 		AND cob.subject_matter_code = csm.material_code
-		AND cob.comp_id = 2056555602756063234
+		AND cob.comp_id = 2089995177814495234
 		AND cob.out_bound_time &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
 		AND cob.out_bound_time &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) smjbn,
 		(
@@ -277,7 +277,7 @@
 		AND csm.del_flag = '0'
 		AND cob.contract_id = csm.contract_id
 		AND cob.subject_matter_code = csm.material_code
-		AND cob.comp_id = 2056555602756063234
+		AND cob.comp_id = 2089995177814495234
 		<!--  AND cob.out_bound_time &gt;= CURDATE() -->
 		AND cob.out_bound_time &lt; DATE_ADD( CURDATE(), INTERVAL -6 DAY )) smjbr,
 		(
@@ -291,7 +291,7 @@
 		AND csm.del_flag = '0'
 		AND cob.contract_id = csm.contract_id
 		AND cob.subject_matter_code = csm.material_code
-		AND cob.comp_id = 2056555602756063234
+		AND cob.comp_id = 2089995177814495234
 		AND cob.out_bound_time &gt;= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
 		AND cob.out_bound_time &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) smjby,
 		(
@@ -305,7 +305,7 @@
 		AND csm.del_flag = '0'
 		AND cob.contract_id = csm.contract_id
 		AND cob.subject_matter_code = csm.material_code
-		AND cob.comp_id = 2056555602756063234
+		AND cob.comp_id = 2089995177814495234
 		AND cob.out_bound_time &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
 		AND cob.out_bound_time &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) smjbn,
 		(
diff --git a/platformx-business-finance-biz/src/main/resources/mapper/CurrentOverdueMapper.xml b/platformx-business-finance-biz/src/main/resources/mapper/CurrentOverdueMapper.xml
index 5b1cfc1..cc71214 100644
--- a/platformx-business-finance-biz/src/main/resources/mapper/CurrentOverdueMapper.xml
+++ b/platformx-business-finance-biz/src/main/resources/mapper/CurrentOverdueMapper.xml
@@ -58,7 +58,7 @@
 		current_overdue co
 		WHERE
 		co.del_flag = '0'
-		AND comp_id = 2056555602756063234
+		AND comp_id = 2089995177814495234
 		AND co.create_time &gt;= CURDATE()
 		AND co.create_time &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) smjbr,
 		(
@@ -68,7 +68,7 @@
 		current_overdue co
 		WHERE
 		co.del_flag = '0'
-		AND comp_id = 2056555602756063234
+		AND comp_id = 2089995177814495234
 		AND co.create_time &gt;= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
 		AND co.create_time &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) smjby,
 		(
@@ -78,7 +78,7 @@
 		current_overdue co
 		WHERE
 		co.del_flag = '0'
-		AND comp_id = 2056555602756063234
+		AND comp_id = 2089995177814495234
 		AND co.create_time &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
 		AND co.create_time &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) smjbn,
 		(
diff --git a/platformx-business-finance-biz/src/main/resources/mapper/HistoryOverdueMapper.xml b/platformx-business-finance-biz/src/main/resources/mapper/HistoryOverdueMapper.xml
index 6b35c69..2153f4d 100644
--- a/platformx-business-finance-biz/src/main/resources/mapper/HistoryOverdueMapper.xml
+++ b/platformx-business-finance-biz/src/main/resources/mapper/HistoryOverdueMapper.xml
@@ -59,7 +59,7 @@
 					history_overdue co
 				WHERE
 					co.del_flag = '0'
-				  AND comp_id = 2056555602756063234
+				  AND comp_id = 2089995177814495234
 				  AND co.create_time &gt;= CURDATE()
 				  AND co.create_time &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) smjbr,
 			(
@@ -69,7 +69,7 @@
 					history_overdue co
 				WHERE
 					co.del_flag = '0'
-				  AND comp_id = 2056555602756063234
+				  AND comp_id = 2089995177814495234
 				  AND co.create_time &gt;= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
 				  AND co.create_time &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) smjby,
 			(
@@ -79,7 +79,7 @@
 					history_overdue co
 				WHERE
 					co.del_flag = '0'
-				  AND comp_id = 2056555602756063234
+				  AND comp_id = 2089995177814495234
 				  AND co.create_time &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
 				  AND co.create_time &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) smjbn,
 			(
diff --git a/platformx-business-finance-biz/src/main/resources/mapper/PaymentSlipMapper.xml b/platformx-business-finance-biz/src/main/resources/mapper/PaymentSlipMapper.xml
index e74a144..a1bae91 100644
--- a/platformx-business-finance-biz/src/main/resources/mapper/PaymentSlipMapper.xml
+++ b/platformx-business-finance-biz/src/main/resources/mapper/PaymentSlipMapper.xml
@@ -60,7 +60,7 @@
 		payment_slip ps
 		WHERE
 		ps.del_flag = '0'
-		AND comp_id = 2056555602756063234
+		AND comp_id = 2089995177814495234
 		AND ps.payment_time &gt;= CURDATE()
 		AND ps.payment_time &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) smjbr,
 		(
@@ -70,7 +70,7 @@
 		payment_slip ps
 		WHERE
 		ps.del_flag = '0'
-		AND comp_id = 2056555602756063234
+		AND comp_id = 2089995177814495234
 		AND ps.payment_time &gt;= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
 		AND ps.payment_time &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) smjby,
 		(
@@ -80,7 +80,7 @@
 		payment_slip ps
 		WHERE
 		ps.del_flag = '0'
-		AND comp_id = 2056555602756063234
+		AND comp_id = 2089995177814495234
 		AND ps.payment_time &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
 		AND ps.payment_time &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) smjbn,
 		(
diff --git a/platformx-business-finance-biz/src/main/resources/template/jxc/product.xlsx b/platformx-business-finance-biz/src/main/resources/template/jxc/product.xlsx
index 8da08ab..f756de4 100644
--- a/platformx-business-finance-biz/src/main/resources/template/jxc/product.xlsx
+++ b/platformx-business-finance-biz/src/main/resources/template/jxc/product.xlsx
Binary files differ

--
Gitblit v1.9.1