📄 dingjiantask.java
字号:
package com.zx.dangangl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.work.db.DbConnection;
import com.work.db.DbUtil;
import com.work.exception.OurException;
public class DingJianTask {
private static Log log = LogFactory.getLog(DingJianTask.class);
/**
* 目的是为了进行定件的数据库操作。需要编目的哪条记录的id将被保存到不需要编目的记录的“是否编目”字段中;
*
* @param djIds
* 需要进行定件的记录的id的数组,数组中的值都是数字
* @param sfbmId
* “是否编目”为是的那条记录的id
*/
public void dingJian(String[] djIds, String sfbmId) throws OurException {
if (djIds == null) {
throw new OurException("需要定件的记录id数组不能为空!");
}
if (sfbmId == null || sfbmId.equals("")) {
throw new OurException("需要编目的记录的ID不能为空!");
}
String ids = "";
int LEN = djIds.length;
for (int i = 0; i < LEN; i++) {
ids = ids + djIds[i] + ",";
}
ids = ids.substring(0, ids.length() - 1);
String djSql = " update zx_jian set sfdj=1 where id in(" + ids + ") ";
String sfbmSql = " update zx_jian set sfbm=" + sfbmId + " where id= ?";
Connection conn = DbConnection.getConn();
if (conn == null)
throw new OurException("获取数据库连接失败!");
PreparedStatement pst = null;
try {
conn.setAutoCommit(false);
pst = conn.prepareStatement(djSql);
pst.executeUpdate();
pst = conn.prepareStatement(sfbmSql);
for (int i = 0; i < LEN; i++) {
if (djIds[i].equals(sfbmId)) {
// do noting
} else {
pst.setInt(1, Integer.parseInt(djIds[i]));
pst.executeUpdate();
}
}
conn.commit();
log.info("定件操作成功!");
} catch (SQLException e) {
log.error("定件操作失败!",e);
try{
conn.rollback();
}catch(SQLException ex){
log.error("定件操作失败后,数据库会滚操作失败!");
}
throw new OurException ("定件操作失败",e);
}finally{
DbUtil.closeStatement(pst);
DbUtil.closeConnection(conn);
}
}
/**
* 取消定件。首先根据编目的id查询到此件包含的所有文件的id,然后,设置是否定件为0,同时设置sfbm为0
* @param bmId
* @throws OurException
*/
public void cancelJian(String bmId) throws OurException{
if (bmId == null || bmId.equals("")) {
throw new OurException("需要编目的记录的ID不能为空!");
}
String sql = " select id from zx_jian where sfbm="+bmId;
List srcList = DbUtil.executeQueryList(sql); //首先查询出包含此文件的所有文件的id;
int srcLen = srcList.size();
String destSql = " update zx_jian set sfdj=0 ,sfbm=0 where id=? ";
Connection conn = DbConnection.getConn();
if (conn == null)
throw new OurException("获取数据库连接失败!");
PreparedStatement pst = null;
try {
conn.setAutoCommit(false);
pst = conn.prepareStatement(destSql);
pst.setInt(1,Integer.parseInt(bmId));
pst.executeUpdate();
for(int i=0;i<srcLen;i++){
HashMap map = (HashMap)srcList.get(i);
pst.setInt(1,((Integer)map.get("id")).intValue());
pst.executeUpdate();
}
conn.commit();
log.info("取消定件操作成功!");
} catch (SQLException e) {
log.error("取消定件操作失败!",e);
try{
conn.rollback();
}catch(SQLException ex){
log.error("取消定件操作失败后,数据库会滚操作失败!");
}
throw new OurException ("取消定件操作失败",e);
}finally{
DbUtil.closeStatement(pst);
DbUtil.closeConnection(conn);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -