合并供应链代码

This commit is contained in:
Administrator
2025-09-04 00:51:32 +00:00
committed by chenbowen
parent 75a20dcf56
commit 70fd14513b
205 changed files with 10460 additions and 260 deletions

12
pom.xml
View File

@@ -303,6 +303,18 @@
<config.namespace>liss</config.namespace>
</properties>
</profile>
<profile>
<id>qsj</id>
<properties>
<config.namespace>qsj</config.namespace>
</properties>
</profile>
<profile>
<id>qsj</id>
<properties>
<config.namespace>qsj</config.namespace>
</properties>
</profile>
</profiles>
</project>

View File

@@ -1,4 +1,4 @@
FROM openjdk:17-jre-slim
FROM 172.16.46.66:10043/base-service/eclipse-temurin:21-jre
# 设置应用目录
WORKDIR /app

View File

@@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>cn.iocoder.cloud</groupId>
<artifactId>yudao</artifactId>
<artifactId>dsc-supply</artifactId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -25,6 +25,12 @@
<artifactId>yudao-module-infra-api</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>cn.iocoder.cloud</groupId>
<artifactId>yudao-framework</artifactId>
<version>${revision}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>cn.iocoder.cloud</groupId>
<artifactId>yudao-module-capital-server</artifactId>
@@ -75,12 +81,43 @@
<artifactId>yudao-module-sell-server</artifactId>
<version>${revision}</version>
</dependency>
<!-- 业务组件 -->
<dependency>
<groupId>cn.iocoder.cloud</groupId>
<artifactId>yudao-spring-boot-starter-biz-data-permission</artifactId>
</dependency>
<dependency>
<groupId>cn.iocoder.cloud</groupId>
<artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>
</dependency>
<!-- Web 相关 -->
<dependency>
<groupId>cn.iocoder.cloud</groupId>
<artifactId>yudao-spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>cn.iocoder.cloud</groupId>
<artifactId>yudao-spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!-- DB 相关 -->
<dependency>
<groupId>cn.iocoder.cloud</groupId>
<artifactId>yudao-spring-boot-starter-mybatis</artifactId>
</dependency>
<dependency>
<groupId>cn.iocoder.cloud</groupId>
<artifactId>yudao-spring-boot-starter-redis</artifactId>
</dependency>
<!-- 服务保障相关 -->
<dependency>
<groupId>cn.iocoder.cloud</groupId>
@@ -103,13 +140,6 @@
<dependency>
<groupId>cn.iocoder.cloud</groupId>
<artifactId>yudao-spring-boot-starter-rpc</artifactId>
<!-- 目的yudao-server 单体启动,禁用 openfeign -->
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>

View File

