Merge branch 'dev_1.0.0' into ocr_branch
# Conflicts: # README.md # src/main/java/com/supervision/police/domain/NoteRecord.java # src/main/java/com/supervision/police/service/impl/NoteRecordSplitServiceImpl.java # src/main/resources/mapper/NoteRecordMapper.xmltopo_dev
commit
716969e1e0
@ -0,0 +1,32 @@
|
||||
package com.supervision.police.controller;
|
||||
|
||||
import com.supervision.common.domain.R;
|
||||
import com.supervision.police.dto.homepage.HomepageResultDto;
|
||||
import com.supervision.police.service.HomepageService;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@Tag(name = "首页接口")
|
||||
@RequestMapping("/homepage")
|
||||
public class HomepageController {
|
||||
|
||||
@Autowired
|
||||
private HomepageService homepageService;
|
||||
|
||||
/**
|
||||
* 获取统计数据
|
||||
*
|
||||
* @return HomepageResultDto
|
||||
*/
|
||||
@PostMapping("/queryStatisticsData")
|
||||
public R<HomepageResultDto> queryStatisticsData() {
|
||||
return R.ok(homepageService.queryStatisticsData());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.supervision.police.dto.caseScore;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class CaseScore {
|
||||
private int commonScore;
|
||||
private int crimeScore;
|
||||
private int crimeOutScore;
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package com.supervision.police.dto.homepage;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class HomepageResultDto {
|
||||
/**
|
||||
* 案件数量
|
||||
*/
|
||||
private int caseNumber = 0;
|
||||
/**
|
||||
* 案件行为人数量
|
||||
*/
|
||||
private int caseActorNumber = 0;
|
||||
/**
|
||||
* 月新增案件数量
|
||||
*/
|
||||
private int monthlyNewCaseNumber = 0;
|
||||
/**
|
||||
* 较上月新增案件数量
|
||||
*/
|
||||
private int comparedToLastMonthIncreaseNumber = 0;
|
||||
/**
|
||||
* 平均案件定性周期
|
||||
*/
|
||||
private int caseQualificationCycleAvg = 0;
|
||||
|
||||
/**
|
||||
* 模型分数小于70数量
|
||||
*/
|
||||
private int modelScoreLessThan70Number = 0;
|
||||
|
||||
/**
|
||||
* 取证不完全占比
|
||||
*/
|
||||
private double incompleteEvidenceRate = 0.0;
|
||||
|
||||
/**
|
||||
* 自动投案占比
|
||||
*/
|
||||
private double surrenderRate = 0.0;
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.supervision.police.service;
|
||||
|
||||
import com.supervision.police.dto.homepage.HomepageResultDto;
|
||||
|
||||
public interface HomepageService {
|
||||
/**
|
||||
* 获取统计数据
|
||||
*
|
||||
* @return HomepageResultDto
|
||||
*/
|
||||
HomepageResultDto queryStatisticsData();
|
||||
}
|
||||
|
@ -0,0 +1,44 @@
|
||||
package com.supervision.police.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.supervision.police.domain.CasePerson;
|
||||
import com.supervision.police.domain.ModelCase;
|
||||
import com.supervision.police.dto.homepage.HomepageResultDto;
|
||||
import com.supervision.police.service.CasePersonService;
|
||||
import com.supervision.police.service.HomepageService;
|
||||
import com.supervision.police.service.ModelCaseService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class HomepageServiceImpl implements HomepageService {
|
||||
private static final String CRIME_MODE_SURRENDER = "1";
|
||||
private static final String IDENTIFY_RESULT_INCOMPLETE_EVIDENCE = "1";
|
||||
|
||||
@Autowired
|
||||
private ModelCaseService modelCaseService;
|
||||
|
||||
@Autowired
|
||||
private CasePersonService casePersonService;
|
||||
|
||||
@Override
|
||||
public HomepageResultDto queryStatisticsData() {
|
||||
HomepageResultDto homepageResultDto = new HomepageResultDto();
|
||||
// 只统计非逻辑删除的案件
|
||||
List<ModelCase> modelCaseList = modelCaseService.list(new QueryWrapper<ModelCase>().eq("data_status", 1));
|
||||
int currentMonthCaseNumber = (int) modelCaseList.stream().filter(modelCase -> modelCase.getCreateTime().getMonthValue() == 9).count();
|
||||
int lastMonthCaseNumber = (int) modelCaseList.stream().filter(modelCase -> modelCase.getCreateTime().getMonthValue() == 8).count();
|
||||
homepageResultDto.setCaseNumber(modelCaseList.size());
|
||||
homepageResultDto.setCaseActorNumber((int) casePersonService.count(new QueryWrapper<CasePerson>().eq("case_actor_flag", 1)));
|
||||
homepageResultDto.setMonthlyNewCaseNumber(currentMonthCaseNumber);
|
||||
homepageResultDto.setComparedToLastMonthIncreaseNumber(Math.max(currentMonthCaseNumber - lastMonthCaseNumber, 0));
|
||||
homepageResultDto.setModelScoreLessThan70Number((int) modelCaseList.stream().filter(modelCase -> modelCase.getTotalScore() != null && modelCase.getTotalScore() < 70).count());
|
||||
homepageResultDto.setIncompleteEvidenceRate(Double.parseDouble(String.format("%.2f", (double) modelCaseList.stream().filter(modelCase -> IDENTIFY_RESULT_INCOMPLETE_EVIDENCE.equals(modelCase.getIdentifyResult())).count() / modelCaseList.size() * 100)));
|
||||
homepageResultDto.setSurrenderRate(Double.parseDouble(String.format("%.2f", (double) modelCaseList.stream().filter(modelCase -> CRIME_MODE_SURRENDER.equals(modelCase.getCrimeMode())).count() / modelCaseList.size() * 100)));
|
||||
return homepageResultDto;
|
||||
}
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration scan="true" scanPeriod="30 seconds">
|
||||
|
||||
<!-- 定义日志文件保存的路径和文件名 -->
|
||||
<property name="LOG_PATH" value="./logs"/>
|
||||
<property name="LOG_FILE" value="${LOG_PATH}/application.log"/>
|
||||
<property name="LOGBACK_LOG_LEVEL" value="INFO"/>
|
||||
|
||||
<!-- 控制台输出,带有颜色 -->
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{36}) - %msg%n</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 日志文件输出 -->
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${LOG_FILE}</file>
|
||||
<encoder>
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${LOG_PATH}/application.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
<maxHistory>30</maxHistory>
|
||||
<totalSizeCap>100MB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
<!-- 异常错误日志单独输出 -->
|
||||
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${LOG_PATH}/error.log</file>
|
||||
<encoder>
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${LOG_PATH}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
<maxHistory>30</maxHistory>
|
||||
<totalSizeCap>100MB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>ERROR</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- 定义日志记录器 -->
|
||||
<!-- <logger name="org.springframework" level="INFO" additivity="false">-->
|
||||
<!-- <appender-ref ref="FILE"/>-->
|
||||
<!-- </logger>-->
|
||||
|
||||
<!-- <logger name="com.supervision" level="debug" additivity="false">-->
|
||||
<!-- <appender-ref ref="FILE"/>-->
|
||||
<!-- <appender-ref ref="CONSOLE"/>-->
|
||||
<!-- </logger>-->
|
||||
|
||||
<!-- 根日志记录器 -->
|
||||
<root level="${LOGBACK_LOG_LEVEL}">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="ERROR_FILE"/>
|
||||
</root>
|
||||
</configuration>
|
@ -0,0 +1,20 @@
|
||||
package com.supervision.demo;
|
||||
|
||||
import com.supervision.police.service.HomepageService;
|
||||
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;
|
||||
|
||||
@Slf4j
|
||||
@SpringBootTest
|
||||
public class HomepageTest {
|
||||
@Autowired
|
||||
private HomepageService homepageService;
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
log.info("test");
|
||||
System.out.println(homepageService.queryStatisticsData());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue