You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

265 lines
8.0 KiB

/*
* <p>ClassName: OLDCodeBLS </p>
* <p>Description: LDCodeBLS类文件 </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: sinosoft </p>
* @Database: LIS
* @CreateDate:2003-06-21
*/
package com.sinosoft.lis.sys;
import com.sinosoft.lis.i18n.I18nMessage;
import com.sinosoft.lis.db.LDCodeDB;
import com.sinosoft.lis.schema.LDCodeSchema;
import com.sinosoft.utility.CError;
import com.sinosoft.utility.CErrors;
import com.sinosoft.utility.DBConnPool;
import com.sinosoft.utility.VData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.sql.Connection;
import java.sql.SQLException;
public class ALDCodeBLS {
private static final Logger logger = LoggerFactory.getLogger(ALDCodeBLS.class);
/** 错误处理类,每个需要错误处理的类中都放置该类 */
public CErrors mErrors = new CErrors();
/** 数据操作字符串 */
private String mOperate;
public ALDCodeBLS() {
}
/**
* 传输数据的公共方法
*/
public boolean submitData(VData cInputData, String cOperate) {
boolean tReturn = false;
// 将操作数据拷贝到本类中
this.mOperate = cOperate;
logger.debug("Start LDCodeBLS Submit...");
if (this.mOperate.equals("INSERT||MAIN")) {
tReturn = saveLDCode(cInputData);
}
if (this.mOperate.equals("DELETE||MAIN")) {
tReturn = deleteLDCode(cInputData);
}
if (this.mOperate.equals("UPDATE||MAIN")) {
tReturn = updateLDCode(cInputData);
}
if (tReturn) {
logger.debug(" sucessful");
} else {
logger.debug("Save failed");
}
logger.debug("End LDCodeBLS Submit...");
return tReturn;
}
/**
* 保存函数
*/
private boolean saveLDCode(VData mInputData) {
boolean tReturn = true;
logger.debug("Start Save...");
Connection conn;
conn = null;
conn = DBConnPool.getConnection();
if (conn == null) {
// @@错误处理
CError tError = new CError();
tError.moduleName = "LDCodeBLS";
tError.functionName = "saveData";
tError.errorMessage(new I18nMessage("数据库连接失败!", "LIS-06519"));
this.mErrors.addOneError(tError);
return false;
}
try {
conn.setAutoCommit(false);
logger.debug("Start 保存...");
LDCodeDB tLDCodeDB = new LDCodeDB(conn);
tLDCodeDB.setSchema(mInputData.get(LDCodeSchema.class, 0));
if (!tLDCodeDB.insert()) {
// @@错误处理
this.mErrors.copyAllErrors(tLDCodeDB.mErrors);
CError tError = new CError();
tError.moduleName = "LDCodeBLS";
tError.functionName = "saveData";
tError.errorMessage(new I18nMessage("数据保存失败!", "LIS-06914"));
this.mErrors.addOneError(tError);
conn.rollback();
// 移除此处conn.close(),移至finally统一处理
return false;
}
conn.commit();
// 移除此处conn.close(),移至finally统一处理
} catch (Exception ex) {
// @@错误处理
CError tError = new CError();
tError.moduleName = "LDCodeBLS";
tError.functionName = "submitData";
tError.errorMessage(new I18nMessage( ex.toString(), null));
this.mErrors.addOneError(tError);
tReturn = false;
try {
conn.rollback(); // 异常时回滚
} catch (Exception e) {
}
} finally {
// 集中处理所有连接关闭操作
try {
// 仅关闭未关闭的连接
conn.close();
} catch (SQLException e) {
logger.error("关闭数据库连接失败",e);
// 补充错误日志记录,保持原有错误处理风格
CError tError = new CError();
tError.moduleName = "LDCodeBLS";
tError.functionName = "saveLDCode";
tError.errorMessage(new I18nMessage("关闭数据库连接失败", null));
this.mErrors.addOneError(tError);
logger.error("saveLDCode: 关闭连接失败", e);
}
}
return tReturn;
}
/**
* 保存函数
*/
private boolean deleteLDCode(VData mInputData) {
boolean tReturn = true;
logger.debug("Start Save...");
Connection conn;
conn = null;
conn = DBConnPool.getConnection();
if (conn == null) {
// @@错误处理
CError tError = new CError();
tError.moduleName = "LDCodeBLS";
tError.functionName = "saveData";
tError.errorMessage(new I18nMessage("数据库连接失败!", "LIS-06519"));
this.mErrors.addOneError(tError);
return false;
}
try {
conn.setAutoCommit(false);
logger.debug("Start 保存...");
LDCodeDB tLDCodeDB = new LDCodeDB(conn);
tLDCodeDB.setSchema(mInputData.get(LDCodeSchema.class, 0));
if (!tLDCodeDB.delete()) {
// @@错误处理
this.mErrors.copyAllErrors(tLDCodeDB.mErrors);
CError tError = new CError();
tError.moduleName = "LDCodeBLS";
tError.functionName = "saveData";
tError.errorMessage(new I18nMessage("数据删除失败!", "LIS-07063"));
this.mErrors.addOneError(tError);
conn.rollback();
// 移除此处conn.close(),移至finally统一处理
return false;
}
conn.commit();
// 移除此处conn.close(),移至finally统一处理
} catch (Exception ex) {
// @@错误处理
CError tError = new CError();
tError.moduleName = "LDCodeBLS";
tError.functionName = "submitData";
tError.errorMessage(new I18nMessage( ex.toString(), null));
this.mErrors.addOneError(tError);
tReturn = false;
try {
conn.rollback();
// 移除此处conn.close(),移至finally统一处理
} catch (Exception e) {
}
} finally {
// 集中处理所有连接关闭操作
try {
conn.close();
} catch (SQLException e) {
logger.error("关闭数据库连接失败",e);
// 处理连接关闭异常,保持原有错误处理风格
CError tError = new CError();
tError.moduleName = "LDCodeBLS";
tError.functionName = "deleteLDCode";
tError.errorMessage(new I18nMessage("关闭数据库连接失败", null));
this.mErrors.addOneError(tError);
logger.error("deleteLDCode: 关闭连接失败", e);
}
}
return tReturn;
}
/**
* 保存函数
*/
private boolean updateLDCode(VData mInputData) {
boolean tReturn = true;
logger.debug("Start Save...");
Connection conn;
conn = null;
conn = DBConnPool.getConnection();
if (conn == null) {
CError tError = new CError();
tError.moduleName = "LDCodeBLS";
tError.functionName = "updateData";
tError.errorMessage(new I18nMessage("数据库连接失败!", "LIS-06519"));
this.mErrors.addOneError(tError);
return false;
}
try {
conn.setAutoCommit(false);
logger.debug("Start 保存...");
LDCodeDB tLDCodeDB = new LDCodeDB(conn);
tLDCodeDB.setSchema(mInputData.get(LDCodeSchema.class, 0));
if (!tLDCodeDB.update()) {
// @@错误处理
this.mErrors.copyAllErrors(tLDCodeDB.mErrors);
CError tError = new CError();
tError.moduleName = "LDCodeBLS";
tError.functionName = "saveData";
tError.errorMessage(new I18nMessage("数据保存失败!", "LIS-06914"));
this.mErrors.addOneError(tError);
conn.rollback();
// 移除此处conn.close(),移至finally统一处理
return false;
}
conn.commit();
// 移除此处conn.close(),移至finally统一处理
} catch (Exception ex) {
// @@错误处理
CError tError = new CError();
tError.moduleName = "LDCodeBLS";
tError.functionName = "submitData";
tError.errorMessage(new I18nMessage( ex.toString(), null));
this.mErrors.addOneError(tError);
tReturn = false;
try {
conn.rollback();
// 移除此处conn.close(),移至finally统一处理
} catch (Exception e) {
}
} finally {
// 集中处理所有连接关闭操作
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
logger.error("关闭数据库连接失败",e);
// 处理连接关闭异常,保持原有错误处理风格
CError tError = new CError();
tError.moduleName = "LDCodeBLS";
tError.functionName = "updateLDCode";
tError.errorMessage(new I18nMessage("关闭数据库连接失败", null));
this.mErrors.addOneError(tError);
logger.error("updateLDCode: 关闭连接失败", e);
}
}
}
return tReturn;
}
}