@RequestMapping(value = "/upload/uploadFileBankExcel", method = RequestMethod.POST)
public String uploadExcel(@RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws ParseException {
Map map=request.getParameterMap();
String dataStr = request.getParameter("dataStr");
//文件类型
String fileTypeReal = FilesUtils.GetFileType(file.getOriginalFilename());
//文件路径模版
String filePath = contractCodePath + "uploadFile";
//uuid文件名称
String fileUuid = FilesUtils.GetUUIDFileName(fileTypeReal);
//上传文件名称
String fileName = file.getOriginalFilename();
Map dataMap = JsonPluginsUtil.jsonToMap(dataStr);
//接受前台传过来的产品名称与产品代码
String productType = dataMap.get("productType").toString();
String productName = dataMap.get("name").toString();
Integer projetId=Integer.parseInt(productType);
Object date1 = dataMap.get("minTimes");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date date = formatter.parse(date1.toString());
//通过文件名查询数据条数
int uploadFileBankCount = uploadFileBankService.selectUploadFileCount(fileName);
if (uploadFileBankCount != 0) {
uploadFileBankService.deleteUploadFileBankByFileName(fileName);
logger.info(fileName + "重复,删除数据");
}
//文件上传
boolean uploadFlag = FilesUtils.uploadFileByPathAndName(file, filePath, fileUuid);
String res = null;
//文件保存的数据库表
UploadFileBank uploadFile = new UploadFileBank();
uploadFile.setCreateTime(new Date());
uploadFile.setFileName(fileName);
uploadFile.setFileUrl(fileUuid);
uploadFile.setProjectId(projetId);
uploadFile.setProjectName(productName);
//根据产品代码 查询产品ID与产品名称
// 若上传成功
if (uploadFlag) {
//上传文件的总路径
String path = filePath + "/" + fileUuid;
String tempPath = contractCodePath;
InputStream inputStream = null;
Workbook workbook = null;
try {
inputStream = new FileInputStream(path);
workbook = ExcelUtils.isXlsOrXlsx(inputStream, path);
} catch (Exception e) {
e.printStackTrace();
return failure(2, "上传失败,请检查上传内容");
} finally {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//uploadFile.setFileId();
//模板路径
tempPath += "bank.xls";
//上传表数据入库
res = getRepaymentPlan(workbook, path, tempPath, date);
if ("成功".equals(res)) {
uploadFile.setUploadState("上传成功");
} else {
uploadFile.setUploadState("上传异常");
uploadFile.setRemark(res);
}
} else {
uploadFile.setUploadState("上传失败");
uploadFile.setRemark("请核对上传模版");
}
uploadFileBankService.addUploadFileBank(uploadFile);
return success();
}
/**
* Title: getRepaymentPlan
* Description: 银行还款计划表入库
*
* @author: 席清宁
* @Date: 2019/07/11 17:22
*/
public String getRepaymentPlan(Workbook workbook, String path, String tempPath,Date date) {
try {
if (workbook != null) {
List<RepaymentBankModel> repaymentBankModels = new ArrayList<>();
//遍历上传Excel的sheet和模板的sheet1对比如果相同不进行处理
for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) {
//
boolean flag = ExcelUtils.judgeExcelModel(path, tempPath, numSheet, 0);
//判断表头是否存在true存在
if(flag == false ){
return "银行还款计划表有错误,请检查是否是需要的文件,或者查看是否有多余的sheet,如果有删除多余的sheet删除后重新上传";
}
repaymentBankModels = ExcelUtils.readExcelByRow(path, numSheet, 1, RepaymentBankModel.class, getMap());
//更新数据库表
String res=updateFileBank(repaymentBankModels,date);
//判断是否有异常消息
if(StringUtils.isNotBlank(res)){
return res;
}
}
}
} catch (Exception e) {
e.printStackTrace();
return "上传失败";
}
return "成功";
}
/**
*
*/
private String updateFileBank(List<RepaymentBankModel> repaymentBankModels ,Date date) throws ParseException {
//处理数据
List<Map> list = new ArrayList<>();
String res = null;
StringBuilder news = new StringBuilder();
for(RepaymentBankModel repaymentBankModel :repaymentBankModels){
System.out.println("处理:" + repaymentBankModel.getName() + "身份证号为:"+ repaymentBankModel.getIdnumber()+" 还款信息");
Repayment repayment = new Repayment();
String id=repaymentBankModel.getIdnumber();
//跟据身份证号查询客户ID
String customerId = customerService.selectCustomerByNo(id);
if(customerId==null){
news.append("客户"+repaymentBankModel.getName() + "身份证号为:"+ repaymentBankModel.getIdnumber()+"信息不存在");
continue;
}
logger.info("客户ID"+customerId);
repayment.setCustomerId(customerId);
repayment.setPayDate(DateUtils.getDateFromString(repaymentBankModel.getRepaymentTime()));
repayment.setCurrentPrincipal(new Double(repaymentBankModel.getPrincipal()));
repayment.setCurrentTotalInterest(new Double(repaymentBankModel.getInterest()));
repayment.setCurrentResidueAmount(new Double(repaymentBankModel.getRepaymentMonth()));
if(repaymentBankModel.getDateStatus().equals("失败")){
repayment.setPayStatus(2);
repayment.setPayStatusNote("扣款失败");
}else if(repaymentBankModel.getDateStatus().equals("成功")){
repayment.setPayStatus(1);
repayment.setPayStatusNote("扣款成功");
}else {
repayment.setPayStatus(99);
repayment.setPayStatusNote("扣款异常");
}
logger.info("开始更新数据库表repayment中客户id为"+repayment.getCustomerId()+"的客户信息");
int update=repaymentService.updatePayDateRepayment(repayment);
//判断匹配条数
if(update==0){
news.append("客户:"+repaymentBankModel.getName() + "身份证号为:"+ repaymentBankModel.getIdnumber()+"信息不存在,请核对!");
continue;
}
logger.info(update+"条更新了");
}
int update=repaymentService.updateStatus(date);
logger.info(update+"条更新了");
res= news==null?null:news.toString();
return res;
}
/**
* Title: getMap
* Description: bean中字段与Excel中位置的对应关系
*
* @author: xiqingning
* @Date: 2019/07/12 18:50
*/
public static Map<String, Integer> getMap() {
Map<String, Integer> map = new HashMap<>();
map.put("name", 0);
map.put("idnumber", 1);
map.put("repaymentTime", 2);
map.put("principal", 3);
map.put("interest", 4);
map.put("repaymentMonth", 5);
map.put("dateStatus", 6);
map.put("remark", 7);
return map;
}
/**
* Title: downloadExcel
* Description: 下载
*
* @author: xiqignning
* @Date: 2019/7/15 17:35
*/
@RequestMapping(value = "/file/fileBankDownLoad", method = RequestMethod.GET)
public void fileBankDownLoad(HttpServletRequest request, HttpServletResponse response) {
if (StringUtils.isEmpty(request.getParameter("id"))) {
return;
}
String idStr = request.getParameter("id");
UploadFileBank uploadFile = uploadFileBankService.selectByPrimaryKey(Integer.parseInt(idStr));
String fileName = uploadFile.getFileName();
//拼接文件路径
String filePath = contractCodePath + "uploadFile/" + uploadFile.getFileUrl();
try {
DownLoadFileUtils.downloanExcelForXlsx(filePath,response,fileName);
} catch (Exception e) {
e.printStackTrace();
}
}
@RestController
public class UploadFileBankController extends BaseController
上边是文件controller
配置文件读取的地址
@Value("${contract.pathBank}")
private String contractCodePath;
实体类UpLoadFileBankData 用于接受前台参数 用于条件查询 /** * @program: postloan * @description: 接受前台参数,用于条件查询 * @author: 席清宁 * @create: 2019-07-16 11:17 **/ package com.cfam.entity; import com.cfam.base.BaseModel; import java.util.Date; public class UpLoadFileBankData extends BaseModel { private String productType; private String uploadState; private Date minTimes; private Date maxTimes; public String getProductType() { return productType; } public void setProductType(String productType) { this.productType = productType; } public String getUploadState() { return uploadState; } public void setUploadState(String uploadState) { this.uploadState = uploadState; } public Date getMinTimes() { return minTimes; } public void setMinTimes(Date minTimes) { this.minTimes = minTimes; } public Date getMaxTimes() { return maxTimes; } public void setMaxTimes(Date maxTimes) { this.maxTimes = maxTimes; } }
前台页面效果
工具类
/** * <p>Title: uploadFileByPathAndName</p> * <p>Description: 上传文件</p> * @author xiaogang * @param file * @param filePath * @param fileName * @return */ public static boolean uploadFileByPathAndName(MultipartFile file, String filePath, String fileName) { if (!file.isEmpty()) { try {//如果文件存在 File fileTempDir = new File(filePath); if (!fileTempDir.exists() && !fileTempDir.isDirectory()) { fileTempDir.mkdirs();//先创建对应模块的文件夹 } File fileTemp = new File(filePath + "/" + fileName);//建立对应的文件 System.out.println("生成文件地址 : "+filePath + "/" + fileName); BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(fileTemp)); out.write(((MultipartFile) file).getBytes());//将文件内容写到具体地址的新建文件中 out.flush(); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); return false; } catch (IOException e) { e.printStackTrace(); return false; } } else { return false; } return true; } /** * <p>Title: mkNewFileName</p> * <p>Description: 重命名重复文件名称 </p> * @author xiaogang * @param fileName * @return newFileName */ // public String mkNewFileName(String fileName){ // String newFileName = ""; // String simpleName = ""; // String fileTypeReal = ""; // int fileTypeIndex = fileName.indexOf("."); // if(fileTypeIndex>0){ // fileTypeReal = fileName.substring(fileTypeIndex+1, fileName.length()); // } // if(fileName.length()>0){ // simpleName = fileName.substring(0, fileTypeIndex); // if(")".equals(simpleName.substring(simpleName.length()-1,simpleName.length()-0))){ // if("(".equals(simpleName.substring(simpleName.length()-3,simpleName.length()-2))){ // int a = Integer.parseInt(simpleName.substring(simpleName.length()-2,simpleName.length()-1)); // a+=1; // simpleName = simpleName.substring(0,simpleName.length()-3) + a + ")"; // } // }else{ // simpleName = simpleName+"(1)"; // } // }else{ // simpleName = "fileNameisNull"; // } // newFileName = simpleName+"."+fileTypeReal; // return newFileName; // } /** * <p>Title: GetFileType</p> * <p>Description: 获取文件后缀</p> * @author xiaogang * @param fileName * @return */ public static String GetFileType(String fileName) { String fileTypeReal = ""; int fileTypeIndex = fileName.indexOf("."); if (fileTypeIndex > 0) { fileTypeReal = fileName.substring(fileTypeIndex + 1, fileName.length()); } return fileTypeReal; } /** * <p>Title: GetUUIDFileName</p> * <p>Description: 生成UUID文件名</p> * @author xiaogang * @param index 文件后缀 * @return */ public static String GetUUIDFileName(String index) { return FileUploadItems.getUUID() + "." + index; }
excele工具类
1 public class ExcelUtils { 2 /** 3 * Title: ExcelUtils 4 * Description: 判断上传的excel是xls还是xlsx结尾的。 5 * 6 * @author: likaichuan 7 * @Date: 2018/1/11 15:59 8 */ 9 public static Workbook isXlsOrXlsx(InputStream inputStream, String path) throws FileNotFoundException, IOException { 10 Workbook workbook = null; 11 if (path.endsWith(".xls")) { 12 workbook = new HSSFWorkbook(inputStream); 13 } else if (path.endsWith(".xlsx")){ 14 workbook = new XSSFWorkbook(inputStream); 15 } 16 return workbook; 17 } 18 19 /** 20 * <p>Title: readExcelByRow</p> 21 * <p>Description: 读取Excel的行</p> 22 * 23 * @param filePath 24 * @param readSheetNum 25 * @param readStartRowNum 26 * @param clazz 27 * @param beanExcelMap 28 * @return 29 * @author likaichuan 30 */ 31 public static <T> List<T> readExcelByRow(String filePath, int readSheetNum, int readStartRowNum, Class<T> clazz, Map<String, Integer> beanExcelMap) 32 throws Exception { 33 InputStream inputStream = null; 34 try { 35 inputStream = new FileInputStream(filePath); 36 Workbook workbook =isXlsOrXlsx(inputStream, filePath); 37 // HSSFWorkbook hssfWorkbook = new HSSFWorkbook(inputStream); 38 return listBeanFromExcel(workbook, readSheetNum, readStartRowNum, clazz, beanExcelMap); 39 } catch (FileNotFoundException e) { 40 // TODO Auto-generated catch block 41 e.printStackTrace(); 42 return new ArrayList<>(); 43 } catch (IOException e) { 44 // TODO Auto-generated catch block 45 e.printStackTrace(); 46 return new ArrayList<>(); 47 } finally { 48 try { 49 inputStream.close(); 50 } catch (IOException e) { 51 e.printStackTrace(); 52 } 53 } 54 55 56 } 57 58 /** 59 * <p>Title: judgeExcelModel</p> 60 * <p>Description: 对比上传的文件与模板是否一致</p> 61 * 62 * @param path 63 * @param templatePath 64 * @param sheetNum 65 * @param rowNum 66 * @return 67 * @author likaichuan 68 */ 69 public static Boolean judgeExcelModel(String path, String templatePath, int sheetNum, int rowNum) { 70 InputStream inputStream = null; 71 InputStream inputStreamServer = null; 72 try { 73 inputStream = new FileInputStream(path); 74 Workbook workbook = isXlsOrXlsx(inputStream, path); 75 inputStreamServer = new FileInputStream(templatePath); 76 Workbook workbookServer = isXlsOrXlsx(inputStreamServer, templatePath); 77 List<String> modelList = getListFromExcel(workbook, path, sheetNum, rowNum); 78 List<String> uploadModelList = getListFromExcel(workbookServer, templatePath, 0, rowNum); 79 if (modelList.equals(uploadModelList)) { 80 return true; 81 } else { 82 return false; 83 } 84 } catch (Exception e) { 85 e.printStackTrace(); 86 return false; 87 } finally { 88 try { 89 inputStream.close(); 90 inputStreamServer.close(); 91 } catch (IOException e) { 92 e.printStackTrace(); 93 } 94 } 95 } 96 97 /** 98 * <p>Title: getListFromExcel</p> 99 * <p>Description: 获取Excel的表头</p> 100 * 101 * @param workbook 102 * @param filePath 103 * @param sheetNum 104 * @param rowNum 105 * @return 106 * @author likaichuan 107 */ 108 private static List<String> getListFromExcel(Workbook workbook, String filePath, int sheetNum, int rowNum) { 109 Sheet sheet = workbook.getSheetAt(sheetNum); 110 List<String> list = new ArrayList<>(); 111 Row row = sheet.getRow(rowNum); 112 for (int i = 0; i < row.getLastCellNum(); i++) { 113 list.add(getValue(row.getCell(i))); 114 } 115 116 return list; 117 } 118 119 /** 120 * <p>Title: getBeanFromExcel</p> 121 * <p>Description: 将Excel读取到list中</p> 122 * 123 * @param workbook 124 * @param sheetNum 125 * @param dataStartRowNum 126 * @param clazz 127 * @param beanExcelMap 128 * @return 129 * @author likaichuan 130 */ 131 private static <T> List<T> listBeanFromExcel(Workbook workbook, int sheetNum, int dataStartRowNum, Class<T> clazz, Map<String, Integer> beanExcelMap) { 132 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 133 DecimalFormat df = new DecimalFormat("0.####"); 134 Sheet sheet = workbook.getSheetAt(sheetNum); 135 List<T> list = new ArrayList<>(); 136 for (int rowNum = dataStartRowNum; rowNum <= sheet.getLastRowNum(); rowNum++) { 137 Row row = sheet.getRow(rowNum); 138 Map<String, String> map = new HashMap<>(); 139 if (row != null) { 140 for (Map.Entry<String, Integer> entry : beanExcelMap.entrySet()) { 141 try { 142 String value = ""; 143 if (row.getCell(entry.getValue()) != null && getValue(row.getCell(entry.getValue())).trim().length() != 0 && row.getCell(entry.getValue()).getCellType() == Cell.CELL_TYPE_NUMERIC) { 144 if (org.apache.poi.ss.usermodel.DateUtil.isCellDateFormatted(row.getCell(entry.getValue()))) { 145 value = sdf.format(row.getCell(entry.getValue()).getDateCellValue()); 146 } else { 147 value = df.format(row.getCell(entry.getValue()).getNumericCellValue()); 148 } 149 } else { 150 value = getValue(row.getCell(entry.getValue())); 151 } 152 // xssfRow.getCell(entry.getValue())!=null&&getValue(xssfRow.getCell(entry.getValue())).trim().length()!=0&&xssfRow.getCell(entry.getValue()).getCellType()==Cell.CELL_TYPE_NUMERIC? 153 // (org.apache.poi.ss.usermodel.DateUtil.isCellDateFormatted(xssfRow.getCell(entry.getValue())) ? sdf.format(xssfRow.getCell(entry.getValue()).getDateCellValue()):df.format(xssfRow.getCell(entry.getValue()).getNumericCellValue())) 154 // :getValue(xssfRow.getCell(entry.getValue())) 155 map.put(entry.getKey(), value); 156 } catch (Exception e) { 157 e.printStackTrace(); 158 } 159 } 160 list.add(getBean(clazz, map)); 161 } 162 } 163 164 return list; 165 } 166 167 /** 168 * <p>Title: getValue</p> 169 * <p>Description: 根据不同类型读取Excel中cell的值</p> 170 * 171 * @param cell 172 * @return 173 * @author likaichuan 174 */ 175 @SuppressWarnings("static-access") 176 private static String getValue(Cell cell) { 177 String res = ""; 178 if (cell == null) { 179 return ""; 180 } 181 if (cell.getCellType() == cell.CELL_TYPE_BOOLEAN) { 182 res = String.valueOf(cell.getBooleanCellValue()); 183 } else if (cell.getCellType() == cell.CELL_TYPE_NUMERIC) { 184 res = String.valueOf(cell.getNumericCellValue()); 185 } else if (cell.getCellType() == cell.CELL_TYPE_FORMULA) { 186 res = String.valueOf(cell.getNumericCellValue()); 187 } else { 188 try { 189 res = String.valueOf(cell.getStringCellValue()); 190 }catch (Exception e) { 191 System.out.print(cell); 192 e.printStackTrace(); 193 } 194 } 195 return res; 196 } 197 198 /** 199 * <p>Title: getBean</p> 200 * <p>Description: 将Excel的一行赋值给对应的bean</p> 201 * 202 * @param clazz 203 * @param map 204 * @return 205 * @author likaichuan 206 */ 207 private static <T> T getBean(Class<T> clazz, Map<String, String> map) { 208 T obj = null; 209 try { 210 obj = clazz.newInstance(); 211 Field[] fields = clazz.getDeclaredFields(); 212 for (Field field : fields) { 213 field.setAccessible(true); 214 field.set(obj, map.get(field.getName())); 215 field.setAccessible(false); 216 } 217 } catch (Exception e) { 218 e.printStackTrace(); 219 } 220 return obj; 221 }
模版
public class RepaymentBankModel extends BaseModel { //姓名 private String name; //身份证号 private String idnumber; //还款时间 private String repaymentTime; //当期剩余应还本金 private String principal; //当期剩余应还利息 private String interest; //当期剩余应还月供 private String repaymentMonth; //还款状态 private String dateStatus; //备注 private String remark;
前台代码
<template> <section style="padding:20px"> <el-row> <strong class="title">银行还款数据导入</strong> </el-row> <br /> <!-- 检索操作区域 --> <el-card> <el-form :model="searcher"> <el-row> <el-col :span="8"> <el-form-item label="起始时间"> <el-date-picker v-model="searcher.minTimes" type="date" value-format="yyyy-MM-dd"></el-date-picker> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="终止时间"> <el-date-picker v-model="searcher.maxTimes" type="date" value-format="yyyy-MM-dd"></el-date-picker> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="所属产品"> <el-select v-model="searcher.productType" placeholder="所属产品"> <el-option v-for="item in productList" :key="item.id" :value="item.id" :label="item.name" /> </el-select> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="8"> <el-form-item label="上传状态"> <el-select v-model="searcher.uploadState" placeholder="上传状态"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-button type="primary" v-on:click="search()" style="text-align: center">查询</el-button> <el-button type="primary" v-on:click="reset()" style="text-align: center">重置</el-button> <el-button type="primary" v-on:click="showDialog()" style="text-align: center">上传文件</el-button> </el-col> </el-row> </el-form> </el-card> <br /> <!-- 表格数据部分 --> <el-card class="dataimport-table"> <el-table :data="list" border> <el-table-column prop="dataNo" label="序号" align="center" type="index" width="120" fixed></el-table-column> <!-- <el-table-column label="文件名称" align="center" width="250" fixed> <template slot-scope="scope"> <el-button type="text" @click="viewDetailInfo(scope.row.fileName)" >{{ scope.row.fileName }}</el-button> </template> </el-table-column>--> <el-table-column prop="fileName" label="文件名" align="center"></el-table-column> <el-table-column prop="projectName" label="所属产品" align="center" width="300"></el-table-column> <el-table-column prop="uploadState" label="上传状态" align="center" width="300"></el-table-column> <el-table-column prop="createTime" label="上传时间" align="center" width="300"></el-table-column> <el-table-column prop="remark" label="备注" align="center" width="300"></el-table-column> <el-table-column label="操作" align="center"> <template slot-scope="scope"> <el-button size="small" type="primary" @click="download(scope.row.id)">下载</el-button> </template> </el-table-column> </el-table> </el-card> <el-dialog title="提示" width="30%" :before-close="handleClose" :visible.sync="dialogVisible"> <span> <el-form :model="dialog" :inline="true"> <el-form-item label="还款时间"> <el-date-picker v-model="dialog.minTimes" type="date" value-format="yyyy-MM-dd"></el-date-picker> </el-form-item> <el-form-item label="所属产品"> <el-select v-model="dialog.productType" filterable value-key="name" placeholder="所属产品"> <el-option v-for="item in productList" :key="item.id" :value="item" :label="item.name" /> </el-select> </el-form-item> <el-form-item> <el-upload class="upload-demo" ref="upload" :data="fileData" :action="fileUrlBank" :on-success="handleAvatarScucess" :before-upload="beforeAvatarUpload" :multiple="true" :auto-upload="true" > <el-button @click="dialogVisible = false">取 消</el-button> <el-button slot="trigger" size="medium" type="primary" @click="dialogVisible = false" >文件上传</el-button> <!-- <el-button type="primary" @click="dialogVisible = false">确 定</el-button> --> </el-upload> </el-form-item> </el-form> </span> </el-dialog> <!-- 分页部分 --> <el-pagination style="text-align:center;margin-top: 20px;" background layout="total, prev, pager, next" :page-size="10" @current-change="pageChange" :total="total" ></el-pagination> </section> </template> <script> // 需要调用到的后台api import { productList, getTableList, getLocalhost } from "../api/api"; import url from "../api/url"; import ElCol from "element-ui/packages/col/src/col"; import deductions_dialog from "@/components/reusable_template/deductions_dialog"; export default { components: { ElCol, "deductions-dialog": deductions_dialog }, data() { return { options: [ { value: "上传成功", label: "上传成功" }, { value: "上传失败", label: "上传失败" }, { value: "上传异常", label: "上传异常" } ], para: { minTimes: "", productType: "", name: "" }, versionTemp: { id: null, name: null }, dialogVisible: false, // 所属产品 productList: [], fileData: { dataStr: "" }, fileUrlBank: url.fileUrlBank, // 搜索输入框 dialog: { customerName: "", minTimes:null, productType:null, // 固定代理商名称 dealerName: this.$store.getters.dealerName, // isLate:"", // productType: { // name: "" // }, // minTimes:null, // maxTimes:null, page: 1, size: 12 }, searcher: { // 固定代理商名称 //dealerName: this.$store.getters.dealerName, // isLate:"", productType: null, minTimes: null, maxTimes: null, uploadState:null }, total: 0, queryButton: 1, list: [], //数据展示列表 rules: this.$validate.rules, customer: {} }; }, methods: { download(id) { getLocalhost({}).then(data => { var localhost = data.data; console.log("=================="); console.log(localhost); window.location.href = localhost + "/file/fileBankDownLoad?id=" + id; }); }, getTableList(type) { this.searcher={ productType: type.productType, minTimes: type.minTimes, maxTimes: type.maxTimes, uploadState: type.uploadState } getTableList(this.searcher).then(data => { this.total = data.data.total; this.list = data.data.list; }); }, getlist() { this.getTableList(this.searcher); }, handleClose(done) { this.$confirm("确认关闭?") .then(_ => { done(); }) .catch(_ => {}); }, //上传成功后 handleAvatarScucess(res, file) { // if (this.searcher == "") { // return; // } //清楚上传文件列表 this.$refs.upload.clearFiles(); if (res.code == 0) { //去查询已上传文件列表 this.getTableList(this.searcher); this.$message(res.data); } else { //给出提示信息 this.$notify.error({ title: "上传失败", message: "上传失败", duration: 2500, offset: 100 }); } }, //上传前对文件进行处理 beforeAvatarUpload(file) { let _this = this; if (_this.dialog.minTimes == null || _this.dialog.productType == null) { this.$message.error("请选择还款时间与所属产品"); return; } console.log(_this.dialog.minTimes); return new Promise((resolve, reject) => { //获取文件扩展名 var fileExtension = file.name.substring(file.name.lastIndexOf(".") + 1); if ( fileExtension == "xls" || fileExtension == "xlsx" || fileExtension == "csv" ) { //name id _this.para.productType = _this.dialog.productType.id; _this.para.minTimes = _this.dialog.minTimes; _this.para.name = _this.dialog.productType.name; console.log(_this.para); _this.fileData.dataStr = JSON.stringify(_this.para); resolve(file); } else { resolve(file); this.$message.error("上传文件错误"); return; } }); }, //分页 pageChange(val) { this.searcher.page = val; console.log("------------------------------------"); console.log("queryButton:" + this.queryButton); if (this.queryButton == 1) { this.getTableList(this.searcher); } else { this.getTableList(this.searcher); } }, //查詢 search() { //let map = this.searcher; this.searcher.page = 1 this.getTableList(this.searcher) //this.getTableList(map); }, /** * 重置按钮 */ reset() { this.searcher = { //搜索输入框 customerName: "", uploadState:null, //dealerName: this.$store.getters.dealerName, // isLate:"", minTimes: null, maxTimes: null, page: 1, size: 12 }; }, getAllProducts() { this.productList = this.$store.getters.productList; }, //文件上传 showDialog() { this.dialogVisible = true; } }, mounted() { this.getAllProducts(); this.getTableList(this.searcher); } }; </script>