From 1a49b6b7e161544df2c48b84c9edba96e95d5f5f Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Mon, 16 Mar 2026 17:27:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=B5=81=E6=B0=B4?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E8=A7=84=E5=88=99=E7=BB=93=E6=9E=9C=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1Mapper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/CcdiBankTagResultMapper.java | 30 ++++++++ .../project/mapper/CcdiBankTagRuleMapper.java | 21 ++++++ .../project/mapper/CcdiBankTagTaskMapper.java | 35 ++++++++++ .../ccdi/project/CcdiBankTagResultMapper.xml | 64 +++++++++++++++++ .../ccdi/project/CcdiBankTagRuleMapper.xml | 38 +++++++++++ .../ccdi/project/CcdiBankTagTaskMapper.xml | 68 +++++++++++++++++++ .../CcdiBankTagResultMapperXmlTest.java | 23 +++++++ 7 files changed, 279 insertions(+) create mode 100644 ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagResultMapper.java create mode 100644 ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagRuleMapper.java create mode 100644 ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagTaskMapper.java create mode 100644 ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagResultMapper.xml create mode 100644 ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagRuleMapper.xml create mode 100644 ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagTaskMapper.xml create mode 100644 ccdi-project/src/test/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagResultMapperXmlTest.java diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagResultMapper.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagResultMapper.java new file mode 100644 index 00000000..f1c3ebf4 --- /dev/null +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagResultMapper.java @@ -0,0 +1,30 @@ +package com.ruoyi.ccdi.project.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.ccdi.project.domain.entity.CcdiBankTagResult; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 流水标签结果 Mapper + */ +public interface CcdiBankTagResultMapper extends BaseMapper { + + /** + * 按项目和可选模型删除历史结果 + * + * @param projectId 项目ID + * @param modelCode 模型编码 + * @return 删除条数 + */ + int deleteByProjectAndModel(@Param("projectId") Long projectId, @Param("modelCode") String modelCode); + + /** + * 批量插入结果 + * + * @param list 结果列表 + * @return 插入条数 + */ + int insertBatch(@Param("list") List list); +} diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagRuleMapper.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagRuleMapper.java new file mode 100644 index 00000000..307417e3 --- /dev/null +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagRuleMapper.java @@ -0,0 +1,21 @@ +package com.ruoyi.ccdi.project.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.ccdi.project.domain.entity.CcdiBankTagRule; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 流水标签规则 Mapper + */ +public interface CcdiBankTagRuleMapper extends BaseMapper { + + /** + * 查询启用规则 + * + * @param modelCode 模型编码 + * @return 规则列表 + */ + List selectEnabledRules(@Param("modelCode") String modelCode); +} diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagTaskMapper.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagTaskMapper.java new file mode 100644 index 00000000..8c277f10 --- /dev/null +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagTaskMapper.java @@ -0,0 +1,35 @@ +package com.ruoyi.ccdi.project.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.ccdi.project.domain.entity.CcdiBankTagTask; +import org.apache.ibatis.annotations.Param; + +/** + * 流水标签任务 Mapper + */ +public interface CcdiBankTagTaskMapper extends BaseMapper { + + /** + * 新增任务 + * + * @param task 任务实体 + * @return 影响行数 + */ + int insertTask(CcdiBankTagTask task); + + /** + * 更新任务 + * + * @param task 任务实体 + * @return 影响行数 + */ + int updateTask(CcdiBankTagTask task); + + /** + * 查询项目运行中的任务 + * + * @param projectId 项目ID + * @return 任务实体 + */ + CcdiBankTagTask selectRunningTaskByProjectId(@Param("projectId") Long projectId); +} diff --git a/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagResultMapper.xml b/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagResultMapper.xml new file mode 100644 index 00000000..820d7375 --- /dev/null +++ b/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagResultMapper.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + delete from ccdi_bank_statement_tag_result + where project_id = #{projectId} + + and model_code = #{modelCode} + + + + + insert into ccdi_bank_statement_tag_result ( + project_id, model_code, model_name, rule_code, rule_name, indicator_code, + result_type, risk_level, bank_statement_id, object_type, object_key, group_id, + log_id, reason_detail, business_caliber_snapshot, hit_value_snapshot, + create_by, create_time, update_by, update_time, remark + ) values + + ( + #{item.projectId}, #{item.modelCode}, #{item.modelName}, #{item.ruleCode}, #{item.ruleName}, #{item.indicatorCode}, + #{item.resultType}, #{item.riskLevel}, #{item.bankStatementId}, #{item.objectType}, #{item.objectKey}, #{item.groupId}, + #{item.logId}, #{item.reasonDetail}, #{item.businessCaliberSnapshot}, #{item.hitValueSnapshot}, + #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.remark} + ) + + on duplicate key update + reason_detail = values(reason_detail), + business_caliber_snapshot = values(business_caliber_snapshot), + hit_value_snapshot = values(hit_value_snapshot), + update_by = values(update_by), + update_time = values(update_time), + remark = values(remark) + + + diff --git a/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagRuleMapper.xml b/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagRuleMapper.xml new file mode 100644 index 00000000..7eb5f635 --- /dev/null +++ b/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagRuleMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagTaskMapper.xml b/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagTaskMapper.xml new file mode 100644 index 00000000..d46bff28 --- /dev/null +++ b/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagTaskMapper.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + insert into ccdi_bank_tag_task ( + project_id, trigger_type, model_code, status, need_rerun, success_rule_count, + failed_rule_count, hit_count, error_message, start_time, end_time, + create_by, create_time, update_by, update_time + ) values ( + #{projectId}, #{triggerType}, #{modelCode}, #{status}, #{needRerun}, #{successRuleCount}, + #{failedRuleCount}, #{hitCount}, #{errorMessage}, #{startTime}, #{endTime}, + #{createBy}, #{createTime}, #{updateBy}, #{updateTime} + ) + + + + update ccdi_bank_tag_task + + trigger_type = #{triggerType}, + model_code = #{modelCode}, + status = #{status}, + need_rerun = #{needRerun}, + success_rule_count = #{successRuleCount}, + failed_rule_count = #{failedRuleCount}, + hit_count = #{hitCount}, + error_message = #{errorMessage}, + start_time = #{startTime}, + end_time = #{endTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + + diff --git a/ccdi-project/src/test/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagResultMapperXmlTest.java b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagResultMapperXmlTest.java new file mode 100644 index 00000000..5a57a8f4 --- /dev/null +++ b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagResultMapperXmlTest.java @@ -0,0 +1,23 @@ +package com.ruoyi.ccdi.project.mapper; + +import org.junit.jupiter.api.Test; + +import java.io.InputStream; +import java.nio.charset.StandardCharsets; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +class CcdiBankTagResultMapperXmlTest { + + private static final String RESOURCE = "mapper/ccdi/project/CcdiBankTagResultMapper.xml"; + + @Test + void deleteByProjectAndOptionalModel_shouldRenderScopedDelete() throws Exception { + try (InputStream inputStream = getClass().getClassLoader().getResourceAsStream(RESOURCE)) { + String xml = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8); + assertTrue(xml.contains("delete from ccdi_bank_statement_tag_result")); + assertTrue(xml.contains("project_id = #{projectId}")); + assertTrue(xml.contains("model_code = #{modelCode}")); + } + } +}