Browse Source

fit: 完善个人极端风险打分

main
wxc 1 year ago
parent
commit
eb960442db
  1. 6
      src/main/java/com/biutag/supervision/controller/sensitivePerception/RiskPersonalController.java
  2. 27
      src/main/java/com/biutag/supervision/controller/sensitivePerception/ScoreController.java
  3. 8
      src/main/java/com/biutag/supervision/controller/work/NegativeImportController.java
  4. 3
      src/main/java/com/biutag/supervision/pojo/dto/HdtNegativeImportDto.java
  5. 2
      src/main/java/com/biutag/supervision/pojo/entity/RiskPersonal.java
  6. 2
      src/main/java/com/biutag/supervision/pojo/vo/RiskScoreRuleTree.java
  7. 10
      src/main/resources/application-prod.yml

6
src/main/java/com/biutag/supervision/controller/sensitivePerception/RiskPersonalController.java

@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@ -62,10 +63,11 @@ public class RiskPersonalController {
List<RiskScoreRule> rules2 = riskScoreRuleService.list(new LambdaQueryWrapper<RiskScoreRule>().eq(RiskScoreRule::getPid, rule.getId()) List<RiskScoreRule> rules2 = riskScoreRuleService.list(new LambdaQueryWrapper<RiskScoreRule>().eq(RiskScoreRule::getPid, rule.getId())
.eq(RiskScoreRule::getLevel, 2)); .eq(RiskScoreRule::getLevel, 2));
List<Model> models = modelService.list(new LambdaQueryWrapper<Model>().in(Model::getRiskScoreRuleId, rules2.stream().map(RiskScoreRule::getId))); List<Model> models = modelService.list(new LambdaQueryWrapper<Model>().in(Model::getRiskScoreRuleId, rules2.stream().map(RiskScoreRule::getId)));
List<RiskModelTaskClue> records = riskModelTaskClueService.page(Page.of(1, 5), new LambdaQueryWrapper<RiskModelTaskClue>()
List<RiskModelTaskClue> records = models.isEmpty() ? new ArrayList<>() : riskModelTaskClueService.page(Page.of(1, 5), new LambdaQueryWrapper<RiskModelTaskClue>()
.eq(RiskModelTaskClue::getIdCode, riskPersonal.getIdCode()) .eq(RiskModelTaskClue::getIdCode, riskPersonal.getIdCode())
.in(RiskModelTaskClue::getModelId, models.stream().map(Model::getId).toList()) .in(RiskModelTaskClue::getModelId, models.stream().map(Model::getId).toList())
.eq(RiskModelTaskClue::getDel, "1") .eq(RiskModelTaskClue::getDel, "0")
.orderByDesc(RiskModelTaskClue::getScore) .orderByDesc(RiskModelTaskClue::getScore)
.orderByAsc(RiskModelTaskClue::getCreateTime)).getRecords(); .orderByAsc(RiskModelTaskClue::getCreateTime)).getRecords();
riskRule.setClues(records); riskRule.setClues(records);

27
src/main/java/com/biutag/supervision/controller/sensitivePerception/ScoreController.java

@ -38,6 +38,14 @@ public class ScoreController {
private final NegativeScoreService negativeScoreService; private final NegativeScoreService negativeScoreService;
private final RiskPersonalService riskPersonalService;
private final RiskScoreRuleService riskScoreRuleService;
private final ModelService modelService;
private final RiskModelTaskClueService riskModelTaskClueService;
@RequestMapping("police") @RequestMapping("police")
public Result<String> updatePoliceScore() { public Result<String> updatePoliceScore() {
List<SupPolice> supPolices = policeScoreMapper.listPolice(); List<SupPolice> supPolices = policeScoreMapper.listPolice();
@ -78,21 +86,16 @@ public class ScoreController {
return Result.success("success"); return Result.success("success");
} }
private final RiskPersonalService riskPersonalService;
private final RiskScoreRuleService riskScoreRuleService;
private final ModelService modelService;
private final RiskModelTaskClueService riskModelTaskClueService;
@RequestMapping("personal") @RequestMapping("personal")
public Result<String> updatePersonalScore(Integer size) { public Result<String> updatePersonalScore(Integer size) {
log.info("updatePersonalScore-----------------------------------");
if (Objects.isNull(size)) { if (Objects.isNull(size)) {
size = 1000000; size = 1000000;
} }
List<RiskPersonal> riskPersonals = riskPersonalService.page(Page.of(1, size), new LambdaQueryWrapper<RiskPersonal>().eq(RiskPersonal::getDel, "1") List<RiskPersonal> riskPersonals = riskPersonalService.page(Page.of(1, size), new LambdaQueryWrapper<RiskPersonal>().eq(RiskPersonal::getDel, "0")
.ne(RiskPersonal::getRiskScore, 0)).getRecords(); ).getRecords();
log.info("{}条数据正在打分", riskPersonals.size());
List<RiskScoreRule> rules1 = riskScoreRuleService.list(new LambdaQueryWrapper<RiskScoreRule>().eq(RiskScoreRule::getLevel, 1)); List<RiskScoreRule> rules1 = riskScoreRuleService.list(new LambdaQueryWrapper<RiskScoreRule>().eq(RiskScoreRule::getLevel, 1));
riskPersonals.forEach(personal -> { riskPersonals.forEach(personal -> {
log.info("{}-{} 开始打分--------------------------------------", personal.getName(), personal.getIdCode()); log.info("{}-{} 开始打分--------------------------------------", personal.getName(), personal.getIdCode());
@ -101,10 +104,14 @@ public class ScoreController {
.eq(RiskScoreRule::getLevel, 2)); .eq(RiskScoreRule::getLevel, 2));
double score2 = rules2.stream().mapToDouble(rule2 -> { double score2 = rules2.stream().mapToDouble(rule2 -> {
Model model = modelService.getOne(new LambdaQueryWrapper<Model>().eq(Model::getRiskScoreRuleId, rule2.getId())); Model model = modelService.getOne(new LambdaQueryWrapper<Model>().eq(Model::getRiskScoreRuleId, rule2.getId()));
if (Objects.isNull(model)) {
log.info("{} 分值 = {}", rule.getRiskName(), 0);
return 0;
}
double score3 = riskModelTaskClueService.list(new LambdaQueryWrapper<RiskModelTaskClue>() double score3 = riskModelTaskClueService.list(new LambdaQueryWrapper<RiskModelTaskClue>()
.eq(RiskModelTaskClue::getModelId, model.getId()) .eq(RiskModelTaskClue::getModelId, model.getId())
.eq(RiskModelTaskClue::getIdCode, personal.getIdCode()) .eq(RiskModelTaskClue::getIdCode, personal.getIdCode())
.eq(RiskModelTaskClue::getDel, "1")) .eq(RiskModelTaskClue::getDel, "0"))
.stream().mapToDouble(RiskModelTaskClue::getScore).sum(); .stream().mapToDouble(RiskModelTaskClue::getScore).sum();
score3 = Math.min(rule2.getScore(), score3); score3 = Math.min(rule2.getScore(), score3);
log.info("{} 分值 = {}", rule2.getRiskName(), score3); log.info("{} 分值 = {}", rule2.getRiskName(), score3);

8
src/main/java/com/biutag/supervision/controller/work/NegativeImportController.java

@ -1,5 +1,6 @@
package com.biutag.supervision.controller.work; package com.biutag.supervision.controller.work;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.context.AnalysisContext;
@ -14,6 +15,7 @@ import com.biutag.supervision.pojo.entity.*;
import com.biutag.supervision.service.*; import com.biutag.supervision.service.*;
import com.biutag.supervision.util.SpringUtil; import com.biutag.supervision.util.SpringUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -21,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
@Slf4j
@RequiredArgsConstructor @RequiredArgsConstructor
@RequestMapping("negative/import") @RequestMapping("negative/import")
@RestController @RestController
@ -57,6 +60,7 @@ public class NegativeImportController {
@PostMapping @PostMapping
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result<List<PoliceImport>> importExcel(@RequestPart("file") MultipartFile file) throws IOException { public Result<List<PoliceImport>> importExcel(@RequestPart("file") MultipartFile file) throws IOException {
log.info("importExcel-----------------------------------------------");
List<HdtNegativeImportDto> negatives = new ArrayList<>(); List<HdtNegativeImportDto> negatives = new ArrayList<>();
List<HdtNegativeBlameImportDto> blames = new ArrayList<>(); List<HdtNegativeBlameImportDto> blames = new ArrayList<>();
@ -101,7 +105,9 @@ public class NegativeImportController {
String departId = depart.getId(); String departId = depart.getId();
String departName = depart.getShortName(); String departName = depart.getShortName();
NegativeDto negativeDto = new NegativeDto(); NegativeDto negativeDto = new NegativeDto();
negativeDto.setDiscoveryTime(item.getDiscoveryTime()); if (StrUtil.isNotBlank(item.getDiscoveryTime())) {
negativeDto.setDiscoveryTime(DateUtil.parseLocalDateTime(item.getDiscoveryTime(), "yyyy-MM-dd HH:mm:ss"));
}
negativeDto.setCaseNumber(item.getCaseNumber()); negativeDto.setCaseNumber(item.getCaseNumber());
negativeDto.setBusinessTypeCode(BusinessTypeEnum.JCJ_110.getValue()); negativeDto.setBusinessTypeCode(BusinessTypeEnum.JCJ_110.getValue());
negativeDto.setBusinessTypeName(BusinessTypeEnum.JCJ_110.getLabel()); negativeDto.setBusinessTypeName(BusinessTypeEnum.JCJ_110.getLabel());

3
src/main/java/com/biutag/supervision/pojo/dto/HdtNegativeImportDto.java

@ -1,6 +1,7 @@
package com.biutag.supervision.pojo.dto; package com.biutag.supervision.pojo.dto;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -33,7 +34,7 @@ public class HdtNegativeImportDto {
private String thingDesc; private String thingDesc;
@ExcelProperty("报警时间") @ExcelProperty("报警时间")
private LocalDateTime discoveryTime; private String discoveryTime;
@ExcelProperty("接警编号") @ExcelProperty("接警编号")
private String caseNumber; private String caseNumber;

2
src/main/java/com/biutag/supervision/pojo/entity/RiskPersonal.java

@ -42,7 +42,7 @@ public class RiskPersonal {
// 风险指数 // 风险指数
@TableField("risk_score") @TableField("risk_score")
private Integer riskScore; private Double riskScore;
// 管控部门编号 // 管控部门编号
@TableField("control_depart_id") @TableField("control_depart_id")

2
src/main/java/com/biutag/supervision/pojo/vo/RiskScoreRuleTree.java

@ -24,7 +24,7 @@ public class RiskScoreRuleTree {
private String riskName; private String riskName;
// 分值 // 分值
private String score; private Double score;
// 规则描述 // 规则描述
private String ruleDesc; private String ruleDesc;

10
src/main/resources/application-prod.yml

@ -26,11 +26,11 @@ spring:
url: jdbc:dm://65.47.22.243:5236?SCHEMA=JSDZ_4GDB url: jdbc:dm://65.47.22.243:5236?SCHEMA=JSDZ_4GDB
username: DCZD username: DCZD
password: DCZD@2024 password: DCZD@2024
test1: # test1:
url: jdbc:sqlserver://65.47.6.114:1433;databaseName=VisitManage_CS # url: jdbc:sqlserver://65.47.6.114:1433;databaseName=VisitManage_CS
username: ck1112 # username: ck1112
password: CK@20241112 # password: CK@20241112
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
druid: druid:
min-evictable-idle-time-millis: 300000 min-evictable-idle-time-millis: 300000
test-on-borrow: false test-on-borrow: false

Loading…
Cancel
Save