From 2b25fcc93804656bf51d33362557521aa6f136e7 Mon Sep 17 00:00:00 2001
From: fanzongzhe <285169773@qq.com>
Date: Thu, 6 Jul 2023 18:04:30 +0800
Subject: [PATCH] =?UTF-8?q?=E9=87=91=E8=9E=8D=E4=BA=A7=E5=93=81=E6=94=BF?=
=?UTF-8?q?=E7=AD=96=E6=8A=A5=E5=A4=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../LoanFinPolicyApplyDto.java | 53 +++++
.../LoanFinPolicyApplyInitListVo.java | 47 ++++
.../LoanFinPolicyApplyInitVo.java | 41 ++++
.../LoanFinPolicyApplyQuery.java | 38 +++
.../LoanFinPolicyApplyVo.java | 44 ++++
.../LoanFinPolicyRecordApply.java | 60 +++++
.../LoanFinPolicyRecordApplyFeign.java | 76 ++++++
...LoanFinPolicyRecordApplyFeignFallback.java | 34 +++
.../LoanFinPolicyRecordApplyMapper.java | 20 ++
.../LoanFinPolicyRecordApplyMapper.xml | 19 ++
.../LoanFinPolicyRecordApplyRest.java | 58 +++++
.../LoanFinPolicyRecordApplyService.java | 216 ++++++++++++++++++
12 files changed, 706 insertions(+)
create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyDto.java
create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyInitListVo.java
create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyInitVo.java
create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyQuery.java
create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyVo.java
create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyRecordApply.java
create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyFeign.java
create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyFeignFallback.java
create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyMapper.java
create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyMapper.xml
create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyRest.java
create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyService.java
diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyDto.java
new file mode 100644
index 0000000000..86a561c467
--- /dev/null
+++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyDto.java
@@ -0,0 +1,53 @@
+package com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.yxt.common.core.dto.Dto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Project: anrui-base(安瑞基础信息模块)
+ * File: BaseFinBankDto.java
+ * Class: com.yxt.anrui.base.api.basefinbank.BaseFinBankDto
+ * Description: 资方信息表 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-09-10 11:31:46
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@ApiModel(value = "资方信息表 数据传输对象", description = "资方信息表 数据传输对象")
+@Data
+public class LoanFinPolicyApplyDto implements Dto {
+ private String sid;
+ private String userSid;
+ @ApiModelProperty("申请分公司")
+ private String applyCompany;
+ @ApiModelProperty("申请部门")
+ private String department;
+ @ApiModelProperty("申请人sid")
+ private String applicantSid;
+ @ApiModelProperty("申请人")
+ private String applicant;
+ @ApiModelProperty("申请日期")
+ private Date applyDate;
+ @ApiModelProperty("申请金融产品政策sid")
+ private List policySids = new ArrayList<>();
+ @ApiModelProperty("附件路径")
+ private List annexPaths = new ArrayList<>();
+ @ApiModelProperty("创建组织sid")
+ private String createOrgSid;
+ @ApiModelProperty("创建组织名")
+ private String createOrgName;
+ @ApiModelProperty("使用组织全路径")
+ private String orgSidPath;
+}
diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyInitListVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyInitListVo.java
new file mode 100644
index 0000000000..eacb4c6215
--- /dev/null
+++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyInitListVo.java
@@ -0,0 +1,47 @@
+package com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply;
+
+import com.yxt.common.core.vo.Vo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author Administrator
+ * @description
+ * @date 2023/7/6 15:49
+ */
+@Data
+public class LoanFinPolicyApplyInitListVo implements Vo {
+
+ @ApiModelProperty("政策sid")
+ private String policySid;
+ @ApiModelProperty("政策名称")
+ private String policyName;
+ @ApiModelProperty("车辆功能value")
+ private String vehTypeValue;
+ @ApiModelProperty("期数")
+ private int period;
+ @ApiModelProperty("标准年利率(%)")
+ private String yearRatio;
+ @ApiModelProperty("服务费类型value")
+ private String serviceAmountTypeValue;
+ @ApiModelProperty("服务费")
+ private String serviceAmount;
+ @ApiModelProperty("最低首付比例(%)")
+ private String downPayRatioLeast;
+ @ApiModelProperty("单车意外险")
+ private String vehAccidentAmount;
+ @ApiModelProperty("保险保证金")
+ private String depositPremium;
+ @ApiModelProperty("落户保证金")
+ private BigDecimal depositSettle;
+ @ApiModelProperty("名义/留购价款")
+ private BigDecimal nominalPrice;
+ @ApiModelProperty("有效期至")
+ private String validDateTo;
+ @ApiModelProperty("是否有其他融政策")
+ private boolean isOtherPolicy;
+
+}
diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyInitVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyInitVo.java
new file mode 100644
index 0000000000..ce5a30e64f
--- /dev/null
+++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyInitVo.java
@@ -0,0 +1,41 @@
+package com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yxt.common.core.vo.Vo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Administrator
+ * @description
+ * @date 2023/7/6 15:38
+ */
+@Data
+public class LoanFinPolicyApplyInitVo implements Vo {
+ private String sid;
+ private String userSid;
+ @ApiModelProperty("申请分公司")
+ private String applyCompany;
+ @ApiModelProperty("申请部门")
+ private String department;
+ @ApiModelProperty("申请人")
+ private String applicant;
+ @ApiModelProperty("申请日期")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date applyDate;
+ @ApiModelProperty("任务id")
+ private String taskId;
+ @ApiModelProperty("实例id")
+ private String procInstId;
+ @ApiModelProperty("申请金融产品政策sid")
+ private List policySids = new ArrayList<>();
+ @ApiModelProperty("附件路径")
+ private List annexPaths = new ArrayList<>();
+ @ApiModelProperty("使用组织全路径")
+ private String orgSidPath;
+ private List policyList = new ArrayList<>();
+}
diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyQuery.java
new file mode 100644
index 0000000000..a1fcc16c69
--- /dev/null
+++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyQuery.java
@@ -0,0 +1,38 @@
+package com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply;
+
+
+import com.yxt.common.core.query.Query;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Project: anrui-base(安瑞基础信息模块)
+ * File: BaseFinBankQuery.java
+ * Class: com.yxt.anrui.base.api.basefinbank.BaseFinBankQuery
+ * Description: 资方信息表 查询条件.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-09-10 11:31:46
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@ApiModel(value = "资方信息表 查询条件", description = "资方信息表 查询条件")
+@Data
+public class LoanFinPolicyApplyQuery implements Query {
+
+ @ApiModelProperty("分公司")
+ private String applyCompany;
+ @ApiModelProperty("申请部门")
+ private String department;
+ @ApiModelProperty("申请人")
+ private String applicant;
+ @ApiModelProperty("创建组织sid")
+ private String createOrgSid;
+ @ApiModelProperty("开始日期")
+ private String createStartTime;
+ @ApiModelProperty("结束日期")
+ private String createEndTime;
+}
diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyVo.java
new file mode 100644
index 0000000000..d7274e8282
--- /dev/null
+++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyApplyVo.java
@@ -0,0 +1,44 @@
+package com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.yxt.common.core.vo.Vo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * Project: anrui-base(安瑞基础信息模块)
+ * File: BaseFinBankVo.java
+ * Class: com.yxt.anrui.base.api.basefinbank.BaseFinBankVo
+ * Description: 资方信息表 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-09-10 11:31:46
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@ApiModel(value = "金融产品政策报备 视图数据对象", description = "金融产品政策报备 视图数据对象")
+@Data
+public class LoanFinPolicyApplyVo implements Vo {
+ private String sid;
+ @ApiModelProperty("申请分公司")
+ private String applyCompany;
+ @ApiModelProperty("申请部门")
+ private String department;
+ @ApiModelProperty("申请人")
+ private String applicant;
+ @ApiModelProperty("申请日期")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date applyDate;
+ @ApiModelProperty("流程状态")
+ private String nodeState;
+ @ApiModelProperty("备注")
+ private String remarks;
+
+}
diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyRecordApply.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyRecordApply.java
new file mode 100644
index 0000000000..01358652db
--- /dev/null
+++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyRecordApply.java
@@ -0,0 +1,60 @@
+package com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.yxt.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * File: BaseFinBank.java
+ * Class: com.yxt.anrui.base.api.basefinbank.BaseFinBank
+ * Description: 金融产品政策报备.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-09-10 11:31:46
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@ApiModel(value = "金融产品政策报备", description = "金融产品政策报备")
+@TableName("loan_fin_policy_record_apply")
+@Data
+public class LoanFinPolicyRecordApply extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("申请分公司")
+ private String applyCompany;
+ @ApiModelProperty("申请部门")
+ private String department;
+ @ApiModelProperty("申请人sid")
+ private String applicantSid;
+ @ApiModelProperty("申请人")
+ private String applicant;
+ @ApiModelProperty("申请日期")
+ private Date applyDate;
+ @ApiModelProperty("申请金融产品政策sid")
+ private String policySid;
+ @ApiModelProperty("附件路径")
+ private String annexPath;
+ @ApiModelProperty("流程定义的id")
+ private String procDefId;
+ @ApiModelProperty("环节定义的sid")
+ private String nodeSid;
+ @ApiModelProperty("流程实例的id")
+ private String procInstId;
+ @ApiModelProperty("流程状态")
+ private String nodeState;
+ @ApiModelProperty("任务id")
+ private String taskId;
+ @ApiModelProperty("创建组织sid")
+ private String createOrgSid;
+ @ApiModelProperty("创建组织名")
+ private String createOrgName;
+ @ApiModelProperty("使用组织全路径")
+ private String orgSidPath;
+
+}
diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyFeign.java
new file mode 100644
index 0000000000..cddd9bd36f
--- /dev/null
+++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyFeign.java
@@ -0,0 +1,76 @@
+package com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply;
+
+import com.yxt.anrui.riskcenter.api.loanfinbank.LoanFinBankInitVo;
+import com.yxt.anrui.riskcenter.api.loanfinbank.LoanFinBankQuery;
+import com.yxt.anrui.riskcenter.api.loanfinbank.LoanFinBankVo;
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * File: BaseFinBankFeign.java
+ * Class: com.yxt.anrui.base.api.basefinbank.BaseFinBankFeign
+ * Description: 金融产品政策报备.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-09-10 11:31:46
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Api(tags = "金融产品政策报备")
+@FeignClient(
+ contextId = "anrui-riskcenter-LoanFinPolicyRecordApply",
+ name = "anrui-riskcenter",
+ path = "v1/loanfinpolicyrecordapply",
+ fallback = LoanFinPolicyRecordApplyFeignFallback.class)
+public interface LoanFinPolicyRecordApplyFeign {
+
+ /**
+ * 新增
+ *
+ * @param dto
+ */
+ @ApiOperation("新增修改")
+ @PostMapping("/saveOrUpdate")
+ public ResultBean save(@Valid @RequestBody LoanFinPolicyApplyDto dto);
+
+ /**
+ * 根据条件分页查询数据的列表(已测试)
+ *
+ * @param pq
+ */
+ @ApiOperation("根据条件分页查询数据的列表")
+ @PostMapping("/listPage")
+ public ResultBean> listPage(@RequestBody PagerQuery pq);
+
+
+ /**
+ * 金融产品政策报备初始化
+ *
+ * @param dto
+ */
+ @ApiOperation("金融产品政策报备保存初始化")
+ @GetMapping("/policyRecordInit")
+ @ResponseBody
+ public ResultBean policyRecordInit(@RequestBody LoanFinPolicyApplyDto dto);
+
+ /**
+ * 金融产品政策报备初始化
+ *
+ * @param sid
+ */
+ @ApiOperation("金融产品政策报备编辑初始化")
+ @GetMapping("/fetchDetailsBySid/{sid}")
+ @ResponseBody
+ public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid);
+
+
+}
\ No newline at end of file
diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyFeignFallback.java
new file mode 100644
index 0000000000..544b4883d4
--- /dev/null
+++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyFeignFallback.java
@@ -0,0 +1,34 @@
+package com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply;
+
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import org.springframework.stereotype.Component;
+
+
+
+@Component
+public class LoanFinPolicyRecordApplyFeignFallback implements LoanFinPolicyRecordApplyFeign {
+
+
+ @Override
+ public ResultBean save(LoanFinPolicyApplyDto dto) {
+ return null;
+ }
+
+ @Override
+ public ResultBean> listPage(PagerQuery pq) {
+ return null;
+ }
+
+ @Override
+ public ResultBean policyRecordInit(LoanFinPolicyApplyDto dto) {
+ return null;
+ }
+
+ @Override
+ public ResultBean fetchDetailsBySid(String sid) {
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyMapper.java
new file mode 100644
index 0000000000..eec44da5bf
--- /dev/null
+++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyMapper.java
@@ -0,0 +1,20 @@
+package com.yxt.anrui.riskcenter.biz.loanfinpolicyrecordapply;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply.LoanFinPolicyApplyVo;
+import com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply.LoanFinPolicyRecordApply;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2023/7/6
+ **/
+@Mapper
+public interface LoanFinPolicyRecordApplyMapper extends BaseMapper {
+ IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw);
+}
diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyMapper.xml
new file mode 100644
index 0000000000..66241f0f17
--- /dev/null
+++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyMapper.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyRest.java
new file mode 100644
index 0000000000..15397844c9
--- /dev/null
+++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyRest.java
@@ -0,0 +1,58 @@
+package com.yxt.anrui.riskcenter.biz.loanfinpolicyrecordapply;
+
+import com.yxt.anrui.riskcenter.api.loanfinbank.LoanFinBankVo;
+import com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply.*;
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2023/7/6
+ **/
+@Api(tags = "金融产品政策报备")
+@RestController
+@RequestMapping("v1/loanfinpolicyrecordapply")
+public class LoanFinPolicyRecordApplyRest implements LoanFinPolicyRecordApplyFeign {
+
+ @Autowired
+ private LoanFinPolicyRecordApplyService loanFinPolicyRecordApplyService;
+
+ @Override
+ public ResultBean save(LoanFinPolicyApplyDto dto) {
+ ResultBean rb = ResultBean.fireFail();
+ int i = loanFinPolicyRecordApplyService.saveOrUpdateRecord(dto);
+ if (i > 0) {
+ return rb.success().setMsg("操作成功");
+ }
+ return rb.success().setMsg("操作失败");
+ }
+
+ @Override
+ public ResultBean> listPage(PagerQuery pq) {
+ ResultBean> rb = ResultBean.fireFail();
+ PagerVo pv = loanFinPolicyRecordApplyService.listPageVo(pq);
+ return rb.success().setData(pv);
+ }
+
+ @Override
+ public ResultBean policyRecordInit(LoanFinPolicyApplyDto dto) {
+ ResultBean rb = ResultBean.fireFail();
+ LoanFinPolicyApplyInitVo vo = loanFinPolicyRecordApplyService.policyRecordInit(dto);
+ return rb.success().setData(vo);
+ }
+
+ @Override
+ public ResultBean fetchDetailsBySid(String sid) {
+ ResultBean rb = ResultBean.fireFail();
+ LoanFinPolicyApplyInitVo vo = loanFinPolicyRecordApplyService.fetchDetailsBySid(sid);
+ return rb.success().setData(vo);
+ }
+
+
+}
diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyService.java
new file mode 100644
index 0000000000..721b1554a6
--- /dev/null
+++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicyrecordapply/LoanFinPolicyRecordApplyService.java
@@ -0,0 +1,216 @@
+package com.yxt.anrui.riskcenter.biz.loanfinpolicyrecordapply;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
+import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
+import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
+import com.yxt.anrui.riskcenter.api.loanfinbank.LoanFinBank;
+import com.yxt.anrui.riskcenter.api.loanfinbank.LoanFinBankQuery;
+import com.yxt.anrui.riskcenter.api.loanfinbank.LoanFinBankVo;
+import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy;
+import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy;
+import com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply.*;
+import com.yxt.anrui.riskcenter.biz.loanfinotherPolicy.LoanFinOtherPolicyService;
+import com.yxt.anrui.riskcenter.biz.loanfinpolicy.LoanFinPolicyService;
+import com.yxt.common.base.config.component.FileUploadComponent;
+import com.yxt.common.base.service.MybatisBaseService;
+import com.yxt.common.base.utils.PagerUtil;
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2023/7/6
+ **/
+@Service
+public class LoanFinPolicyRecordApplyService extends MybatisBaseService {
+
+ @Autowired
+ private SysStaffOrgFeign sysStaffOrgFeign;
+ @Autowired
+ private SysOrganizationFeign sysOrganizationFeign;
+ @Autowired
+ private FileUploadComponent fileUploadComponent;
+ @Autowired
+ private LoanFinPolicyService loanFinPolicyService;
+ @Autowired
+ private LoanFinOtherPolicyService loanFinOtherPolicyService;
+
+
+ /**
+ * 保存新增
+ *
+ * @param dto
+ * @return
+ */
+ public int saveOrUpdateRecord(LoanFinPolicyApplyDto dto) {
+ if (StringUtils.isNotBlank(dto.getSid())) {
+ String sid = dto.getSid();
+ LoanFinPolicyRecordApply entity = fetchBySid(sid);
+ StringBuffer sb = new StringBuffer();
+ BeanUtil.copyProperties(dto, entity, "id", "sid");
+ List policySids = dto.getPolicySids();
+ String policySid = String.join(",", policySids);
+ entity.setPolicySid(policySid);
+ if (!dto.getAnnexPaths().isEmpty()) {
+ String urlPrefix = fileUploadComponent.getUrlPrefix();
+ for (String filePath : dto.getAnnexPaths()) {
+ String path = filePath.substring(urlPrefix.length());
+ sb.append(path).append(",");
+ }
+ sb.delete(sb.length() - 1, sb.length());
+ entity.setAnnexPath(sb.toString());
+ }
+ int i = baseMapper.updateById(entity);
+ return i;
+ } else {
+ //新增
+ LoanFinPolicyRecordApply entity = new LoanFinPolicyRecordApply();
+ StringBuffer sb = new StringBuffer();
+ BeanUtil.copyProperties(dto, entity, "id", "sid");
+ String userSid = dto.getUserSid();
+ ResultBean orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgSidPath());
+ if (orgSidByPath.getSuccess()) {
+ String userOrgSid = orgSidByPath.getData();
+ entity.setCreateOrgSid(userOrgSid);
+ ResultBean organizationVo = sysOrganizationFeign.fetchBySid(userOrgSid);
+ if (organizationVo.getSuccess()) {
+ SysOrganizationVo organizationVoData = organizationVo.getData();
+ if (null != organizationVoData) {
+ entity.setCreateOrgName(organizationVoData.getName());
+ }
+ }
+ }
+ entity.setCreateBySid(userSid);
+ entity.setApplicantSid(userSid);
+ List policySids = dto.getPolicySids();
+ String policySid = String.join(",", policySids);
+ entity.setPolicySid(policySid);
+ if (!dto.getAnnexPaths().isEmpty()) {
+ String urlPrefix = fileUploadComponent.getUrlPrefix();
+ for (String filePath : dto.getAnnexPaths()) {
+ String path = filePath.substring(urlPrefix.length());
+ sb.append(path).append(",");
+ }
+ sb.delete(sb.length() - 1, sb.length());
+ entity.setAnnexPath(sb.toString());
+ }
+ entity.setNodeState("待提交");
+ int i = baseMapper.insert(entity);
+ return i;
+ }
+ }
+
+ private QueryWrapper createQueryWrapper(LoanFinPolicyApplyQuery query) {
+ // todo: 这里根据具体业务调整查询条件
+ // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
+ QueryWrapper qw = new QueryWrapper<>();
+ if (StringUtils.isNotBlank(query.getApplyCompany())) {
+ qw.like("applyCompany", query.getApplyCompany());
+ }
+ if (StringUtils.isNotBlank(query.getDepartment())) {
+ qw.like("department", query.getDepartment());
+ }
+ if (StringUtils.isNotBlank(query.getApplicant())) {
+ qw.like("applicant", query.getApplicant());
+ }
+ String createStartTime = query.getCreateStartTime();
+ String createEndTime = query.getCreateEndTime();
+ qw.apply(org.apache.commons.lang3.StringUtils.isNotEmpty(createStartTime), "date_format (applyDate,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
+ apply(org.apache.commons.lang3.StringUtils.isNotEmpty(createEndTime), "date_format (applyDate,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
+ );
+ qw.eq("createOrgSid", query.getCreateOrgSid());
+ qw.eq("isDelete", 0);
+ qw.orderByDesc("createTime");
+ return qw;
+ }
+
+ /**
+ * 分页列表
+ *
+ * @param pq
+ * @return
+ */
+ public PagerVo listPageVo(PagerQuery pq) {
+ LoanFinPolicyApplyQuery query = pq.getParams();
+ QueryWrapper qw = createQueryWrapper(query);
+ IPage page = PagerUtil.queryToPage(pq);
+ IPage pagging = baseMapper.selectPageVo(page, qw);
+ PagerVo p = PagerUtil.pageToVo(pagging, null);
+ return p;
+ }
+
+ /**
+ * 保存初始化
+ *
+ * @param dto
+ * @return
+ */
+ public LoanFinPolicyApplyInitVo policyRecordInit(LoanFinPolicyApplyDto dto) {
+ LoanFinPolicyApplyInitVo vo = new LoanFinPolicyApplyInitVo();
+ BeanUtil.copyProperties(dto, vo);
+ vo.setApplyDate(new Date());
+ List policyList = new ArrayList<>();
+ List policySids = dto.getPolicySids();
+ for (String policySid : policySids) {
+ LoanFinPolicyApplyInitListVo initVo = new LoanFinPolicyApplyInitListVo();
+ LoanFinPolicy loanFinPolicy = loanFinPolicyService.fetchBySid(policySid);
+ BeanUtil.copyProperties(loanFinPolicy, initVo);
+ initVo.setPolicySid(policySid);
+ List otherPolicy = loanFinOtherPolicyService.getOtherPolicyByMainSid(policySid);
+ otherPolicy.removeAll(Collections.singleton(null));
+ initVo.setOtherPolicy(!otherPolicy.isEmpty());
+ policyList.add(initVo);
+ }
+ vo.setPolicyList(policyList);
+ return vo;
+ }
+
+ public LoanFinPolicyApplyInitVo fetchDetailsBySid(String sid) {
+ LoanFinPolicyApplyInitVo vo = new LoanFinPolicyApplyInitVo();
+ LoanFinPolicyRecordApply entity = fetchBySid(sid);
+ String urlPrefix = fileUploadComponent.getUrlPrefix();
+ BeanUtil.copyProperties(entity, vo);
+ String policySid = entity.getPolicySid();
+ List pSids = new ArrayList<>();
+ String[] policySids = policySid.split(",");
+ for (String s : policySids) {
+ pSids.add(s);
+ }
+ vo.setPolicySids(pSids);
+ List policyList = new ArrayList<>();
+ for (String psid : policySids) {
+ LoanFinPolicyApplyInitListVo initVo = new LoanFinPolicyApplyInitListVo();
+ LoanFinPolicy loanFinPolicy = loanFinPolicyService.fetchBySid(psid);
+ BeanUtil.copyProperties(loanFinPolicy, initVo);
+ initVo.setPolicySid(psid);
+ List otherPolicy = loanFinOtherPolicyService.getOtherPolicyByMainSid(policySid);
+ otherPolicy.removeAll(Collections.singleton(null));
+ initVo.setOtherPolicy(!otherPolicy.isEmpty());
+ policyList.add(initVo);
+ }
+ if (StringUtils.isNotBlank(entity.getAnnexPath())) {
+ String annexPath = entity.getAnnexPath();
+ String[] splitPath = annexPath.split(",");
+ List annexPaths = new ArrayList<>();
+ for (String path : splitPath) {
+ annexPaths.add(urlPrefix + path);
+ }
+ vo.setAnnexPaths(annexPaths);
+ }
+ vo.setPolicyList(policyList);
+ return vo;
+ }
+}