@Override
public void addBillDetail(FmBillMainEntity fmBillMain) {
// 添加单据
int startNum = Integer.parseInt(fmBillMain.getStartNum().replaceAll("^(0+)", ""));
String prefix = fmBillMain.getBillCodePrefix();
String codeLength = fmBillMain.getBillCodeLength();
int buyCout = fmBillMain.getBuyItemCount();
//List codeList = new ArrayList();
/*int num=Integer.parseInt(codeLength);//编号的位数
for(int i=startNum;i<startNum+buyCout;i++){//要输出的编号个数为100个,从001........100
System.out.println(prefix+String.format("%0"+num+"d", i));//格式化字符串,把i格式化成num位的字符串,不足的位补0;例:String.format("%05d",123);结果为“00123”
}*/
/*
int num=3;//编号的位数
for(int i=1;i<=100;i++){//要输出的编号个数为100个,从001........100
System.out.println("b"+String.format("%0"+num+"d", i));//格式化字符串,把i格式化成num位的字符串,不足的位补0;例:String.format("%05d",123);结果为“00123”
}*/
BaseDaoUtil b = new BaseDaoUtil();
String sql ="insert into fm_bill ("+
" id,create_name,create_by,create_date,sys_org_code,sys_company_code,bpm_status,bill_type_code,bill_type_name,"
+ "bill_code_prefix,bill_code,bill_status,pk_fm_bill_type_id) values(?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement ps = null;
Connection conn = b.getCon();
try {
ps = conn.prepareStatement(sql);
conn.setAutoCommit(false);
int num=Integer.parseInt(codeLength);//编号的位数
int listSize = startNum+buyCout;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
HttpSession session = ContextHolderUtils.getSession();
TSUser u = (TSUser) session.getAttribute(ResourceUtil.LOCAL_CLINET_USER);
for(int i=startNum;i<listSize;i++){//要输出的编号个数为100个,从001........100
//System.out.println(prefix+String.format("%0"+num+"d", i));//格式化字符串,把i格式化成num位的字符串,不足的位补0;例:String.format("%05d",123);结果为“00123”
String code = String.format("%0"+num+"d", i);
int j =1;
ps.setObject(j++, String.valueOf(UUID.randomUUID()).replace("-", ""));
ps.setObject(j++, u.getCreateName());
ps.setObject(j++, u.getCreateBy());
ps.setObject(j++, sdf.format(date));
ps.setObject(j++, "systemOrgCode");
ps.setObject(j++, "systemCompanyCode");
ps.setObject(j++, "1");
ps.setObject(j++, fmBillMain.getBillTypeCode());
ps.setObject(j++, fmBillMain.getBillTypeName());
ps.setObject(j++, prefix);
ps.setObject(j++, code);
ps.setObject(j++, "1");// 购入状态
ps.setObject(j++, fmBillMain.getBillTypeId());// 购入状态
ps.addBatch();
if(listSize%5000 == 0){
ps.executeBatch();
conn.commit();
ps.clearBatch();
}
}
ps.executeBatch();
conn.commit();
ps.clearBatch();
} catch (SQLException e) {
e.printStackTrace();
}finally{
if(ps != null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/*SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
int listSize = list.size();
Object object[] = null;
con = getCon();
con.setAutoCommit(false);//关闭事务自动提交
String sql = "INSERT INTO f_area(administrative_code, parent_administrative_code, grade, area_name, create_time) VALUES(?,?,?,?,?)";
ps = con.prepareStatement(sql);
System.out.println("---------总记录数为:"+list.size()+"-------------");
for(int i = 0;i < listSize;i++){
object = (Object[])list.get(i);
ps.setObject(1, object[0]);
ps.setObject(2, object[1]);
ps.setObject(3, object[2]);
ps.setObject(4, object[3]);
ps.setObject(5, sdf.format(date));
ps.addBatch(); //把一个SQL命令加入命令列表
if(i != 0 && i % 10 == 0){
System.out.println("=====执行了"+i+"条记录=====");
}
if(i == listSize - 1 ){
System.out.println("=====总共成功执行了"+listSize+"条记录=====");
}
}
ps.executeBatch();//执行批量更新
con.commit();//语句执行完毕,提交本事务
closeAll(rs, ps, con);*/
// 如果类型被使用过不能删除。现做状态的修改。bpmStatus /当是2的时禁止删除标识
String hql = "update FmBillTypeEntity as fbt set fbt.bpmStatus ='2' where id ='" +fmBillMain.getBillTypeId()+"'";
this.executeHql(hql);
}
批量插入 jdbc 把i格式化成num位的字符串,不足的位补0;
最新推荐文章于 2021-11-22 21:26:43 发布