From 42922f126d7259f8a1da6a81d5ee8e9e45300278 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 22 十一月 2024 15:23:22 +0800
Subject: [PATCH] 设计实现导出当前升级任务成功与失败RTU功能
---
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java | 149 ++++++++-------------
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java | 57 ++++----
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult.java | 30 ++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeResSv.java | 160 ++++++++++++++++++++++
4 files changed, 275 insertions(+), 121 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult.java
new file mode 100644
index 0000000..2653252
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult.java
@@ -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;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java
index 0e99c5e..ec86f88 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java
+++ b/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;
@@ -128,9 +138,10 @@
vo.softBytesCalculate = ppo.programCalculateBytes ;
vo.softByteSrc16 = ppo.programCrc16 ;
}
+
+
/**
- * 鐩戣锛�
- * 閲嶇疆锛屾紨绀虹殑閲嶇疆
+ * 閲嶇疆杩滅▼鍗囩骇婕旂ず绋嬪簭
* @return 鎿嶄綔缁撴灉
*/
@GetMapping(path = "/demoReset")
@@ -166,7 +177,7 @@
if(qvo == null){
qvo = new QueryVo();
qvo.pageCurr = 1 ;
- qvo.pageSize = 50 ;
+ qvo.pageSize = 49 ;
}
if(RtuUpgradeStateReceiverCtrl.cache == null){
//return BaseResponseUtils.buildError("褰撳墠娌℃湁鍗囩骇浠诲姟") ;
@@ -174,96 +185,50 @@
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");
+ }
+
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeResSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeResSv.java
new file mode 100644
index 0000000..03c204d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeResSv.java
@@ -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 ;
+ }
+ }
+
+ /**
+ * 杩囨护鍑哄綋鍓嶉暱绾т换鍔′腑鍗囩骇澶辫触鐨凴TU
+ * @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 ;
+ }
+
+ /**
+ * 杩囨护鍑哄綋鍓嶉暱绾т换鍔′腑鍗囩骇鎴愬姛鐨凴TU
+ * @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 ;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java
index 3293427..11787ec 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java
+++ b/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();
}
-
}
--
Gitblit v1.8.0