diff --git a/pom.xml b/pom.xml
index a7260d61..bcbf955f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -303,6 +303,18 @@
liss
+
+ qsj
+
+ qsj
+
+
+
+ qsj
+
+ qsj
+
+
diff --git a/supply-server/Dockerfile b/supply-server/Dockerfile
index 9ae44025..706f0a57 100644
--- a/supply-server/Dockerfile
+++ b/supply-server/Dockerfile
@@ -1,4 +1,4 @@
-FROM openjdk:17-jre-slim
+FROM 172.16.46.66:10043/base-service/eclipse-temurin:21-jre
# 设置应用目录
WORKDIR /app
diff --git a/supply-server/pom.xml b/supply-server/pom.xml
index dbc51ab6..24a85bea 100644
--- a/supply-server/pom.xml
+++ b/supply-server/pom.xml
@@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
cn.iocoder.cloud
- yudao
+ dsc-supply
${revision}
4.0.0
@@ -25,6 +25,12 @@
yudao-module-infra-api
${revision}
+
+ cn.iocoder.cloud
+ yudao-framework
+ ${revision}
+ pom
+
cn.iocoder.cloud
yudao-module-capital-server
@@ -75,12 +81,43 @@
yudao-module-sell-server
${revision}
+
+
+
+ cn.iocoder.cloud
+ yudao-spring-boot-starter-biz-data-permission
+
+
+ cn.iocoder.cloud
+ yudao-spring-boot-starter-biz-tenant
+
+
+
+
+ cn.iocoder.cloud
+ yudao-spring-boot-starter-web
+
+
+ cn.iocoder.cloud
+ yudao-spring-boot-starter-security
+
org.springframework.boot
spring-boot-configuration-processor
true
+
+
+ cn.iocoder.cloud
+ yudao-spring-boot-starter-mybatis
+
+
+
+ cn.iocoder.cloud
+ yudao-spring-boot-starter-redis
+
+
cn.iocoder.cloud
@@ -103,13 +140,6 @@
cn.iocoder.cloud
yudao-spring-boot-starter-rpc
-
-
-
- org.springframework.cloud
- spring-cloud-starter-openfeign
-
-
diff --git a/supply-server/src/main/java/cn/iocoder/yudao/supply/controller/supply/SupplyController.java b/supply-server/src/main/java/cn/iocoder/yudao/supply/controller/supply/SupplyController.java
index df889d19..aad56011 100644
--- a/supply-server/src/main/java/cn/iocoder/yudao/supply/controller/supply/SupplyController.java
+++ b/supply-server/src/main/java/cn/iocoder/yudao/supply/controller/supply/SupplyController.java
@@ -1,12 +1,13 @@
package cn.iocoder.yudao.supply.controller.supply;
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
/**
diff --git a/supply-server/src/main/resources/application.yml b/supply-server/src/main/resources/application.yml
index 2f26d2fb..7332cfab 100644
--- a/supply-server/src/main/resources/application.yml
+++ b/supply-server/src/main/resources/application.yml
@@ -104,7 +104,7 @@ xxl:
yudao:
info:
version: 1.0.0
- base-package: cn.iocoder.yudao.module
+ base-package: cn.iocoder.yudao
web:
admin-ui:
url: http://dashboard.yudao.iocoder.cn # Admin 管理后台 UI 的地址
diff --git a/yudao-module-bill/pom.xml b/yudao-module-bill/pom.xml
index f88fdc77..0389c39f 100644
--- a/yudao-module-bill/pom.xml
+++ b/yudao-module-bill/pom.xml
@@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- yudao
+ dsc-supply
cn.iocoder.cloud
${revision}
diff --git a/yudao-module-bill/yudao-module-bill-api/src/main/java/cn/iocoder/yudao/module/bill/enums/ErrorCodeConstants.java b/yudao-module-bill/yudao-module-bill-api/src/main/java/cn/iocoder/yudao/module/bill/enums/ErrorCodeConstants.java
index 7b8e4a5b..34d07048 100644
--- a/yudao-module-bill/yudao-module-bill-api/src/main/java/cn/iocoder/yudao/module/bill/enums/ErrorCodeConstants.java
+++ b/yudao-module-bill/yudao-module-bill-api/src/main/java/cn/iocoder/yudao/module/bill/enums/ErrorCodeConstants.java
@@ -14,4 +14,7 @@ public interface ErrorCodeConstants {
// ========== 示例模块 1-001-000-000 ==========
ErrorCode EXAMPLE_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在");
+ ErrorCode INVOICE_MAIN_NOT_EXISTS = new ErrorCode(1, "发票主不存在");
+
+ ErrorCode INVOICE_DETAIL_NOT_EXISTS = new ErrorCode(2, "发票明细不存在");
}
diff --git a/yudao-module-bill/yudao-module-bill-server/pom.xml b/yudao-module-bill/yudao-module-bill-server/pom.xml
index 79114506..f0a2548e 100644
--- a/yudao-module-bill/yudao-module-bill-server/pom.xml
+++ b/yudao-module-bill/yudao-module-bill-server/pom.xml
@@ -131,21 +131,21 @@
${project.artifactId}
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
- ${spring.boot.version}
-
-
-
- repackage
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/yudao-module-bill/yudao-module-bill-server/src/main/java/cn/iocoder/yudao/module/bill/BillServerApplication.java b/yudao-module-bill/yudao-module-bill-server/src/main/java/cn/iocoder/yudao/module/bill/BillServerApplication.java
index ecfc296f..3ad49c27 100644
--- a/yudao-module-bill/yudao-module-bill-server/src/main/java/cn/iocoder/yudao/module/bill/BillServerApplication.java
+++ b/yudao-module-bill/yudao-module-bill-server/src/main/java/cn/iocoder/yudao/module/bill/BillServerApplication.java
@@ -8,7 +8,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
*
* @author ZT
*/
-@SpringBootApplication
+//@SpringBootApplication
public class BillServerApplication {
public static void main(String[] args) {
diff --git a/yudao-module-bill/yudao-module-bill-server/src/main/java/cn/iocoder/yudao/module/bill/controller/admin/bill/BillController.java b/yudao-module-bill/yudao-module-bill-server/src/main/java/cn/iocoder/yudao/module/bill/controller/admin/bill/BillController.java
index 9d5c63a4..7ac0de55 100644
--- a/yudao-module-bill/yudao-module-bill-server/src/main/java/cn/iocoder/yudao/module/bill/controller/admin/bill/BillController.java
+++ b/yudao-module-bill/yudao-module-bill-server/src/main/java/cn/iocoder/yudao/module/bill/controller/admin/bill/BillController.java
@@ -1,12 +1,13 @@
package cn.iocoder.yudao.module.bill.controller.admin.bill;
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
/**
diff --git a/yudao-module-bill/yudao-module-bill-server/src/main/java/cn/iocoder/yudao/module/bill/framework/rpc/config/RpcConfiguration.java b/yudao-module-bill/yudao-module-bill-server/src/main/java/cn/iocoder/yudao/module/bill/framework/rpc/config/RpcConfiguration.java
new file mode 100644
index 00000000..d921851b
--- /dev/null
+++ b/yudao-module-bill/yudao-module-bill-server/src/main/java/cn/iocoder/yudao/module/bill/framework/rpc/config/RpcConfiguration.java
@@ -0,0 +1,10 @@
+package cn.iocoder.yudao.module.bill.framework.rpc.config;
+
+import cn.iocoder.yudao.module.system.api.dept.DeptApi;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration(value = "billRpcConfiguration", proxyBeanMethods = false)
+@EnableFeignClients(clients = {DeptApi.class})
+public class RpcConfiguration {
+}
diff --git a/yudao-module-bill/yudao-module-bill-server/src/main/java/cn/iocoder/yudao/module/bill/framework/security/config/SecurityConfiguration.java b/yudao-module-bill/yudao-module-bill-server/src/main/java/cn/iocoder/yudao/module/bill/framework/security/config/SecurityConfiguration.java
index 7e1b4def..3f2e1823 100644
--- a/yudao-module-bill/yudao-module-bill-server/src/main/java/cn/iocoder/yudao/module/bill/framework/security/config/SecurityConfiguration.java
+++ b/yudao-module-bill/yudao-module-bill-server/src/main/java/cn/iocoder/yudao/module/bill/framework/security/config/SecurityConfiguration.java
@@ -9,11 +9,9 @@ import org.springframework.security.config.annotation.web.configurers.AuthorizeH
/**
- * Bill 模块的 Security 配置
- *
- * @author ZT
+ * Template 模块的 Security 配置
*/
-@Configuration(proxyBeanMethods = false)
+@Configuration("billSecurityConfiguration")
public class SecurityConfiguration {
@Bean
diff --git a/yudao-module-capital/pom.xml b/yudao-module-capital/pom.xml
index 429e5add..1c9ada2f 100644
--- a/yudao-module-capital/pom.xml
+++ b/yudao-module-capital/pom.xml
@@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- yudao
+ dsc-supply
cn.iocoder.cloud
${revision}
@@ -18,7 +18,7 @@
${project.artifactId}
- Capital 模块。
+ Capital 模块。资金授信模块。
diff --git a/yudao-module-capital/yudao-module-capital-api/src/main/java/cn/iocoder/yudao/module/capital/enums/CapitalDictTypeConstants.java b/yudao-module-capital/yudao-module-capital-api/src/main/java/cn/iocoder/yudao/module/capital/enums/CapitalDictTypeConstants.java
new file mode 100644
index 00000000..8838faf6
--- /dev/null
+++ b/yudao-module-capital/yudao-module-capital-api/src/main/java/cn/iocoder/yudao/module/capital/enums/CapitalDictTypeConstants.java
@@ -0,0 +1,21 @@
+package cn.iocoder.yudao.module.capital.enums;
+
+/**
+ * 资金授信模块 字典类型的枚举类
+ *
+ * @author 芋道源码
+ */
+public interface CapitalDictTypeConstants {
+
+// ========== capital 模块 ==========
+
+ String SPLY_AMT_CRDT_CREDIT_TYPE = "sply_amt_crdt_credit_type"; // 授信台账-授信类型
+ String SPLY_AMT_CRDT_CHG_CHANGE_TYPE = "sply_amt_crdt_chg_change_type"; // 授信台账检索详情-变动类型
+ String SPLY_AMT_CRDT_CHG_REFERENCE_TYPE = "sply_amt_crdt_chg_reference_type"; // 授信台账检索详情-关联交易类型
+ String SPLY_AMT_CRDT_APPL_DTL_PTNRTP = "sply_amt_crdt_appl_dtl_ptnrTp"; // 授信单明细-客户/供应商类别
+ String AMOUNT_CREDIT_APPLY_TYPE = "amount_credit_apply_type"; // 授信单-额度类型
+ String AMOUNT_CREDIT_APPLY_COMPANY_TYPE = "amount_credit_apply_company_type"; // 授信单-企业性质
+ String SPLY_AMT_CRDT_APPL_STS = "sply_amt_crdt_appl_sts"; // 授信单-状态
+ String SPLY_AMT_CRDT_APPL_SGN_STATUS = "sply_amt_crdt_appl_sgn_status"; // 授信单签字确认状态
+
+}
diff --git a/yudao-module-capital/yudao-module-capital-api/src/main/java/cn/iocoder/yudao/module/capital/enums/ErrorCodeConstants.java b/yudao-module-capital/yudao-module-capital-api/src/main/java/cn/iocoder/yudao/module/capital/enums/ErrorCodeConstants.java
index a8eb0d30..f884b6c9 100644
--- a/yudao-module-capital/yudao-module-capital-api/src/main/java/cn/iocoder/yudao/module/capital/enums/ErrorCodeConstants.java
+++ b/yudao-module-capital/yudao-module-capital-api/src/main/java/cn/iocoder/yudao/module/capital/enums/ErrorCodeConstants.java
@@ -13,5 +13,15 @@ public interface ErrorCodeConstants {
// ========== 示例模块 1-001-000-000 ==========
ErrorCode EXAMPLE_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在");
+ ErrorCode AMOUNT_CREDIT_APPLY_NOT_EXISTS = new ErrorCode(1_004_000_005, "授信单不存在");
+ ErrorCode AMOUNT_CREDIT_APPLY_DETAIL_NOT_EXISTS = new ErrorCode(1_004_000_006, "授信单明细不存在");
+ ErrorCode AMOUNT_CREDIT_APPLY_SIGN_NOT_EXISTS = new ErrorCode(1_004_000_007, "授信调整签字区域明细不存在");
+ ErrorCode AMOUNT_CREDIT_STATUS_DELETE = new ErrorCode(1_004_000_008, "授信单不是草稿状态,不允许删除");
+ ErrorCode AMOUNT_CREDIT_STATUS_UPDATE = new ErrorCode(1_004_000_009, "授信单是申请中状态,不允许更新");
+ ErrorCode AMOUNT_CREDIT_NOT_EXISTS = new ErrorCode(1_004_002_001, "授信额度不存在");
+ ErrorCode AMOUNT_CREDIT_CHANGE_NOT_EXISTS = new ErrorCode(1_004_002_002, "授信额度变动记录不存在");
+ ErrorCode AMOUNT_CREDIT_APPLY_ID_NOT_EXISTS = new ErrorCode(1_004_002_004, "授信单id不能为空");
+
+
}
diff --git a/yudao-module-capital/yudao-module-capital-api/src/main/java/cn/iocoder/yudao/module/capital/enums/GeneralSequenceConstants.java b/yudao-module-capital/yudao-module-capital-api/src/main/java/cn/iocoder/yudao/module/capital/enums/GeneralSequenceConstants.java
new file mode 100644
index 00000000..05cdbef3
--- /dev/null
+++ b/yudao-module-capital/yudao-module-capital-api/src/main/java/cn/iocoder/yudao/module/capital/enums/GeneralSequenceConstants.java
@@ -0,0 +1,9 @@
+package cn.iocoder.yudao.module.capital.enums;
+
+/**
+ * 授信模块-序列号编码常量
+ */
+public interface GeneralSequenceConstants {
+
+ String SPLY_AMT_CRDT_APPL_APPL_NUM = "SPLY_AMT_CRDT_APPL_APPL_NUM"; // 资金授信管理-授信单序列号编码
+}
diff --git a/yudao-module-capital/yudao-module-capital-server/pom.xml b/yudao-module-capital/yudao-module-capital-server/pom.xml
index f318fc60..b66524fc 100644
--- a/yudao-module-capital/yudao-module-capital-server/pom.xml
+++ b/yudao-module-capital/yudao-module-capital-server/pom.xml
@@ -42,6 +42,12 @@
${revision}
+
+ cn.iocoder.cloud
+ yudao-module-bpm-api
+ ${revision}
+
+
cn.iocoder.cloud
@@ -131,21 +137,21 @@
${project.artifactId}
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
- ${spring.boot.version}
-
-
-
- repackage
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/CapitalServerApplication.java b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/CapitalServerApplication.java
index 5858498c..cda3687a 100644
--- a/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/CapitalServerApplication.java
+++ b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/CapitalServerApplication.java
@@ -8,7 +8,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
*
* @author ZT
*/
-@SpringBootApplication
+//@SpringBootApplication
public class CapitalServerApplication {
public static void main(String[] args) {
diff --git a/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/CapitalController.java b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/CapitalController.java
deleted file mode 100644
index a3eab462..00000000
--- a/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/CapitalController.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package cn.iocoder.yudao.module.capital.controller.admin.capital;
-
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-
-/**
- * Capital 控制器
- *
- * @author ZT
- */
-@Tag(name = "管理后台 - Capital")
-@RestController
-@RequestMapping("/admin/capital/capital")
-public class CapitalController {
-
- @GetMapping("/hello")
- @Operation(summary = "Hello Capital")
- public CommonResult hello() {
- return success("Hello, Capital!");
- }
-
-}
diff --git a/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/AmountCreditChangeController.java b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/AmountCreditChangeController.java
new file mode 100644
index 00000000..f58064c7
--- /dev/null
+++ b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/AmountCreditChangeController.java
@@ -0,0 +1,117 @@
+package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit;
+
+import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo.AmountCreditChangeExcelVO;
+import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo.AmountCreditChangePageReqVO;
+import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo.AmountCreditChangeRespVO;
+import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo.AmountCreditChangeSaveReqVO;
+import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmountCredit.AmountCreditChangeDO;
+import cn.iocoder.yudao.module.capital.service.splyAmountCredit.AmountCreditChangeService;
+import org.springframework.web.bind.annotation.*;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import cn.iocoder.yudao.framework.business.interceptor.BusinessControllerMarker;
+import cn.iocoder.yudao.framework.business.annotation.FileUploadController;
+import cn.iocoder.yudao.framework.business.controller.AbstractFileUploadController;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.iocoder.yudao.framework.common.pojo.vo.BatchDeleteReqVO;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
+
+@Tag(name = "授信台账详情")
+@RestController
+@RequestMapping("/supply/sply/amount-credit-change")
+@Validated
+@FileUploadController(source = "sply.amountcreditchange")
+public class AmountCreditChangeController extends AbstractFileUploadController implements BusinessControllerMarker{
+
+ static {
+ FileUploadController annotation = AmountCreditChangeController.class.getAnnotation(FileUploadController.class);
+ if (annotation != null) {
+ setFileUploadInfo(annotation);
+ }
+ }
+
+ @Resource
+ private AmountCreditChangeService amountCreditChangeService;
+
+ @PostMapping("/create")
+ //@Operation(summary = "创建授信额度变动记录")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-change:create')")
+ public CommonResult createAmountCreditChange(@Valid @RequestBody AmountCreditChangeSaveReqVO createReqVO) {
+ return success(amountCreditChangeService.createAmountCreditChange(createReqVO));
+ }
+
+ @PutMapping("/update")
+ //@Operation(summary = "更新授信额度变动记录")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-change:update')")
+ public CommonResult updateAmountCreditChange(@Valid @RequestBody AmountCreditChangeSaveReqVO updateReqVO) {
+ amountCreditChangeService.updateAmountCreditChange(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ //@Operation(summary = "删除授信额度变动记录")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-change:delete')")
+ public CommonResult deleteAmountCreditChange(@RequestParam("id") Long id) {
+ amountCreditChangeService.deleteAmountCreditChange(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ //@Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除授信额度变动记录")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-change:delete')")
+ public CommonResult deleteAmountCreditChangeList(@RequestBody BatchDeleteReqVO req) {
+ amountCreditChangeService.deleteAmountCreditChangeListByIds(req.getIds());
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ //@Operation(summary = "获得授信额度变动记录")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-change:query')")
+ public CommonResult getAmountCreditChange(@RequestParam("id") Long id) {
+ AmountCreditChangeDO amountCreditChange = amountCreditChangeService.getAmountCreditChange(id);
+ return success(BeanUtils.toBean(amountCreditChange, AmountCreditChangeRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获取授信台账详情分页")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-change:query')")
+ public CommonResult> getAmountCreditChangePage(@Valid AmountCreditChangePageReqVO pageReqVO) {
+ PageResult pageResult = amountCreditChangeService.getAmountCreditChangePage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, AmountCreditChangeRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出授信台账详情 Excel")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-change:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportAmountCreditChangeExcel(@Valid AmountCreditChangePageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageNo(1);
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = amountCreditChangeService.getAmountCreditChangePage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "授信台账详情.xls", "授信台账详情", AmountCreditChangeExcelVO.class,
+ BeanUtils.toBean(list, AmountCreditChangeExcelVO.class));
+ }
+
+}
\ No newline at end of file
diff --git a/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/AmountCreditController.java b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/AmountCreditController.java
new file mode 100644
index 00000000..4060710d
--- /dev/null
+++ b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/AmountCreditController.java
@@ -0,0 +1,119 @@
+package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit;
+
+import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo.AmountCreditExcelVO;
+import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo.AmountCreditPageReqVO;
+import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo.AmountCreditRespVO;
+import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo.AmountCreditSaveReqVO;
+import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmountCredit.AmountCreditDO;
+import cn.iocoder.yudao.module.capital.service.splyAmountCredit.AmountCreditService;
+import org.springframework.web.bind.annotation.*;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import cn.iocoder.yudao.framework.business.interceptor.BusinessControllerMarker;
+import cn.iocoder.yudao.framework.business.annotation.FileUploadController;
+import cn.iocoder.yudao.framework.business.controller.AbstractFileUploadController;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.iocoder.yudao.framework.common.pojo.vo.BatchDeleteReqVO;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
+
+@Tag(name = "授信台账检索")
+@RestController
+@RequestMapping("/supply/sply/amount-credit")
+@Validated
+@FileUploadController(source = "sply.amountcredit")
+public class AmountCreditController extends AbstractFileUploadController implements BusinessControllerMarker{
+
+ static {
+ FileUploadController annotation = AmountCreditController.class.getAnnotation(FileUploadController.class);
+ if (annotation != null) {
+ setFileUploadInfo(annotation);
+ }
+ }
+
+ @Resource
+ private AmountCreditService amountCreditService;
+
+ @PostMapping("/create")
+ //@Operation(summary = "创建授信额度")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit:create')")
+ public CommonResult createAmountCredit(@Valid @RequestBody AmountCreditSaveReqVO createReqVO) {
+ return success(amountCreditService.createAmountCredit(createReqVO));
+ }
+
+ @PutMapping("/update")
+ //@Operation(summary = "更新授信额度")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit:update')")
+ public CommonResult updateAmountCredit(@Valid @RequestBody AmountCreditSaveReqVO updateReqVO) {
+ amountCreditService.updateAmountCredit(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ //@Operation(summary = "删除授信额度")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit:delete')")
+ public CommonResult deleteAmountCredit(@RequestParam("id") Long id) {
+ amountCreditService.deleteAmountCredit(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ //@Operation(summary = "批量删除授信额度")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit:delete')")
+ public CommonResult deleteAmountCreditList(@RequestBody BatchDeleteReqVO req) {
+ amountCreditService.deleteAmountCreditListByIds(req.getIds());
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ //@Operation(summary = "获得授信额度信息")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit:query')")
+ public CommonResult getAmountCredit(@RequestParam("id") Long id) {
+ AmountCreditDO amountCredit = amountCreditService.getAmountCredit(id);
+ return success(BeanUtils.toBean(amountCredit, AmountCreditRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得授信额度分页")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit:query')")
+ public CommonResult> getAmountCreditPage(@Valid AmountCreditPageReqVO pageReqVO) {
+ PageResult pageResult = amountCreditService.getAmountCreditPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, AmountCreditRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出授信台账检索 Excel")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportAmountCreditExcel(@Valid AmountCreditPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageNo(1);
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = amountCreditService.getAmountCreditPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "授信台账检索.xls", "授信台账检索", AmountCreditExcelVO.class,
+ BeanUtils.toBean(list, AmountCreditExcelVO.class));
+ }
+
+}
\ No newline at end of file
diff --git a/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditChangeExcelVO.java b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditChangeExcelVO.java
new file mode 100644
index 00000000..62226d6b
--- /dev/null
+++ b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditChangeExcelVO.java
@@ -0,0 +1,73 @@
+package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo;
+
+import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
+import cn.iocoder.yudao.module.capital.enums.CapitalDictTypeConstants;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 授信额度变动记录 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class AmountCreditChangeExcelVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "8514")
+ @ExcelProperty("主键")
+ private Long id;
+
+ @Schema(description = "关联单据号;收款单/付款单/结算单", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("关联单据号;收款单/付款单/结算单")
+ private String referenceNumber;
+
+ @Schema(description = "授信表主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "5903")
+ //@ExcelProperty("授信表主键")
+ private Long creditId;
+
+ @Schema(description = "变动单号", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("变动单号")
+ private String changeNumber;
+
+ @Schema(description = "客商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
+ @ExcelProperty("客商名称")
+ private String partnerName;
+
+ @Schema(description = "客商编码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("客商编码")
+ private String partnerNumber;
+
+ @Schema(description = "变动类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @ExcelProperty("变动类型")
+ @DictFormat(CapitalDictTypeConstants.SPLY_AMT_CRDT_CHG_CHANGE_TYPE)
+ private String changeType;
+
+ @Schema(description = "变动金额", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("变动金额")
+ private BigDecimal amount;
+
+ @Schema(description = "变动原因")
+ @ExcelProperty("变动原因")
+ private String cause;
+
+ @Schema(description = "关联交易类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @ExcelProperty("关联交易类型")
+ @DictFormat(CapitalDictTypeConstants.SPLY_AMT_CRDT_CHG_REFERENCE_TYPE)
+ private String referenceType;
+
+ @Schema(description = "凭证日期", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("凭证日期")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime voucherDate;
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditChangePageReqVO.java b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditChangePageReqVO.java
new file mode 100644
index 00000000..71109337
--- /dev/null
+++ b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditChangePageReqVO.java
@@ -0,0 +1,52 @@
+package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import java.math.BigDecimal;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 授信额度变动记录分页 Request VO")
+@Data
+public class AmountCreditChangePageReqVO extends PageParam {
+
+ @Schema(description = "关联单据号;收款单/付款单/结算单")
+ private String referenceNumber;
+
+ @Schema(description = "授信表主键", example = "5903")
+ private Long creditId;
+
+ @Schema(description = "变动单号")
+ private String changeNumber;
+
+ @Schema(description = "客商名称", example = "王五")
+ private String partnerName;
+
+ @Schema(description = "客商编码")
+ private String partnerNumber;
+
+ @Schema(description = "变动类型", example = "1")
+ private String changeType;
+
+ @Schema(description = "变动金额")
+ private BigDecimal amount;
+
+ @Schema(description = "变动原因")
+ private String cause;
+
+ @Schema(description = "关联交易类型", example = "1")
+ private String referenceType;
+
+ @Schema(description = "凭证日期")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] voucherDate;
+
+ @Schema(description = "创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+}
\ No newline at end of file
diff --git a/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditChangeRespVO.java b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditChangeRespVO.java
new file mode 100644
index 00000000..01ac6f46
--- /dev/null
+++ b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditChangeRespVO.java
@@ -0,0 +1,67 @@
+package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.math.BigDecimal;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 授信额度变动记录 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class AmountCreditChangeRespVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "8514")
+ @ExcelProperty("主键")
+ private Long id;
+
+ @Schema(description = "关联单据号;收款单/付款单/结算单", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("关联单据号;收款单/付款单/结算单")
+ private String referenceNumber;
+
+ @Schema(description = "授信表主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "5903")
+ //@ExcelProperty("授信表主键")
+ private Long creditId;
+
+ @Schema(description = "变动单号", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("变动单号")
+ private String changeNumber;
+
+ @Schema(description = "客商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
+ @ExcelProperty("客商名称")
+ private String partnerName;
+
+ @Schema(description = "客商编码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("客商编码")
+ private String partnerNumber;
+
+ @Schema(description = "变动类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @ExcelProperty("变动类型")
+ private String changeType;
+
+ @Schema(description = "变动金额", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("变动金额")
+ private BigDecimal amount;
+
+ @Schema(description = "变动原因")
+ @ExcelProperty("变动原因")
+ private String cause;
+
+ @Schema(description = "关联交易类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @ExcelProperty("关联交易类型")
+ private String referenceType;
+
+ @Schema(description = "凭证日期", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("凭证日期")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime voucherDate;
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditChangeSaveReqVO.java b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditChangeSaveReqVO.java
new file mode 100644
index 00000000..21d718f4
--- /dev/null
+++ b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditChangeSaveReqVO.java
@@ -0,0 +1,60 @@
+package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+import java.math.BigDecimal;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 授信额度变动记录新增/修改 Request VO")
+@Data
+public class AmountCreditChangeSaveReqVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "8514")
+ private Long id;
+
+ @Schema(description = "关联单据号;收款单/付款单/结算单", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "关联单据号;收款单/付款单/结算单不能为空")
+ private String referenceNumber;
+
+ @Schema(description = "授信表主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "5903")
+ @NotEmpty(message = "授信表主键不能为空")
+ private Long creditId;
+
+ @Schema(description = "变动单号", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "变动单号不能为空")
+ private String changeNumber;
+
+ @Schema(description = "客商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
+ @NotEmpty(message = "客商名称不能为空")
+ private String partnerName;
+
+ @Schema(description = "客商编码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "客商编码不能为空")
+ private String partnerNumber;
+
+ @Schema(description = "变动类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @NotEmpty(message = "变动类型不能为空")
+ private String changeType;
+
+ @Schema(description = "变动金额", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotNull(message = "变动金额不能为空")
+ private BigDecimal amount;
+
+ @Schema(description = "变动原因")
+ private String cause;
+
+ @Schema(description = "关联交易类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @NotEmpty(message = "关联交易类型不能为空")
+ private String referenceType;
+
+ @Schema(description = "凭证日期", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotNull(message = "凭证日期不能为空")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime voucherDate;
+
+}
\ No newline at end of file
diff --git a/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditExcelVO.java b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditExcelVO.java
new file mode 100644
index 00000000..260e6d61
--- /dev/null
+++ b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditExcelVO.java
@@ -0,0 +1,65 @@
+package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo;
+
+import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
+import cn.iocoder.yudao.module.capital.enums.CapitalDictTypeConstants;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 授信额度 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class AmountCreditExcelVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "11717")
+ @ExcelProperty("主键")
+ private Long id;
+
+ @Schema(description = "客商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
+ @ExcelProperty("客商名称")
+ private String partnerName;
+
+ @Schema(description = "客商编码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("客商编码")
+ private String partnerNumber;
+
+ @Schema(description = "授信类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @ExcelProperty("授信类型")
+ @DictFormat(CapitalDictTypeConstants.SPLY_AMT_CRDT_CREDIT_TYPE)
+ private String creditType;
+
+ @Schema(description = "开始日期", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("开始日期")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime startDate;
+
+ @Schema(description = "结束日期", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("结束日期")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime endDate;
+
+ @Schema(description = "授信额度上限", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("授信额度上限")
+ private BigDecimal amountLimit;
+
+ @Schema(description = "授信使用额度")
+ @ExcelProperty("授信使用额度")
+ private BigDecimal useAmount;
+
+ @Schema(description = "授信剩余余额")
+ @ExcelProperty("授信剩余余额")
+ private BigDecimal remaineAmount;
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditPageReqVO.java b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditPageReqVO.java
new file mode 100644
index 00000000..39d8ff40
--- /dev/null
+++ b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditPageReqVO.java
@@ -0,0 +1,46 @@
+package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo;
+
+import lombok.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import java.math.BigDecimal;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 授信额度分页 Request VO")
+@Data
+public class AmountCreditPageReqVO extends PageParam {
+
+ @Schema(description = "客商名称", example = "赵六")
+ private String partnerName;
+
+ @Schema(description = "客商编码")
+ private String partnerNumber;
+
+ @Schema(description = "授信类型", example = "1")
+ private String creditType;
+
+ @Schema(description = "开始日期")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] startDate;
+
+ @Schema(description = "结束日期")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] endDate;
+
+ @Schema(description = "授信额度上限")
+ private BigDecimal amountLimit;
+
+ @Schema(description = "授信使用额度")
+ private BigDecimal useAmount;
+
+ @Schema(description = "授信剩余余额")
+ private BigDecimal remaineAmount;
+
+ @Schema(description = "创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+}
\ No newline at end of file
diff --git a/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditRespVO.java b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditRespVO.java
new file mode 100644
index 00000000..db87ffeb
--- /dev/null
+++ b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditRespVO.java
@@ -0,0 +1,61 @@
+package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 授信额度 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class AmountCreditRespVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "11717")
+ @ExcelProperty("主键")
+ private Long id;
+
+ @Schema(description = "客商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
+ @ExcelProperty("客商名称")
+ private String partnerName;
+
+ @Schema(description = "客商编码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("客商编码")
+ private String partnerNumber;
+
+ @Schema(description = "授信类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @ExcelProperty("授信类型")
+ private String creditType;
+
+ @Schema(description = "开始日期", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("开始日期")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime startDate;
+
+ @Schema(description = "结束日期", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("结束日期")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime endDate;
+
+ @Schema(description = "授信额度上限", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("授信额度上限")
+ private BigDecimal amountLimit;
+
+ @Schema(description = "授信使用额度")
+ @ExcelProperty("授信使用额度")
+ private BigDecimal useAmount;
+
+ @Schema(description = "授信剩余余额")
+ @ExcelProperty("授信剩余余额")
+ private BigDecimal remaineAmount;
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditSaveReqVO.java b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditSaveReqVO.java
new file mode 100644
index 00000000..e70d16f2
--- /dev/null
+++ b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmountCredit/vo/AmountCreditSaveReqVO.java
@@ -0,0 +1,52 @@
+package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import jakarta.validation.constraints.*;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 授信额度新增/修改 Request VO")
+@Data
+public class AmountCreditSaveReqVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "11717")
+ private Long id;
+
+ @Schema(description = "客商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
+ @NotEmpty(message = "客商名称不能为空")
+ private String partnerName;
+
+ @Schema(description = "客商编码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "客商编码不能为空")
+ private String partnerNumber;
+
+ @Schema(description = "授信类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @NotEmpty(message = "授信类型不能为空")
+ private String creditType;
+
+ @Schema(description = "开始日期", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotNull(message = "开始日期不能为空")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime startDate;
+
+ @Schema(description = "结束日期", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotNull(message = "结束日期不能为空")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime endDate;
+
+ @Schema(description = "授信额度上限", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotNull(message = "授信额度上限不能为空")
+ private BigDecimal amountLimit;
+
+ @Schema(description = "授信使用额度")
+ private BigDecimal useAmount;
+
+ @Schema(description = "授信剩余余额")
+ private BigDecimal remaineAmount;
+
+}
\ No newline at end of file
diff --git a/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmtCrdtAppl/AmountCreditApplyController.java b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmtCrdtAppl/AmountCreditApplyController.java
new file mode 100644
index 00000000..ae8b3208
--- /dev/null
+++ b/yudao-module-capital/yudao-module-capital-server/src/main/java/cn/iocoder/yudao/module/capital/controller/admin/capital/splyAmtCrdtAppl/AmountCreditApplyController.java
@@ -0,0 +1,189 @@
+package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import cn.iocoder.yudao.framework.business.annotation.FileUploadController;
+import cn.iocoder.yudao.framework.business.controller.AbstractFileUploadController;
+import cn.iocoder.yudao.framework.business.interceptor.BusinessControllerMarker;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.vo.BatchDeleteReqVO;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.AmountCreditController;
+import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.*;
+import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl.AmountCreditApplyDO;
+import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl.AmountCreditApplyDetailDO;
+import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl.AmountCreditApplySignDO;
+import cn.iocoder.yudao.module.capital.service.splyAmtCrdtAppl.AmountCreditApplyDetailService;
+import cn.iocoder.yudao.module.capital.service.splyAmtCrdtAppl.AmountCreditApplyService;
+import cn.iocoder.yudao.module.capital.service.splyAmtCrdtAppl.AmountCreditApplySignService;
+import cn.iocoder.yudao.module.system.api.dept.dto.DeptSimpleRespDTO;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.Valid;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+import java.util.List;
+
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+/**
+ * 注意前缀需要与网关的配置路由前缀统一
+ */
+@Tag(name = "授信单编制与检索")
+@RestController
+@RequestMapping("/supply/sply/amount-credit-apply")
+@Validated
+public class AmountCreditApplyController extends AbstractFileUploadController implements BusinessControllerMarker{
+
+ static {
+ FileUploadController annotation = AmountCreditController.class.getAnnotation(FileUploadController.class);
+ if (annotation != null) {
+ setFileUploadInfo(annotation);
+ }
+ }
+
+ @Resource
+ private AmountCreditApplyService amountCreditApplyService;
+ @Resource
+ private AmountCreditApplyDetailService amountCreditApplyDetailService;
+ @Resource
+ private AmountCreditApplySignService amountCreditApplySignService;
+
+ @PostMapping("/create")
+ @Operation(summary = "授信单编制新增")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:create')")
+ public CommonResult createAmountCreditApply(@Valid @RequestBody AmountCreditApplySaveReqVO createReqVO) {
+ return success(amountCreditApplyService.createAmountCreditApply(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "授信单编制更新")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:update')")
+ public CommonResult updateAmountCreditApply(@Valid @RequestBody AmountCreditApplySaveReqVO updateReqVO) {
+ amountCreditApplyService.updateAmountCreditApply(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "授信单编制删除")
+ @Parameter(name = "id", description = "授信单id", required = true)
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:delete')")
+ public CommonResult deleteAmountCreditApply(@RequestParam("id") Long id) {
+ amountCreditApplyService.deleteAmountCreditApply(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除授信单编制")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:delete')")
+ public CommonResult deleteAmountCreditApplyList(@RequestBody BatchDeleteReqVO req) {
+ amountCreditApplyService.deleteAmountCreditApplyListByIds(req.getIds());
+ return success(true);
+ }
+
+ @DeleteMapping("/deleteAmountCreditApplyDetailList")
+ @Parameter(name = "ids", description = "授信单明细id", required = true)
+ @Operation(summary = "批量删除授信单明细")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:delete')")
+ public CommonResult deleteAmountCreditApplyDetailList(@RequestBody BatchDeleteReqVO req) {
+ amountCreditApplyDetailService.deleteAmountCreditApplyDetailListByIds(req.getIds());
+ return success(true);
+ }
+
+ @DeleteMapping("/deleteAmountCreditApplySignList")
+ @Parameter(name = "ids", description = "授信单签字id", required = true)
+ @Operation(summary = "批量删除授信单签字信息")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:delete')")
+ public CommonResult deleteAmountCreditApplySignList(@RequestBody BatchDeleteReqVO req) {
+ amountCreditApplySignService.deleteAmountCreditApplySignListByIds(req.getIds());
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得授信单编制详情信息")
+ @Parameter(name = "id", description = "主键id", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:query')")
+ public CommonResult getAmountCreditApply(@RequestParam("id") Long id) {
+ AmountCreditApplyDO amountCreditApply = amountCreditApplyService.getAmountCreditApplyById(id);
+ AmountCreditApplyRespVO acarBean = BeanUtils.toBean(amountCreditApply, AmountCreditApplyRespVO.class);
+ List acadList = amountCreditApplyDetailService.getAmountCreditApplyDetailListByApplyId(amountCreditApply.getId());
+ List acasList = amountCreditApplySignService.getAmountCreditApplySignListByApplyId(amountCreditApply.getId());
+ acarBean.setAcadetailList(BeanUtils.toBean(acadList, AmountCreditApplyDetailRespVO.class));
+ acarBean.setAcasList(BeanUtils.toBean(acasList, AmountCreditApplySignRespVO.class));
+ return success(acarBean);
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "分页获取授信单编制")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:query')")
+ public CommonResult> getAmountCreditApplyPage(@Valid AmountCreditApplyPageReqVO pageReqVO) {
+ PageResult pageResult = amountCreditApplyService.getAmountCreditApplyPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, AmountCreditApplyRespVO.class));
+ }
+
+ @GetMapping("/getLoginUserAllCompanyList")
+ @Operation(summary = "获取登陆人的所在公司以及下属公司")
+ @PreAuthorize("@ss.hasAnyPermissions({'sply:amount-credit-apply:create','sply:amount-credit-apply:update'})")
+ public CommonResult> getLoginUserAllCompanyList() {
+ return success(amountCreditApplyService.getLoginUserAllCompanyList());
+ }
+
+
+ @GetMapping("/amountCreditApplySubmitApproval")
+ @Operation(summary = "授信单提交审批")
+ @Parameter(name = "id", description = "主键id", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:submitApproval')")
+ public CommonResult amountCreditApplySubmitApproval(@RequestParam("id") Long id, @RequestParam("processInstanceId") String processInstanceId) {
+ return success(amountCreditApplyService.amountCreditApplySubmitApproval(id,processInstanceId));
+ }
+
+ /*@GetMapping("/getBpmTaskListByProcessInstanceId")
+ @Operation(summary = "查看审批信息")
+ @Parameter(name = "id", description = "流程实例id", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:bpmTaskList')")
+ public CommonResult