jcdm-main/src/main/java/com/jcdm/main/bs/workshop/controller/BsWorkshopInfoController.java
@@ -3,6 +3,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.jcdm.common.core.domain.entity.SysUser; import com.jcdm.main.bs.workshop.service.IBsWorkshopInfoService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; @@ -21,6 +22,7 @@ import com.jcdm.main.bs.workshop.domain.BsWorkshopInfo; import com.jcdm.common.utils.poi.ExcelUtil; import com.jcdm.common.core.page.TableDataInfo; import org.springframework.web.multipart.MultipartFile; /** * 车间信息Controller123 @@ -102,4 +104,21 @@ { return toAjax(bsWorkshopInfoService.deleteBsWorkshopInfoByIds(ids)); } @PostMapping("/importTemplate") public void importTemplate(HttpServletResponse response) { ExcelUtil<BsWorkshopInfo> util = new ExcelUtil<>(BsWorkshopInfo.class); util.importTemplateExcel(response, "车间数据"); } @PostMapping("/importData") public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { ExcelUtil<BsWorkshopInfo> util = new ExcelUtil<BsWorkshopInfo>(BsWorkshopInfo.class); List<BsWorkshopInfo> workshopList = util.importExcel(file.getInputStream()); String operName = getUsername(); String message = bsWorkshopInfoService.importWrokshop(workshopList, updateSupport, operName); return success(message); } } jcdm-main/src/main/java/com/jcdm/main/bs/workshop/service/IBsWorkshopInfoService.java
@@ -1,6 +1,8 @@ package com.jcdm.main.bs.workshop.service; import java.util.List; import com.jcdm.common.core.domain.entity.SysUser; import com.jcdm.main.bs.workshop.domain.BsWorkshopInfo; /** @@ -58,4 +60,7 @@ * @return 结果 */ public int deleteBsWorkshopInfoById(Long id); public String importWrokshop(List<BsWorkshopInfo> userList, Boolean isUpdateSupport, String operName); } jcdm-main/src/main/java/com/jcdm/main/bs/workshop/service/impl/BsWorkshopInfoServiceImpl.java
@@ -1,7 +1,13 @@ package com.jcdm.main.bs.workshop.service.impl; import java.util.List; import com.jcdm.common.core.domain.entity.SysUser; import com.jcdm.common.exception.ServiceException; import com.jcdm.common.utils.DateUtils; import com.jcdm.common.utils.SecurityUtils; import com.jcdm.common.utils.StringUtils; import com.jcdm.common.utils.bean.BeanValidators; import com.jcdm.main.bs.workshop.service.IBsWorkshopInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -97,4 +103,16 @@ { return bsWorkshopInfoMapper.deleteBsWorkshopInfoById(id); } @Override public String importWrokshop(List<BsWorkshopInfo> userList, Boolean isUpdateSupport, String operName) { StringBuilder successMsg = new StringBuilder(); for (BsWorkshopInfo info : userList) { insertBsWorkshopInfo(info); successMsg.append("<br/>" + info.getWorkshopName() + " 导入成功"); } return successMsg.toString(); } } jcdm-ui/src/views/main/bs/workshop/index.vue
@@ -64,6 +64,15 @@ </el-col> <el-col :span="1.5"> <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport" >导入</el-button> </el-col> <el-col :span="1.5"> <el-button type="warning" plain icon="el-icon-download" @@ -164,11 +173,42 @@ <el-button @click="cancel">取 消</el-button> </div> </el-dialog> <!-- 用户导入对话框 --> <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body> <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag > <i class="el-icon-upload"></i> <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> <div class="el-upload__tip text-center" slot="tip"> <div class="el-upload__tip" slot="tip"> <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的车间数据 </div> <span>仅允许导入xls、xlsx格式文件。</span> <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link> </div> </el-upload> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitFileForm">确 定</el-button> <el-button @click="upload.open = false">取 消</el-button> </div> </el-dialog> </div> </template> <script> import { listWorkshop, getWorkshop, delWorkshop, addWorkshop, updateWorkshop } from "@/api/main/bs/workshop/workshop"; import {getToken} from "@/utils/auth"; export default { name: "Workshop", @@ -219,13 +259,54 @@ workshopName: [ { required: true, message: "车间名称不能为空", trigger: "blur" } ], } }, // 用户导入参数 upload: { // 是否显示弹出层(用户导入) open: false, // 弹出层标题(用户导入) title: "", // 是否禁用上传 isUploading: false, // 是否更新已经存在的用户数据 updateSupport: 0, // 设置上传的请求头部 headers: { Authorization: "Bearer " + getToken() }, // 上传的地址 url: process.env.VUE_APP_BASE_API + "/bs/workshop/importData" }, }; }, created() { this.getList(); }, methods: { // 提交上传文件 submitFileForm() { this.$refs.upload.submit(); }, /** 下载模板操作 */ importTemplate() { this.download('bs/workshop/importTemplate', { }, `车间信息_${new Date().getTime()}.xlsx`) }, // 文件上传成功处理 handleFileSuccess(response, file, fileList) { this.upload.open = false; this.upload.isUploading = false; this.$refs.upload.clearFiles(); this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true }); this.getList(); }, // 文件上传中处理 handleFileUploadProgress(event, file, fileList) { this.upload.isUploading = true; }, /** 导入按钮操作 */ handleImport() { this.upload.title = "车间导入"; this.upload.open = true; }, advancedQuery(){ this.advancedShowSearch = (this.advancedShowSearch) ? this.advancedShowSearch = false : this.advancedShowSearch = true; },