New file |
| | |
| | | package com.dy.pipIrrRemote.rtuUpgrage; |
| | | |
| | | import com.dy.common.softUpgrade.state.UpgradeRtu; |
| | | import com.dy.common.webUtil.QueryResultVo; |
| | | 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; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Author liurunyu |
| | | * @Date 2024/11/22 14:40 |
| | | * @Description |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class RtuUpgradeResSv { |
| | | @Autowired |
| | | private RtuUpgradeSv sv ; |
| | | |
| | | public QueryResultVo<VoWatch> curUpgradeState(QueryVo qvo){ |
| | | QueryResultVo<VoWatch> rsVo = new QueryResultVo<>(); |
| | | VoWatch vo = new VoWatch() ; |
| | | List<UpgradeRtu> listFiltered = null ; |
| | | if(RtuUpgradeStateReceiverCtrl.cache != null && RtuUpgradeStateReceiverCtrl.cache.ugTaskId != null){ |
| | | vo.upgrade = this.sv.selectTaskDetail(RtuUpgradeStateReceiverCtrl.cache.ugTaskId); |
| | | vo.overall = RtuUpgradeStateReceiverCtrl.cache.ugOverallState ; |
| | | vo.rtus = new ArrayList<>() ; |
| | | if(RtuUpgradeStateReceiverCtrl.cache.ugRtuStateList != null && RtuUpgradeStateReceiverCtrl.cache.ugRtuStateList.size() > 0) { |
| | | listFiltered = filterByQuery(qvo) ; |
| | | if (listFiltered.size() > 0) { |
| | | if(qvo.pageCurr < 1){ |
| | | qvo.pageCurr = 1 ; |
| | | } |
| | | int start = (qvo.pageCurr - 1) * qvo.pageSize ; |
| | | if(start >= listFiltered.size()){ |
| | | if(listFiltered.size()%qvo.pageSize > 0){ |
| | | start = listFiltered.size() - listFiltered.size()%qvo.pageSize ; |
| | | }else{ |
| | | start = listFiltered.size() - qvo.pageSize ; |
| | | } |
| | | } |
| | | for(int i = start; i < (start + qvo.pageSize) && i < listFiltered.size(); i++){ |
| | | UpgradeRtu ugRtu = listFiltered.get(i) ; |
| | | VoWatch.VoWatchRtu rtu = new VoWatch.VoWatchRtu() ; |
| | | rtu.fromCache(ugRtu) ; |
| | | vo.rtus.add(rtu) ; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | rsVo.obj = vo ; |
| | | rsVo.pageSize = qvo.pageSize ; |
| | | rsVo.pageCurr = qvo.pageCurr ; |
| | | rsVo.calculateAndSet((long)(listFiltered==null?0:listFiltered.size()), null); |
| | | return rsVo ; |
| | | } |
| | | |
| | | /** |
| | | * 过滤结果 |
| | | * @param qvo 查询参数 |
| | | * @return 集合 |
| | | */ |
| | | private List<UpgradeRtu> filterByQuery(QueryVo qvo){ |
| | | if (qvo.status != null || qvo.result != null) { |
| | | Integer qvoStatus = qvo.status ; |
| | | Integer qvoResult = qvo.result ; |
| | | String qvoRtuAddr = qvo.rtuAddr ; |
| | | return RtuUpgradeStateReceiverCtrl.cache.ugRtuStateList.stream().filter(rtu -> { |
| | | boolean ok = false; |
| | | if (qvoStatus != null) { |
| | | if (qvoStatus == 1) { |
| | | ok = rtu.state == UpgradeRtu.STATE_RUNNING; |
| | | } else if (qvoStatus == 0) { |
| | | ok = rtu.isOver; |
| | | } |
| | | } |
| | | if (qvoResult != null) { |
| | | if (qvoResult == 1) { |
| | | ok = rtu.state == UpgradeRtu.STATE_SUCCESS; |
| | | } else if (qvoResult == 0) { |
| | | ok = rtu.state == UpgradeRtu.STATE_OFFLINE |
| | | || rtu.state == UpgradeRtu.STATE_FAILONE |
| | | || rtu.state == UpgradeRtu.STATE_FAIL |
| | | || rtu.state == UpgradeRtu.STATE_FAILOFFLINE |
| | | || rtu.state == UpgradeRtu.STATE_FAILOPEN; |
| | | } |
| | | } |
| | | if(qvoRtuAddr != null && !qvoRtuAddr.trim().equals("")){ |
| | | ok = rtu.rtuAddr.equals(qvoRtuAddr); |
| | | } |
| | | return ok; |
| | | }).toList() ; |
| | | }else{ |
| | | return RtuUpgradeStateReceiverCtrl.cache.ugRtuStateList ; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 过滤出当前长级任务中升级失败的RTU |
| | | * @return 集合 |
| | | */ |
| | | 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 -> { |
| | | if(rtu.isOver){ |
| | | if(rtu.state == UpgradeRtu.STATE_OFFLINE |
| | | || rtu.state == UpgradeRtu.STATE_UNSTART |
| | | || rtu.state == UpgradeRtu.STATE_FAILOFFLINE){ |
| | | VoUgRtuResult4Failure vo = new VoUgRtuResult4Failure() ; |
| | | vo.rtuAddr = rtu.rtuAddr ; |
| | | vo.result = "离线" ; |
| | | list.add(vo); |
| | | }else if(rtu.state == UpgradeRtu.STATE_FAILOPEN){ |
| | | VoUgRtuResult4Failure vo = new VoUgRtuResult4Failure() ; |
| | | vo.rtuAddr = rtu.rtuAddr ; |
| | | vo.result = "阀开" ; |
| | | list.add(vo); |
| | | }else if(rtu.state == UpgradeRtu.STATE_FAILONE){ |
| | | VoUgRtuResult4Failure vo = new VoUgRtuResult4Failure() ; |
| | | vo.rtuAddr = rtu.rtuAddr ; |
| | | vo.result = "一包死" ; |
| | | list.add(vo); |
| | | }else if(rtu.state == UpgradeRtu.STATE_FAIL){ |
| | | VoUgRtuResult4Failure vo = new VoUgRtuResult4Failure() ; |
| | | vo.rtuAddr = rtu.rtuAddr ; |
| | | vo.result = "多包死" ; |
| | | list.add(vo); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | return list ; |
| | | } |
| | | |
| | | /** |
| | | * 过滤出当前长级任务中升级成功的RTU |
| | | * @return 集合 |
| | | */ |
| | | 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){ |
| | | VoUgRtuResult4Success vo = new VoUgRtuResult4Success() ; |
| | | vo.rtuAddr = rtu.rtuAddr ; |
| | | vo.result = "升级成功" ; |
| | | list.add(vo); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | return list ; |
| | | } |
| | | } |