mysql 数据库页面导入Excel 更新单表数据
/**
* 委外上传待确认案件
*
* @param fileName
* @param httpSession
*/
@RequestMapping(value = "/upLoadOaAssignTemp", method = { RequestMethod.POST })
@ResponseBody
public void upLoadOaAssignTemp(HttpServletRequest request, HttpServletResponse response) {
try {
ExecutorService executorService = Executors.newFixedThreadPool(NEWFIXEDTHREADPOOL);
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<?> items = null;
try {
items = upload.parseRequest(request);
} catch (FileUploadException ex) {
ex.printStackTrace();
}
Iterator<?> iter = items.iterator();
if (items.size() == 0) {
response.getWriter().write("error");
}
while(iter.hasNext()){
FileItem item = (FileItem)iter.next();
try {
// 读取文件中的内容
List<List<String>> arrCells = jXLExcelUtils.readExcel(item, 1);
// 校验数据
checkUpLoadOaAssignTemp(arrCells);
// 保存数据
List<List<List<String>>> splitList = splitList(arrCells,500);
for (List<List<String>> list : splitList) {
saveUpLoadOaAssignTemp(list);
}
} catch (ProcessException pe) {
response.getWriter().write(pe.getMessage());
logger.info(pe.getMessage());
} catch (FlatException e) {
response.getWriter().write(e.getMessage());
logger.info(e.getMessage());
} catch (Exception e) {
response.getWriter().write("导入委外待确认案件失败!");
logger.info(e.getMessage());
}
}
} catch (Exception e) {
throw new FlatException("上传处理失败,失败原因:"+e.getMessage());
}
}
@Transactional
private void saveUpLoadOaAssignTemp(List<List<String>> arrCells) throws Exception {
// 0 1 2 3 4 5 6 7 8 9
//{"账户号","合同号","客户姓名","逾期天数","逾期期数","逾期总额","队列编码","外包厂商","外包开始日期","外包结束日期"};
try {
QErmasOaAssignTemp qErmasOaAssignTemp = QErmasOaAssignTemp.ermasOaAssignTemp;
QErmasAccount qErmasAccount = QErmasAccount.ermasAccount;
LinkedList<ErmasOaAssignTemp> linkedList = new LinkedList<ErmasOaAssignTemp>();
LinkedList<String> acctNoList = new LinkedList<String>();
for (List<String> list : arrCells) {
String acctNo = list.get(0).trim();
acctNoList.add(acctNo);
}
Iterable<ErmasOaAssignTemp> ermasOaAssignTempList = rErmasOaAssignTemp.findAll(qErmasOaAssignTemp.acctNo.in(acctNoList));
HashMap<String, ErmasOaAssignTemp> ermasOaAssignMap = new HashMap<String, ErmasOaAssignTemp>();
for (ErmasOaAssignTemp ermasOaAssignTemp2 : ermasOaAssignTempList) {
ermasOaAssignMap.put(ermasOaAssignTemp2.getAcctNo(), ermasOaAssignTemp2);
}
for (List<String> list : arrCells) {
logger.info("---------{}------------",list.get(0));
String acctNo = list.get(0).trim();
String oaOrgNo = list.get(7).trim();
ErmasOaAssignTemp ermasOaAssignTemp = ermasOaAssignMap.get(acctNo);
ermasOaAssignTemp.setOaOrgNo(oaOrgNo);
linkedList.add(ermasOaAssignTemp);
}
rErmasOaAssignTemp.save(linkedList);
} catch (Exception e) {
for (List<String> list : arrCells) {
logger.error("-----批量保存委外待确认案件异常-异常原因{}-异常数据------",list.toString());
}
logger.error("-----批量保存委外待确认案件异常-异常原因{}-------",e);
}
}