pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult4Failure.javacopy from pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult.java copy to pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult4Failure.java
File was copied from pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult.java @@ -17,13 +17,13 @@ @Data @HeadRowHeight(26) @ContentRowHeight(22) public class VoUgRtuResult { public class VoUgRtuResult4Failure { @ExcelProperty("控制器地址") @ColumnWidth(20) @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER) public String rtuAddr; @ExcelProperty("升级结果") @ExcelProperty("失败原因") @ColumnWidth(30) @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER) public String result; pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult4Success.java
File was renamed from pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult.java @@ -17,7 +17,7 @@ @Data @HeadRowHeight(26) @ContentRowHeight(22) public class VoUgRtuResult { public class VoUgRtuResult4Success { @ExcelProperty("控制器地址") @ColumnWidth(20) @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER) pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java
@@ -69,7 +69,7 @@ this.task.forceOver(); } this.task = new UpgradeTask(); this.task.initOption(this.lastOpenMaxGoOn, this.failTryTimes, this.ugMaxRtuSameTime); this.task.initOption(this.openNoUpgrade, this.lastOpenMaxGoOn, this.failTryTimes, this.ugMaxRtuSameTime); this.task.setTask(vo); this.nowNotifyTimesAfterOver = 0 ; this.monitorFirst = true ; pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java
@@ -35,6 +35,8 @@ @JSONField(serialize = false) protected Integer ugMaxRtuSameTime ;//同时升级RTU最大个数 @JSONField(serialize = false) private Boolean openNoUpgrade ;//阀开(泵开)不执行升级 @JSONField(serialize = false) private Integer lastOpenMaxGoOn ;//阀开(泵开)状态设置以来持续最长时间(秒钟),超过这个时间认为状态无效(这个时长取决于工作报间隔) public String setupDt ;//设置时间(yyyy-mm-dd HH:MM:SS) @@ -64,7 +66,11 @@ /** * 初始化配置信息 */ public void initOption(Integer lastOpenMaxGoOn, Integer failTryTimes, Integer ugMaxRtuSameTime) { public void initOption(Boolean openNoUpgrade, Integer lastOpenMaxGoOn, Integer failTryTimes, Integer ugMaxRtuSameTime) { this.openNoUpgrade = openNoUpgrade; this.lastOpenMaxGoOn = lastOpenMaxGoOn; this.failTryTimes = failTryTimes; this.ugMaxRtuSameTime = ugMaxRtuSameTime; @@ -147,6 +153,25 @@ //当前RTU已经升级完成,无需再升级 return; }else{ if(this.openNoUpgrade){ //首先判断是否是阀门打开状态 RtuStatus rtuStatus = RtuStatusDealer.oneStatus(rtuAddr) ; if(rtuStatus != null && rtuStatus.valveOpenTrueCloseFalse != null && rtuStatus.valveOpenTrueCloseFalse.booleanValue() == true && rtuStatus.valveStatusLastTimeStamp != null){ //有状态,并且是阀开(泵开) Long now = System.currentTimeMillis() ; Long gap = now - rtuStatus.valveStatusLastTimeStamp ; if(gap < this.lastOpenMaxGoOn){ //这时采纳阀门打开状态,进而不能升级 ugRtu.isOver = true ; ugRtu.state = UpgradeRtu.STATE_FAILOPEN ; return; } } } if(UpgradeUnit.confVo.ugMaxRtuAtOnce > 0){ //设置了同时升级的RTU最大数量的限制 if(ugRtu.state == UpgradeRtuDev.STATE_OFFLINE){ pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java
@@ -12,7 +12,8 @@ import com.dy.pipIrrGlobal.pojoUg.UgRtuProgram; import com.dy.pipIrrGlobal.pojoUg.UgRtuTask; import com.dy.pipIrrGlobal.rtuMw.Web2RtuMw; import com.dy.pipIrrGlobal.voUg.VoUgRtuResult; import com.dy.pipIrrGlobal.voUg.VoUgRtuResult4Failure; import com.dy.pipIrrGlobal.voUg.VoUgRtuResult4Success; import com.dy.pipIrrGlobal.voUg.VoWatch; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; @@ -233,9 +234,9 @@ @RequestMapping(value = "/exportUgFail", method = RequestMethod.GET) public void exportUgFail(HttpServletResponse response) throws Exception { setExcelRespProp(response, "升级失败RTU列表"); List<VoUgRtuResult> rsList = resSv.exportUgFail(); List<VoUgRtuResult4Failure> rsList = resSv.exportUgFail(); EasyExcel.write(response.getOutputStream()) .head(VoUgRtuResult.class) .head(VoUgRtuResult4Failure.class) .excelType(ExcelTypeEnum.XLSX) .sheet("升级失败RTU列表") .doWrite(rsList); @@ -249,9 +250,9 @@ @RequestMapping(value = "/exportUgSuccess", method = RequestMethod.GET) public void exportUgSuccess(HttpServletResponse response) throws Exception { setExcelRespProp(response, "升级成功RTU列表"); List<VoUgRtuResult> rsList = resSv.exportUgSuccess(); List<VoUgRtuResult4Success> rsList = resSv.exportUgSuccess(); EasyExcel.write(response.getOutputStream()) .head(VoUgRtuResult.class) .head(VoUgRtuResult4Success.class) .excelType(ExcelTypeEnum.XLSX) .sheet("升级成功RTU列表") .doWrite(rsList); pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeResSv.java
@@ -2,7 +2,8 @@ import com.dy.common.softUpgrade.state.UpgradeRtu; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.voUg.VoUgRtuResult; import com.dy.pipIrrGlobal.voUg.VoUgRtuResult4Failure; import com.dy.pipIrrGlobal.voUg.VoUgRtuResult4Success; import com.dy.pipIrrGlobal.voUg.VoWatch; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -105,8 +106,8 @@ * 过滤出当前长级任务中升级失败的RTU * @return 集合 */ public List<VoUgRtuResult> exportUgFail(){ List<VoUgRtuResult> list = new ArrayList<>() ; public List<VoUgRtuResult4Failure> exportUgFail(){ List<VoUgRtuResult4Failure> list = new ArrayList<>() ; if(RtuUpgradeStateReceiverCtrl.cache != null && RtuUpgradeStateReceiverCtrl.cache.ugTaskId != null){ if(RtuUpgradeStateReceiverCtrl.cache.ugRtuStateList != null && RtuUpgradeStateReceiverCtrl.cache.ugRtuStateList.size() > 0) { RtuUpgradeStateReceiverCtrl.cache.ugRtuStateList.forEach(rtu -> { @@ -114,22 +115,22 @@ if(rtu.state == UpgradeRtu.STATE_OFFLINE || rtu.state == UpgradeRtu.STATE_UNSTART || rtu.state == UpgradeRtu.STATE_FAILOFFLINE){ VoUgRtuResult vo = new VoUgRtuResult() ; VoUgRtuResult4Failure vo = new VoUgRtuResult4Failure() ; vo.rtuAddr = rtu.rtuAddr ; vo.result = "离线" ; list.add(vo); }else if(rtu.state == UpgradeRtu.STATE_FAILOPEN){ VoUgRtuResult vo = new VoUgRtuResult() ; VoUgRtuResult4Failure vo = new VoUgRtuResult4Failure() ; vo.rtuAddr = rtu.rtuAddr ; vo.result = "阀开" ; list.add(vo); }else if(rtu.state == UpgradeRtu.STATE_FAILONE){ VoUgRtuResult vo = new VoUgRtuResult() ; VoUgRtuResult4Failure vo = new VoUgRtuResult4Failure() ; vo.rtuAddr = rtu.rtuAddr ; vo.result = "一包死" ; list.add(vo); }else if(rtu.state == UpgradeRtu.STATE_FAIL){ VoUgRtuResult vo = new VoUgRtuResult() ; VoUgRtuResult4Failure vo = new VoUgRtuResult4Failure() ; vo.rtuAddr = rtu.rtuAddr ; vo.result = "多包死" ; list.add(vo); @@ -145,14 +146,14 @@ * 过滤出当前长级任务中升级成功的RTU * @return 集合 */ public List<VoUgRtuResult> exportUgSuccess(){ List<VoUgRtuResult> list = new ArrayList<>() ; public List<VoUgRtuResult4Success> exportUgSuccess(){ List<VoUgRtuResult4Success> list = new ArrayList<>() ; if(RtuUpgradeStateReceiverCtrl.cache != null && RtuUpgradeStateReceiverCtrl.cache.ugTaskId != null){ if(RtuUpgradeStateReceiverCtrl.cache.ugRtuStateList != null && RtuUpgradeStateReceiverCtrl.cache.ugRtuStateList.size() > 0) { RtuUpgradeStateReceiverCtrl.cache.ugRtuStateList.forEach(rtu -> { if(rtu.isOver){ if(rtu.state == UpgradeRtu.STATE_SUCCESS){ VoUgRtuResult vo = new VoUgRtuResult() ; VoUgRtuResult4Success vo = new VoUgRtuResult4Success() ; vo.rtuAddr = rtu.rtuAddr ; vo.result = "升级成功" ; list.add(vo);