/*******************************************************************************
* Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
* 类的信息:
* 1.程序名称:SystemModuleDAL.cs
* 2.功能描述:系统管理更新db逻辑处理
* 编辑履历:
* 作者 日期 版本 修改内容
* 张国印 2014/09/12 1.00 新建
*******************************************************************************/
using System;
using System.Text;
using System.Data;
using Dongke.IBOSS.PRD.Basics.DataAccess;
using Dongke.IBOSS.PRD.Basics.BaseResources;
using Dongke.IBOSS.PRD.Basics.Library;
using Dongke.IBOSS.PRD.Service.DataModels;
using Dongke.IBOSS.PRD.WCF.DataModels;
using Oracle.DataAccess.Client;
namespace Dongke.IBOSS.PRD.Service.SystemModuleLogic
{
///
/// 系统管理更新db逻辑处理
///
public partial class SystemModuleDAL
{
#region 数据字典和基础数据相关
///
/// 保存窑炉数据
///
/// 用户基本信息
/// 窑炉数据
/// int
///
/// 2014.09.01 任海 新建
///
public static int SaveKilnData(SUserInfo sUserInfo, DataTable datatKilnData)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (datatKilnData == null && datatKilnData.Rows.Count < Constant.INT_IS_ZERO)
{
return Constant.INT_IS_THREE;
}
int returnResult = Constant.INT_IS_TWO;
oracleTrConn.Connect();
#region 对要保存的窑炉数据进行必要的验证
foreach (DataRow dataRow in datatKilnData.Rows)
{
// 新建窑炉
if (dataRow.RowState == DataRowState.Added)
{
#region 判断是否存在相同的窑炉代码
string sqlString = "SELECT Count(*) FROM TP_MST_Kiln WHERE AccountID = :AccountID and KilnCode =:KilnCode ";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":KilnCode",dataRow["KilnCode"].ToString())
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlString, oracleParameter);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 判断是否存在相同的窑炉代码
string sqlStrings = "SELECT Count(*) FROM TP_MST_Kiln WHERE AccountID = :AccountID and KilnCode = :KilnCode and KilnID <> :KilnID";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":KilnCode",dataRow["KilnCode"]),
new OracleParameter(":KilnID",dataRow["KilnID"])
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlStrings, oracleParameters);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
}
if (returnResult == Constant.INT_IS_ONE)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return returnResult;
}
#endregion
foreach (DataRow dataRow in datatKilnData.Rows)
{
// 新建窑炉
if (dataRow.RowState == DataRowState.Added)
{
#region 新增窑炉信息
#region 向T_MST_Kiln插入数据
string sqlInsertString = "INSERT INTO TP_MST_Kiln "
+ "(KilnCode"
+ ",KilnName"
+ ",KilnType"
+ ",InOutMinTimeIinterval"
+ ",OutMinTimeIinterval"
+ ",TurnoverInterval"
+ ",Remarks"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:KilnCode"
+ ",:KilnName"
+ ",:KilnType"
+ ",decode(:InOutMinTimeIinterval, null, 0, :InOutMinTimeIinterval)"
+ ",decode(:OutMinTimeIinterval, null, 0, :OutMinTimeIinterval)"
+ ",decode(:TurnoverInterval, null, 0, :TurnoverInterval)"
+ ",:Remarks"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":KilnCode",dataRow["KilnCode"].ToString()),
new OracleParameter(":KilnName",dataRow["KilnName"].ToString()),
new OracleParameter(":KilnType",dataRow["KilnType"].ToString()),
new OracleParameter(":InOutMinTimeIinterval",dataRow["InOutMinTimeIinterval"]),
new OracleParameter(":OutMinTimeIinterval",dataRow["OutMinTimeIinterval"]),
new OracleParameter(":TurnoverInterval",dataRow["TurnoverInterval"]),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameter);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新窑炉信息
string sqlUpdateString = "UPDATE TP_MST_Kiln SET "
+ " KilnCode = :KilnCode,"
+ " KilnName = :KilnName,"
+ " KilnType = :KilnType,"
+ " InOutMinTimeIinterval = decode(:InOutMinTimeIinterval, null, 0, :InOutMinTimeIinterval),"
+ " OutMinTimeIinterval = decode(:OutMinTimeIinterval, null, 0, :OutMinTimeIinterval),"
+ " TurnoverInterval = decode(:TurnoverInterval, null, 0, :TurnoverInterval),"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime"
+ " WHERE KilnID = :KilnID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":KilnCode",dataRow["KilnCode"].ToString()),
new OracleParameter(":KilnName",dataRow["KilnName"].ToString()),
new OracleParameter(":KilnType",dataRow["KilnType"].ToString()),
new OracleParameter(":InOutMinTimeIinterval",dataRow["InOutMinTimeIinterval"]),
new OracleParameter(":OutMinTimeIinterval",dataRow["OutMinTimeIinterval"]),
new OracleParameter(":TurnoverInterval",dataRow["TurnoverInterval"]),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":KilnID",dataRow["KilnID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlUpdateString, oracleParameter);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除窑炉信息
string sqlDeleteString = "DELETE TP_MST_Kiln WHERE KilnID = :KilnID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":KilnID",dataRow["KilnID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, oracleParameter);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
}
///
/// 保存窑车数据
///
/// 用户基本信息
/// 窑车数据
/// int
///
/// 2014.09.01 任海 新建
///
public static int SaveKilnCarData(SUserInfo sUserInfo, DataTable datatKilnCarData)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (datatKilnCarData == null && datatKilnCarData.Rows.Count < Constant.INT_IS_ZERO)
{
return Constant.INT_IS_THREE;
}
int returnResult = Constant.INT_IS_TWO;
oracleTrConn.Connect();
#region 对要保存的窑车数据进行必要的验证
foreach (DataRow dataRow in datatKilnCarData.Rows)
{
// 新建窑车
if (dataRow.RowState == DataRowState.Added)
{
#region 判断是否存在相同的窑车代码
string sqlString = "SELECT Count(*) FROM TP_MST_KilnCar WHERE AccountID = :AccountID and KilnCarCode =:KilnCarCode ";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":KilnCarCode",dataRow["KilnCarCode"].ToString())
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlString, oracleParameter);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 判断是否存在相同的窑车代码
string sqlStrings = "SELECT Count(*) FROM TP_MST_KilnCar WHERE AccountID = :AccountID and KilnCarCode = :KilnCarCode and KilnCarID <> :KilnCarID";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":KilnCarCode",dataRow["KilnCarCode"]),
new OracleParameter(":KilnCarID",dataRow["KilnCarID"])
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlStrings, oracleParameters);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
}
if (returnResult == Constant.INT_IS_ONE)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return returnResult;
}
#endregion
foreach (DataRow dataRow in datatKilnCarData.Rows)
{
// 新建窑车
if (dataRow.RowState == DataRowState.Added)
{
#region 新增窑车信息
#region 向TP_MST_KilnCar插入数据
string sqlInsertString = "INSERT INTO TP_MST_KilnCar "
+ "(KilnID"
+ ",KilnCarCode"
+ ",KilnCarName"
+ ",MaxGoodsNum"
+ ",KilnCarNum"
+ ",Remarks"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:KilnID"
+ ",:KilnCarCode"
+ ",:KilnCarName"
+ ",:MaxGoodsNum"
+ ",:KilnCarNum"
+ ",:Remarks"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":KilnID",dataRow["KilnID"].ToString()),
new OracleParameter(":KilnCarCode",dataRow["KilnCarCode"].ToString()),
new OracleParameter(":KilnCarName",dataRow["KilnCarName"].ToString()),
new OracleParameter(":MaxGoodsNum",(dataRow["MaxGoodsNum"] == null || dataRow["MaxGoodsNum"] == DBNull.Value)?0:dataRow["MaxGoodsNum"]),
new OracleParameter(":KilnCarNum",dataRow["KilnCarNum"]),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameter);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新窑车信息
string sqlUpdateString = "UPDATE TP_MST_KilnCar SET "
+ " KilnID = :KilnID,"
+ " KilnCarCode = :KilnCarCode,"
+ " KilnCarName = :KilnCarName,"
+ " MaxGoodsNum = :MaxGoodsNum,"
+ " KilnCarNum = :KilnCarNum,"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime"
+ " WHERE KilnCarID = :KilnCarID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":KilnID",dataRow["KilnID"].ToString()),
new OracleParameter(":KilnCarCode",dataRow["KilnCarCode"].ToString()),
new OracleParameter(":KilnCarName",dataRow["KilnCarName"].ToString()),
new OracleParameter(":MaxGoodsNum",(dataRow["MaxGoodsNum"] == null || dataRow["MaxGoodsNum"] == DBNull.Value)?0:dataRow["MaxGoodsNum"]),
new OracleParameter(":KilnCarNum",dataRow["KilnCarNum"]),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":KilnCarID",dataRow["KilnCarID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlUpdateString, oracleParameter);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除窑车信息
string sqlDeleteString = "DELETE TP_MST_KilnCar WHERE KilnCarID = :KilnCarID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":KilnCarID",dataRow["KilnCarID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, oracleParameter);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
}
///
/// 保存数据字典数据
///
/// 用户基本信息
/// 数据字典数据
/// int
///
/// 2014.09.05 任海 新建
///
public static int SaveDictionaryData(SUserInfo sUserInfo, DataTable dataDictionaryData)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (dataDictionaryData == null && dataDictionaryData.Rows.Count < Constant.INT_IS_ZERO)
{
return Constant.INT_IS_THREE;
}
int returnResult = Constant.INT_IS_TWO;
oracleTrConn.Connect();
foreach (DataRow dataRow in dataDictionaryData.Rows)
{
// 新建数据字典
if (dataRow.RowState == DataRowState.Added)
{
#region 新增数据字典信息
#region 向T_MST_DataDictionary插入数据
string sqlInsertString = "INSERT INTO TP_MST_DataDictionary "
+ "(DictionaryType"
+ ",DictionaryValue"
+ ",DisplayNo"
+ ",Remarks"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:DictionaryType"
+ ",:DictionaryValue"
+ ",:DisplayNo"
+ ",:Remarks"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":DictionaryType",dataRow["DictionaryType"].ToString()),
new OracleParameter(":DictionaryValue",dataRow["DictionaryValue"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameter);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新数据字典信息
string sqlUpdateString = "UPDATE TP_MST_DataDictionary SET "
+ " DictionaryType = :DictionaryType,"
+ " DictionaryValue = :DictionaryValue,"
+ " DisplayNo = :DisplayNo,"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime"
+ " WHERE DictionaryID = :DictionaryID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":DictionaryType",dataRow["DictionaryType"].ToString()),
new OracleParameter(":DictionaryValue",dataRow["DictionaryValue"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":DictionaryID",dataRow["DictionaryID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlUpdateString, oracleParameter);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除数据字典信息
string sqlDeleteString = "DELETE TP_MST_DataDictionary WHERE DictionaryID = :DictionaryID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":DictionaryID",dataRow["DictionaryID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, oracleParameter);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
}
///
/// 保存系统参数数据
///
/// 用户基本信息
/// 系统参数数据
/// int
///
/// 2014.09.15 任海 新建
///
public static int SaveSystemData(DataTable datatSystemData, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (datatSystemData == null && datatSystemData.Rows.Count < Constant.INT_IS_ZERO)
{
return Constant.INT_IS_THREE;
}
int returnResult = Constant.INT_IS_TWO;
oracleTrConn.Connect();
#region 对要保存的操作时间戳进行必要的验证
foreach (DataRow dataRow in datatSystemData.Rows)
{
#region 判断是否存在相同的系统参数代码
string sqlStrings = "SELECT OPTimeStamp FROM TP_MST_SystemSetting WHERE AccountID = :AccountID and SettingCode = :SettingCode ";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":SettingCode",dataRow["SettingCode"])
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlStrings, oracleParameter);
if (sqlReturnStr != dataRow["OPTimeStamp"].ToString())
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
if (returnResult == Constant.INT_IS_ONE)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return returnResult;
}
#endregion
string sqlString = string.Empty;
foreach (DataRow drowRow in datatSystemData.Rows)
{
// 行状态为编辑
if (drowRow.RowState == DataRowState.Modified)
{
// 如果修改账务时间,需要进行判断
if (Constant.SettingType.S_CMN_0004.ToString().Equals(drowRow["SettingCode"]))
{
continue;
//bool isCanEdit = true;
//DateTime serverDate = DateTime.MinValue;
//DataTable dtServertime = oracleTrConn.GetSqlResultToDt("SELECT sysdate FROM dual");
//if (dtServertime != null && dtServertime.Rows.Count > 0)
//{
// serverDate = Convert.ToDateTime(dtServertime.Rows[0][0]);
//}
//DateTime nowAccountTime = Utility.ConvertTimeStr(serverDate, drowRow["SettingValue"] + "");
//DateTime orginalAccountTime = Utility.ConvertTimeStr(serverDate,
// drowRow["SettingValue", DataRowVersion.Original] + "");
//// 当前时间大于原来账务日期不可进行修改
//if (serverDate >= orginalAccountTime)
//{
// isCanEdit = false;
//}
//else
//{
// // 当前时间小于原来账务日期,但修改后的账务日期在当前时间之前也是不能进行修改的
// if (nowAccountTime <= serverDate)
// {
// isCanEdit = false;
// }
//}
//if (!isCanEdit)
//{
// oracleTrConn.Rollback();
// oracleTrConn.Disconnect();
// return Constant.RETURN_IS_ERRORACCOUNTTIME;
//}
}
//更新系统参数信息
sqlString = "UPDATE TP_MST_SystemSetting "
+ "SET SettingValue = :SettingValue, "
//+ "UpdateTime = sysdate, "
//+ "OPTimeStamp = systimestamp, "
+ "UpdateUserID = :UpdateUserID "
+ "WHERE SettingCode = :SettingCode "
+ "and AccountID = :AccountID ";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":SettingValue", drowRow["SettingValue"].ToString()),
new OracleParameter(":UpdateUserID", sUserInfo.UserID),
new OracleParameter(":AccountID", sUserInfo.AccountID),
new OracleParameter(":SettingCode", drowRow["SettingCode"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
}
///
/// 保存工种数据
///
/// 用户基本信息
/// 工种数据
/// int
///
/// 2014.09.09 任海 新建
///
public static int SavetJobsData(DataTable datatJobsData, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (datatJobsData == null && datatJobsData.Rows.Count < Constant.INT_IS_ZERO)
{
return Constant.INT_IS_THREE;
}
int returnResult = Constant.INT_IS_TWO;
oracleTrConn.Connect();
#region 对要保存的工种数据进行必要的验证
foreach (DataRow dataRow in datatJobsData.Rows)
{
// 新建工种
if (dataRow.RowState == DataRowState.Added)
{
#region 判断是否存在相同的工种代码
string sqlString = "SELECT Count(*) FROM TP_MST_Jobs WHERE AccountID = :AccountID and JobsCode =:JobsCode ";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":JobsCode",dataRow["JobsCode"].ToString())
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlString, oracleParameter);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 判断是否存在相同的工种代码
string sqlStrings = "SELECT Count(*) FROM TP_MST_Jobs WHERE AccountID = :AccountID and JobsCode = :JobsCode and JobsID <> :JobsID";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":JobsCode",dataRow["JobsCode"]),
new OracleParameter(":JobsID",dataRow["JobsID"])
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlStrings, oracleParameters);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
}
if (returnResult == Constant.INT_IS_ONE)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return returnResult;
}
#endregion
foreach (DataRow dataRow in datatJobsData.Rows)
{
// 新建工种
if (dataRow.RowState == DataRowState.Added)
{
#region 新增工种信息
#region 向T_MST_Jobs插入数据
string sqlInsertString = "INSERT INTO TP_MST_Jobs "
+ "(JobsCode"
+ ",JobsName"
+ ",Remarks"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:JobsCode"
+ ",:JobsName"
+ ",:Remarks"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":JobsCode",dataRow["JobsCode"].ToString()),
new OracleParameter(":JobsName",dataRow["JobsName"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameters);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新工种信息
string sqlUpdateString = "UPDATE TP_MST_Jobs SET "
+ " JobsCode = :JobsCode,"
+ " JobsName = :JobsName,"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime"
+ " WHERE JobsID = :JobsID";
OracleParameter[] oracleParametere = new OracleParameter[]
{
new OracleParameter(":JobsCode",dataRow["JobsCode"].ToString()),
new OracleParameter(":JobsName",dataRow["JobsName"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":JobsID",dataRow["JobsID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlUpdateString, oracleParametere);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除工种信息
string sqlDeleteString = "DELETE TP_MST_Jobs WHERE JobsID = :JobsID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":JobsID",dataRow["JobsID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, oracleParameter);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
}
///
/// 保存职务数据
///
/// 用户基本信息
/// 职务数据
/// int
///
/// 2014.09.10 任海 新建
///
public static int SavePostData(DataTable datatPostData, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (datatPostData == null && datatPostData.Rows.Count < Constant.INT_IS_ZERO)
{
return Constant.INT_IS_THREE;
}
int returnResult = Constant.INT_IS_TWO;
oracleTrConn.Connect();
#region 对要保存的职务数据进行必要的验证
foreach (DataRow dataRow in datatPostData.Rows)
{
// 新建职务
if (dataRow.RowState == DataRowState.Added)
{
#region 判断是否存在相同的职务代码
string sqlString = "SELECT Count(*) FROM TP_MST_Post WHERE AccountID = :AccountID and PostCode =:PostCode ";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":PostCode",dataRow["PostCode"].ToString())
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlString, oracleParameter);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 判断是否存在相同的职务代码
string sqlStrings = "SELECT Count(*) FROM TP_MST_Post WHERE AccountID = :AccountID and PostCode = :PostCode and PostID <> :PostID";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":PostCode",dataRow["PostCode"]),
new OracleParameter(":PostID",dataRow["PostID"])
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlStrings, oracleParameters);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
}
if (returnResult == Constant.INT_IS_ONE)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return returnResult;
}
#endregion
foreach (DataRow dataRow in datatPostData.Rows)
{
// 新建职务
if (dataRow.RowState == DataRowState.Added)
{
#region 新增职务信息
#region 向TP_MST_Post插入数据
string sqlInsertString = "INSERT INTO TP_MST_Post "
+ "(PostCode"
+ ",PostName"
+ ",Remarks"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:PostCode"
+ ",:PostName"
+ ",:Remarks"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":PostCode",dataRow["PostCode"].ToString()),
new OracleParameter(":PostName",dataRow["PostName"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameter);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新职务信息
string sqlUpdateString = "UPDATE TP_MST_Post SET "
+ " PostCode = :PostCode,"
+ " PostName = :PostName,"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime"
+ " WHERE PostID = :PostID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":PostCode",dataRow["PostCode"].ToString()),
new OracleParameter(":PostName",dataRow["PostName"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":PostID",dataRow["PostID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlUpdateString, oracleParameter);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除职务信息
string sqlDeleteString = "DELETE TP_MST_Post WHERE PostID = :PostID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":PostID",dataRow["PostID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, oracleParameter);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
}
///
/// 保存产品缺陷数据
///
/// 用户基本信息
/// 产品缺陷数据
/// int
///
/// 2014.09.10 任海 新建
///
public static int SaveDefectData(DataTable dataDefectData, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (dataDefectData == null && dataDefectData.Rows.Count < Constant.INT_IS_ZERO)
{
return Constant.INT_IS_THREE;
}
int returnResult = Constant.INT_IS_TWO;
oracleTrConn.Connect();
#region 对要保存的产品缺陷数据进行必要的验证
foreach (DataRow dataRow in dataDefectData.Rows)
{
// 新建产品缺陷
if (dataRow.RowState == DataRowState.Added)
{
#region 判断是否存在相同的产品缺陷代码
string sqlString = "SELECT Count(*) FROM TP_MST_Defect WHERE AccountID = :AccountID and DefectCode =:DefectCode ";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":DefectCode",dataRow["DefectCode"].ToString())
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlString, oracleParameter);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 判断是否存在相同的产品缺陷代码
string sqlStrings = "SELECT Count(*) FROM TP_MST_Defect WHERE AccountID = :AccountID and DefectCode = :DefectCode and DefectID <> :DefectID";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":DefectCode",dataRow["DefectCode"]),
new OracleParameter(":DefectID",dataRow["DefectID"])
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlStrings, oracleParameters);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
}
if (returnResult == Constant.INT_IS_ONE)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return returnResult;
}
#endregion
foreach (DataRow dataRow in dataDefectData.Rows)
{
// 新建产品缺陷
if (dataRow.RowState == DataRowState.Added)
{
#region 新增产品缺陷信息
#region 向TP_MST_Defect插入数据
string sqlInsertString = "INSERT INTO TP_MST_Defect"
+ "(DefectCode"
+ ",DefectName"
+ ",DisplayNo"
+ ",Remarks"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID"
+ ",DefectTypeID)"
+ " VALUES "
+ "(:DefectCode"
+ ",:DefectName"
+ ",:DisplayNo"
+ ",:Remarks"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID"
+ ",:DefectTypeID)";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":DefectCode",dataRow["DefectCode"].ToString()),
new OracleParameter(":DefectName",dataRow["DefectName"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"]),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID),
new OracleParameter(":DefectTypeID",dataRow["DefectTypeID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameter);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新产品缺陷信息
string sqlUpdateString = "UPDATE TP_MST_Defect SET "
+ " DefectCode = :DefectCode,"
+ " DefectName = :DefectName,"
+ " DisplayNo = :DisplayNo,"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime,"
+ " DefectTypeID = :DefectTypeID"
+ " WHERE DefectID = :DefectID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":DefectCode",dataRow["DefectCode"].ToString()),
new OracleParameter(":DefectName",dataRow["DefectName"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"]),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":DefectID",dataRow["DefectID"].ToString()),
new OracleParameter(":DefectTypeID",dataRow["DefectTypeID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlUpdateString, oracleParameter);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除产品缺陷信息
string sqlDeleteString = "DELETE TP_MST_Defect WHERE DefectID = :DefectID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":DefectID",dataRow["DefectID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, oracleParameter);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
}
///
/// 保存成型线类型数据
///
/// 用户基本信息
/// 成型线类型数据
/// int
///
/// 2014.09.11 任海 新建
///
public static int SavetGMouldTypeData(DataTable datatGMouldTypeData, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (datatGMouldTypeData == null && datatGMouldTypeData.Rows.Count < Constant.INT_IS_ZERO)
{
return Constant.INT_IS_THREE;
}
int returnResult = Constant.INT_IS_TWO;
oracleTrConn.Connect();
#region 对要保存的成型线类型数据进行必要的验证
foreach (DataRow dataRow in datatGMouldTypeData.Rows)
{
// 新建成型线类型
if (dataRow.RowState == DataRowState.Added)
{
#region 判断是否存在相同的成型线类型代码
string sqlString = "SELECT Count(*) FROM TP_MST_GMouldType WHERE AccountID = :AccountID and GMouldTypeCode =:GMouldTypeCode ";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":GMouldTypeCode",dataRow["GMouldTypeCode"].ToString())
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlString, oracleParameter);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 判断是否存在相同的成型线类型代码
string sqlStrings = "SELECT Count(*) FROM TP_MST_GMouldType WHERE AccountID = :AccountID and GMouldTypeCode = :GMouldTypeCode and GMouldTypeID <> :GMouldTypeID";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":GMouldTypeCode",dataRow["GMouldTypeCode"]),
new OracleParameter(":GMouldTypeID",dataRow["GMouldTypeID"])
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlStrings, oracleParameters);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
}
if (returnResult == Constant.INT_IS_ONE)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return returnResult;
}
#endregion
foreach (DataRow dataRow in datatGMouldTypeData.Rows)
{
// 新建成型线类型
if (dataRow.RowState == DataRowState.Added)
{
#region 新增成型线类型信息
#region 向TP_MST_GMouldType插入数据
string sqlInsertString = "INSERT INTO TP_MST_GMouldType "
+ "(GMouldTypeCode"
+ ",GMouldTypeName"
+ ",CanManyTimes"
+ ",Remarks"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:GMouldTypeCode"
+ ",:GMouldTypeName"
+ ",:CanManyTimes"
+ ",:Remarks"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":GMouldTypeCode",dataRow["GMouldTypeCode"].ToString()),
new OracleParameter(":GMouldTypeName",dataRow["GMouldTypeName"].ToString()),
new OracleParameter(":CanManyTimes",dataRow["CanManyTimes"].ToString()=="True"?"1"
:dataRow["CanManyTimes"].ToString()=="Flase"?"0":dataRow["CanManyTimes"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameter);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新成型线类型信息
string sqlUpdateString = "UPDATE TP_MST_GMouldType SET "
+ " GMouldTypeCode = :GMouldTypeCode,"
+ " GMouldTypeName = :GMouldTypeName,"
+ " CanManyTimes = :CanManyTimes,"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime"
+ " WHERE GMouldTypeID = :GMouldTypeID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":GMouldTypeCode",dataRow["GMouldTypeCode"].ToString()),
new OracleParameter(":GMouldTypeName",dataRow["GMouldTypeName"].ToString()),
new OracleParameter(":CanManyTimes",dataRow["CanManyTimes"].ToString()=="True"?"1"
:dataRow["CanManyTimes"].ToString()=="Flase"?"0":dataRow["CanManyTimes"].ToString()==""?"0":"1"),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":GMouldTypeID",dataRow["GMouldTypeID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlUpdateString, oracleParameter);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除成型线类型信息
string sqlDeleteString = "DELETE TP_MST_GMouldType WHERE GMouldTypeID = :GMouldTypeID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":GMouldTypeID",dataRow["GMouldTypeID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, oracleParameter);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存产品分级的数据
///
/// 产品分级的数据
/// 用户基本信息
/// int
///
/// 2014.10.22 任海 新建
///
public static int SaveGoodsLevelData(DataTable datatGoodsLevelData, SUserInfo sUserInfo)
{
int returnRows = Constant.INT_IS_TWO;
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
oracleTrConn.Connect();
foreach (DataRow dataRow in datatGoodsLevelData.Rows)
{
string sqlUpdateString = "UPDATE tp_mst_goodslevel SET "
+ " GoodsLevelName = :GoodsLevelName,"
+ " GoodsLevelTypeID = :GoodsLevelTypeID,"
+ " IsSemiFinishedEx = :IsSemiFinishedEx,"
+ " SFEDisplayNo = :SFEDisplayNo,"
+ " IsFinishedEx = :IsFinishedEx,"
+ " FEDisplayNo = :FEDisplayNo,"
+ " IsFinished = :IsFinished,"
+ " IsScrapped = :IsScrapped,"
+ " CanDisable = :CanDisable,"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime"
+ " WHERE GoodsLevelID = :GoodsLevelID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":GoodsLevelName",dataRow["GoodsLevelName"].ToString()),
new OracleParameter(":GoodsLevelTypeID",dataRow["GoodsLevelTypeID"].ToString()),
new OracleParameter(":IsSemiFinishedEx",dataRow["IsSemiFinishedEx"].ToString()),
new OracleParameter(":SFEDisplayNo",dataRow["SFEDisplayNo"].ToString()),
new OracleParameter(":IsFinishedEx",dataRow["IsFinishedEx"].ToString()),
new OracleParameter(":FEDisplayNo",dataRow["FEDisplayNo"].ToString()),
new OracleParameter(":IsFinished",dataRow["IsFinished"].ToString()),
new OracleParameter(":IsScrapped",dataRow["IsScrapped"].ToString()),
new OracleParameter(":CanDisable",dataRow["CanDisable"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":GoodsLevelID",dataRow["GoodsLevelID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlUpdateString, oracleParameter);
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnRows;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存配置员工的数据
///
/// 用户ID
/// 员工数据表
/// 用户基本信息
/// int
///
/// 2014.10.13 任海 新建
///
public static int SaveDeploystaffData(int userID, DataTable dataDeploystaffData, SUserInfo sUserInfo)
{
int returnRows = Constant.INT_IS_ZERO;
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
oracleTrConn.Connect();
foreach (DataRow dataRow in dataDeploystaffData.Rows)
{
if (dataRow.RowState == DataRowState.Added)
{
int intStaffID = Convert.ToInt32(dataRow["StaffID"]);
string sqlUpdateString = "UPDATE TP_HR_Staff SET UserID=:pUuserID"
+ " Where StaffID = :pStaffID And AccountID = :pAccountID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":pUuserID",OracleDbType.Int32,userID,ParameterDirection.Input),
new OracleParameter(":pStaffID",OracleDbType.Int32,intStaffID,ParameterDirection.Input),
new OracleParameter(":pAccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
};
returnRows += oracleTrConn.ExecuteNonQuery(sqlUpdateString, oracleParameter);
}
else if (dataRow.RowState == DataRowState.Deleted)
{
int intStaffID = Convert.ToInt32(dataRow["StaffID", DataRowVersion.Original].ToString());
string sqlUpdateString2 = "UPDATE TP_HR_Staff SET UserID=null"
+ " Where StaffID = :pStaffID And AccountID = :pAccountID";
OracleParameter[] oracleParameter2 = new OracleParameter[]
{
new OracleParameter(":pStaffID",OracleDbType.Int32,intStaffID,ParameterDirection.Input),
new OracleParameter(":pAccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
};
returnRows += oracleTrConn.ExecuteNonQuery(sqlUpdateString2, oracleParameter2);
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnRows;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存缺陷位置数据
///
/// 缺陷数据
/// 用户基本信息
/// int
///
/// 2014.09.11 冯雪 新建
///
public static int SaveDefectPositionsData(DataTable dataDefectPositionData, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (dataDefectPositionData == null && dataDefectPositionData.Rows.Count < 0)
{
return 3;
}
int intResult = 2;
oracleTrConn.Connect();
#region 对要保存的帐套数据进行必要的验证
foreach (DataRow dataRow in dataDefectPositionData.Rows)
{
// 新建缺陷位置
if (dataRow.RowState == DataRowState.Added)
{
#region 判断是否存在相同的位置代码
string sqlString1 = "SELECT Count(*) FROM TP_MST_DefectPosition WHERE AccountID = :AccountID and DefectPositionCode =:DefectPositionCode ";
OracleParameter[] parmeters1 = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":DefectPositionCode",dataRow["DefectPositionCode"].ToString())
};
string strTemp1 = oracleTrConn.GetSqlResultToStr(sqlString1, parmeters1);
if (strTemp1 != "0")
{
intResult = 1;
break;
}
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 判断是否存在相同的位置代码
string sqlString2 = "SELECT Count(*) FROM TP_MST_DefectPosition WHERE AccountID = :AccountID and DefectPositionCode = :DefectPositionCode and DefectPositionID <> :DefectPositionID";
OracleParameter[] parmeters2 = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":DefectPositionCode",dataRow["DefectPositionCode"]),
new OracleParameter(":DefectPositionID",dataRow["DefectPositionID"])
};
string strTemp1 = oracleTrConn.GetSqlResultToStr(sqlString2, parmeters2);
if (strTemp1 != "0")
{
intResult = 1;
break;
}
#endregion
}
}
if (intResult == 1)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return intResult;
}
#endregion
//string accountID = ""; // 存储新插入账套ID
//string userID = ""; //用户ID
foreach (DataRow dataRow in dataDefectPositionData.Rows)
{
// 新建缺陷
if (dataRow.RowState == DataRowState.Added)
{
#region 新增缺陷位置信息
#region 向TP_MST_DEFECTPOSITION插入数据
string sqlString1 = "INSERT INTO TP_MST_DefectPosition "
+ "(DefectPositionCode"
+ ",DefectPositionName"
+ ",DisplayNo"
+ ",Remarks"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:DefectPositionCode"
+ ",:DefectPositionName"
+ ",:DisplayNo"
+ ",:Remarks"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
OracleParameter[] parmeters1 = new OracleParameter[]
{
new OracleParameter(":DefectPositionCode",dataRow["DefectPositionCode"].ToString()),
new OracleParameter(":DefectPositionName",dataRow["DefectPositionName"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"]),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlString1, parmeters1);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新缺陷信息
string sqlString = "UPDATE TP_MST_DefectPosition SET "
+ " DefectPositionCode = :DefectPositionCode,"
+ " DefectPositionName = :DefectPositionName,"
+ " DisplayNo = :DisplayNo,"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime"
+ " WHERE DefectPositionID = :DefectPositionID";
OracleParameter[] parmeters1 = new OracleParameter[]
{
new OracleParameter(":DefectPositionCode",dataRow["DefectPositionCode"].ToString()),
new OracleParameter(":DefectPositionName",dataRow["DefectPositionName"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"].ToString()),
//new OracleParameter(":KilnType",dataRow["KilnType"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":DefectPositionID",dataRow["DefectPositionID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlString, parmeters1);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除缺陷信息
string sqlDeleteString = "DELETE TP_MST_DefectPosition WHERE DefectPositionID = :DefectPositionID";
OracleParameter[] parmeters2 = new OracleParameter[]
{
new OracleParameter(":DefectPositionID",dataRow["DefectPositionID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, parmeters2);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return intResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存产品类型数据
///
/// 产品类型数据
/// 用户基本信息
/// int
///
/// 2014.09.12 冯雪 新建
///
public static int SaveGoodsTypeData(DataTable dataGoodsTypeData, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (dataGoodsTypeData == null && dataGoodsTypeData.Rows.Count < 0)
{
return 3;
}
int intResult = 2;
oracleTrConn.Connect();
#region 对要保存的帐套数据进行必要的验证
foreach (DataRow dataRow in dataGoodsTypeData.Rows)
{
// 新建缺陷位置
if (dataRow.RowState == DataRowState.Added)
{
#region 判断是否存在相同的位置代码
string sqlString1 = "SELECT Count(*) FROM TP_MST_GoodsType WHERE AccountID = :AccountID and goodstypecode =:goodstypecode ";
OracleParameter[] parmeters1 = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":goodstypecode",dataRow["goodstypecode"].ToString())
};
string strTemp1 = oracleTrConn.GetSqlResultToStr(sqlString1, parmeters1);
if (strTemp1 != "0")
{
intResult = 1;
break;
}
string datRowSub = dataRow["goodstypecode"].ToString().Substring(0, dataRow["goodstypecode"].ToString().Length - 3);
string sqlString2 = @"select count(*) from Tp_Mst_Goods
where goodstypeid = (select distinct goodsTypeId from tp_mst_goodstype where GoodstypeCode = :GoodstypeCode and accountid=:accountid)";
OracleParameter[] parmeters2 = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":GoodstypeCode",datRowSub),
};
string strTemp2 = oracleTrConn.GetSqlResultToStr(sqlString2, parmeters2);
if (strTemp2 != "0")
{
intResult = 4;
break;
}
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 判断是否存在相同的产品类型代码
string sqlString2 = "SELECT Count(*) FROM TP_MST_GoodsType WHERE AccountID = :AccountID and Goodstypecode = :goodstypecode and GoodsTypeID <> :goodsTypeID";
OracleParameter[] parmeters2 = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":goodstypecode",dataRow["goodstypecode"]),
new OracleParameter(":goodsTypeID",dataRow["goodsTypeID"])
};
string strTemp1 = oracleTrConn.GetSqlResultToStr(sqlString2, parmeters2);
if (strTemp1 != "0")
{
intResult = 1;
break;
}
#endregion
}
}
if (intResult == 1 || intResult == 4)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return intResult;
}
#endregion
//string accountID = ""; // 存储新插入账套ID
//string userID = ""; //用户ID
foreach (DataRow dataRow in dataGoodsTypeData.Rows)
{
// 新建产品类型
if (dataRow.RowState == DataRowState.Added)
{
#region 新增产品类型信息
string sqlString1 = "INSERT INTO TP_MST_GoodsType "
+ "(GoodsTypeCode"
+ ",GoodsTypeName"
+ ",GoodsTypeFullName"
+ ",Remarks"
+ ",AccountID"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID"
+ ",IsLeafNode)"
+ " VALUES "
+ "(:goodsTypeCode"
+ ",:goodsTypeName"
+ ",:goodsTypeFullName"
+ ",:Remarks"
+ ",:AccountID"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID,1)";
OracleParameter[] parmeters1 = new OracleParameter[]
{
new OracleParameter(":goodsTypeCode",dataRow["goodsTypeCode"].ToString()),
new OracleParameter(":goodsTypeName",dataRow["goodsTypeName"].ToString()),
new OracleParameter(":goodsTypeFullName",dataRow["goodsTypeFullName"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlString1, parmeters1);
sqlString1 = " update TP_MST_GoodsType SET IsLeafNode =0 "
+ " where GoodsTypeCode = :goodsTypeCode "
+ " and AccountID = :accountID";
parmeters1 = new OracleParameter[]
{
new OracleParameter(":goodsTypeCode",dataRow["goodsTypeCode"].ToString().Substring(0, dataRow["goodsTypeCode"].ToString().Length - 3)),
new OracleParameter(":accountID",sUserInfo.AccountID),
};
oracleTrConn.ExecuteNonQuery(sqlString1, parmeters1);
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新产品类型信息
string sqlString = "UPDATE TP_MST_GoodsType SET "
+ " GoodsTypeName = :goodsTypeName,"
+ " GoodsTypeFullName = :GoodsTypeFullName,"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime"
+ " WHERE GoodsTypeID = :goodsTypeID";
string[] sub = dataRow["GoodsTypeFullName"].ToString().Split('→');
string oldGoodsTypeFullName = dataRow["GoodsTypeFullName"].ToString();
if (sub.Length > 0)
{
if (sub[sub.Length - 1] != dataRow["goodsTypeName"].ToString())
{
sub[sub.Length - 1] = dataRow["goodsTypeName"].ToString();
}
string newFullName = "";
for (int i = 0; i < sub.Length; i++)
{
if (i != sub.Length - 1)
newFullName += sub[i] + "→";
else
newFullName += sub[i];
}
dataRow["GoodsTypeFullName"] = newFullName;
}
OracleParameter[] parmeters1 = new OracleParameter[]
{
new OracleParameter(":goodsTypeName",dataRow["goodsTypeName"].ToString()),
new OracleParameter(":GoodsTypeFullName",dataRow["GoodsTypeFullName"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":goodsTypeID",dataRow["goodsTypeID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlString, parmeters1);
string sqlUpdateOtherFullName = @"select * from TP_MST_GoodsType
where TP_MST_GoodsType.AccountID=" + sUserInfo.AccountID + " and TP_MST_GoodsType.GoodsTypeCode like '" + dataRow["GoodsTypeCode"].ToString() + "%' and GoodsTypeID<>" + dataRow["goodsTypeID"].ToString();
DataSet returnDataset5 = oracleTrConn.GetSqlResultToDs(sqlUpdateOtherFullName);
if (returnDataset5 != null && returnDataset5.Tables[0].Rows.Count > 0) // 更新所有子级
{
for (int i = 0; i < returnDataset5.Tables[0].Rows.Count; i++)
{
string sqlReplace = @"update TP_MST_GoodsType set GoodsTypeFullName=replace(GoodsTypeFullName,:oldGoodsTypeFullName,:newGoodsTypeFullName)
where GoodsTypeID=:GoodsTypeID";
OracleParameter[] Updateparmeters = new OracleParameter[]
{
new OracleParameter(":oldGoodsTypeFullName",oldGoodsTypeFullName),
new OracleParameter(":newGoodsTypeFullName",dataRow["GoodsTypeFullName"].ToString()),
new OracleParameter(":GoodsTypeID",returnDataset5.Tables[0].Rows[i]["GoodsTypeID"].ToString()),
};
oracleTrConn.ExecuteNonQuery(sqlReplace, Updateparmeters);
;
}
}
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除产品类型信息
string sqlDeleteString = "DELETE TP_MST_GoodsType WHERE GoodsTypeID = :goodsTypeID";
OracleParameter[] parmeters2 = new OracleParameter[]
{
new OracleParameter(":goodsTypeID",dataRow["goodsTypeID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, parmeters2);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return intResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 新建温湿计信息
///
/// 温湿计信息实体
/// 用户基本信息
/// int
///
/// 2014.12.25 任海 新建
///
public static int AddThermometerEntity(ThermometerEntity thermometerEntity, SUserInfo userInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
int returnResult = Constant.INT_IS_ONE;
oracleTrConn.Connect();
StringBuilder sbSql = new StringBuilder();
//获取序列ID
sbSql.Clear();
sbSql.Append("select SEQ_MST_THERMOMETER_ID.nextval from dual");
int entityId = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
sbSql.Clear();
sbSql.Append(@"Insert into TP_MST_Thermometer
(ThermometerID,BuildingNo,FloorNo,
LocationCode,ThermometerCode,ManagerName,Remarks,ValueFlag,AccountID,CreateUserID,UpdateUserID)
Values
(:ThermometerID,:BuildingNo,:FloorNo,
:LocationCode,:ThermometerCode,:ManagerName,:Remarks,:ValueFlag,:AccountID,:CreateUserID,:UpdateUserID)");
OracleParameter[] DFParas = new OracleParameter[] {
new OracleParameter(":ThermometerID",OracleDbType.Int32,
entityId,ParameterDirection.Input),
new OracleParameter(":BuildingNo",OracleDbType.NVarchar2,
thermometerEntity.BuildingNo,ParameterDirection.Input),
new OracleParameter(":FloorNo",OracleDbType.NVarchar2,
thermometerEntity.FloorNo,ParameterDirection.Input),
new OracleParameter(":LocationCode",OracleDbType.NVarchar2,
thermometerEntity.LocationCode,ParameterDirection.Input),
new OracleParameter(":Remarks",OracleDbType.NVarchar2,
thermometerEntity.Remarks,ParameterDirection.Input),
new OracleParameter(":ThermometerCode",OracleDbType.NVarchar2,
thermometerEntity.ThermometerCode,ParameterDirection.Input),
new OracleParameter(":ManagerName",OracleDbType.NVarchar2,
thermometerEntity.ManagerName,ParameterDirection.Input),
new OracleParameter(":ValueFlag",OracleDbType.Int32,
thermometerEntity.ValueFlag,ParameterDirection.Input),
new OracleParameter(":AccountID",OracleDbType.Int32,
userInfo.AccountID,ParameterDirection.Input),
new OracleParameter(":CreateUserID",OracleDbType.Int32,
userInfo.UserID,ParameterDirection.Input),
new OracleParameter(":UpdateUserID",OracleDbType.Int32,
userInfo.UserID,ParameterDirection.Input),
};
//连接数据库并返回结果
oracleTrConn.ExecuteNonQuery(sbSql.ToString(), DFParas);
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 编辑温湿计信息
///
/// 温湿计信息实体
/// 用户基本信息
/// int
///
/// 2014.12.25 任海 新建
///
public static int UpdateThermometerEntity(ThermometerEntity thermometerEntity, SUserInfo userInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
int returnResult = Constant.INT_IS_ONE;
oracleTrConn.Connect();
StringBuilder sbSql = new StringBuilder();
sbSql.Append(@"Update TP_MST_Thermometer
Set BuildingNo=:BuildingNo,
FloorNo=:FloorNo,
LocationCode=:LocationCode,
ThermometerCode=:ThermometerCode,
ManagerName=:ManagerName,
ValueFlag=:ValueFlag,
Remarks=:Remarks,
UpdateUserID=:UpdateUserID
Where ThermometerID=:ThermometerID
And OPTimeStamp=:OPTimeStamp");
OracleParameter[] DFParas = new OracleParameter[] {
new OracleParameter(":BuildingNo",OracleDbType.NVarchar2,
thermometerEntity.BuildingNo,ParameterDirection.Input),
new OracleParameter(":FloorNo",OracleDbType.NVarchar2,
thermometerEntity.FloorNo,ParameterDirection.Input),
new OracleParameter(":LocationCode",OracleDbType.NVarchar2,
thermometerEntity.LocationCode,ParameterDirection.Input),
new OracleParameter(":ThermometerCode",OracleDbType.NVarchar2,
thermometerEntity.ThermometerCode,ParameterDirection.Input),
new OracleParameter(":ManagerName",OracleDbType.NVarchar2,
thermometerEntity.ManagerName,ParameterDirection.Input),
new OracleParameter(":ValueFlag",OracleDbType.Int32,
thermometerEntity.ValueFlag,ParameterDirection.Input),
new OracleParameter(":Remarks",OracleDbType.NVarchar2,
thermometerEntity.Remarks,ParameterDirection.Input),
new OracleParameter(":UpdateUserID",OracleDbType.Int32,
userInfo.UserID,ParameterDirection.Input),
new OracleParameter(":ThermometerID",OracleDbType.Int32,
thermometerEntity.ThermometerID,ParameterDirection.Input),
new OracleParameter(":OPTimeStamp",OracleDbType.TimeStamp,
thermometerEntity.OPTimeStamp,ParameterDirection.Input),
};
oracleTrConn.ExecuteNonQuery(sbSql.ToString(), DFParas);
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
#endregion
#region 用户处理相关逻辑
///
/// 新增组织机构OrganizationCode
///
/// 上级组织机构编码
/// 用户基本信息
/// int
public static string GetOrganizationCode(string v_parentOrganizationCode, SUserInfo sUserInfo)
{
IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
oracleConn.Open();
string sqlString = "select Max(OrganizationCode) from TP_MST_Organization "
+ " where OrganizationCode like '" + v_parentOrganizationCode + "%'"
+ "and length(OrganizationCode) = length('" + v_parentOrganizationCode + "')+3"
+ "and AccountID = " + sUserInfo.AccountID;
DataSet returnDatasetHuoQu2 = oracleConn.GetSqlResultToDs(sqlString);
oracleConn.Close();
string v_MaxOrganizationCode = "";
if (returnDatasetHuoQu2 != null && returnDatasetHuoQu2.Tables[0].Rows.Count > 0)
{
v_MaxOrganizationCode = returnDatasetHuoQu2.Tables[0].Rows[0][0].ToString();
}
if (v_MaxOrganizationCode == "")
{
v_MaxOrganizationCode = v_MaxOrganizationCode + v_parentOrganizationCode + "001";
}
else
{
string v_tempCode = "";
v_tempCode = Convert.ToString(Convert.ToInt32(v_MaxOrganizationCode.Substring(v_MaxOrganizationCode.Length - 3)) + 1);
v_MaxOrganizationCode = "000" + v_tempCode;
v_MaxOrganizationCode = v_parentOrganizationCode + v_MaxOrganizationCode.Substring(v_MaxOrganizationCode.Length - 3);
}
return v_MaxOrganizationCode;
}
catch (Exception ex)
{
if (oracleConn.ConnState == ConnectionState.Open)
{
oracleConn.Close();
}
throw ex;
}
finally
{
if (oracleConn.ConnState == ConnectionState.Open)
{
oracleConn.Close();
}
}
}
///
/// 新增组织机构
///
/// OrganizationEntity对象
/// int
public static int SaveOrganization(OrganizationEntity organization)
{
int returnRows = 0;
if (organization == null)
{
return returnRows;
}
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
oracleTrConn.Connect();
#region 生成全称
//string fullName = string.Empty; // 生成的全称
//if (organization.ParentOrganizationID <= 0)
//{
// fullName = organization.OrganizationName;
//}
//else
//{
// string sqlString1 = "SELECT OrganizationFullName FROM TP_MST_Organization"
// + " WHERE OrganizationID = :in_ParentOrganizationID";
// OracleParameter[] parmeters1 = new OracleParameter[]
// {
// new OracleParameter(":in_ParentOrganizationID",organization.ParentOrganizationID)
// };
// DataSet returnDataset = oracleTrConn.GetSqlResultToDs(sqlString1, parmeters1);
// if (returnDataset.Tables[0].Rows.Count != 0)
// {
// if (!string.IsNullOrEmpty(returnDataset.Tables[0].Rows[0][0] + ""))
// {
// fullName = Convert.ToString(returnDataset.Tables[0].Rows[0][0]);
// fullName += "→" + organization.OrganizationName;
// }
// else
// {
// return returnRows;
// }
// }
// else
// {
// return returnRows;
// }
//}
#endregion
// 编辑
if (organization.OrganizationID > 0)
{
#region 组织机构下级存在有效子级,员工和用户的时候不允许被设置为无效
if (organization.ValueFlag == 0)
{
string sqlString2 = "SELECT OrganizationCode FROM TP_MST_Organization WHERE OrganizationCode LIKE '" + organization.OrganizationCode + "%'"
+ " AND LENGTH(OrganizationCode) >" + organization.OrganizationCode.Length + " AND ValueFlag = 1 AND AccountID =:AccountID";
OracleParameter[] parmeters2 = new OracleParameter[]
{
new OracleParameter(":AccountID",organization.in_AccountID)
};
DataSet returnDataset = oracleTrConn.GetSqlResultToDs(sqlString2, parmeters2);
if (returnDataset != null
&& returnDataset.Tables.Count > 0
&& returnDataset.Tables[0].Rows.Count > 0)
{
return -5;//// 子级中存在有效数据
}
string sqlString3 = "SELECT STAFFID"
+ " FROM TP_HR_STAFF"
+ " WHERE OrganizationID =:OrganizationID "
+ " AND ValueFlag = 1";
OracleParameter[] parmeters3 = new OracleParameter[]
{
new OracleParameter(":OrganizationID",organization.OrganizationID)
};
DataSet returnDataset3 = oracleTrConn.GetSqlResultToDs(sqlString3, parmeters3);
if (returnDataset3 != null
&& returnDataset3.Tables.Count > 0
&& returnDataset3.Tables[0].Rows.Count > 0)
{
return -53;//// 当前数据状态不符合操作条件
}
string sqlString4 = "SELECT UserID"
+ " FROM TP_MST_User"
+ " WHERE OrganizationID =:OrganizationID "
+ " AND ValueFlag = 1";
OracleParameter[] parmeters4 = new OracleParameter[]
{
new OracleParameter(":OrganizationID",organization.OrganizationID)
};
DataSet returnDataset4 = oracleTrConn.GetSqlResultToDs(sqlString4, parmeters4);
if (returnDataset3 != null
&& returnDataset3.Tables.Count > 0
&& returnDataset3.Tables[0].Rows.Count > 0)
{
return -8;//// // 操作数据不合法
}
}
#endregion
string sqlUpdateString = "UPDATE TP_MST_Organization SET "
+ "OrganizationCode = :organizationCode"
+ ",OrganizationName = :organizationName"
+ ",OrganizationFullName = :organizationFullName"
+ ",Leader = :leader"
+ ",LetterMarket = :letterMarket"
+ ",Telephone = :telephone"
+ ",Address = :address"
+ ",AccountID = :accountID"
+ ",UpdateUserID =" + organization.in_UserID
+ ",ValueFlag=" + organization.ValueFlag
+ ",remarks=:remarks"
+ " WHERE OrganizationID = :organizationID";
//string[] sub = organization.OrganizationFullName.Split('→');
//string oldOrganizationFullName = organization.OrganizationFullName;
//if (sub.Length > 0)
//{
// if (sub[sub.Length - 1] != organization.OrganizationName)
// {
// sub[sub.Length - 1] = organization.OrganizationName;
// }
// string newFullName = "";
// for (int i = 0; i < sub.Length; i++)
// {
// if (i != sub.Length - 1)
// newFullName += sub[i] + "→";
// else
// newFullName += sub[i];
// }
// organization.OrganizationFullName = newFullName;
//}
OracleParameter[] parmeters = new OracleParameter[]
{
new OracleParameter(":organizationCode",organization.OrganizationCode),
new OracleParameter(":organizationName",organization.OrganizationName),
new OracleParameter(":organizationFullName",organization.OrganizationFullName),
new OracleParameter(":leader",organization.Leader),
new OracleParameter(":letterMarket",organization.LetterMarket),
new OracleParameter(":telephone",organization.Telephone),
new OracleParameter(":address",organization.Address),
new OracleParameter(":accountID",organization.in_AccountID),
new OracleParameter(":remarks",organization.Remarks),
new OracleParameter(":organizationID",organization.OrganizationID),
};
returnRows = oracleTrConn.ExecuteNonQuery(sqlUpdateString, parmeters);
// string sqlUpdateOtherFullName = @"select tp_mst_organization.organizationid,tp_mst_organization.organizationfullname from tp_mst_organization
// where tp_mst_organization.accountID = " + organization.AccountID + " and tp_mst_organization.organizationcode like '" + organization.OrganizationCode + "%' and organizationid<>" + organization.OrganizationID;
// DataSet returnDataset5 = oracleTrConn.GetSqlResultToDs(sqlUpdateOtherFullName);
// if (returnDataset5 != null && returnDataset5.Tables[0].Rows.Count > 0) // 更新所有子级
// {
// for (int i = 0; i < returnDataset5.Tables[0].Rows.Count; i++)
// {
// string sqlReplace = @"update tp_mst_organization set organizationfullname=replace(organizationfullname,:oldorganizationFullName,:neworganizationFullName)
// where organizationid=:organizationid";
// OracleParameter[] Updateparmeters = new OracleParameter[]
// {
// new OracleParameter(":oldorganizationFullName",oldOrganizationFullName),
// new OracleParameter(":neworganizationFullName",organization.OrganizationFullName),
// new OracleParameter(":organizationid",returnDataset5.Tables[0].Rows[i]["organizationid"].ToString()),
// };
// oracleTrConn.ExecuteNonQuery(sqlReplace, Updateparmeters);
// }
// }
}
else
{
#region 判断上级组织机构是否已经被置为无效
string sqlString11 = "SELECT ValueFlag FROM TP_MST_Organization"
+ " WHERE OrganizationID = " + organization.ParentOrganizationID;
DataSet returnDataset11 = oracleTrConn.GetSqlResultToDs(sqlString11);
bool valueFlag = false;
if (returnDataset11.Tables[0].Rows.Count != 0)
{
if (!string.IsNullOrEmpty(returnDataset11.Tables[0].Rows[0][0] + ""))
{
valueFlag = Convert.ToBoolean(Convert.ToInt32(returnDataset11.Tables[0].Rows[0][0]));
}
}
if (!valueFlag)
{
return returnRows;
}
// 判断所选节点是已到最底层,不能新建
if (7 <= organization.ParentOrganizationCode.Length / 3)
{
return returnRows;
}
// 上级部门包含的部门不能超过最大值999
if (999 <= GetOrgLevelMax(oracleTrConn,
organization.ParentOrganizationCode, organization.in_AccountID.ToString()))
{
return returnRows;
}
// 判断选择的组织机构下是否有员工
//if (IsExistStaff(oracleTrConn, organization.ParentOrganizationID, organization.in_AccountID.ToString()))
//{
// return returnRows;
//}
#endregion
string inString = "INSERT INTO TP_MST_Organization "
+ "(OrganizationCode"
+ ",OrganizationName"
+ ",OrganizationFullName"
+ ",Leader"
+ ",LetterMarket"
+ ",Telephone"
+ ",Address"
+ ",AccountID"
+ ",ValueFlag"
+ ",Remarks"
+ ",CreateUserID"
+ ",UpdateUserID,ISLEAFNODE)"
+ " VALUES "
+ "(:OrganizationCode"
+ ",:organizationName"
+ ",:organizationFullName"
+ ",:leader"
+ ",:letterMarket"
+ ",:telephone"
+ ",:address"
+ ",:accountID"
+ ",:valueFlag"
+ ",:remarks"
+ ",:createUserID"
+ ",:updateUserID,1)";
#region 获取组织机构编码
string v_parentOrganizationCode = "";
string sql1 = "SELECT OrganizationCode FROM TP_MST_Organization"
+ " WHERE OrganizationID = " + organization.ParentOrganizationID + " and AccountID = " + organization.in_AccountID;
DataSet returnDatasetHuoQu = oracleTrConn.GetSqlResultToDs(sql1);
if (returnDatasetHuoQu != null && returnDatasetHuoQu.Tables[0].Rows.Count > 0)
{
v_parentOrganizationCode = returnDatasetHuoQu.Tables[0].Rows[0]["OrganizationCode"].ToString();
}
string sql2 = "select Max(OrganizationCode) from TP_MST_Organization "
+ " where OrganizationCode like '" + v_parentOrganizationCode + "%'"
+ "and length(OrganizationCode) = length('" + v_parentOrganizationCode + "')+3"
+ "and AccountID = " + organization.in_AccountID;
DataSet returnDatasetHuoQu2 = oracleTrConn.GetSqlResultToDs(sql2);
string v_MaxOrganizationCode = "";
if (returnDatasetHuoQu2 != null && returnDatasetHuoQu2.Tables[0].Rows.Count > 0)
{
v_MaxOrganizationCode = returnDatasetHuoQu2.Tables[0].Rows[0][0].ToString();
}
if (v_MaxOrganizationCode == "")
{
v_MaxOrganizationCode = v_MaxOrganizationCode + v_parentOrganizationCode + "001";
}
else
{
string v_tempCode = "";
v_tempCode = Convert.ToString(Convert.ToInt32(v_MaxOrganizationCode.Substring(v_MaxOrganizationCode.Length - 3)) + 1);
v_MaxOrganizationCode = "000" + v_tempCode;
v_MaxOrganizationCode = v_parentOrganizationCode + v_MaxOrganizationCode.Substring(v_MaxOrganizationCode.Length - 3);
}
#endregion
OracleParameter[] parmeters10 = new OracleParameter[]
{
new OracleParameter(":OrganizationCode",v_MaxOrganizationCode),
new OracleParameter(":organizationName",organization.OrganizationName),
new OracleParameter(":organizationFullName",organization.OrganizationName),
new OracleParameter(":leader",organization.Leader),
new OracleParameter(":letterMarket",organization.LetterMarket),
new OracleParameter(":telephone",organization.Telephone),
new OracleParameter(":address",organization.Address),
new OracleParameter(":accountID",organization.in_AccountID),
new OracleParameter(":valueFlag",organization.ValueFlag),
new OracleParameter(":remarks",organization.Remarks),
new OracleParameter(":createUserID",organization.in_UserID),
new OracleParameter(":updateUserID",organization.in_UserID),
};
returnRows = oracleTrConn.ExecuteNonQuery(inString, parmeters10);
//oracleTrConn.Commit();
//oracleTrConn.Disconnect();
//return returnRows;
}
string sqlString = "select t.organizationid from tp_mst_organization t where t.accountid = " + organization.in_AccountID
+ " order by t.organizationcode";
DataTable dt = oracleTrConn.GetSqlResultToDt(sqlString, null);
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow item in dt.Rows)
{
sqlString =
"UPDATE tp_mst_organization t\n" +
" SET t.isleafnode =\n" +
" (SELECT decode(COUNT(tlf.organizationid), 1, '1', '0')\n" +
" FROM tp_mst_organization tlf\n" +
" WHERE t.accountid = tlf.accountid\n" +
" AND tlf.valueflag = '1'\n" +
" AND INSTR(tlf.organizationcode, t.organizationcode) = 1)\n" +
" ,t.organizationfullname =\n" +
" (SELECT listagg(to_char(tfn.organizationname), '→') within GROUP(ORDER BY tfn.organizationcode)\n" +
" FROM tp_mst_organization tfn\n" +
" WHERE t.accountid = tfn.accountid\n" +
" AND INSTR(t.organizationcode, tfn.organizationcode) = 1)\n" +
" WHERE t.organizationid = :organizationid";
OracleParameter[] parmeters = new OracleParameter[]
{
new OracleParameter(":organizationid",item["organizationid"]),
};
oracleTrConn.ExecuteNonQuery(sqlString, parmeters);
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnRows;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
}
}
///
/// 添加用户信息
///
/// 用户实体
/// 用户基本信息
/// int
public static int AddUserInfo(SUserEntity userInfo, SUserInfo sUserInfo)
{
int returnUserID = 0;
if (userInfo == null)
{
return returnUserID;
}
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
oracleTrConn.Connect();
try
{
string sqlString = "SELECT OrganizationCode FROM TP_MST_Organization WHERE OrganizationID = :organizationID";
OracleParameter[] parmeters2 = new OracleParameter[]
{
new OracleParameter(":organizationID",userInfo.OrganizationID)
};
DataSet returnDataset = oracleTrConn.GetSqlResultToDs(sqlString, parmeters2);
if (returnDataset.Tables[0].Rows.Count != 0)
{
if (returnDataset.Tables[0].Rows[0][0].ToString().Length == 3)
{
return -2;
}
}
else
{
return -1;
}
string userTempID = oracleTrConn.GetSqlResultToStr("Select seq_mst_user_userid.nextval from dual");
int affectRows = 0;
string sqlString4 = "INSERT INTO TP_MST_User "
+ "(UserID"
+ ",UserCode"
+ ",UserName"
+ ",Password"
+ ",OrganizationID"
+ ",AccountID"
+ ",AccountCode"
+ ",ValueFlag"
+ ",CreateUserID"
+ ",UpdateUserID"
+ ",CreateTime"
+ ",UpdateTime"
+ ",LimitMAC"
+ ",LimitStartTime"
+ ",LimitEndTime"
+ ",CanSmartLogin"
+ ",CanPCLogin"
+ ",IsWorker"
+ ",IsGroutingWorker"
+ ",Remarks"
+ ",ispublicbody"
+ ",post"
+ ",canloginprd"
+ ",canloginmbc"
+ ",BarcodePrinterID"
+ ",PLCID"
+ ")"
+ " VALUES( "
+ ":userID"
+ ",:userCode"
+ ",:UserName"
+ ",:Password"
+ ",:organizationID"
+ ",:accountID"
+ ",:accountCode"
+ ",:valueFlag"
+ ",:createUserID"
+ ",:updateUserID"
+ ",sysdate"
+ ",sysdate"
+ ",:LimitMAC"
+ ",:LimitStartTime"
+ ",:LimitEndTime"
+ ",:CanSmartLogin"
+ ",:CanPCLogin"
+ ",:IsWorker"
+ ",:IsGroutingWorker"
+ ",:Remarks"
+ ",:ispublicbody"
+ ",:post"
+ ",:canloginprd"
+ ",:canloginmbc"
+ ",:BarcodePrinterID"
+ ",:PLCID"
+ ")";
OracleParameter[] parmeters4 = new OracleParameter[]
{
new OracleParameter(":userID",userTempID),
new OracleParameter(":userCode",userInfo.UserCode),
new OracleParameter(":UserName",userInfo.UserName),
new OracleParameter(":Password",userInfo.Password),
new OracleParameter(":organizationID",userInfo.OrganizationID),
new OracleParameter(":accountID",sUserInfo.AccountID),
new OracleParameter(":accountCode",sUserInfo.AccountCode),
new OracleParameter(":valueFlag",userInfo.ValueFlag),
new OracleParameter(":createUserID", sUserInfo.UserID),
new OracleParameter(":updateUserID", sUserInfo.UserID),
new OracleParameter(":LimitMAC", userInfo.LimitMAC),
new OracleParameter(":LimitStartTime",userInfo.LimitStartTime),
new OracleParameter(":LimitEndTime",userInfo.LimitEndTime),
new OracleParameter(":CanSmartLogin", userInfo.CanSmartLogin),
new OracleParameter(":CanPCLogin", userInfo.CanPCLogin),
new OracleParameter(":IsWorker", userInfo.IsWorker),
new OracleParameter(":IsGroutingWorker", userInfo.IsGroutingWorker),
new OracleParameter(":Remarks",userInfo.Remarks),
new OracleParameter(":ispublicbody",userInfo.Ispublicbody),
new OracleParameter(":post",userInfo.PostID),
new OracleParameter(":canloginprd",userInfo.CanLoginPRD),
new OracleParameter(":canloginmbc",userInfo.CanLoginMBC),
new OracleParameter(":BarcodePrinterID",userInfo.BarcodePrinterID),
new OracleParameter(":PLCID",userInfo.PLCID),
};
affectRows = oracleTrConn.ExecuteNonQuery(sqlString4, parmeters4);
//添加工号工种关联----庄天威 2014.10.23
int jobsCount = 0;
foreach (DataRow drFor in userInfo.UserJobs.Rows)
{
if (drFor.RowState != DataRowState.Deleted)
{
if (drFor["JobsID"] == DBNull.Value)
{
continue;
}
string sqlstring5 = @"Insert into TP_MST_UserJobs(UserID,JobsID,CreateUserID)
Values(:UserID,:JobsID,:CreateUserID)";
OracleParameter[] parmeters5 = new OracleParameter[]
{
new OracleParameter(":UserID",userTempID),
new OracleParameter(":JobsID",drFor["JobsID"].ToString()),
new OracleParameter(":CreateUserID",sUserInfo.UserID),
};
jobsCount += oracleTrConn.ExecuteNonQuery(sqlstring5, parmeters5);
}
}
int newuserid = Convert.ToInt32(userTempID);
if (userInfo.UserID > 0)
{
OracleParameter[] parright = new OracleParameter[]
{
new OracleParameter(":newuserid",newuserid),
new OracleParameter(":oruserid",userInfo.UserID),
new OracleParameter(":createuserid",sUserInfo.UserID),
};
// 复制功能权限
string sqlright = "insert into tp_mst_userright\n" +
" (userid, functioncode, createuserid)\n" +
"select :newuserid, functioncode, :createuserid from tp_mst_userright ur\n" +
" where ur.userid = :oruserid";
oracleTrConn.ExecuteNonQuery(sqlright, parright);
// 复制范围权限
string sqlpurview = "insert into tp_mst_userpurview\n" +
" (userid, purviewid, purviewtype, createuserid)\n" +
"select :newuserid, purviewid, purviewtype, :createuserid from tp_mst_userpurview up\n" +
" where up.userid = :oruserid";
oracleTrConn.ExecuteNonQuery(sqlpurview, parright);
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return newuserid;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
}
}
///
/// 添加工号对应员工
///
/// 工号ID
/// 员工数据表
/// 用户基本信息
/// int
public static int AddUserStaff(int UserId, DataTable StaffTable, SUserInfo userInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
oracleTrConn.Connect();
//操作工号工种关联----庄天威 2014.10.23
int StaffCount = 0;
foreach (DataRow drFor in StaffTable.Rows)
{
if (drFor.RowState == DataRowState.Added)
{
if (drFor["StaffID"] == DBNull.Value)
{
continue;
}
string sqlstring5 = @"Insert into TP_MST_UserStaff(UserID,UJobsID,StaffID,AccountID,CreateUserID,UpdateUserID)
Values(:UserID,:UJobsID,:StaffID,:AccountID,:CreateUserID,:UpdateUserID)";
OracleParameter[] parmeters5 = new OracleParameter[]
{
new OracleParameter(":UserID",UserId),
new OracleParameter(":UJobsID",drFor["UserJobsID"].ToString()),
new OracleParameter(":StaffID",drFor["StaffID"].ToString()),
new OracleParameter(":AccountID",userInfo.AccountID),
new OracleParameter(":CreateUserID",userInfo.UserID),
new OracleParameter(":UpdateUserID",userInfo.UserID),
};
StaffCount += oracleTrConn.ExecuteNonQuery(sqlstring5, parmeters5);
}
else if (drFor.RowState == DataRowState.Deleted)
{
string sqlstring5 = @"Delete from TP_MST_UserStaff Where UserStaffID=:UserStaffID";
OracleParameter[] parmeters5 = new OracleParameter[]
{
new OracleParameter(":UserStaffID",drFor["InfoID",DataRowVersion.Original].ToString()),
};
StaffCount += oracleTrConn.ExecuteNonQuery(sqlstring5, parmeters5);
}
else if (drFor.RowState == DataRowState.Modified)
{
string sqlstring5 = @"Update TP_MST_UserStaff
Set UJobsID=:UJobsID,
StaffID=:StaffID,
UpdateUserID=:UpdateUserID,
UpdateTime=sysdate
Where UserStaffID=:UserStaffID";
OracleParameter[] parmeters5 = new OracleParameter[]
{
new OracleParameter(":UJobsID",drFor["UserJobsId"].ToString()),
new OracleParameter(":StaffID",drFor["StaffID"].ToString()),
new OracleParameter(":UpdateUserID",userInfo.UserID),
new OracleParameter(":UserStaffID",drFor["InfoID"].ToString())
};
StaffCount += oracleTrConn.ExecuteNonQuery(sqlstring5, parmeters5);
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return StaffCount;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
}
}
///
/// 编辑用户信息
///
/// 用户实体
/// 用户基本信息
/// int
public static int EditUserInfo(SUserEntity userInfo, SUserInfo sUserInfo)
{
int returnUserID = 0;
if (userInfo == null)
{
return returnUserID;
}
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
oracleTrConn.Connect();
try
{
string sqlString = "SELECT OrganizationCode FROM TP_MST_Organization WHERE OrganizationID = :organizationID";
OracleParameter[] parmeters2 = new OracleParameter[]
{
new OracleParameter(":organizationID",userInfo.OrganizationID)
};
DataSet returnDataset = oracleTrConn.GetSqlResultToDs(sqlString, parmeters2);
if (returnDataset.Tables[0].Rows.Count != 0)
{
if (returnDataset.Tables[0].Rows[0][0].ToString().Length == 3)
{
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return -2;
}
}
else
{
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return -1;
}
int affectRows = 0;
string inString = "update TP_MST_User set "
+ " UserCode=:UserCode"
+ ",UserName=:UserName"
+ ",OrganizationID=:OrganizationID"
+ ",LimitMAC=:LimitMAC"
+ ",LimitStartTime=:LimitStartTime"
+ ",LimitEndTime=:LimitEndTime"
+ ",CanSmartLogin=:CanSmartLogin"
+ ",CanPCLogin=:CanPCLogin"
+ ",Remarks=:Remarks"
+ ",AccountID=:AccountID"
+ ",AccountCode=:AccountCode"
+ ",ValueFlag=:ValueFlag"
+ ",UpdateTime=sysdate"
+ ",IsWorker=:IsWorker"
+ ",IsGroutingWorker=:IsGroutingWorker"
+ ",ispublicbody=:ispublicbody"
+ ",post=:post"
+ ",canloginprd=:canloginprd"
+ ",canloginmbc=:canloginmbc"
+ ",BarcodePrinterID=:BarcodePrinterID"
+ ",PLCID=:PLCID"
+ ",UpdateUserID=:UpdateUserID where UserID=" + userInfo.UserID;
OracleParameter[] parmeters10 = new OracleParameter[]
{
new OracleParameter(":UserCode",userInfo.UserCode),
new OracleParameter(":UserName",userInfo.UserName),
new OracleParameter(":OrganizationID",userInfo.OrganizationID),
new OracleParameter(":LimitMAC",userInfo.LimitMAC),
new OracleParameter(":LimitStartTime",userInfo.LimitStartTime),
new OracleParameter(":LimitEndTime",userInfo.LimitEndTime),
new OracleParameter(":CanSmartLogin",userInfo.CanSmartLogin),
new OracleParameter(":CanPCLogin",userInfo.CanPCLogin),
new OracleParameter(":Remarks",userInfo.Remarks),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":AccountCode",sUserInfo.AccountCode),
new OracleParameter(":ValueFlag",userInfo.ValueFlag),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":IsWorker",userInfo.IsWorker),
new OracleParameter(":IsGroutingWorker",userInfo.IsGroutingWorker),
new OracleParameter(":ispublicbody",userInfo.Ispublicbody),
new OracleParameter(":post",userInfo.PostID),
new OracleParameter(":canloginprd",userInfo.CanLoginPRD),
new OracleParameter(":canloginmbc",userInfo.CanLoginMBC),
new OracleParameter(":BarcodePrinterID",userInfo.BarcodePrinterID),
new OracleParameter(":PLCID",userInfo.PLCID),
};
affectRows = oracleTrConn.ExecuteNonQuery(inString, parmeters10);
//编辑工号关联工种----庄天威 2014.10.24
string deleteSql = "Delete from TP_MST_UserJobs where UserID=" + userInfo.UserID;
int deleteRows = oracleTrConn.ExecuteNonQuery(deleteSql, null);
int jobsCount = 0;
foreach (DataRow drFor in userInfo.UserJobs.Rows)
{
if (drFor.RowState != DataRowState.Deleted)
{
if (drFor["JobsID"] == DBNull.Value)
{
continue;
}
string sqlstring5 = @"Insert into TP_MST_UserJobs(UserID,JobsID,CreateUserID)
Values(:UserID,:JobsID,:CreateUserID)";
OracleParameter[] parmeters5 = new OracleParameter[]
{
new OracleParameter(":UserID",userInfo.UserID),
new OracleParameter(":JobsID",drFor["JobsID"].ToString()),
new OracleParameter(":CreateUserID",sUserInfo.UserID),
};
jobsCount += oracleTrConn.ExecuteNonQuery(sqlstring5, parmeters5);
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return affectRows;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 用户解锁
///
/// 用户ID
/// 用户基本信息
/// int
public static int UnlockUserStatus(int UserID, SUserInfo sUserInfo)
{
int returnRows = 0;
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
oracleTrConn.Connect();
try
{
#region 对应要执行的SQL语句
string sqlString = "update tp_mst_userlogin set locktime=null,islocked=0 where userid=:userid";
Oracle.DataAccess.Client.OracleParameter[] paras = new Oracle.DataAccess.Client.OracleParameter[]
{
new Oracle.DataAccess.Client.OracleParameter(":userid", OracleDbType.Int32, UserID, ParameterDirection.Input)
};
#endregion
returnRows = oracleTrConn.ExecuteNonQuery(sqlString, paras);
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnRows;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 用户范围权限保存
///
/// 用户权限记录集
/// 用户ID
/// 用户基本信息
/// int
public static int SaveUserRight(DataSet userRightData, int userID, SUserInfo sUserInfo)
{
int returnRowCount = 0;//返回影响行数
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
oracleTrConn.Connect();
string sql = "DELETE TP_MST_UserPurview WHERE UserID = :userID"
+ " AND (PurviewType <>:PurviewType "
+ " OR (PurviewType =:PurviewType AND PurviewID IN (SELECT OrganizationID FROM TP_MST_Organization WHERE ValueFlag = 1))) ";
Oracle.DataAccess.Client.OracleParameter[] paras = new Oracle.DataAccess.Client.OracleParameter[]
{
new Oracle.DataAccess.Client.OracleParameter(":PurviewType",2),
new Oracle.DataAccess.Client.OracleParameter(":userID",userID)
};
returnRowCount += oracleTrConn.ExecuteNonQuery(sql, paras);//删除以前所设置的权限
// 顺序插入现有的权限数据
DataSet dsExist = null;
for (int i = 0; i < userRightData.Tables.Count - 2; i++)
{
// 对每一种权限进行遍历
foreach (DataRow dataRow in userRightData.Tables[i].Rows)
{
if (Convert.ToBoolean(dataRow["RightFlag"]))
{
if (Convert.ToInt32(dataRow["PurviewID"]) == -1)
{
sql = "select 1 from TP_MST_UserPurview where UserID=:UserID and PurviewID=:PurviewID and PurviewType=:PurviewType";
paras = new Oracle.DataAccess.Client.OracleParameter[]
{
new Oracle.DataAccess.Client.OracleParameter(":UserID",userID),
new Oracle.DataAccess.Client.OracleParameter(":PurviewID", Convert.ToInt32(dataRow["PurviewID"])),
new Oracle.DataAccess.Client.OracleParameter(":PurviewType",Convert.ToInt32(dataRow["PurviewType"])),
};
dsExist = oracleTrConn.GetSqlResultToDs(sql, paras);
if (dsExist != null && dsExist.Tables[0].Rows.Count == 0)
{
sql = "INSERT INTO TP_MST_UserPurview"
+ "(UserID"
+ " ,PurviewID"
+ " ,PurviewType "
+ " ,CreateUserID) "
+ " VALUES "
+ "(:UserID"
+ " ,:PurviewID"
+ " ,:PurviewType"
+ " ,:CreateUserID) ";
paras = new Oracle.DataAccess.Client.OracleParameter[]
{
new Oracle.DataAccess.Client.OracleParameter(":UserID",userID),
new Oracle.DataAccess.Client.OracleParameter(":PurviewID", Convert.ToInt32(dataRow["PurviewID"])),
new Oracle.DataAccess.Client.OracleParameter(":PurviewType",Convert.ToInt32(dataRow["PurviewType"])),
new Oracle.DataAccess.Client.OracleParameter(":CreateUserID",sUserInfo.UserID),
};
returnRowCount += oracleTrConn.ExecuteNonQuery(sql, paras);
}
}
else
{
sql = "INSERT INTO TP_MST_UserPurview"
+ "(UserID"
+ " ,PurviewID"
+ " ,PurviewType "
+ " ,CreateUserID) "
+ " VALUES "
+ "(:UserID"
+ " ,:PurviewID"
+ " ,:PurviewType"
+ " ,:CreateUserID) ";
paras = new Oracle.DataAccess.Client.OracleParameter[]
{
new Oracle.DataAccess.Client.OracleParameter(":UserID",userID),
new Oracle.DataAccess.Client.OracleParameter(":PurviewID", Convert.ToInt32(dataRow["PurviewID"])),
new Oracle.DataAccess.Client.OracleParameter(":PurviewType",Convert.ToInt32(dataRow["PurviewType"])),
new Oracle.DataAccess.Client.OracleParameter(":CreateUserID",sUserInfo.UserID),
};
returnRowCount += oracleTrConn.ExecuteNonQuery(sql, paras);
}
}
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnRowCount;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存用户的功能权限
///
/// 用户权限记录集
/// 用户ID
/// License授权方式:1→按站点 2→按用户
/// 用户基本信息
///
/// 执行更新影响的数据行数
/// 大于0:正常操作,返回
/// 等于0:无任何影响行数
/// -1:更新的功能权限有超过授权站点数
///
public static FunRightResultEntity SaveUserFunctionRight(DataSet userRightData, int userID, int licenseType, SUserInfo sUserInfo)
{
FunRightResultEntity result = new FunRightResultEntity();
result.OperationStatus = 0;
result.LicenseFunctions = "";
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
if (userRightData == null || userRightData.Tables.Count < 1 || userID < 1)
{
return result;
}
oracleTrConn.Connect();
#region 删除数据
string sqlString1 = "DELETE TP_MST_UserRight WHERE UserID = :pUserID";
Oracle.DataAccess.Client.OracleParameter[] paras1 = new Oracle.DataAccess.Client.OracleParameter[]
{
new Oracle.DataAccess.Client.OracleParameter(":pUserID", OracleDbType.Int32, userID, ParameterDirection.Input)
};
#endregion
result.OperationStatus += oracleTrConn.ExecuteNonQuery(sqlString1, paras1);
#region 增加新的数据
// 对现有功能权限进行遍历
foreach (DataRow dataRow in userRightData.Tables[0].Rows)
{
if (dataRow["Choose"].ToString() == "1")
{
string sqlString2 = "INSERT INTO TP_MST_UserRight "
+ "(UserID"
+ ",FunctionCode"
+ ",CreateUserID)"
+ " VALUES "
+ "(:pUserID"
+ ",:pFunctionCode"
+ ",:pCreateUserID)";
Oracle.DataAccess.Client.OracleParameter[] paras2 = new Oracle.DataAccess.Client.OracleParameter[]
{
new Oracle.DataAccess.Client.OracleParameter(":pUserID", OracleDbType.Int32, userID, ParameterDirection.Input),
new Oracle.DataAccess.Client.OracleParameter(":pFunctionCode",OracleDbType.Varchar2, dataRow["FunctionCode"].ToString(), ParameterDirection.Input),
new Oracle.DataAccess.Client.OracleParameter(":pCreateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input)
};
result.OperationStatus += oracleTrConn.ExecuteNonQuery(sqlString2, paras2);
}
}
#endregion
#region 按站点授权时,需要检查每一个站点是否超出授权数
//if (licenseType == Constant.SYSTEM_LICENSETYPE_BASE_FUNCTION)
//{
// // 需要对更改的权限进行限制检查,查询已经使用的功能数量
// string sqlString3 = "SELECT C.FunctionCode, COUNT(C.UserID) UseNum"
// + " FROM TP_MST_UserRight C INNER JOIN T_MST_User D ON C.UserID = D.UserID"
// + " INNER JOIN T_SYS_FUNCTION E ON C.FunctionCode = E.FunctionCode"
// + " WHERE D.ValueFlag > 0 AND (E.FunctionFlag = 1) GROUP BY C.FunctionCode";
// DataTable dtUserRightNum = oracleTrConn.GetSqlResultToDt(sqlString3);
// bool isExistOverLicenseNumber = false;
// foreach (DataRow newRowNum in dtUserRightNum.Rows)
// {
// #region 比对是否超出了授权数量
// DataRow[] dataRow = userRightData.Tables[0].Select("FunctionCode = " + newRowNum["FunctionCode"].ToString() + "");
// if (dataRow.Length > 0)
// {
// /*暂时撤销=,否则使用数等于授权数时保存提示超出授权数 BY 陈建 2014-03-15 Start here*/
// //if (Convert.ToInt32(dataRow[0]["LicensesNumber"]) <= Convert.ToInt32(sqlDataReader["UseNum"]))
// if (Convert.ToInt32(dataRow[0]["LicensesNumber"]) < Convert.ToInt32(newRowNum["UseNum"]))
// /*暂时撤销=,否则使用数等于授权数时保存提示超出授权数 BY 陈建 2014-03-15 End here*/
// {
// isExistOverLicenseNumber = true;
// if (string.IsNullOrEmpty(overLicenseNumberFunctions))
// {
// result.LicenseFunctions = "[" + dataRow[0]["FunctionCode"].ToString() + "] "
// + dataRow[0]["FunctionName"].ToString();
// }
// else
// {
// result.LicenseFunctions += "; [" + dataRow[0]["FunctionCode"].ToString() + "] "
// + dataRow[0]["FunctionName"].ToString();
// }
// }
// }
// #endregion
// }
// // 存在超过授权站点数的情况,直接返回
// if (isExistOverLicenseNumber)
// {
// oracleTrConn.Rollback();
// oracleTrConn.Disconnect();
// result.OperationStatus = -1;
// return result;
// }
//}
#endregion
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return result;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存用户的功能权限
///
/// 用户权限记录集
/// 用户ID
/// License授权方式:1→按站点 2→按用户
/// 用户基本信息
///
/// 执行更新影响的数据行数
/// 大于0:正常操作,返回
/// 等于0:无任何影响行数
/// -1:更新的功能权限有超过授权站点数
///
public static FunRightResultEntity SaveUserFunctionTwoRight(DataSet userRightData, int userID, int licenseType, SUserInfo sUserInfo, DataSet userRightTwoData)
{
FunRightResultEntity result = new FunRightResultEntity();
result.OperationStatus = 0;
result.LicenseFunctions = "";
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
if (userRightData == null || userRightData.Tables.Count < 1 || userID < 1)
{
return result;
}
oracleTrConn.Connect();
#region 删除数据
string sqlString1 = "DELETE TP_MST_UserRight WHERE UserID = :pUserID";
Oracle.DataAccess.Client.OracleParameter[] paras1 = new Oracle.DataAccess.Client.OracleParameter[]
{
new Oracle.DataAccess.Client.OracleParameter(":pUserID", OracleDbType.Int32, userID, ParameterDirection.Input)
};
#endregion
result.OperationStatus += oracleTrConn.ExecuteNonQuery(sqlString1, paras1);
#region 增加新的数据
// 对现有功能权限进行遍历
foreach (DataRow dataRow in userRightData.Tables[0].Rows)
{
if (dataRow["Choose"].ToString() == "1" || dataRow["FunctionCode"].ToString() == "[ALL]")
{
string sqlString2 = "INSERT INTO TP_MST_UserRight "
+ "(UserID"
+ ",FunctionCode"
+ ",CreateUserID)"
+ " VALUES "
+ "(:pUserID"
+ ",:pFunctionCode"
+ ",:pCreateUserID)";
Oracle.DataAccess.Client.OracleParameter[] paras2 = new Oracle.DataAccess.Client.OracleParameter[]
{
new Oracle.DataAccess.Client.OracleParameter(":pUserID", OracleDbType.Int32, userID, ParameterDirection.Input),
new Oracle.DataAccess.Client.OracleParameter(":pFunctionCode",OracleDbType.Varchar2, dataRow["FunctionCode"].ToString(), ParameterDirection.Input),
new Oracle.DataAccess.Client.OracleParameter(":pCreateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input)
};
result.OperationStatus += oracleTrConn.ExecuteNonQuery(sqlString2, paras2);
}
}
#endregion
// 二期
#region 增加新的数据
// 对现有功能权限进行遍历
foreach (DataRow dataRow in userRightTwoData.Tables[0].Rows)
{
if (dataRow["Choose"].ToString() == "1" || dataRow["FunctionCode"].ToString() == "[ALL2]")
{
string sqlString2 = "INSERT INTO TP_MST_UserRight "
+ "(UserID"
+ ",FunctionCode"
+ ",CreateUserID)"
+ " VALUES "
+ "(:pUserID"
+ ",:pFunctionCode"
+ ",:pCreateUserID)";
Oracle.DataAccess.Client.OracleParameter[] paras2 = new Oracle.DataAccess.Client.OracleParameter[]
{
new Oracle.DataAccess.Client.OracleParameter(":pUserID", OracleDbType.Int32, userID, ParameterDirection.Input),
new Oracle.DataAccess.Client.OracleParameter(":pFunctionCode",OracleDbType.Varchar2, dataRow["FunctionCode"].ToString(), ParameterDirection.Input),
new Oracle.DataAccess.Client.OracleParameter(":pCreateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input)
};
result.OperationStatus += oracleTrConn.ExecuteNonQuery(sqlString2, paras2);
}
}
#endregion
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return result;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 编辑用户密码
///
/// 用户密码
/// 用户编码
/// 用户名称
/// 用户基本信息
/// string
public static string SaveUserPassWord(string userPassWord, string userCode, string userName, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
string strPassWord = Encryption.GetMD5String(userPassWord);
oracleTrConn.Connect();
#region 更新TP_MST_User表的密码
string sqlString1 = " UPDATE TP_MST_User SET Password =:passWord WHERE UserCode =:UserCode and accountid=:accountid";
OracleParameter[] parmeters1 = new OracleParameter[]
{
new OracleParameter(":accountid",sUserInfo.AccountID),
new OracleParameter(":passWord",strPassWord),
new OracleParameter(":UserCode",userCode),
//new OracleParameter(":UserName",userName)
};
#endregion
oracleTrConn.ExecuteNonQuery(sqlString1, parmeters1);
oracleTrConn.Commit();
oracleTrConn.Disconnect();
//sUserInfo.SetUserInfoPassWord(strPassWord);
return strPassWord;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存帐套相关信息
///
/// 帐套数据集合
/// 默认密码
/// 用户基本信息
/// 1 存在相同的帐套代码 2表示有数据被修改 3表示没有数据被修改
public static int SaveAccountData(DataTable accountData, string defaultPassword, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (accountData == null && accountData.Rows.Count < 0)
{
return 3;
}
int intResult = 2;
oracleTrConn.Connect();
#region 对要保存的帐套数据进行必要的验证
foreach (DataRow dataRow in accountData.Rows)
{
// 新建帐套
if (dataRow.RowState == DataRowState.Added)
{
#region 判断是否存在相同的帐套代码
string sqlString1 = "SELECT Count(*) FROM TP_MST_Account WHERE AccountCode = :accountCode";
OracleParameter[] parmeters1 = new OracleParameter[]
{
new OracleParameter(":accountCode",dataRow["AccountCode"].ToString())
};
string strTemp1 = oracleTrConn.GetSqlResultToStr(sqlString1, parmeters1);
if (strTemp1 != "0")
{
intResult = 1;
break;
}
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 判断是否存在相同的帐套代码
string sqlString2 = "SELECT Count(*) FROM TP_MST_Account WHERE AccountCode = :accountCode and AccountID <> :accountID";
OracleParameter[] parmeters2 = new OracleParameter[]
{
new OracleParameter(":accountCode",dataRow["AccountCode"].ToString()),
new OracleParameter(":accountID",dataRow["AccountID"])
};
string strTemp1 = oracleTrConn.GetSqlResultToStr(sqlString2, parmeters2);
if (strTemp1 != "0")
{
intResult = 1;
break;
}
#endregion
}
}
if (intResult == 1)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return intResult;
}
#endregion
string accountID = ""; // 存储新插入帐套ID
string orgID = ""; // 存储新插入部门ID
string userID = ""; //用户ID
foreach (DataRow dataRow in accountData.Rows)
{
// 新建帐套
if (dataRow.RowState == DataRowState.Added)
{
#region 新增帐套信息
accountID = oracleTrConn.GetSqlResultToStr("SELECT SEQ_MST_ACCOUNT_ACCOUNTID.nextval FROM dual");
#region 向T_MST_Account插入数据
string sqlString1 = "INSERT INTO TP_MST_Account "
+ "(AccountId"
+ ",AccountCode"
+ ",AccountName"
+ ",Remarks"
+ ",ValueFlag"
+ ",CreateUserID"
+ ",UpdateUserID)"
+ " VALUES "
+ "(:accountId"
+ ",:accountCode"
+ ",:accountName"
+ ",:remarks"
+ ",:valueFlag"
+ ",:createUserID"
+ ",:updateUserID)";
OracleParameter[] parmeters1 = new OracleParameter[]
{
new OracleParameter(":accountId", OracleDbType.Int32, accountID, ParameterDirection.Input),
new OracleParameter(":accountCode",OracleDbType.Varchar2, dataRow["AccountCode"].ToString(), ParameterDirection.Input),
new OracleParameter(":accountName",OracleDbType.NVarchar2, dataRow["AccountName"].ToString(), ParameterDirection.Input),
new OracleParameter(":remarks",OracleDbType.NVarchar2, dataRow["Remarks"].ToString(), ParameterDirection.Input),
new OracleParameter(":valueFlag", OracleDbType.Char, "1", ParameterDirection.Input),
new OracleParameter(":createUserID", OracleDbType.Int32,sUserInfo.UserID, ParameterDirection.Input),
new OracleParameter(":updateUserID", OracleDbType.Int32,sUserInfo.UserID, ParameterDirection.Input)
};
oracleTrConn.ExecuteNonQuery(sqlString1, parmeters1);
#endregion
orgID = oracleTrConn.GetSqlResultToStr("SELECT SEQ_MST_ORGANIZATION_ID.nextval FROM dual");
#region 根据新插入的帐套ID,生成该帐套下的组织机构001部门
string sqlString2 = "INSERT INTO TP_MST_Organization "
+ "(OrganizationID"
+ ",OrganizationCode"
+ ",OrganizationName"
+ ",OrganizationFullName"
+ ",Address"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateUserID"
+ ",UpdateUserID"
+ ",IsLeafNode)"
+ " VALUES "
+ "(:organizationID"
+ ",:organizationCode"
+ ",:organizationName"
+ ",:organizationfullName"
+ ",:address"
+ ",:accountID"
+ ",:valueFlag"
+ ",:createUserID"
+ ",:updateUserID"
+ ",:isLeafNode)";
OracleParameter[] parmeters2 = new OracleParameter[]
{
new OracleParameter(":organizationID", Convert.ToInt32(orgID)),
new OracleParameter(":organizationCode","001"),
new OracleParameter(":organizationName",dataRow["AccountName"].ToString()),
new OracleParameter(":organizationfullName",dataRow["AccountName"].ToString()),
new OracleParameter(":address","-"),
new OracleParameter(":accountID",Convert.ToInt32(accountID)),
new OracleParameter(":valueFlag","1"),
new OracleParameter(":createUserID",sUserInfo.UserID),
new OracleParameter(":updateUserID",sUserInfo.UserID),
new OracleParameter(":isLeafNode","0")
};
oracleTrConn.ExecuteNonQuery(sqlString2, parmeters2);
#endregion
string orgID2 = oracleTrConn.GetSqlResultToStr("SELECT SEQ_MST_ORGANIZATION_ID.nextval FROM dual");
#region 根据新插入的帐套ID,生成该帐套下的组织机构001001部门
string sqlString21 = "INSERT INTO TP_MST_Organization "
+ "(OrganizationID"
+ ",OrganizationCode"
+ ",OrganizationName"
+ ",OrganizationFullName"
+ ",Address"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateUserID"
+ ",UpdateUserID"
+ ",IsLeafNode)"
+ " VALUES "
+ "(:organizationID"
+ ",:organizationCode"
+ ",:organizationName"
+ ",:organizationfullName"
+ ",:address"
+ ",:accountID"
+ ",:valueFlag"
+ ",:createUserID"
+ ",:updateUserID"
+ ",:isLeafNode)";
OracleParameter[] parmeters21 = new OracleParameter[]
{
new OracleParameter(":organizationID", Convert.ToInt32(orgID2)),
new OracleParameter(":organizationCode","001001"),
new OracleParameter(":organizationName",dataRow["AccountName"].ToString()),
new OracleParameter(":organizationfullName",dataRow["AccountName"].ToString()+"→"+dataRow["AccountName"].ToString()),
new OracleParameter(":address","-"),
new OracleParameter(":accountID",Convert.ToInt32(accountID)),
new OracleParameter(":valueFlag","1"),
new OracleParameter(":createUserID",sUserInfo.UserID),
new OracleParameter(":updateUserID",sUserInfo.UserID),
new OracleParameter(":isLeafNode","1")
};
oracleTrConn.ExecuteNonQuery(sqlString21, parmeters21);
#endregion
userID = oracleTrConn.GetSqlResultToStr("SELECT SEQ_MST_USER_USERID.nextval FROM dual");
#region 根据新插入的帐套ID和部门ID 生成admin用户
string sqlString4 = "INSERT INTO TP_MST_User "
+ "(UserID"
+ ",UserCode"
+ ",UserName"
+ ",Password"
+ ",OrganizationID"
+ ",AccountID"
+ ",AccountCode"
+ ",ValueFlag"
+ ",CreateUserID"
+ ",UpdateUserID"
//+ ",Relatedobjecttype"
+ ",CanSmartLogin"
+ ",CanPCLogin"
+ ",IsWorker)"
+ " VALUES ("
+ ":userID"
+ ",:userCode"
+ ",:UserName"
+ ",:Password"
+ ",:organizationID"
+ ",:accountID"
+ ",:accountCode"
+ ",:valueFlag"
+ ",:createUserID"
+ ",:updateUserID"
//+ ",:relatedobjecttype"
+ ",'0'"
+ ",'1'"
+ ",'0'"
//+ " FROM TP_MST_Account WHERE AccountID=:accountID";
+ ")";
OracleParameter[] parmeters4 = new OracleParameter[]
{
new OracleParameter(":userID",Convert.ToInt32(userID)),
new OracleParameter(":userCode","admin"),
new OracleParameter(":UserName","系统管理员"),
new OracleParameter(":Password",defaultPassword),
new OracleParameter(":organizationID",Convert.ToInt32(orgID)),
new OracleParameter(":accountID",Convert.ToInt32(accountID)),
new OracleParameter(":accountCode",dataRow["AccountCode"].ToString()),
new OracleParameter(":valueFlag","1"),
new OracleParameter(":createUserID", sUserInfo.UserID),
new OracleParameter(":updateUserID", sUserInfo.UserID),
//new OracleParameter(":relatedobjecttype", 1)
};
oracleTrConn.ExecuteNonQuery(sqlString4, parmeters4);
#endregion
#region 根据新插入的帐套ID 生成业务系统参数数据
string sqlString6 = "INSERT INTO TP_MST_SYSTEMSETTING "
+ "("
+ "SETTINGCODE"
+ ",SETTINGNAME"
+ ",CATEGORYNAME"
+ ",SETTINGVALUE"
+ ",SETTINGDEFAULTVALUES"
+ ",ACCOUNTID"
+ ",REMARKS"
+ ",TOOLTIP"
+ ",EDITFLAG"
+ ",UPDATEUSERID"
+ ")"
+ " SELECT "
+ "SETTINGCODE"
+ ",SETTINGNAME"
+ ",CATEGORYNAME"
//+ ",SETTINGVALUE"
+ ",SETTINGDEFAULTVALUES"
+ ",SETTINGDEFAULTVALUES"
+ ",:accountID"
+ ",REMARKS"
+ ",TOOLTIP"
+ ",EDITFLAG"
+ ",:updateUserID"
+ " FROM TP_MST_SystemSetting "
//+ " WHERE AccountID IN (SELECT AccountID FROM TP_MST_User WHERE userCode=:userCode)";
+ " WHERE AccountID = :systemaccountID";
OracleParameter[] parmeters6 = new OracleParameter[]
{
new OracleParameter(":accountID",Convert.ToInt32(accountID)),
new OracleParameter(":updateUserID",sUserInfo.UserID),
//new OracleParameter(":userCode","system")
new OracleParameter(":systemaccountID",sUserInfo.AccountID)
};
oracleTrConn.ExecuteNonQuery(sqlString6, parmeters6);
#endregion
#region 根据新插入的帐套ID 生成系统日期信息
string sqlString7 = "INSERT INTO TP_MST_SYSTEMDATE "
+ "("
+ "SYSTEMDATETYPE"
+ ",DATEVALUE"
+ ",REMARKS"
+ ",ACCOUNTID"
+ ",UPDATEUSERID"
+ ")"
+ " SELECT "
+ "SYSTEMDATETYPE"
+ ",TRUNC(sysdate)"
+ ",REMARKS"
+ ",:accountid"
+ ",:UPDATEUSERID"
+ " FROM TP_MST_SYSTEMDATE WHERE AccountID = :sysaccountid";
OracleParameter[] parmeters7 = new OracleParameter[]
{
new OracleParameter(":accountid",Convert.ToInt32(accountID)),
new OracleParameter(":UPDATEUSERID",sUserInfo.UserID),
new OracleParameter(":sysaccountid",sUserInfo.AccountID),
};
oracleTrConn.ExecuteNonQuery(sqlString7, parmeters7);
#endregion
#region 根据新插入的产品类别数据信息
string sqlString8 = "INSERT INTO TP_MST_GoodsType "
+ "("
+ "GOODSTYPECODE"
+ ",GOODSTYPENAME"
+ ",GOODSTYPEFULLNAME"
+ ",ISLEAFNODE"
+ ",REMARKS"
+ ",ACCOUNTID"
+ ",VALUEFLAG"
//+ ",CREATETIME"
+ ",CREATEUSERID"
+ ",UPDATEUSERID"
+ ") "
+ " VALUES( "
+ "'001'"
+ ",'产品类别'"
+ ",'产品类别'"
+ ",'0'"
+ ",null"
+ ",:accountid"
+ ",'1'"
//+ ",sysdate"
+ ",:createUserid"
+ ",:updateUserid"
// + " FROM TP_MST_GoodsType WHERE ACCOUNTID IN (SELECT AccountID FROM TP_MST_User WHERE userCode=:userCode)";
+ ")";
OracleParameter[] parmeters8 = new OracleParameter[]
{
new OracleParameter(":accountid",Convert.ToInt32(accountID)),
new OracleParameter(":createUserid",sUserInfo.UserID),
new OracleParameter(":updateUserid",sUserInfo.UserID),
// new OracleParameter(":userCode","system")
};
oracleTrConn.ExecuteNonQuery(sqlString8, parmeters8);
string sqlString81 = "INSERT INTO TP_MST_GoodsType "
+ "("
+ "GOODSTYPECODE"
+ ",GOODSTYPENAME"
+ ",GOODSTYPEFULLNAME"
+ ",ISLEAFNODE"
+ ",REMARKS"
+ ",ACCOUNTID"
+ ",VALUEFLAG"
//+ ",CREATETIME"
+ ",CREATEUSERID"
+ ",UPDATEUSERID"
+ ") "
+ " VALUES( "
+ "'001001'"
+ ",'大件'"
+ ",'产品类别→大件'"
+ ",'1'"
+ ",null"
+ ",:accountid"
+ ",'1'"
//+ ",sysdate"
+ ",:createUserid"
+ ",:updateUserid"
// + " FROM TP_MST_GoodsType WHERE ACCOUNTID IN (SELECT AccountID FROM TP_MST_User WHERE userCode=:userCode)";
+ ")";
OracleParameter[] parmeters81 = new OracleParameter[]
{
new OracleParameter(":accountid",Convert.ToInt32(accountID)),
new OracleParameter(":createUserid",sUserInfo.UserID),
new OracleParameter(":updateUserid",sUserInfo.UserID),
// new OracleParameter(":userCode","system")
};
oracleTrConn.ExecuteNonQuery(sqlString81, parmeters81);
string sqlString82 = "INSERT INTO TP_MST_GoodsType "
+ "("
+ "GOODSTYPECODE"
+ ",GOODSTYPENAME"
+ ",GOODSTYPEFULLNAME"
+ ",ISLEAFNODE"
+ ",REMARKS"
+ ",ACCOUNTID"
+ ",VALUEFLAG"
//+ ",CREATETIME"
+ ",CREATEUSERID"
+ ",UPDATEUSERID"
+ ") "
+ " VALUES( "
+ "'001002'"
+ ",'小件'"
+ ",'产品类别→小件'"
+ ",'1'"
+ ",null"
+ ",:accountid"
+ ",'1'"
//+ ",sysdate"
+ ",:createUserid"
+ ",:updateUserid"
// + " FROM TP_MST_GoodsType WHERE ACCOUNTID IN (SELECT AccountID FROM TP_MST_User WHERE userCode=:userCode)";
+ ")";
OracleParameter[] parmeters82 = new OracleParameter[]
{
new OracleParameter(":accountid",Convert.ToInt32(accountID)),
new OracleParameter(":createUserid",sUserInfo.UserID),
new OracleParameter(":updateUserid",sUserInfo.UserID),
// new OracleParameter(":userCode","system")
};
oracleTrConn.ExecuteNonQuery(sqlString82, parmeters82);
#endregion
#region 根据新插入的产品分级数据信息
string sqlString9 = "INSERT INTO TP_MST_GoodsLevel "
+ "("
+ "GoodsLevelName,"
+ "GoodsLevelTypeID,"
+ "IsSemiFinishedEx,"
+ "SFEDisplayNo,"
+ "IsFinishedEx,"
+ "FEDisplayNo,"
+ "IsFinished,"
+ "IsScrapped,"
+ "CanDisable,"
+ "Remarks,"
+ "AccountID,"
+ "ValueFlag,"
+ "CreateUserID,"
+ "UpdateUserID"
+ ") "
+ " SELECT "
+ "GoodsLevelTypeName,"
+ "GoodsLevelTypeID,"
+ "IsSemiFinishedEx,"
+ "SFEDisplayNo,"
+ "IsFinishedEx,"
+ "FEDisplayNo,"
+ "IsFinished,"
+ "IsScrapped,"
+ "CanDisable,"
+ "Remarks,"
+ ":accountID,"
+ "'1',"
+ ":createUserid,"
+ ":updateUserid"
+ " FROM TP_SYS_GoodsLevelType";
OracleParameter[] parmeters9 = new OracleParameter[]
{
new OracleParameter(":accountID",Convert.ToInt32(accountID)),
new OracleParameter(":createUserid",sUserInfo.UserID),
new OracleParameter(":updateUserid",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlString9, parmeters9);
#endregion
#region 报销 结算方式
string sqlString10 =
@"insert into TB_MST_SETTLEMENTTYPE
(SETTLEMENTTYPENAME,
ISCURRENCYSETTLEMENT,
REMARKS,
ACCOUNTID,
VALUEFLAG,
CREATEUSERID,
UPDATEUSERID,
SUBJECTID)
values
('(报销)', '0', '报销平账时用', :ACCOUNTID, '9', :createUserid, :createUserid, null)";
OracleParameter[] parmeters10 = new OracleParameter[]
{
new OracleParameter(":ACCOUNTID",Convert.ToInt32(accountID)),
new OracleParameter(":createUserid",sUserInfo.UserID),
};
oracleTrConn.ExecuteNonQuery(sqlString10, parmeters10);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新帐套信息
string sqlString = "UPDATE TP_MST_Account SET "
// 编码不允许修改
//+ " AccountCode = :accountCode,"
+ " AccountName = :accountName,"
+ " Remarks = :remarks,"
+ " ValueFlag = :valueFlag,"
//+ " UpdateTime = :updateTime,"
+ " UpdateUserID = :updateUserID"
+ " WHERE AccountID = :accountID";
OracleParameter[] parmeters1 = new OracleParameter[]
{
//new OracleParameter(":accountCode",dataRow["AccountCode"].ToString()),
new OracleParameter(":accountName",dataRow["AccountName"].ToString()),
new OracleParameter(":remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":valueFlag",dataRow["ValueFlag"].ToString()),
//new OracleParameter(":updateTime",DateTime.Now),
new OracleParameter(":updateUserID",sUserInfo.UserID),
new OracleParameter(":accountID",dataRow["AccountID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlString, parmeters1);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return intResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
#endregion
#region 报表工序基础信息
///
/// 新建报表数据来源
///
/// 新建实体
/// 工序数据源
/// 当前用户信息
///
/// 受影响行数
///
public static int AddRptProcedure(RptProcedureEntity rptProcedureEntity, DataSet dsSourse, SUserInfo userInfo)
{
int RowsCount = 0;
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
oracleTrConn.Connect();
StringBuilder sbSql = new StringBuilder();
#region 添加报表数据来源信息
//获取序列ID
sbSql.Clear();
sbSql.Append("select SEQ_MST_RPTPROCEDURE_ID.NEXTVAL from dual");
int rptProcedureId = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
//添加缺陷扣罚策略主体信息
sbSql.Clear();
sbSql.Append(@"Insert into TP_MST_RptProcedure
(RptProcedureID,RptProcedureCode,RptProcedureName,RptProcedureType,
AccountID,
CreateUserID,UpdateUserID,displayno)
Values
(:RptProcedureID,:RptProcedureCode,:RptProcedureName,
:RptProcedureType,:AccountID,
:CreateUserID,:UpdateUserID,:displayno)");
OracleParameter[] rptProcedureParas = new OracleParameter[] {
new OracleParameter(":RptProcedureID",OracleDbType.Int32,
rptProcedureId,ParameterDirection.Input),
new OracleParameter(":RptProcedureCode",OracleDbType.NVarchar2,
rptProcedureEntity.RptProcedureCode,ParameterDirection.Input),
new OracleParameter(":RptProcedureName",OracleDbType.NVarchar2,
rptProcedureEntity.RptProcedureName,ParameterDirection.Input),
new OracleParameter(":RptProcedureType",OracleDbType.NVarchar2,
rptProcedureEntity.RptProcedureTpye,ParameterDirection.Input),
new OracleParameter(":AccountID",OracleDbType.Int32,
userInfo.AccountID,ParameterDirection.Input),
new OracleParameter(":CreateUserID",OracleDbType.Int32,
userInfo.UserID,ParameterDirection.Input),
new OracleParameter(":UpdateUserID",OracleDbType.Int32,
userInfo.UserID,ParameterDirection.Input),
new OracleParameter(":displayno",OracleDbType.Int32,
rptProcedureEntity.DisplayNo,ParameterDirection.Input),
};
//连接数据库并返回结果
RowsCount = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), rptProcedureParas);
#endregion
#region 添加数据来源工序信息
if (dsSourse != null)
{
DataTable dtrptSProcedure = dsSourse.Tables[Constant.INT_IS_ZERO];
foreach (DataRow drFor in dtrptSProcedure.Rows)
{
sbSql.Clear();
//获得序列
sbSql.Append("select SEQ_MST_RPTSPROCEDURE_ID.NEXTVAL from dual");
int rptSProcedureId = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
//添加信息
sbSql.Clear();
sbSql.Append(@"Insert into TP_MST_RptSProcedure
(RptSProcedureID,ProcedureID,
ProcedureCode,ProcedureName,
RptProcedureID,
CreateUserID)
Values
(:RptSProcedureID,:ProcedureID,:ProcedureCode,
:ProcedureName,:RptProcedureID,:CreateUserID)");
OracleParameter[] rptSProcedureParas = new OracleParameter[] {
new OracleParameter(":RptSProcedureID",OracleDbType.Int32,
rptSProcedureId,ParameterDirection.Input),
new OracleParameter(":ProcedureID",OracleDbType.Int32,
drFor["ProcedureID"],ParameterDirection.Input),
new OracleParameter(":ProcedureCode",OracleDbType.NVarchar2,
drFor["ProcedureCode"],ParameterDirection.Input),
new OracleParameter(":ProcedureName",OracleDbType.NVarchar2,
drFor["ProcedureName"],ParameterDirection.Input),
new OracleParameter(":RptProcedureID",OracleDbType.Int32,
rptProcedureId,ParameterDirection.Input),
new OracleParameter(":CreateUserID",OracleDbType.Int32,
userInfo.UserID,ParameterDirection.Input),
};
//连接数据库并返回结果
RowsCount += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), rptSProcedureParas);
}
}
#endregion
#region 添加数据统计工序信息
if (dsSourse != null)
{
DataTable dtrptTProcedure = dsSourse.Tables[Constant.INT_IS_ONE];
foreach (DataRow drFor in dtrptTProcedure.Rows)
{
sbSql.Clear();
//获得序列
sbSql.Append("select SEQ_MST_RPTTPROCEDURE_ID.NEXTVAL from dual");
int rptTProcedureId = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
//添加信息
sbSql.Clear();
sbSql.Append(@"Insert into TP_MST_RptTProcedure
(RptTProcedureID,ProcedureID,
ProcedureCode,ProcedureName,
RptProcedureID,
CreateUserID)
Values
(:RptTProcedureID,:ProcedureID,:ProcedureCode,
:ProcedureName,:RptProcedureID,:CreateUserID)");
OracleParameter[] rptTProcedureParas = new OracleParameter[] {
new OracleParameter(":RptTProcedureID",OracleDbType.Int32,
rptTProcedureId,ParameterDirection.Input),
new OracleParameter(":ProcedureID",OracleDbType.Int32,
drFor["ProcedureID"],ParameterDirection.Input),
new OracleParameter(":ProcedureCode",OracleDbType.NVarchar2,
drFor["ProcedureCode"],ParameterDirection.Input),
new OracleParameter(":ProcedureName",OracleDbType.NVarchar2,
drFor["ProcedureName"],ParameterDirection.Input),
new OracleParameter(":RptProcedureID",OracleDbType.Int32,
rptProcedureId,ParameterDirection.Input),
new OracleParameter(":CreateUserID",OracleDbType.Int32,
userInfo.UserID,ParameterDirection.Input),
};
//连接数据库并返回结果
RowsCount += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), rptTProcedureParas);
}
}
#endregion
if (RowsCount == 0)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
else
{
oracleTrConn.Commit();
oracleTrConn.Disconnect();
}
return RowsCount;
}
//catch (Exception ex)
catch
{
if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return RowsCount;
}
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
return RowsCount;
}
///
/// 修改报表数据来源
///
/// 新建实体
/// 工序数据源
/// 当前用户信息
///
/// 受影响行数
///
public static int UpdateRptProcedure(RptProcedureEntity rptProcedureEntity, DataSet dsSourse, SUserInfo userInfo)
{
int RowsCount = 0;
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
oracleTrConn.Connect();
StringBuilder sbSql = new StringBuilder();
#region 修改报表数据来源信息
//修改报表数据来源信息
sbSql.Clear();
sbSql.Append(@"Update TP_MST_RptProcedure
Set RptProcedureCode=:RptProcedureCode,
RptProcedureName=:RptProcedureName,
RptProcedureType=:RptProcedureType,
UpdateUserID=:UpdateUserID,
displayno=:displayno
Where RptProcedureID=:RptProcedureID
And OPTimeStamp=:OPTimeStamp");
OracleParameter[] rptProcedureParas = new OracleParameter[] {
new OracleParameter(":RptProcedureCode",OracleDbType.NVarchar2,
rptProcedureEntity.RptProcedureCode,ParameterDirection.Input),
new OracleParameter(":RptProcedureName",OracleDbType.NVarchar2,
rptProcedureEntity.RptProcedureName,ParameterDirection.Input),
new OracleParameter(":RptProcedureType",OracleDbType.NVarchar2,
rptProcedureEntity.RptProcedureTpye,ParameterDirection.Input),
new OracleParameter(":UpdateUserID",OracleDbType.Int32,
userInfo.UserID,ParameterDirection.Input),
new OracleParameter(":RptProcedureID",OracleDbType.Int32,
rptProcedureEntity.RptProcedureID,ParameterDirection.Input),
new OracleParameter(":OPTimeStamp",OracleDbType.TimeStamp,
rptProcedureEntity.OPTimeStamp,ParameterDirection.Input),
new OracleParameter(":displayno",OracleDbType.Int32,
rptProcedureEntity.DisplayNo,ParameterDirection.Input),
};
//连接数据库并返回结果
RowsCount = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), rptProcedureParas);
#endregion
if (RowsCount == 1)
{
if (dsSourse != null)
{
#region 编辑数据来源工序信息
DataTable dtrptSProcedure = dsSourse.Tables[Constant.INT_IS_ZERO];
foreach (DataRow drFor in dtrptSProcedure.Rows)
{
if (drFor.RowState == DataRowState.Added) //添加
{
sbSql.Clear();
//获得序列
sbSql.Append("select SEQ_MST_RPTSPROCEDURE_ID.NEXTVAL from dual");
int rptSProcedureId = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
//添加信息
sbSql.Clear();
sbSql.Append(@"Insert into TP_MST_RptSProcedure
(RptSProcedureID,ProcedureID,
ProcedureCode,ProcedureName,
RptProcedureID,
CreateUserID)
Values
(:RptSProcedureID,:ProcedureID,:ProcedureCode,
:ProcedureName,:RptProcedureID,:CreateUserID)");
OracleParameter[] rptSProcedureParas = new OracleParameter[] {
new OracleParameter(":RptSProcedureID",OracleDbType.Int32,
rptSProcedureId,ParameterDirection.Input),
new OracleParameter(":ProcedureID",OracleDbType.Int32,
drFor["ProcedureID"],ParameterDirection.Input),
new OracleParameter(":ProcedureCode",OracleDbType.NVarchar2,
drFor["ProcedureCode"],ParameterDirection.Input),
new OracleParameter(":ProcedureName",OracleDbType.NVarchar2,
drFor["ProcedureName"],ParameterDirection.Input),
new OracleParameter(":RptProcedureID",OracleDbType.Int32,
rptProcedureEntity.RptProcedureID,ParameterDirection.Input),
new OracleParameter(":CreateUserID",OracleDbType.Int32,
userInfo.UserID,ParameterDirection.Input),
};
//连接数据库并返回结果
RowsCount += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), rptSProcedureParas);
}
else if (drFor.RowState == DataRowState.Modified)
{
//修改报表数据来源信息
sbSql.Clear();
sbSql.Append(@"Update TP_MST_RptSProcedure
Set ProcedureID=:ProcedureID,
ProcedureCode=:ProcedureCode,
ProcedureName=:ProcedureName
Where RptSProcedureID=:RptSProcedureID");
OracleParameter[] rptProcedureUpdateParas = new OracleParameter[] {
new OracleParameter(":ProcedureID",OracleDbType.Int32,
drFor["ProcedureID"],ParameterDirection.Input),
new OracleParameter(":ProcedureCode",OracleDbType.NVarchar2,
drFor["ProcedureCode"],ParameterDirection.Input),
new OracleParameter(":ProcedureName",OracleDbType.NVarchar2,
drFor["ProcedureName"],ParameterDirection.Input),
new OracleParameter(":RptSProcedureID",OracleDbType.Int32,
drFor["RptSProcedureID"],ParameterDirection.Input),
};
//连接数据库并返回结果
RowsCount = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), rptProcedureUpdateParas);
}
else if (drFor.RowState == DataRowState.Deleted)
{
sbSql.Clear();
sbSql.Append(@"Delete From TP_MST_RptSProcedure
Where RptSProcedureID = :RptSProcedureID
");
OracleParameter[] rptProcedureDelParas = new OracleParameter[] {
new OracleParameter(":RptSProcedureID",OracleDbType.Int32,
drFor["RptSProcedureID",DataRowVersion.Original],ParameterDirection.Input),
};
RowsCount += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), rptProcedureDelParas);
}
}
#endregion
#region 编辑数据统计工序信息
DataTable dtrptTProcedure = dsSourse.Tables[Constant.INT_IS_ONE];
foreach (DataRow drFor in dtrptTProcedure.Rows)
{
if (drFor.RowState == DataRowState.Added) //添加
{
sbSql.Clear();
//获得序列
sbSql.Append("select SEQ_MST_RPTTPROCEDURE_ID.NEXTVAL from dual");
int rptTProcedureId = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
//添加信息
sbSql.Clear();
sbSql.Append(@"Insert into TP_MST_RptTProcedure
(RptTProcedureID,ProcedureID,
ProcedureCode,ProcedureName,
RptProcedureID,
CreateUserID)
Values
(:RptTProcedureID,:ProcedureID,:ProcedureCode,
:ProcedureName,:RptProcedureID,:CreateUserID)");
OracleParameter[] rptSProcedureParas = new OracleParameter[] {
new OracleParameter(":RptTProcedureID",OracleDbType.Int32,
rptTProcedureId,ParameterDirection.Input),
new OracleParameter(":ProcedureID",OracleDbType.Int32,
drFor["ProcedureID"],ParameterDirection.Input),
new OracleParameter(":ProcedureCode",OracleDbType.NVarchar2,
drFor["ProcedureCode"],ParameterDirection.Input),
new OracleParameter(":ProcedureName",OracleDbType.NVarchar2,
drFor["ProcedureName"],ParameterDirection.Input),
new OracleParameter(":RptProcedureID",OracleDbType.Int32,
rptProcedureEntity.RptProcedureID,ParameterDirection.Input),
new OracleParameter(":CreateUserID",OracleDbType.Int32,
userInfo.UserID,ParameterDirection.Input),
};
//连接数据库并返回结果
RowsCount += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), rptSProcedureParas);
}
else if (drFor.RowState == DataRowState.Modified)
{
//修改报表数据来源信息
sbSql.Clear();
sbSql.Append(@"Update TP_MST_RptTProcedure
Set ProcedureID=:ProcedureID,
ProcedureCode=:ProcedureCode,
ProcedureName=:ProcedureName
Where RptTProcedureID=:RptTProcedureID");
OracleParameter[] rptProcedureUpdateParas = new OracleParameter[] {
new OracleParameter(":ProcedureID",OracleDbType.Int32,
drFor["ProcedureID"],ParameterDirection.Input),
new OracleParameter(":ProcedureCode",OracleDbType.NVarchar2,
drFor["ProcedureCode"],ParameterDirection.Input),
new OracleParameter(":ProcedureName",OracleDbType.NVarchar2,
drFor["ProcedureName"],ParameterDirection.Input),
new OracleParameter(":RptTProcedureID",OracleDbType.Int32,
drFor["RptTProcedureID"],ParameterDirection.Input),
};
//连接数据库并返回结果
RowsCount = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), rptProcedureUpdateParas);
}
else if (drFor.RowState == DataRowState.Deleted)
{
sbSql.Clear();
sbSql.Append(@"Delete From TP_MST_RptTProcedure
Where RptTProcedureID = :RptTProcedureID
");
OracleParameter[] rptProcedureDelParas = new OracleParameter[] {
new OracleParameter(":RptTProcedureID",OracleDbType.Int32,
drFor["RptTProcedureID",DataRowVersion.Original],ParameterDirection.Input),
};
RowsCount += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), rptProcedureDelParas);
}
}
#endregion
}
}
if (RowsCount == 0)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
else
{
oracleTrConn.Commit();
oracleTrConn.Disconnect();
}
return RowsCount;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 停用报表数据来源
///
/// 新建实体
/// 当前用户信息
///
/// 受影响行数
///
public static int StopRptProcedure(RptProcedureEntity rptProcedureEntity, SUserInfo userInfo)
{
int RowsCount = 0;
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
ServiceResultEntity srEntity = new ServiceResultEntity();
try
{
oracleTrConn.Connect();
StringBuilder sbSql = new StringBuilder();
#region 修改报表数据来源信息
//修改报表数据来源信息
sbSql.Clear();
sbSql.Append(@"Update TP_MST_RptProcedure
Set ValueFlag = 0
Where RptProcedureID=:RptProcedureID
And OPTimeStamp=:OPTimeStamp");
OracleParameter[] rptDelParas = new OracleParameter[] {
new OracleParameter(":RptProcedureID",OracleDbType.NVarchar2,
rptProcedureEntity.RptProcedureID,ParameterDirection.Input),
new OracleParameter(":OPTimeStamp",OracleDbType.TimeStamp,
rptProcedureEntity.OPTimeStamp,ParameterDirection.Input),
};
//连接数据库并返回结果
RowsCount = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), rptDelParas);
#endregion
if (RowsCount == 1)
{
#region 删除相关工序信息
sbSql.Clear();
sbSql.Append(@"Delete From TP_MST_RptSProcedure
Where RptProcedureID = :RptProcedureID
");
OracleParameter[] DeleteRptSParas = new OracleParameter[] {
new OracleParameter(":RptProcedureID",OracleDbType.Int32,
rptProcedureEntity.RptProcedureID,ParameterDirection.Input),
};
RowsCount += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), DeleteRptSParas);
sbSql.Clear();
sbSql.Append(@"Delete From TP_MST_RptTProcedure
Where RptProcedureID = :RptProcedureID
");
OracleParameter[] DeleteRPTTParas = new OracleParameter[] {
new OracleParameter(":RptProcedureID",OracleDbType.Int32,
rptProcedureEntity.RptProcedureID,ParameterDirection.Input),
};
//删除质量考核产品明细数据(右边对应列数据)
RowsCount += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), DeleteRPTTParas);
#endregion
}
//如果插入失败则回滚事务并关闭
if (RowsCount == 0)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
else
{
oracleTrConn.Commit();
oracleTrConn.Disconnect();
}
return RowsCount;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
srEntity.Exception = ex;
srEntity.Status = Constant.ServiceResultStatus.SystemError;
return RowsCount;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
#endregion
#region 私有方法
///
/// 获取上级组织机构中已经存在的组织机构数量
///
/// 事务
/// 上级部门Code
/// 帐套ID
/// int组织机构数量
private static int GetOrgLevelMax(IDBTransaction oracleTrConn,
string parentCode, string AccountID)
{
try
{
string sqlString = "SELECT MAX(OrganizationCode)"
+ " FROM TP_MST_Organization"
+ " WHERE OrganizationCode LIKE '" + parentCode + "%'"
+ " AND LENGTH(OrganizationCode) = LENGTH('" + parentCode + "') + 3"
+ " AND AccountID = " + AccountID;
DataSet returnDataset = oracleTrConn.GetSqlResultToDs(sqlString);
int orgCount = 0;
if (returnDataset.Tables[0].Rows.Count != 0)
{
if (!string.IsNullOrEmpty(returnDataset.Tables[0].Rows[0][0] + ""))
{
string orgCode = Convert.ToString(returnDataset.Tables[0].Rows[0][0]);
string tmpCode = orgCode.Substring(orgCode.Length - 3);
orgCount = Convert.ToInt32(tmpCode);
}
}
return orgCount;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 判断该组织机构下是否存在员工
///
/// 事务
/// 组织机构ID
/// 帐套ID
///
/// true:存在
/// false:不存在
///
private static bool IsExistStaff(IDBTransaction oracleTrConn,
int organizationID, string AccountID)
{
try
{
string sqlString = "SELECT STAFFID FROM TP_HR_STAFF"
+ " WHERE OrganizationID = " + organizationID;
DataSet returnDataset = oracleTrConn.GetSqlResultToDs(sqlString);
if (returnDataset != null
&& returnDataset.Tables.Count > 0
&& returnDataset.Tables[0].Rows.Count > 0)
{
return true;
}
return false;
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
///
/// 保存缺陷类别数据
///
/// 用户基本信息
/// 缺陷类别数据
/// int
///
/// 2014.09.10 任海 新建
///
public static int SaveDefectTypeData(DataTable dataDefectData, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (dataDefectData == null && dataDefectData.Rows.Count < Constant.INT_IS_ZERO)
{
return 0;
}
int returnResult = 1;
oracleTrConn.Connect();
#region 对要保存的产品缺陷数据进行必要的验证
foreach (DataRow dataRow in dataDefectData.Rows)
{
// 新建产品缺陷
if (dataRow.RowState == DataRowState.Added)
{
#region 判断是否存在相同的产品缺陷类别名称
string sqlString = "SELECT Count(*) FROM TP_MST_DefectType WHERE AccountID = :AccountID and DefectTypeName =:DefectTypeName ";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":DefectTypeName",dataRow["DefectTypeName"].ToString())
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlString, oracleParameter);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult =-1;
break;
}
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 判断是否存在相同的产品缺陷类别名称
string sqlStrings = "SELECT Count(*) FROM TP_MST_DefectType WHERE AccountID = :AccountID and DefectTypeName = :DefectTypeName and DefectTypeID <> :DefectTypeID";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":DefectTypeName",dataRow["DefectTypeName"]),
new OracleParameter(":DefectTypeID",dataRow["DefectTypeID"])
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlStrings, oracleParameters);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = -1;
break;
}
#endregion
}
}
if (returnResult == -1)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return returnResult;
}
#endregion
foreach (DataRow dataRow in dataDefectData.Rows)
{
// 新建产品缺陷
if (dataRow.RowState == DataRowState.Added)
{
#region 新增产品缺陷信息
#region 向TP_MST_Defect插入数据
string sqlInsertString = "INSERT INTO TP_MST_DefectType"
+ "(DefectTypeName"
+ ",DisplayNo"
+ ",Remarks"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:DefectTypeName"
+ ",:DisplayNo"
+ ",:Remarks"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":DefectTypeName",dataRow["DefectTypeName"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"]),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameter);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新产品缺陷信息
string sqlUpdateString = "UPDATE TP_MST_DefectType SET "
+ " DefectTypeName = :DefectTypeName,"
+ " DisplayNo = :DisplayNo,"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime"
+ " WHERE DefectTypeID = :DefectTypeID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":DefectTypeName",dataRow["DefectTypeName"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"]),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":DefectTypeID",dataRow["DefectTypeID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlUpdateString, oracleParameter);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除产品缺陷信息
string sqlDeleteString = "DELETE TP_MST_DefectType WHERE DefectTypeID = :DefectTypeID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":DefectTypeID",dataRow["DefectTypeID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, oracleParameter);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存用户的功能权限
///
///
public static FunRightResultEntity SaveUserFunctionRightList(DataTable userRightData, SUserInfo sUserInfo)
{
FunRightResultEntity result = new FunRightResultEntity();
result.OperationStatus = 0;
result.LicenseFunctions = "";
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
if (userRightData == null || userRightData.Rows.Count < 1)
{
return result;
}
oracleTrConn.Connect();
//#region 删除数据
//string sqlString1 = "DELETE TP_MST_UserRight WHERE UserID = :pUserID";
//Oracle.DataAccess.Client.OracleParameter[] paras1 = new Oracle.DataAccess.Client.OracleParameter[]
// {
// new Oracle.DataAccess.Client.OracleParameter(":pUserID", OracleDbType.Int32, userID, ParameterDirection.Input)
// };
//#endregion
//result.OperationStatus += oracleTrConn.ExecuteNonQuery(sqlString1, paras1);
#region 增加新的数据
// 对现有功能权限进行遍历
foreach (DataRow dataRow in userRightData.Rows)
{
if (dataRow.RowState == DataRowState.Added)
{
string sqlString2 = "INSERT INTO TP_MST_UserRight "
+ "(UserID"
+ ",FunctionCode"
+ ",CreateUserID)"
+ " VALUES "
+ "(:pUserID"
+ ",:pFunctionCode"
+ ",:pCreateUserID)";
Oracle.DataAccess.Client.OracleParameter[] paras2 = new Oracle.DataAccess.Client.OracleParameter[]
{
new Oracle.DataAccess.Client.OracleParameter(":pUserID", OracleDbType.Int32, dataRow["UserID"], ParameterDirection.Input),
new Oracle.DataAccess.Client.OracleParameter(":pFunctionCode",OracleDbType.Varchar2, dataRow["FunctionCode"].ToString(), ParameterDirection.Input),
new Oracle.DataAccess.Client.OracleParameter(":pCreateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input)
};
result.OperationStatus += oracleTrConn.ExecuteNonQuery(sqlString2, paras2);
}
else if (dataRow.RowState == DataRowState.Deleted)
{
string sqlDelete = "delete from TP_MST_UserRight where UserID=:UserID and FunctionCode=:FunctionCode";
Oracle.DataAccess.Client.OracleParameter[] paras2Delete = new Oracle.DataAccess.Client.OracleParameter[]
{
new Oracle.DataAccess.Client.OracleParameter(":UserID", OracleDbType.Int32, dataRow["UserID",DataRowVersion.Original], ParameterDirection.Input),
new Oracle.DataAccess.Client.OracleParameter(":FunctionCode",OracleDbType.Varchar2, dataRow["FunctionCode",DataRowVersion.Original].ToString(), ParameterDirection.Input),
};
result.OperationStatus += oracleTrConn.ExecuteNonQuery(sqlDelete, paras2Delete);
}
}
#endregion
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return result;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 用户范围权限保存
///
/// 用户权限记录集
/// 用户ID
/// 用户基本信息
/// int
public static int SaveUserRightList(DataTable userRightData, SUserInfo sUserInfo)
{
int returnRowCount = 0;//返回影响行数
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
oracleTrConn.Connect();
foreach (DataRow dataRow in userRightData.Rows)
{
if (dataRow.RowState == DataRowState.Added)
{
if (Convert.ToInt32(dataRow["PurviewType"]) != -99)
{
string sqlString2 = "INSERT INTO TP_MST_UserPurview"
+ "(UserID"
+ " ,PurviewID"
+ " ,PurviewType "
+ " ,CreateUserID) "
+ " VALUES "
+ "(:UserID"
+ " ,:PurviewID"
+ " ,:PurviewType"
+ " ,:CreateUserID) ";
Oracle.DataAccess.Client.OracleParameter[] paras2 = new Oracle.DataAccess.Client.OracleParameter[]
{
new Oracle.DataAccess.Client.OracleParameter(":UserID",Convert.ToInt32(dataRow["UserID"])),
new Oracle.DataAccess.Client.OracleParameter(":PurviewID", Convert.ToInt32(dataRow["PurviewID"])),
new Oracle.DataAccess.Client.OracleParameter(":PurviewType",Convert.ToInt32(dataRow["PurviewType"])),
new Oracle.DataAccess.Client.OracleParameter(":CreateUserID",sUserInfo.UserID),
};
returnRowCount += oracleTrConn.ExecuteNonQuery(sqlString2, paras2);
}
}
else if (dataRow.RowState == DataRowState.Deleted)
{
string sqlDelete = "delete from TP_MST_UserPurview where UserID=:UserID and PurviewID=:PurviewID and PurviewType=:PurviewType";
Oracle.DataAccess.Client.OracleParameter[] paras2Delete = new Oracle.DataAccess.Client.OracleParameter[]
{
new Oracle.DataAccess.Client.OracleParameter(":UserID", OracleDbType.Int32, dataRow["UserID",DataRowVersion.Original], ParameterDirection.Input),
new Oracle.DataAccess.Client.OracleParameter(":PurviewID",OracleDbType.Int32, dataRow["PurviewID",DataRowVersion.Original].ToString(), ParameterDirection.Input),
new Oracle.DataAccess.Client.OracleParameter(":PurviewType",OracleDbType.Int32, dataRow["PurviewType",DataRowVersion.Original].ToString(), ParameterDirection.Input),
};
returnRowCount += oracleTrConn.ExecuteNonQuery(sqlDelete, paras2Delete);
}
}
//// 顺序插入现有的权限数据
//for (int i = 0; i < userRightData.Rows.Count; i++)
//{
// // 对每一种权限进行遍历
// foreach (DataRow dataRow in userRightData.Tables[i].Rows)
// {
// if (Convert.ToBoolean(dataRow["RightFlag"]))
// {
// sql = "INSERT INTO TP_MST_UserPurview"
// + "(UserID"
// + " ,PurviewID"
// + " ,PurviewType "
// + " ,CreateUserID) "
// + " VALUES "
// + "(:UserID"
// + " ,:PurviewID"
// + " ,:PurviewType"
// + " ,:CreateUserID) ";
// paras = new Oracle.DataAccess.Client.OracleParameter[]
// {
// new Oracle.DataAccess.Client.OracleParameter(":UserID",userID),
// new Oracle.DataAccess.Client.OracleParameter(":PurviewID", Convert.ToInt32(dataRow["PurviewID"])),
// new Oracle.DataAccess.Client.OracleParameter(":PurviewType",Convert.ToInt32(dataRow["PurviewType"])),
// new Oracle.DataAccess.Client.OracleParameter(":CreateUserID",sUserInfo.UserID),
// };
// returnRowCount += oracleTrConn.ExecuteNonQuery(sql, paras);
// }
// }
//}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnRowCount;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存商标数据
///
/// 用户基本信息
/// 商标数据
/// int
///
/// 2015.11.12 王鑫 新建
///
public static int SaveLogoData(DataTable datatLogoData, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (datatLogoData == null && datatLogoData.Rows.Count < Constant.INT_IS_ZERO)
{
return Constant.INT_IS_THREE;
}
int returnResult = Constant.INT_IS_TWO;
oracleTrConn.Connect();
#region 对要保存的商标数据进行必要的验证
foreach (DataRow dataRow in datatLogoData.Rows)
{
// 新建工种
if (dataRow.RowState == DataRowState.Added)
{
#region 判断是否存在相同的商标代码
string sqlString = "SELECT Count(*) FROM tp_mst_logo WHERE AccountID = :AccountID and LogoCode =:LogoCode ";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":LogoCode",dataRow["LogoCode"].ToString())
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlString, oracleParameter);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 判断是否存在相同的商标代码
string sqlStrings = "SELECT Count(*) FROM tp_mst_logo WHERE AccountID = :AccountID and LogoCode = :LogoCode and LogoID <> :LogoID";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":LogoCode",dataRow["LogoCode"]),
new OracleParameter(":LogoID",dataRow["LogoID"])
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlStrings, oracleParameters);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
}
if (returnResult == Constant.INT_IS_ONE)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return returnResult;
}
#endregion
foreach (DataRow dataRow in datatLogoData.Rows)
{
// 新建工种
if (dataRow.RowState == DataRowState.Added)
{
#region 新增工种信息
#region 向商标插入数据
string sqlInsertString = "INSERT INTO TP_MST_Logo "
+ "(LogoCode"
+ ",LogoName"
+ ",Remarks"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID,isdefault,displayno, TagCode)"
+ " VALUES "
+ "(:LogoCode"
+ ",:LogoName"
+ ",:Remarks"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID,:isdefault,:displayno,:TagCode)";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":LogoCode",dataRow["LogoCode"].ToString()),
new OracleParameter(":LogoName",dataRow["LogoName"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID),
new OracleParameter(":TagCode",dataRow["TagCode"].ToString()),
new OracleParameter(":isdefault",dataRow["isdefault"].ToString()==""?"0":dataRow["isdefault"].ToString()),
new OracleParameter(":displayno",dataRow["displayno"].ToString()==""?"1":dataRow["displayno"].ToString()),
};
oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameters);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新商标信息
string sqlUpdateString = "UPDATE TP_MST_Logo SET "
+ " LogoName = :LogoName,"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime,"
+ " isdefault = :isdefault,"
+ " TagCode = :TagCode,"
+ " displayno = :displayno"
+ " WHERE LogoID = :LogoID";
OracleParameter[] oracleParametere = new OracleParameter[]
{
new OracleParameter(":LogoName",dataRow["LogoName"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":LogoID",dataRow["LogoID"].ToString()),
new OracleParameter(":TagCode",dataRow["TagCode"].ToString()),
new OracleParameter(":isdefault",dataRow["isdefault"].ToString()==""?"0":dataRow["isdefault"].ToString()),
new OracleParameter(":displayno",dataRow["displayno"].ToString()==""?"1":dataRow["displayno"].ToString()),
};
oracleTrConn.ExecuteNonQuery(sqlUpdateString, oracleParametere);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除商标信息
string sqlDeleteString = "DELETE TP_MST_Logo WHERE LogoID = :LogoID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":LogoID",dataRow["LogoID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, oracleParameter);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存缺陷扣罚数据
///
/// 用户基本信息
/// 缺陷扣罚数据
/// int
///
/// 2016.1.5 王鑫 新建
///
public static int SaveDefectFineData(DataTable dataDefectFineData, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (dataDefectFineData == null && dataDefectFineData.Rows.Count < Constant.INT_IS_ZERO)
{
return Constant.INT_IS_THREE;
}
int returnResult = Constant.INT_IS_TWO;
oracleTrConn.Connect();
#region 对要保存的工种数据进行必要的验证
foreach (DataRow dataRow in dataDefectFineData.Rows)
{
// 新建缺陷扣罚
if (dataRow.RowState == DataRowState.Added)
{
#region 判断是否存在相同的缺陷扣罚代码
string sqlString = "SELECT Count(*) FROM TP_MST_DefectFine WHERE AccountID = :AccountID and DefectFineCode =:DefectFineCode ";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":DefectFineCode",dataRow["DefectFineCode"].ToString())
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlString, oracleParameter);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 判断是否存在相同的缺陷扣罚代码
string sqlStrings = "SELECT Count(*) FROM TP_MST_DefectFine WHERE AccountID = :AccountID and DefectFineCode = :DefectFineCode and DefectFineID <> :DefectFineID";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":DefectFineCode",dataRow["DefectFineCode"]),
new OracleParameter(":DefectFineID",dataRow["DefectFineID"])
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlStrings, oracleParameters);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
}
if (returnResult == Constant.INT_IS_ONE)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return returnResult;
}
#endregion
foreach (DataRow dataRow in dataDefectFineData.Rows)
{
// 新建工种
if (dataRow.RowState == DataRowState.Added)
{
#region 新增工种信息
#region 向T_MST_Jobs插入数据
string sqlInsertString = "INSERT INTO TP_MST_DefectFine "
+ "(DefectFineCode"
+ ",DisplayNo"
+ ",Remarks"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:DefectFineCode"
+ ",:DisplayNo"
+ ",:Remarks"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":DefectFineCode",dataRow["DefectFineCode"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameters);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新工种信息
string sqlUpdateString = "UPDATE TP_MST_DefectFine SET "
+ " DefectFineCode = :DefectFineCode,"
+ " DisplayNo = :DisplayNo,"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime"
+ " WHERE DefectFineID = :DefectFineID";
OracleParameter[] oracleParametere = new OracleParameter[]
{
new OracleParameter(":DefectFineCode",dataRow["DefectFineCode"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":DefectFineID",dataRow["DefectFineID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlUpdateString, oracleParametere);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除工种信息
string sqlDeleteString = "DELETE TP_MST_DefectFine WHERE DefectFineID = :DefectFineID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":DefectFineID",dataRow["DefectFineID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, oracleParameter);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存缺陷扣除数据
///
/// 用户基本信息
/// 缺陷扣除数数据
/// int
///
/// 2016.1.5 王鑫 新建
///
public static int SaveDefectDeduction(DataTable dataDefectDeduction, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (dataDefectDeduction == null && dataDefectDeduction.Rows.Count < Constant.INT_IS_ZERO)
{
return Constant.INT_IS_THREE;
}
int returnResult = Constant.INT_IS_TWO;
oracleTrConn.Connect();
#region 对要保存的数据进行必要的验证
foreach (DataRow dataRow in dataDefectDeduction.Rows)
{
// 新建缺陷扣除数
if (dataRow.RowState == DataRowState.Added)
{
#region 判断是否存在相同的缺陷除数代码
string sqlString = "SELECT Count(*) FROM TP_MST_DefectDeduction WHERE AccountID = :AccountID and DefectDeductionNum =:DefectDeductionNum ";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":DefectDeductionNum",dataRow["DefectDeductionNum"].ToString())
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlString, oracleParameter);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 判断是否存在相同的缺陷扣罚代码
string sqlStrings = "SELECT Count(*) FROM TP_MST_DefectDeduction WHERE AccountID = :AccountID and DefectDeductionNum = :DefectDeductionNum and DefectDeductionID <> :DefectDeductionID";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":DefectDeductionNum",dataRow["DefectDeductionNum"]),
new OracleParameter(":DefectDeductionID",dataRow["DefectDeductionID"])
};
string sqlReturnStr = oracleTrConn.GetSqlResultToStr(sqlStrings, oracleParameters);
if (!Constant.INT_IS_ZERO.ToString().Equals(sqlReturnStr))
{
returnResult = Constant.INT_IS_ONE;
break;
}
#endregion
}
}
if (returnResult == Constant.INT_IS_ONE)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return returnResult;
}
#endregion
foreach (DataRow dataRow in dataDefectDeduction.Rows)
{
// 新建工种
if (dataRow.RowState == DataRowState.Added)
{
#region 新增工种信息
#region 向T_MST_Jobs插入数据
string sqlInsertString = "INSERT INTO TP_MST_DefectDeduction "
+ "(DefectDeductionNum"
+ ",DisplayNo"
+ ",Remarks"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:DefectDeductionNum"
+ ",:DisplayNo"
+ ",:Remarks"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":DefectDeductionNum",dataRow["DefectDeductionNum"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameters);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新工种信息
string sqlUpdateString = "UPDATE TP_MST_DefectDeduction SET "
+ " DefectDeductionNum = :DefectDeductionNum,"
+ " DisplayNo = :DisplayNo,"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime"
+ " WHERE DefectDeductionID = :DefectDeductionID";
OracleParameter[] oracleParametere = new OracleParameter[]
{
new OracleParameter(":DefectDeductionNum",dataRow["DefectDeductionNum"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":DefectDeductionID",dataRow["DefectDeductionID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlUpdateString, oracleParametere);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除工种信息
string sqlDeleteString = "DELETE TP_MST_DefectDeduction WHERE DefectDeductionID = :DefectDeductionID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":DefectDeductionID",dataRow["DefectDeductionID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, oracleParameter);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存缺陷关系数据
///
/// 用户基本信息
/// 缺陷扣罚数据
/// 缺陷扣除数数据
/// int
///
/// 2016.1.5 王鑫 新建
///
public static int SaveDefectRelation(DataTable dataDefectFineRelation, DataTable dataDefectDeductionRelation, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
int returnResult = Constant.INT_IS_ZERO;
oracleTrConn.Connect();
// 删除表里的数据,重新添加
string sqlString = "delete from TP_MST_DefectFineRelation";
returnResult += oracleTrConn.ExecuteNonQuery(sqlString);
sqlString = "delete from TP_MST_DefectDeductionRelation";
returnResult += oracleTrConn.ExecuteNonQuery(sqlString);
//
// 插入缺陷扣罚数据
foreach (DataRow dataRow in dataDefectFineRelation.Rows)
{
if (dataRow.RowState != DataRowState.Deleted)
{
string sqlExists = "select 1 from TP_MST_DefectFineRelation where DefectID=:DefectID and DefectFineID=:DefectFineID";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":DefectID",dataRow["DefectID"].ToString()),
new OracleParameter(":DefectFineID",dataRow["DefectFineID"].ToString()),
};
DataSet ds = oracleTrConn.GetSqlResultToDs(sqlExists, oracleParameters);
if (ds != null && ds.Tables[0].Rows.Count == 0)
{
string sqlInsertString = "INSERT INTO TP_MST_DefectFineRelation "
+ "(DefectID"
+ ",DefectFineID"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:DefectID"
+ ",:DefectFineID"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
oracleParameters = new OracleParameter[]
{
new OracleParameter(":DefectID",dataRow["DefectID"].ToString()),
new OracleParameter(":DefectFineID",dataRow["DefectFineID"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameters);
}
}
}
// 插入缺陷扣除数数据
foreach (DataRow dataRow in dataDefectDeductionRelation.Rows)
{
if (dataRow.RowState != DataRowState.Deleted)
{
string sqlExists = "select 1 from TP_MST_DefectDeductionRelation where DefectID=:DefectID and DefectDeductionID=:DefectDeductionID";
OracleParameter[] oracleParameters = new OracleParameter[]
{
new OracleParameter(":DefectID",dataRow["DefectID"].ToString()),
new OracleParameter(":DefectDeductionID",dataRow["DefectDeductionID"].ToString()),
};
DataSet ds = oracleTrConn.GetSqlResultToDs(sqlExists, oracleParameters);
if (ds != null && ds.Tables[0].Rows.Count == 0)
{
string sqlInsertString = "INSERT INTO TP_MST_DefectDeductionRelation "
+ "(DefectID"
+ ",DefectDeductionID"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:DefectID"
+ ",:DefectDeductionID"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
oracleParameters = new OracleParameter[]
{
new OracleParameter(":DefectID",dataRow["DefectID"].ToString()),
new OracleParameter(":DefectDeductionID",dataRow["DefectDeductionID"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameters);
}
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存半成品缺陷数据
///
/// 缺陷数据
/// 用户基本信息
/// int
///
/// 2016.06.22 王鑫 新建
///
public static int SaveSemicheckDefect(DataTable dataDefectData, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (dataDefectData == null && dataDefectData.Rows.Count < 0)
{
return 3;
}
int intResult = 2;
oracleTrConn.Connect();
#region 对要保存的帐套数据进行必要的验证
foreach (DataRow dataRow in dataDefectData.Rows)
{
// 新建缺陷位置
if (dataRow.RowState == DataRowState.Added)
{
#region 判断是否存在相同的位置代码
string sqlString1 = "SELECT Count(*) FROM tp_mst_semicheckdefect WHERE AccountID = :AccountID and DefectCode =:DefectCode ";
OracleParameter[] parmeters1 = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":DefectCode",dataRow["DefectCode"].ToString())
};
string strTemp1 = oracleTrConn.GetSqlResultToStr(sqlString1, parmeters1);
if (strTemp1 != "0")
{
intResult = 1;
break;
}
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 判断是否存在相同的位置代码
string sqlString2 = "SELECT Count(*) FROM tp_mst_semicheckdefect WHERE AccountID = :AccountID and DefectCode = :DefectCode and DefectID <> :DefectID";
OracleParameter[] parmeters2 = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":DefectCode",dataRow["DefectCode"]),
new OracleParameter(":DefectID",dataRow["DefectID"])
};
string strTemp1 = oracleTrConn.GetSqlResultToStr(sqlString2, parmeters2);
if (strTemp1 != "0")
{
intResult = 1;
break;
}
#endregion
}
}
if (intResult == 1)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return intResult;
}
#endregion
//string accountID = ""; // 存储新插入账套ID
//string userID = ""; //用户ID
foreach (DataRow dataRow in dataDefectData.Rows)
{
// 新建缺陷
if (dataRow.RowState == DataRowState.Added)
{
#region 新增缺陷信息
#region 向tp_mst_semicheckdefect插入数据
string sqlString1 = "INSERT INTO tp_mst_semicheckdefect "
+ "(DefectCode"
+ ",DefectName"
+ ",Remarks"
+ ",DisplayNo"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:DefectCode"
+ ",:DefectName"
+ ",:Remarks"
+ ",:DisplayNo"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
OracleParameter[] parmeters1 = new OracleParameter[]
{
new OracleParameter(":DefectCode",dataRow["DefectCode"].ToString()),
new OracleParameter(":DefectName",dataRow["DefectName"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"]),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlString1, parmeters1);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新缺陷信息
string sqlString = "UPDATE tp_mst_semicheckdefect SET "
+ " DefectCode = :DefectCode,"
+ " DefectName = :DefectName,"
+ " Remarks = :Remarks,"
+ " DisplayNo = :DisplayNo,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime"
+ " WHERE DefectID = :DefectID";
OracleParameter[] parmeters1 = new OracleParameter[]
{
new OracleParameter(":DefectCode",dataRow["DefectCode"].ToString()),
new OracleParameter(":DefectName",dataRow["DefectName"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"]),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":DefectID",dataRow["DefectID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlString, parmeters1);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除缺陷信息
string sqlDeleteString = "DELETE tp_mst_semicheckdefect WHERE DefectID = :DefectID";
OracleParameter[] parmeters2 = new OracleParameter[]
{
new OracleParameter(":DefectID",dataRow["DefectID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, parmeters2);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return intResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存半成品缺陷位置数据
///
/// 缺陷数据
/// 用户基本信息
/// int
///
/// 2016.06.23 王鑫 新建
///
public static int SaveScdefectPosition(DataTable dataDefectData, SUserInfo sUserInfo)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (dataDefectData == null && dataDefectData.Rows.Count < 0)
{
return 3;
}
int intResult = 2;
oracleTrConn.Connect();
#region 对要保存的帐套数据进行必要的验证
foreach (DataRow dataRow in dataDefectData.Rows)
{
// 新建缺陷位置
if (dataRow.RowState == DataRowState.Added)
{
#region 判断是否存在相同的位置代码
string sqlString1 = "SELECT Count(*) FROM tp_mst_scdefectposition WHERE AccountID = :AccountID and DefectPositionCode =:DefectPositionCode ";
OracleParameter[] parmeters1 = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":DefectPositionCode",dataRow["DefectPositionCode"].ToString())
};
string strTemp1 = oracleTrConn.GetSqlResultToStr(sqlString1, parmeters1);
if (strTemp1 != "0")
{
intResult = 1;
break;
}
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 判断是否存在相同的位置代码
string sqlString2 = "SELECT Count(*) FROM tp_mst_scdefectposition WHERE AccountID = :AccountID and DefectPositionCode = :DefectPositionCode and DefectPositionID <> :DefectPositionID";
OracleParameter[] parmeters2 = new OracleParameter[]
{
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":DefectPositionCode",dataRow["DefectPositionCode"]),
new OracleParameter(":DefectPositionID",dataRow["DefectPositionID"])
};
string strTemp1 = oracleTrConn.GetSqlResultToStr(sqlString2, parmeters2);
if (strTemp1 != "0")
{
intResult = 1;
break;
}
#endregion
}
}
if (intResult == 1)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
return intResult;
}
#endregion
//string accountID = ""; // 存储新插入账套ID
//string userID = ""; //用户ID
foreach (DataRow dataRow in dataDefectData.Rows)
{
// 新建缺陷位置
if (dataRow.RowState == DataRowState.Added)
{
#region 新增缺陷信息
#region 向tp_mst_scdefectposition插入数据
string sqlString1 = "INSERT INTO tp_mst_scdefectposition "
+ "(DefectPositionCode"
+ ",DefectPositionName"
+ ",Remarks"
+ ",DisplayNo"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:DefectPositionCode"
+ ",:DefectPositionName"
+ ",:Remarks"
+ ",:DisplayNo"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
OracleParameter[] parmeters1 = new OracleParameter[]
{
new OracleParameter(":DefectPositionCode",dataRow["DefectPositionCode"].ToString()),
new OracleParameter(":DefectPositionName",dataRow["DefectPositionName"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"]),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlString1, parmeters1);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新缺陷信息
string sqlString = "UPDATE tp_mst_scdefectposition SET "
+ " DefectPositionCode = :DefectPositionCode,"
+ " DefectPositionName = :DefectPositionName,"
+ " Remarks = :Remarks,"
+ " DisplayNo = :DisplayNo,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime"
+ " WHERE DefectPositionID = :DefectPositionID";
OracleParameter[] parmeters1 = new OracleParameter[]
{
new OracleParameter(":DefectPositionCode",dataRow["DefectPositionCode"].ToString()),
new OracleParameter(":DefectPositionName",dataRow["DefectPositionName"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"]),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":DefectPositionID",dataRow["DefectPositionID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlString, parmeters1);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除缺陷信息
string sqlDeleteString = "DELETE tp_mst_scdefectposition WHERE DefectPositionID = :DefectPositionID";
OracleParameter[] parmeters2 = new OracleParameter[]
{
new OracleParameter(":DefectPositionID",dataRow["DefectPositionID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, parmeters2);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return intResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存工艺数据
///
/// 用户基本信息
/// 工艺数据
/// int
///
/// 2016.07.19 王鑫 新建
///
public static int SaveTecDepData(SUserInfo sUserInfo, DataTable datatData)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (datatData == null && datatData.Rows.Count < Constant.INT_IS_ZERO)
{
return Constant.INT_IS_THREE;
}
int returnResult = Constant.INT_IS_TWO;
oracleTrConn.Connect();
foreach (DataRow dataRow in datatData.Rows)
{
// 新建工艺
if (dataRow.RowState == DataRowState.Added)
{
#region 新增窑炉信息
#region 向T_MST_Kiln插入数据
string sqlInsertString = "INSERT INTO TP_MST_TecDep "
+ "(Name"
+ ",TypeFlag"
+ ",TechnologyFlag"
+ ",DisplayNo"
+ ",Remarks"
+ ",AccountID"
+ ",ValueFlag"
+ ",CreateTime"
+ ",UpdateTime"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:Name"
+ ",:TypeFlag"
+ ",:TechnologyFlag"
+ ",:DisplayNo"
+ ",:Remarks"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",sysdate"
+ ",sysdate"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":Name",dataRow["Name"].ToString()),
new OracleParameter(":TypeFlag",dataRow["TypeFlag"].ToString()),
new OracleParameter(":TechnologyFlag",dataRow["TechnologyFlag"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"].ToString()==""?"0":dataRow["DisplayNo"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameter);
#endregion
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新窑炉信息
string sqlUpdateString = "UPDATE TP_MST_TecDep SET "
+ " Name = :Name,"
+ " TypeFlag = :TypeFlag,"
+ " TechnologyFlag = :TechnologyFlag,"
+ " DisplayNo = :DisplayNo,"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID,"
+ " UpdateTime = :UpdateTime"
+ " WHERE ID = :ID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":Name",dataRow["Name"].ToString()),
new OracleParameter(":TypeFlag",dataRow["TypeFlag"].ToString()),
new OracleParameter(":TechnologyFlag",dataRow["TechnologyFlag"].ToString()),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"].ToString()==""?"0":dataRow["DisplayNo"].ToString()),
new OracleParameter(":Remarks",dataRow["Remarks"].ToString()),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"].ToString()),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":UpdateTime",DateTime.Now),
new OracleParameter(":ID",dataRow["ID"].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlUpdateString, oracleParameter);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除窑炉信息
string sqlDeleteString = "DELETE TP_MST_TecDep WHERE ID = :ID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":ID",dataRow["ID",DataRowVersion.Original].ToString())
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, oracleParameter);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return returnResult;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
}
///
/// 保存配置信息
///
/// 配置实体
/// 用户基本信息
/// 返回受影响行数
///
/// 王鑫 2016.07.19 新建
///
public static int SaveTransfer(TecDepEntity tecDepEntity, SUserInfo user)
{
int returnRows = 0;
int detailReturn = 0;
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
oracleTrConn.Connect();
// 获得账务日期
// DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, user);
if (tecDepEntity.PTID == 0)
{
//获取配置主表序列ID
StringBuilder sbSql = new StringBuilder();
sbSql.Append("select SEQ_MST_RPT_Transfer_ID.nextval from dual");
int id = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
sbSql.Clear();
//添加主表配置信息
sbSql.Append("Insert into TP_MST_RPT_Transfer");
sbSql.Append("(PTID,Name,LineID,DisplayNo,GroutingDateBegin,");
sbSql.Append(" Remarks,AccountID,ValueFlag,");
sbSql.Append("CreateUserID,UpdateUserID)");
sbSql.Append("values(:PTID,:Name,:LineID,:DisplayNo,:GroutingDateBegin,");
sbSql.Append(":Remarks,:AccountID,:ValueFlag,");
sbSql.Append(":CreateUserID,:UpdateUserID)");
OracleParameter[] Paras = new OracleParameter[] {
new OracleParameter(":PTID",OracleDbType.Int32,
id,ParameterDirection.Input),
new OracleParameter(":Name",OracleDbType.NVarchar2,
tecDepEntity.Name,ParameterDirection.Input),
new OracleParameter(":LineID",OracleDbType.Int32,
tecDepEntity.LineID,ParameterDirection.Input),
new OracleParameter(":DisplayNo",OracleDbType.Int32,
tecDepEntity.DisplayNo,ParameterDirection.Input),
new OracleParameter(":GroutingDateBegin",OracleDbType.Date,
tecDepEntity.GroutingDateBegin,ParameterDirection.Input),
new OracleParameter(":Remarks",OracleDbType.NVarchar2,
tecDepEntity.Remarks,ParameterDirection.Input),
new OracleParameter(":AccountID",OracleDbType.Int32,
user.AccountID,ParameterDirection.Input),
new OracleParameter(":ValueFlag",OracleDbType.Int32,
tecDepEntity.ValueFlag,ParameterDirection.Input),
new OracleParameter(":CreateUserID",OracleDbType.Int32,
user.UserID,ParameterDirection.Input),
new OracleParameter(":UpdateUserID",OracleDbType.Int32,
user.UserID,ParameterDirection.Input),
};
//执行插入SQL语句
returnRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), Paras);
//此处添加明细信息(循环)
foreach (DataRow detailInfo in tecDepEntity.TransferSetting.Tables[0].Rows)
{
//获取配置明细序列索引
sbSql.Clear();
sbSql.Append("select SEQ_MST_RPT_TransferSetting_ID.nextval from dual");
int detailId = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
sbSql.Clear();
//插入配置细信息
sbSql.Append("Insert into TP_MST_RPT_TransferSetting");
sbSql.Append("(PTSID,PTID,PROCEDUREID,OUTTECDEPID,INTECDEPID,PERPROCEDUREID,AccountID,DisplayNo)");
sbSql.Append("Values(:PTSID,:PTID,:PROCEDUREID,:OUTTECDEPID,:INTECDEPID,:PERPROCEDUREID,:AccountID,:DisplayNo)");
OracleParameter[] DetailParas = new OracleParameter[] {
new OracleParameter(":PTSID",OracleDbType.Int32,
detailId,ParameterDirection.Input),
new OracleParameter(":PTID",OracleDbType.Int32,
id,ParameterDirection.Input),
new OracleParameter(":PROCEDUREID",OracleDbType.Int32,
detailInfo["PROCEDUREID"],ParameterDirection.Input),
new OracleParameter(":OUTTECDEPID",OracleDbType.Int32,
detailInfo["OUTTECDEPID"],ParameterDirection.Input),
new OracleParameter(":INTECDEPID",OracleDbType.Int32,
detailInfo["INTECDEPID"],ParameterDirection.Input),
new OracleParameter(":PERPROCEDUREID",OracleDbType.Int32,
detailInfo["PERPROCEDUREID"],ParameterDirection.Input),
new OracleParameter(":AccountID",OracleDbType.Int32,
user.AccountID,ParameterDirection.Input),
new OracleParameter(":DisplayNo",OracleDbType.Int32,
detailInfo["DisplayNo"],ParameterDirection.Input)
};
//执行插入语句并累加成功插入次数
detailReturn += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), DetailParas);
}
}
else
{
// 编辑
//更改主表配置信息
StringBuilder sbSql = new StringBuilder();
sbSql.Append("Update TP_MST_RPT_Transfer");
sbSql.Append(" Set Name=:Name,");
sbSql.Append(" LineID=:LineID,");
sbSql.Append(" DisplayNo=:DisplayNo,");
sbSql.Append(" GroutingDateBegin=:GroutingDateBegin,");
sbSql.Append(" Remarks=:Remarks,");
sbSql.Append(" ValueFlag=:ValueFlag,");
sbSql.Append(" UpdateUserID=:UpdateUserID ");
sbSql.Append(" where PTID =:PTID");
OracleParameter[] Paras = new OracleParameter[] {
new OracleParameter(":PTID",OracleDbType.Int32,
tecDepEntity.PTID,ParameterDirection.Input),
new OracleParameter(":Name",OracleDbType.NVarchar2,
tecDepEntity.Name,ParameterDirection.Input),
new OracleParameter(":LineID",OracleDbType.Int32,
tecDepEntity.LineID,ParameterDirection.Input),
new OracleParameter(":DisplayNo",OracleDbType.Int32,
tecDepEntity.DisplayNo,ParameterDirection.Input),
new OracleParameter(":GroutingDateBegin",OracleDbType.Date,
tecDepEntity.GroutingDateBegin,ParameterDirection.Input),
new OracleParameter(":Remarks",OracleDbType.NVarchar2,
tecDepEntity.Remarks,ParameterDirection.Input),
new OracleParameter(":ValueFlag",OracleDbType.Int32,
tecDepEntity.ValueFlag,ParameterDirection.Input),
new OracleParameter(":UpdateUserID",OracleDbType.Int32,
user.UserID,ParameterDirection.Input),
};
//执行插入SQL语句
returnRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), Paras);
// 删除配置明细信息
sbSql.Clear();
sbSql.Append("delete from TP_MST_RPT_TransferSetting where PTID =:PTID");
Paras = new OracleParameter[] {
new OracleParameter(":PTID",OracleDbType.Int32,
tecDepEntity.PTID,ParameterDirection.Input)
};
//执行SQL语句
returnRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), Paras);
//此处添加明细信息(循环)
foreach (DataRow detailInfo in tecDepEntity.TransferSetting.Tables[0].Rows)
{
//获取配置明细序列索引
sbSql.Clear();
sbSql.Append("select SEQ_MST_RPT_TransferSetting_ID.nextval from dual");
int detailId = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
sbSql.Clear();
//插入配置细信息
sbSql.Append("Insert into TP_MST_RPT_TransferSetting");
sbSql.Append("(PTSID,PTID,PROCEDUREID,OUTTECDEPID,INTECDEPID,PERPROCEDUREID,AccountID,DisplayNo)");
sbSql.Append("Values(:PTSID,:PTID,:PROCEDUREID,:OUTTECDEPID,:INTECDEPID,:PERPROCEDUREID,:AccountID,:DisplayNo)");
OracleParameter[] DetailParas = new OracleParameter[] {
new OracleParameter(":PTSID",OracleDbType.Int32,
detailId,ParameterDirection.Input),
new OracleParameter(":PTID",OracleDbType.Int32,
tecDepEntity.PTID,ParameterDirection.Input),
new OracleParameter(":PROCEDUREID",OracleDbType.Int32,
detailInfo["PROCEDUREID"],ParameterDirection.Input),
new OracleParameter(":OUTTECDEPID",OracleDbType.Int32,
detailInfo["OUTTECDEPID"],ParameterDirection.Input),
new OracleParameter(":INTECDEPID",OracleDbType.Int32,
detailInfo["INTECDEPID"],ParameterDirection.Input),
new OracleParameter(":PERPROCEDUREID",OracleDbType.Decimal,
detailInfo["PERPROCEDUREID"],ParameterDirection.Input),
new OracleParameter(":AccountID",OracleDbType.Int32,
user.AccountID,ParameterDirection.Input),
new OracleParameter(":DisplayNo",OracleDbType.Int32,
detailInfo["DisplayNo"],ParameterDirection.Input)
};
//执行插入语句并累加成功插入次数
detailReturn += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), DetailParas);
}
}
//如果有插入不成功的情况,回滚事务,否则提交
if (returnRows == 0 || detailReturn == 0)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
else
{
oracleTrConn.Commit();
oracleTrConn.Disconnect();
}
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
return returnRows;
}
#region 产品工序配置
///
/// 产品工序配置
///
///
///
///
public static ServiceResultEntity SetGoodsToProcedure(ClientRequestEntity cre, SUserInfo user)
{
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
ServiceResultEntity sre = new ServiceResultEntity();
try
{
oracleTrConn.Connect();
int type = (int)cre.Properties["Type"];
string sqlString = null;
// 设置产品工序
if (type == 1)
{
sqlString = "INSERT INTO TP_PC_ProcedureGoods\n" +
" (productionlineid, procedureid, NODENO, goodsid, Createuserid)\n" +
" SELECT p.productionlineid, p.procedureid, p.NODENO, g.goodsid, " + user.UserID + "\n" +
" FROM tp_pc_procedure p\n" +
" INNER JOIN (SELECT goods.goodsid\n" +
" FROM tp_mst_goods goods\n" +
" WHERE goods.goodsid IN (" + cre.Properties["GoodsIDs"] + ")) g\n" +
" ON 1 = 1\n" +
" WHERE p.valueflag = '1'\n" +
(cre.Properties["ProductionLineID"] == null ? "" : " AND p.productionlineid = " + cre.Properties["ProductionLineID"] + "\n") +
(cre.Properties["ProcedureIDs"] == null ? "" : " AND p.procedureid IN (" + cre.Properties["ProcedureIDs"] + ")\n") +
" AND NOT EXISTS (SELECT 1\n" +
" FROM TP_PC_ProcedureGoods pg\n" +
" WHERE pg.procedureid = p.procedureid\n" +
" AND pg.goodsid = g.goodsid)";
}
else
{
sqlString = "DELETE FROM TP_PC_ProcedureGoods pg\n" +
" WHERE pg.goodsid IN (" + cre.Properties["GoodsIDs"] + ")\n" +
(cre.Properties["ProductionLineID"] == null ? "" : " AND pg.productionlineid = " + cre.Properties["ProductionLineID"] + "\n") +
(cre.Properties["ProcedureIDs"] == null ? "" : " AND pg.procedureid IN (" + cre.Properties["ProcedureIDs"] + ")\n");
}
//执行插入SQL语句
int returnRows = oracleTrConn.ExecuteNonQuery(sqlString);
oracleTrConn.Commit();
oracleTrConn.Disconnect();
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
finally
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Disconnect();
}
}
return sre;
}
#endregion
#region 成型报损原因
///
/// 保存成型报损原因
///
/// 用户基本信息
/// 成型报损原因数据
/// int
///
/// 2018.03.26 周兴 新建
///
public static ServiceResultEntity SaveScrapReasonData(DataTable ScrapReasonData, SUserInfo sUserInfo)
{
ServiceResultEntity result = new ServiceResultEntity();
IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
// 检验参数的有效性
if (ScrapReasonData == null && ScrapReasonData.Rows.Count < Constant.INT_IS_ZERO)
{
result.Result = Constant.INT_IS_THREE;
return result;
}
result.Result = Constant.INT_IS_TWO;
oracleTrConn.Connect();
foreach (DataRow dataRow in ScrapReasonData.Rows)
{
// 新建
if (dataRow.RowState == DataRowState.Added)
{
#region 新增
string sqlInsertString = "INSERT INTO TP_MST_ScrapReason "
+ "(ScrapReason"
+ ",ScrapType"
+ ",DisplayNo"
+ ",Remarks"
+ ",AccountID"
+ ",ValueFlag"
+ ",UpdateUserID"
+ ",CreateUserID)"
+ " VALUES "
+ "(:ScrapReason"
+ ",:ScrapType"
+ ",:DisplayNo"
+ ",:Remarks"
+ ",:AccountID"
+ ",:ValueFlag"
+ ",:UpdateUserID"
+ ",:CreateUserID)";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":ScrapReason",dataRow["ScrapReason"] + ""),
new OracleParameter(":ScrapType",dataRow["ScrapType"] + ""),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"] + ""),
new OracleParameter(":Remarks",dataRow["Remarks"] + ""),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"] + ""),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":CreateUserID",sUserInfo.UserID)
};
oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameter);
#endregion
}
else if (dataRow.RowState == DataRowState.Modified)
{
#region 更新数据字典信息
string sqlUpdateString = "UPDATE TP_MST_ScrapReason SET "
+ " ScrapReason = :ScrapReason,"
+ " DisplayNo = :DisplayNo,"
+ " Remarks = :Remarks,"
+ " AccountID = :AccountID,"
+ " ValueFlag = :ValueFlag,"
+ " UpdateUserID = :UpdateUserID "
+ " WHERE ScrapReasonID = :ScrapReasonID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":ScrapReason",dataRow["ScrapReason"]+ ""),
new OracleParameter(":DisplayNo",dataRow["DisplayNo"]+ ""),
new OracleParameter(":Remarks",dataRow["Remarks"]+ ""),
new OracleParameter(":AccountID",sUserInfo.AccountID),
new OracleParameter(":ValueFlag",dataRow["ValueFlag"]+ ""),
new OracleParameter(":UpdateUserID",sUserInfo.UserID),
new OracleParameter(":ScrapReasonID",dataRow["ScrapReasonID"])
};
oracleTrConn.ExecuteNonQuery(sqlUpdateString, oracleParameter);
#endregion
}
else if (dataRow.RowState == DataRowState.Deleted)
{
#region 删除数据字典信息
string sqlDeleteString = "DELETE TP_MST_ScrapReason WHERE ScrapReasonID = :ScrapReasonID";
OracleParameter[] oracleParameter = new OracleParameter[]
{
new OracleParameter(":ScrapReasonID",dataRow["ScrapReasonID",DataRowVersion.Original])
};
oracleTrConn.ExecuteNonQuery(sqlDeleteString, oracleParameter);
#endregion
}
}
oracleTrConn.Commit();
oracleTrConn.Disconnect();
return result;
}
catch (Exception ex)
{
if (oracleTrConn.ConnState == ConnectionState.Open)
{
oracleTrConn.Rollback();
oracleTrConn.Disconnect();
}
throw ex;
}
}
#endregion
}
}