diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewController.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewController.java index 2bbc9e4d..cbbc999e 100644 --- a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewController.java +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewController.java @@ -184,10 +184,10 @@ public class CcdiProjectOverviewController extends BaseController { } /** - * 一键导出结果总览报告 + * 导出结果总览报告 */ @RequestMapping(value = "/report/export", method = { RequestMethod.GET, RequestMethod.POST }) - @Operation(summary = "一键导出结果总览报告") + @Operation(summary = "导出结果总览报告") @PreAuthorize("@ss.hasPermi('ccdi:project:query')") public void exportOverviewReport(HttpServletResponse response, Long projectId) { overviewService.exportOverviewReport(response, projectId); diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectSuspiciousTransactionItemVO.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectSuspiciousTransactionItemVO.java index 736afb79..ac2a834c 100644 --- a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectSuspiciousTransactionItemVO.java +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectSuspiciousTransactionItemVO.java @@ -33,4 +33,6 @@ public class CcdiProjectSuspiciousTransactionItemVO { private Boolean hasModelRuleHit; private Boolean hasNameListHit; + + private String nameListHitType; } diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectOverviewReportPdfExporter.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectOverviewReportPdfExporter.java index 9310d10f..0e343528 100644 --- a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectOverviewReportPdfExporter.java +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectOverviewReportPdfExporter.java @@ -393,6 +393,7 @@ public class CcdiProjectOverviewReportPdfExporter { private static final float SUBSECTION_FONT_SIZE = 12F; private static final float LINE_HEIGHT = 12F; private static final float CELL_PADDING = 5F; + private static final float TABLE_AFTER_GAP = 32F; private final PDDocument document; private final PDType0Font font; @@ -420,7 +421,7 @@ public class CcdiProjectOverviewReportPdfExporter { } void title(String text) throws IOException { - writeLine(text, TITLE_FONT_SIZE, new Color(18, 56, 93), 0F, 28F); + writeLine(text, TITLE_FONT_SIZE, new Color(18, 56, 93), 0F, 28F, true); } void text(String text, float fontSize, Color color) throws IOException { @@ -429,12 +430,12 @@ public class CcdiProjectOverviewReportPdfExporter { void section(String text) throws IOException { ensureSpace(32F); - writeLine(text, SECTION_FONT_SIZE, new Color(18, 56, 93), 0F, 26F); + writeLine(text, SECTION_FONT_SIZE, new Color(18, 56, 93), 0F, 26F, true); } void subsection(String text) throws IOException { ensureSpace(26F); - writeLine(text, SUBSECTION_FONT_SIZE, new Color(51, 65, 85), 0F, 22F); + writeLine(text, SUBSECTION_FONT_SIZE, new Color(51, 65, 85), 0F, 22F, true); } void separator() throws IOException { @@ -481,7 +482,7 @@ public class CcdiProjectOverviewReportPdfExporter { for (List row : safeRows) { drawRow(row, widths, false); } - y -= 8F; + y -= TABLE_AFTER_GAP; } private float[] calculateWidths(float[] ratios) { @@ -556,6 +557,17 @@ public class CcdiProjectOverviewReportPdfExporter { } private void writeLine(String text, float fontSize, Color color, float indent, float advance) throws IOException { + writeLine(text, fontSize, color, indent, advance, false); + } + + private void writeLine( + String text, + float fontSize, + Color color, + float indent, + float advance, + boolean bold + ) throws IOException { ensureSpace(advance); content.beginText(); content.setNonStrokingColor(color); @@ -563,6 +575,14 @@ public class CcdiProjectOverviewReportPdfExporter { content.newLineAtOffset(MARGIN + indent, y); content.showText(text); content.endText(); + if (bold) { + content.beginText(); + content.setNonStrokingColor(color); + content.setFont(font, fontSize); + content.newLineAtOffset(MARGIN + indent + 0.25F, y); + content.showText(text); + content.endText(); + } y -= advance; } diff --git a/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagAnalysisMapper.xml b/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagAnalysisMapper.xml index 4c0d8af8..fbc8071a 100644 --- a/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagAnalysisMapper.xml +++ b/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagAnalysisMapper.xml @@ -105,36 +105,69 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" not ( - bs.CUSTOMER_ACCOUNT_NAME = '浙江兰溪农村商业银行股份有限公司' - and ( - IFNULL(bs.USER_MEMO, '') LIKE '%代发%' - or IFNULL(bs.USER_MEMO, '') LIKE '%工资%' - or IFNULL(bs.USER_MEMO, '') LIKE '%奖金%' - or IFNULL(bs.USER_MEMO, '') LIKE '%薪酬%' - or IFNULL(bs.USER_MEMO, '') LIKE '%薪金%' - or IFNULL(bs.USER_MEMO, '') LIKE '%补贴%' - or IFNULL(bs.USER_MEMO, '') LIKE '%薪%' - or IFNULL(bs.USER_MEMO, '') LIKE '%年终奖%' - or IFNULL(bs.USER_MEMO, '') LIKE '%年金%' - or IFNULL(bs.USER_MEMO, '') LIKE '%加班费%' - or IFNULL(bs.USER_MEMO, '') LIKE '%劳务费%' - or IFNULL(bs.USER_MEMO, '') LIKE '%劳务外包%' - or IFNULL(bs.USER_MEMO, '') LIKE '%提成%' - or IFNULL(bs.USER_MEMO, '') LIKE '%劳务派遣%' - or IFNULL(bs.USER_MEMO, '') LIKE '%绩效%' - or IFNULL(bs.USER_MEMO, '') LIKE '%酬劳%' - or IFNULL(bs.USER_MEMO, '') LIKE '%PAYROLL%' - or IFNULL(bs.USER_MEMO, '') LIKE '%SALA%' - or IFNULL(bs.USER_MEMO, '') LIKE '%CPF%' - or IFNULL(bs.USER_MEMO, '') LIKE '%directors%fees%' - or IFNULL(bs.USER_MEMO, '') LIKE '%批量代付%' - or IFNULL(bs.CASH_TYPE, '') LIKE '%代发%' - or IFNULL(bs.CASH_TYPE, '') LIKE '%工资%' - or IFNULL(bs.CASH_TYPE, '') LIKE '%劳务费%' + ( + bs.CUSTOMER_ACCOUNT_NAME = '浙江兰溪农村商业银行股份有限公司' + and ( + IFNULL(bs.USER_MEMO, '') LIKE '%代发%' + or IFNULL(bs.USER_MEMO, '') LIKE '%工资%' + or IFNULL(bs.USER_MEMO, '') LIKE '%奖金%' + or IFNULL(bs.USER_MEMO, '') LIKE '%薪酬%' + or IFNULL(bs.USER_MEMO, '') LIKE '%薪金%' + or IFNULL(bs.USER_MEMO, '') LIKE '%补贴%' + or IFNULL(bs.USER_MEMO, '') LIKE '%薪%' + or IFNULL(bs.USER_MEMO, '') LIKE '%年终奖%' + or IFNULL(bs.USER_MEMO, '') LIKE '%年金%' + or IFNULL(bs.USER_MEMO, '') LIKE '%加班费%' + or IFNULL(bs.USER_MEMO, '') LIKE '%劳务费%' + or IFNULL(bs.USER_MEMO, '') LIKE '%劳务外包%' + or IFNULL(bs.USER_MEMO, '') LIKE '%提成%' + or IFNULL(bs.USER_MEMO, '') LIKE '%劳务派遣%' + or IFNULL(bs.USER_MEMO, '') LIKE '%绩效%' + or IFNULL(bs.USER_MEMO, '') LIKE '%酬劳%' + or IFNULL(bs.USER_MEMO, '') LIKE '%PAYROLL%' + or IFNULL(bs.USER_MEMO, '') LIKE '%SALA%' + or IFNULL(bs.USER_MEMO, '') LIKE '%CPF%' + or IFNULL(bs.USER_MEMO, '') LIKE '%directors%fees%' + or IFNULL(bs.USER_MEMO, '') LIKE '%批量代付%' + or IFNULL(bs.CASH_TYPE, '') LIKE '%代发%' + or IFNULL(bs.CASH_TYPE, '') LIKE '%工资%' + or IFNULL(bs.CASH_TYPE, '') LIKE '%劳务费%' + ) + ) + or ( + IFNULL(bs.CUSTOMER_ACCOUNT_NAME, '') LIKE '%公积金中心%' + and ( + IFNULL(bs.USER_MEMO, '') LIKE '%公积金%' + or IFNULL(bs.USER_MEMO, '') LIKE '%批量代付%' + or IFNULL(bs.CASH_TYPE, '') LIKE '%公积金%' + or IFNULL(bs.CASH_TYPE, '') LIKE '%批量代付%' + ) ) ) + + select + staff.id_card as subjectCertNo, + staff.name as subjectName, + '本人' as subjectType + from ccdi_base_staff staff + + union all + + select + relation.relation_cert_no as subjectCertNo, + relation.relation_name as subjectName, + case + when relation.relation_type is not null and trim(relation.relation_type) != '' then relation.relation_type + else '关系人' + end as subjectType + from ccdi_staff_fmy_relation relation + where relation.status = 1 + and relation.relation_cert_no is not null + and trim(relation.relation_cert_no) != '' + + bs.CUSTOMER_ACCOUNT_NAME = '浙江兰溪农村商业银行股份有限公司' and ( @@ -392,12 +425,130 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"