pipIrr-platform/pipIrr-common/pom.xml
@@ -101,6 +101,11 @@ <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.2</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>3.5.3.2</version> </dependency> <!-- é¿éfastjson --> <dependency> @@ -167,6 +172,7 @@ <artifactId>log4j-slf4j-impl</artifactId> <version>2.17.2</version> </dependency> </dependencies> <build> pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreConstantManage.java
@@ -1,5 +1,6 @@ package com.dy.common.mw.core; import java.util.ArrayList; import java.util.List; import org.apache.logging.log4j.*; @@ -10,10 +11,12 @@ private final static CoreConstantManage instance = new CoreConstantManage() ; private static Long sleepBigBusy = 100L ;//å¤§å¿æ¶ï¼é¤äºæä¹ ä»»å¡ï¼è¿æ¯å ¶ä»ä»»å¡ï¼ï¼æ ¸å¿çº¿ç¨æåé´é private static Long sleepSmallBusy = 500L ;//å°å¿æ¶ï¼åªææä¹ ä»»å¡ï¼æ å ¶ä»ä»»å¡ï¼ï¼æ ¸å¿çº¿ç¨æåé´é private List<CoreConstantTimer> coreConstantTimers ; private Long coreInterval = 100L ;//æ ¸å¿çº¿ç¨æåé´é private CoreConstantManage(){ coreConstantTimers = new ArrayList<>() ; } public static CoreConstantManage getInstance(){ @@ -22,12 +25,10 @@ /** * 设置æåæ¶é¿ * @param sleepBigBusy å¤§å¿æ¶ï¼é¤äºæä¹ ä»»å¡ï¼è¿æ¯å ¶ä»ä»»å¡ï¼ï¼æ ¸å¿çº¿ç¨æåé´é * @param sleepSmallBusy å°å¿æ¶ï¼åªææä¹ ä»»å¡ï¼æ å ¶ä»ä»»å¡ï¼ï¼æ ¸å¿çº¿ç¨æåé´é * @param coreInterval æ ¸å¿çº¿ç¨æåé´é */ public void setSleep(Long sleepBigBusy, Long sleepSmallBusy){ CoreConstantManage.sleepBigBusy = sleepBigBusy ; CoreConstantManage.sleepSmallBusy = sleepSmallBusy ; public void setSleep(Long coreInterval){ this.coreInterval = coreInterval ; } public void start(){ @@ -35,7 +36,8 @@ List<CoreTask> constantTasks = CoreUnit.getAllConstantTasks(); if (constantTasks != null && constantTasks.size() > 0) { for (CoreTask task : constantTasks) { new CoreConstantThread(sleepBigBusy, sleepSmallBusy, task).start(); //new CoreConstantThread(sleepBigBusy, sleepSmallBusy, task).start(); coreConstantTimers.add(new CoreConstantTimer(coreInterval, task).start()); } } } pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreConstantThread.java
@@ -9,6 +9,15 @@ * @LastEditTime 2023/12/19 16:41 * @Description */ /** * 2024-11-21 该类已ç»å¼ç¨ï¼æ¹ç±CoreConstantTimerå®ç°ã * å½éç¨Threadå®ç°æ¶ï¼å¨while(true){}ä¸ä½¿ç¨Thread.sleep()ï¼å¯è½å¯¼è´ç䏥鿧è½é®é¢ï¼ä¸æ¨èå¨å¾ªç¯ä¸ä½¿ç¨çº¿ç¨ä¼ç ã * Java线ç¨å®ç°éç¨å æ ¸çº¿ç¨å®ç°ï¼çº¿ç¨çä¼ç åå¤éï¼ç¶æåæ¢ï¼éå婿ä½ç³»ç»è¿è¡ï¼è¿æ¯ä¸ä¸ªæå ¶èæ¶èåçæä½ã * å¨çº¿ç¨ä¼ç æè¿è¡æ¶é´è¾é¿çæ æ¯ä¸ï¼å ¶å¯¹æ§è½çå½±åè¿ä¸ç®ææ¾ï¼å 为对线ç¨ç¶æç忢并ä¸é¢ç¹ã * ä½è¥çº¿ç¨ä¼ç åè¿è¡çæ¶é´é½å¾çï¼ä¾å¦æ¯«ç§/ç§ï¼ï¼ * ç³»ç»å°é¢ç¹ç对线ç¨ç¶æè¿è¡åæ¢ï¼å¯¼è´ä¸¥éçæ§è½æèï¼å¹¶å¯¹çå¾ªç¯æ¬¡æ°çéå¢èæ¾å¤§ã */ @Deprecated public class CoreConstantThread extends Thread { private final static Logger log = LogManager.getLogger(CoreConstantThread.class.getName()) ; pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreConstantTimer.java
New file @@ -0,0 +1,45 @@ package com.dy.common.mw.core; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.util.Timer; import java.util.TimerTask; /** * @Author: liurunyu * @Date: 2024/11/21 17:13 * @Description */ public class CoreConstantTimer extends TimerTask { private final static Logger log = LogManager.getLogger(CoreConstantTimer.class.getName()) ; private Timer timer; private long coreInterval ; private CoreTask task ; public CoreConstantTimer(long coreInterval, CoreTask task){ this.timer = new Timer(); this.coreInterval = coreInterval ; this.task = task ; } public CoreConstantTimer start(){ this.timer.schedule(this, 0 , this.coreInterval); return this ; } @Override public void run() { if(task != null){ try { task.execute(); } catch (Exception e) { log.error("æä¹ ä»»å¡" + task.getClass().getName() + "æ§è¡æ¶åçå¼å¸¸" + (e.getMessage() == null ? "" : (":" + e.getMessage())), e); } } } } pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreThread.java
@@ -4,6 +4,15 @@ import com.dy.common.queue.Queue; /** * 2024-11-21 该类已ç»å¼ç¨ï¼æ¹ç±CoreTimerå®ç°ã * å½éç¨Threadå®ç°æ¶ï¼å¨while(true){}ä¸ä½¿ç¨Thread.sleep()ï¼å¯è½å¯¼è´ç䏥鿧è½é®é¢ï¼ä¸æ¨èå¨å¾ªç¯ä¸ä½¿ç¨çº¿ç¨ä¼ç ã * Java线ç¨å®ç°éç¨å æ ¸çº¿ç¨å®ç°ï¼çº¿ç¨çä¼ç åå¤éï¼ç¶æåæ¢ï¼éå婿ä½ç³»ç»è¿è¡ï¼è¿æ¯ä¸ä¸ªæå ¶èæ¶èåçæä½ã * å¨çº¿ç¨ä¼ç æè¿è¡æ¶é´è¾é¿çæ æ¯ä¸ï¼å ¶å¯¹æ§è½çå½±åè¿ä¸ç®ææ¾ï¼å 为对线ç¨ç¶æç忢并ä¸é¢ç¹ã * ä½è¥çº¿ç¨ä¼ç åè¿è¡çæ¶é´é½å¾çï¼ä¾å¦æ¯«ç§/ç§ï¼ï¼ * ç³»ç»å°é¢ç¹ç对线ç¨ç¶æè¿è¡åæ¢ï¼å¯¼è´ä¸¥éçæ§è½æèï¼å¹¶å¯¹çå¾ªç¯æ¬¡æ°çéå¢èæ¾å¤§ã */ @Deprecated public class CoreThread extends Thread{ private static Logger log = LogManager.getLogger(CoreThread.class.getName()) ; pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreTimer.java
New file @@ -0,0 +1,80 @@ package com.dy.common.mw.core; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.util.Timer; import java.util.TimerTask; /** * @Author: liurunyu * @Date: 2024/11/21 13:41 * @Description */ public class CoreTimer extends TimerTask { private static final Logger log = LogManager.getLogger(CoreTimer.class.getName()) ; private static final CoreTimer instance = new CoreTimer() ; private Long workInterval = 100L ;//æ ¸å¿çº¿ç¨æåé´é private Timer timer; private boolean stop; private CoreTimer(){ this.timer = new Timer(); this.stop = false ; } public static CoreTimer getInstance(){ return instance ; } public void stop(){ this.stop = true ; if(this.timer != null){ this.timer.cancel(); } } public boolean isStop(){ return this.stop ; } /** * 设置/æ ¸å¿çº¿ç¨æåé´é * @param workInterval /æ ¸å¿çº¿ç¨æåé´é */ public void setSleep(Long workInterval){ this.workInterval = workInterval ; } public void start(){ this.timer.schedule(this, 0 , this.workInterval); } /** * TimerTaskçrunæ¹æ³ */ @Override public void run() { try{ /** * æ¤å¤ååºå½åéåçèç¹æ°éï¼ä½ä¸ºä¸ä¸ªå®écountå¤çï¼ * åå : * å¨å¤çå®écountè¿ç¨ä¸ï¼å¯è½æçèç¹ååå°éåä¸ï¼ä¹å¯è½æ°çèç¹è¿å ¥éåä¸ï¼å³å¨å¤çè¿ç¨ä¸ï¼éåå¯è½åå¢é¿äº */ int count = CoreUnit.taskQueue.size() ; while(count > 0){ CoreTask task = (CoreTask)CoreUnit.taskQueue.pop() ; if(task != null){ task.execute(); } count-- ; } }catch(Exception e){ log.error("æ ¸å¿çº¿ç¨åçå¼å¸¸" + (e.getMessage() == null ? "" : (":" + e.getMessage())), e);; } } } pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreUnit.java
@@ -8,6 +8,7 @@ import com.dy.common.mw.UnitInterface; import com.dy.common.mw.UnitCallbackInterface; public class CoreUnit implements UnitInterface { private static final CoreUnit instance = new CoreUnit() ; @@ -36,17 +37,14 @@ if(vo == null){ throw new Exception("æ ¸å¿æ¨¡åé 置对象ä¸è½ä¸ºç©ºï¼") ; } if(vo.sleepBigBusy == null || vo.sleepSmallBusy == null){ if(vo.coreInterval == null){ throw new Exception("æ ¸å¿æ¨¡åé 置对象é´é屿§å¼ä¸è½ä¸ºç©ºï¼") ; } if(vo.sleepBigBusy <= 0){ throw new Exception("æ ¸å¿æ¨¡åé ç½®å¯¹è±¡å±æ§sleepBigBusyå¼ä¸è½å°äº0ï¼") ; if(vo.coreInterval <= 0){ throw new Exception("æ ¸å¿æ¨¡åé ç½®å¯¹è±¡å±æ§coreIntervalå¼ä¸è½å°äº0ï¼") ; } if(vo.sleepBigBusy > 1000){ throw new Exception("æ ¸å¿æ¨¡åé ç½®å¯¹è±¡å±æ§sleepBigBusyå¼ä¸è½å¤§äº1000ï¼") ; } if(vo.sleepSmallBusy > 1000){ throw new Exception("æ ¸å¿æ¨¡åé ç½®å¯¹è±¡å±æ§sleepSmallBusyå¼ä¸è½å¤§äº1000ï¼") ; if(vo.coreInterval > 1000){ throw new Exception("æ ¸å¿æ¨¡åé ç½®å¯¹è±¡å±æ§coreIntervalå¼ä¸è½å¤§äº1000ï¼") ; } if(vo.queueWarnSize == null || vo.queueMaxSize == null){ throw new Exception("æ ¸å¿æ¨¡åé 置对象éåèç¹éå¶æ°é屿§å¼ä¸è½ä¸ºç©ºï¼") ; @@ -67,18 +65,22 @@ public void start(UnitCallbackInterface callback) throws Exception { if(!started){ started = true ; /* CoreThread ct = CoreThread.getInstance() ; ct.setSleep(this.adapter.getConfig().sleepBigBusy, this.adapter.getConfig().sleepSmallBusy); ct.start(); ct.start(); */ CoreTimer ct = CoreTimer.getInstance() ; ct.setSleep(this.adapter.getConfig().coreInterval); ct.start(); CoreConstantManage ccm = CoreConstantManage.getInstance() ; ccm.setSleep(this.adapter.getConfig().sleepBigBusy, this.adapter.getConfig().sleepSmallBusy); ccm.setSleep(this.adapter.getConfig().coreInterval); ccm.start(); if(adapter.getConfig().showStartInfo){ System.out.println("æ ¸å¿æ¨¡åæåå¯å¨ï¼" + "主线ç¨ç¹å¿é´éï¼" + adapter.getConfig().sleepBigBusy + "毫ç§ï¼" + "è½»é²é´éï¼" + adapter.getConfig().sleepSmallBusy + "毫ç§" ); + "ä¸»çº¿ç¨æ§è¡é´éï¼" + adapter.getConfig().coreInterval + "毫ç§"); } callback.call(null); } pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreUnitConfigVo.java
@@ -1,8 +1,7 @@ package com.dy.common.mw.core; public class CoreUnitConfigVo { public Long sleepBigBusy = 100L ;//å¤§å¿æ¶ï¼é¤äºæä¹ ä»»å¡ï¼è¿æå ¶ä»ä»»å¡éå¤çï¼ï¼æ ¸å¿çº¿ç¨æåé´é public Long sleepSmallBusy = 500L ;//å°å¿æ¶ï¼åªææä¹ ä»»å¡ï¼æ å ¶ä»ä»»å¡éå¤çï¼ï¼æ ¸å¿çº¿ç¨æåé´é public Long coreInterval = 100L ;//å¤§å¿æ¶ï¼é¤äºæä¹ ä»»å¡ï¼è¿æå ¶ä»ä»»å¡éå¤çï¼ï¼æ ¸å¿çº¿ç¨æåé´é public Integer queueWarnSize = 1000 ;//é忥è¦é¿åº¦ public Integer queueMaxSize = 5000 ;//éåæå¤§é¿åº¦ public Boolean showStartInfo; //æ¯å¦å¨æ§å¶å°ä¸æ¾ç¤ºä¿¡æ¯ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java
@@ -22,9 +22,9 @@ @JSONField(serialize = false) public static final int STATE_SUCCESS = 2 ;//2-å级æå @JSONField(serialize = false) public static final int STATE_FAILONE = 3 ;//3-å级失败ï¼1å æ»ï¼ public static final int STATE_FAILONE = 3 ;//3-å级失败ï¼ä¸å æ»ï¼ @JSONField(serialize = false) public static final int STATE_FAIL = 4 ;//4-å级失败ï¼é1å æ»ï¼ public static final int STATE_FAIL = 4 ;//4-å级失败ï¼å¤å æ»ï¼ @JSONField(serialize = false) public static final int STATE_FAILOFFLINE = 5 ;//4-å级失败ï¼ç¦»çº¿ï¼ @JSONField(serialize = false) pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeState.java
@@ -18,6 +18,7 @@ public int successTotal ;//æææå public int failTotal ;//ææå¤±è´¥ï¼ä¸å æ»å¤±è´¥+å¤å æ»å¤±è´¥+ç¦»çº¿å¤±è´¥ï¼ public int failOneTotal ;//ææä¸å æ»å¤±è´¥ public int failMultiTotal ;//ææå¤å æ»å¤±è´¥ public int failOffTotal ;//ææç¦»çº¿å¤±è´¥ public Boolean allOver ;//ææé½ç»æï¼true:æ¯ï¼false:å¦ï¼ @@ -35,6 +36,7 @@ this.successTotal = 0; this.failTotal = 0; this.failOneTotal = 0; this.failMultiTotal = 0; this.failOffTotal = 0; this.allOver = false ; } @@ -49,7 +51,8 @@ sb.append(" \nå·²ç»ææ»æ°ï¼" + overTotal) ; sb.append(" \næåæ»æ°ï¼" + successTotal) ; sb.append(" \nå¤±è´¥æ»æ°ï¼" + failTotal) ; sb.append(" \n1å æ»å¤±è´¥æ»æ°ï¼" + failOneTotal) ; sb.append(" \nä¸å æ»å¤±è´¥æ»æ°ï¼" + failOneTotal) ; sb.append(" \nå¤å æ»å¤±è´¥æ»æ°ï¼" + failMultiTotal) ; sb.append(" \nç¦»çº¿å¤±è´¥æ»æ°ï¼" + failOffTotal) ; sb.append(" \nå ¨ç»æï¼" + allOver) ; return sb.toString() ; pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CreateRandom.java
@@ -11,13 +11,15 @@ /* public static void main(String[] args) { System.out.println(CreateRandom.Random(1, 0)); System.out.println(CreateRandom.Random(2, 0)); System.out.println(CreateRandom.Random(3, 0)); System.out.println(CreateRandom.Random(4, 0)); System.out.println(CreateRandom.Random(5, 0)); System.out.println(CreateRandom.Random(100, 0)); System.out.println(CreateRandom.Random(1256, 1234)); System.out.println(CreateRandom.random(1, 0)); System.out.println(CreateRandom.random(2, 0)); System.out.println(CreateRandom.random(3, 0)); System.out.println(CreateRandom.random(4, 0)); System.out.println(CreateRandom.random(5, 0)); System.out.println(CreateRandom.random(100, 0)); System.out.println(CreateRandom.random(1256, 1234)); System.out.println("======================="); System.out.println(create_between(10, 100)); } */ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ThreadJob.java
@@ -2,6 +2,7 @@ @SuppressWarnings("unused") @Deprecated public abstract class ThreadJob { protected Thread thread ; protected boolean stop = false ; pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/TimerTaskJob.java
@@ -7,11 +7,12 @@ * @Author: liurunyu * @Date: 2024/11/20 17:49 * @Description : * 2024-11-20ï¼ * æ¤æ½è±¡ç±»ä»£æ¿ThreadJobï¼åå ï¼ * å¨while(true){}ä¸ä½¿ç¨Thread.sleep()ï¼å¯è½å¯¼è´ç䏥鿧è½é®é¢ï¼ä¸æ¨èå¨å¾ªç¯ä¸ä½¿ç¨çº¿ç¨ä¼ç ã * Java线ç¨å®ç°éç¨å æ ¸çº¿ç¨å®ç°ï¼çº¿ç¨çä¼ç åå¤éï¼ç¶æåæ¢ï¼éå婿ä½ç³»ç»è¿è¡ï¼è¿æ¯ä¸ä¸ªæå ¶èæ¶èåçæä½ã * å¨çº¿ç¨ä¼ç æè¿è¡æ¶é´è¾é¿çæ æ¯ä¸ï¼å ¶å¯¹æ§è½çå½±åè¿ä¸ç®ææ¾ï¼å 为对线ç¨ç¶æç忢并ä¸é¢ç¹ã * ä½è¥çº¿ç¨ä¼ç åè¿è¡çæ¶é´é½å¾çï¼ä¾å¦æ¯«ç§/ç§ï¼æä¸æ¡ä¾å°±æ¯ä¸ä¸ªå ¸åæ¡ä¾ï¼ï¼ * ä½è¥çº¿ç¨ä¼ç åè¿è¡çæ¶é´é½å¾çï¼ä¾å¦æ¯«ç§/ç§ï¼ï¼ * ç³»ç»å°é¢ç¹ç对线ç¨ç¶æè¿è¡åæ¢ï¼å¯¼è´ä¸¥éçæ§è½æèï¼å¹¶å¯¹çå¾ªç¯æ¬¡æ°çéå¢èæ¾å¤§ã */ public abstract class TimerTaskJob { pipIrr-platform/pipIrr-global/pom.xml
@@ -69,7 +69,6 @@ <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.28</version> </dependency> <dependency> <groupId>org.aspectj</groupId> @@ -94,6 +93,11 @@ <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.2</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>3.5.3.2</version> </dependency> <!-- é¿éfastjson --> <dependency> <groupId>cglib</groupId> pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeInspectMapper.java
@@ -2,7 +2,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoOp.OpeInspect; import com.dy.pipIrrGlobal.voOp.VoInspect; import org.apache.ibatis.annotations.Mapper; import java.util.List; import java.util.Map; /** * @author ZhuBaoMin @@ -24,4 +28,18 @@ int updateByPrimaryKeySelective(OpeInspect record); int updateByPrimaryKey(OpeInspect record); /** * å·¡æ£æ¥è¯¢ * @param params * @return */ Long getInspectsCount(Map<String, Object> params); /** * å·¡æ£æ¥è¯¢ * @param params * @return */ List<VoInspect> getInspects(Map<String, Object> params); } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeTrackMapper.java
@@ -33,4 +33,11 @@ * @return */ int insertTracks(List<OpeTrack> list); /** * éè¿å·¡æ£IDæ¥è¯¢è½¨è¿¹ * @param inspectId * @return */ List<OpeTrack> selectByInspectId(Long inspectId); } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoInspect.java
New file @@ -0,0 +1,53 @@ package com.dy.pipIrrGlobal.voOp; import com.dy.common.po.BaseEntity; import com.dy.pipIrrGlobal.pojoOp.OpeTrack; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import java.util.Date; import java.util.List; /** * @author :WuZeYu * @Date :2024/11/20 15:37 * @LastEditTime :2024/11/20 15:37 * @Description */ @Data public class VoInspect implements BaseEntity { private static final long serialVersionUID = 202411201537001L; /** * å·¡æ£åID */ @JsonSerialize(using = ToStringSerializer.class) private Long inspectorId; /** * å·¡æ£åå§å */ private String inspectorName; /** * å·¡æ£ID */ @JsonSerialize(using = ToStringSerializer.class) private Long inspectId; /** * å¼å§å·¡æ£æ¶é´ */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date startTime; /** * ç»æå·¡æ£æ¶é´ */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date stopTime; /** * å个巡æ£ç¹ */ private List<OpeTrack> tracks; } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult.java
New file @@ -0,0 +1,30 @@ package com.dy.pipIrrGlobal.voUg; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; import lombok.Data; /** * @Author: liurunyu * @Date: 2024/11/22 14:26 * @Description */ @Data @HeadRowHeight(26) @ContentRowHeight(22) public class VoUgRtuResult { @ExcelProperty("æ§å¶å¨å°å") @ColumnWidth(20) @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER) public String rtuAddr; @ExcelProperty("åçº§ç»æ") @ColumnWidth(30) @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.LEFT, verticalAlignment = VerticalAlignmentEnum.CENTER) public String result; } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoWatch.java
@@ -28,15 +28,19 @@ public String rtuAddr ; //æ§å¶å¨å°å public Integer rate ; //è¿åº¦ public String state; //åçº§ç¶æ public Integer status; //è¿ç¨ç¶æï¼0ï¼ç¦»çº¿ï¼1ï¼å级ä¸ï¼2ï¼å级æåï¼3åçº§å¤±è´¥ï¼ public Integer status; //è¿ç¨ç¶æï¼0ï¼ç¦»çº¿ï¼1ï¼å级ä¸ï¼2ï¼å级æåï¼3å级失败ï¼ï¼å端å©ç¨å ¶è®¾ç½®å¡çæ ·å¼ public Integer reTryTimes ; //éè¯æ¬¡æ° public Boolean over ; //æ¯å¦ç»æï¼trueï¼æ¯ï¼falseï¼å¦ï¼ public Boolean success ; //æ¯å¦æåï¼null:è¿è¡ä¸ï¼trueï¼æ¯ï¼falseï¼å¦ï¼ public void fromCache(UpgradeRtu ugRtu){ this.rtuAddr = ugRtu.rtuAddr ; this.rate = (ugRtu.currentPackage * 1000)/ugRtu.totalPackage ;//å端å®ç°æ¯1000份çè¿åº¦æ¡ this.state = UpgradeRtu.getStateName(ugRtu.state) ; //è¿ç¨ç¶æï¼0ï¼ç¦»çº¿ï¼1ï¼å级ä¸ï¼2ï¼å级æåï¼3å级失败ï¼ï¼å端å©ç¨å ¶è®¾ç½®å¡çæ ·å¼ this.status = 1 ;//é»è®¤åçº§ä¸ if(ugRtu.state == UpgradeRtu.STATE_OFFLINE){ this.status = 0 ; @@ -47,8 +51,12 @@ this.status = 3; } } this.reTryTimes = ugRtu.reTryTimes ; this.over = ugRtu.isOver ; if(ugRtu.isOver){ this.success = (ugRtu.state == UpgradeRtu.STATE_SUCCESS ? true : false) ; }else{ pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -313,7 +313,7 @@ #å½ä»¤åéå°å(ä¸ç¼æ¯æºætagï¼å ¶ä¹æ¯æ°æ®æºåç¼åç§°) ym: comSendUrl: "http://127.0.0.1:8070/rtuMw/com/send" ugTaskSendUrl: "http://192.168.40.132:8070/rtuMw/com/upgradeRtu" ugTaskSendUrl: "http://127.0.0.1:8070/rtuMw/com/upgradeRtu" rtuLogFileUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogFile" rtuLogTextUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogText" sp: pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeInspectMapper.xml
@@ -88,4 +88,52 @@ stop_time = #{stopTime,jdbcType=TIMESTAMP} where id = #{id,jdbcType=BIGINT} </update> <!-- æ¥è¯¢æ»æ° --> <select id="getInspectsCount" resultType="java.lang.Long"> SELECT count(*) FROM `ope_inspect` oi INNER JOIN `ba_user` ON oi.inspector_id = ba_user.id <where> ba_user.deleted = 0 <if test="inspectorId != null"> AND oi.inspector_id = #{inspectorId} </if> <if test="inspectId != null"> AND oi.id = #{inspectId} </if> <if test="inspectorName != null"> AND ba_user.`name` LIKE CONCAT('%',#{inspectorName},'%') </if> <if test="timeStart != null and timeStop != null"> AND oi.start_time BETWEEN #{timeStart} AND #{timeStop} </if> </where> </select> <!-- æ¥è¯¢å表 --> <select id="getInspects" resultType="com.dy.pipIrrGlobal.voOp.VoInspect"> SELECT oi.inspector_id AS inspectorId, ba_user.`name` AS inspectorName, oi.id AS inspectId, oi.start_time AS startTime, oi.stop_time AS stopTime FROM `ope_inspect` oi INNER JOIN `ba_user` ON oi.inspector_id = ba_user.id <where> ba_user.deleted = 0 <if test="inspectorId != null"> AND oi.inspector_id = #{inspectorId} </if> <if test="inspectId != null"> AND oi.id = #{inspectId} </if> <if test="inspectorName != null"> AND ba_user.`name` LIKE CONCAT('%',#{inspectorName},'%') </if> <if test="timeStart != null and timeStop != null"> AND oi.start_time BETWEEN #{timeStart} AND #{timeStop} </if> </where> </select> </mapper> pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeTrackMapper.xml
@@ -108,4 +108,15 @@ (#{item.id}, #{item.inspectId}, #{item.lng}, #{item.lat}, #{item.locateTime}) </foreach> </insert> <!--æ ¹æ®å·¡æ£idæ¥è¯¢è½¨è¿¹--> <!-- <select id="selectByInspectId" resultMap="BaseResultMap">--> <select id="selectByInspectId" resultType="com.dy.pipIrrGlobal.pojoOp.OpeTrack"> SELECT id, inspect_id AS inspectId, lng, lat, locate_time AS locateTime FROM ope_track WHERE inspect_id = #{inspectId} </select> </mapper> pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml
@@ -157,7 +157,7 @@ 1 AS auditStatus FROM se_card_operate ope INNER JOIN ba_user us ON ope.operator = us.id WHERE Date(ope.operate_dt) = #{operateDate} WHERE Date(ope.operate_dt) = #{operateDate} AND ope.operate_valid = 2 GROUP BY ope.operator, Date(ope.operate_dt) UNION ALL pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -336,11 +336,11 @@ //RTUè¿ç¨å级模å UpgradeUnitConfigVo ugVo = new UpgradeUnitConfigVo(); ugVo.enable = conf.getSetAttrBoolean(doc, "config.upgrade", "enable", null, null) ; ugVo.noOneRtuUpgradeMaxDuration = conf.getSetAttrPlusInt(doc, "config.upgrade", "noOneRtuUpgradeMaxDuration", null, 5, 3600, null); ugVo.noOneRtuUpgradeMaxDuration = conf.getSetAttrPlusInt(doc, "config.upgrade", "noOneRtuUpgradeMaxDuration", null, 5, 360000, null); ugVo.noOneRtuUpgradeMaxDuration = ugVo.noOneRtuUpgradeMaxDuration * 1000 ;//åææ¯«ç§ ugVo.failTryTimes = conf.getSetAttrPlusInt(doc, "config.upgrade", "failTryTimes", null, 0, 100, null); ugVo.ugMaxRtuAtOnce = conf.getSetAttrPlusInt(doc, "config.upgrade", "ugMaxRtuAtOnce", null, 0, 1000000, null); ugVo.rtuOffLineWaitDuration = conf.getSetAttrPlusInt(doc, "config.upgrade", "rtuOffLineWaitDuration", null, 1, 36000, null); ugVo.rtuOffLineWaitDuration = conf.getSetAttrPlusInt(doc, "config.upgrade", "rtuOffLineWaitDuration", null, 1, 3600000, null); ugVo.rtuOffLineWaitDuration = ugVo.rtuOffLineWaitDuration * 1000;//åææ¯«ç§ ugVo.notifyStateInterval = conf.getSetAttrPlusInt(doc, "config.upgrade", "notifyStateInterval", null, 1, 300, null); ugVo.notifyStateInterval = ugVo.notifyStateInterval * 1000;//åææ¯«ç§ @@ -370,8 +370,7 @@ // /////////////// // æ ¸å¿ CoreUnitConfigVo coreConfVo = new CoreUnitConfigVo(); coreConfVo.sleepBigBusy = conf.getSetAttrPlusInt(doc, "config.core", "sleepBigBusy", null, 1, 200, null).longValue() ; coreConfVo.sleepSmallBusy = conf.getSetAttrPlusInt(doc, "config.core", "sleepSmallBusy", null, 2, 1000, null).longValue(); coreConfVo.coreInterval = conf.getSetAttrPlusInt(doc, "config.core", "coreInterval", null, 1, 200, null).longValue() ; coreConfVo.queueWarnSize = ServerProperties.cacheUpDownDataWarnCount ; coreConfVo.queueMaxSize = ServerProperties.cacheUpDownDataMaxCount ; coreConfVo.showStartInfo = showStartInfo ; pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java
@@ -64,6 +64,11 @@ this.task = new UpgradeTask(); this.task.initOption(this.failTryTimes, this.ugMaxRtuSameTime); this.task.setTask(vo); log.error("==================================================") ; log.error("= =") ; log.error("=å½å设置äºå级任å¡ï¼å ¶ä¸RTUæ" + vo.rtuAddrList.size() + "个 =") ; log.error("= =") ; log.error("==================================================") ; }catch (Exception e){ ex = e ; }finally { @@ -182,22 +187,51 @@ //åçº§ä»»å¡æªå®æ //å·¥ä½1ï¼å¤ææ¯å¦æ ä»»ä½ä¸ä¸ªRTUè¿è¡è¿å级ï¼å¹¶ä¸è¾¾å°æ¶éï¼å认为å½åå级任å¡å®æ //-1:æ ä¸RTUå级ä¸è¶ æ¶ï¼0ï¼æ RTUåçº§ä½æªè¶ æ¶çå¾ ï¼1æRTUå级æ£å¸¸æ§è¡ //int temp = 1 ; int temp = this.task.countNoOneRtuUpgradeInDuration() ; if(temp == -1){ //å½å没æRTUè¿è¡è¿å级ï¼èä¸è¶ æ¶äºï¼è®¤ä¸ºä»»å¡å·²ç»å®æ log.error("==================================================") ; log.error("= =") ; log.error("=å½å没æRTUè¿è¡è¿å级ï¼èä¸è¶ æ¶äºï¼è®¤ä¸ºä»»å¡å·²ç»å®æ =") ; log.error("= =") ; log.error("==================================================") ; this.task.taskIsOver = true ; //ä»»å¡å·²ç»å®æ this.stop(); }else if(temp == 1){ //å½åæRTUè¿è¡è¿å级 //å·¥ä½2ï¼ç»è®¡å½åæ£å¨å级çRTUæ°éï¼ä¸ºåæ¶å级æ°ééå¶ååå¤ this.task.countRunningRtuCount() ; //å·¥ä½3ï¼ç»è®¡éè¦å级ä½å½å离线RTUçæ åµï¼è¶ è¿æ¶éç设å¤ä¸ºåçº§å®æ this.task.countOffRtuAndSetIfOver() ; //å·¥ä½3ï¼ç»è®¡éè¦å级ä½å½å离线RTUçæ åµï¼è¶ è¿æ¶éç设置为åçº§å®æ int tmp = this.task.countOffRtuAndSetIfOver() ; if(tmp >= 1){ //è¶ æ¶ï¼å¼ºå¶è®¾ç½®ä¸äºRTUå级失败并ä¸åçº§å®æï¼ log.error("==================================================") ; log.error("= =") ; log.error("=è¶ æ¶ï¼å¼ºå¶è®¾ç½®" + tmp + "个RTUå级失败并ä¸åçº§å®æ =") ; log.error("= =") ; log.error("==================================================") ; }else if(tmp == 0){ log.error("==================================================") ; log.error("= =") ; log.error("=è¶ æ¶ï¼å¼ºå¶è®¾ç½®0个RTUå级失败并ä¸åçº§å®æ =") ; log.error("= =") ; log.error("==================================================") ; }else{//tmp = -1 //æ ä»»å¡é»è¾ } //å·¥ä½4ï¼ç»è®¡æ¯å¦å ¨é¨åçº§å®æ this.task.taskIsOver = this.task.countIsAllOver() ; if(this.task.taskIsOver){ log.error("==================================================") ; log.error("= =") ; log.error("=åçº§å ¨é¨ç»æï¼è®¾ç½®å级任å¡å®æ =") ; log.error("= =") ; log.error("==================================================") ; } }else if(temp == 0){ //ä¸ä½ä¸º //å½å没æä¸ä¸ªRTUè¿è¡è¿å级ï¼ä¹æ²¡æè¶ æ¶ï¼ä¸ä½ä¸º } if(this.task.taskIsOver){ if(!this.task.taskOverType.equals(UpgradeTask.TaskOverType_Force)){ pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java
@@ -13,6 +13,7 @@ import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicBoolean; /** * @Author: liurunyu @@ -136,8 +137,7 @@ //rtuä¸å¨å级ä¹å return ; } } if(ugRtu != null){ }else{ if(ugRtu.isOver){ //å½åRTUå·²ç»åçº§å®æï¼æ éåå级 return; @@ -173,9 +173,6 @@ ugRtu.trigger(code, protocolName, protocolVersion, this.softFileDataGrp, callbackCom) ; } } }else{ //rtuä¸å¨å级ä¹å return ; } } } @@ -202,19 +199,21 @@ if(this.taskVo.rtuAddrList != null && this.taskVo.rtuAddrList.size() > 0){ state.rtuTotal = this.taskVo.rtuAddrList.size() ; if(this.upgradeRtus != null && this.upgradeRtus.size() > 0){ this.upgradeRtus.values().stream().forEach(info ->{ AtomicBoolean hasRunning = new AtomicBoolean(false); this.upgradeRtus.values().forEach(info ->{ if(info.state == UpgradeRtu.STATE_OFFLINE){ state.offLineTotal ++ ; state.offLineTotal++ ; }else if(info.state == UpgradeRtu.STATE_UNSTART){ state.unStartTotal ++ ; }else if(info.state == UpgradeRtu.STATE_RUNNING){ state.runningTotal ++ ; }else if(info.state == UpgradeRtu.STATE_SUCCESS) { state.successTotal++; }else if(info.state == UpgradeRtu.STATE_FAIL) { state.failTotal++; }else if(info.state == UpgradeRtu.STATE_FAILONE) { state.failOneTotal++; state.failTotal++; }else if(info.state == UpgradeRtu.STATE_FAIL) { state.failMultiTotal++; state.failTotal++; }else if(info.state == UpgradeRtu.STATE_FAILOFFLINE) { state.failTotal++; @@ -222,8 +221,15 @@ } if(info.isOver){ state.overTotal++; }else{ hasRunning.set(true); } }); if(!hasRunning.get()){ state.allOver = true ; }else{ state.allOver = false ; } } } return state ; @@ -266,7 +272,9 @@ } /////////////////////////////////////////////////////////// //以䏿¹æ³ä¸ºå 鍿å¡ï¼ä¸å¯¹å¤æä¾æå¡ // // 以䏿¹æ³ä¸ºå 鍿å¡ï¼ä¸å¯¹å¤æä¾æå¡ // /////////////////////////////////////////////////////////// /** @@ -312,20 +320,26 @@ /** * ç»è®¡éè¦å级ä½å½å离线RTUçæ åµï¼è¶ è¿æ¶éç设å¤ä¸ºåçº§å®æ * @return -1:没æè¶ æ¶ï¼0è¶ æ¶äºä¸æ å 离线被强å¶è®¾ç½®åçº§å®æçRTUï¼>0离线被强å¶è®¾ç½®åçº§å®æçRTUæ°é */ protected void countOffRtuAndSetIfOver() { protected int countOffRtuAndSetIfOver() { Long now = System.currentTimeMillis() ; if(now - this.setupDtLong > UpgradeUnit.confVo.rtuOffLineWaitDuration){ //rtu离线ï¼çå¾ å ¶åçº§çæ¶é¿(毫ç§)ï¼è¶ è¿é ç½®çæå¤§æ¶é¿ï¼è®¾ç½®å ¶å级失败ï¼ä¸è®¾ç½®å级任å¡å®æ int count = 0 ; if (this.taskVo.rtuAddrList != null && this.taskVo.rtuAddrList.size() > 0) { Collection<UpgradeRtu> col = this.upgradeRtus.values() ; for(UpgradeRtu info : col){ if(info.state == UpgradeRtu.STATE_OFFLINE){ info.isOver = true ; info.state = UpgradeRtu.STATE_FAILOFFLINE ; count ++ ; } } } return count ; }else{ return -1 ; } } pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(spɳÅÌ).xml
@@ -124,14 +124,12 @@ /> <!-- sleepBigBusyï¼ä¸»çº¿ç¨å¤§å¿æ¶æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ sleepSmallBusyï¼ä¸»çº¿ç¨å°å¿æ¶æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ coreIntervalï¼ä¸»çº¿ç¨æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ queueWarnSize: ç¼åéåèç¹æ°è¦åæ°é queueMaxSize: ç¼åéåèç¹æ°æå¤§æ°é --> <core sleepBigBusy="100" sleepSmallBusy="500" coreInterval="100" queueWarnSize="100000" queueMaxSize="300000" /> pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(test²âÊÔ).xml
@@ -124,14 +124,12 @@ /> <!-- sleepBigBusyï¼ä¸»çº¿ç¨å¤§å¿æ¶æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ sleepSmallBusyï¼ä¸»çº¿ç¨å°å¿æ¶æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ coreIntervalï¼ä¸»çº¿ç¨æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ queueWarnSize: ç¼åéåèç¹æ°è¦åæ°é queueMaxSize: ç¼åéåèç¹æ°æå¤§æ°é --> <core sleepBigBusy="100" sleepSmallBusy="500" coreInterval="100" queueWarnSize="100000" queueMaxSize="300000" /> pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(ymԪı).xml
@@ -124,14 +124,12 @@ /> <!-- sleepBigBusyï¼ä¸»çº¿ç¨å¤§å¿æ¶æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ sleepSmallBusyï¼ä¸»çº¿ç¨å°å¿æ¶æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ coreIntervalï¼ä¸»çº¿ç¨æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ queueWarnSize: ç¼åéåèç¹æ°è¦åæ°é queueMaxSize: ç¼åéåèç¹æ°æå¤§æ°é --> <core sleepBigBusy="100" sleepSmallBusy="500" coreInterval="100" queueWarnSize="100000" queueMaxSize="300000" /> pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
@@ -63,10 +63,10 @@ notifyStateInterval: åçº§ç¶æéç¥é´éï¼ç§ï¼ --> <upgrade enable="true" noOneRtuUpgradeMaxDuration="600" noOneRtuUpgradeMaxDuration="1200" failTryTimes="1" ugMaxRtuAtOnce="1000" rtuOffLineWaitDuration="1200" rtuOffLineWaitDuration="1800" notifyStateInterval="2" /> @@ -124,14 +124,12 @@ /> <!-- sleepBigBusyï¼ä¸»çº¿ç¨å¤§å¿æ¶æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ sleepSmallBusyï¼ä¸»çº¿ç¨å°å¿æ¶æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ coreIntervalï¼ä¸»çº¿ç¨æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ queueWarnSize: ç¼åéåèç¹æ°è¦åæ°é queueMaxSize: ç¼åéåèç¹æ°æå¤§æ°é --> <core sleepBigBusy="100" sleepSmallBusy="500" coreInterval="100" queueWarnSize="100000" queueMaxSize="300000" /> pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/PipIrrMwSimulateRtuApplication.java
@@ -34,6 +34,27 @@ public class PipIrrMwSimulateRtuApplication implements CommandLineRunner { public static void main(String[] args) { if(args != null && args.length > 0){ if(args.length == 3){ if(args[0] instanceof String){ if(args[0] != null && !args[0].trim().equals("")){ String rtuAddr = (String)args[0] ;//æ¬æ¨¡æå¨æ¨¡æRTUå°å ServerProperties.argRtuAddr = rtuAddr ; } if(args[1] != null && !args[1].trim().equals("")){ Integer oneDie = Integer.parseInt(args[1]) ;//ä¸å æ»ï¼1æ¯ï¼0å¦ ServerProperties.argOneDie = oneDie == 1?true:false ; } if(args[2] != null && !args[2].trim().equals("")){ Integer multiDie = Integer.parseInt(args[2]) ;//å¤å æ»ï¼1æ¯ï¼0å¦ ServerProperties.argMultiDie = multiDie == 1?true:false ; } if(ServerProperties.argOneDie && ServerProperties.argMultiDie){ ServerProperties.argOneDie = false ; } } } } new SpringApplicationBuilder(PipIrrMwSimulateRtuApplication.class) .web(WebApplicationType.NONE)//ä¸å¯å¨webæå¡ .run(args); pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/Server.java
@@ -44,6 +44,16 @@ this.startUnits() ; if(ServerProperties.argRtuAddr != null && !ServerProperties.argRtuAddr.trim().equals("")){ System.out.println("åæ°RTUå°åï¼" + ServerProperties.argRtuAddr) ; ServerProperties.rtuAddr = ServerProperties.argRtuAddr ; }else{ System.out.println("é ç½®RTUå°åï¼" + ServerProperties.rtuAddr) ; } System.out.println("å¯å¨ä¸å æ»ï¼" + (ServerProperties.argOneDie==null?"å¦":(ServerProperties.argOneDie?"æ¯":"å¦"))) ; System.out.println("å¯å¨å¤å æ»ï¼" + (ServerProperties.argMultiDie==null?"å¦":(ServerProperties.argMultiDie?"æ¯":"å¦"))) ; String svName ; try{ svName = this.conf.getSetAttrTxt(this.doc, "config.server", "name", null, false, null) ; pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/ServerProperties.java
@@ -9,4 +9,10 @@ public class ServerProperties { public static String rtuAddr ; //ç¨åºå¯å¨åæ°ï¼ public static String argRtuAddr ; public static Boolean argOneDie = false ; public static Boolean argMultiDie = false ; } pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/TcpHandler.java
@@ -67,11 +67,11 @@ */ @Override public void messageSent(IoSession session, Object message) throws Exception { log.info("ç½ç»åéäºæ°æ®ï¼" + (session==null?"":(session.getRemoteAddress() != null?("ä¸é´ä»¶ç½åæ¯ï¼" + session.getRemoteAddress().toString()):"")) ); if(message != null){ byte[] bs = (byte[])message ; log.info("ç½ç»åéäºæ°æ®ï¼" + ByteUtil.bytes2Hex(bs, true)); log.info("\nç½ç»åéäºæ°æ®ï¼" + (session==null?"":(session.getRemoteAddress() != null?("ä¸é´ä»¶ç½åæ¯ï¼" + session.getRemoteAddress().toString()):"")) + ("\næ°æ®ï¼" + ByteUtil.bytes2Hex(bs, true))); } } pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java
@@ -2,6 +2,8 @@ import com.dy.common.mw.protocol.p206V1.ProtocolConstantV206V1; import com.dy.common.util.ByteUtil; import com.dy.common.util.CreateRandom; import com.dy.simRtu.ServerProperties; import com.dy.simRtu.tcpClient.upData.*; /** @@ -10,6 +12,8 @@ * @Description ä¸é´ä»¶çä¸è¡æ°æ® */ public class DownData { private static int count9602 = 0; public void parseData(byte[] bs){ if(bs != null && bs.length > 0){ @@ -32,16 +36,34 @@ String cdPre = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V1.UG_codeIndex, 1); if(cdPre.equals("16")){ //å级åè½ç UpHeartBeat.upHeartBeat = false ;//ä¸ä¸è¡å¿è·³ UpHeartBeat.upHeartBeat = false ;//ç¦æ¢ä¸è¡å¿è·³ if(bs.length >= ProtocolConstantV206V1.UG_lenHead2Cmd + 1){ String cdSuf = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V1.UG_codeIndex + 1, 1); String cd = cdPre + cdSuf; if(cd.equals("1601")){ //å级é ç½® UpCd9601.upData() ; if(ServerProperties.argOneDie){ UpHeartBeat.upHeartBeat = true ;//使è½ä¸è¡å¿è·³ }else{ UpCd9601.upData() ; } }else if(cd.equals("1602")){ //åçº§æ°æ® UpCd9602.upData() ; count9602 ++ ; if(ServerProperties.argMultiDie){ if(count9602 > 10){ int random = CreateRandom.create_between(10, 100) ; if(random > 50){ UpHeartBeat.upHeartBeat = true ;//使è½ä¸è¡å¿è·³ }else{ UpCd9602.upData() ; } }else{ UpCd9602.upData() ; } }else{ UpCd9602.upData() ; } }else if(cd.equals("1603")){ //åçº§æ ¡éª UpCd9603.upData() ; pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/resources/config.xml
@@ -10,5 +10,5 @@ --> <base rtuAddr="532328000214"></base> <!-- --> <tcpCl mwServerIp="192.168.40.132" mwServerPort="60000" connectTimeout="3000" /> <tcpCl mwServerIp="192.168.40.166" mwServerPort="60000" connectTimeout="3000" /> </config> pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/˵Ã÷.txt
New file @@ -0,0 +1 @@ æ¬æ¨¡åæ¯RTU模æå¨ï¼æ¨¡æRTUå级è¿ç¨ pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/captcha/CaptchaCtrl.java
@@ -74,7 +74,7 @@ baCaptcha.setCode(captchaDomain.getCode()); baCaptcha.setExpiration(calendar.getTimeInMillis()); Long rec = captchaSV.addCaptcha(baCaptcha); System.out.println("token: " + captchaDomain.getToken() + "; code: " + captchaDomain.getCode()); //System.out.println("token: " + captchaDomain.getToken() + "; code: " + captchaDomain.getCode()); // æ ç¨ä¿¡æ¯è®¾ç©º captchaDomain.setText(null); @@ -118,7 +118,7 @@ baCaptcha.setCode(captchaDomain.getCode()); baCaptcha.setExpiration(calendar.getTimeInMillis()); Long rec = captchaSV.addCaptcha(baCaptcha); System.out.println("token: " + captchaDomain.getToken() + "; code: " + captchaDomain.getCode()); //System.out.println("token: " + captchaDomain.getToken() + "; code: " + captchaDomain.getCode()); // 以æä»¶æµçå½¢å¼ï¼è¾åºéªè¯ç å¾ç ServletOutputStream out = null; pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java
@@ -4,19 +4,20 @@ import com.dy.common.util.IDLongGenerator; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrApp.inspect.dto.Inspects; import com.dy.pipIrrApp.inspect.qo.QoInspect; import com.dy.pipIrrGlobal.pojoOp.OpeInspect; import com.dy.pipIrrGlobal.pojoOp.OpeTrack; import com.dy.pipIrrGlobal.voOp.VoInspect; import com.dy.pipIrrGlobal.voOp.VoIssueReport; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; import java.util.Date; import java.util.List; @@ -121,4 +122,21 @@ return BaseResponseUtils.buildErrorMsg("æ¨æäº¤çå·¡æ£è½¨è¿¹ä¸ºç©º"); } /** * æ¥è¯¢å·¡æ£è½¨è¿¹ * @param qo * @return */ @GetMapping(path = "/getInspects") @SsoAop() public BaseResponse<QueryResultVo<List<VoInspect>>> getInspects(QoInspect qo){ try{ QueryResultVo<List<VoInspect>> res = inspectSv.getInspects(qo); return BaseResponseUtils.buildSuccess(res); }catch (Exception e){ log.error("è·åå·¡æ£å表å¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()); } } } pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java
@@ -1,14 +1,20 @@ package com.dy.pipIrrApp.inspect; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrApp.inspect.qo.QoInspect; import com.dy.pipIrrGlobal.daoOp.OpeInspectMapper; import com.dy.pipIrrGlobal.daoOp.OpeTrackMapper; import com.dy.pipIrrGlobal.pojoOp.OpeInspect; import com.dy.pipIrrGlobal.pojoOp.OpeTrack; import com.dy.pipIrrGlobal.voOp.VoInspect; import com.dy.pipIrrGlobal.voOp.VoIssueReport; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; /** * @author ZhuBaoMin @@ -28,6 +34,7 @@ /** * æ·»å å·¡æ£è®°å½ * * @param po * @return */ @@ -38,6 +45,7 @@ /** * ä¿®æ¹å·¡æ£è®°å½ * * @param po * @return */ @@ -47,6 +55,7 @@ /** * æ¹éæ·»å å·¡æ£è½¨è¿¹ * * @param list * @return */ @@ -54,5 +63,41 @@ return opeTrackMapper.insertTracks(list); } /** * å·¡æ£æ¥è¯¢ * * @param queryVo * @return */ public QueryResultVo<List<VoInspect>> getInspects(QoInspect queryVo) { //å®åæ¥è¯¢å å¼è®°å½çèµ·æ¢æ¶é´ String timeStart = queryVo.getTimeStart(); String timeStop = queryVo.getTimeStop(); if (timeStart != null) { timeStart = timeStart + " 00:00:00"; queryVo.setTimeStart(timeStart); } if (timeStop != null) { timeStop = timeStop + " 23:59:59"; queryVo.setTimeStop(timeStop); } Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); Long itemTotal = opeInspectMapper.getInspectsCount(params); QueryResultVo<List<VoInspect>> rsVo = new QueryResultVo<>(); rsVo.pageSize = queryVo.pageSize; rsVo.pageCurr = queryVo.pageCurr; rsVo.calculateAndSet(itemTotal, params); List<VoInspect> inspects = opeInspectMapper.getInspects(params); for (int i = 0; i < inspects.size(); i++) { List<OpeTrack> tracks = opeTrackMapper.selectByInspectId(inspects.get(i).getInspectId()); inspects.get(i).setTracks(tracks); } rsVo.obj = inspects; return rsVo; } } pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/qo/QoInspect.java
New file @@ -0,0 +1,41 @@ package com.dy.pipIrrApp.inspect.qo; import com.dy.common.webUtil.QueryConditionVo; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; /** * @author :WuZeYu * @Date :2024/11/20 15:19 * @LastEditTime :2024/11/20 15:19 * @Description */ @Data public class QoInspect extends QueryConditionVo { /** * å·¡æ£ID */ @JsonSerialize(using = ToStringSerializer.class) private Long inspectId; /** * å·¡æ£åID */ @JsonSerialize(using = ToStringSerializer.class) private Long inspectorId; /** * å·¡æ£åå§å */ private String inspectorName; /** * ãå¼å§å·¡æ£çæ¶é´ï¼å¼å§èå´ */ private String timeStart; /** * ãå¼å§å·¡æ£çæ¶é´ï¼ç»æèå´ */ private String timeStop; } pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/program/UgRtuProgramCtrl.java
@@ -75,7 +75,7 @@ } return BaseResponseUtils.buildSuccess(po); }else{ return BaseResponseUtils.buildException("æªæ¥è¯¢å°å¯¹åºçè®°å½") ; return BaseResponseUtils.buildErrorMsg("æªæ¥è¯¢å°å¯¹åºçè®°å½") ; } } /** @@ -99,7 +99,7 @@ return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("æ¥è¯¢RTUå级ç¨åºå¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } } @@ -124,7 +124,7 @@ return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("æ¥è¯¢RTUå级ç¨åºå¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } } @@ -146,26 +146,26 @@ @SsoAop() public BaseResponse<Boolean> save(@Parameter(description = "formè¡¨åæ°æ®", required = true) @Valid VoRtuProgram vo, @Parameter(hidden = true) BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } if(vo.storeRamAddr == null || vo.storeRamAddr.trim().equals("") || vo.storeRamAddr.length() != 8 || !HexUtil.isHexNumber(vo.storeRamAddr)){ return BaseResponseUtils.buildFail("å级ç¨åºåæ¾å°å(4åèï¼8ä½åå è¿å¶æ°)䏿£ç¡®") ; return BaseResponseUtils.buildErrorMsg("å级ç¨åºåæ¾å°å(4åèï¼8ä½åå è¿å¶æ°)䏿£ç¡®") ; } if(vo.startRamAddr == null || vo.startRamAddr.trim().equals("") || vo.startRamAddr.length() != 8 || !HexUtil.isHexNumber(vo.startRamAddr)){ return BaseResponseUtils.buildFail("ç¨åºè¦çèµ·å§å°å(4åèï¼8ä½åå è¿å¶æ°)䏿£ç¡®") ; return BaseResponseUtils.buildErrorMsg("ç¨åºè¦çèµ·å§å°å(4åèï¼8ä½åå è¿å¶æ°)䏿£ç¡®") ; } if(vo.file == null){ return BaseResponseUtils.buildFail("RTUç¨åºæä»¶å¿ é¡»ä¸ä¼ ") ; return BaseResponseUtils.buildErrorMsg("RTUç¨åºæä»¶å¿ é¡»ä¸ä¼ ") ; } String fileName = vo.file.getOriginalFilename() ; if(this.sv.existFileName(fileName)){ return BaseResponseUtils.buildFail("RTUç¨åºæä»¶åå·²åå¨") ; return BaseResponseUtils.buildErrorMsg("RTUç¨åºæä»¶åå·²åå¨") ; } HexFileVo fileVo = null ; @@ -178,7 +178,7 @@ } }catch (Exception e){ fileVo = null ; return BaseResponseUtils.buildFail("è§£æRTUç¨åºæä»¶å¼å¸¸ï¼" + e.getMessage()) ; return BaseResponseUtils.buildErrorMsg("è§£æRTUç¨åºæä»¶å¼å¸¸ï¼" + e.getMessage()) ; } if(fileVo != null){ UgRtuProgram po = new UgRtuProgram(); @@ -197,15 +197,15 @@ count = this.sv.save(po); } catch (Exception e) { log.error("ä¿åRTUå级ç¨åºå¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } if(count <= 0){ return BaseResponseUtils.buildFail("æ°æ®åºåå¨å¤±è´¥") ; return BaseResponseUtils.buildErrorMsg("æ°æ®åºåå¨å¤±è´¥") ; }else{ return BaseResponseUtils.buildSuccess(true) ; } }else{ return BaseResponseUtils.buildFail("è§£æRTUç¨åºæä»¶å¼å¸¸") ; return BaseResponseUtils.buildErrorMsg("è§£æRTUç¨åºæä»¶å¼å¸¸") ; } } /** @@ -245,17 +245,17 @@ @SsoAop() public BaseResponse<Boolean> delete(Long id){ if(id == null){ return BaseResponseUtils.buildFail("idä¸è½ä¸ºç©º") ; return BaseResponseUtils.buildErrorMsg("idä¸è½ä¸ºç©º") ; } int count; try { count = this.sv.delete(id); } catch (Exception e) { log.error("å é¤RTUå级ç¨åºå¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } if(count <= 0){ return BaseResponseUtils.buildFail("æ°æ®åºåå¨å¤±è´¥") ; return BaseResponseUtils.buildErrorMsg("æ°æ®åºåå¨å¤±è´¥") ; }else{ return BaseResponseUtils.buildSuccess(true) ; } pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuAddControllerCtrl.java
@@ -65,7 +65,7 @@ return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("æ¥è¯¢RTUå级任å¡å¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } } @@ -129,7 +129,7 @@ return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("æ¥è¯¢RTUå级任å¡å¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } } @@ -165,14 +165,14 @@ ugRtuController.setRtuAddr(rtuAddr) ; int count = this.addedSv.save(ugRtuController); if(count <= 0){ return BaseResponseUtils.buildFail("æ°æ®åºåå¨å¤±è´¥") ; return BaseResponseUtils.buildErrorMsg("æ°æ®åºåå¨å¤±è´¥") ; }else{ return BaseResponseUtils.buildSuccess(true) ; } } } catch (Exception e) { log.error("æ¥è¯¢RTUå级任å¡å¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } } } pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuControllerCtrl.java
@@ -70,7 +70,7 @@ return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("æ¥è¯¢RTUå级任å¡å¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } } @@ -92,17 +92,17 @@ @SsoAop() public BaseResponse<Boolean> deleteAll(Long taskId){ if(taskId == null){ return BaseResponseUtils.buildFail("ä»»å¡idä¸è½ä¸ºç©º") ; return BaseResponseUtils.buildErrorMsg("ä»»å¡idä¸è½ä¸ºç©º") ; } int count; try { count = this.sv.deleteAll(taskId); } catch (Exception e) { log.error("å é¤å级ææå¯¹è±¡æ§å¶å¨å¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } if(count <= 0){ return BaseResponseUtils.buildFail("æ°æ®åºæä½å¤±è´¥") ; return BaseResponseUtils.buildErrorMsg("æ°æ®åºæä½å¤±è´¥") ; }else{ return BaseResponseUtils.buildSuccess(true) ; } @@ -127,17 +127,17 @@ @SsoAop() public BaseResponse<Boolean> deleteOne(Long id){ if(id == null){ return BaseResponseUtils.buildFail("idä¸è½ä¸ºç©º") ; return BaseResponseUtils.buildErrorMsg("idä¸è½ä¸ºç©º") ; } int count; try { count = this.sv.deleteOne(id); } catch (Exception e) { log.error("å é¤å级对象æ§å¶å¨å¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } if(count <= 0){ return BaseResponseUtils.buildFail("æ°æ®åºæä½å¤±è´¥") ; return BaseResponseUtils.buildErrorMsg("æ°æ®åºæä½å¤±è´¥") ; }else{ return BaseResponseUtils.buildSuccess(true) ; } pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultCtrl.java
@@ -64,7 +64,7 @@ return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("æ¥è¯¢RTUå级任å¡å¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()); return BaseResponseUtils.buildErrorMsg(e.getMessage()); } } } pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuTaskCtrl.java
@@ -85,7 +85,7 @@ return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("æ¥è¯¢RTUå级任å¡å¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } } @@ -110,7 +110,7 @@ return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("æ¥è¯¢RTUå级任å¡å¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } } @@ -132,7 +132,7 @@ @SsoAop() public BaseResponse<Boolean> save(@Parameter(description = "formè¡¨åæ°æ®", required = true) @Valid VoRtuTask vo, @Parameter(hidden = true) BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } UgRtuTask po = new UgRtuTask(); vo.toPo(po); @@ -142,10 +142,10 @@ count = this.sv.save(po); } catch (Exception e) { log.error("ä¿åRTUå级任å¡å¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } if(count <= 0){ return BaseResponseUtils.buildFail("æ°æ®åºåå¨å¤±è´¥") ; return BaseResponseUtils.buildErrorMsg("æ°æ®åºåå¨å¤±è´¥") ; }else{ return BaseResponseUtils.buildSuccess(true) ; } @@ -168,20 +168,20 @@ @SsoAop() public BaseResponse<Boolean> update(@Parameter(description = "formè¡¨åæ°æ®", required = true) @Valid UgRtuTask po, @Parameter(hidden = true) BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } if(po.id == null){ return BaseResponseUtils.buildFail("æ æ°æ®å®ä½ID") ; return BaseResponseUtils.buildErrorMsg("æ æ°æ®å®ä½ID") ; } int count; try { count = this.sv.update(po); } catch (Exception e) { log.error("ä¿åå®ä½æ°æ®å¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } if(count <= 0){ return BaseResponseUtils.buildFail("æ°æ®åºåå¨å¤±è´¥") ; return BaseResponseUtils.buildErrorMsg("æ°æ®åºåå¨å¤±è´¥") ; }else{ return BaseResponseUtils.buildSuccess(true) ; } @@ -206,25 +206,25 @@ @SsoAop() public BaseResponse<Boolean> execute(Long id){ if(id == null){ return BaseResponseUtils.buildFail("idä¸è½ä¸ºç©º") ; return BaseResponseUtils.buildErrorMsg("idä¸è½ä¸ºç©º") ; } int count; try { count = this.sv.isOver(id) ; if(count > 0){ return BaseResponseUtils.buildError("ä»»å¡å·²ç»ç»æï¼ä¸è½åæ§è¡") ; return BaseResponseUtils.buildErrorMsg("ä»»å¡å·²ç»ç»æï¼ä¸è½åæ§è¡") ; } count = this.sv.isExecute(id) ; if(count > 0){ return BaseResponseUtils.buildError("ä»»å¡å·²ç»æ§è¡ï¼ä¸è½åæ§è¡") ; return BaseResponseUtils.buildErrorMsg("ä»»å¡å·²ç»æ§è¡ï¼ä¸è½åæ§è¡") ; } count = this.sv.execute(id); } catch (Exception e) { log.error("æ§è¡RTUå级任å¡å¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } if(count <= 0){ return BaseResponseUtils.buildFail("æ°æ®åºæä½å¤±è´¥") ; return BaseResponseUtils.buildErrorMsg("æ°æ®åºæä½å¤±è´¥") ; }else{ return BaseResponseUtils.buildSuccess(true) ; } @@ -248,20 +248,20 @@ @SsoAop() public BaseResponse<Boolean> over(Long id){ if(id == null){ return BaseResponseUtils.buildFail("idä¸è½ä¸ºç©º") ; return BaseResponseUtils.buildErrorMsg("idä¸è½ä¸ºç©º") ; } int count; try {count = this.sv.isOver(id) ; if(count > 0){ return BaseResponseUtils.buildError("ä»»å¡å·²ç»ç»æï¼ä¸ç¨åç»æ") ; return BaseResponseUtils.buildErrorMsg("ä»»å¡å·²ç»ç»æï¼ä¸ç¨åç»æ") ; } count = this.sv.over(id); } catch (Exception e) { log.error("ç»æRTUå级任å¡å¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } if(count <= 0){ return BaseResponseUtils.buildFail("æ°æ®åºæä½å¤±è´¥") ; return BaseResponseUtils.buildErrorMsg("æ°æ®åºæä½å¤±è´¥") ; }else{ return BaseResponseUtils.buildSuccess(true) ; } @@ -285,17 +285,17 @@ @SsoAop() public BaseResponse<Boolean> delete(Long id){ if(id == null){ return BaseResponseUtils.buildFail("idä¸è½ä¸ºç©º") ; return BaseResponseUtils.buildErrorMsg("idä¸è½ä¸ºç©º") ; } int count; try { count = this.sv.delete(id); } catch (Exception e) { log.error("å é¤RTUå级任å¡å¼å¸¸", e); return BaseResponseUtils.buildException(e.getMessage()) ; return BaseResponseUtils.buildErrorMsg(e.getMessage()) ; } if(count <= 0){ return BaseResponseUtils.buildFail("æ°æ®åºæä½å¤±è´¥") ; return BaseResponseUtils.buildErrorMsg("æ°æ®åºæä½å¤±è´¥") ; }else{ return BaseResponseUtils.buildSuccess(true) ; } pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java
@@ -132,7 +132,7 @@ jsonArray.add(jsonObject); }); } System.out.println(jsonArray); //System.out.println(jsonArray); } /** pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java
@@ -1,7 +1,8 @@ package com.dy.pipIrrRemote.rtuUpgrage; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.support.ExcelTypeEnum; import com.dy.common.aop.SsoAop; import com.dy.common.multiDataSource.DataSourceContext; import com.dy.common.softUpgrade.state.UpgradeRtu; import com.dy.common.softUpgrade.state.UpgradeTaskVo; import com.dy.common.springUtil.SpringContextUtil; @@ -12,6 +13,8 @@ import com.dy.pipIrrGlobal.pojoUg.UgRtuProgram; import com.dy.pipIrrGlobal.pojoUg.UgRtuTask; import com.dy.pipIrrGlobal.rtuMw.ToRtuMwCom; import com.dy.pipIrrGlobal.voPr.VoDivide; import com.dy.pipIrrGlobal.voUg.VoUgRtuResult; import com.dy.pipIrrGlobal.voUg.VoWatch; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; @@ -19,15 +22,19 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Base64; import java.util.List; @@ -44,6 +51,9 @@ public class RtuUpgradeCtrl extends ToRtuMwCom { @Autowired private RtuUpgradeSv sv ; @Autowired RtuUpgradeResSv resSv ; @Autowired private Environment env; @@ -69,28 +79,28 @@ @SsoAop() public BaseResponse<Boolean> issuedTask(String id){ if(id == null || id.trim().equals("")){ return BaseResponseUtils.buildError("ä»»å¡idä¸è½ä¸ºç©º") ; return BaseResponseUtils.buildErrorMsg("ä»»å¡idä¸è½ä¸ºç©º") ; } UgRtuTask tpo = this.sv.selectTaskById(id) ; if(tpo == null){ return BaseResponseUtils.buildError("ä»»å¡ä¸åå¨") ; return BaseResponseUtils.buildErrorMsg("ä»»å¡ä¸åå¨") ; } if(tpo.isExecute == 1){ return BaseResponseUtils.buildError("ä»»å¡å·²ä¸åï¼ä¸è½éå¤ä¸åä»»å¡") ; return BaseResponseUtils.buildErrorMsg("ä»»å¡å·²ä¸åï¼ä¸è½éå¤ä¸åä»»å¡") ; } UgRtuProgram ppo = this.sv.selectProgramById(tpo.programId) ; if(ppo == null){ return BaseResponseUtils.buildError("ä»»å¡å¯¹åºçç¨åºä¸åå¨") ; return BaseResponseUtils.buildErrorMsg("ä»»å¡å¯¹åºçç¨åºä¸åå¨") ; } List<String> taskRtuAddrs = this.sv.selectAllRtuAddrByTask(id) ; if(taskRtuAddrs == null || taskRtuAddrs.size() == 0){ return BaseResponseUtils.buildError("任塿æ¶åçæ§å¶å¨è¿æªè®¾ç½®") ; return BaseResponseUtils.buildErrorMsg("任塿æ¶åçæ§å¶å¨è¿æªè®¾ç½®") ; } String ugCallbackUrl_rm = env.getProperty("mw.ugCallbackUrl_rm" ); if(ugCallbackUrl_rm == null || ugCallbackUrl_rm.trim().equals("")){ return BaseResponseUtils.buildError("æªé ç½®å级任å¡åè°ç½å") ; return BaseResponseUtils.buildErrorMsg("æªé ç½®å级任å¡åè°ç½å") ; } UpgradeTaskVo vo = new UpgradeTaskVo() ; @@ -110,11 +120,11 @@ msg = res.getMsg() ; } log.error("éä¿¡ä¸é´ä»¶æ§è¡ä¸åå级任å¡å¤±è´¥" + msg) ; return BaseResponseUtils.buildFail("éä¿¡ä¸é´ä»¶æ§è¡å¤±è´¥" + msg) ; return BaseResponseUtils.buildErrorMsg("éä¿¡ä¸é´ä»¶æ§è¡å¤±è´¥" + msg) ; } }else{ log.error("éä¿¡ä¸é´ä»¶è¿åç»æä¸ºnull") ; return BaseResponseUtils.buildFail("éä¿¡ä¸é´ä»¶è¿åç»æä¸ºnull") ; return BaseResponseUtils.buildErrorMsg("éä¿¡ä¸é´ä»¶è¿åç»æä¸ºnull") ; } } @@ -128,9 +138,10 @@ vo.softBytesCalculate = ppo.programCalculateBytes ; vo.softByteSrc16 = ppo.programCrc16 ; } /** * çè§ï¼ * éç½®ï¼æ¼ç¤ºçéç½® * éç½®è¿ç¨å级æ¼ç¤ºç¨åº * @return æä½ç»æ */ @GetMapping(path = "/demoReset") @@ -166,104 +177,58 @@ if(qvo == null){ qvo = new QueryVo(); qvo.pageCurr = 1 ; qvo.pageSize = 50 ; qvo.pageSize = 49 ; } if(RtuUpgradeStateReceiverCtrl.cache == null){ //return BaseResponseUtils.buildError("å½å没æå级任å¡") ; return BaseResponseUtils.buildErrorMsg("å½å没æå级任å¡") ; //æ£å¼è¿è¡æ¶ï¼ä¸é¢ä¸¤è¡å»æï¼ä¸é¢ä¸è¡æå¼ RtuUpgradeStateReceiverCtrl ctrl = SpringContextUtil.getBean(RtuUpgradeStateReceiverCtrl.class); ctrl.demo(); //RtuUpgradeStateReceiverCtrl ctrl = SpringContextUtil.getBean(RtuUpgradeStateReceiverCtrl.class); //ctrl.demo(); } 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(0L + (listFiltered==null?0:listFiltered.size()), null); QueryResultVo<VoWatch> rsVo = this.resSv.curUpgradeState(qvo) ; return BaseResponseUtils.buildSuccess(rsVo) ; } private List<UpgradeRtu> filterByQuery(QueryVo qvo){ if (qvo.status != null || qvo.result != null) { final Integer qvoStatus = qvo.status ; final Integer qvoResult = qvo.result ; final String qvoRtuAddr = qvo.rtuAddr ; return RtuUpgradeStateReceiverCtrl.cache.ugRtuStateList.stream().filter(rtu -> { boolean ok = false; if (qvoStatus != null) { if (qvoStatus.intValue() == 1) { if (rtu.state == UpgradeRtu.STATE_RUNNING) { ok = true; }else{ ok = false ; } } else if (qvoStatus.intValue() == 0) { if (rtu.isOver) { ok = true; }else{ ok = false ; } } } if (qvoResult != null) { if (qvoResult.intValue() == 1) { if (rtu.state == UpgradeRtu.STATE_SUCCESS) { ok = true; }else{ ok = false ; } } else if (qvoResult.intValue() == 0) { if (rtu.state == UpgradeRtu.STATE_OFFLINE || rtu.state == UpgradeRtu.STATE_FAILONE || rtu.state == UpgradeRtu.STATE_FAIL || rtu.state == UpgradeRtu.STATE_FAILOFFLINE) { ok = true; }else{ ok = false ; } } } if(qvoRtuAddr != null && !qvoRtuAddr.trim().equals("")){ if(rtu.rtuAddr.equals(qvoRtuAddr)){ ok = true; }else{ ok = false ; } } return ok; }).toList() ; }else{ return RtuUpgradeStateReceiverCtrl.cache.ugRtuStateList ; } /** * 导åºå级失败RTUå表 * @param response */ @RequestMapping(value = "/exportUgFail", method = RequestMethod.GET) public void exportUgFail(HttpServletResponse response) throws Exception { setExcelRespProp(response, "å级失败RTUå表"); List<VoUgRtuResult> rsList = resSv.exportUgFail(); EasyExcel.write(response.getOutputStream()) .head(VoUgRtuResult.class) .excelType(ExcelTypeEnum.XLSX) .sheet("å级失败RTUå表") .doWrite(rsList); } /** * 导åºé¿çº§æåRTUå表 * @param response */ @RequestMapping(value = "/exportUgSuccess", method = RequestMethod.GET) public void exportUgSuccess(HttpServletResponse response) throws Exception { setExcelRespProp(response, "å级æåRTUå表"); List<VoUgRtuResult> rsList = resSv.exportUgSuccess(); EasyExcel.write(response.getOutputStream()) .head(VoUgRtuResult.class) .excelType(ExcelTypeEnum.XLSX) .sheet("å级æåRTUå表") .doWrite(rsList); } /** * 设置excelä¸è½½ååºå¤´å±æ§ */ private void setExcelRespProp(HttpServletResponse response, String rawFileName) throws UnsupportedEncodingException { response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); String fileName = URLEncoder.encode(rawFileName, "UTF-8").replaceAll("\\+", "%20"); response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); } } pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeResSv.java
New file @@ -0,0 +1,160 @@ package com.dy.pipIrrRemote.rtuUpgrage; import com.dy.common.softUpgrade.state.UpgradeRtu; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.voUg.VoUgRtuResult; 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; } } if(qvoRtuAddr != null && !qvoRtuAddr.trim().equals("")){ ok = rtu.rtuAddr.equals(qvoRtuAddr); } return ok; }).toList() ; }else{ return RtuUpgradeStateReceiverCtrl.cache.ugRtuStateList ; } } /** * è¿æ»¤åºå½åé¿çº§ä»»å¡ä¸å级失败çRTU * @return éå */ public List<VoUgRtuResult> exportUgFail(){ List<VoUgRtuResult> 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){ VoUgRtuResult vo = new VoUgRtuResult() ; vo.rtuAddr = rtu.rtuAddr ; vo.result = "离线" ; list.add(vo); }else if(rtu.state == UpgradeRtu.STATE_FAILONE){ VoUgRtuResult vo = new VoUgRtuResult() ; vo.rtuAddr = rtu.rtuAddr ; vo.result = "ä¸å æ»" ; list.add(vo); }else if(rtu.state == UpgradeRtu.STATE_FAIL){ VoUgRtuResult vo = new VoUgRtuResult() ; vo.rtuAddr = rtu.rtuAddr ; vo.result = "å¤å æ»" ; list.add(vo); } } }); } } return list ; } /** * è¿æ»¤åºå½åé¿çº§ä»»å¡ä¸å级æåçRTU * @return éå */ public List<VoUgRtuResult> exportUgSuccess(){ List<VoUgRtuResult> 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() ; vo.rtuAddr = rtu.rtuAddr ; vo.result = "å级æå" ; list.add(vo); } } }); } } return list ; } } pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java
@@ -65,20 +65,20 @@ } } if(cache == null){ cache = info; //æ¤æ¶ä¸å任塿ä½ï¼åªä¿écacheä¸ä¸ºç©ºï¼ çå¾ ä¸æ¬¡åæ¥æ°æ® if(info.ugRtuStateList != null && info.ugRtuStateList.size() > 0){ List<UpgradeRtu> overList = info.ugRtuStateList.stream().filter(itemVo -> itemVo.isOver).collect(Collectors.toList()) ; if(overList != null && overList.size() > 0){ cache = info; this.save2Db(info.ugTaskId, overList); } } }else{ cache = info; //å½cache䏿弿¶ï¼è¿è¡æ¯å¯¹åå¨ï¼å¯¹æ¯ç®çæ¯é²æ¢é夿使°æ®åº if(info.ugRtuStateList != null && info.ugRtuStateList.size() > 0){ //æ¤æ¶ä¿è¯ä¸¤ä¸ªéåé½ä¸ä¸ºnull this.save2Db(info.ugTaskId, info.ugRtuStateList, cache.ugRtuStateList); cache = info; } } return null; @@ -154,7 +154,7 @@ @Override public Object execute() throws Exception { while(!this.stop){ if(!runDemo()){ if(!runInDemo()){ this.stop = true ; }else{ try { @@ -188,7 +188,7 @@ } } } private boolean runDemo(){ private boolean runInDemo(){ for(UpgradeRtu rtu : cache.ugRtuStateList){ this.rtuUpgrade(rtu) ; } @@ -244,7 +244,7 @@ } int n = Integer.parseInt(new CreateRandom().create(3)) ; if(n == 540 || n == 541 || n == 542 || n == 543 || n == 544 || n == 545){ if(n == 540 || n == 541 || n == 542 || n == 543 || n == 544 || n == 545 || n == 546 || n == 547 || n == 548 || n == 549 ){ if(rtu.currentPackage == 1){ //1å æ» rtu.state = UpgradeRtu.STATE_FAILONE ; @@ -296,6 +296,7 @@ for(UpgradeRtu rtu : cache.ugRtuStateList){ if(rtu.state == UpgradeRtu.STATE_OFFLINE){ cache.ugOverallState.offLineTotal ++ ; cache.ugOverallState.failTotal++; }else if(rtu.state == UpgradeRtu.STATE_UNSTART){ cache.ugOverallState.unStartTotal ++ ; }else if(rtu.state == UpgradeRtu.STATE_RUNNING){ @@ -307,6 +308,7 @@ cache.ugOverallState.failOneTotal++; cache.ugOverallState.failTotal++; }else if(rtu.state == UpgradeRtu.STATE_FAIL) { cache.ugOverallState.failMultiTotal++; cache.ugOverallState.failTotal++; } if(rtu.isOver){ @@ -317,6 +319,15 @@ if(!hasRunning){ cache.ugOverallState.allOver = true ; } if(cache.ugOverallState.allOver){ cache.ugOverallState.overTotal = 0; if(cache.ugRtuStateList != null && cache.ugRtuStateList.size() > 0){ for(UpgradeRtu rtu : cache.ugRtuStateList){ rtu.isOver = true ; cache.ugOverallState.overTotal++; } } } return hasRunning ; } } pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java
@@ -58,28 +58,6 @@ } /** * æ¥è¯¢ä¸ä¸ªåçº§ä»»å¡æå ³ä¿¡æ¯ * @return åçº§ä»»å¡æå ³ä¿¡æ¯ */ public VoUpgradeDetail selectTaskDetail(String taskId){ List<VoUpgradeDetail> list = this.tdao.selectTaskDetail(Long.valueOf(taskId)) ; if(list != null && list.size() > 0){ return list.get(0) ; } return null ; } /** * ä¿åå级任å¡ä¸ºæ§è¡ç¶æ * @param taskId ä»»å¡ID */ public void setUpgradeTaskExecuted(String taskId){ this.tdao.executeById(Long.valueOf(taskId)) ; } /** * ä¿åRTUåçº§ç»æç¶æ * @param taskId * @param rtu @@ -91,17 +69,38 @@ cdao.updateRtuUpgradeState(params) ; } ///////////////////////////////////////////////////// // // 以䏿¨¡ææ°æ® // ///////////////////////////////////////////////////// /** * éä¿¡ä¸»é®æ¥è¯¢ä¸ä¸ªåçº§ä»»å¡ * æ¥è¯¢ä¸ä¸ªåçº§ä»»å¡æå ³ä¿¡æ¯ * @return åçº§ä»»å¡æå ³ä¿¡æ¯ */ public VoUpgradeDetail selectTaskDetail(String taskId){ List<VoUpgradeDetail> list = this.tdao.selectTaskDetail(Long.valueOf(taskId)) ; if(list != null && list.size() > 0){ return list.get(0) ; } return null ; } /** * ä¿åå级任å¡ä¸ºæ§è¡ç¶æ * @param taskId ä»»å¡ID */ public void setUpgradeTaskExecuted(String taskId){ this.tdao.executeById(Long.valueOf(taskId)) ; } ///////////////////////////////////////////////////// // // 以䏿¼ç¤ºå级åè½ç¨å° // ///////////////////////////////////////////////////// /** * æ¥è¯¢ææ°ä¸ä¸ªåçº§ä»»å¡ * @return */ public UgRtuTask selectLastTask(){ return tdao.selectLastTask(); } } pipIrr-platform/pom.xml
@@ -186,6 +186,13 @@ <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>3.5.3.2</version> <type>pom</type> <scope>import</scope> </dependency> <!-- é¿éfastjson --> <dependency> @@ -271,11 +278,11 @@ <scope>import</scope> </dependency> <!-- quartz --> <!-- rocketmq-client --> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.9.7</version> <version>5.3.1</version> <type>pom</type> <scope>import</scope> </dependency>