Commit 93121db8 authored by suhuiguang's avatar suhuiguang

1.修改rpn计算

parent 5a275471
...@@ -35,6 +35,12 @@ public class RpnChangeLog extends BasicEntity { ...@@ -35,6 +35,12 @@ public class RpnChangeLog extends BasicEntity {
@Column(name = "trigger_by") @Column(name = "trigger_by")
private Long triggerBy; private Long triggerBy;
/**
* 变化类型(巡检、评价、告警)
*/
@Column(name = "trigger_type")
private String triggerType;
private int type; private int type;
private RiskSource riskSource; private RiskSource riskSource;
...@@ -66,6 +72,14 @@ public class RpnChangeLog extends BasicEntity { ...@@ -66,6 +72,14 @@ public class RpnChangeLog extends BasicEntity {
this.rpn = rpn; this.rpn = rpn;
} }
public String getTriggerType() {
return triggerType;
}
public void setTriggerType(String triggerType) {
this.triggerType = triggerType;
}
public BigDecimal getRpni() { public BigDecimal getRpni() {
return this.rpni; return this.rpni;
} }
......
...@@ -1026,7 +1026,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService { ...@@ -1026,7 +1026,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
BigDecimal sidValue = new BigDecimal(fmea.getSidValue()); BigDecimal sidValue = new BigDecimal(fmea.getSidValue());
BigDecimal didValue = new BigDecimal(fmea.getDidValue()); BigDecimal didValue = new BigDecimal(fmea.getDidValue());
//1.1计算rpni //1.1计算rpni
BigDecimal rpni = oidValue.multiply(sidValue).multiply(didValue); BigDecimal rpni = oidValue.multiply(sidValue).multiply(didValue).setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal rpn; BigDecimal rpn;
//1.2计算rpn:为空则rpni = rpn;不为空则重新计算s*d*newo //1.2计算rpn:为空则rpni = rpn;不为空则重新计算s*d*newo
if (fmea.getNewEvaluationOid() == null) { if (fmea.getNewEvaluationOid() == null) {
...@@ -1034,7 +1034,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService { ...@@ -1034,7 +1034,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
rpn = rpni; rpn = rpni;
} else { } else {
BigDecimal newOidValue = new BigDecimal(fmea.getNewOidValue()); BigDecimal newOidValue = new BigDecimal(fmea.getNewOidValue());
rpn = newOidValue.multiply(sidValue).multiply(didValue); rpn = newOidValue.multiply(sidValue).multiply(didValue).setScale(2,BigDecimal.ROUND_HALF_UP);;
} }
List<RiskLevel> levels = riskLevelDao.findAll(); List<RiskLevel> levels = riskLevelDao.findAll();
RiskLevel newLevel = RpnUtils.getBetweenLevel(rpn, levels); RiskLevel newLevel = RpnUtils.getBetweenLevel(rpn, levels);
...@@ -1109,7 +1109,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService { ...@@ -1109,7 +1109,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
BigDecimal newOidValue = new BigDecimal(oEvaluationModel.getCoefficient()); BigDecimal newOidValue = new BigDecimal(oEvaluationModel.getCoefficient());
BigDecimal sidValue = new BigDecimal(fmea.getSidValue()); BigDecimal sidValue = new BigDecimal(fmea.getSidValue());
BigDecimal didValue = new BigDecimal(fmea.getDidValue()); BigDecimal didValue = new BigDecimal(fmea.getDidValue());
BigDecimal rpn = newOidValue.multiply(sidValue).multiply(didValue); BigDecimal rpn = newOidValue.multiply(sidValue).multiply(didValue).setScale(2,BigDecimal.ROUND_HALF_UP);
List<RiskLevel> levels = riskLevelDao.findAll(); List<RiskLevel> levels = riskLevelDao.findAll();
RiskLevel newLevel = RpnUtils.getBetweenLevel(rpn, levels); RiskLevel newLevel = RpnUtils.getBetweenLevel(rpn, levels);
fmea.setRpn(rpn); fmea.setRpn(rpn);
...@@ -1129,7 +1129,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService { ...@@ -1129,7 +1129,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
} }
} }
private void saveRpnLog(Long riskSourceId, Long fmeaId, BigDecimal rpn, BigDecimal rpni) { private void saveRpnLog(Long riskSourceId, Long fmeaId, BigDecimal rpn, BigDecimal rpni,String notifyType) {
RpnChangeLog rpnChangeLog = new RpnChangeLog(); RpnChangeLog rpnChangeLog = new RpnChangeLog();
rpnChangeLog.setRiskSourceId(riskSourceId); rpnChangeLog.setRiskSourceId(riskSourceId);
rpnChangeLog.setRpn(rpn); rpnChangeLog.setRpn(rpn);
...@@ -1137,6 +1137,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService { ...@@ -1137,6 +1137,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
rpnChangeLog.setType(RpnUtils.getChangeType(rpn,rpni)); rpnChangeLog.setType(RpnUtils.getChangeType(rpn,rpni));
rpnChangeLog.setTriggerBy(fmeaId); rpnChangeLog.setTriggerBy(fmeaId);
rpnChangeLog.setFmeaId(fmeaId); rpnChangeLog.setFmeaId(fmeaId);
rpnChangeLog.setTriggerType(notifyType);
iRpnChangeLogDao.save(rpnChangeLog); iRpnChangeLogDao.save(rpnChangeLog);
} }
...@@ -1160,7 +1161,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService { ...@@ -1160,7 +1161,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
return; return;
} }
List<Fmea> fmeas = fmeaMapper.listByRiskSourceId(riskSourceId); List<Fmea> fmeas = fmeaMapper.listByRiskSourceId(riskSourceId);
if (CollectionUtils.isEmpty(fmeas)) {//fema删除 if (CollectionUtils.isEmpty(fmeas)) {//fema全部删除
BigDecimal resetValue = new BigDecimal("0"); BigDecimal resetValue = new BigDecimal("0");
riskSource.setRpn(null); riskSource.setRpn(null);
riskSource.setRpni(null); riskSource.setRpni(null);
...@@ -1168,7 +1169,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService { ...@@ -1168,7 +1169,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
//1.更新fmea对应风险点rpn、rpni、level //1.更新fmea对应风险点rpn、rpni、level
riskSourceMapper.updateRpn(riskSource); riskSourceMapper.updateRpn(riskSource);
//2.记录风险点rpn变化流水 //2.记录风险点rpn变化流水
this.saveRpnLog(riskSource.getId(), fmeaId, resetValue, resetValue); this.saveRpnLog(riskSource.getId(), fmeaId, resetValue, resetValue,notifyType);
//3.更新父节点rpn、rpni、风险等级 //3.更新父节点rpn、rpni、风险等级
this.updateParentRpn(riskSource.getParentId()); this.updateParentRpn(riskSource.getParentId());
} else {//fmea评价、巡检、告警 } else {//fmea评价、巡检、告警
...@@ -1188,7 +1189,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService { ...@@ -1188,7 +1189,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
//1.更新fmea对应风险点rpn、rpni、level //1.更新fmea对应风险点rpn、rpni、level
riskSourceMapper.updateRpn(riskSource); riskSourceMapper.updateRpn(riskSource);
//2.记录风险点rpn变化流水 //2.记录风险点rpn变化流水
this.saveRpnLog(riskSource.getId(), fmeaId, rpn, rpni); this.saveRpnLog(riskSource.getId(), fmeaId, rpn, rpni,notifyType);
//3.更新父节点rpn、rpni、风险等级 //3.更新父节点rpn、rpni、风险等级
this.updateParentRpn(riskSource.getParentId()); this.updateParentRpn(riskSource.getParentId());
//4.极光推送给手机客户端 //4.极光推送给手机客户端
......
...@@ -370,7 +370,9 @@ ...@@ -370,7 +370,9 @@
</changeSet> </changeSet>
<changeSet author="suhuiguang" id="1588990926789-1"> <changeSet author="suhuiguang" id="1588990926789-1">
<preConditions onFail="MARK_RAN"> <preConditions onFail="MARK_RAN">
<columnExists tableName="f_risk_level " columnName="manage_level"/> <not>
<columnExists tableName="f_risk_level " columnName="manage_level"/>
</not>
</preConditions> </preConditions>
<comment>f_risk_level add column manage_level 管控级别</comment> <comment>f_risk_level add column manage_level 管控级别</comment>
<sql> <sql>
...@@ -378,5 +380,17 @@ ...@@ -378,5 +380,17 @@
add COLUMN `manage_level` tinyint(4) DEFAULT NULL COMMENT '管控级别'; add COLUMN `manage_level` tinyint(4) DEFAULT NULL COMMENT '管控级别';
</sql> </sql>
</changeSet> </changeSet>
<changeSet author="suhuiguang" id="1589165258908-1">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="f_rpn_change_log " columnName="trigger_type"/>
</not>
</preConditions>
<comment>f_rpn_change_log add column trigger_type 触发类型</comment>
<sql>
ALTER TABLE `f_rpn_change_log`
add COLUMN `trigger_type` varchar(20) DEFAULT NULL COMMENT '触发类型:巡检、告警、评价、删除' after `trigger_by`;
</sql>
</changeSet>
</databaseChangeLog> </databaseChangeLog>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment