Browse Source

fix: 完善个人极端风险

main
wxc 1 year ago
parent
commit
eb1cf249ae
  1. 9
      src/main/java/com/biutag/supervision/constants/enums/BusinessTypeEnum.java
  2. 9
      src/main/java/com/biutag/supervision/constants/enums/ProblemSourcesEnum.java
  3. 57
      src/main/java/com/biutag/supervision/controller/sensitivePerception/RiskPersonalController.java
  4. 37
      src/main/java/com/biutag/supervision/controller/work/NegativeImportController.java
  5. 8
      src/main/java/com/biutag/supervision/mapper/RiskPersonalTagMapper.java
  6. 5
      src/main/java/com/biutag/supervision/pojo/dto/HdtNegativeImportDto.java
  7. 47
      src/main/java/com/biutag/supervision/pojo/entity/RiskPersonalTag.java
  8. 6
      src/main/java/com/biutag/supervision/pojo/param/RiskPersonalQueryParam.java
  9. 75
      src/main/java/com/biutag/supervision/pojo/vo/RiskPersonalVo.java
  10. 3
      src/main/java/com/biutag/supervision/service/NegativeService.java
  11. 14
      src/main/java/com/biutag/supervision/service/RiskPersonalTagService.java
  12. BIN
      src/main/resources/static/templates/黄赌问题问题下发模板.xls
  13. 2
      src/test/java/com/biutag/supervision/tools/GenCodeTests.java

9
src/main/java/com/biutag/supervision/constants/enums/BusinessTypeEnum.java

