Browse Source

fix: 优化单位/个人画像

master
wxc 1 month ago
parent
commit
54108481a8
  1. 1
      src/main/java/com/biutag/supervision/controller/sensitiveperception/ModelController.java
  2. 2
      src/main/java/com/biutag/supervision/controller/sensitiveperception/ProfileDepartController.java
  3. 8
      src/main/java/com/biutag/supervision/controller/sensitiveperception/ProfilePoliceController.java
  4. 1
      src/main/java/com/biutag/supervision/controller/work/AlarmNotificationController.java
  5. 43
      src/main/java/com/biutag/supervision/flow/action/ConfirmationCompletionAction.java
  6. 2
      src/main/java/com/biutag/supervision/pojo/entity/AlarmNotification.java
  7. 26
      src/main/java/com/biutag/supervision/pojo/param/AlarmParam.java
  8. 2
      src/main/java/com/biutag/supervision/pojo/param/ModelQueryParam.java
  9. 10
      src/main/java/com/biutag/supervision/service/AlarmNotificationService.java
  10. 5
      src/main/java/com/biutag/supervision/service/NegativeProblemRelationService.java
  11. 2
      src/main/resources/static/templates/督察通报模板.ftl

1
src/main/java/com/biutag/supervision/controller/sensitiveperception/ModelController.java

