fix:更新指标完成状态
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
package com.sdm.project.common;
|
||||
package com.sdm.common.entity.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -6,7 +6,7 @@ import lombok.Getter;
|
||||
* 指标完成情况状态枚举
|
||||
*/
|
||||
@Getter
|
||||
public enum RunPerformanceStatusEnum {
|
||||
public enum PerformanceStatusEnum {
|
||||
|
||||
UNCOMPLETED("未完成", "0"),
|
||||
NOT_STARTED("不合格", "1"),
|
||||
@@ -18,7 +18,7 @@ public enum RunPerformanceStatusEnum {
|
||||
|
||||
private final String code;
|
||||
|
||||
RunPerformanceStatusEnum(String name, String code) {
|
||||
PerformanceStatusEnum(String name, String code) {
|
||||
this.name = name;
|
||||
this.code = code;
|
||||
}
|
||||
@@ -12,12 +12,8 @@ import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.common.ThreadLocalContext;
|
||||
import com.sdm.common.config.FlowableConfig;
|
||||
import com.sdm.common.entity.constants.NumberConstants;
|
||||
import com.sdm.common.entity.enums.ApproveTypeEnum;
|
||||
import com.sdm.common.entity.enums.DirTypeEnum;
|
||||
import com.sdm.common.entity.enums.FileBizTypeEnum;
|
||||
import com.sdm.common.entity.enums.NodeTypeEnum;
|
||||
import com.sdm.common.entity.enums.*;
|
||||
import com.sdm.common.entity.flowable.dto.FlowElementDTO;
|
||||
import com.sdm.common.entity.flowable.dto.ProcessDefinitionDTO;
|
||||
import com.sdm.common.entity.req.capability.FlowNodeDto;
|
||||
@@ -60,7 +56,6 @@ import com.sdm.project.model.resp.KeyResultAndTaskInfoResp;
|
||||
import com.sdm.project.model.resp.RunVersionInfoResp;
|
||||
import com.sdm.project.model.vo.SpdmNodeVo;
|
||||
import com.sdm.common.entity.resp.project.SpdmTaskVo;
|
||||
import com.sdm.project.model.vo.SpdmTaskMemberVo;
|
||||
import com.sdm.project.service.*;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -84,7 +79,6 @@ import java.nio.file.StandardCopyOption;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.function.UnaryOperator;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.sdm.common.service.BaseService.generateUuid;
|
||||
@@ -629,7 +623,7 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
||||
runPerformance.setId(null);
|
||||
runPerformance.setRunId(simulationRun.getUuid());
|
||||
runPerformance.setUuid(RandomUtil.generateString(32));
|
||||
runPerformance.setCompleteStatus(RunPerformanceStatusEnum.UNCOMPLETED.getCode());
|
||||
runPerformance.setCompleteStatus(PerformanceStatusEnum.UNCOMPLETED.getCode());
|
||||
runPerformance.setCreator(userId);
|
||||
runPerformance.setCreateTime(null);
|
||||
runPerformanceList.add(runPerformance);
|
||||
|
||||
@@ -43,7 +43,7 @@ import com.sdm.common.utils.SystemOperate;
|
||||
import com.sdm.common.utils.excel.ExcelUtil;
|
||||
import com.sdm.project.bo.ExportOperate;
|
||||
import com.sdm.project.common.MemberTypeEnum;
|
||||
import com.sdm.project.common.RunPerformanceStatusEnum;
|
||||
import com.sdm.common.entity.enums.PerformanceStatusEnum;
|
||||
import com.sdm.project.common.TaskExeStatusEnum;
|
||||
import com.sdm.project.dao.SimulationDemandMapper;
|
||||
import com.sdm.project.dao.SimulationNodeMapper;
|
||||
@@ -2075,7 +2075,7 @@ public class TaskServiceImpl implements ITaskService {
|
||||
CommonGetCompleteFromPerformanceVo commonGetCompleteFromPerformanceVo = new CommonGetCompleteFromPerformanceVo();
|
||||
commonGetCompleteFromPerformanceVo.setNodeName(eachTaskVo.getDiscipline());
|
||||
commonGetCompleteFromPerformanceVo.setCompleteStatus(StringUtils.isNotBlank(performanceNodePo.getCompleteStatus()) ?
|
||||
performanceNodePo.getCompleteStatus() : RunPerformanceStatusEnum.UNCOMPLETED.getCode());
|
||||
performanceNodePo.getCompleteStatus() : PerformanceStatusEnum.UNCOMPLETED.getCode());
|
||||
commonCompleteStatisticsFromPerformance.add(commonGetCompleteFromPerformanceVo);
|
||||
}
|
||||
// 按tag分组统计指标状态
|
||||
@@ -2154,7 +2154,7 @@ public class TaskServiceImpl implements ITaskService {
|
||||
commonGetCompleteFromPerformanceVo.setTag(resultTagId);
|
||||
commonGetCompleteFromPerformanceVo.setNodeName(nodeMap.get(resultTagIdArr[resultTagIdArr.length - 1]));
|
||||
commonGetCompleteFromPerformanceVo.setCompleteStatus(StringUtils.isNotBlank(performanceNodePo.getCompleteStatus()) ?
|
||||
performanceNodePo.getCompleteStatus() : RunPerformanceStatusEnum.UNCOMPLETED.getCode());
|
||||
performanceNodePo.getCompleteStatus() : PerformanceStatusEnum.UNCOMPLETED.getCode());
|
||||
commonCompleteStatisticsFromPerformance.add(commonGetCompleteFromPerformanceVo);
|
||||
}
|
||||
// 按tag分组统计指标状态
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -66,6 +67,9 @@ public class TaskPerformanceDto {
|
||||
@Schema(description = "标准")
|
||||
private String standard;
|
||||
|
||||
@Schema(description = "计算及结果值")
|
||||
private String resultValue;
|
||||
|
||||
@Schema(description = "租户ID")
|
||||
private String tenantId;
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ public class SimulationPerformance implements Serializable {
|
||||
@TableField("method")
|
||||
private String method;
|
||||
|
||||
@ApiModelProperty(value = "指标完成情况 未完成 不合格 风险可控 未分析 合格")
|
||||
@ApiModelProperty(value = "指标完成情况 未完成 不合格 风险可控 未分析 合格 ")
|
||||
@TableField("completeStatus")
|
||||
private String completeStatus;
|
||||
|
||||
|
||||
@@ -4,12 +4,14 @@ import com.alibaba.fastjson2.JSONArray;
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.entity.ExportExcelFormat;
|
||||
import com.sdm.common.entity.enums.ApprovalFileDataStatusEnum;
|
||||
import com.sdm.common.entity.enums.PerformanceStatusEnum;
|
||||
import com.sdm.common.entity.req.data.KnowledgeExportExcelParam;
|
||||
import com.sdm.common.entity.req.performance.PerformanceExportExcelFormat;
|
||||
import com.sdm.common.entity.req.performance.PerformanceExportExcelParam;
|
||||
import com.sdm.common.entity.resp.PageDataResp;
|
||||
import com.sdm.common.entity.resp.task.PerformanceResp;
|
||||
import com.sdm.common.service.BaseService;
|
||||
import com.sdm.common.utils.CommonUtils;
|
||||
import com.sdm.common.utils.RandomUtil;
|
||||
import com.sdm.common.utils.excel.ExcelUtil;
|
||||
import com.sdm.task.model.dto.TaskPerformanceDto;
|
||||
@@ -31,7 +33,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -131,9 +135,48 @@ public class SimulationPerformanceServiceImpl extends ServiceImpl<SimulationPerf
|
||||
public SdmResponse editPerformance(TaskPerformanceDto performanceDto) {
|
||||
SimulationPerformance simulationPerformance = new SimulationPerformance();
|
||||
BeanUtils.copyProperties(performanceDto, simulationPerformance);
|
||||
// 目标值
|
||||
String targetValueStr = simulationPerformance.getTargetValue();
|
||||
// 分析值
|
||||
String resultValueStr = simulationPerformance.getResultValue();
|
||||
// 达标方式
|
||||
String method = simulationPerformance.getMethod();
|
||||
// 校验
|
||||
if (StringUtils.isNotBlank(targetValueStr) && StringUtils.isNotBlank(resultValueStr)) {
|
||||
if (!validateNumber(targetValueStr) || !validateNumber(resultValueStr)) {
|
||||
return SdmResponse.failed("请输入有效的目标值和分析值");
|
||||
}
|
||||
try {
|
||||
// 转换为BigDecimal(自动处理整数和小数)
|
||||
BigDecimal targetValue = new BigDecimal(targetValueStr);
|
||||
BigDecimal resultValue = new BigDecimal(resultValueStr);
|
||||
|
||||
int comparison = resultValue.compareTo(targetValue);
|
||||
boolean isPassed = switch (method) {
|
||||
case "≥" -> comparison >= 0;
|
||||
case ">" -> comparison > 0;
|
||||
case "<" -> comparison < 0;
|
||||
case "≤" -> comparison <= 0;
|
||||
default -> throw new IllegalArgumentException("无效运算符: " + method);
|
||||
};
|
||||
simulationPerformance.setCompleteStatus(isPassed ? PerformanceStatusEnum.STARTED.getCode() : PerformanceStatusEnum.NOT_STARTED.getCode());
|
||||
} catch (Exception e) {
|
||||
log.error("数字格式异常:", e);
|
||||
return SdmResponse.failed("请输入有效的目标值和分析值");
|
||||
}
|
||||
}
|
||||
return SdmResponse.success(this.updateById(simulationPerformance));
|
||||
}
|
||||
|
||||
private boolean validateNumber(String input) {
|
||||
String trimmed = input.trim();
|
||||
// 前置格式检查 - 验证是不是有效数字格式
|
||||
if (!CommonUtils.isValidNumberFormat(trimmed)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse exportPerformance(PerformanceExportExcelFormat performanceExportExcelFormat, HttpServletResponse httpServletResponse) {
|
||||
SdmResponse response = new SdmResponse();
|
||||
|
||||
Reference in New Issue
Block a user