@ -38,6 +38,15 @@ public enum BusinessTypeEnum {
return null;
}
public static BusinessTypeEnum getByLabel(String label) {
for (BusinessTypeEnum businessTypeEnum : values()) {
if (businessTypeEnum.label.equals(label)) {
return businessTypeEnum;
}
}
return null;
}
public static boolean isBusinessVolume(String value) {
for (BusinessTypeEnum businessTypeEnum : values()) {
if (businessTypeEnum.value.equals(value)) {

9
src/main/java/com/biutag/supervision/constants/enums/ProblemSourcesEnum.java

@ -42,4 +42,13 @@ public enum ProblemSourcesEnum {
}
return null;
}
public static ProblemSourcesEnum getByLabel(String label) {
for (ProblemSourcesEnum problemSourcesEnum : values()) {
if (problemSourcesEnum.label.equals(label)) {
return problemSourcesEnum;
}
}
return null;
}
}

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

@ -1,19 +1,15 @@
package com.biutag.supervision.controller.sensitivePerception;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.domain.RiskPersonalDetail;
import com.biutag.supervision.pojo.entity.Model;
import com.biutag.supervision.pojo.entity.RiskModelTaskClue;
import com.biutag.supervision.pojo.entity.RiskPersonal;
import com.biutag.supervision.pojo.entity.RiskScoreRule;
import com.biutag.supervision.pojo.entity.*;
import com.biutag.supervision.pojo.param.RiskPersonalQueryParam;
import com.biutag.supervision.service.ModelService;
import com.biutag.supervision.service.RiskModelTaskClueService;
import com.biutag.supervision.service.RiskPersonalService;
import com.biutag.supervision.service.RiskScoreRuleService;
import com.biutag.supervision.pojo.vo.RiskPersonalVo;
import com.biutag.supervision.service.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
@ -24,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @author wxc
@ -36,25 +33,47 @@ import java.util.Objects;
public class RiskPersonalController {
private final RiskPersonalService riskPersonalService;
private final RiskScoreRuleService riskScoreRuleService;
private final RiskModelTaskClueService riskModelTaskClueService;
private final ModelService modelService;
private final RiskPersonalTagService riskPersonalTagService;
@GetMapping
public Result<Page<RiskPersonal>> list(RiskPersonalQueryParam param) {
public Result<Page<RiskPersonalVo>> list(RiskPersonalQueryParam param) {
LambdaQueryWrapper<RiskPersonal> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StrUtil.isNotBlank(param.getName()), RiskPersonal::getName, param.getName())
.eq(StrUtil.isNotBlank(param.getGender()), RiskPersonal::getGender, param.getGender())
.like(StrUtil.isNotBlank(param.getMobileNumber()), RiskPersonal::getMobileNumber, param.getMobileNumber())
.like(StrUtil.isNotBlank(param.getIdCode()), RiskPersonal::getIdCode, param.getIdCode())
.eq(Objects.nonNull(param.getAge()), RiskPersonal::getAge, param.getAge())
.eq(StrUtil.isNotBlank(param.getControlDepartId()), RiskPersonal::getControlDepartId, param.getControlDepartId());
queryWrapper.orderByDesc(RiskPersonal::getRiskScore).orderByDesc(RiskPersonal::getCreateTime);
return Result.success(riskPersonalService.page(Page.of(param.getCurrent(), param.getSize()), queryWrapper));
}
private final RiskScoreRuleService riskScoreRuleService;
private final RiskModelTaskClueService riskModelTaskClueService;
Page<RiskPersonal> page = riskPersonalService.page(Page.of(param.getCurrent(), param.getSize()), queryWrapper);
if (page.getRecords().isEmpty()) {
return Result.success(new Page<RiskPersonalVo>().setTotal(0).setRecords(new ArrayList<>()));
}
private final ModelService modelService;
List<RiskPersonalTag> tags = riskPersonalTagService.list(new LambdaQueryWrapper<RiskPersonalTag>()
.in(RiskPersonalTag::getIdCode, page.getRecords().stream().map(RiskPersonal::getIdCode).toList()));
List<RiskPersonalVo> list = page.getRecords().stream().map(item -> {
RiskPersonalVo riskPersonalVo = new RiskPersonalVo();
BeanUtil.copyProperties(item, riskPersonalVo);
riskPersonalVo.setSmallTags(tags.stream().filter(j -> item.getIdCode().equals(j.getIdCode())).map(RiskPersonalTag::getSmallTag).collect(Collectors.toSet()));
return riskPersonalVo;
}).toList();
return Result.success(new Page<RiskPersonalVo>().setTotal(page.getTotal()).setRecords(list));
}
/**
* 风险人员查看详情
* @param id
* @return
*/
@GetMapping("{id}")
public Result<RiskPersonalDetail> list(@PathVariable Integer id) {
public Result<RiskPersonalDetail> get(@PathVariable Integer id) {
List<RiskScoreRule> rules1 = riskScoreRuleService.list(new LambdaQueryWrapper<RiskScoreRule>().eq(RiskScoreRule::getLevel, 1));
RiskPersonal riskPersonal = riskPersonalService.getById(id);
List<RiskPersonalDetail.RiskRule> list = rules1.stream().map(rule -> {
@ -62,7 +81,7 @@ public class RiskPersonalController {
riskRule.setRiskName(rule.getRiskName());
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<Model> models = modelService.list(new LambdaQueryWrapper<Model>().in(Model::getRiskScoreRuleId, rules2.stream().map(RiskScoreRule::getId).toList()));
List<RiskModelTaskClue> records = models.isEmpty() ? new ArrayList<>() : riskModelTaskClueService.page(Page.of(1, 5), new LambdaQueryWrapper<RiskModelTaskClue>()
.eq(RiskModelTaskClue::getIdCode, riskPersonal.getIdCode())

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

@ -12,6 +12,7 @@ import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.dto.*;
import com.biutag.supervision.pojo.dto.flow.VerifyData;
import com.biutag.supervision.pojo.entity.*;
import com.biutag.supervision.pojo.vo.FileVo;
import com.biutag.supervision.service.*;
import com.biutag.supervision.util.SpringUtil;
import lombok.RequiredArgsConstructor;
@ -52,11 +53,8 @@ public class NegativeImportController {
problemMaps.put("执法办案-接处警与现场处置-警情反馈不及时、不规范", "191");
problemMaps.put("执法办案-案件办理-不及时、不如实受立案", "53");
problemMaps.put("执法办案-案件办理-调查取证不及时、不全面", "54");
problemMaps.put("执法办案-接处警与现场处置-现场处置不规范", "336");
problemMaps.put("执法办案-执法办案场所管理-嫌疑人进、出执法场所违规", "200");
}
@PostMapping
@Transactional(rollbackFor = Exception.class)
public Result<List<PoliceImport>> importExcel(@RequestPart("file") MultipartFile file) throws IOException {
@ -98,7 +96,7 @@ public class NegativeImportController {
}
SupDepart depart = departService.getOne(new LambdaQueryWrapper<SupDepart>()
.eq(SupDepart::getPid, parent.getId())
.eq(SupDepart::getShortName, item.getDepartName()).eq(SupDepart::getLevel, 3));
.eq(SupDepart::getShortName, item.getDepartName()).eq(SupDepart::getLevel, 3));
if (Objects.isNull(depart)) {
throw new RuntimeException(String.format("第条%s数据【%s】匹配不到部门", i, item.getDepartName()));
}
@ -109,8 +107,7 @@ public class NegativeImportController {
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());
if (StrUtil.isBlank(item.getThingDesc())) {
negativeDto.setThingDesc(item.getProType());
@ -118,9 +115,27 @@ public class NegativeImportController {
negativeDto.setThingDesc(item.getThingDesc());
}
negativeDto.setTimeLimit(TimeLimitEnum.WORK_137.getValue());
negativeDto.setProblemSources(ProblemSourcesEnum.ZXDC.getLabel());
negativeDto.setProblemSourcesCode(ProblemSourcesEnum.ZXDC.getValue());
negativeDto.setSpecialSupervision("1");
BusinessTypeEnum businessTypeEnum = BusinessTypeEnum.getByLabel(item.getBusinessTypeName());
if (businessTypeEnum != null) {
negativeDto.setBusinessTypeCode(businessTypeEnum.getValue());
negativeDto.setBusinessTypeName(businessTypeEnum.getLabel());
} else {
negativeDto.setBusinessTypeCode(BusinessTypeEnum.QT.getValue());
negativeDto.setBusinessTypeName(BusinessTypeEnum.QT.getLabel());
}
ProblemSourcesEnum problemSourcesEnum = ProblemSourcesEnum.getByLabel(item.getProblemSources());
if (problemSourcesEnum != null) {
negativeDto.setProblemSources(problemSourcesEnum.getLabel());
negativeDto.setProblemSourcesCode(problemSourcesEnum.getValue());
if (problemSourcesEnum.getValue().equals(ProblemSourcesEnum.ZXDC.getValue())) {
negativeDto.setSpecialSupervision("1");
}
} else {
negativeDto.setProblemSources(ProblemSourcesEnum.QT.getLabel());
negativeDto.setProblemSourcesCode(ProblemSourcesEnum.QT.getValue());
negativeDto.setSpecialSupervision("1");
}
negativeDto.setDepartId(departId);
negativeDto.setDepartName(departName);
negativeDto.setInvolveDepartId(departId);
@ -185,6 +200,10 @@ public class NegativeImportController {
verifyData.setAccountabilityTarget("1");
verifyData.setCaseNumber(item.getCaseNumber());
verifyData.setBlames(blameList);
FileVo fileVo = new FileVo();
fileVo.setFileName("默认附件(可删除).txt");
fileVo.setFilePath("/group1/M00/0A/2F/QS8Gbmc2uAWAX6V2AAAABgEL2k516.txt");
verifyData.setFiles(List.of(fileVo));
ActionDto actionDto = new ActionDto()
.setActionKey("save")

8
src/main/java/com/biutag/supervision/mapper/RiskPersonalTagMapper.java

@ -0,0 +1,8 @@
package com.biutag.supervision.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervision.pojo.entity.RiskPersonalTag;
public interface RiskPersonalTagMapper extends BaseMapper<RiskPersonalTag> {
}

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

@ -46,5 +46,10 @@ public class HdtNegativeImportDto {
@ExcelProperty("整改情况")
private String rectifyDesc;
@ExcelProperty("问题来源")
private String problemSources;
@ExcelProperty("业务类别")
private String businessTypeName;
}

47
src/main/java/com/biutag/supervision/pojo/entity/RiskPersonalTag.java

@ -0,0 +1,47 @@
package com.biutag.supervision.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
@Setter
@Getter
public class RiskPersonalTag {
// 主键
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
// 姓名
@TableField("name")
private String name;
// 证件号码
@TableField("id_code")
private String idCode;
// 大标签
@TableField("big_tag")
private String bigTag;
// 小标签
@TableField("small_tag")
private String smallTag;
// 标签时间
@TableField("tag_time")
private LocalDateTime tagTime;
// 创建时间
@TableField("create_time")
private LocalDateTime createTime;
// 逻辑删除键0-未删1已删
@TableField("del")
private Boolean del;
}

6
src/main/java/com/biutag/supervision/pojo/param/RiskPersonalQueryParam.java

@ -12,16 +12,14 @@ import lombok.Setter;
public class RiskPersonalQueryParam extends BasePage {
private String name;
// 性别男1女2
private String gender;
// 年龄
private Integer age;
// 手机号
private String mobileNumber;
private String idCode;
private String controlDepartId;
}

75
src/main/java/com/biutag/supervision/pojo/vo/RiskPersonalVo.java

@ -0,0 +1,75 @@
package com.biutag.supervision.pojo.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import java.util.HashSet;
import java.util.Set;
@Setter
@Getter
public class RiskPersonalVo {
// 主键
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
// 姓名
@TableField("name")
private String name;
// 性别男1女2
@TableField("gender")
private String gender;
// 年龄
@TableField("age")
private Integer age;
// 大标签预览
@TableField("tags")
private String tags;
// 证件号码
@TableField("id_code")
private String idCode;
// 手机号
@TableField("mobile_number")
private String mobileNumber;
// 风险指数
@TableField("risk_score")
private Double riskScore;
// 管控部门编号
@TableField("control_depart_id")
private String controlDepartId;
// 管控部门名称
@TableField("control_depart_name")
private String controlDepartName;
// 管控时间
@TableField("control_time")
private LocalDateTime controlTime;
// 创建时间
@TableField("create_time")
private LocalDateTime createTime;
// 异常信息
@TableField("error_msg")
private String errorMsg;
// 逻辑删除键0-未删1已删
@TableField("del")
private Boolean del;
private Set<String> smallTags = new HashSet<>();
}

3
src/main/java/com/biutag/supervision/service/NegativeService.java

@ -234,6 +234,9 @@ public class NegativeService extends ServiceImpl<NegativeMapper, Negative> {
.setProblemSourcesCode(ProblemSourcesEnum.JWDC.getValue())
// 警务调查默认为137工作制
.setTimeLimit(TimeLimitEnum.WORK_137.getValue())
.setMaxSignDuration(TimeLimitEnum.WORK_137.getMaxSignDuration())
.setMaxHandleDuration(TimeLimitEnum.WORK_137.getMaxHandleDuration())
.setMaxExtensionDuration(TimeLimitEnum.WORK_137.getMaxHandleDuration())
.setApprovalFlow(ApprovalFlowEnum.SECOND_APPROVAL.getValue())
// 下发时间
.setFirstDistributeTime(now)

14
src/main/java/com/biutag/supervision/service/RiskPersonalTagService.java

@ -0,0 +1,14 @@
package com.biutag.supervision.service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervision.mapper.RiskPersonalTagMapper;
import com.biutag.supervision.pojo.entity.RiskPersonalTag;
import org.springframework.stereotype.Service;
/**
* @author wxc
* @date 2024/11/15
*/
@Service
public class RiskPersonalTagService extends ServiceImpl<RiskPersonalTagMapper, RiskPersonalTag> {
}

BIN
src/main/resources/static/templates/黄赌问题问题下发模板.xls

Binary file not shown.

2
src/test/java/com/biutag/supervision/tools/GenCodeTests.java

@ -25,7 +25,7 @@ public class GenCodeTests {
@Test
public void genEntity() throws TemplateException, IOException {
String tableName = "risk_model_task_clue";
String tableName = "risk_personal_tag";
String tableSchema = "negative";
boolean genMapper = true;
boolean genService = true;

Loading…
Cancel
Save