wangggziwen 6 mesi fa
parent
commit
5644c5dfad

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

@@ -385,6 +385,9 @@ public class CommonController extends BaseController
         }else if( type.equals("cleaning") ) {
             downloadname = "PSSR设备清洁度导入模板.xlsx";
             url = "static/template/pssr/cleaning.xlsx";
+        }else if( type.equals("airtight") ) {
+            downloadname = "PSSR气密导入模板.xlsx";
+            url = "static/template/pssr/airtight.xlsx";
         }
 
         InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(url);

+ 98 - 3
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrAirtightController.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.file.ExcelUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -10,31 +11,34 @@ import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.framework.web.page.TableDataInfo;
 import com.ruoyi.project.pssr.domain.TPssrAirtight;
 import com.ruoyi.project.pssr.domain.TPssrApprove;
+import com.ruoyi.project.pssr.domain.TPssrAirtight;
 import com.ruoyi.project.pssr.domain.TPssrSubcontent;
 import com.ruoyi.project.pssr.service.ITPssrAirtightService;
 import com.ruoyi.project.pssr.service.ITPssrApproveService;
 import com.ruoyi.project.pssr.service.ITPssrFileService;
 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.ProcessEngine;
 import org.activiti.engine.ProcessEngines;
 import org.activiti.engine.TaskService;
 import org.activiti.engine.task.Task;
-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.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -60,6 +64,97 @@ public class TPssrAirtightController extends BaseController {
     @Autowired
     private ISysUserService sysUserService;
 
+    @Autowired
+    private ISysDeptService iSysDeptService;
+
+    @Autowired
+    private ISysUserService userService;
+
+    /**
+     * 批量导入
+     */
+    @PreAuthorize("@ss.hasPermi('pssr:airtight: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<TPssrAirtight> list = new ArrayList<TPssrAirtight>();
+        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();
+                TPssrAirtight entity = new TPssrAirtight();
+                entity.setDeptId(userService.selectUserById(getUserId()).getDeptId());
+                entity.setSubId(subId);
+                entity.setApproveStatus(0L);
+                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.setUnit(cellValue);
+                    }else if (j == 1) {
+                        entity.setSystemName(cellValue);
+                    }else if (j == 2) {
+                        entity.setAirtightMedium(cellValue);
+                    }else if (j == 3) {
+                        entity.setAirtightPressure(cellValue);
+                    } else if (j == 4) {
+                        entity.setInitialPressure(cellValue);
+                    } else if (j == 5) {
+                        entity.setFinalPressure(cellValue);
+                    } else if (j == 6) {
+                        entity.setLeakageRate(cellValue);
+                    } else if (j == 7) {
+                        entity.setStandard(cellValue);
+                    } else if (j == 8) {
+                        if (cellValue.length() > 3) {
+                            entity.setConfirmationDate(new SimpleDateFormat(DateUtils.getDateFormat(cellValue)).parse(cellValue));
+                        }
+                    } else if (j == 9) {
+                        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 (TPssrAirtight t : list
+        ) {
+            failNum++;
+            try {
+                tPssrAirtightService.insertTPssrAirtight(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));
+    }
+
     /**
      * 查询气密列表
      */

+ 1 - 1
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrMeasureController.java

@@ -79,7 +79,7 @@ public class TPssrMeasureController extends BaseController {
     /**
      * 批量导入
      */
-    @PreAuthorize("@ss.hasPermi('pssr:hygiene:add')")
+    @PreAuthorize("@ss.hasPermi('pssr:measure:add')")
     @PostMapping("/importData")
     public AjaxResult importInterlockData(MultipartFile file, Long subId) throws IOException
     {

+ 1 - 1
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrProtectionController.java

@@ -79,7 +79,7 @@ public class TPssrProtectionController extends BaseController {
     /**
      * 批量导入
      */
-    @PreAuthorize("@ss.hasPermi('pssr:hygiene:add')")
+    @PreAuthorize("@ss.hasPermi('pssr:protection:add')")
     @PostMapping("/importData")
     public AjaxResult importInterlockData(MultipartFile file, Long subId) throws IOException
     {

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


+ 11 - 6
ui/src/views/pssr/airtight/index.vue

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