@ -40,6 +40,7 @@ public class ModelController {
LambdaQueryWrapper<Model> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper
.like(StrUtil.isNotBlank(queryParam.getModelName()), Model::getModelName, queryParam.getModelName())
.eq(StrUtil.isNotBlank(queryParam.getModelDataType()), Model::getModelDataType, queryParam.getModelDataType())
.eq(StrUtil.isNotBlank(queryParam.getDistributionMethod()), Model::getDistributionMethod, queryParam.getDistributionMethod())
.eq(Objects.nonNull(queryParam.getClassId()), Model::getClassId, queryParam.getClassId())
.orderByDesc(Model::getCreateTime);

2
src/main/java/com/biutag/supervision/controller/sensitiveperception/ProfileDepartController.java

@ -174,7 +174,7 @@ public class ProfileDepartController {
List<NegativeProfile> negativeProfiles = negatives.stream().map(item -> {
NegativeProfile negativeProfile = new NegativeProfile();
BeanUtil.copyProperties(item, negativeProfile);
String problemType = negativeProblemRelations.stream().filter(p -> item.getId().equals(p.getNegativeId())).findFirst().map(p -> p.getOneLevelContent() + " / " + p.getTwoLevelContent() + " / " + p.getThreeLevelContent()).orElse("");
String problemType = negativeProblemRelations.stream().filter(p -> item.getId().equals(p.getNegativeId())).findFirst().map(negativeProblemRelationService::getProblemType).orElse("");
negativeProfile.setProblemType(problemType);
negativeProfile.setScore(list.stream().filter(s -> item.getId().equals(s.getNegativeId())).findFirst().map(NegativeScoreDepart::getScore).orElse(null));
return negativeProfile;

8
src/main/java/com/biutag/supervision/controller/sensitiveperception/ProfilePoliceController.java

@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -53,7 +54,6 @@ public class ProfilePoliceController {
private final NegativeBlameService negativeBlameService;
private final NegativeService negativeService;
private final NegativeScoreService negativeScoreService;
private final NegativeScorePoliceService negativeScorePoliceService;
private final NegativeProblemRelationService negativeProblemRelationService;
@ -130,10 +130,6 @@ public class ProfilePoliceController {
problemSourcesGroup.get(key).size())).toList();
profilePolice.setProblemSourcesList(problemSourcesList);
// 问题类型占比
List<String> blameIds = negativeBlameService.list(new LambdaQueryWrapper<NegativeBlame>()
.in(NegativeBlame::getNegativeId, negativeIds)
.eq(NegativeBlame::getBlameIdCode, idCode))
.stream().map(NegativeBlame::getBlameId).toList();
List<NegativeProblemRelation> problemRelations = negativeProblemRelationService.list(new LambdaQueryWrapper<NegativeProblemRelation>()
.in(NegativeProblemRelation::getNegativeId, negativeIds));
Map<String, List<NegativeProblemRelation>> groups = problemRelations.stream().collect(Collectors.groupingBy(NegativeProblemRelation::getOneLevelContent));
@ -154,7 +150,7 @@ public class ProfilePoliceController {
List<NegativeProfile> negativeProfiles = negatives.stream().map(item -> {
NegativeProfile negativeProfile = new NegativeProfile();
BeanUtil.copyProperties(item, negativeProfile);
String problemType = problemRelations.stream().filter(p -> item.getId().equals(p.getNegativeId())).findFirst().map(p -> p.getOneLevelContent() + " / " + p.getTwoLevelContent() + " / " + p.getThreeLevelContent()).orElse("");
String problemType = problemRelations.stream().filter(p -> item.getId().equals(p.getNegativeId())).findFirst().map(negativeProblemRelationService::getProblemType).orElse("");
negativeProfile.setProblemType(problemType);
negativeProfile.setScore(negativeScorePolices.stream().filter(s -> item.getId().equals(s.getNegativeId())).findFirst().map(NegativeScorePolice::getScore).orElse(null));
return negativeProfile;

1
src/main/java/com/biutag/supervision/controller/work/AlarmNotificationController.java

@ -13,7 +13,6 @@ import com.biutag.supervision.pojo.param.AlarmParam;
import com.biutag.supervision.service.AlarmFileService;
import com.biutag.supervision.service.AlarmNotificationService;
import com.biutag.supervision.service.SupDepartService;
import com.biutag.supervision.util.JSON;
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;

43
src/main/java/com/biutag/supervision/flow/action/ConfirmationCompletionAction.java

@ -50,30 +50,35 @@ public class ConfirmationCompletionAction implements Action {
doneWork(actionDto.getWorkId(), actionDto.getNegativeId());
// 最后更新状态
updateNegative(negativeId, completionData);
addNegativeScorePolice(negativeId, completionData);
}
public void addNegativeScorePolice(String negativeId, ConfirmationCompletionData completionData) {
String formula = "%s + (1 * %s) + (1 * %s)";
Negative negative = negativeService.getById(negativeId);
List<NegativeScorePolice> scorePolices = completionData.getBlames().stream().map(blame -> {
NegativeScorePolice negativeScorePolice = new NegativeScorePolice()
.setNegativeId(negativeId)
.setIdCode(blame.getBlameIdCode())
.setDiscoveryTime(negative.getDiscoveryTime())
.setIdCode(blame.getBlameIdCode());
String expression = String.format(formula,
blame.getBaseScore(),
NegativeLevelEnum.getScore(blame.getNegativeLevel()),
blame.getFrequencyScore());
negativeScorePolice.setExpression(expression);
double calculate = NumberUtil.calculate(expression);
double score = NumberUtil.roundHalfEven(calculate, 2).doubleValue();
negativeScorePolice.setScore(score);
negativeScorePolice.setCreateTime(LocalDateTime.now());
return negativeScorePolice;
}).toList();
negativeScorePoliceService.saveBatch(scorePolices);
// 属实
if (InspectCaseEnum.isItTure(negative.getCheckStatus())) {
String formula = "%s + (1 * %s) + (1 * %s)";
List<NegativeScorePolice> scorePolices = completionData.getBlames().stream().map(blame -> {
NegativeScorePolice negativeScorePolice = new NegativeScorePolice()
.setNegativeId(negativeId)
.setIdCode(blame.getBlameIdCode())
.setDiscoveryTime(negative.getDiscoveryTime())
.setIdCode(blame.getBlameIdCode());
String expression = String.format(formula,
blame.getBaseScore(),
NegativeLevelEnum.getScore(blame.getNegativeLevel()),
blame.getFrequencyScore());
negativeScorePolice.setExpression(expression);
double calculate = NumberUtil.calculate(expression);
double score = NumberUtil.roundHalfEven(calculate, 2).doubleValue();
negativeScorePolice.setScore(score);
negativeScorePolice.setCreateTime(LocalDateTime.now());
return negativeScorePolice;
}).toList();
negativeScorePoliceService.saveBatch(scorePolices);
}
}
public void updateApprove(String negativeId, String comments, Integer workId) {

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

@ -164,5 +164,5 @@ public class AlarmNotification implements Serializable {
// 通知回复时限
private Integer replyLimit;
private Integer modelId;
}

26
src/main/java/com/biutag/supervision/pojo/param/AlarmParam.java

@ -13,6 +13,8 @@ import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -24,27 +26,11 @@ import java.util.List;
@EqualsAndHashCode(callSuper = true)
public class AlarmParam extends BasePage implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 预警类型id
*/
Long alarmTypeId;
/**
* 预警开始时间
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
LocalDateTime startTime;
/**
* 预警开始时间
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
LocalDateTime endTime;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private List<Date> alarmTime = new ArrayList<>();
/**
* 回复情况0-未回复 1-已回复
@ -59,4 +45,8 @@ public class AlarmParam extends BasePage implements Serializable {
*/
String alarmContent;
private Integer modelId;
private Integer alarmTypeId;
}

2
src/main/java/com/biutag/supervision/pojo/param/ModelQueryParam.java

@ -12,4 +12,6 @@ public class ModelQueryParam extends BasePage {
private String distributionMethod;
private Integer classId;
private String modelDataType;
}

10
src/main/java/com/biutag/supervision/service/AlarmNotificationService.java

@ -1,6 +1,7 @@
package com.biutag.supervision.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -19,6 +20,7 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* @author kami on 2024-11-16 11:07:43
@ -39,11 +41,9 @@ public class AlarmNotificationService extends ServiceImpl<AlarmNotificationMappe
*/
public Page<AlarmNotification> pages(AlarmParam param) {
LambdaQueryWrapper<AlarmNotification> query = new LambdaQueryWrapper<>();
if(param.getAlarmTypeId() != null && param.getAlarmTypeId() != -1) {
query.eq(AlarmNotification::getAlarmTypeId, param.getAlarmTypeId());
}
if(param.getStartTime() != null) {
query.between(AlarmNotification::getAlarmTime, param.getStartTime(), param.getEndTime());
query.eq(Objects.nonNull(param.getAlarmTypeId()) && param.getAlarmTypeId() == 3 && Objects.nonNull(param.getModelId()), AlarmNotification::getModelId, param.getModelId());
if (CollectionUtil.isNotEmpty(param.getAlarmTime()) && param.getAlarmTime().size() == 2) {
query.between(AlarmNotification::getAlarmTime, param.getAlarmTime().get(0), param.getAlarmTime().get(1));
}
if(param.getReplyState() != null && param.getReplyState() != -1) {
query.eq(AlarmNotification::getReplyState, param.getReplyState());

5
src/main/java/com/biutag/supervision/service/NegativeProblemRelationService.java

@ -1,5 +1,6 @@
package com.biutag.supervision.service;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervision.pojo.entity.NegativeBlame;
@ -25,4 +26,8 @@ public class NegativeProblemRelationService extends ServiceImpl<NegativeProblemR
.eq(NegativeProblemRelation::getNegativeId, negativeId));
}
public String getProblemType(NegativeProblemRelation p) {
return p.getOneLevelContent() + " / " + p.getTwoLevelContent() + " / " + p.getThreeLevelContent() + (StrUtil.isNotBlank(p.getThreeLevelContentOther()) ? "(" + p.getThreeLevelContentOther() + ")" : "");
}
}

2
src/main/resources/static/templates/督察通报模板.ftl

@ -239,7 +239,7 @@
<w:sz w:val="32"/>
<w:szCs w:val="32"/>
</w:rPr>
<w:t>刘新良</w:t>
<w:t>XXX</w:t>
</w:r>
</w:p>
<w:p w14:paraId="234A513C" w14:textId="0D8C7776" w:rsidR="00305431" w:rsidRDefault="00524A4F">

Loading…
Cancel
Save