/*******************************************************************************
* Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
* 类的信息:
* 1.程序名称:CMNModuleLogic.cs
* 2.功能描述:共通业务处理
* 编辑履历:
* 作者 日期 版本 修改内容
* 陈晓野 2015/03/26 1.00 新建
*******************************************************************************/
using System;
using System.Collections.Generic;
using System.Data;
using Oracle.ManagedDataAccess.Client;
using Dongke.IBOSS.PRD.Basics.BaseResources;
using Dongke.IBOSS.PRD.Basics.DataAccess;
using Dongke.IBOSS.PRD.Service.DataModels;
using Dongke.IBOSS.PRD.WCF.DataModels;
using Curtain.DataAccess;
using DataBaseType = Dongke.IBOSS.PRD.Basics.DataAccess.DataBaseType;
namespace Dongke.IBOSS.PRD.Service.CMNModuleService
{
///
/// 共通业务处理
///
public class CMNModuleLogic
{
#region 获得基础数据(控件用)
#region 获得成型线类型
///
/// 获得成型线类型
///
/// 登录用户信息
/// 数据状态标识
/// DataTable
public static DataTable GetTP_MST_GMouldType(SUserInfo user, Constant.ValueFlag? valueFlag)
{
IDBConnection conn = null;
try
{
conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
conn.Open();
return CMNModuleLogic.GetTP_MST_GMouldType(conn, user, valueFlag);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (conn != null &&
conn.ConnState == ConnectionState.Open)
{
conn.Close();
}
}
}
///
/// 获得成型线类型(服务端用)
///
/// 数据库连接
/// 登录用户信息
/// 数据状态标识
/// DataTable
public static DataTable GetTP_MST_GMouldType(IDBConnection conn, SUserInfo user, Constant.ValueFlag? valueFlag)
{
List parameters = new List();
string selSql = "SELECT GMouldTypeID, GMouldTypeCode, GMouldTypeName, CanManyTimes"
+ " FROM TP_MST_GMouldType GMT"
+ " WHERE GMT.AccountID = :AccountID";
parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
if (valueFlag.HasValue)
{
selSql += " AND GMT.ValueFlag = :ValueFlag";
parameters.Add(new OracleParameter(":ValueFlag", OracleDbType.Char, (int)valueFlag.Value, ParameterDirection.Input));
}
selSql += " ORDER BY GMT.GmouldTypeCode";
DataTable dataTable = conn.GetSqlResultToDt(selSql, parameters.ToArray());
return dataTable;
}
#endregion 获得成型线类型
#region 获得注浆模具状态
///
/// 获得注浆模具状态(服务端用)
///
/// 数据库连接
/// 成型线状态
/// DataTable
public static DataTable GetTP_SYS_GMouldStatus(IDBConnection conn, bool isLineStatus = false)
{
string selSql = "SELECT GMouldStatusID, GMouldStatusName, DisplayNo"
+ " FROM TP_SYS_GMouldStatus GMS";
if (isLineStatus)
{
selSql += " WHERE GMS.LineUsedFlag = '1'";
}
selSql += " ORDER BY GMS.DisplayNo";
DataTable dataTable = conn.GetSqlResultToDt(selSql, null);
return dataTable;
}
#endregion 获得注浆模具状态
#region 获得数据字典数据
///
/// 获得数据字典数据
///
/// 登录用户信息
/// 数据状态标识
/// 数据状态标识
/// DataTable
public static DataTable GetTP_MST_DataDictionary(SUserInfo user, Constant.DictionaryType dicType, Constant.ValueFlag? valueFlag)
{
IDBConnection conn = null;
try
{
conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
conn.Open();
return CMNModuleLogic.GetTP_MST_DataDictionary(conn, user, dicType, valueFlag);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (conn != null &&
conn.ConnState == ConnectionState.Open)
{
conn.Close();
}
}
}
///
/// 获得数据字典数据(服务端用)
///
/// 数据库连接
/// 登录用户信息
/// 数据状态标识
/// 数据状态标识
/// DataTable
public static DataTable GetTP_MST_DataDictionary(IDBConnection conn, SUserInfo user, Constant.DictionaryType dicType, Constant.ValueFlag? valueFlag)
{
List parameters = new List();
string selSql = "SELECT MDD.DictionaryID, MDD.DictionaryValue, MDD.DisplayNo"
+ " FROM TP_MST_DataDictionary MDD"
+ " WHERE MDD.AccountID = :AccountID"
+ " AND MDD.DictionaryType = :DictionaryType";
parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
parameters.Add(new OracleParameter(":DictionaryType", OracleDbType.Char, dicType.ToString(), ParameterDirection.Input));
if (valueFlag.HasValue)
{
selSql += " AND MDD.ValueFlag = :ValueFlag";
parameters.Add(new OracleParameter(":ValueFlag", OracleDbType.Char, (int)valueFlag.Value, ParameterDirection.Input));
}
selSql += " ORDER BY MDD.DisplayNo";
DataTable dataTable = conn.GetSqlResultToDt(selSql, parameters.ToArray());
return dataTable;
}
#endregion 获得数据字典数据
#endregion 获得基础数据
#region 获得账务日期
///
/// 获取账务日期
///
/// 登录用户信息
/// 账务日期
public static ServiceResultEntity GetAccountDate(SUserInfo user)
{
IDBConnection conn = null;
try
{
conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
conn.Open();
object date = CMNModuleLogic.GetAccountDate(conn, user);
ServiceResultEntity sre = new ServiceResultEntity();
if (date == null || date == DBNull.Value)
{
// 服务器时间错误
//throw new Exception("SystemDateTimeError");
sre.Status = Constant.ServiceResultStatus.AccountDateError;
}
sre.Result = Convert.ToDateTime(date);
return sre;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (conn != null &&
conn.ConnState == ConnectionState.Open)
{
conn.Close();
}
}
}
///
/// 获取账务日期(服务端用)
///
/// 数据库连接
/// 登录用户信息
/// 账务日期
public static object GetAccountDate(IDBConnection conn, SUserInfo user)
{
try
{
string sql = "SELECT FUN_CMN_GetAccountDate(:AccountID) FROM DUAL";
OracleParameter[] paras = new OracleParameter[]
{
new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input)
};
object date = conn.GetSqlResultToObj(sql, paras);
return date;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 获取账务日期(服务端用)
///
/// 数据库连接事物
/// 登录用户信息
/// 账务日期
public static object GetAccountDate(IDBTransaction tran, SUserInfo user)
{
try
{
string sql = "SELECT FUN_CMN_GetAccountDate(:AccountID) FROM DUAL";
OracleParameter[] paras = new OracleParameter[]
{
new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input)
};
object date = tran.GetSqlResultToObj(sql, paras);
return date;
}
catch (Exception ex)
{
throw ex;
}
}
#endregion 获得账务日期
#region 验证插入数据接口是否重复调用
///
/// 验证插入数据接口是否重复调用
///
/// 数据唯一码
/// 登录用户信息
/// true:数据重复,不进行后续处理;false:首次调用
public static bool CheckDataDouble(string dataKey, SUserInfo user)
{
if (string.IsNullOrWhiteSpace(dataKey))
{
return false;
}
IDataAccess dataAccess = null;
try
{
dataAccess = DataAccess.Create();
string sql = $" insert into TP_SYS_DataDoubleCheck (DataKey) values ('{dataKey}') ";
dataAccess.ExecuteNonQuery(sql);
return false;
}
catch (Exception ex)
{
return true;
}
finally
{
dataAccess?.Close();
}
}
#endregion
}
}