From 175c5b9bfcc25fa4ec6389c3f906a155f4f0aaf6 Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Tue, 23 Jul 2024 17:32:21 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E6=B7=BB=E5=8A=A0=E6=8C=87=E6=A0=87?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springaidemo/ModelIndexTest.java | 147 ++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 src/test/java/com/supervision/springaidemo/ModelIndexTest.java diff --git a/src/test/java/com/supervision/springaidemo/ModelIndexTest.java b/src/test/java/com/supervision/springaidemo/ModelIndexTest.java new file mode 100644 index 0000000..0db2ee4 --- /dev/null +++ b/src/test/java/com/supervision/springaidemo/ModelIndexTest.java @@ -0,0 +1,147 @@ +package com.supervision.springaidemo; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.UUID; +import cn.hutool.json.JSONUtil; +import cn.hutool.poi.excel.ExcelReader; +import cn.hutool.poi.excel.ExcelUtil; +import com.supervision.police.domain.ModelAtomicIndex; +import com.supervision.police.domain.ModelIndex; +import com.supervision.police.dto.AtomicData; +import com.supervision.police.dto.JudgeLogic; +import com.supervision.police.mapper.ModelAtomicIndexMapper; +import com.supervision.police.mapper.ModelIndexMapper; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class ModelIndexTest { + + @Autowired + private ModelIndexMapper modelIndexMapper; + + @Autowired + private ModelAtomicIndexMapper modelAtomicIndexMapper; + //@Test + public void modelIndexGenerate() { + + List modelIndexList = readModelIndex(); + + for (ModelIndex modelIndex : modelIndexList) { + modelIndexMapper.insert(modelIndex); + for (ModelAtomicIndex modelAtomicIndex : modelIndex.getAtomicIndexList()) { + modelAtomicIndexMapper.insert(modelAtomicIndex); + } + } + } + + + public List readModelIndex() { + String path = "F:\\supervision\\doc\\宁夏公安\\宁夏大模型项目计划0722.xlsx"; + + ExcelReader reader = ExcelUtil.getReader(path, "原子指标拆分"); + List> list = reader.read(1); + + ArrayList indices = new ArrayList<>(); + + Map typeMap = Map.of("共性指标", "1", "入罪指标", "2", "出罪指标", "3"); + for (List row : list) { + if (!"数据库查询".equals(row.get(4).toString())){ + continue; + } + String type = row.get(0).toString(); + Index index = new Index(typeMap.get(type), row.get(1).toString(), row.get(2).toString(), + row.get(3).toString(), row.get(4).toString(), row.get(10).toString()); + + indices.add(index); + } + + Map> modelIndexListMap = indices.stream().collect(Collectors.groupingBy(index -> { + ModelIndex modelIndex = new ModelIndex(); + modelIndex.setId(index.getId()); + modelIndex.setName(index.getName()); + modelIndex.setShortName(index.getName()); + modelIndex.setIndexType(index.getType()); + modelIndex.setIndexScore(1); + modelIndex.setCaseType("1"); + modelIndex.setDataStatus("1"); + modelIndex.setRemark("auto-generate"); + return modelIndex; + }, Collectors.mapping(index -> { + ModelAtomicIndex modelAtomicIndex = new ModelAtomicIndex(); + modelAtomicIndex.setId(UUID.fastUUID().toString()); + modelAtomicIndex.setName(index.getAtomicIndexName()); + modelAtomicIndex.setCaseType("1"); + modelAtomicIndex.setIndexSource("2"); + modelAtomicIndex.setQueryLang(index.getSql()); + modelAtomicIndex.setRemark("auto-generate"); + return modelAtomicIndex; + }, Collectors.toList()))); + + + for (Map.Entry> entry : modelIndexListMap.entrySet()) { + ModelIndex key = entry.getKey(); + key.setId(UUID.fastUUID().toString()); + List value = entry.getValue(); + if (CollUtil.isEmpty(value)){ + System.out.println("-----valuen 为空----"); + continue; + } + List atomicIds = value.stream().map(ModelAtomicIndex::getId).toList(); + key.setAtomicIndexNum(atomicIds.size()); + JudgeLogic judgeLogic = new JudgeLogic(); + judgeLogic.setRowLogic("2"); + judgeLogic.setGroupLogic("1"); + List list1 = value.stream().map(atomicIndex -> { + AtomicData atomicData = new AtomicData(); + atomicData.setAtomicIndex(atomicIndex.getId()); + atomicData.setRelationalSymbol("3"); + return atomicData; + }).toList(); + judgeLogic.setAtomicData(list1); + key.setJudgeLogic(JSONUtil.toJsonStr(CollUtil.newArrayList(judgeLogic))); + + key.setAtomicIndexList(value); + } + + return modelIndexListMap.keySet().stream().toList(); + } + + + public static void main(String[] args) { + new ModelIndexTest().readModelIndex(); + } + @Data + public static class Index{ + + private String type; + private String id; + private String name; + private String atomicIndexName; + private String sourceType; + private String sql; + + public Index() { + } + + public Index(String type, String id, String name, String atomicIndexName, String sourceType, String sql) { + this.type = type; + this.id = id; + this.name = name; + this.atomicIndexName = atomicIndexName; + this.sourceType = sourceType; + this.sql = sql; + } + } + + +}