From 5ef30c2eb2744017c75247d2f77b4d6367bc126a Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Tue, 12 Jul 2022 16:45:38 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E4=B8=BA=E7=AC=A6=E5=90=88?= =?UTF-8?q?=E9=A1=B9=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/NcrTrackController.java | 12 +-- .../service/impl/NcrTrackServiceImpl.java | 9 +- .../jero/modules/project/vo/NcrTrackVO.java | 4 +- jero-web/src/api/manage.js | 88 ++++++++++++++++++- .../components/nonConformance.vue | 6 +- .../projectNonConformance/index.vue | 6 +- 6 files changed, 105 insertions(+), 20 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java index f1b0965d2..fb65e58dc 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java @@ -11,7 +11,9 @@ import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -80,11 +82,11 @@ public class NcrTrackController { * @param request * @param ncrTrackVO */ - @RequestMapping(value = "/exportData") + @RequestMapping(value = "/exportData",method = RequestMethod.POST) @RequiresPermissions("ncrTrack:exportData") public void exportData(HttpServletResponse response, HttpServletRequest request, - NcrTrackVO ncrTrackVO) { + @RequestBody NcrTrackVO ncrTrackVO) { iNcrTrackService.exportData(response,request, ncrTrackVO); } @@ -93,11 +95,11 @@ public class NcrTrackController { * @param request * @param ncrTrackVO */ - @RequestMapping(value = "/exportDataInfo") + @RequestMapping(value = "/exportDataInfo",method = RequestMethod.POST) @RequiresPermissions("ncrTrack:exportDataInfo") public void exportDataInfo(HttpServletResponse response, - HttpServletRequest request, - NcrTrackVO ncrTrackVO) { + HttpServletRequest request, + @RequestBody NcrTrackVO ncrTrackVO) { iNcrTrackService.exportData(response,request, ncrTrackVO); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java index b32f22693..aea3c5c7e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java @@ -241,12 +241,10 @@ public class NcrTrackServiceImpl extends ServiceImpl List trackVOListTemp = new ArrayList<>(); - String idJson = ncrTrackVO.getNcrTrackVOList(); - if(StringUtils.isNotBlank(idJson)){ - List ncrTrackVOList = JSONObject.parseArray(idJson, NcrTrackVO.class); + List ncrTrackVOListTemp = ncrTrackVO.getNcrTrackVOList(); //导出数据过滤(列表中选取多条进行导出的时候,用任务清单id和流程类型作为条件进行数据过滤) - if(ObjectUtils.allNotNull(ncrTrackVOList)){ - for (NcrTrackVO trackVO : ncrTrackVOList) { + if(ObjectUtils.allNotNull(ncrTrackVOListTemp)){ + for (NcrTrackVO trackVO : ncrTrackVOListTemp) { List collect = trackVOList.stream() .filter(e -> trackVO.getId().equals(e.getId()) && trackVO.getFlowType().equals(e.getFlowType())) .collect(Collectors.toList()); @@ -255,7 +253,6 @@ public class NcrTrackServiceImpl extends ServiceImpl } } } - } if(trackVOListTemp.size() != 0){ return trackVOListTemp; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java index 69193946c..231f16f4c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java @@ -1,7 +1,6 @@ package com.jero.modules.project.vo; import com.fasterxml.jackson.annotation.JsonFormat; -import com.jero.common.aspect.annotation.Dict; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -10,6 +9,7 @@ import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; +import java.util.ArrayList; import java.util.List; @@ -119,7 +119,7 @@ public class NcrTrackVO implements Serializable { //验证问题类型 verify_flow_task_status private String verifyFlowTaskStatus; - private String ncrTrackVOList; + private List ncrTrackVOList = new ArrayList<>(); //以下字段跳转适用(还有项目库id) diff --git a/jero-web/src/api/manage.js b/jero-web/src/api/manage.js index 349700e7a..a0c2d5fbb 100644 --- a/jero-web/src/api/manage.js +++ b/jero-web/src/api/manage.js @@ -134,7 +134,14 @@ export function downFile(url, parameter) { responseType: 'blob' }) } - +export function downFilePost(url, parameter) { + return axios({ + url: url, + data: parameter, + method: 'post', + responseType: 'blob' + }) +} /** * 下载文件 * @param url 文件路径 @@ -222,6 +229,85 @@ export function downloadFile(url, fileName, parameter, callback) { }) } +export function downloadFilePost(url, fileName, parameter, callback) { + let langCn = localStorage.language +// 默认中文 + let isTrue + if (langCn == 'en-us') { + isTrue = true + } else if (langCn == 'zh-cn') { + isTrue = false + } + index.showDrawer({ + loading: true, + isTrue: isTrue + }) + return downFilePost(url, parameter).then((data) => { + let fileReader = new FileReader() + fileReader.onload = function(event) { + try { + let jsonData = JSON.parse(event.target.result) + if (jsonData.message.includes('token')) { + index.showDrawer({ + loading: false, + isTrue: isTrue + }) + Modal.error({ + title: '登录已过期', + content: '很抱歉,登录已过期,请重新登录', + okText: '重新登录', + mask: false, + onOk: () => { + store.dispatch('Logout').then(() => { + Vue.ls.remove(ACCESS_TOKEN) + try { + let path = window.document.location.pathname + if (path != '/' && path.indexOf('/user/login') == -1) { + window.location.reload() + } + } catch (e) { + window.location.reload() + } + }) + } + }) + } else { + if (!jsonData.success) { + index.showDrawer({ + loading: false, + isTrue: isTrue + }) + Vue.prototype['$message'].warning(jsonData.message) + } + } + } catch (e) { + if (!data || data.size === 0) { + Vue.prototype['$message'].warning('文件下载失败') + return + } + if (typeof window.navigator.msSaveBlob !== 'undefined') { + window.navigator.msSaveBlob(new Blob([data]), fileName) + } else { + let url = window.URL.createObjectURL(new Blob([data])) + let link = document.createElement('a') + link.style.display = 'none' + link.href = url + link.setAttribute('download', fileName) + document.body.appendChild(link) + link.click() + document.body.removeChild(link) //下载完成移除元素 + window.URL.revokeObjectURL(url) //释放掉blob对象 + } + index.showDrawer({ + loading: false, + isTrue: isTrue + }) + callback && callback() + } + } + fileReader.readAsText(data) + }) +} /** * 文件上传 用于富文本上传图片 * @param url diff --git a/jero-web/src/views/projectManagement/components/nonConformance.vue b/jero-web/src/views/projectManagement/components/nonConformance.vue index 3a2c95ba4..bac8f1274 100644 --- a/jero-web/src/views/projectManagement/components/nonConformance.vue +++ b/jero-web/src/views/projectManagement/components/nonConformance.vue @@ -82,7 +82,7 @@