风险等级计算

This commit is contained in:
韩国东 2023-03-16 17:32:44 +08:00
parent 985250981d
commit 1ea3c6514e
2 changed files with 26 additions and 3 deletions

View File

@ -74,7 +74,7 @@
</where> </where>
</sql> </sql>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
type_id, name, parent_id, sort_id, source, modified, created, modify_time, create_time type_id, name, parent_id, sort_id, source,score_type, modified, created, modify_time, create_time
</sql> </sql>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap"> <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">

View File

@ -233,6 +233,9 @@ public class RiskController extends BaseController {
} }
} }
// Integer ambientScore =
//1.生产经营单位周边存在重要场所如学校医院养老院等重要目标如党政机关军事管理区文物保护单位主要道路桥梁等每处扣5分 //1.生产经营单位周边存在重要场所如学校医院养老院等重要目标如党政机关军事管理区文物保护单位主要道路桥梁等每处扣5分
if (rkScoreType.getSource() == 4){ if (rkScoreType.getSource() == 4){
AtomicReference<Integer> score = new AtomicReference<>(0); AtomicReference<Integer> score = new AtomicReference<>(0);
@ -344,12 +347,19 @@ public class RiskController extends BaseController {
List<RkEnterpriseScore> rkEnterpriseScores = JSONArray.parseArray(rkEntSensitiveDto.getRkSensitive(), RkEnterpriseScore.class); List<RkEnterpriseScore> rkEnterpriseScores = JSONArray.parseArray(rkEntSensitiveDto.getRkSensitive(), RkEnterpriseScore.class);
AtomicReference<Integer> score = new AtomicReference<>(80); AtomicReference<Integer> score = new AtomicReference<>(80);
AtomicReference<Integer> securityScore = new AtomicReference<>(20); AtomicReference<Integer> securityScore = new AtomicReference<>(20);
AtomicReference<Integer> ambientScore = new AtomicReference<>(20);
if (rkEnterpriseScores.size()>0){ if (rkEnterpriseScores.size()>0){
//先删除所有 //先删除所有
rkEnterpriseScoreMapper.deleteByEnterpriseId(enterpriseId); rkEnterpriseScoreMapper.deleteByEnterpriseId(enterpriseId);
//添加 //添加
rkEnterpriseScores.forEach(rkEnterpriseScore -> { rkEnterpriseScores.forEach(rkEnterpriseScore -> {
rkEnterpriseScore.setScoreId(RandomNumber.getUUid()); rkEnterpriseScore.setScoreId(RandomNumber.getUUid());
RkScoreType rkScoreType = rkScoreTypeMapper.selectByPrimaryKey(rkEnterpriseScore.getTypeId());
if(null != rkScoreType){
rkEnterpriseScore.setParentId(rkScoreType.getParentId());
rkEnterpriseScore.setScoreType(rkScoreType.getScoreType());
}
//
if (rkEnterpriseScore.getScore() != null){ if (rkEnterpriseScore.getScore() != null){
if(rkEnterpriseScore.getParentId().equals(SAFETY_ACCIDENTS) || rkEnterpriseScore.getParentId().equals(STANDARDIZATION_OF_WORK_SAFETY) ){ if(rkEnterpriseScore.getParentId().equals(SAFETY_ACCIDENTS) || rkEnterpriseScore.getParentId().equals(STANDARDIZATION_OF_WORK_SAFETY) ){
if (rkEnterpriseScore.getScoreType() == 1){ if (rkEnterpriseScore.getScoreType() == 1){
@ -357,6 +367,13 @@ public class RiskController extends BaseController {
}else{ }else{
securityScore.set(securityScore.get() - rkEnterpriseScore.getScore()); securityScore.set(securityScore.get() - rkEnterpriseScore.getScore());
} }
}else if(rkEnterpriseScore.getParentId().equals(HIGH_SENSITIVE_PLACES) || rkEnterpriseScore.getParentId().equals(KEY_OBJECTIVES) || rkEnterpriseScore.getParentId().equals(DENSELY_POPULATED_PLACES)){
//周变情况
if (rkEnterpriseScore.getScoreType() == 1){
ambientScore.set(rkEnterpriseScore.getScore()+ambientScore.get());
}else{
ambientScore.set(ambientScore.get() - rkEnterpriseScore.getScore());
}
} else{ } else{
if (rkEnterpriseScore.getScoreType() == 1){ if (rkEnterpriseScore.getScoreType() == 1){
score.set(rkEnterpriseScore.getScore()+score.get()); score.set(rkEnterpriseScore.getScore()+score.get());
@ -378,8 +395,14 @@ public class RiskController extends BaseController {
}else if (securityScore.get() <0){ }else if (securityScore.get() <0){
securityScore.set(0); securityScore.set(0);
} }
if (ambientScore.get()>20){
ambientScore.set(20);
}else if (ambientScore.get() <0){
ambientScore.set(0);
}
score.set(score.get()+securityScore.get()); score.set(score.get()+securityScore.get()+ambientScore.get());
System.out.println("score ----> "+score);
//保存诊断列表 //保存诊断列表
this.updateOrAddDiagnosis(score.get(),enterpriseId,rkEntSensitiveDto.getCategory()); this.updateOrAddDiagnosis(score.get(),enterpriseId,rkEntSensitiveDto.getCategory());