فهرست منبع

PSSR检修项目过滤器导入

wangggziwen 6 ماه پیش
والد
کامیت
19b6f17049

+ 90 - 3
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrOverhaulFilterController.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;
@@ -14,25 +15,27 @@ import com.ruoyi.project.pssr.domain.TPssrOverhaulExchanger;
 import com.ruoyi.project.pssr.domain.TPssrOverhaulFilter;
 import com.ruoyi.project.pssr.domain.TPssrSubcontent;
 import com.ruoyi.project.pssr.service.*;
+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.*;
 
 /**
@@ -67,6 +70,90 @@ public class TPssrOverhaulFilterController extends BaseController {
     @Autowired
     private ISysUserService sysUserService;
 
+    @Autowired
+    private ISysDeptService iSysDeptService;
+
+    @Autowired
+    private ISysUserService userService;
+
+    /**
+     * 批量导入
+     */
+    @PreAuthorize("@ss.hasPermi('pssr:overhaulFilter: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<TPssrOverhaulFilter> list = new ArrayList<TPssrOverhaulFilter>();
+        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();
+                TPssrOverhaulFilter entity = new TPssrOverhaulFilter();
+                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.setPlant(cellValue);
+                    } else if (j == 1) {
+                        entity.setUnit(cellValue);
+                    } else if (j == 2) {
+                        entity.setStrainerLocation(cellValue);
+                    } else if (j == 3) {
+                        entity.setPidNo(cellValue);
+                    } else if (j == 4) {
+                        entity.setIsoDwgNo(cellValue);
+                    } else if (j == 5) {
+                        entity.setFlangeSize(cellValue);
+                    } else if (j == 6) {
+                        entity.setQtyNum(cellValue);
+                    } else if (j == 7) {
+                        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 (TPssrOverhaulFilter t : list
+        ) {
+            failNum++;
+            try {
+                tPssrOverhaulFilterService.insertTPssrOverhaulFilter(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));
+    }
+
     @PutMapping("/turnDownFilter")
     public AjaxResult turnDownFilter(@RequestBody TPssrOverhaulFilter tPssrOverhaulFilter) {
         if (tPssrOverhaulFilter.getIds() != null) {

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


+ 12 - 7
ui/src/views/pssr/overhaulFilter/index.vue

@@ -272,7 +272,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"
@@ -285,9 +285,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>
@@ -492,6 +495,10 @@ export default {
       open: false,
       // 用户导入参数
       upload: {
+        //下载模板请求地址
+        downloadAction: process.env.VUE_APP_BASE_API + '/common/template',
+        //下载模板类型
+        type: 'overhaulFilter',
         // 是否显示弹出层(用户导入)
         open: false,
         // 弹出层标题(用户导入)
@@ -503,7 +510,7 @@ export default {
         // 设置上传的请求头部
         headers: {Authorization: "Bearer " + getToken()},
         // 上传的地址
-        url: process.env.VUE_APP_BASE_API + "/pssr/overhaulFilter/importData"
+        url: process.env.VUE_APP_BASE_API + "/pssr/overhaulFilter/importData?subId=" + this.subId
       },
       // 查询参数
       queryParams: {
@@ -755,9 +762,7 @@ export default {
     },
     /** 下载模板操作 */
     importTemplate() {
-      importTemplate().then(response => {
-        this.download(response.msg);
-      });
+      this.$refs['downloadFileForm'].submit()
     },
     // 文件上传中处理
     handleFileUploadProgress(event, file, fileList) {