Преглед на файлове

PSSR检修项目换热器导入

wangggziwen преди 6 месеца
родител
ревизия
6034db50fe

+ 3 - 0
master/src/main/java/com/ruoyi/project/common/CommonController.java

@@ -346,6 +346,9 @@ public class CommonController extends BaseController
         }else if( type.equals("pssrRegionTmpl") ) {
             downloadname = "PSSR区域导入模板.xlsx";
             url = "static/template/pssr/pssrRegionTmpl.xlsx";
+        }else if( type.equals("overhaulExchanger") ) {
+            downloadname = "overhaulExchanger.xlsx";
+            url = "static/template/pssr/overhaulExchanger.xlsx";
         }
 
         InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(url);

+ 83 - 3
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrOverhaulExchangerController.java

@@ -1,5 +1,6 @@
 package com.ruoyi.project.pssr.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.file.ExcelUtils;
@@ -16,25 +17,27 @@ import com.ruoyi.project.pssr.service.ITPssrApproveService;
 import com.ruoyi.project.pssr.service.ITPssrFileService;
 import com.ruoyi.project.pssr.service.ITPssrOverhaulExchangerService;
 import com.ruoyi.project.pssr.service.ITPssrSubcontentService;
+import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.service.ISysDeptService;
 import com.ruoyi.project.system.service.ISysUserService;
 import org.activiti.engine.HistoryService;
 import org.activiti.engine.RuntimeService;
 import org.activiti.engine.impl.identity.Authentication;
 import org.activiti.engine.runtime.ProcessInstance;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.CellStyle;
-import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -66,6 +69,12 @@ public class TPssrOverhaulExchangerController extends BaseController {
     @Autowired
     private ISysUserService sysUserService;
 
+    @Autowired
+    private ISysDeptService iSysDeptService;
+
+    @Autowired
+    private ISysUserService userService;
+
     /**
      * 查询检修项目-换热器列表
      */
@@ -319,4 +328,75 @@ public class TPssrOverhaulExchangerController extends BaseController {
         return AjaxResult.error();
     }
 
+    /**
+     * 批量导入
+     */
+    @PreAuthorize("@ss.hasPermi('pssr:overhaulExchanger:add')")
+    @PostMapping("/importData")
+    public AjaxResult importInterlockData(MultipartFile file, Long subId) throws IOException
+    {
+        //获取操作人员ID
+        Long userId = getUserId();
+        //报错行数统计
+        List<Integer> failRow =new ArrayList<Integer>();
+        Workbook workbook = ExcelUtils.getWorkBook(file);
+        Sheet sheet = workbook.getSheetAt(0);
+        List<TPssrOverhaulExchanger> list = new ArrayList<TPssrOverhaulExchanger>();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        //部门查询
+        List<SysDept> dept = iSysDeptService.selectDeptList(new SysDept());
+        int rowNum = sheet.getPhysicalNumberOfRows();
+        int failNumber = 0;
+        for (int i = 2; i <= rowNum; i++) {
+            try {
+                logger.info("读取行数:" + i);
+                Row row = sheet.getRow(i);
+                int cellNum = row.getPhysicalNumberOfCells();
+                TPssrOverhaulExchanger entity = new TPssrOverhaulExchanger();
+                entity.setDeptId(userService.selectUserById(getUserId()).getDeptId());
+                entity.setSubId(subId);
+                for (int j = 0; j < cellNum; j++) {
+                    Cell cell = row.getCell(j);
+                    String cellValue = ExcelUtils.getCellValue(cell);
+                    logger.info("cellValue:" + cellValue);
+                    if (j == 0) {
+                        entity.setTagNo(cellValue);
+                    } else if (j == 1) {
+                        entity.setEquipmentName(cellValue);
+                    } else if (j == 2) {
+                        entity.setWorkDes(cellValue);
+                    } else if (j == 3) {
+                        entity.setPidNo(cellValue);
+                    } else if (j == 4) {
+                        entity.setRemarks(cellValue);
+                    }
+                }
+                entity.setCreaterCode(userId.toString());
+                logger.info("entity:" + entity);
+                list.add(entity);
+            }catch (Exception e){
+                failNumber++;
+                failRow.add(i+1);
+            }
+        }
+        int successNumber = 0;
+        int failNum = 0;
+        for (TPssrOverhaulExchanger t : list
+        ) {
+            failNum++;
+            try {
+                tPssrOverhaulExchangerService.insertTPssrOverhaulExchanger(t);
+                successNumber++;
+            }catch (Exception e){
+                failNumber++;
+                logger.info("e:" + e);
+                failRow.add(failNum+1);
+            }
+        }
+        logger.info("list:" + JSON.toJSONString(list));
+        logger.info("successNumber:" +String.valueOf(successNumber));
+        logger.info("failNumber:" +String.valueOf(failNumber));
+        logger.info("failRow:" +String.valueOf(failRow));
+        return AjaxResult.success("导入成功行数:" + String.valueOf(successNumber));
+    }
 }

BIN
master/src/main/resources/static/template/pssr/overhaulExchanger.xlsx


+ 13 - 7
ui/src/views/pssr/overhaulExchanger/index.vue

@@ -265,7 +265,7 @@
         :limit="1"
         accept=".xlsx, .xls"
         :headers="upload.headers"
-        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :action="upload.url"
         :disabled="upload.isUploading"
         :on-progress="handleFileUploadProgress"
         :on-success="handleFileSuccess"
@@ -278,9 +278,12 @@
           <em>点击上传</em>
         </div>
         <div class="el-upload__tip" slot="tip">
-          <el-checkbox v-model="upload.updateSupport"/>
-          是否更新已经存在的用户数据
+          <!--<el-checkbox v-model="upload.updateSupport"/>-->
+          <!--是否更新已经存在的用户数据-->
           <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+          <form ref="downloadFileForm" :action="upload.downloadAction" target="FORMSUBMIT">
+            <input name="type" :value="upload.type" hidden />
+          </form>
         </div>
         <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
       </el-upload>
@@ -485,6 +488,10 @@ export default {
       open: false,
       // 用户导入参数
       upload: {
+        //下载模板请求地址
+        downloadAction: process.env.VUE_APP_BASE_API + '/common/template',
+        //下载模板类型
+        type: 'overhaulExchanger',
         // 是否显示弹出层(用户导入)
         open: false,
         // 弹出层标题(用户导入)
@@ -496,7 +503,7 @@ export default {
         // 设置上传的请求头部
         headers: {Authorization: "Bearer " + getToken()},
         // 上传的地址
-        url: process.env.VUE_APP_BASE_API + "/pssr/overhaulExchanger/importData"
+        url: process.env.VUE_APP_BASE_API + "/pssr/overhaulExchanger/importData?subId=" + this.subId
       },
       // 查询参数
       queryParams: {
@@ -731,9 +738,7 @@ export default {
     },
     /** 下载模板操作 */
     importTemplate() {
-      importTemplate().then(response => {
-        this.download(response.msg);
-      });
+      this.$refs['downloadFileForm'].submit()
     },
     // 文件上传中处理
     handleFileUploadProgress(event, file, fileList) {
@@ -741,6 +746,7 @@ export default {
     },
     // 文件上传成功处理
     handleFileSuccess(response, file, fileList) {
+      console.log(response)
       this.upload.open = false;
       this.upload.isUploading = false;
       this.$refs.upload.clearFiles();