Excel 导入 分批导入
tm.begin();
sm.begin();
try {
result = excel.readE(headKeyV,path);
for (int index = 1; index < result.size(); index++) {
tempMap = result.get(index);
if(StringUtils.isEmpty(tempMap.get("XREDID_DUE_DATE"))&& !StringUtils.isEmpty(tempMap.get("XREDID_DATE"))) {
tempMap.put("XSSI_DOMAIN", request.getUser().getDomain());
tempMap.put("XSSI_CM", tempMap.get("XREDI_CM"));
Map map = (Map) sm.getItem("srm.edi.EdiReportBehind.getxssiList", tempMap);
if (map != null) {
//tempMap.remove(tempMap.get("XREDID_DUE_DATE"));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();// 获取日历实例
calendar.setTime(sdf.parse(tempMap.get("XREDID_DATE")+ ""));
int val = Integer.parseInt((map.get("XSSI_ADVANCE") + ""));
calendar.add(Calendar.DAY_OF_MONTH, val);// 参数-1代表在原来时间的基础上减少一天,换为1则为加一天;
Date endDate = calendar.getTime();// 获取改变后的时间
tempMap.put("XREDID_DUE_DATE", sdf.format(endDate));
}
}
NewNbr = getnbr();
tempMap.put("NBR", NewNbr);
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateNowStr = sdf.format(d);
tempMap.put("XREDI_CRT_DATE", dateNowStr);
tempMap.put("XREDI_CRT_USER", request.getUser().getId());
tempMap.put("DOMAIN", request.getUser().getDomain());
tempMap.put("XREDI_STATUS", "00.LOADING");
tempMap.put("XREDI_TYPE", "IMPORT");
// tempMap.put("XREDI_DOMAIN", request.getUser().getDomain());
Calendar now = Calendar.getInstance();
tempMap.put("XREDID_LINE", index);
tempMap.put("XREDID_NBR", NewNbr);
count++;
int edi =sm.updateObject("srm.edi.EdiReportBehind.updatexredimstr",tempMap);
if (edi<=0) {
sm.createObject("srm.edi.EdiReportBehind.createxredimstr",tempMap);
}
List<Map<String, Object>> obj = sm.getList("srm.edi.EdiReportBehind.getxredimstrlist", tempMap);
if(obj.size()>0){
Map<String, Object> tmap= obj.get(0);
tmap.put("NBR", tmap.get("XREDI_NBR"));
tmap.put("DOMAIN", request.getUser().getDomain());
tmap.put("XREDID_QTY", tempMap.get("XREDID_QTY"));
if(!StringUtils.isEmpty(tempMap.get("XREDID_DATE"))){
tmap.put("XREDID_DATE", tempMap.get("XREDID_DATE"));
}
if(!StringUtils.isEmpty(tempMap.get("XREDID_DUE_DATE"))){
tmap.put("XREDID_DUE_DATE", tempMap.get("XREDID_DUE_DATE"));
}
if(!StringUtils.isEmpty(tempMap.get("XREDID_CPART"))){
tmap.put("CPART", tempMap.get("XREDID_CPART"));
}
if(!StringUtils.isEmpty(tempMap.get("XREDID_PART"))){
tmap.put("PART", tempMap.get("XREDID_PART"));
}
int edid =sm.updateObject("srm.edi.EdiReportBehind.updatexrediddet", tmap);
if (edi<=0) {
sm.createObject("srm.edi.EdiReportBehind.createxrediddet",tempMap);
tempMap.put("message", "修改成功");
}
tempMap.put("message", "修改成功");
}else{
sm.createObject("srm.edi.EdiReportBehind.createxrediddet",tempMap);
tempMap.put("message", "保存成功");
}
if((index+1)%100 == 0){
sm.commit();
sm.begin();
tm.commit();
tm.begin();
}
result2.add(tempMap);
bakList.add(0,tempMap);
}
//request.addRequestObject("list", result2);
if(result.size()% 60 != 0){
sm.commit();
tm.commit();
}
} catch (Exception e) {
bakList.add(0,tempMap);
sm.rollback();
tm.rollback();
}
Excel 导入 分批导入的更多相关文章
- [moka同学笔记]PHPexcel之excel导出和导入
原案例来自http://www.sucaihuo.com/有修改 1.目录结构(文件不用解释,应该都可以看得懂,直接看代码)
- Excel自文本导入内容时如何做到单元格内换行
前言:今天在处理数据的时候,在数据库中用到了\n换行符号,目的是在同表格内做到数据多行显示,比如 字段名1 字段名2 字段名3 1 数据一行 数据二行 数据三行 例子是在sql查询后的结果 ...
- Excel的数据导入到PB的DW中
Excel的数据导入到PB的DW中//==================================================================== // Event:cb_ ...
- Visual Basic 2012 借助DataGridView控件将Excel 2010数据导入到SQL server 2012
(注:注释的颜色原本为绿色,在这里变为黑色,有点不便,但不会造成阅读影响.放入Visual Basic2012代码编辑器后会还原成绿色.) 摘 要:DataGridView控件作为数据传输的中介,只 ...
- 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
- 将EXCEL数据表导入到SQL中
工具/原料 SQL Server Management Studio 已建立SQL数据库 方法/步骤 打开SQL Server Management Studio,按图中的路径进入导入数据界面. ...
- 将Excel中数据导入数据库(三)
上篇文章将Excel中数据导入数据库时,将从Excel读入的数据均转换成了数据库相应字段的类型,其实这是没有必要的,因为对于数据库各种类型的插入,均可以字符串格式插入.比如表WQ_SWMSAR_A字段 ...
- 将Excel中数据导入数据库(二)
在上篇文章中介绍到将Excel中数据导入到数据库中,但上篇文章例子只出现了nvachar类型,且数据量很小.今天碰到将Excel中数据导入数据库中的Excel有6419行,其中每行均有48个字段,有i ...
- 将Excel中数据导入数据库(一)
在工作中经常要将Excel中数据导入数据库,这里介绍一种方法. 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: Excel中数据导入数据库帮助类如下: using System; ...
随机推荐
- 飞思卡尔 imx6 GC0308 摄像头驱动配置调试过程
GC0308摄像头驱动程序使用的是linux v4l2协议,通过i2c信号进行控制.GC0308摄像头.对上电时序要求非常严格,一定要依据datasheet初始化摄像头. 本驱动使用的3.10内核,所 ...
- java梳理-反射
本文属于面试题梳理系列:问题:java反射类的訪问私有方法与普通方法相比,须要多处理什么? 之前梳理类载入的时候,介绍到初始化的时机之中的一个:用java.lang.reflect包的方法对类进行反 ...
- nyoj448 寻找最大数
寻找最大数 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描写叙述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大. 比方当n=920813467185 ...
- bzoj1805: [Ioi2007]Sail 船帆
可以发现旗杆的顺序是没有用的,对于每列,它的答案是它的最大值mx*(mx+1)/2 高度由小到大排序旗杆,问题可以转化为在前h行选k个最小的值 考虑激情splay乱搞(我只会splay......) ...
- go语言笔记——defer作用DB资源等free或实现调试
defer 和追踪 关键字 defer 允许我们推迟到函数返回之前(或任意位置执行 return 语句之后)一刻才执行某个语句或函数(为什么要在返回之后才执行这些语句?因为 return 语句同样可以 ...
- LaTeX 在线编辑器(LaTeX online editors)
eqneditor:有强大的几乎所有常用的数学符号对应的图标形式,便于快速完成latex公式编辑且易于粘贴拷贝. 此外,更为重要的一点是,随着编辑窗口内公式的编辑,会在页面的底部,自动生成其对应的 h ...
- 不使用c的任何库函数 实现字符串到整数的转换 整数到字符串的转换
转载请标明出处:http://www.cnblogs.com/NongSi-Net/p/6805844.html 今天主要总结下:完成编程: 1.除printf函数之外,不用任何c语言库函数,实现将字 ...
- 元素类型以及overflow,white-space等属性
1:预格式化标签:<pre></pre>2:overflow属性="visible/hidden(隐藏)"/scroll/auto(自动)/inherit; ...
- codevs2557张程易(背包dp)
2557 张程易,编程易 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 张程易是一名神奇的魔法少女,在oier之中有着 ...
- Web开发必须知道的知识点
Web前端必须知道 一.常用那几种浏览器测试.有哪些内核(Layout Engine) 1.浏览器:IE,Chrome,FireFox,Safari,Opera. 2.内核:Trident,Gecko ...