for循环中的分批提交到数据库代码
来源:互联网 发布:mac视频播放器推荐 编辑:程序博客网 时间:2024/05/22 22:03
/**
* 现制卡方法
* @param cardMode 卡介质
* @param cardName 卡类型名称
* @param cardType 卡类型
* @param createBatchNo 制卡批次号
* @param cardvalue 面值
* @param cardvalue 需制卡数
* @return
*/
public boolean createCardMethod(TBlvcCardCreate tcc,TBlvcCardcreateDetail tcd){
logger.info("现制卡线程执行");
try {
List<TBlvcCardbackup> list=new ArrayList<TBlvcCardbackup>();
for(int i=0; i<tcd.getCreateQuantity(); i++){
String cardNo = dictionary.getDictionaryValue(MsgKeys.CRECARD_CODE)+StringUtil.pad(dcservice.getSequenceutils().getSequencefromPool().toString(), "l", 6, "0");//序列生成卡号
TBlvcCardbackup tcb=new TBlvcCardbackup();
tcb.setCardNo(cardNo);
tcb.setCardMode(tcc.getCardMode());
tcb.setCardName(tcc.getCardName());
tcb.setCardType(tcc.getCardType());
tcb.setCardstatus(Constants.CARDSTATUS_BLANKZKWC);
tcb.setCreateBatchNo(tcc.getCreateBatchNo());
tcb.setCardValue(tcd.getCardvalue());
list.add(tcb);
int num=i+1;
if(num==tcd.getCreateQuantity()||num%100==0){
int comitcount=100;
if(i==tcd.getCreateQuantity()){
comitcount=i%100;
if(comitcount==0){
comitcount=100;
}
}
List<TBlvcCardcreateDetail>tcdlist=dcservice.getTblvccardcreatedetaildao().getListBybatchNo(tcc.getCreateBatchNo(), tcd.getCardvalue(), tcd.getCreateQuantity());
if(tcdlist.size()>0){
//每一百条分批提交
dcservice.getTblvccardbackupdao().save(list);
int createquantity=tcdlist.get(0).getCreateQuantity();
dcservice.getTblvccardcreatedetaildao().updstabycardval(Constants.CARDSTATUS_ZKWC, createquantity+comitcount, tcc.getCreateBatchNo(), tcd.getCardvalue(), tcd.getQuantity());//更新制卡申请明细表为制卡完成
}else{
logger.info("[制卡动作]未找到该笔制卡明细。批次号为["+tcc.getCreateBatchNo()+"]面值为["+tcd.getCardvalue()+"]制卡数量为["+tcd.getCreateQuantity()+"]");
}
list.clear();
}
}
logger.info("[制卡动作]现制卡线程执行成功。批次号为["+tcc.getCreateBatchNo()+"]面值为["+tcd.getCardvalue()+"]制卡数量为["+tcd.getCreateQuantity()+"]成功数量为["+tcd.getCreateQuantity()+"]");
return true;
} catch (Exception e) {
// TODO: handle exception
logger.error("现制卡出现异常"+e.getMessage()+",回滚相关数据为审批通过,等待下次扫描制卡");
e.printStackTrace();
dcservice.getTblvccardcreatedetaildao().updstatusbyBatchNo(Constants.CARDSTATUS_SPTG, tcc.getCreateBatchNo(), Constants.CARDSTATUS_ZKZ);
return false;
}
}
* 现制卡方法
* @param cardMode 卡介质
* @param cardName 卡类型名称
* @param cardType 卡类型
* @param createBatchNo 制卡批次号
* @param cardvalue 面值
* @param cardvalue 需制卡数
* @return
*/
public boolean createCardMethod(TBlvcCardCreate tcc,TBlvcCardcreateDetail tcd){
logger.info("现制卡线程执行");
try {
List<TBlvcCardbackup> list=new ArrayList<TBlvcCardbackup>();
for(int i=0; i<tcd.getCreateQuantity(); i++){
String cardNo = dictionary.getDictionaryValue(MsgKeys.CRECARD_CODE)+StringUtil.pad(dcservice.getSequenceutils().getSequencefromPool().toString(), "l", 6, "0");//序列生成卡号
TBlvcCardbackup tcb=new TBlvcCardbackup();
tcb.setCardNo(cardNo);
tcb.setCardMode(tcc.getCardMode());
tcb.setCardName(tcc.getCardName());
tcb.setCardType(tcc.getCardType());
tcb.setCardstatus(Constants.CARDSTATUS_BLANKZKWC);
tcb.setCreateBatchNo(tcc.getCreateBatchNo());
tcb.setCardValue(tcd.getCardvalue());
list.add(tcb);
int num=i+1;
if(num==tcd.getCreateQuantity()||num%100==0){
int comitcount=100;
if(i==tcd.getCreateQuantity()){
comitcount=i%100;
if(comitcount==0){
comitcount=100;
}
}
List<TBlvcCardcreateDetail>tcdlist=dcservice.getTblvccardcreatedetaildao().getListBybatchNo(tcc.getCreateBatchNo(), tcd.getCardvalue(), tcd.getCreateQuantity());
if(tcdlist.size()>0){
//每一百条分批提交
dcservice.getTblvccardbackupdao().save(list);
int createquantity=tcdlist.get(0).getCreateQuantity();
dcservice.getTblvccardcreatedetaildao().updstabycardval(Constants.CARDSTATUS_ZKWC, createquantity+comitcount, tcc.getCreateBatchNo(), tcd.getCardvalue(), tcd.getQuantity());//更新制卡申请明细表为制卡完成
}else{
logger.info("[制卡动作]未找到该笔制卡明细。批次号为["+tcc.getCreateBatchNo()+"]面值为["+tcd.getCardvalue()+"]制卡数量为["+tcd.getCreateQuantity()+"]");
}
list.clear();
}
}
logger.info("[制卡动作]现制卡线程执行成功。批次号为["+tcc.getCreateBatchNo()+"]面值为["+tcd.getCardvalue()+"]制卡数量为["+tcd.getCreateQuantity()+"]成功数量为["+tcd.getCreateQuantity()+"]");
return true;
} catch (Exception e) {
// TODO: handle exception
logger.error("现制卡出现异常"+e.getMessage()+",回滚相关数据为审批通过,等待下次扫描制卡");
e.printStackTrace();
dcservice.getTblvccardcreatedetaildao().updstatusbyBatchNo(Constants.CARDSTATUS_SPTG, tcc.getCreateBatchNo(), Constants.CARDSTATUS_ZKZ);
return false;
}
}
0 0
- for循环中的分批提交到数据库代码
- Oracle Delete分批提交
- Oracle Insert分批提交
- Oracle Update分批提交
- Chrome for Android在Chromium代码库中的提交patch
- php提交服务器表单到数据库基础代码
- 网站性能优化实践-for循环中的数据库操作
- 将Eclipse中的代码提交到github中
- 分批提交commit方法123
- 数据库分页\分批显示
- 提交代码到github
- 提交代码到cocoapods
- Java中的for循环
- PHP中的for循环
- bash中的for循环
- PHP中的for循环
- java中的for循环
- java中的for循环
- Xcode 打印中文结果
- 设计模式(11)——外观模式(Facade Pattern)
- eclipse调试java程序的九个技巧
- 第3章 洞察他人内心的心理策略
- 利用压缩软件制作插件安装包
- for循环中的分批提交到数据库代码
- 从HashMap到LruCache的源码分析
- 设计模式(12)——享元模式(Flyweight Pattern)
- Leetcode:263. Ugly Number(JAVA)
- Djang+Wsgi+Apache Config
- AsyncSocket介绍
- [FAQ02895]【call】在通话过程中,一直靠近距离传感器。通话结束时,要求马上点亮屏幕
- 设计模式(13)——代理模式(Proxy Pattern)
- 设计模式(14)——模板方法模式(Template Method)