From a59a131e7da54fbb120ae920c8cb3403bdbd474f Mon Sep 17 00:00:00 2001 From: fanzongzhe <285169773@qq.com> Date: Fri, 10 Nov 2023 17:11:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E8=BF=98=E6=AC=BE=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E6=9C=AA=E5=88=92=E6=89=A3=E5=88=86=E9=A1=B5=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E3=80=81=E8=BF=98=E6=AC=BE=E8=AE=B0=E5=BD=95=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E6=A0=A1=E9=AA=8C=E8=A7=84=E5=88=99=E3=80=81=E5=BC=80?= =?UTF-8?q?=E5=8F=91=E5=88=92=E6=89=A3=E7=94=B3=E8=AF=B7=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/loanbuckleapply/LoanBuckleApply.java | 49 ++ .../loanbuckleapply/LoanBuckleApplyFeign.java | 35 ++ .../LoanBuckleApplyFeignFallback.java | 19 + .../LoanBuckleApplyRecord.java | 27 ++ .../LoanBuckleApplyRecordFeign.java | 22 + .../LoanBuckleApplyRecordFeignFallback.java | 11 + .../riskcenter/api/loanfile/LoanFileEnum.java | 1 + .../LoanRepaymentHistoryFeign.java | 10 +- .../LoanRepaymentHistoryFeignFallback.java | 10 +- .../loanrepaymenthistory/ReturnExcelInfo.java | 1 + .../LoanBuckleApplyMapper.java | 22 + .../loanbuckleapply/LoanBuckleApplyMapper.xml | 5 + .../loanbuckleapply/LoanBuckleApplyRest.java | 28 ++ .../LoanBuckleApplyService.java | 75 ++++ .../LoanBuckleApplyRecordMapper.java | 12 + .../LoanBuckleApplyRecordMapper.xml | 5 + .../LoanBuckleApplyRecordRest.java | 16 + .../LoanBuckleApplyRecordService.java | 17 + .../LoanRepaymentHistoryMapper.java | 8 + .../LoanRepaymentHistoryMapper.xml | 34 ++ .../LoanRepaymentHistoryRest.java | 15 +- .../LoanRepaymentHistoryService.java | 423 ++++++++++++++++-- 22 files changed, 794 insertions(+), 51 deletions(-) create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApply.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeign.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeignFallback.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecord.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecordFeign.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecordFeignFallback.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.xml create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyRest.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.xml create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordRest.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordService.java diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApply.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApply.java new file mode 100644 index 0000000000..18667cb3f4 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApply.java @@ -0,0 +1,49 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapply; + +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; + +/** + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "划扣申请", description = "划扣申请") +@TableName("loan_buckle_apply") +@Data +public class LoanBuckleApply extends BaseEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("申请人") + private String applyName; // 申请人 + @ApiModelProperty("申请日期") + private Date applyDate; // 申请日期 + @ApiModelProperty("申请编号") + private String applyNo; + @ApiModelProperty("申请部门") + private String dept; + @ApiModelProperty("申请部门sid") + private String deptSid; + @ApiModelProperty("使用组织sid") + private String useOrgSid; // 使用组织sid + @ApiModelProperty("使用组织名称") + private String useOrgName; // 使用组织名称 + @ApiModelProperty("流程定义的id") + private String procDefId; // 流程定义的id + @ApiModelProperty("环节定义的sid") + private String nodeSid; // 环节定义的sid + @ApiModelProperty("流程实例的sid") + private String procInstId; // 流程实例的sid + @ApiModelProperty("流程状态") + private String nodeState; // 流程状态 + @ApiModelProperty("taskId") + private String taskId; // taskId + @ApiModelProperty("申请人组织路径") + private String orgSidPath; // 申请人组织路径 + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeign.java new file mode 100644 index 0000000000..cf48fae1a4 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeign.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapply; + +import com.yxt.anrui.riskcenter.api.loancustomerrecord.*; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.*; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*; +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 io.swagger.annotations.ApiParam; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + + +/** + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "划扣申请") +@FeignClient( + contextId = "anrui-riskcenter-LoanBuckleApply", + name = "anrui-riskcenter", + path = "v1/loanbuckleapply", + fallback = LoanBuckleApplyFeignFallback.class) +public interface LoanBuckleApplyFeign { + + + +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeignFallback.java new file mode 100644 index 0000000000..45f13442a0 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeignFallback.java @@ -0,0 +1,19 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapply; + + +import com.yxt.anrui.riskcenter.api.loancustomerrecord.*; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.*; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*; +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; + +import java.util.List; + + +@Component +public class LoanBuckleApplyFeignFallback implements LoanBuckleApplyFeign { + + +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecord.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecord.java new file mode 100644 index 0000000000..03cc1a9630 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecord.java @@ -0,0 +1,27 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord; + +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; + +/** + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "划扣申请还款记录", description = "划扣申请还款记录") +@TableName("loan_buckle_apply_record") +@Data +public class LoanBuckleApplyRecord extends BaseEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("申请表sid") + private String mainSid; + @ApiModelProperty("还款记录sid") + private String repaymentHistorySid; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecordFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecordFeign.java new file mode 100644 index 0000000000..912fd13f7b --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecordFeign.java @@ -0,0 +1,22 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord; + +import io.swagger.annotations.Api; +import org.springframework.cloud.openfeign.FeignClient; + + +/** + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "划扣申请还款记录") +@FeignClient( + contextId = "anrui-riskcenter-LoanBuckleApplyRecord", + name = "anrui-riskcenter", + path = "v1/loanbuckleapplyrecord", + fallback = LoanBuckleApplyRecordFeignFallback.class) +public interface LoanBuckleApplyRecordFeign { + + + +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecordFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecordFeignFallback.java new file mode 100644 index 0000000000..0b9e4720b9 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecordFeignFallback.java @@ -0,0 +1,11 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord; + + +import org.springframework.stereotype.Component; + + +@Component +public class LoanBuckleApplyRecordFeignFallback implements LoanBuckleApplyRecordFeign { + + +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java index 409dfbb51c..b34bd14208 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java @@ -20,6 +20,7 @@ public enum LoanFileEnum { INFO_LETTER("011", "欠款客户备案信息查询授权书"), AGREEMENT("012", "车队挂靠协议"), OTHER_INFO("013", "欠款客户备案其他资料"), + BUCKLE_APPLY("014", "划扣申请附件"), ; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeign.java index d09b1e49c7..16f5015795 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeign.java @@ -14,6 +14,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.text.ParseException; +import java.util.List; /** @@ -31,7 +32,7 @@ public interface LoanRepaymentHistoryFeign { @ApiOperation("当月还款记录列表") @PostMapping("/monthListPage") - public ResultBean> listPage(@RequestBody PagerQuery pq); + public ResultBean> monthListPage(@RequestBody PagerQuery pq); @ApiOperation("保存还款记录") @PostMapping("/saveHistory") @@ -56,7 +57,12 @@ public interface LoanRepaymentHistoryFeign { @ApiOperation(value = "导入") @PostMapping("/getExcelInfo") @ResponseBody - public ResultBean getExcelInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request) throws IOException, ParseException; + public ResultBean> getExcelInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request) throws IOException, ParseException; + + @ApiOperation("保存还款记录") + @PostMapping("/saveRecords") + @ResponseBody + public ResultBean saveRecords(@RequestBody List dto); @ApiOperation(value = "下载模板") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeignFallback.java index 2b80821201..a82b9accc6 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeignFallback.java @@ -9,6 +9,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.text.ParseException; +import java.util.List; /** * @author Administrator @@ -20,7 +21,7 @@ public class LoanRepaymentHistoryFeignFallback implements LoanRepaymentHistoryFe @Override - public ResultBean> listPage(PagerQuery pq) { + public ResultBean> monthListPage(PagerQuery pq) { return null; } @@ -45,7 +46,12 @@ public class LoanRepaymentHistoryFeignFallback implements LoanRepaymentHistoryFe } @Override - public ResultBean getExcelInfo(MultipartFile file, HttpServletRequest request) throws IOException, ParseException { + public ResultBean> getExcelInfo(MultipartFile file, HttpServletRequest request) throws IOException, ParseException { + return null; + } + + @Override + public ResultBean saveRecords(List dto) { return null; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/ReturnExcelInfo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/ReturnExcelInfo.java index 20b3bac4e3..814cd051be 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/ReturnExcelInfo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/ReturnExcelInfo.java @@ -13,5 +13,6 @@ import java.util.List; @Data public class ReturnExcelInfo { private String checkInfo; + private String checkInfo2; private List infos = new ArrayList<>(); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.java new file mode 100644 index 0000000000..2e04ce9b18 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.java @@ -0,0 +1,22 @@ +package com.yxt.anrui.riskcenter.biz.loanbuckleapply; + +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.loanbuckleapply.LoanBuckleApply; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.LoanCustomerRecord; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.LoanCustomerRecordDetailsVo; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.LoanCustomerRecordVo; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; + +import java.util.Map; + + +@Mapper +public interface LoanBuckleApplyMapper extends BaseMapper { + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.xml new file mode 100644 index 0000000000..ed8ee0b353 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyRest.java new file mode 100644 index 0000000000..0646aac5d2 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyRest.java @@ -0,0 +1,28 @@ +package com.yxt.anrui.riskcenter.biz.loanbuckleapply; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.flowable.api.utils.ProcDefEnum; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApplyFeign; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.*; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.*; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*; +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; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + + +@Api(tags = "划扣申请") +@RestController +@RequestMapping("v1/loanbuckleapply") +public class LoanBuckleApplyRest implements LoanBuckleApplyFeign { + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java new file mode 100644 index 0000000000..093a389f0a --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java @@ -0,0 +1,75 @@ +package com.yxt.anrui.riskcenter.biz.loanbuckleapply; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.yxt.anrui.base.api.basedistributorapply.BaseDistributorApplyFeign; +import com.yxt.anrui.base.api.basedistributorapply.BaseSalesManger; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo; +import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingDetailsVo; +import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingDto; +import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingFeign; +import com.yxt.anrui.flowable.api.flow.FlowableFeign; +import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; +import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; +import com.yxt.anrui.flowable.api.flow2.FlowFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; +import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; +import com.yxt.anrui.flowable.api.utils.ProcDefEnum; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.portal.api.sysorganization.*; +import com.yxt.anrui.portal.api.sysparameter.SysParameterEnum; +import com.yxt.anrui.portal.api.sysparameter.SysParameterFeign; +import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; +import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; +import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; +import com.yxt.anrui.portal.api.sysuser.SysUserFeign; +import com.yxt.anrui.portal.api.sysuser.SysUserVo; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApply; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.*; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.*; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*; +import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.AppStaffVo; +import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.LoanCustomerRecordStaff; +import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.LoanCustomerRecordStaffDto; +import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.LoanCustomerRecordStaffVo; +import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; +import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; +import com.yxt.anrui.riskcenter.biz.loancustomerrecordstaff.LoanCustomerRecordStaffService; +import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; +import com.yxt.common.base.config.component.DocPdfComponent; +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 com.yxt.messagecenter.api.message.MessageFeign; +import com.yxt.messagecenter.api.message.MessageFlowVo; +import com.yxt.messagecenter.api.message.MessageFlowableQuery; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.*; +import java.util.stream.Collectors; + +/** + * @description: + * @author: fzz + * @date: 2023/7/6 + **/ +@Service +public class LoanBuckleApplyService extends MybatisBaseService { + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.java new file mode 100644 index 0000000000..1b628691f5 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApply; +import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord; +import org.apache.ibatis.annotations.Mapper; + + +@Mapper +public interface LoanBuckleApplyRecordMapper extends BaseMapper { + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.xml new file mode 100644 index 0000000000..ff8e6ff6bf --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordRest.java new file mode 100644 index 0000000000..fd45a4a09c --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordRest.java @@ -0,0 +1,16 @@ +package com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord; + +import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApplyFeign; +import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecordFeign; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +@Api(tags = "划扣申请还款记录") +@RestController +@RequestMapping("v1/loanbuckleapplyrecord") +public class LoanBuckleApplyRecordRest implements LoanBuckleApplyRecordFeign { + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordService.java new file mode 100644 index 0000000000..174ab2ef92 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordService.java @@ -0,0 +1,17 @@ +package com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord; + +import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApply; +import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord; +import com.yxt.common.base.service.MybatisBaseService; +import org.springframework.stereotype.Service; + +/** + * @description: + * @author: fzz + * @date: 2023/7/6 + **/ +@Service +public class LoanBuckleApplyRecordService extends MybatisBaseService { + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java index b5dc6bf4df..6e48ab07cc 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java @@ -1,8 +1,12 @@ package com.yxt.anrui.riskcenter.biz.loanrepaymenthistory; +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.loanrepaymenthistory.LoanRepaymentHistory; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryUpdate; +import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryVo; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -24,4 +28,8 @@ public interface LoanRepaymentHistoryMapper extends BaseMapper selHistoryByPlanSid(@Param("planSid") String planSid); LoanRepaymentHistoryUpdate updateRecordInfo(String sid); + + IPage monthListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + List selByBankNoAndActDate(@Param("bankContractNo") String bankContractNo, @Param("realReturnTime") String realReturnTime); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml index 5440bd86d4..872a0100d4 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml @@ -36,4 +36,38 @@ where planDetailSid = #{planSid} and buckleKey = '004' + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryRest.java index fbd8926421..d20165f7d4 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryRest.java @@ -1,6 +1,7 @@ package com.yxt.anrui.riskcenter.biz.loanrepaymenthistory; +import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.*; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsFeign; @@ -20,6 +21,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.URLEncoder; import java.text.ParseException; +import java.util.List; /** * @description: @@ -38,8 +40,10 @@ public class LoanRepaymentHistoryRest implements LoanRepaymentHistoryFeign { private HttpServletResponse response; @Override - public ResultBean> listPage(PagerQuery pq) { - return null; + public ResultBean> monthListPage(PagerQuery pq) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = loanRepaymentHistoryService.monthListPage(pq); + return rb.success().setData(pv); } @Override @@ -63,10 +67,15 @@ public class LoanRepaymentHistoryRest implements LoanRepaymentHistoryFeign { } @Override - public ResultBean getExcelInfo(MultipartFile file, HttpServletRequest request) throws IOException, ParseException { + public ResultBean> getExcelInfo(MultipartFile file, HttpServletRequest request) throws IOException, ParseException { return loanRepaymentHistoryService.getExcelInfo(file, request, response); } + @Override + public ResultBean saveRecords(List dto) { + return loanRepaymentHistoryService.saveRecords(dto); + } + @Override public void downloadExcel() { try { diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java index ec8263402c..4686b64171 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java @@ -2,14 +2,24 @@ package com.yxt.anrui.riskcenter.biz.loanrepaymenthistory; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateTime; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.anrui.base.api.basemodelmodprice.BaseModelModpriceImportReturn; import com.yxt.anrui.base.api.basemodelmodprice.BaseModelModpriceImportVo; +import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; +import com.yxt.anrui.portal.api.sysuser.SysUserFeign; +import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameter; +import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterQuery; +import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.*; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto; import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; 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.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; @@ -31,6 +41,8 @@ import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** @@ -43,6 +55,9 @@ public class LoanRepaymentHistoryService extends MybatisBaseService saveHistory(LoanRepaymentHistoryDto dto) { ResultBean rb = ResultBean.fireFail(); @@ -62,9 +77,8 @@ public class LoanRepaymentHistoryService extends MybatisBaseService> getExcelInfo(MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws IOException, ParseException { + ResultBean> rb = ResultBean.fireFail(); String temp = request.getSession().getServletContext().getRealPath(File.separator) + "temp";// 临时目录 File tempFile = new File(temp); if (!tempFile.exists()) { @@ -98,51 +112,24 @@ public class LoanRepaymentHistoryService extends MybatisBaseService planDetails = loanRepaymentPlanDetailsService.selPlanByNoAndPeriod(repaymentExcelInfo.getBankContractNo(), repaymentExcelInfo.getPeriod()); - if (!planDetails.isEmpty()) { - for (LoanRepaymentPlanDetails planDetail : planDetails) { - LoanRepaymentHistory repaymentHistory = new LoanRepaymentHistory(); - repaymentHistory.setBuckle("未申请"); - repaymentHistory.setBuckleKey("001"); - repaymentHistory.setScheduleSid(planDetail.getScheduleSid()); - repaymentHistory.setPlanDetailSid(planDetail.getSid()); - repaymentHistory.setActualDate(sdf.parse(repaymentExcelInfo.getRealReturnTime())); - BigDecimal realMoney = new BigDecimal(repaymentExcelInfo.getRealMoney()); - BigDecimal divide = realMoney.divide(new BigDecimal(planDetails.size()), 2, BigDecimal.ROUND_HALF_UP); - repaymentHistory.setActualMoney(divide); - repaymentHistory.setDataTime(new DateTime()); - List histories = baseMapper.selHistoryByPlanSid(planDetail.getSid()); - BigDecimal returned = new BigDecimal(0); - if (!histories.isEmpty()) { - for (LoanRepaymentHistory history : histories) { - returned = history.getActualMoney().add(returned); - } - } - BigDecimal decimal = returned.add(divide); - BigDecimal dueMoney = planDetail.getDueMoney(); - BigDecimal subtract = dueMoney.subtract(decimal); - repaymentHistory.setOutstandingMoney(subtract); - baseMapper.insert(repaymentHistory); - } - } + if (StringUtils.isNotBlank(importReturn.getCheckInfo2())) { + return rb.success().setData(resultList).setMsg(importReturn.getCheckInfo2()); + } else { + return rb.success().setData(resultList).setMsg("成功导入" + size + "条数据,请点击确定按钮"); } - - return rb.success().setData(importReturn); } else { String checkResult = importReturn.getCheckInfo(); - return rb.fail().setMsg(checkResult); + return rb.success().setData(resultList).setMsg(checkResult); } } + private ReturnExcelInfo getSheetVal(Sheet sheet, int[] resultCell) { ReturnExcelInfo importReturn = new ReturnExcelInfo(); List importVoList = new ArrayList<>(); int[] resultIndex = new int[resultCell.length]; - StringBuffer sb = new StringBuffer(); + Set checkWord = new HashSet<>(); + Set checkWord2 = new HashSet<>(); for (int r = 1; r <= sheet.getLastRowNum(); r++) { Row row = sheet.getRow(r); if (row == null) { @@ -198,21 +185,96 @@ public class LoanRepaymentHistoryService extends MybatisBaseService planDetails = loanRepaymentPlanDetailsService.selPlanByNoAndPeriod(bankContractNo, period); + if (planDetails.isEmpty() || planDetails == null) { + sbBankCNo.append(bankContractNo).append("、"); + } + } + if (StringUtils.isNotBlank(excelInfo.getBankContractNo()) && StringUtils.isNotBlank(excelInfo.getRealReturnTime())) { + String bankContractNo = excelInfo.getBankContractNo(); + String realReturnTime = excelInfo.getRealReturnTime(); + List histories = baseMapper.selByBankNoAndActDate(bankContractNo, realReturnTime); + if (!histories.isEmpty() || histories.size() > 0) { + checkWord2.add("实还日期:" + realReturnTime + "、资方合同编号:" + bankContractNo); + } + } + } + } + String bankCo = ""; + if (sbBankCNo.length() > 0) { + sbBankCNo.delete(sbBankCNo.length() - 1, sbBankCNo.length()); + bankCo = "资方合同号" + sbBankCNo + "不存在"; + } + checkWord.add(bankCo); + StringBuffer sbcheck1 = new StringBuffer(); + if (!checkWord.isEmpty()) { + for (String s : checkWord) { + if (StringUtils.isBlank(s)) { + continue; + } + sbcheck1.append(s).append(";"); + } + } + if (sbcheck1.length() > 0) { + sbcheck1.delete(sbcheck1.length() - 1, sbcheck1.length()); + importReturn.setCheckInfo(sbcheck1.toString()); importReturn.setInfos(new ArrayList<>()); return importReturn; } + importReturn.setInfos(importVoList); + StringBuffer sbcheck2 = new StringBuffer(); + if (!checkWord2.isEmpty()) { + for (String s : checkWord2) { + if (StringUtils.isBlank(s)) { + continue; + } + sbcheck2.append(s).append(","); + } + } + if (sbcheck2.length() > 0) { + sbcheck2.delete(sbcheck2.length() - 1, sbcheck2.length()); + importReturn.setCheckInfo2("已存在" + sbcheck2.toString() + "的记录,是否继续导入"); + return importReturn; + } return importReturn; } @@ -239,6 +301,42 @@ public class LoanRepaymentHistoryService extends MybatisBaseService updateRecord(LoanRepaymentHistoryUpdate dto) { ResultBean rb = ResultBean.fireFail(); String sid = dto.getSid(); @@ -276,4 +374,241 @@ public class LoanRepaymentHistoryService extends MybatisBaseService monthListPage(PagerQuery pq) { + IPage page = PagerUtil.queryToPage(pq); + LoanRepaymentHistoryQuery pagerQuery = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + //======================= + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(pagerQuery.getOrgPath()); + privilegeQuery.setMenuSid(pagerQuery.getMenuSid()); + privilegeQuery.setMenuUrl(pagerQuery.getMenuUrl()); + privilegeQuery.setUserSid(pagerQuery.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = pagerQuery.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("p.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("p.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("p.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("p.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("p.salesUserSid", pagerQuery.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + //======================= + if (StringUtils.isNotBlank(pagerQuery.getLoanContractNo())) { + qw.like("p.loanContractNo", pagerQuery.getLoanContractNo()); + } + if (StringUtils.isNotBlank(pagerQuery.getVinNo())) { + qw.like("p.vinNo", pagerQuery.getVinNo()); + } + if (StringUtils.isNotBlank(pagerQuery.getBankName())) { + qw.like("p.bankName", pagerQuery.getBankName()); + } + if (StringUtils.isNotBlank(pagerQuery.getBankContractNo())) { + qw.like("p.bankContractNo", pagerQuery.getBankContractNo()); + } + if (StringUtils.isNotBlank(pagerQuery.getCustomer())) { + qw.like("p.customer", pagerQuery.getCustomer()); + } + if (StringUtils.isNotBlank(pagerQuery.getBorrowerName())) { + qw.like("p.borrowerName", pagerQuery.getBorrowerName()); + } + if (StringUtils.isNotBlank(pagerQuery.getPeriod())) { + qw.like("p.period", pagerQuery.getPeriod()); + } + if (StringUtils.isNotBlank(pagerQuery.getReturnWayKey())) { + qw.eq("h.returnWayKey", pagerQuery.getReturnWayKey()); + } + if (StringUtils.isNotBlank(pagerQuery.getBuckleKey())) { + qw.eq("h.buckleKey", pagerQuery.getBuckleKey()); + } else { + qw.ne("h.buckleKey", "002"); + qw.ne("h.buckleKey", "003"); + } + String dueStartDate = pagerQuery.getDueStartDate(); + String dueEndDate = pagerQuery.getDueEndDate(); + qw.apply(StringUtils.isNotEmpty(dueStartDate), "date_format (p.dueDate,'%Y-%m-%d') >= date_format('" + dueStartDate + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(dueEndDate), "date_format (p.dueDate,'%Y-%m-%d') <= date_format('" + dueEndDate + "','%Y-%m-%d')" + ); + List monthHeadAndLast = getMonthHeadAndLast(new Date()); + String head = monthHeadAndLast.get(0); + String last = monthHeadAndLast.get(1); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String actualStartDate = pagerQuery.getActualStartDate(); + String actualEndDate = pagerQuery.getActualEndDate(); + try { + Date headT = sdf.parse(head); + Date lastT = sdf.parse(last); + Date ast = null; + Date aed = null; + if (StringUtils.isNotBlank(actualStartDate)) { + ast = sdf.parse(actualStartDate); + } + if (StringUtils.isNotBlank(actualEndDate)) { + aed = sdf.parse(actualEndDate); + } + + if (StringUtils.isBlank(actualStartDate) && StringUtils.isNotBlank(actualEndDate)) { + if (aed.before(lastT)) { + qw.apply(StringUtils.isNotEmpty(head), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + head + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(actualEndDate), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + actualEndDate + "','%Y-%m-%d')" + ); + } else { + qw.apply(StringUtils.isNotEmpty(head), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + head + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(last), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + last + "','%Y-%m-%d')" + ); + } + } else if (StringUtils.isBlank(actualEndDate) && StringUtils.isNotBlank(actualStartDate)) { + if (headT.before(ast)) { + qw.apply(StringUtils.isNotEmpty(actualStartDate), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + actualStartDate + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(last), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + last + "','%Y-%m-%d')" + ); + } else { + qw.apply(StringUtils.isNotEmpty(head), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + head + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(last), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + last + "','%Y-%m-%d')" + ); + } + } else if (StringUtils.isNotBlank(actualStartDate) && StringUtils.isNotBlank(actualEndDate)) { + if (headT.before(ast) && aed.before(lastT)) { + qw.apply(StringUtils.isNotEmpty(actualStartDate), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + actualStartDate + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(actualEndDate), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + actualEndDate + "','%Y-%m-%d')" + ); + } else if (headT.before(ast) && !aed.before(lastT)) { + qw.apply(StringUtils.isNotEmpty(actualStartDate), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + actualStartDate + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(last), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + lastT + "','%Y-%m-%d')" + ); + } else if (!headT.before(ast) && aed.before(lastT)) { + qw.apply(StringUtils.isNotEmpty(head), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + head + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(actualEndDate), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + actualEndDate + "','%Y-%m-%d')" + ); + } else if (!headT.before(ast) && !aed.before(lastT)) { + qw.apply(StringUtils.isNotEmpty(head), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + head + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(last), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + last + "','%Y-%m-%d')" + ); + } + } + } catch (ParseException e) { + e.printStackTrace(); + } + + String dataStartTime = pagerQuery.getDataStartTime(); + String dataEndTime = pagerQuery.getDataEndTime(); + qw.apply(StringUtils.isNotEmpty(dataStartTime), "date_format (h.dataTime,'%Y-%m-%d') >= date_format('" + dataStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(dataEndTime), "date_format (h.dataTime,'%Y-%m-%d') <= date_format('" + dataEndTime + "','%Y-%m-%d')" + ); + qw.orderByDesc("h.dataTime"); + if (StringUtils.isBlank(actualStartDate) && StringUtils.isBlank(actualEndDate)) { + qw.apply(StringUtils.isNotEmpty(head), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + head + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(last), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + last + "','%Y-%m-%d')" + ); + } + IPage pagging = baseMapper.monthListPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public List getMonthHeadAndLast(Date date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String now = sdf.format(date); + String[] split = now.split("-"); + String year = split[0]; + String month = split[1]; + String headDate = ""; + String lastDate = ""; + int y = Integer.parseInt(year); + if (month.equals("01") || + month.equals("03") || + month.equals("05") || + month.equals("07") || + month.equals("08") || + month.equals("10") || + month.equals("12")) { + headDate = year + "-" + month + "-01"; + lastDate = year + "-" + month + "-31"; + } else if (month.equals("04") || + month.equals("06") || + month.equals("09") || + month.equals("11") + ) { + headDate = year + "-" + month + "-01"; + lastDate = year + "-" + month + "-30"; + } else if (month.equals("02")) { + headDate = year + "-" + month + "-01"; + if ((y % 4) == 0) { + lastDate = year + "-" + month + "-29"; + } else { + lastDate = year + "-" + month + "-28"; + } + } + List list = new ArrayList<>(); + list.add(headDate); + list.add(lastDate); + return list; + } + + + public ResultBean saveRecords(List dto) { + ResultBean rb = ResultBean.fireFail(); + //保存还款记录 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if (!dto.isEmpty()) { + for (RepaymentExcelInfo repaymentExcelInfo : dto) { + List planDetails = loanRepaymentPlanDetailsService.selPlanByNoAndPeriod(repaymentExcelInfo.getBankContractNo(), repaymentExcelInfo.getPeriod()); + if (!planDetails.isEmpty()) { + for (LoanRepaymentPlanDetails planDetail : planDetails) { + LoanRepaymentHistory repaymentHistory = new LoanRepaymentHistory(); + repaymentHistory.setBuckle("未申请"); + repaymentHistory.setBuckleKey("001"); + repaymentHistory.setScheduleSid(planDetail.getScheduleSid()); + repaymentHistory.setPlanDetailSid(planDetail.getSid()); + try { + repaymentHistory.setActualDate(sdf.parse(repaymentExcelInfo.getRealReturnTime())); + } catch (ParseException e) { + e.printStackTrace(); + } + BigDecimal realMoney = new BigDecimal(repaymentExcelInfo.getRealMoney()); + BigDecimal divide = realMoney.divide(new BigDecimal(planDetails.size()), 2, BigDecimal.ROUND_HALF_UP); + repaymentHistory.setActualMoney(divide); + repaymentHistory.setDataTime(new DateTime()); + List histories = baseMapper.selHistoryByPlanSid(planDetail.getSid()); + BigDecimal returned = new BigDecimal(0); + if (!histories.isEmpty()) { + for (LoanRepaymentHistory history : histories) { + returned = history.getActualMoney().add(returned); + } + } + BigDecimal decimal = returned.add(divide); + BigDecimal dueMoney = planDetail.getDueMoney(); + BigDecimal subtract = dueMoney.subtract(decimal); + repaymentHistory.setOutstandingMoney(subtract); + baseMapper.insert(repaymentHistory); + } + } + } + } + return rb.success(); + } }