171127之上传文件
来源:互联网 发布:谷歌看图软件 编辑:程序博客网 时间:2024/06/02 06:23
1:上传文件:
第一步:jsp前端代码
<powersi:button id="search" value="上传" key="button_import" onclick="item_upFile()"/>
第二步:然后调用onclick方法item_upFile():
//上传文件 function item_upFile(){ if(!checkFormValidtion()) {//校验必填项 return; } if(document.getElementById("filePath").value == ''){ alert("导入文件不能为空!"); return; } $("#itemForm").ajaxSubmit( { url : "${rootPath}/medicare/MzSelectHospAction!uploadMzSelectFile.action", datatype : "json", success : function(json){ var jsonData = jQuery.parseJSON(json); var data = jsonData.data; alert(jsonData.message); dg_importFile_info.loadData(data); dg_MzSelect_info.reset(); $("#bkc133").val('');//重置bkc133 }, error:function(json){ alert("error"); var jsonData = jQuery.parseJSON(json); alert(jsonData.message); } }); }
第三步:JavaScript方法体中再调用Action中的方法uploadMzSelectFile
(${rootPath}/medicare/MzSelectHospAction!uploadMzSelectFile.action)
public String uploadMzSelectFile() { //上传导入的门诊选定医院文件与插入数据库 List list = null; try { // 解析上传的文件信息返回List list = ser.getExcelContext(filePath); String bkc033 = this.getFilePathFileName(); List listImport = ser.saveExcelAsItem(list, bkc033); this.setJSONReturn("保存成功!", listImport); } catch (Exception e) { saveJSONError(e.getMessage()); } return NONE; }
/**
* 导入的详细信息
*/
@Override public List getExcelContext(File file) throws Exception { List rsList=new ArrayList(); //创建个集合 Workbook workbook = Workbook.getWorkbook(file); //获取EXCEL文件 Sheet sheet = workbook.getSheet(0); //获取第一页 //验证文件+ if (sheet.getRows() < 3) { //除去固定的开头2行,至少要有一行数据。 throw new HygeiaException("上传文件错误,请下载模版并按格式填写相关数据!"); } else { List<String> cloumName = Arrays.asList("医院编码","业务序列号","个人电脑号","公民身份证号码","疾病名称","icd码","手术码", "手术码对应名称","诊治代码","有效标志"); List<String> cloumNameList = new ArrayList<String>(cloumName); //验证上传的excel列名是否和设定的模板一致 for (int i =0; i <=cloumNameList.size(); i++) { System.out.println("---列名在第二行---"+sheet.getCell(i, 1).getContents()); System.out.println("我是最好的"); if (!cloumNameList.get(i).equals(sheet.getCell(i, 1).getContents())) { //判断是否符合条件,报错 throw new HygeiaException("文件对应列不符合模版标识内容,请重新下载模版并按格式填写相关数据!位置:" + cloumNameList.get(i)); } } } //前两行是标题和列名,从第3行开始导入 for (int i = 2; i < sheet.getRows(); i++) { if (StringUtils.isNotEmpty(sheet.getCell(0, i).getContents())) { Map map = new HashMap(); //序号不保存。 String akb020 = getCellValue(sheet, 1, i).replaceAll((char)65533+"","").trim(); String aaz218 = getCellValue(sheet, 2, i).replaceAll((char)65533+"","").trim(); String aac001 = getCellValue(sheet,3, i).replaceAll((char)65533+"","").trim(); String aac002 = getCellValue(sheet, 4, i).replaceAll((char)65533+"","").trim(); String akc185 = getCellValue(sheet, 5, i).replaceAll((char)65533+"","").trim(); String akc196 = getCellValue(sheet,6, i).replaceAll((char)65533+"","").trim(); String yzy207 = getCellValue(sheet, 7, i).replaceAll((char)65533+"","").trim(); String yzy208 = getCellValue(sheet, 8, i).replaceAll((char)65533+"","").trim(); String bkb135 = getCellValue(sheet,9, i).replaceAll((char)65533+"","").trim(); String aae100 = getCellValue(sheet, 10, i).replaceAll((char)65533+"","").trim(); map.put("akb020",akb020); map.put("aaz218", aaz218); map.put("aac001",aac001); map.put("aac002",aac002); map.put("akc185",akc185); map.put("akc196",akc196); map.put("yzy207",yzy207); map.put("yzy208",yzy208); map.put("bkb135",bkb135); map.put("aae100",aae100); rsList.add(map); } } return rsList; }
第四步:ser对应的是Service层的MzSelectHospService,从而调用saveExcelAsItem(list,bkc033)方法。private MzSelectHospService ser = getBean(MzSelectHospService.class);
/** * 保存excel里的三大目录信息到导入明细表中并返回导入事件信息 */ public List saveExcelAsItem(List list, String bkc033) { String aaa027 = UserBizInfo.getAAA027(); String bkc031 = UserBizInfo.getLoginUser();// 取操作员ID String bkc030 = UserBizInfo.getUserName();// 操作员姓名 Date bkc032 = DateFunc.getDate(); // 取操作时间 SimpleDateFormat dformat = new SimpleDateFormat("yyyyMMdd"); String nowTodayS = dformat.format(bkc032); Long bkc133 = SysFunc.getMaxNo("BKC133"); // 基准库导入文件ID // 保存导入事件到KAD6 MenuCatalogDTO menuDto = new MenuCatalogDTO(); menuDto.setBkc133(bkc133.toString()); menuDto.setBkc033(bkc033); //文件名 menuDto.setBkc030(bkc030); // 导入人姓名 menuDto.setBkc031(bkc031); // 导入人工号 menuDto.setBkc032(nowTodayS);// 导入时间 menuDto.setBkc034("1"); // 文件类型,表示Excel menuDto.setBkc252("0"); // 验证标记0未验证1已验证通过,-1验证未通过,2部分验证通过 menuDto.setBkc040("0"); // 导入状态标志 0表示未导入到疾病目录的临时表里 menuDto.setBkc050("4"); // 导入类型,0疾病,1三大目录,2异名库,3二级目录,4门诊选定医院 menuDto.setAaa027(aaa027); // 统筹区编码 menuCataDao.saveKAD6(menuDto); // 保存导入事件 //用于检查是否有重复的社会保障号 List<String> checkList = new ArrayList<String>(); List<KCP6> kcp6s = new ArrayList<KCP6>(); for (int i = 0; i < list.size(); i++) { HashMap hm = (HashMap) list.get(i); if (hm.size() == 0) { break; } if (!UtilFunc.isNotEmpty(hm.get("aac002"))) { // 考虑是直接跳过还是抛异常 continue; } if (!UtilFunc.isNotEmpty(hm.get("akb020"))) { continue; } String akb020 = String.valueOf(hm.get("akb020")); String aac002 = String.valueOf(hm.get("aac002")); String aae030 = String.valueOf(hm.get("aae030")); if (checkList.contains(aac002)) { // 考虑是直接跳过还是抛异常 throw new HygeiaException("导入数据中存在重复的社会保障号: " + aac002); } else { checkList.add(aac002); } KCP6 kcp6 = new KCP6(); com.powersi.biz.util.BeanHelper.copyProperties(menuDto, kcp6); kcp6.setAae030(aae030);//年度时间 kcp6.setAac002(aac002); kcp6.setAkb020(akb020); kcp6.setAae036(nowTodayS);// 经办时间 kcp6.setAae127(nowTodayS);// 经办时间 kcp6.setAae011(bkc031);// 经办人 kcp6.setBae100(bkc030);// 经办人姓名 kcp6.setKcp6id(UUID.randomUUID().toString()); kcp6s.add(kcp6); // 保存明细 } dao.saveKcp6Batch(kcp6s); return dao.queryMZSelectImportFile(bkc133); }
第五步:重点是dao,通过private MzSelectHospDao dao = BeanHelper.getBean(MzSelectHospDao.class);把Dao层注入Service层,方便方法调用。
第六步:调用dao层的queryMZSelectImportFile(bkc133)方法。 跳转到dao层
/** * 查询门诊选定医院导入事件 */ public List queryMZSelectImportFile(Long bkc133) { StringBuffer lSQL = new StringBuffer(); lSQL.append(" select kad6.bkc133, "); lSQL.append(" kad6.bkc033, "); lSQL.append(" to_char(kad6.bkc032,'yyyy-mm-dd') as bkc032, "); lSQL.append(" kad6.bkc030, "); lSQL.append(" kad6.bkc040, "); lSQL.append(" kad6.bkc252, "); lSQL.append(" decode(kad6.bkc040, '1', '已导入', '0', '未导入', kad6.bkc040) as bkc040n, "); lSQL.append(" decode(kad6.bkc252, "); lSQL.append(" '1', "); lSQL.append(" '验证通过', "); lSQL.append(" '0', "); lSQL.append(" '未验证', "); lSQL.append(" '-1', "); lSQL.append(" '验证不通过', "); lSQL.append(" '2', "); lSQL.append(" '部分验证通过', "); lSQL.append(" kad6.bkc252) as bkc252n, "); lSQL.append(" count(kcp6.bkc133) as num "); lSQL.append(" from kad6, kcp6 "); lSQL.append(" where kad6.bkc133 = kcp6.bkc133 "); lSQL.append(" and kad6.bkc050 = '4' ");//导入类型 4门诊选定医院 lSQL.append(" and kad6.bkc133 = '"+bkc133+"' "); lSQL.append(" group by kad6.bkc133, "); lSQL.append(" kad6.bkc033, "); lSQL.append(" kad6.bkc032, "); lSQL.append(" kad6.bkc030, "); lSQL.append(" kad6.bkc040, "); lSQL.append(" kad6.bkc252 "); lSQL.append(" order by kad6.bkc133 desc "); return DBHelper.executeList(lSQL.toString()); }
最后一步,通过DBHelper自定义类的executeList方法实现插入数据库中。
return DBHelper.executeList(lSQL.toString());
阅读全文
0 0
- 171127之上传文件
- struts之上传文件
- 文件上传之jspSmartUpload
- JAVA之"文件上传"
- ZendFramework之文件上传
- php之文件上传
- java之上传文件
- java之上传文件
- JavaWeb之文件上传
- servlet之上传文件
- android之文件上传
- JavaWeb之文件上传
- struts之文件上传
- 文件上传之 MultipartFile
- struts2之文件上传
- struts2之文件上传
- 文件上传之路
- springMVC之文件上传
- JAVA --String类笔试面试题
- 适配知识点
- 反射机制
- spring boot 多环境配置和发布打包(九)
- linux shell每行执行//清除meta表中的表信息//在hbase shell里执行命令并重定向//每隔一秒自动打印连接数
- 171127之上传文件
- 机器学习中的范数规则化之(一)L0、L1与L2范数
- eclipse在项目中new 时设置显示内容
- 什么是真正的实时操作系统
- Referenced file contains errors (http://cxf.apache.org/schemas/jaxws.xsd). For more information, rig
- c#中关于Datatime在定时中的应用与启发
- Windows使用VNC viewer访问Ubuntu 14.04远程桌面的简单方法
- 服务器常见错误代码500、501、502、503、504、505
- 技术分享连载(六十五)