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.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@ -62,10 +63,11 @@ public class RiskPersonalController {
List<RiskScoreRule> rules2 = riskScoreRuleService.list(new LambdaQueryWrapper<RiskScoreRule>().eq(RiskScoreRule::getPid, rule.getId())
.eq(RiskScoreRule::getLevel, 2));
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())
.in(RiskModelTaskClue::getModelId, models.stream().map(Model::getId).toList())
.eq(RiskModelTaskClue::getDel, "1")
.eq(RiskModelTaskClue::getDel, "0")
.orderByDesc(RiskModelTaskClue::getScore)
.orderByAsc(RiskModelTaskClue::getCreateTime)).getRecords();
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 RiskPersonalService riskPersonalService;
private final RiskScoreRuleService riskScoreRuleService;
private final ModelService modelService;
private final RiskModelTaskClueService riskModelTaskClueService;
@RequestMapping("police")
public Result<String> updatePoliceScore() {
List<SupPolice> supPolices = policeScoreMapper.listPolice();
@ -78,21 +86,16 @@ public class ScoreController {
return Result.success("success");
}
private final RiskPersonalService riskPersonalService;
private final RiskScoreRuleService riskScoreRuleService;
private final ModelService modelService;
private final RiskModelTaskClueService riskModelTaskClueService;
@RequestMapping("personal")
public Result<String> updatePersonalScore(Integer size) {
log.info("updatePersonalScore-----------------------------------");
if (Objects.isNull(size)) {
size = 1000000;
}
List<RiskPersonal> riskPersonals = riskPersonalService.page(Page.of(1, size), new LambdaQueryWrapper<RiskPersonal>().eq(RiskPersonal::getDel, "1")
.ne(RiskPersonal::getRiskScore, 0)).getRecords();
List<RiskPersonal> riskPersonals = riskPersonalService.page(Page.of(1, size), new LambdaQueryWrapper<RiskPersonal>().eq(RiskPersonal::getDel, "0")
).getRecords();
log.info("{}条数据正在打分", riskPersonals.size());
List<RiskScoreRule> rules1 = riskScoreRuleService.list(new LambdaQueryWrapper<RiskScoreRule>().eq(RiskScoreRule::getLevel, 1));
riskPersonals.forEach(personal -> {
log.info("{}-{} 开始打分--------------------------------------", personal.getName(), personal.getIdCode());
@ -101,10 +104,14 @@ public class ScoreController {
.eq(RiskScoreRule::getLevel, 2));
double score2 = rules2.stream().mapToDouble(rule2 -> {
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>()
.eq(RiskModelTaskClue::getModelId, model.getId())
.eq(RiskModelTaskClue::getIdCode, personal.getIdCode())
.eq(RiskModelTaskClue::getDel, "1"))
.eq(RiskModelTaskClue::getDel, "0"))
.stream().mapToDouble(RiskModelTaskClue::getScore).sum();
score3 = Math.min(rule2.getScore(), 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;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel;
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.util.SpringUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -21,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.*;
@Slf4j
@RequiredArgsConstructor
@RequestMapping("negative/import")
@RestController
@ -57,6 +60,7 @@ public class NegativeImportController {
@PostMapping
@Transactional(rollbackFor = Exception.class)
public Result<List<PoliceImport>> importExcel(@RequestPart("file") MultipartFile file) throws IOException {
log.info("importExcel-----------------------------------------------");
List<HdtNegativeImportDto> negatives = new ArrayList<>();
List<HdtNegativeBlameImportDto> blames = new ArrayList<>();
@ -101,7 +105,9 @@ public class NegativeImportController {
String departId = depart.getId();
String departName = depart.getShortName();
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.setBusinessTypeCode(BusinessTypeEnum.JCJ_110.getValue());
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;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
@ -33,7 +34,7 @@ public class HdtNegativeImportDto {
private String thingDesc;
@ExcelProperty("报警时间")
private LocalDateTime discoveryTime;
private String discoveryTime;
@ExcelProperty("接警编号")
private String caseNumber;

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

@ -42,7 +42,7 @@ public class RiskPersonal {
// 风险指数
@TableField("risk_score")
private Integer riskScore;
private Double riskScore;
// 管控部门编号
@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 score;
private Double score;
// 规则描述
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
username: DCZD
password: DCZD@2024
test1:
url: jdbc:sqlserver://65.47.6.114:1433;databaseName=VisitManage_CS
username: ck1112
password: CK@20241112
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
# test1:
# url: jdbc:sqlserver://65.47.6.114:1433;databaseName=VisitManage_CS
# username: ck1112
# password: CK@20241112
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
druid:
min-evictable-idle-time-millis: 300000
test-on-borrow: false

Loading…
Cancel
Save