@@ -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;
/**

View File

@@ -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 的地址

View File

@@ -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">
<parent>
<artifactId>yudao</artifactId>
<artifactId>dsc-supply</artifactId>
<groupId>cn.iocoder.cloud</groupId>
<version>${revision}</version>
</parent>

View File

@@ -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, "发票明细不存在");
}

View File

@@ -131,21 +131,21 @@
<build>
<!-- 设置构建的 jar 包名 -->
<finalName>${project.artifactId}</finalName>
<plugins>
<!-- 打包 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
<!-- <plugins>-->
<!-- &lt;!&ndash; 打包 &ndash;&gt;-->
<!-- <plugin>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
<!-- <version>${spring.boot.version}</version>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <goals>-->
<!-- <goal>repackage</goal> &lt;!&ndash; 将引入的 jar 打入其中 &ndash;&gt;-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- </plugin>-->
<!-- </plugins>-->
</build>
</project>

View File

@@ -8,7 +8,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
*
* @author ZT
*/
@SpringBootApplication
//@SpringBootApplication
public class BillServerApplication {
public static void main(String[] args) {

View File

@@ -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;
/**

View File

@@ -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 {
}

View File

@@ -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

View File

@@ -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">
<parent>
<artifactId>yudao</artifactId>
<artifactId>dsc-supply</artifactId>
<groupId>cn.iocoder.cloud</groupId>
<version>${revision}</version>
</parent>
@@ -18,7 +18,7 @@
<name>${project.artifactId}</name>
<description>
Capital 模块。
Capital 模块。资金授信模块。
</description>
</project>

View File

@@ -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"; // 授信单签字确认状态
}

View File

@@ -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不能为空");
}

View File

@@ -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"; // 资金授信管理-授信单序列号编码
}

View File

@@ -42,6 +42,12 @@
<version>${revision}</version>
</dependency>
<dependency>
<groupId>cn.iocoder.cloud</groupId>
<artifactId>yudao-module-bpm-api</artifactId>
<version>${revision}</version>
</dependency>
<!-- 业务组件 -->
<dependency>
<groupId>cn.iocoder.cloud</groupId>
@@ -131,21 +137,21 @@
<build>
<!-- 设置构建的 jar 包名 -->
<finalName>${project.artifactId}</finalName>
<plugins>
<!-- 打包 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
<!-- <plugins>-->
<!-- &lt;!&ndash; 打包 &ndash;&gt;-->
<!-- <plugin>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
<!-- <version>${spring.boot.version}</version>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <goals>-->
<!-- <goal>repackage</goal> &lt;!&ndash; 将引入的 jar 打入其中 &ndash;&gt;-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- </plugin>-->
<!-- </plugins>-->
</build>
</project>

View File

@@ -8,7 +8,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
*
* @author ZT
*/
@SpringBootApplication
//@SpringBootApplication
public class CapitalServerApplication {
public static void main(String[] args) {

View File

@@ -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<String> hello() {
return success("Hello, Capital!");
}
}

View File

@@ -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<AmountCreditChangeRespVO> createAmountCreditChange(@Valid @RequestBody AmountCreditChangeSaveReqVO createReqVO) {
return success(amountCreditChangeService.createAmountCreditChange(createReqVO));
}
@PutMapping("/update")
//@Operation(summary = "更新授信额度变动记录")
@PreAuthorize("@ss.hasPermission('sply:amount-credit-change:update')")
public CommonResult<Boolean> 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<Boolean> 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<Boolean> 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<AmountCreditChangeRespVO> 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<PageResult<AmountCreditChangeRespVO>> getAmountCreditChangePage(@Valid AmountCreditChangePageReqVO pageReqVO) {
PageResult<AmountCreditChangeDO> 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<AmountCreditChangeDO> list = amountCreditChangeService.getAmountCreditChangePage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "授信台账详情.xls", "授信台账详情", AmountCreditChangeExcelVO.class,
BeanUtils.toBean(list, AmountCreditChangeExcelVO.class));
}
}

View File

@@ -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<AmountCreditRespVO> createAmountCredit(@Valid @RequestBody AmountCreditSaveReqVO createReqVO) {
return success(amountCreditService.createAmountCredit(createReqVO));
}
@PutMapping("/update")
//@Operation(summary = "更新授信额度")
@PreAuthorize("@ss.hasPermission('sply:amount-credit:update')")
public CommonResult<Boolean> 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<Boolean> 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<Boolean> 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<AmountCreditRespVO> 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<PageResult<AmountCreditRespVO>> getAmountCreditPage(@Valid AmountCreditPageReqVO pageReqVO) {
PageResult<AmountCreditDO> 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<AmountCreditDO> list = amountCreditService.getAmountCreditPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "授信台账检索.xls", "授信台账检索", AmountCreditExcelVO.class,
BeanUtils.toBean(list, AmountCreditExcelVO.class));
}
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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<AmountCreditApplyRespVO> createAmountCreditApply(@Valid @RequestBody AmountCreditApplySaveReqVO createReqVO) {
return success(amountCreditApplyService.createAmountCreditApply(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "授信单编制更新")
@PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:update')")
public CommonResult<Boolean> 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<Boolean> 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<Boolean> 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<Boolean> 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<Boolean> 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<AmountCreditApplyRespVO> getAmountCreditApply(@RequestParam("id") Long id) {
AmountCreditApplyDO amountCreditApply = amountCreditApplyService.getAmountCreditApplyById(id);
AmountCreditApplyRespVO acarBean = BeanUtils.toBean(amountCreditApply, AmountCreditApplyRespVO.class);
List<AmountCreditApplyDetailDO> acadList = amountCreditApplyDetailService.getAmountCreditApplyDetailListByApplyId(amountCreditApply.getId());
List<AmountCreditApplySignDO> 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<PageResult<AmountCreditApplyRespVO>> getAmountCreditApplyPage(@Valid AmountCreditApplyPageReqVO pageReqVO) {
PageResult<AmountCreditApplyDO> 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<List<DeptSimpleRespDTO>> 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<String> 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<Object> getBpmTaskListByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
return success(amountCreditApplyService.getBpmTaskListByProcessInstanceId(processInstanceId));
}
@GetMapping("/getBpmProcessInstanceBpmnModelView")
@Operation(summary = "查看审批流程图")
@Parameter(name = "id", description = "流程实例id", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:bpmProcessInstanceBpmnModelView')")
public CommonResult<Object> getBpmProcessInstanceBpmnModelView(@RequestParam("processInstanceId") String processInstanceId) {
return success(amountCreditApplyService.getBpmProcessInstanceBpmnModelView(processInstanceId));
}
@GetMapping("/getBpmApprovalDetail")
@Operation(summary = "查看审详情(就是审批页面)")
@Parameter(name = "processDefinitionId", description = "流程实例id,任务id(如果没有就传流程实例id)", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:bpmApprovalDetail')")
public CommonResult<Object> getBpmApprovalDetail(@RequestParam("processDefinitionId") String processDefinitionId,@RequestParam("taskId") String taskId) {
return success(amountCreditApplyService.getBpmApprovalDetail(processDefinitionId,taskId));
}*/
@GetMapping("/export-excel")
@Operation(summary = "导出授信调整申请主 Excel")
@PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportAmountCreditApplyExcel(@Valid AmountCreditApplyPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageNo(1);
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<AmountCreditApplyDO> list = amountCreditApplyService.getAmountCreditApplyPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "授信单信息.xls", "授信单信息", AmountCreditApplyExcelVO.class,
BeanUtils.toBean(list, AmountCreditApplyExcelVO.class));
}
}

View File

@@ -0,0 +1,74 @@
package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplyDetailRespVO;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplyRespVO;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplyReviewPageReqVO;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplySignRespVO;
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 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.validation.Valid;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
/**
* 授信单审核
*
* @author qianshijiang
*/
@Tag(name = "授信单审核")
@RestController
@RequestMapping("/supply/sply/amount-credit-review")
public class AmountCreditApplyReviewController {
@Resource
private AmountCreditApplyService amountCreditApplyService;
@Resource
private AmountCreditApplyDetailService amountCreditApplyDetailService;
@Resource
private AmountCreditApplySignService amountCreditApplySignService;
@GetMapping("/getTodoOrDoneTaskList")
@Operation(summary = "待办/已办任务")
@PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:query')")
public CommonResult<PageResult<AmountCreditApplyRespVO>> getAmountCreditApplyReviewTaskList(@Valid AmountCreditApplyReviewPageReqVO pageReqVO) {
PageResult<AmountCreditApplyDO> pageResult = amountCreditApplyService.getAmountCreditApplyReviewTaskList(pageReqVO);
return success(BeanUtils.toBean(pageResult, AmountCreditApplyRespVO.class));
}
@GetMapping("/getAmountCreditApplyDetail")
@Operation(summary = "授信单审核详情")
@Parameter(name = "id", description = "授信单主键id", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('sply:amount-credit-apply:query')")
public CommonResult<AmountCreditApplyRespVO> getAmountCreditApplyDetail(@RequestParam("id") Long id) {
AmountCreditApplyDO amountCreditApply = amountCreditApplyService.getAmountCreditApplyById(id);
AmountCreditApplyRespVO acarBean = BeanUtils.toBean(amountCreditApply, AmountCreditApplyRespVO.class);
List<AmountCreditApplyDetailDO> acadList = amountCreditApplyDetailService.getAmountCreditApplyDetailListByApplyId(amountCreditApply.getId());
List<AmountCreditApplySignDO> acasList = amountCreditApplySignService.getAmountCreditApplySignListByApplyId(amountCreditApply.getId());
acarBean.setAcadetailList(BeanUtils.toBean(acadList, AmountCreditApplyDetailRespVO.class));
acarBean.setAcasList(BeanUtils.toBean(acasList, AmountCreditApplySignRespVO.class));
return success(acarBean);
}
}

View File

@@ -0,0 +1,69 @@
package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.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 AmountCreditApplyDetailExcelVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31074")
@ExcelProperty("主键")
private Long id;
@Schema(description = "申请表主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1046")
@ExcelProperty("申请表主键")
private Long applyId;
@Schema(description = "客户/供应商类别(字典编码sply_amt_crdt_appl_dtl_ptnrTp)(CUSTOMER:客户;SUPPLIER:供应商)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("客户/供应商类别")
@DictFormat(CapitalDictTypeConstants.SPLY_AMT_CRDT_APPL_DTL_PTNRTP)
private String ptnrTp;
@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)
@ExcelProperty("原额度")
private BigDecimal originalAmount;
@Schema(description = "申请额度", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("申请额度")
private BigDecimal applyAmount;
@Schema(description = "实际占用额")
@ExcelProperty("实际占用额")
private BigDecimal actualAmount;
@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 = "创建人名称")
private String creatorName;
@Schema(description = "更新人名称")
private String updaterName;
}

View File

@@ -0,0 +1,47 @@
package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
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 = "管理后台 - 授信调整申请明细分页 Request VO")
@Data
public class AmountCreditApplyDetailPageReqVO extends PageParam {
@Schema(description = "申请表主键", example = "1046")
private String applyId;
@Schema(description = "客商名称", example = "王五")
private String partnerName;
@Schema(description = "客商编码")
private String partnerNumber;
@Schema(description = "原额度")
private BigDecimal originalAmount;
@Schema(description = "申请额度")
private BigDecimal applyAmount;
@Schema(description = "实际占用额")
private BigDecimal actualAmount;
@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 = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@@ -0,0 +1,66 @@
package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo;
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 AmountCreditApplyDetailRespVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31074")
@ExcelProperty("主键")
private Long id;
@Schema(description = "申请表主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1046")
@ExcelProperty("申请表主键")
private Long applyId;
@Schema(description = "客户/供应商类别(字典编码sply_amt_crdt_appl_dtl_ptnrTp)(CUSTOMER:客户;SUPPLIER:供应商)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("客户/供应商类别")
private String ptnrTp;
@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)
@ExcelProperty("原额度")
private BigDecimal originalAmount;
@Schema(description = "申请额度", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("申请额度")
private BigDecimal applyAmount;
@Schema(description = "实际占用额")
@ExcelProperty("实际占用额")
private BigDecimal actualAmount;
@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 = "创建人名称")
private String creatorName;
@Schema(description = "更新人名称")
private String updaterName;
}

View File

@@ -0,0 +1,54 @@
package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 授信调整申请明细新增/修改 Request VO")
@Data
public class AmountCreditApplyDetailSaveReqVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31074")
private Long id;
@Schema(description = "申请表主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1046")
@NotBlank(message = "申请表主键不能为空")
private Long applyId;
@Schema(description = "客户/供应商类别(字典编码sply_amt_crdt_appl_dtl_ptnrTp)(CUSTOMER:客户;SUPPLIER:供应商)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotBlank(message = "客户/供应商类别不能为空")
private String ptnrTp;
@Schema(description = "客商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
@NotBlank(message = "客商名称不能为空")
private String partnerName;
@Schema(description = "客商编码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "客商编码不能为空")
private String partnerNumber;
@Schema(description = "原额度", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "原额度不能为空")
private BigDecimal originalAmount;
@Schema(description = "申请额度", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "申请额度不能为空")
private BigDecimal applyAmount;
@Schema(description = "实际占用额")
private BigDecimal actualAmount;
@Schema(description = "开始日期", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "开始日期不能为空")
private LocalDateTime startDate;
@Schema(description = "结束日期", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "结束日期不能为空")
private LocalDateTime endDate;
}

View File

@@ -0,0 +1,100 @@
package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.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.time.LocalDateTime;
import java.util.List;
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 AmountCreditApplyExcelVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "7225")
@ExcelProperty("主键")
private Long id;
@Schema(description = "申请单号", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("申请单号")
private String applyNumber;
@Schema(description = "申请单位编码", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("申请单位编码")
private String applyUnitNumber;
@Schema(description = "申请单位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@ExcelProperty("申请单位名称")
private String applyUnitName;
@Schema(description = "申请日期", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("申请日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime applyDate;
@Schema(description = "额度类型(字典编码amount_credit_apply_type)INVESTMENT:投资类MINERAL_CATEGORY矿产类FINANCIAL_CATEGORY财务类HUMAN_RESOURCES_CATEGORY人力资源类SAFETY_AND_ENVIRONMENTAL_PROTECTION_CATEGORY安全环保类TECHNOLOGY科技类INFORMATIONIZATION_CATEGORY信息化类MARKETING营销类PRODUCTION_CATEGORY生产类OTHERS_TYPE其他类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("额度类型")
@DictFormat(CapitalDictTypeConstants.AMOUNT_CREDIT_APPLY_TYPE)
private String type;
@Schema(description = "企业性质(字典编码amount_credit_apply_company_type)(STATE_OWNED_ENTERPRISE:国企PRIVATE_ENTERPRISE私企GOVERNMENT_AGENCY政府机构OTHERS_TYPE其他类)", example = "2")
@ExcelProperty("企业性质")
@DictFormat(CapitalDictTypeConstants.AMOUNT_CREDIT_APPLY_COMPANY_TYPE)
private String companyType;
@Schema(description = "申请事由", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("申请事由")
private String applyCause;
@Schema(description = "额度使用情况及财务账务处理计划")
@ExcelProperty("额度使用情况及财务账务处理计划")
private String plan;
@Schema(description = "不纳入授信管理依据")
@ExcelProperty("不纳入授信管理依据")
private String excludingCreditDescription;
@Schema(description = "附件路径")
@ExcelProperty("附件路径")
private String attachmentPath;
@Schema(description = "状态(字典编码sply_amt_crdt_appl_sts)(ACAS_DRAFT:草稿,可删除;ACAS_DELETED:已删除;ACAS_UNDER_REVIEW:申请中,不允许任何操作;ACAS_REJECT:驳回,可以编辑,重新提交;ACAS_PASS:通过,不允许删除;ACAS_OFFSET:冲销;)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("状态")
@DictFormat(CapitalDictTypeConstants.SPLY_AMT_CRDT_APPL_STS)
private String status;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime;
@Schema(description = "经办人", requiredMode = Schema.RequiredMode.REQUIRED, example = "钱仕江")
@ExcelProperty("经办人")
private String hdlr;
@Schema(description = "手机号码", requiredMode = Schema.RequiredMode.REQUIRED, example = "18669001156")
@ExcelProperty("手机号")
private String hdlrPhn;
@Schema(description = "授信申请明细信息")
List<AmountCreditApplyDetailRespVO> acadetailList;
@Schema(description = "授信调整签字区域明细信息")
List<AmountCreditApplySignRespVO> acasList;
@Schema(description = "创建人名称")
private String creatorName;
@Schema(description = "更新人名称")
private String updaterName;
@Schema(description = "流程实例编号")
private String processInstanceId;
}

View File

@@ -0,0 +1,61 @@
package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
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 AmountCreditApplyPageReqVO extends PageParam {
@Schema(description = "申请单号")
private String applyNumber;
@Schema(description = "申请单位编码")
private String applyUnitNumber;
@Schema(description = "申请单位名称", example = "芋艿")
private String applyUnitName;
@Schema(description = "申请日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] applyDate;
@Schema(description = "额度类型(字典编码amount_credit_apply_type)INVESTMENT:投资类MINERAL_CATEGORY矿产类FINANCIAL_CATEGORY财务类HUMAN_RESOURCES_CATEGORY人力资源类SAFETY_AND_ENVIRONMENTAL_PROTECTION_CATEGORY安全环保类TECHNOLOGY科技类INFORMATIONIZATION_CATEGORY信息化类MARKETING营销类PRODUCTION_CATEGORY生产类OTHERS_TYPE其他类", example = "1")
private String type;
@Schema(description = "企业性质(字典编码amount_credit_apply_company_type)(STATE_OWNED_ENTERPRISE:国企PRIVATE_ENTERPRISE私企GOVERNMENT_AGENCY政府机构OTHERS_TYPE其他类)", example = "2")
private String companyType;
@Schema(description = "申请事由")
private String applyCause;
@Schema(description = "额度使用情况及财务账务处理计划")
private String plan;
@Schema(description = "不纳入授信管理依据")
private String excludingCreditDescription;
@Schema(description = "附件路径")
private String attachmentPath;
@Schema(description = "状态(字典编码sply_amt_crdt_appl_sts)(ACAS_DRAFT:草稿,可删除;ACAS_DELETED:已删除;ACAS_UNDER_REVIEW:申请中,不允许任何操作;ACAS_REJECT:驳回,可以编辑,重新提交;ACAS_PASS:通过,不允许删除;ACAS_OFFSET:冲销;)", example = "1")
private String status;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "创建人名称")
private String creatorName;
@Schema(description = "更新人名称")
private String updaterName;
}

View File

@@ -0,0 +1,95 @@
package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo;
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.time.LocalDateTime;
import java.util.List;
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 AmountCreditApplyRespVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "7225")
@ExcelProperty("主键")
private Long id;
@Schema(description = "申请单号", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("申请单号")
private String applyNumber;
@Schema(description = "申请单位编码", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("申请单位编码")
private String applyUnitNumber;
@Schema(description = "申请单位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@ExcelProperty("申请单位名称")
private String applyUnitName;
@Schema(description = "申请日期", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("申请日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime applyDate;
@Schema(description = "额度类型(字典编码amount_credit_apply_type)INVESTMENT:投资类MINERAL_CATEGORY矿产类FINANCIAL_CATEGORY财务类HUMAN_RESOURCES_CATEGORY人力资源类SAFETY_AND_ENVIRONMENTAL_PROTECTION_CATEGORY安全环保类TECHNOLOGY科技类INFORMATIONIZATION_CATEGORY信息化类MARKETING营销类PRODUCTION_CATEGORY生产类OTHERS_TYPE其他类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("额度类型")
private String type;
@Schema(description = "企业性质(字典编码amount_credit_apply_company_type)(STATE_OWNED_ENTERPRISE:国企PRIVATE_ENTERPRISE私企GOVERNMENT_AGENCY政府机构OTHERS_TYPE其他类)", example = "2")
@ExcelProperty("企业性质")
private String companyType;
@Schema(description = "申请事由", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("申请事由")
private String applyCause;
@Schema(description = "额度使用情况及财务账务处理计划")
@ExcelProperty("额度使用情况及财务账务处理计划")
private String plan;
@Schema(description = "不纳入授信管理依据")
@ExcelProperty("不纳入授信管理依据")
private String excludingCreditDescription;
@Schema(description = "附件路径")
@ExcelProperty("附件路径")
private String attachmentPath;
@Schema(description = "状态(字典编码sply_amt_crdt_appl_sts)(ACAS_DRAFT:草稿,可删除;ACAS_DELETED:已删除;ACAS_UNDER_REVIEW:申请中,不允许任何操作;ACAS_REJECT:驳回,可以编辑,重新提交;ACAS_PASS:通过,不允许删除;ACAS_OFFSET:冲销;)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("状态")
private String status;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime;
@Schema(description = "经办人", requiredMode = Schema.RequiredMode.REQUIRED, example = "钱仕江")
@ExcelProperty("经办人")
private String hdlr;
@Schema(description = "手机号码", requiredMode = Schema.RequiredMode.REQUIRED, example = "18669001156")
@ExcelProperty("手机号")
private String hdlrPhn;
@Schema(description = "授信申请明细信息")
List<AmountCreditApplyDetailRespVO> acadetailList;
@Schema(description = "授信调整签字区域明细信息")
List<AmountCreditApplySignRespVO> acasList;
@Schema(description = "创建人名称")
private String creatorName;
@Schema(description = "更新人名称")
private String updaterName;
@Schema(description = "流程实例编号")
private String processInstanceId;
}

View File

@@ -0,0 +1,66 @@
package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 授信单审核分页 Request VO")
@Data
public class AmountCreditApplyReviewPageReqVO extends PageParam {
@Schema(description = "申请单号")
private String applyNumber;
@Schema(description = "申请单位编码")
private String applyUnitNumber;
@Schema(description = "申请单位名称", example = "芋艿")
private String applyUnitName;
@Schema(description = "申请日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] applyDate;
@Schema(description = "额度类型(字典编码amount_credit_apply_type)INVESTMENT:投资类MINERAL_CATEGORY矿产类FINANCIAL_CATEGORY财务类HUMAN_RESOURCES_CATEGORY人力资源类SAFETY_AND_ENVIRONMENTAL_PROTECTION_CATEGORY安全环保类TECHNOLOGY科技类INFORMATIONIZATION_CATEGORY信息化类MARKETING营销类PRODUCTION_CATEGORY生产类OTHERS_TYPE其他类", example = "1")
private String type;
@Schema(description = "企业性质(字典编码amount_credit_apply_company_type)(STATE_OWNED_ENTERPRISE:国企PRIVATE_ENTERPRISE私企GOVERNMENT_AGENCY政府机构OTHERS_TYPE其他类)", example = "2")
private String companyType;
@Schema(description = "申请事由")
private String applyCause;
@Schema(description = "额度使用情况及财务账务处理计划")
private String plan;
@Schema(description = "不纳入授信管理依据")
private String excludingCreditDescription;
@Schema(description = "附件路径")
private String attachmentPath;
@Schema(description = "状态(字典编码sply_amt_crdt_appl_sts)(ACAS_DRAFT:草稿,可删除;ACAS_DELETED:已删除;ACAS_UNDER_REVIEW:申请中,不允许任何操作;ACAS_REJECT:驳回,可以编辑,重新提交;ACAS_PASS:通过,不允许删除;ACAS_OFFSET:冲销;)", example = "1")
@NotNull(message = "状态不能为空")
@NotEmpty(message = "状态不能为空")
private List<String> status;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "创建人名称")
private String creatorName;
@Schema(description = "更新人名称")
private String updaterName;
}

View File

@@ -0,0 +1,85 @@
package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 授信调整申请主新增/修改 Request VO")
@Data
public class AmountCreditApplySaveReqVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "7225")
private Long id;
@Schema(description = "申请单号", requiredMode = Schema.RequiredMode.REQUIRED)
//@NotBlank(message = "申请单号不能为空")
private String applyNumber;
@Schema(description = "申请单位编码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "申请单位编码不能为空")
private String applyUnitNumber;
@Schema(description = "申请单位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@NotBlank(message = "申请单位名称不能为空")
private String applyUnitName;
@Schema(description = "申请日期", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "申请日期不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime applyDate;
@Schema(description = "额度类型(字典编码amount_credit_apply_type)INVESTMENT:投资类MINERAL_CATEGORY矿产类FINANCIAL_CATEGORY财务类HUMAN_RESOURCES_CATEGORY人力资源类SAFETY_AND_ENVIRONMENTAL_PROTECTION_CATEGORY安全环保类TECHNOLOGY科技类INFORMATIONIZATION_CATEGORY信息化类MARKETING营销类PRODUCTION_CATEGORY生产类OTHERS_TYPE其他类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotBlank(message = "额度类型不能为空")
private String type;
@Schema(description = "企业性质(字典编码amount_credit_apply_company_type)(STATE_OWNED_ENTERPRISE:国企PRIVATE_ENTERPRISE私企GOVERNMENT_AGENCY政府机构OTHERS_TYPE其他类)", example = "2")
@NotBlank(message = "企业性质不能为空")
private String companyType;
@Schema(description = "申请事由", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "申请事由不能为空")
private String applyCause;
@Schema(description = "额度使用情况及财务账务处理计划")
@NotBlank(message = "额度使用情况及财务账务处理计划不能为空")
private String plan;
@Schema(description = "不纳入授信管理依据")
@NotBlank(message = "不纳入授信管理依据不能为空")
private String excludingCreditDescription;
@Schema(description = "附件路径")
private String attachmentPath;
@Schema(description = "状态(字典编码sply_amt_crdt_appl_sts)(ACAS_DRAFT:草稿,可删除;ACAS_DELETED:已删除;ACAS_UNDER_REVIEW:申请中,不允许任何操作;ACAS_REJECT:驳回,可以编辑,重新提交;ACAS_PASS:通过,不允许删除;ACAS_OFFSET:冲销;)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
//@NotBlank(message = "状态不能为空")
private String status;
@Schema(description = "经办人", requiredMode = Schema.RequiredMode.REQUIRED, example = "钱仕江")
@NotBlank(message = "经办人不能为空")
private String hdlr;
@Schema(description = "手机号码", requiredMode = Schema.RequiredMode.REQUIRED, example = "18669001156")
@NotBlank(message = "手机号码不能为空")
private String hdlrPhn;
@Schema(description = "授信申请明细信息")
List<AmountCreditApplyDetailSaveReqVO> acadetailList;
@Schema(description = "授信调整签字区域明细信息")
List<AmountCreditApplySignSaveReqVO> acasList;
@Schema(description = "创建人名称")
private String creatorName;
@Schema(description = "更新人名称")
private String updaterName;
}

View File

@@ -0,0 +1,63 @@
package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.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.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 AmountCreditApplySignExcelVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "24362")
@ExcelProperty("主键")
private Long id;
@Schema(description = "申请表主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31358")
@ExcelProperty("申请表主键")
private Long applyId;
@Schema(description = "审批人", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("审批人")
private String reviewSigner;
@Schema(description = "申请部门", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("申请部门")
private String applyDepartment;
@Schema(description = "审批时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("审批时间")
private LocalDateTime reviewDate;
@Schema(description = "审批意见")
@ExcelProperty("审批意见")
private String approvalComment;
@Schema(description = "审批步骤")
@ExcelProperty("审批步骤")
private String approvalStep;
@Schema(description = "状态(字典编码sply_amt_crdt_appl_sgn_status)(SIGNED:已签字;UNSIGNED:未签字;)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("状态")
@DictFormat(CapitalDictTypeConstants.SPLY_AMT_CRDT_APPL_SGN_STATUS)
private String status;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime;
@Schema(description = "创建人名称")
private String creatorName;
@Schema(description = "更新人名称")
private String updaterName;
}

View File

@@ -0,0 +1,42 @@
package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
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 AmountCreditApplySignPageReqVO extends PageParam {
@Schema(description = "申请表主键", example = "31358")
private String applyId;
@Schema(description = "审批人")
private String reviewSigner;
@Schema(description = "申请部门")
private String applyDepartment;
@Schema(description = "审批时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reviewDate;
@Schema(description = "审批意见")
private String approvalComment;
@Schema(description = "审批步骤")
private String approvalStep;
@Schema(description = "状态", example = "2")
private String status;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@@ -0,0 +1,55 @@
package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo;
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.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 AmountCreditApplySignRespVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "24362")
@ExcelProperty("主键")
private Long id;
@Schema(description = "申请表主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31358")
@ExcelProperty("申请表主键")
private Long applyId;
@Schema(description = "审批人", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("审批人")
private String reviewSigner;
@Schema(description = "申请部门", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("申请部门")
private String applyDepartment;
@Schema(description = "审批时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("审批时间")
private LocalDateTime reviewDate;
@Schema(description = "审批意见")
@ExcelProperty("审批意见")
private String approvalComment;
@Schema(description = "审批步骤")
@ExcelProperty("审批步骤")
private String approvalStep;
@Schema(description = "状态(字典编码sply_amt_crdt_appl_sgn_status)(SIGNED:已签字;UNSIGNED:未签字;)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("状态")
private String status;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,47 @@
package cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
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 AmountCreditApplySignSaveReqVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "24362")
private Long id;
@Schema(description = "申请表主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31358")
@NotEmpty(message = "申请表主键不能为空")
private Long applyId;
@Schema(description = "审批人", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "审批人不能为空")
private String reviewSigner;
@Schema(description = "申请部门", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "申请部门不能为空")
private String applyDepartment;
@Schema(description = "审批时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "审批时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime reviewDate;
@Schema(description = "审批意见")
private String approvalComment;
@Schema(description = "审批步骤")
private String approvalStep;
@Schema(description = "状态(字典编码sply_amt_crdt_appl_sgn_status)(SIGNED:已签字;UNSIGNED:未签字;)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
//@NotEmpty(message = "状态不能为空")
private String status;
}

View File

@@ -0,0 +1,18 @@
package cn.iocoder.yudao.module.capital.convert.splyAmtCrdtAppl;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplySaveReqVO;
import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl.AmountCreditApplyDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
/**
* 授信单对象转换器
*/
@Mapper
public interface AmountCreditApplySaveReqVOConvert {
AmountCreditApplySaveReqVOConvert INSTANCE = Mappers.getMapper(AmountCreditApplySaveReqVOConvert.class);
AmountCreditApplyDO convert(AmountCreditApplySaveReqVO bean);
}

View File

@@ -0,0 +1,36 @@
package cn.iocoder.yudao.module.capital.dal.dao.splyAmountCredit;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo.AmountCreditChangePageReqVO;
import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmountCredit.AmountCreditChangeDO;
import cn.iocoder.yudao.module.capital.enums.splyAmtCrdtAppl.WhetherDeletedEnum;
import org.apache.ibatis.annotations.Mapper;
/**
* 授信额度变动记录 Mapper
*
* @author 后台管理
*/
@Mapper
public interface AmountCreditChangeMapper extends BaseMapperX<AmountCreditChangeDO> {
default PageResult<AmountCreditChangeDO> selectPage(AmountCreditChangePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<AmountCreditChangeDO>()
.eq(AmountCreditChangeDO::getDeleted, WhetherDeletedEnum.NO.getCode())
.eqIfPresent(AmountCreditChangeDO::getReferenceNumber, reqVO.getReferenceNumber())
.eqIfPresent(AmountCreditChangeDO::getCreditId, reqVO.getCreditId())
.eqIfPresent(AmountCreditChangeDO::getChangeNumber, reqVO.getChangeNumber())
.likeIfPresent(AmountCreditChangeDO::getPartnerName, reqVO.getPartnerName())
.eqIfPresent(AmountCreditChangeDO::getPartnerNumber, reqVO.getPartnerNumber())
.eqIfPresent(AmountCreditChangeDO::getChangeType, reqVO.getChangeType())
.eqIfPresent(AmountCreditChangeDO::getAmount, reqVO.getAmount())
.eqIfPresent(AmountCreditChangeDO::getCause, reqVO.getCause())
.eqIfPresent(AmountCreditChangeDO::getReferenceType, reqVO.getReferenceType())
.betweenIfPresent(AmountCreditChangeDO::getVoucherDate, reqVO.getVoucherDate())
.betweenIfPresent(AmountCreditChangeDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(AmountCreditChangeDO::getId));
}
}

View File

@@ -0,0 +1,33 @@
package cn.iocoder.yudao.module.capital.dal.dao.splyAmountCredit;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmountCredit.vo.AmountCreditPageReqVO;
import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmountCredit.AmountCreditDO;
import cn.iocoder.yudao.module.capital.enums.splyAmtCrdtAppl.WhetherDeletedEnum;
import org.apache.ibatis.annotations.Mapper;
/**
* 授信额度 Mapper
*
* @author 后台管理
*/
@Mapper
public interface AmountCreditMapper extends BaseMapperX<AmountCreditDO> {
default PageResult<AmountCreditDO> selectPage(AmountCreditPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<AmountCreditDO>()
.eq(AmountCreditDO::getDeleted, WhetherDeletedEnum.NO.getCode())
.likeIfPresent(AmountCreditDO::getPartnerName, reqVO.getPartnerName())
.eqIfPresent(AmountCreditDO::getPartnerNumber, reqVO.getPartnerNumber())
.eqIfPresent(AmountCreditDO::getCreditType, reqVO.getCreditType())
.betweenIfPresent(AmountCreditDO::getStartDate, reqVO.getStartDate())
.betweenIfPresent(AmountCreditDO::getEndDate, reqVO.getEndDate())
.eqIfPresent(AmountCreditDO::getAmountLimit, reqVO.getAmountLimit())
.eqIfPresent(AmountCreditDO::getUseAmount, reqVO.getUseAmount())
.eqIfPresent(AmountCreditDO::getRemaineAmount, reqVO.getRemaineAmount())
.betweenIfPresent(AmountCreditDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(AmountCreditDO::getId));
}
}

View File

@@ -0,0 +1,42 @@
package cn.iocoder.yudao.module.capital.dal.dao.splyAmtCrdtAppl;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplyDetailPageReqVO;
import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl.AmountCreditApplyDetailDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 授信调整申请明细 Mapper
*
* @author 后台管理
*/
@Mapper
public interface AmountCreditApplyDetailMapper extends BaseMapperX<AmountCreditApplyDetailDO> {
default PageResult<AmountCreditApplyDetailDO> selectPage(AmountCreditApplyDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<AmountCreditApplyDetailDO>()
.eqIfPresent(AmountCreditApplyDetailDO::getApplyId, reqVO.getApplyId())
.likeIfPresent(AmountCreditApplyDetailDO::getPartnerName, reqVO.getPartnerName())
.eqIfPresent(AmountCreditApplyDetailDO::getPartnerNumber, reqVO.getPartnerNumber())
.eqIfPresent(AmountCreditApplyDetailDO::getOriginalAmount, reqVO.getOriginalAmount())
.eqIfPresent(AmountCreditApplyDetailDO::getApplyAmount, reqVO.getApplyAmount())
.eqIfPresent(AmountCreditApplyDetailDO::getActualAmount, reqVO.getActualAmount())
.betweenIfPresent(AmountCreditApplyDetailDO::getStartDate, reqVO.getStartDate())
.betweenIfPresent(AmountCreditApplyDetailDO::getEndDate, reqVO.getEndDate())
.betweenIfPresent(AmountCreditApplyDetailDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(AmountCreditApplyDetailDO::getId));
}
/**
* 通过主表id查询授信调整申请明细信息
* @param applyId 主表id
* @return
*/
List<AmountCreditApplyDetailDO> getAmountCreditApplyDetailListByApplyId(@Param("applyId") Long applyId);
}

View File

@@ -0,0 +1,57 @@
package cn.iocoder.yudao.module.capital.dal.dao.splyAmtCrdtAppl;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplyPageReqVO;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplyReviewPageReqVO;
import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl.AmountCreditApplyDO;
import cn.iocoder.yudao.module.capital.enums.splyAmtCrdtAppl.WhetherDeletedEnum;
import org.apache.ibatis.annotations.Mapper;
/**
* 授信调整申请主 Mapper
*
* @author 后台管理
*/
@Mapper
public interface AmountCreditApplyMapper extends BaseMapperX<AmountCreditApplyDO> {
default PageResult<AmountCreditApplyDO> selectPage(AmountCreditApplyPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<AmountCreditApplyDO>()
.eq(AmountCreditApplyDO::getDeleted, WhetherDeletedEnum.NO.getCode())
.eqIfPresent(AmountCreditApplyDO::getApplyNumber, reqVO.getApplyNumber())
.eqIfPresent(AmountCreditApplyDO::getApplyUnitNumber, reqVO.getApplyUnitNumber())
.likeIfPresent(AmountCreditApplyDO::getApplyUnitName, reqVO.getApplyUnitName())
.betweenIfPresent(AmountCreditApplyDO::getApplyDate, reqVO.getApplyDate())
.eqIfPresent(AmountCreditApplyDO::getType, reqVO.getType())
.eqIfPresent(AmountCreditApplyDO::getCompanyType, reqVO.getCompanyType())
.eqIfPresent(AmountCreditApplyDO::getApplyCause, reqVO.getApplyCause())
.eqIfPresent(AmountCreditApplyDO::getPlan, reqVO.getPlan())
.eqIfPresent(AmountCreditApplyDO::getExcludingCreditDescription, reqVO.getExcludingCreditDescription())
.eqIfPresent(AmountCreditApplyDO::getAttachmentPath, reqVO.getAttachmentPath())
.eqIfPresent(AmountCreditApplyDO::getStatus, reqVO.getStatus())
.betweenIfPresent(AmountCreditApplyDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(AmountCreditApplyDO::getId));
}
default PageResult<AmountCreditApplyDO> selectAmountCreditApplyReviewPage(AmountCreditApplyReviewPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<AmountCreditApplyDO>()
.eq(AmountCreditApplyDO::getDeleted, WhetherDeletedEnum.NO.getCode())
.eqIfPresent(AmountCreditApplyDO::getApplyNumber, reqVO.getApplyNumber())
.eqIfPresent(AmountCreditApplyDO::getApplyUnitNumber, reqVO.getApplyUnitNumber())
.likeIfPresent(AmountCreditApplyDO::getApplyUnitName, reqVO.getApplyUnitName())
.betweenIfPresent(AmountCreditApplyDO::getApplyDate, reqVO.getApplyDate())
.eqIfPresent(AmountCreditApplyDO::getType, reqVO.getType())
.eqIfPresent(AmountCreditApplyDO::getCompanyType, reqVO.getCompanyType())
.eqIfPresent(AmountCreditApplyDO::getApplyCause, reqVO.getApplyCause())
.eqIfPresent(AmountCreditApplyDO::getPlan, reqVO.getPlan())
.eqIfPresent(AmountCreditApplyDO::getExcludingCreditDescription, reqVO.getExcludingCreditDescription())
.eqIfPresent(AmountCreditApplyDO::getAttachmentPath, reqVO.getAttachmentPath())
.inIfPresent(AmountCreditApplyDO::getStatus, reqVO.getStatus())
.betweenIfPresent(AmountCreditApplyDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(AmountCreditApplyDO::getId));
}
}

View File

@@ -0,0 +1,40 @@
package cn.iocoder.yudao.module.capital.dal.dao.splyAmtCrdtAppl;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplySignPageReqVO;
import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl.AmountCreditApplySignDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 授信调整签字区域明细 Mapper
*
* @author 后台管理
*/
@Mapper
public interface AmountCreditApplySignMapper extends BaseMapperX<AmountCreditApplySignDO> {
default PageResult<AmountCreditApplySignDO> selectPage(AmountCreditApplySignPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<AmountCreditApplySignDO>()
.eqIfPresent(AmountCreditApplySignDO::getApplyId, reqVO.getApplyId())
.eqIfPresent(AmountCreditApplySignDO::getReviewSigner, reqVO.getReviewSigner())
.eqIfPresent(AmountCreditApplySignDO::getApplyDepartment, reqVO.getApplyDepartment())
.betweenIfPresent(AmountCreditApplySignDO::getReviewDate, reqVO.getReviewDate())
.eqIfPresent(AmountCreditApplySignDO::getApprovalComment, reqVO.getApprovalComment())
.eqIfPresent(AmountCreditApplySignDO::getApprovalStep, reqVO.getApprovalStep())
.eqIfPresent(AmountCreditApplySignDO::getStatus, reqVO.getStatus())
.betweenIfPresent(AmountCreditApplySignDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(AmountCreditApplySignDO::getId));
}
/**
* 通过主表id查询授信调整签字区域明细信息
* @param applyId 主表id
* @return
*/
List<AmountCreditApplySignDO> getAmountCreditApplySignListByApplyId(@Param("applyId") Long applyId);
}

View File

@@ -0,0 +1,92 @@
package cn.iocoder.yudao.module.capital.dal.dataobject.splyAmountCredit;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BusinessBaseDO;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* 授信额度变动记录 DO
*
* @author 后台管理
*/
@TableName("sply_amt_crdt_chg")
@KeySequence("sply_amt_crdt_chg_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
* 支持业务基类继承isBusiness=true 时继承 BusinessBaseDO否则继承 BaseDO
*/
public class AmountCreditChangeDO extends BusinessBaseDO {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* 关联单据号;收款单/付款单/结算单
*/
@TableField("REF_NUM")
private String referenceNumber;
/**
* 授信表主键
*/
@TableField("CRDT_ID")
private Long creditId;
/**
* 变动单号
*/
@TableField("CHG_NUM")
private String changeNumber;
/**
* 客商名称
*/
@TableField("PTNR_NAME")
private String partnerName;
/**
* 客商编码
*/
@TableField("PTNR_NUM")
private String partnerNumber;
/**
* 变动类型
*/
@TableField("CHG_TP")
private String changeType;
/**
* 变动金额
*/
@TableField("AMT")
private BigDecimal amount;
/**
* 变动原因
*/
@TableField("CAUS")
private String cause;
/**
* 关联交易类型
*/
@TableField("REF_TP")
private String referenceType;
/**
* 凭证日期
*/
@TableField("VCHR_DT")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime voucherDate;
}

View File

@@ -0,0 +1,86 @@
package cn.iocoder.yudao.module.capital.dal.dataobject.splyAmountCredit;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BusinessBaseDO;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* 授信额度 DO
*
* @author 后台管理
*/
@TableName("sply_amt_crdt")
@KeySequence("sply_amt_crdt_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
* 支持业务基类继承isBusiness=true 时继承 BusinessBaseDO否则继承 BaseDO
*/
public class AmountCreditDO extends BusinessBaseDO {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* 客商名称
*/
@TableField("PTNR_NAME")
private String partnerName;
/**
* 客商编码
*/
@TableField("PTNR_NUM")
private String partnerNumber;
/**
* 授信类型
*/
@TableField("CRDT_TP")
private String creditType;
/**
* 开始日期
*/
@TableField("STRT_DT")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime startDate;
/**
* 结束日期
*/
@TableField("END_DT")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime endDate;
/**
* 授信额度上限
*/
@TableField("AMT_LIM")
private BigDecimal amountLimit;
/**
* 授信使用额度
*/
@TableField("USE_AMT")
private BigDecimal useAmount;
/**
* 授信剩余余额
*/
@TableField("RMNE_AMT")
private BigDecimal remaineAmount;
}

View File

@@ -0,0 +1,106 @@
package cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BusinessBaseDO;
import com.baomidou.mybatisplus.annotation.*;
import lombok.*;
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;
/**
* 授信调整申请主 DO
*
* @author 后台管理
*/
@TableName("sply_amt_crdt_appl")
@KeySequence("sply_amt_crdt_appl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
* 支持业务基类继承isBusiness=true 时继承 BusinessBaseDO否则继承 BaseDO
*/
public class AmountCreditApplyDO extends BusinessBaseDO {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* 申请单号
*/
@TableField("APPL_NUM")
private String applyNumber;
/**
* 申请单位编码
*/
@TableField("APPL_UNT_NUM")
private String applyUnitNumber;
/**
* 申请单位名称
*/
@TableField("APPL_UNT_NAME")
private String applyUnitName;
/**
* 申请日期
*/
@TableField("APPL_DT")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime applyDate;
/**
* 类型
*/
@TableField("TP")
private String type;
/**
* 企业性质
*/
@TableField("CPN_TP")
private String companyType;
/**
* 申请事由
*/
@TableField("APPL_CAUS")
private String applyCause;
/**
* 额度使用情况及财务账务处理计划
*/
@TableField("PLN")
private String plan;
/**
* 不纳入授信管理依据
*/
@TableField("EXCL_CRDT_DSP")
private String excludingCreditDescription;
/**
* 附件路径
*/
@TableField("ATM_PATH")
private String attachmentPath;
/**
* 状态
*/
@TableField("STS")
private String status;
/**
* 经办人
*/
@TableField("HDLR")
private String hdlr;
/**
* 手机号码
*/
@TableField("HDLR_PHN")
private String hdlrPhn;
}

View File

@@ -0,0 +1,88 @@
package cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BusinessBaseDO;
import com.baomidou.mybatisplus.annotation.*;
import lombok.*;
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;
/**
* 授信调整申请明细 DO
*
* @author 后台管理
*/
@TableName("sply_amt_crdt_appl_dtl")
@KeySequence("sply_amt_crdt_appl_dtl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
* 支持业务基类继承isBusiness=true 时继承 BusinessBaseDO否则继承 BaseDO
*/
public class AmountCreditApplyDetailDO extends BusinessBaseDO {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* 申请表主键
*/
@TableField("APPL_ID")
private Long applyId;
/**
* 客户/供应商类别(CUSTOMER:客户;SUPPLIER:供应商)
*/
@TableField("PTNR_TP")
private String ptnrTp;
/**
* 客商名称
*/
@TableField("PTNR_NAME")
private String partnerName;
/**
* 客商编码
*/
@TableField("PTNR_NUM")
private String partnerNumber;
/**
* 原额度
*/
@TableField("ORIG_AMT")
private BigDecimal originalAmount;
/**
* 申请额度
*/
@TableField("APPL_AMT")
private BigDecimal applyAmount;
/**
* 实际占用额
*/
@TableField("ACT_AMT")
private BigDecimal actualAmount;
/**
* 开始日期
*/
@TableField("STRT_DT")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime startDate;
/**
* 结束日期
*/
@TableField("END_DT")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime endDate;
}

View File

@@ -0,0 +1,74 @@
package cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BusinessBaseDO;
import com.baomidou.mybatisplus.annotation.*;
import lombok.*;
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;
/**
* 授信调整签字区域明细 DO
*
* @author 后台管理
*/
@TableName("sply_amt_crdt_appl_sgn")
@KeySequence("sply_amt_crdt_appl_sgn_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
* 支持业务基类继承isBusiness=true 时继承 BusinessBaseDO否则继承 BaseDO
*/
public class AmountCreditApplySignDO extends BusinessBaseDO {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* 申请表主键
*/
@TableField("APPL_ID")
private Long applyId;
/**
* 审批人
*/
@TableField("RVW_SGNR")
private String reviewSigner;
/**
* 申请部门
*/
@TableField("APPL_DEPT")
private String applyDepartment;
/**
* 审批时间
*/
@TableField("RVW_DT")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime reviewDate;
/**
* 审批意见
*/
@TableField("APRV_CMT")
private String approvalComment;
/**
* 审批步骤
*/
@TableField("APRV_STP")
private String approvalStep;
/**
* 状态
*/
@TableField("STS")
private String status;
}

View File

@@ -0,0 +1,11 @@
package cn.iocoder.yudao.module.capital.dal.redis;
/**
* System Redis Key 枚举类
*
* @author ZT
*/
public interface RedisKeyConstants {
}

View File

@@ -0,0 +1,34 @@
package cn.iocoder.yudao.module.capital.enums.splyAmountCredit;
/**
* 授信额度变动记录-变动类型枚举
* TODO
*/
public enum AmountCreditChangeChangeTypeEnum {
YES("0","0"),
NO("1","1")
;
/**
* 编码
*/
private String code;
/**
* 名称
*/
private String name;
AmountCreditChangeChangeTypeEnum(String code, String name){
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
}

View File

@@ -0,0 +1,34 @@
package cn.iocoder.yudao.module.capital.enums.splyAmountCredit;
/**
* 授信额度变动记录-关联交易类型
* TODO
*/
public enum AmountCreditChangeReferenceTypeEnum {
YES("0","0"),
NO("1","1")
;
/**
* 编码
*/
private String code;
/**
* 名称
*/
private String name;
AmountCreditChangeReferenceTypeEnum(String code, String name){
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
}

View File

@@ -0,0 +1,36 @@
package cn.iocoder.yudao.module.capital.enums.splyAmountCredit;
/**
* 授信额度表-授信类型枚举
* TODO
*/
public enum AmountCreditCreditTypeEnum {
YES("0","0"),
NO("1","1")
;
/**
* 编码
*/
private String code;
/**
* 名称
*/
private String name;
AmountCreditCreditTypeEnum(String code, String name){
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
}

View File

@@ -0,0 +1,59 @@
package cn.iocoder.yudao.module.capital.enums.splyAmtCrdtAppl;
import org.apache.commons.lang3.StringUtils;
/**
* 授信申请管理客户企业性质枚举STATE_OWNED_ENTERPRISE:国企PRIVATE_ENTERPRISE私企GOVERNMENT_AGENCY政府机构OTHERS_TYPE其他类
*
*/
public enum AmountCreditApplyCompanyTypeEnum {
OTHERS_TYPE("OTHERS_TYPE","其他类"),
STATE_OWNED_ENTERPRISE("STATE_OWNED_ENTERPRISE","国企"),
PRIVATE_ENTERPRISE("PRIVATE_ENTERPRISE","私企"),
GOVERNMENT_AGENCY("GOVERNMENT_AGENCY","政府机构"),
;
/**
* 编码
*/
private String code;
/**
* 名称
*/
private String name;
AmountCreditApplyCompanyTypeEnum(String code, String name){
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
public static AmountCreditApplyCompanyTypeEnum getEnumByCode(String code){
for (AmountCreditApplyCompanyTypeEnum e : AmountCreditApplyCompanyTypeEnum.values()) {
if (e.getCode().equals(code)) {
return e;
}
}
return OTHERS_TYPE;
}
public static AmountCreditApplyCompanyTypeEnum getEnumByName(String name){
if (StringUtils.isEmpty(name)) return OTHERS_TYPE;
for (AmountCreditApplyCompanyTypeEnum e : AmountCreditApplyCompanyTypeEnum.values()) {
if (name.equals(e.getName())) {
return e;
}
}
return OTHERS_TYPE;
}
}

View File

@@ -0,0 +1,33 @@
package cn.iocoder.yudao.module.capital.enums.splyAmtCrdtAppl;
/**
* 客户/供应商类别枚举(CUSTOMER:客户;SUPPLIER:供应商)
*/
public enum AmountCreditApplyDetailPtnrTpEnum {
CUSTOMER("CUSTOMER","客户"),
SUPPLIER("SUPPLIER","供应商")
;
/**
* 编码
*/
private String code;
/**
* 名称
*/
private String name;
public String getCode() {
return code;
}
public String getName() {
return name;
}
AmountCreditApplyDetailPtnrTpEnum(String code, String name){
this.code = code;
this.name = name;
}
}

View File

@@ -0,0 +1,33 @@
package cn.iocoder.yudao.module.capital.enums.splyAmtCrdtAppl;
/**
* 授信调整签字区域明细表-状态枚举- SIGNED:已签字;UNSIGNED:未签字;
*/
public enum AmountCreditApplySignStatusEnum {
SIGNED("SIGNED","已签字"),
UNSIGNED("UNSIGNED","未签字"),
;
/**
* 编码
*/
private String code;
/**
* 名称
*/
private String name;
public String getCode() {
return code;
}
public String getName() {
return name;
}
AmountCreditApplySignStatusEnum(String code, String name){
this.code = code;
this.name = name;
}
}

View File

@@ -0,0 +1,61 @@
package cn.iocoder.yudao.module.capital.enums.splyAmtCrdtAppl;
import org.apache.commons.lang3.StringUtils;
/**
* 授信申请管理状态枚举(ACAS_DRAFT:草稿,可删除;ACAS_DELETED:已删除;ACAS_UNDER_REVIEW:申请中,不允许任何操作;ACAS_REJECT:驳回,可以编辑,重新提交;ACAS_PASS:通过,不允许删除;ACAS_OFFSET:冲销;)
*
*/
public enum AmountCreditApplyStatusEnum {
ACAS_DRAFT("ACAS_DRAFT","草稿"),
ACAS_DELETED("ACAS_DELETED","已删除"),
ACAS_UNDER_REVIEW("ACAS_UNDER_REVIEW","申请中"),
ACAS_REJECT("ACAS_REJECT","驳回"),
ACAS_PASS("ACAS_PASS","通过"),
ACAS_OFFSET("ACAS_OFFSET","冲销"),
;
/**
* 编码
*/
private String code;
/**
* 名称
*/
private String name;
AmountCreditApplyStatusEnum(String code, String name){
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
public static AmountCreditApplyStatusEnum getEnumByCode(String code){
for (AmountCreditApplyStatusEnum e : AmountCreditApplyStatusEnum.values()) {
if (e.getCode().equals(code)) {
return e;
}
}
return ACAS_DRAFT;
}
public static AmountCreditApplyStatusEnum getEnumByName(String name){
if (StringUtils.isEmpty(name)) return ACAS_DRAFT;
for (AmountCreditApplyStatusEnum e : AmountCreditApplyStatusEnum.values()) {
if (name.equals(e.getName())) {
return e;
}
}
return ACAS_DRAFT;
}
}

View File

@@ -0,0 +1,65 @@
package cn.iocoder.yudao.module.capital.enums.splyAmtCrdtAppl;
import org.apache.commons.lang3.StringUtils;
/**
* 授信申请管理额度类型枚举INVESTMENT:投资类MINERAL_CATEGORY矿产类FINANCIAL_CATEGORY财务类HUMAN_RESOURCES_CATEGORY人力资源类SAFETY_AND_ENVIRONMENTAL_PROTECTION_CATEGORY安全环保类TECHNOLOGY科技类
* INFORMATIONIZATION_CATEGORY信息化类MARKETING营销类PRODUCTION_CATEGORY生产类OTHERS_TYPE其他类
*/
public enum AmountCreditApplyTypeEnum {
OTHERS_TYPE("OTHERS_TYPE","其他类"),
INVESTMENT("INVESTMENT","投资类"),
MINERAL_CATEGORY("MINERAL_CATEGORY","矿产类"),
FINANCIAL_CATEGORY("FINANCIAL_CATEGORY","财务类"),
HUMAN_RESOURCES_CATEGORY("HUMAN_RESOURCES_CATEGORY","人力资源类"),
SAFETY_AND_ENVIRONMENTAL_PROTECTION_CATEGORY("SAFETY_AND_ENVIRONMENTAL_PROTECTION_CATEGORY","安全环保类"),
TECHNOLOGY("TECHNOLOGY","科技类"),
INFORMATIONIZATION_CATEGORY("INFORMATIONIZATION_CATEGORY","信息化类"),
MARKETING("MARKETING","营销类"),
PRODUCTION_CATEGORY("PRODUCTION_CATEGORY","生产类"),
;
/**
* 编码
*/
private String code;
/**
* 名称
*/
private String name;
AmountCreditApplyTypeEnum(String code, String name){
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
public static AmountCreditApplyTypeEnum getEnumByCode(String code){
for (AmountCreditApplyTypeEnum e : AmountCreditApplyTypeEnum.values()) {
if (e.getCode().equals(code)) {
return e;
}
}
return OTHERS_TYPE;
}
public static AmountCreditApplyTypeEnum getEnumByName(String name){
if (StringUtils.isEmpty(name)) return OTHERS_TYPE;
for (AmountCreditApplyTypeEnum e : AmountCreditApplyTypeEnum.values()) {
if (name.equals(e.getName())) {
return e;
}
}
return OTHERS_TYPE;
}
}

View File

@@ -0,0 +1,35 @@
package cn.iocoder.yudao.module.capital.enums.splyAmtCrdtAppl;
/**
* 是否删除枚举
* 是否删除0未删除1已删除
*/
public enum WhetherDeletedEnum {
YES(1,"已删除"),
NO(0,"未删除")
;
/**
* 编码
*/
private Integer code;
/**
* 名称
*/
private String name;
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
WhetherDeletedEnum(Integer code, String name){
this.code = code;
this.name = name;
}
}

View File

@@ -0,0 +1,55 @@
package cn.iocoder.yudao.module.capital.enums.splyAmtCrdtAppl;
import org.apache.commons.lang3.StringUtils;
/**
* 是否枚举
* 标识01
*/
public enum YesOrNoEnum {
YES("1",""),
NO("0","")
;
/**
* 编码
*/
private String code;
/**
* 名称
*/
private String name;
public String getCode() {
return code;
}
public String getName() {
return name;
}
YesOrNoEnum(String code, String name){
this.code = code;
this.name = name;
}
public static YesOrNoEnum getEnumByCode(String code){
for (YesOrNoEnum e : YesOrNoEnum.values()) {
if (code.equals(e.getCode())) {
return e;
}
}
return NO;
}
public static YesOrNoEnum getEnumByName(String name){
if (StringUtils.isEmpty(name)) return NO;
for (YesOrNoEnum e : YesOrNoEnum.values()){
if (name.equals(e.getName())){
return e;
}
}
return NO;
}
}

View File

@@ -0,0 +1,13 @@
package cn.iocoder.yudao.module.capital.framework.rpc.config;
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
import cn.iocoder.yudao.module.system.api.sequence.SequenceApi;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration;
@Configuration(value = "capitalRpcConfiguration", proxyBeanMethods = false)
@EnableFeignClients(clients = {DeptApi.class, SequenceApi.class, BpmProcessInstanceApi.class, AdminUserApi.class})
public class RpcConfiguration {
}

View File

@@ -9,11 +9,9 @@ import org.springframework.security.config.annotation.web.configurers.AuthorizeH
/**
* Capital 模块的 Security 配置
*
* @author ZT
* Template 模块的 Security 配置
*/
@Configuration(proxyBeanMethods = false)
@Configuration("capitalSecurityConfiguration")
public class SecurityConfiguration {
@Bean

View File

@@ -0,0 +1,64 @@
package cn.iocoder.yudao.module.capital.service.splyAmountCredit;
import java.util.*;
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 jakarta.validation.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
/**
* 授信额度变动记录 Service 接口
*
* @author 后台管理
*/
public interface AmountCreditChangeService {
/**
* 创建授信额度变动记录
*
* @param createReqVO 创建信息
* @return 编号
*/
AmountCreditChangeRespVO createAmountCreditChange(@Valid AmountCreditChangeSaveReqVO createReqVO);
/**
* 更新授信额度变动记录
*
* @param updateReqVO 更新信息
*/
void updateAmountCreditChange(@Valid AmountCreditChangeSaveReqVO updateReqVO);
/**
* 删除授信额度变动记录
*
* @param id 编号
*/
void deleteAmountCreditChange(Long id);
/**
* 批量删除授信额度变动记录
*
* @param ids 编号
*/
void deleteAmountCreditChangeListByIds(List<Long> ids);
/**
* 获得授信额度变动记录
*
* @param id 编号
* @return 授信额度变动记录
*/
AmountCreditChangeDO getAmountCreditChange(Long id);
/**
* 获得授信额度变动记录分页
*
* @param pageReqVO 分页查询
* @return 授信额度变动记录分页
*/
PageResult<AmountCreditChangeDO> getAmountCreditChangePage(AmountCreditChangePageReqVO pageReqVO);
}

View File

@@ -0,0 +1,89 @@
package cn.iocoder.yudao.module.capital.service.splyAmountCredit;
import cn.hutool.core.collection.CollUtil;
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.dal.dao.splyAmountCredit.AmountCreditChangeMapper;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.capital.enums.ErrorCodeConstants.AMOUNT_CREDIT_CHANGE_NOT_EXISTS;
/**
* 授信额度变动记录 Service 实现类
*
* @author 后台管理
*/
@Service
@Validated
public class AmountCreditChangeServiceImpl implements AmountCreditChangeService {
@Resource
private AmountCreditChangeMapper amountCreditChangeMapper;
@Override
public AmountCreditChangeRespVO createAmountCreditChange(AmountCreditChangeSaveReqVO createReqVO) {
// 插入
AmountCreditChangeDO amountCreditChange = BeanUtils.toBean(createReqVO, AmountCreditChangeDO.class);
amountCreditChangeMapper.insert(amountCreditChange);
// 返回
return BeanUtils.toBean(amountCreditChange, AmountCreditChangeRespVO.class);
}
@Override
public void updateAmountCreditChange(AmountCreditChangeSaveReqVO updateReqVO) {
// 校验存在
validateAmountCreditChangeExists(updateReqVO.getId());
// 更新
AmountCreditChangeDO updateObj = BeanUtils.toBean(updateReqVO, AmountCreditChangeDO.class);
amountCreditChangeMapper.updateById(updateObj);
}
@Override
public void deleteAmountCreditChange(Long id) {
// 校验存在
validateAmountCreditChangeExists(id);
// 删除
amountCreditChangeMapper.deleteById(id);
}
@Override
public void deleteAmountCreditChangeListByIds(List<Long> ids) {
// 校验存在
validateAmountCreditChangeExists(ids);
// 删除
amountCreditChangeMapper.deleteByIds(ids);
}
private void validateAmountCreditChangeExists(List<Long> ids) {
List<AmountCreditChangeDO> list = amountCreditChangeMapper.selectByIds(ids);
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
throw exception(AMOUNT_CREDIT_CHANGE_NOT_EXISTS);
}
}
private void validateAmountCreditChangeExists(Long id) {
if (amountCreditChangeMapper.selectById(id) == null) {
throw exception(AMOUNT_CREDIT_CHANGE_NOT_EXISTS);
}
}
@Override
public AmountCreditChangeDO getAmountCreditChange(Long id) {
return amountCreditChangeMapper.selectById(id);
}
@Override
public PageResult<AmountCreditChangeDO> getAmountCreditChangePage(AmountCreditChangePageReqVO pageReqVO) {
return amountCreditChangeMapper.selectPage(pageReqVO);
}
}

View File

@@ -0,0 +1,64 @@
package cn.iocoder.yudao.module.capital.service.splyAmountCredit;
import java.util.*;
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 jakarta.validation.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
/**
* 授信额度 Service 接口
*
* @author 后台管理
*/
public interface AmountCreditService {
/**
* 创建授信额度
*
* @param createReqVO 创建信息
* @return 编号
*/
AmountCreditRespVO createAmountCredit(@Valid AmountCreditSaveReqVO createReqVO);
/**
* 更新授信额度
*
* @param updateReqVO 更新信息
*/
void updateAmountCredit(@Valid AmountCreditSaveReqVO updateReqVO);
/**
* 删除授信额度
*
* @param id 编号
*/
void deleteAmountCredit(Long id);
/**
* 批量删除授信额度
*
* @param ids 编号
*/
void deleteAmountCreditListByIds(List<Long> ids);
/**
* 获得授信额度
*
* @param id 编号
* @return 授信额度
*/
AmountCreditDO getAmountCredit(Long id);
/**
* 获得授信额度分页
*
* @param pageReqVO 分页查询
* @return 授信额度分页
*/
PageResult<AmountCreditDO> getAmountCreditPage(AmountCreditPageReqVO pageReqVO);
}

View File

@@ -0,0 +1,90 @@
package cn.iocoder.yudao.module.capital.service.splyAmountCredit;
import cn.hutool.core.collection.CollUtil;
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.dal.dao.splyAmountCredit.AmountCreditMapper;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.capital.enums.ErrorCodeConstants.AMOUNT_CREDIT_NOT_EXISTS;
/**
* 授信额度 Service 实现类
*
* @author 后台管理
*/
@Service
@Validated
public class AmountCreditServiceImpl implements AmountCreditService {
@Resource
private AmountCreditMapper amountCreditMapper;
@Override
public AmountCreditRespVO createAmountCredit(AmountCreditSaveReqVO createReqVO) {
// 插入
AmountCreditDO amountCredit = BeanUtils.toBean(createReqVO, AmountCreditDO.class);
amountCreditMapper.insert(amountCredit);
// 返回
return BeanUtils.toBean(amountCredit, AmountCreditRespVO.class);
}
@Override
public void updateAmountCredit(AmountCreditSaveReqVO updateReqVO) {
// 校验存在
validateAmountCreditExists(updateReqVO.getId());
// 更新
AmountCreditDO updateObj = BeanUtils.toBean(updateReqVO, AmountCreditDO.class);
amountCreditMapper.updateById(updateObj);
}
@Override
public void deleteAmountCredit(Long id) {
// 校验存在
validateAmountCreditExists(id);
// 删除
amountCreditMapper.deleteById(id);
}
@Override
public void deleteAmountCreditListByIds(List<Long> ids) {
// 校验存在
validateAmountCreditExists(ids);
// 删除
amountCreditMapper.deleteByIds(ids);
}
private void validateAmountCreditExists(List<Long> ids) {
List<AmountCreditDO> list = amountCreditMapper.selectByIds(ids);
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
throw exception(AMOUNT_CREDIT_NOT_EXISTS);
}
}
private void validateAmountCreditExists(Long id) {
if (amountCreditMapper.selectById(id) == null) {
throw exception(AMOUNT_CREDIT_NOT_EXISTS);
}
}
@Override
public AmountCreditDO getAmountCredit(Long id) {
return amountCreditMapper.selectById(id);
}
@Override
public PageResult<AmountCreditDO> getAmountCreditPage(AmountCreditPageReqVO pageReqVO) {
return amountCreditMapper.selectPage(pageReqVO);
}
}

View File

@@ -0,0 +1,64 @@
package cn.iocoder.yudao.module.capital.service.splyAmtCrdtAppl;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplyDetailPageReqVO;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplyDetailRespVO;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplyDetailSaveReqVO;
import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl.AmountCreditApplyDetailDO;
import jakarta.validation.Valid;
import java.util.List;
/**
* 授信调整申请明细 Service 接口
*
* @author 后台管理
*/
public interface AmountCreditApplyDetailService {
/**
* 创建授信调整申请明细
*
* @param createReqVO 创建信息
* @return 编号
*/
AmountCreditApplyDetailRespVO createAmountCreditApplyDetail(@Valid AmountCreditApplyDetailSaveReqVO createReqVO);
/**
* 更新授信调整申请明细
*
* @param updateReqVO 更新信息
*/
void updateAmountCreditApplyDetail(@Valid AmountCreditApplyDetailSaveReqVO updateReqVO);
/**
* 删除授信调整申请明细
*
* @param id 编号
*/
void deleteAmountCreditApplyDetail(Long id);
/**
* 批量删除授信调整申请明细
*
* @param ids 编号
*/
void deleteAmountCreditApplyDetailListByIds(List<Long> ids);
/**
* 获得授信调整申请明细
*
* @param id 编号
* @return 授信调整申请明细
*/
AmountCreditApplyDetailDO getAmountCreditApplyDetail(Long id);
/**
* 获得授信调整申请明细分页
*
* @param pageReqVO 分页查询
* @return 授信调整申请明细分页
*/
PageResult<AmountCreditApplyDetailDO> getAmountCreditApplyDetailPage(AmountCreditApplyDetailPageReqVO pageReqVO);
}

View File

@@ -0,0 +1,89 @@
package cn.iocoder.yudao.module.capital.service.splyAmtCrdtAppl;
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplyDetailPageReqVO;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplyDetailRespVO;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplyDetailSaveReqVO;
import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl.AmountCreditApplyDetailDO;
import cn.iocoder.yudao.module.capital.dal.dao.splyAmtCrdtAppl.AmountCreditApplyDetailMapper;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.capital.enums.ErrorCodeConstants.*;
/**
* 授信调整申请明细 Service 实现类
*
* @author 后台管理
*/
@Service
@Validated
public class AmountCreditApplyDetailServiceImpl implements AmountCreditApplyDetailService {
@Resource
private AmountCreditApplyDetailMapper amountCreditApplyDetailMapper;
@Override
public AmountCreditApplyDetailRespVO createAmountCreditApplyDetail(AmountCreditApplyDetailSaveReqVO createReqVO) {
// 插入
AmountCreditApplyDetailDO amountCreditApplyDetail = BeanUtils.toBean(createReqVO, AmountCreditApplyDetailDO.class);
amountCreditApplyDetailMapper.insert(amountCreditApplyDetail);
// 返回
return BeanUtils.toBean(amountCreditApplyDetail, AmountCreditApplyDetailRespVO.class);
}
@Override
public void updateAmountCreditApplyDetail(AmountCreditApplyDetailSaveReqVO updateReqVO) {
// 校验存在
validateAmountCreditApplyDetailExists(updateReqVO.getId());
// 更新
AmountCreditApplyDetailDO updateObj = BeanUtils.toBean(updateReqVO, AmountCreditApplyDetailDO.class);
amountCreditApplyDetailMapper.updateById(updateObj);
}
@Override
public void deleteAmountCreditApplyDetail(Long id) {
// 校验存在
validateAmountCreditApplyDetailExists(id);
// 删除
amountCreditApplyDetailMapper.deleteById(id);
}
@Override
public void deleteAmountCreditApplyDetailListByIds(List<Long> ids) {
// 校验存在
validateAmountCreditApplyDetailExists(ids);
// 删除
amountCreditApplyDetailMapper.deleteByIds(ids);
}
private void validateAmountCreditApplyDetailExists(List<Long> ids) {
List<AmountCreditApplyDetailDO> list = amountCreditApplyDetailMapper.selectByIds(ids);
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
throw exception(AMOUNT_CREDIT_APPLY_DETAIL_NOT_EXISTS);
}
}
private void validateAmountCreditApplyDetailExists(Long id) {
if (amountCreditApplyDetailMapper.selectById(id) == null) {
throw exception(AMOUNT_CREDIT_APPLY_DETAIL_NOT_EXISTS);
}
}
@Override
public AmountCreditApplyDetailDO getAmountCreditApplyDetail(Long id) {
return amountCreditApplyDetailMapper.selectById(id);
}
@Override
public PageResult<AmountCreditApplyDetailDO> getAmountCreditApplyDetailPage(AmountCreditApplyDetailPageReqVO pageReqVO) {
return amountCreditApplyDetailMapper.selectPage(pageReqVO);
}
}

View File

@@ -0,0 +1,110 @@
package cn.iocoder.yudao.module.capital.service.splyAmtCrdtAppl;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplyPageReqVO;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplyRespVO;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplyReviewPageReqVO;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplySaveReqVO;
import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl.AmountCreditApplyDO;
import cn.iocoder.yudao.module.system.api.dept.dto.DeptSimpleRespDTO;
import jakarta.validation.Valid;
import java.util.List;
/**
* 授信调整申请主 Service 接口
*
* @author 后台管理
*/
public interface AmountCreditApplyService {
/**
* 创建授信调整申请主
*
* @param createReqVO 创建信息
* @return 编号
*/
AmountCreditApplyRespVO createAmountCreditApply(@Valid AmountCreditApplySaveReqVO createReqVO);
/**
* 更新授信调整申请主
*
* @param updateReqVO 更新信息
*/
void updateAmountCreditApply(@Valid AmountCreditApplySaveReqVO updateReqVO);
/**
* 删除授信调整申请主
*
* @param id 编号
*/
void deleteAmountCreditApply(Long id);
/**
* 批量删除授信调整申请主
*
* @param ids 编号
*/
void deleteAmountCreditApplyListByIds(List<Long> ids);
/**
* 获得授信调整申请主
*
* @param id 编号
* @return 授信调整申请主
*/
AmountCreditApplyDO getAmountCreditApplyById(Long id);
/**
* 获得授信调整申请主分页
*
* @param pageReqVO 分页查询
* @return 授信调整申请主分页
*/
PageResult<AmountCreditApplyDO> getAmountCreditApplyPage(AmountCreditApplyPageReqVO pageReqVO);
/**
* 获取授信单审核-待办/已办任务
* @param pageReqVO 请求参数
* @return
*/
PageResult<AmountCreditApplyDO> getAmountCreditApplyReviewTaskList(AmountCreditApplyReviewPageReqVO pageReqVO);
/**
* 获取登陆人的所在公司以及下属公司
* @return
*/
List<DeptSimpleRespDTO> getLoginUserAllCompanyList();
/**
* 授信单提交审批
* @param id 主键id
* @param processInstanceId 流程实例id
* @return
*/
String amountCreditApplySubmitApproval(Long id,String processInstanceId);
/**
* 通过流程实例id 获得指定流程实例的任务列表
* @param processInstanceId 实例id
* @return
*/
Object getBpmTaskListByProcessInstanceId(String processInstanceId);
/**
* 通过流程实例id 获取流程实例的 BPMN 模型视图
* @param processInstanceId 流程实例id
* @return
*/
Object getBpmProcessInstanceBpmnModelView(String processInstanceId);
/**
* 获得审批详情
* @param processDefinitionId 流程实例id
* @param taskId 任务编号 没有任务编号传流程实例id
* @return
*/
Object getBpmApprovalDetail(String processDefinitionId,String taskId);
}

View File

@@ -0,0 +1,267 @@
package cn.iocoder.yudao.module.capital.service.splyAmtCrdtAppl;
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
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.dal.dao.splyAmtCrdtAppl.AmountCreditApplyDetailMapper;
import cn.iocoder.yudao.module.capital.dal.dao.splyAmtCrdtAppl.AmountCreditApplyMapper;
import cn.iocoder.yudao.module.capital.dal.dao.splyAmtCrdtAppl.AmountCreditApplySignMapper;
import cn.iocoder.yudao.module.capital.enums.splyAmtCrdtAppl.AmountCreditApplySignStatusEnum;
import cn.iocoder.yudao.module.capital.enums.splyAmtCrdtAppl.AmountCreditApplyStatusEnum;
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
import cn.iocoder.yudao.module.system.api.dept.dto.DeptSimpleRespDTO;
import cn.iocoder.yudao.module.system.api.sequence.SequenceApi;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import jakarta.annotation.Resource;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.capital.enums.ErrorCodeConstants.*;
import static cn.iocoder.yudao.module.capital.enums.GeneralSequenceConstants.SPLY_AMT_CRDT_APPL_APPL_NUM;
/**
* 授信调整申请主 Service 实现类
*
* @author 后台管理
*/
@Service
@Validated
public class AmountCreditApplyServiceImpl implements AmountCreditApplyService {
@Resource
private AmountCreditApplyMapper amountCreditApplyMapper;
@Resource
private AmountCreditApplyDetailMapper amountCreditApplyDetailMapper;
@Resource
private AmountCreditApplySignMapper amountCreditApplySignMapper;
@Resource
private SequenceApi sequenceApi;
@Resource
private BpmProcessInstanceApi bpmProcessInstanceApi;
@Resource
private AdminUserApi adminUserApi;
@Resource
private DeptApi deptApi;
@Override
@Transactional
public AmountCreditApplyRespVO createAmountCreditApply(AmountCreditApplySaveReqVO createReqVO) {
// 插入
AmountCreditApplyDO amountCreditApply = BeanUtils.toBean(createReqVO, AmountCreditApplyDO.class);
String applyNum = sequenceApi.getNextSequence(SPLY_AMT_CRDT_APPL_APPL_NUM,null,null).getData();
amountCreditApply.setApplyNumber(applyNum); // 设置申请单号
amountCreditApply.setStatus(AmountCreditApplyStatusEnum.ACAS_DRAFT.getCode());
amountCreditApplyMapper.insert(amountCreditApply);
if (ObjectUtils.isNotEmpty(amountCreditApply.getId())){
List<AmountCreditApplyDetailSaveReqVO> acadetailList = createReqVO.getAcadetailList();
List<AmountCreditApplySignSaveReqVO> acasList = createReqVO.getAcasList();
if (CollectionUtils.isNotEmpty(acadetailList)) {
List<AmountCreditApplyDetailDO> beans = BeanUtils.toBean(acadetailList, AmountCreditApplyDetailDO.class);
for (AmountCreditApplyDetailDO bean : beans) {
bean.setApplyId(amountCreditApply.getId());
}
amountCreditApplyDetailMapper.insertBatch(beans);
}
if (CollectionUtils.isNotEmpty(acasList)) {
List<AmountCreditApplySignDO> beans = BeanUtils.toBean(acasList, AmountCreditApplySignDO.class);
for (AmountCreditApplySignDO bean : beans) {
bean.setApplyId(amountCreditApply.getId());
bean.setStatus(AmountCreditApplySignStatusEnum.UNSIGNED.getCode());
}
amountCreditApplySignMapper.insertBatch(beans);
}
}
// 返回
AmountCreditApplyRespVO respBean = BeanUtils.toBean(amountCreditApply, AmountCreditApplyRespVO.class);
List<AmountCreditApplyDetailDO> amountCreditApplyDetailListByApplyId = amountCreditApplyDetailMapper.getAmountCreditApplyDetailListByApplyId(amountCreditApply.getId());
List<AmountCreditApplySignDO> amountCreditApplySignListByApplyId = amountCreditApplySignMapper.getAmountCreditApplySignListByApplyId(amountCreditApply.getId());
respBean.setAcadetailList(BeanUtils.toBean(amountCreditApplyDetailListByApplyId,AmountCreditApplyDetailRespVO.class));
respBean.setAcasList(BeanUtils.toBean(amountCreditApplySignListByApplyId,AmountCreditApplySignRespVO.class));
return respBean;
}
@Override
@Transactional
public void updateAmountCreditApply(AmountCreditApplySaveReqVO updateReqVO) {
// 校验存在
validateAmountCreditApplyExistsUpdate(updateReqVO.getId());
// 更新
AmountCreditApplyDO updateObj = BeanUtils.toBean(updateReqVO, AmountCreditApplyDO.class);
amountCreditApplyMapper.updateById(updateObj);
// 先更新主表,后更新子表
if (CollectionUtils.isNotEmpty(updateReqVO.getAcadetailList())) {
List<AmountCreditApplyDetailDO> beans = BeanUtils.toBean(updateReqVO.getAcadetailList(), AmountCreditApplyDetailDO.class);
// 更新子表中,需要判断有新的数据插入的情况
for (AmountCreditApplyDetailDO item : beans) {
if (ObjectUtils.isEmpty(item.getId())) {
item.setApplyId(updateObj.getId());
amountCreditApplyDetailMapper.insert(item);
} else {
amountCreditApplyDetailMapper.updateById(item);
}
}
}
if (CollectionUtils.isNotEmpty(updateReqVO.getAcasList())) {
List<AmountCreditApplySignDO> beans = BeanUtils.toBean(updateReqVO.getAcasList(), AmountCreditApplySignDO.class);
// 更新子表中,需要判断有新的数据插入的情况
for (AmountCreditApplySignDO item : beans) {
if (ObjectUtils.isEmpty(item.getId())) {
item.setApplyId(updateObj.getId());
item.setStatus(AmountCreditApplySignStatusEnum.UNSIGNED.getCode());
amountCreditApplySignMapper.insert(item);
} else {
amountCreditApplySignMapper.updateById(beans);
}
}
}
}
@Override
@Transactional
public void deleteAmountCreditApply(Long id) {
// 校验存在
validateAmountCreditApplyExistsDeleted(id);
// 删除
amountCreditApplyMapper.deleteById(id);
// 子表删除
List<AmountCreditApplyDetailDO> amountCreditApplyDetailListByApplyId = amountCreditApplyDetailMapper.getAmountCreditApplyDetailListByApplyId(id);
List<AmountCreditApplySignDO> amountCreditApplySignListByApplyId = amountCreditApplySignMapper.getAmountCreditApplySignListByApplyId(id);
if (CollectionUtils.isNotEmpty(amountCreditApplyDetailListByApplyId)) {
List<Long> ids = amountCreditApplyDetailListByApplyId.stream().map(obj -> obj.getId()).collect(Collectors.toList());
amountCreditApplyDetailMapper.deleteByIds(ids);
}
if (CollectionUtils.isNotEmpty(amountCreditApplySignListByApplyId)) {
List<Long> ids = amountCreditApplySignListByApplyId.stream().map(obj -> obj.getId()).collect(Collectors.toList());
amountCreditApplySignMapper.deleteByIds(ids);
}
}
@Override
@Transactional
public void deleteAmountCreditApplyListByIds(List<Long> ids) {
// 校验存在
validateAmountCreditApplyExistsDeleted(ids);
// 删除
amountCreditApplyMapper.deleteByIds(ids);
// 删除子表
for (Long id : ids) {
List<AmountCreditApplyDetailDO> amountCreditApplyDetailListByApplyId = amountCreditApplyDetailMapper.getAmountCreditApplyDetailListByApplyId(id);
List<AmountCreditApplySignDO> amountCreditApplySignListByApplyId = amountCreditApplySignMapper.getAmountCreditApplySignListByApplyId(id);
if (CollectionUtils.isNotEmpty(amountCreditApplyDetailListByApplyId)) {
List<Long> idcs = amountCreditApplyDetailListByApplyId.stream().map(obj -> obj.getId()).collect(Collectors.toList());
amountCreditApplyDetailMapper.deleteByIds(idcs);
}
if (CollectionUtils.isNotEmpty(amountCreditApplySignListByApplyId)) {
List<Long> idcs = amountCreditApplySignListByApplyId.stream().map(obj -> obj.getId()).collect(Collectors.toList());
amountCreditApplySignMapper.deleteByIds(idcs);
}
}
}
private void validateAmountCreditApplyExistsDeleted(List<Long> ids) {
List<AmountCreditApplyDO> list = amountCreditApplyMapper.selectByIds(ids);
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
throw exception(AMOUNT_CREDIT_APPLY_NOT_EXISTS);
} else {
for (AmountCreditApplyDO item : list) {
// 不是草稿不允许删除
if (!AmountCreditApplyStatusEnum.ACAS_DRAFT.getCode().equals(item.getStatus())){
throw exception(AMOUNT_CREDIT_STATUS_DELETE);
}
}
}
}
private void validateAmountCreditApplyExistsDeleted(Long id) {
AmountCreditApplyDO amountCreditApplyDO = amountCreditApplyMapper.selectById(id);
if ( amountCreditApplyDO == null) {
throw exception(AMOUNT_CREDIT_APPLY_NOT_EXISTS);
// 不是草稿不允许删除
} else if (!AmountCreditApplyStatusEnum.ACAS_DRAFT.getCode().equals(amountCreditApplyDO.getStatus())){
throw exception(AMOUNT_CREDIT_STATUS_DELETE);
}
}
private void validateAmountCreditApplyExistsUpdate(Long id) {
AmountCreditApplyDO amountCreditApplyDO = amountCreditApplyMapper.selectById(id);
if ( amountCreditApplyDO == null) {
throw exception(AMOUNT_CREDIT_APPLY_NOT_EXISTS);
// 申请中不允许更新
} else if (AmountCreditApplyStatusEnum.ACAS_UNDER_REVIEW.getCode().equals(amountCreditApplyDO.getStatus())){
throw exception(AMOUNT_CREDIT_STATUS_UPDATE);
}
}
@Override
public AmountCreditApplyDO getAmountCreditApplyById(Long id) {
AmountCreditApplyDO amountCreditApplyDO = amountCreditApplyMapper.selectById(id);
return amountCreditApplyDO;
}
@Override
public PageResult<AmountCreditApplyDO> getAmountCreditApplyPage(AmountCreditApplyPageReqVO pageReqVO) {
return amountCreditApplyMapper.selectPage(pageReqVO);
}
@Override
public PageResult<AmountCreditApplyDO> getAmountCreditApplyReviewTaskList(AmountCreditApplyReviewPageReqVO pageReqVO) {
return amountCreditApplyMapper.selectAmountCreditApplyReviewPage(pageReqVO);
}
@Override
public List<DeptSimpleRespDTO> getLoginUserAllCompanyList() {
//return deptApi.getAllCompanyList(); TODO 新版本未发到maven仓库
return new ArrayList<>();
}
@Override
@Transactional
public String amountCreditApplySubmitApproval(Long id,String processInstanceId) {
if (ObjectUtils.isEmpty(id)) {
throw exception(AMOUNT_CREDIT_APPLY_ID_NOT_EXISTS);
}
// 前端先去请求 bpm 服务的 创建流程接口,成功后会返回流程实例id,然后后再调用接口更新状态
AmountCreditApplyDO amountCreditApplyDO = amountCreditApplyMapper.selectById(id);
if (ObjectUtils.isEmpty(amountCreditApplyDO)) {
throw exception(AMOUNT_CREDIT_APPLY_NOT_EXISTS);
}
amountCreditApplyDO.setProcessInstanceId(processInstanceId);
amountCreditApplyDO.setStatus(AmountCreditApplyStatusEnum.ACAS_UNDER_REVIEW.getCode());
amountCreditApplyMapper.updateById(amountCreditApplyDO);
return "提交审批成功";
}
@Override
public Object getBpmTaskListByProcessInstanceId(String processInstanceId) {
// TODO 获得指定流程实例的任务列表-审批结果
return null;
}
@Override
public Object getBpmProcessInstanceBpmnModelView(String processInstanceId) {
// TODO 获取流程实例的 BPMN 模型视图
return null;
}
@Override
public Object getBpmApprovalDetail(String processDefinitionId, String taskId) {
// TODO 获取审批界面 - 获得审批详情
return null;
}
}

View File

@@ -0,0 +1,64 @@
package cn.iocoder.yudao.module.capital.service.splyAmtCrdtAppl;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplySignPageReqVO;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplySignRespVO;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplySignSaveReqVO;
import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl.AmountCreditApplySignDO;
import jakarta.validation.Valid;
import java.util.List;
/**
* 授信调整签字区域明细 Service 接口
*
* @author 后台管理
*/
public interface AmountCreditApplySignService {
/**
* 创建授信调整签字区域明细
*
* @param createReqVO 创建信息
* @return 编号
*/
AmountCreditApplySignRespVO createAmountCreditApplySign(@Valid AmountCreditApplySignSaveReqVO createReqVO);
/**
* 更新授信调整签字区域明细
*
* @param updateReqVO 更新信息
*/
void updateAmountCreditApplySign(@Valid AmountCreditApplySignSaveReqVO updateReqVO);
/**
* 删除授信调整签字区域明细
*
* @param id 编号
*/
void deleteAmountCreditApplySign(Long id);
/**
* 批量删除授信调整签字区域明细
*
* @param ids 编号
*/
void deleteAmountCreditApplySignListByIds(List<Long> ids);
/**
* 获得授信调整签字区域明细
*
* @param id 编号
* @return 授信调整签字区域明细
*/
AmountCreditApplySignDO getAmountCreditApplySignById(Long id);
/**
* 获得授信调整签字区域明细分页
*
* @param pageReqVO 分页查询
* @return 授信调整签字区域明细分页
*/
PageResult<AmountCreditApplySignDO> getAmountCreditApplySignPage(AmountCreditApplySignPageReqVO pageReqVO);
}

View File

@@ -0,0 +1,88 @@
package cn.iocoder.yudao.module.capital.service.splyAmtCrdtAppl;
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplySignPageReqVO;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplySignRespVO;
import cn.iocoder.yudao.module.capital.controller.admin.capital.splyAmtCrdtAppl.vo.AmountCreditApplySignSaveReqVO;
import cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl.AmountCreditApplySignDO;
import cn.iocoder.yudao.module.capital.dal.dao.splyAmtCrdtAppl.AmountCreditApplySignMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import java.util.List;
import static cn.iocoder.yudao.module.capital.enums.ErrorCodeConstants.*;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
/**
* 授信调整签字区域明细 Service 实现类
*
* @author 后台管理
*/
@Service
@Validated
public class AmountCreditApplySignServiceImpl implements AmountCreditApplySignService {
@Resource
private AmountCreditApplySignMapper amountCreditApplySignMapper;
@Override
public AmountCreditApplySignRespVO createAmountCreditApplySign(AmountCreditApplySignSaveReqVO createReqVO) {
// 插入
AmountCreditApplySignDO amountCreditApplySign = BeanUtils.toBean(createReqVO, AmountCreditApplySignDO.class);
amountCreditApplySignMapper.insert(amountCreditApplySign);
// 返回
return BeanUtils.toBean(amountCreditApplySign, AmountCreditApplySignRespVO.class);
}
@Override
public void updateAmountCreditApplySign(AmountCreditApplySignSaveReqVO updateReqVO) {
// 校验存在
validateAmountCreditApplySignExists(updateReqVO.getId());
// 更新
AmountCreditApplySignDO updateObj = BeanUtils.toBean(updateReqVO, AmountCreditApplySignDO.class);
amountCreditApplySignMapper.updateById(updateObj);
}
@Override
public void deleteAmountCreditApplySign(Long id) {
// 校验存在
validateAmountCreditApplySignExists(id);
// 删除
amountCreditApplySignMapper.deleteById(id);
}
@Override
public void deleteAmountCreditApplySignListByIds(List<Long> ids) {
// 校验存在
validateAmountCreditApplySignExists(ids);
// 删除
amountCreditApplySignMapper.deleteByIds(ids);
}
private void validateAmountCreditApplySignExists(List<Long> ids) {
List<AmountCreditApplySignDO> list = amountCreditApplySignMapper.selectByIds(ids);
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
throw exception(AMOUNT_CREDIT_APPLY_SIGN_NOT_EXISTS);
}
}
private void validateAmountCreditApplySignExists(Long id) {
if (amountCreditApplySignMapper.selectById(id) == null) {
throw exception(AMOUNT_CREDIT_APPLY_SIGN_NOT_EXISTS);
}
}
@Override
public AmountCreditApplySignDO getAmountCreditApplySignById(Long id) {
return amountCreditApplySignMapper.selectById(id);
}
@Override
public PageResult<AmountCreditApplySignDO> getAmountCreditApplySignPage(AmountCreditApplySignPageReqVO pageReqVO) {
return amountCreditApplySignMapper.selectPage(pageReqVO);
}
}

View File

@@ -78,7 +78,7 @@ management:
logging:
level:
# 配置自己写的 MyBatis Mapper 打印日志
cn.iocoder.yudao.module.capital.dal.mysql: debug
cn.iocoder.yudao.module.capital.dal.dao: debug
org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR
mybatis-plus:

View File

@@ -72,8 +72,14 @@ knife4j:
# MyBatis Plus 的配置项
mybatis-plus:
mapper-locations:
- classpath*:mapper/**/*.xml
configuration:
cache-enabled: false
call-setters-on-nulls: true
map-underscore-to-camel-case: true # 虽然默认为 true ,但是还是显示去指定下。
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志
#log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl #关闭日志输出
global-config:
db-config:
id-type: NONE # “智能”模式,基于 IdTypeEnvironmentPostProcessor + 数据源的类型,自动适配成 AUTO、INPUT 模式。

View File

@@ -0,0 +1,76 @@
<configuration>
<!-- 引用 Spring Boot 的 logback 基础配置 -->
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<!-- 变量 yudao.info.base-package基础业务包 -->
<springProperty scope="context" name="yudao.info.base-package" source="yudao.info.base-package"/>
<!-- 格式化输出:%d 表示日期,%X{tid} SkWalking 链路追踪编号,%thread 表示线程名,%-5level级别从左显示 5 个字符宽度,%msg日志消息%n是换行符 -->
<property name="PATTERN_DEFAULT" value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} | %highlight(${LOG_LEVEL_PATTERN:-%5p} ${PID:- }) | %boldYellow(%thread [%tid]) %boldGreen(%-40.40logger{39}) | %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<!-- 控制台 Appender -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">     
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<pattern>${PATTERN_DEFAULT}</pattern>
</layout>
</encoder>
</appender>
<!-- 文件 Appender -->
<!-- 参考 Spring Boot 的 file-appender.xml 编写 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<pattern>${PATTERN_DEFAULT}</pattern>
</layout>
</encoder>
<!-- 日志文件名 -->
<file>${LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 滚动后的日志文件名 -->
<fileNamePattern>${LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN:-${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz}</fileNamePattern>
<!-- 启动服务时,是否清理历史日志,一般不建议清理 -->
<cleanHistoryOnStart>${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart>
<!-- 日志文件,到达多少容量,进行滚动 -->
<maxFileSize>${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB}</maxFileSize>
<!-- 日志文件的总大小0 表示不限制 -->
<totalSizeCap>${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-0}</totalSizeCap>
<!-- 日志文件的保留天数 -->
<maxHistory>${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-30}</maxHistory>
</rollingPolicy>
</appender>
<!-- 异步写入日志,提升性能 -->
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志。默认的,如果队列的 80% 已满,则会丢弃 TRACT、DEBUG、INFO 级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能。默认值为 256 -->
<queueSize>256</queueSize>
<appender-ref ref="FILE"/>
</appender>
<!-- SkyWalking GRPC 日志收集实现日志中心。注意SkyWalking 8.4.0 版本开始支持 -->
<appender name="GRPC" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<pattern>${PATTERN_DEFAULT}</pattern>
</layout>
</encoder>
</appender>
<!-- 本地环境 -->
<springProfile name="local">
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
<appender-ref ref="GRPC"/> <!-- 本地环境下,如果不想接入 SkyWalking 日志服务,可以注释掉本行 -->
<appender-ref ref="ASYNC"/> <!-- 本地环境下,如果不想打印日志,可以注释掉本行 -->
</root>
</springProfile>
<!-- 其它环境 -->
<springProfile name="dev,test,stage,prod,default">
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
<appender-ref ref="ASYNC"/>
<appender-ref ref="GRPC"/>
</root>
</springProfile>
</configuration>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.capital.dal.mysql.splyAmountCredit.AmountCreditChangeMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.capital.dal.mysql.splyAmountCredit.AmountCreditMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.capital.dal.dao.splyAmtCrdtAppl.AmountCreditApplyDetailMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="getAmountCreditApplyDetailListByApplyId" resultType="cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl.AmountCreditApplyDetailDO" parameterType="java.lang.Long">
select sacad.* from sply_amt_crdt_appl_dtl sacad
<where>
sacad.deleted = 0
<if test="applyId != null">
and sacad.appl_id = #{applyId}
</if>
</where>
</select>
</mapper>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.capital.dal.dao.splyAmtCrdtAppl.AmountCreditApplyMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.capital.dal.dao.splyAmtCrdtAppl.AmountCreditApplySignMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="getAmountCreditApplySignListByApplyId" resultType="cn.iocoder.yudao.module.capital.dal.dataobject.splyAmtCrdtAppl.AmountCreditApplySignDO" parameterType="java.lang.Long">
select sacas.* from sply_amt_crdt_appl_sgn sacas
<where>
sacas.deleted = 0
<if test='applId != null'>
and sacas.appl_id = #{applId}
</if>
</where>
</select>
</mapper>

View File

@@ -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">
<parent>
<artifactId>yudao</artifactId>
<artifactId>dsc-supply</artifactId>
<groupId>cn.iocoder.cloud</groupId>
<version>${revision}</version>
</parent>

View File

@@ -131,21 +131,21 @@
<build>
<!-- 设置构建的 jar 包名 -->
<finalName>${project.artifactId}</finalName>
<plugins>
<!-- 打包 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
<!-- <plugins>-->
<!-- &lt;!&ndash; 打包 &ndash;&gt;-->
<!-- <plugin>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
<!-- <version>${spring.boot.version}</version>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <goals>-->
<!-- <goal>repackage</goal> &lt;!&ndash; 将引入的 jar 打入其中 &ndash;&gt;-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- </plugin>-->
<!-- </plugins>-->
</build>
</project>

View File

@@ -8,7 +8,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
*
* @author ZT
*/
@SpringBootApplication
//@SpringBootApplication
public class CustomsServerApplication {
public static void main(String[] args) {

View File

@@ -1,12 +1,13 @@
package cn.iocoder.yudao.module.customs.controller.admin.customs;
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;
/**

View File

@@ -0,0 +1,10 @@
package cn.iocoder.yudao.module.customs.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 = "customsRpcConfiguration", proxyBeanMethods = false)
@EnableFeignClients(clients = {DeptApi.class})
public class RpcConfiguration {
}

View File

@@ -9,11 +9,9 @@ import org.springframework.security.config.annotation.web.configurers.AuthorizeH
/**
* Customs 模块的 Security 配置
*
* @author ZT
* Template 模块的 Security 配置
*/
@Configuration(proxyBeanMethods = false)
@Configuration("customsSecurityConfiguration")
public class SecurityConfiguration {
@Bean

View File

@@ -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">
<parent>
<artifactId>yudao</artifactId>
<artifactId>dsc-supply</artifactId>
<groupId>cn.iocoder.cloud</groupId>
<version>${revision}</version>
</parent>

View File

@@ -131,21 +131,21 @@
<build>
<!-- 设置构建的 jar 包名 -->
<finalName>${project.artifactId}</finalName>
<plugins>
<!-- 打包 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
<!-- <plugins>-->
<!-- &lt;!&ndash; 打包 &ndash;&gt;-->
<!-- <plugin>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
<!-- <version>${spring.boot.version}</version>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <goals>-->
<!-- <goal>repackage</goal> &lt;!&ndash; 将引入的 jar 打入其中 &ndash;&gt;-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- </plugin>-->
<!-- </plugins>-->
</build>
</project>

View File

@@ -8,7 +8,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
*
* @author ZT
*/
@SpringBootApplication
//@SpringBootApplication
public class ExchangeServerApplication {
public static void main(String[] args) {

View File

@@ -1,12 +1,13 @@
package cn.iocoder.yudao.module.exchange.controller.admin.exchange;
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;
/**

View File

@@ -0,0 +1,10 @@
package cn.iocoder.yudao.module.exchange.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 = "exchangeRpcConfiguration", proxyBeanMethods = false)
@EnableFeignClients(clients = {DeptApi.class})
public class RpcConfiguration {
}

View File

@@ -9,11 +9,9 @@ import org.springframework.security.config.annotation.web.configurers.AuthorizeH
/**
* Exchange 模块的 Security 配置
*
* @author ZT
* Template 模块的 Security 配置
*/
@Configuration(proxyBeanMethods = false)
@Configuration("exchangeSecurityConfiguration")
public class SecurityConfiguration {
@Bean

View File

@@ -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">
<parent>
<artifactId>yudao</artifactId>
<artifactId>dsc-supply</artifactId>
<groupId>cn.iocoder.cloud</groupId>
<version>${revision}</version>
</parent>

View File

@@ -131,21 +131,21 @@
<build>
<!-- 设置构建的 jar 包名 -->
<finalName>${project.artifactId}</finalName>
<plugins>
<!-- 打包 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
<!-- <plugins>-->
<!-- &lt;!&ndash; 打包 &ndash;&gt;-->
<!-- <plugin>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
<!-- <version>${spring.boot.version}</version>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <goals>-->
<!-- <goal>repackage</goal> &lt;!&ndash; 将引入的 jar 打入其中 &ndash;&gt;-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- </plugin>-->
<!-- </plugins>-->
</build>
</project>

Some files were not shown because too many files have changed in this diff Show More