diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/excel/CcdiProjectAbnormalAccountExcel.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/excel/CcdiProjectAbnormalAccountExcel.java new file mode 100644 index 00000000..2d66b217 --- /dev/null +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/excel/CcdiProjectAbnormalAccountExcel.java @@ -0,0 +1,29 @@ +package com.ruoyi.ccdi.project.domain.excel; + +import com.ruoyi.common.annotation.Excel; +import lombok.Data; + +/** + * 异常账户人员信息导出对象 + */ +@Data +public class CcdiProjectAbnormalAccountExcel { + + @Excel(name = "账号") + private String accountNo; + + @Excel(name = "开户人") + private String accountName; + + @Excel(name = "银行") + private String bankName; + + @Excel(name = "异常类型") + private String abnormalType; + + @Excel(name = "异常发生时间") + private String abnormalTime; + + @Excel(name = "状态") + private String status; +} diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectAbnormalAccountItemVO.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectAbnormalAccountItemVO.java new file mode 100644 index 00000000..e4ae1f6c --- /dev/null +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectAbnormalAccountItemVO.java @@ -0,0 +1,22 @@ +package com.ruoyi.ccdi.project.domain.vo; + +import lombok.Data; + +/** + * 异常账户人员信息行对象 + */ +@Data +public class CcdiProjectAbnormalAccountItemVO { + + private String accountNo; + + private String accountName; + + private String bankName; + + private String abnormalType; + + private String abnormalTime; + + private String status; +} diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectAbnormalAccountPageVO.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectAbnormalAccountPageVO.java index 1984f47d..9ad9720a 100644 --- a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectAbnormalAccountPageVO.java +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectAbnormalAccountPageVO.java @@ -10,7 +10,7 @@ import lombok.Data; @Data public class CcdiProjectAbnormalAccountPageVO { - private List rows = new ArrayList<>(); + private List rows = new ArrayList<>(); private Long total = 0L; } diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiProjectOverviewMapper.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiProjectOverviewMapper.java index aeac8d66..496d145c 100644 --- a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiProjectOverviewMapper.java +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiProjectOverviewMapper.java @@ -2,10 +2,12 @@ package com.ruoyi.ccdi.project.mapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.ccdi.project.domain.CcdiProject; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectAbnormalAccountQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectEmployeeCreditNegativeQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskModelPeopleQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskPeopleQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectSuspiciousTransactionQueryDTO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectAbnormalAccountItemVO; import com.ruoyi.ccdi.project.domain.vo.CcdiBankStatementListVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectEmployeeCreditNegativeItemVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectEmployeeRiskAggregateVO; @@ -106,6 +108,26 @@ public interface CcdiProjectOverviewMapper { @Param("query") CcdiProjectEmployeeCreditNegativeQueryDTO query ); + /** + * 分页查询异常账户人员信息 + * + * @param page 分页参数 + * @param query 查询条件 + * @return 分页结果 + */ + Page selectAbnormalAccountPage( + Page page, + @Param("query") CcdiProjectAbnormalAccountQueryDTO query + ); + + /** + * 查询异常账户人员信息导出列表 + * + * @param projectId 项目ID + * @return 导出列表 + */ + List selectAbnormalAccountList(@Param("projectId") Long projectId); + /** * 查询项目员工负面征信导出列表 * diff --git a/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiProjectOverviewMapper.xml b/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiProjectOverviewMapper.xml index 0461042b..73ab829c 100644 --- a/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiProjectOverviewMapper.xml +++ b/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiProjectOverviewMapper.xml @@ -48,6 +48,15 @@ + + + + + + + + + select 0 as digit union all select 1 @@ -644,6 +653,92 @@ order by neg.query_date desc, neg.person_id asc + + select + account.account_no as accountNo, + account.account_no as account_no, + coalesce(nullif(account.account_name, ''), staff.name) as accountName, + account.bank as bankName, + tr.rule_name as abnormalType, + tr.rule_code as rule_code, + case + when tr.rule_code = 'SUDDEN_ACCOUNT_CLOSURE' then date_format(account.invalid_date, '%Y-%m-%d') + when tr.rule_code = 'DORMANT_ACCOUNT_LARGE_ACTIVATION' then substring( + substring_index( + substring_index(tr.reason_detail, ',', 2), + '首次交易日期', + -1 + ), + 1, + 10 + ) + else null + end as abnormal_time, + case + when account.status = 1 then '正常' + when account.status = 2 then '已销户' + else cast(account.status as char) + end as status + from ccdi_bank_statement_tag_result tr + inner join ccdi_account_info account + on account.owner_type = 'EMPLOYEE' + and account.owner_id = tr.object_key + and instr(tr.reason_detail, account.account_no) > 0 + left join ccdi_base_staff staff + on staff.id_card = tr.object_key + + + + + +