/*******************************************************************************
* Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
* 类的信息:
* 1.程序名称:PAMModuleLogic.cs
* 2.功能描述:工资管理策略
* 编辑履历:
* 作者 日期 版本 修改内容
* 王鑫 2015/08/17 1.00 新建
*******************************************************************************/
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Text;
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 Dongke.IBOSS.PRD.WCF.DataModels.PAMModule;
using Dongke.IBOSS.PRD.WCF.DataModels.PMModule;
using Oracle.DataAccess.Client;
namespace Dongke.IBOSS.PRD.Service.PAMModuleService
{
///
/// 工资管理策略
///
public partial class PAMModuleLogic
{
///
/// 获取工资方案参数设定
///
/// DataSet
public static DataSet GetPayPlanSetting(SUserInfo sUserInfo)
{
IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
con.Open();
string sqlString = @"select TP_PAS_PayPlanSetting.SettingCode,TP_PAS_PayPlanSetting.SettingName,
TP_PAS_PayPlanSetting.SettingValue,TP_PAS_PayPlan.PayPlanName,TP_PAS_PayPlanSetting.SettingValue as SettingValueOrg from TP_PAS_PayPlanSetting
left join TP_PAS_PayPlan on TP_PAS_PayPlanSetting.PayPlanID=TP_PAS_PayPlan.PayPlanID";
DataSet ds = con.GetSqlResultToDs(sqlString);
return ds;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (con.ConnState == ConnectionState.Open)
{
con.Close();
}
}
}
///
/// 获取工资方案列表
///
/// DataSet
public static DataSet GetPayPlan(SUserInfo sUserInfo)
{
IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
con.Open();
string sqlString = @"select PayPlanID,PayPlanName from TP_PAS_PayPlan where AccountID=:AccountID and ValueFlag=1";
OracleParameter[] paras = new OracleParameter[]{
new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
};
DataSet ds = con.GetSqlResultToDs(sqlString, paras);
return ds;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (con.ConnState == ConnectionState.Open)
{
con.Close();
}
}
}
///
/// 搜索工资工种列表
///
/// DataSet
public static DataSet GetJobsPayPlan(string jobsCode, string PayPlanName, SUserInfo sUserInfo)
{
IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
con.Open();
string sqlString = @"select TP_MST_Jobs.JobsID, TP_MST_Jobs.JobsName,TP_MST_Jobs.JobsCode,TP_PAS_PayPlan.PayPlanName,TP_PAS_PayPlan.PayPlanID from TP_PAM_JobsPayPlan
left join TP_PAS_PayPlan on TP_PAM_JobsPayPlan.Payplanid=TP_PAS_PayPlan.Payplanid
left join TP_MST_Jobs on TP_PAM_JobsPayPlan.JobsID=TP_MST_Jobs.JobsID
where TP_PAS_PayPlan.accountid=:accountid and TP_PAS_PayPlan.valueflag=1 ";
List parameters = new List();
parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
if (!string.IsNullOrEmpty(jobsCode))
{
sqlString += " AND INSTR(TP_MST_Jobs.JobsCode, :JobsCode) > 0 ";
parameters.Add(new OracleParameter(":JobsCode", OracleDbType.NVarchar2, jobsCode, ParameterDirection.Input));
}
if (!string.IsNullOrEmpty(PayPlanName))
{
sqlString += " AND INSTR(TP_PAS_PayPlan.PayPlanName, :PayPlanName) > 0 ";
parameters.Add(new OracleParameter(":PayPlanName", OracleDbType.NVarchar2, PayPlanName, ParameterDirection.Input));
}
DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
return ds;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (con.ConnState == ConnectionState.Open)
{
con.Close();
}
}
}
///
/// 搜索工资工种列表
///
/// DataSet
public static DataSet GetJobsPayPlanList(string jobsCode, string PayPlanName,string jobsName, SUserInfo sUserInfo)
{
IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
con.Open();
string sqlString = @"select TP_MST_Jobs.JobsID, TP_MST_Jobs.JobsName,TP_MST_Jobs.JobsCode,TP_PAS_PayPlan.PayPlanName,TP_PAS_PayPlan.PayPlanID from TP_PAM_JobsPayPlan
left join TP_PAS_PayPlan on TP_PAM_JobsPayPlan.Payplanid=TP_PAS_PayPlan.Payplanid
left join TP_MST_Jobs on TP_PAM_JobsPayPlan.JobsID=TP_MST_Jobs.JobsID
where TP_PAS_PayPlan.accountid=:accountid and TP_PAS_PayPlan.valueflag=1 ";
List parameters = new List();
parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
if (!string.IsNullOrEmpty(jobsCode))
{
sqlString += " AND INSTR(TP_MST_Jobs.JobsCode, :JobsCode) > 0 ";
parameters.Add(new OracleParameter(":JobsCode", OracleDbType.NVarchar2, jobsCode, ParameterDirection.Input));
}
if (!string.IsNullOrEmpty(PayPlanName))
{
sqlString += " AND INSTR(TP_PAS_PayPlan.PayPlanName, :PayPlanName) > 0 ";
parameters.Add(new OracleParameter(":PayPlanName", OracleDbType.NVarchar2, PayPlanName, ParameterDirection.Input));
}
if (!string.IsNullOrEmpty(jobsName))
{
sqlString += " AND INSTR(TP_MST_Jobs.JobsName, :JobsName) > 0 ";
parameters.Add(new OracleParameter(":JobsName", OracleDbType.NVarchar2, jobsName, ParameterDirection.Input));
}
DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
return ds;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (con.ConnState == ConnectionState.Open)
{
con.Close();
}
}
}
///
/// 搜索工资工种列表详情
///
/// DataSet
public static DataSet GetJobsPayPlanInfo(int PayPlanID, SUserInfo sUserInfo)
{
IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
con.Open();
string sqlString = @"select TP_MST_Jobs.JobsID, TP_MST_Jobs.JobsName,TP_MST_Jobs.JobsCode,TP_PAS_PayPlan.PayPlanName,TP_PAS_PayPlan.PayPlanID from TP_PAM_JobsPayPlan
left join TP_PAS_PayPlan on TP_PAM_JobsPayPlan.Payplanid=TP_PAS_PayPlan.Payplanid
left join TP_MST_Jobs on TP_PAM_JobsPayPlan.JobsID=TP_MST_Jobs.JobsID
where TP_PAS_PayPlan.accountid=:accountid and TP_PAS_PayPlan.valueflag=1 and TP_PAS_PayPlan.PayPlanID=:PayPlanID";
List parameters = new List();
parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
parameters.Add(new OracleParameter(":PayPlanID", OracleDbType.Int32, PayPlanID, ParameterDirection.Input));
DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
return ds;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (con.ConnState == ConnectionState.Open)
{
con.Close();
}
}
}
///
/// 搜索工价分类列表
///
/// DataSet
public static DataSet GetWagesType(string WagesTypeName, SUserInfo sUserInfo)
{
IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
con.Open();
string sqlString = @"select TP_PAM_WagesType.WagesTypeID,TP_PAM_WagesType.WagesTypeName,
TP_PAM_WagesType.CreateTime,TP_MST_User.UserName,TP_MST_User.UserCode
from TP_PAM_WagesType
left join TP_MST_User on TP_PAM_WagesType.CreateUserID=TP_MST_User.UserID
where TP_PAM_WagesType.accountid=:accountid and TP_PAM_WagesType.valueflag=1 ";
List parameters = new List();
parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
if (!string.IsNullOrEmpty(WagesTypeName))
{
sqlString += " AND INSTR(TP_PAM_WagesType.WagesTypeName, :WagesTypeName) > 0 ";
parameters.Add(new OracleParameter(":WagesTypeName", OracleDbType.NVarchar2, WagesTypeName, ParameterDirection.Input));
}
DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
return ds;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (con.ConnState == ConnectionState.Open)
{
con.Close();
}
}
}
///
/// 获取工价分类全部数据
///
/// 用户基本信息
///
public static DataSet GetAllWagesType(SUserInfo sUserInfo)
{
IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
string sqlString = "Select WagesTypeID,WagesTypeName,AccountID,ValueFlag,CreateTime,CreateUserID,UpdateTime,UpdateUserID,OPTimeStamp "
+ "from TP_PAM_WagesType where AccountID = :AccountID";
Oracle.DataAccess.Client.OracleParameter[] oracleParameter = new Oracle.DataAccess.Client.OracleParameter[]
{
new Oracle.DataAccess.Client.OracleParameter(":AccountID",sUserInfo.AccountID)
};
oracleConn.Open();
DataSet result = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
oracleConn.Close();
return result;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (oracleConn.ConnState == ConnectionState.Open)
{
oracleConn.Close();
}
}
}
///
/// 搜索产品工价分类列表
///
/// DataSet
public static DataSet GetGoodsWagesType(string WagesTypeName, string GoodsCode, SUserInfo sUserInfo)
{
IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
con.Open();
string sqlString = @"select TP_PAM_WagesType.WagesTypeID, TP_PAM_WagesType.WagesTypeName,
TP_MST_Goods.goodsCode,TP_MST_Goods.goodsName,TP_MST_Goods.StartingDate,TP_MST_Goods.GoodsID
from TP_PAM_GoodsWagesType
left join TP_PAM_WagesType on TP_PAM_GoodsWagesType.WagesTypeID=TP_PAM_WagesType.WagesTypeID
left join TP_MST_Goods on TP_PAM_GoodsWagesType.GoodsID=TP_MST_Goods.GoodsID
where TP_PAM_WagesType.accountid=:accountid and TP_PAM_WagesType.valueflag=1 ";
List parameters = new List();
parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
if (!string.IsNullOrEmpty(WagesTypeName))
{
sqlString += " AND INSTR(TP_PAM_WagesType.WagesTypeName, :WagesTypeName) > 0 ";
parameters.Add(new OracleParameter(":WagesTypeName", OracleDbType.NVarchar2, WagesTypeName, ParameterDirection.Input));
}
if (!string.IsNullOrEmpty(GoodsCode))
{
sqlString += " AND INSTR(TP_MST_Goods.goodsCode, :GoodsCode) > 0 ";
parameters.Add(new OracleParameter(":GoodsCode", OracleDbType.NVarchar2, GoodsCode, ParameterDirection.Input));
}
DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
return ds;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (con.ConnState == ConnectionState.Open)
{
con.Close();
}
}
}
///
/// 搜索计件工资策略
///
/// DataSet
public static DataSet GetPieceworkData(PieceworkEntity pieceworkEndity, SUserInfo sUserInfo)
{
IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
con.Open();
string sqlString = @"select pw.piecetacticsid,
pw.PieceTacticsName,
wmsys.wm_concat(decode(pp.procedureflag,
'1',
to_char(p.procedureName),
null)) as PieceProcedure,
wmsys.wm_concat(decode(pp.procedureflag,
'2',
to_char(p.procedureName),
null)) as QualityBaseProcedure,
pw.PieceCoefficient,
pw.DamageFlag,
pw.DamageCoefficient,
pw.UnqualifiedFlag,
pw.UnqualifiedCoefficient,
pw.QualifiedFlag,
pw.QualifiedCoefficient,
decode(pw.PieceType, '0', '工序计件', '经过工序计件') as PieceTypeName,
pw.ValueFlag,
TP_PAS_PayPlan.Payplanname,
pw.PayPlanID
from TP_PAT_Piecework pw
left join TP_PAT_PieceProcedure pp on pw.piecetacticsid =
pp.piecetacticsid
left join Tp_Pc_Procedure p on p.procedureid = pp.procedureid
left join TP_PAS_PayPlan on pw.Payplanid =
TP_PAS_PayPlan.Payplanid
where pw.accountid=:accountid and pw.valueflag=1 ";
List parameters = new List();
parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
//if (!string.IsNullOrEmpty(pieceworkEndity.PieceProcedureIDS))
//{
// sqlString = sqlString + " AND instr(','||:PieceProcedureIDS||',',','||TP_PAT_Piecework.PieceProcedureID||',')>0 ";
// parameters.Add(new OracleParameter(":PieceProcedureIDS", OracleDbType.NVarchar2, pieceworkEndity.PieceProcedureIDS, ParameterDirection.Input));
//}
//if (pieceworkEndity.PieceType != null)
//{
// sqlString += " AND TP_PAT_Piecework.PieceType=:PieceType ";
// parameters.Add(new OracleParameter(":PieceType", OracleDbType.Int32, pieceworkEndity.PieceType, ParameterDirection.Input));
//}
if (!string.IsNullOrEmpty(pieceworkEndity.PayPlanName))
{
//sqlString = sqlString + " AND instr(','||:PayPlanName||',',','||pw.PieceTacticsName||',')>0 ";
sqlString = sqlString + " AND instr(pw.PieceTacticsName,:PayPlanName)>0 ";
parameters.Add(new OracleParameter(":PayPlanName", OracleDbType.NVarchar2, pieceworkEndity.PayPlanName, ParameterDirection.Input));
}
if (pieceworkEndity.PayPlanID != null)
{
sqlString += " AND pw.PayPlanID=:PayPlanID ";
parameters.Add(new OracleParameter(":PayPlanID", OracleDbType.Int32, pieceworkEndity.PayPlanID, ParameterDirection.Input));
}
sqlString += @" group by pw.piecetacticsid,
pw.PieceCoefficient,
pw.PieceTacticsName,
pw.DamageFlag,
pw.DamageCoefficient,
pw.UnqualifiedFlag,
pw.UnqualifiedCoefficient,
pw.QualifiedFlag,
pw.QualifiedCoefficient,
pw.PieceType,
pw.ValueFlag,
TP_PAS_PayPlan.Payplanname,pw.PayPlanID";
DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
return ds;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (con.ConnState == ConnectionState.Open)
{
con.Close();
}
}
}
///
/// 根据所选计件工资策略ID,显示数据信息
///
/// 计件工资策略ID
/// DataSet
public static DataSet GetPieceworkByID(int PieceTacticsID, SUserInfo sUserInfo)
{
IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
con.Open();
DataSet dsReturn = new DataSet();
string sqlString = @"select
TP_PAT_Piecework.PieceCoefficient
,TP_PAT_Piecework.DamageFlag
,TP_PAT_Piecework.DamageCoefficient
,TP_PAT_Piecework.UnqualifiedFlag
,TP_PAT_Piecework.UnqualifiedCoefficient
,TP_PAT_Piecework.QualifiedFlag
,TP_PAT_Piecework.QualifiedCoefficient
,decode(TP_PAT_Piecework.PieceType, '0', '工序计件' , '经过工序计件') as PieceTypeName,
TP_PAT_Piecework.PieceType,
TP_PAT_Piecework.PayPlanID,
TP_PAT_Piecework.ValueFlag,
TP_PAT_Piecework.PieceTacticsName
from TP_PAT_Piecework
where
TP_PAT_Piecework.PieceTacticsID=:PieceTacticsID
";
string sqlString2 = @"
select TP_PAT_Wages.PieceTacticsID,
nvl(TP_PAT_Wages.WagesTypeID,TP_PAM_WagesType.WagesTypeID) as WagesTypeID,
nvl(TP_PAT_Wages.StandardWages,0) as StandardWages,
nvl(TP_PAT_Wages.DamageSubsidyRate,1) as DamageSubsidyRate,
nvl(TP_PAT_Wages.DamageSubsidy,0) as DamageSubsidy,
nvl(TP_PAT_Wages.RSuperiorCoefficient,1) as RSuperiorCoefficient,
nvl(TP_PAT_Wages.RQualifiedCoefficient,1) as RQualifiedCoefficient,
nvl(TP_PAT_Wages.RepairSubsidyRate,1) as RepairSubsidyRate ,
nvl(TP_PAT_Wages.RepairSubsidy,0) as RepairSubsidy
from TP_PAM_WagesType
left join TP_PAT_Wages on TP_PAM_WagesType.WagesTypeID =
TP_PAT_Wages.WagesTypeID
and TP_PAT_Wages.PieceTacticsID = :PieceTacticsID
where TP_PAM_WagesType.valueflag = '1'
and TP_PAM_WagesType.AccountID =:AccountID
";
string sqlString3 = @"select
*
from TP_PAT_QualityWages
where
TP_PAT_QualityWages.PieceTacticsID=:PieceTacticsID order by QualityRate desc
";
string sqlString4 = @"select
*
from TP_PAT_PieceProcedure
left join TP_PC_Procedure
on TP_PC_Procedure.ProcedureID=TP_PAT_PieceProcedure.ProcedureID
where
TP_PAT_PieceProcedure.PieceTacticsID=:PieceTacticsID
";
OracleParameter[] paras = new OracleParameter[]{
new OracleParameter(":PieceTacticsID",OracleDbType.Int32, PieceTacticsID,ParameterDirection.Input),
};
OracleParameter[] paras2 = new OracleParameter[]{
new OracleParameter(":PieceTacticsID",OracleDbType.Int32, PieceTacticsID,ParameterDirection.Input),
new OracleParameter(":AccountID",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
};
DataSet ds = con.GetSqlResultToDs(sqlString, paras);
ds.Tables[0].TableName = "TP_PAT_Piecework";
DataSet ds2 = con.GetSqlResultToDs(sqlString2, paras2);
ds2.Tables[0].TableName = "TP_PAT_Wages";
DataSet ds3 = con.GetSqlResultToDs(sqlString3, paras);
ds3.Tables[0].TableName = "TP_PAT_QualityWages";
DataSet ds4= con.GetSqlResultToDs(sqlString4, paras);
ds4.Tables[0].TableName = "TP_PAT_PieceProcedure";
dsReturn.Tables.Add(ds.Tables[0].Copy());
dsReturn.Tables.Add(ds2.Tables[0].Copy());
dsReturn.Tables.Add(ds3.Tables[0].Copy());
dsReturn.Tables.Add(ds4.Tables[0].Copy());
return dsReturn;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (con.ConnState == ConnectionState.Open)
{
con.Close();
}
}
}
///
/// 搜索品质考核策略
///
/// DataSet
public static DataSet GetQualityASS(int? QualityBaseProcedureID, SUserInfo sUserInfo)
{
IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
con.Open();
string sqlString = @"select
TP_PAT_QualityASS.QualityASSTacticsID,
TP_PAT_QualityASS.DefectFine,
TP_PAT_QualityASS.QualityBaseProcedureID,
TP_PC_Procedure.ProcedureName as QualityBaseProcedure,
TP_PAT_QualityASS.CreateTime
from TP_PAT_QualityASS
left join TP_PC_Procedure on TP_PAT_QualityASS.QualityBaseProcedureID=TP_PC_Procedure.ProcedureID
where TP_PAT_QualityASS.accountid=:accountid and TP_PAT_QualityASS.valueflag=1 ";
List parameters = new List();
parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
if (QualityBaseProcedureID != null)
{
sqlString += " AND TP_PAT_QualityASS.QualityBaseProcedureID=:QualityBaseProcedureID ";
parameters.Add(new OracleParameter(":QualityBaseProcedureID", OracleDbType.Int32, QualityBaseProcedureID, ParameterDirection.Input));
}
DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
return ds;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (con.ConnState == ConnectionState.Open)
{
con.Close();
}
}
}
///
/// 搜索品质考核策略
///
/// DataSet
public static DataSet GetQualityASSList(string QualityTacticsName,int? PayPlanID, SUserInfo sUserInfo)
{
IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
con.Open();
string sqlString = @"select TP_PAT_QualityASS.QualityASSTacticsID,
TP_PAT_QualityASS.QualityTacticsName,
TP_PAT_QualityASS.DefectFine,
TP_PAS_PayPlan.PayPlanName,
TP_PAT_QualityASS.CreateTime,
TP_MST_DataDictionary.Dictionaryvalue
from TP_PAT_QualityASS
left join TP_PAS_PayPlan on TP_PAS_PayPlan.PayPlanid=TP_PAT_QualityASS.PayPlanid
left join TP_MST_DataDictionary on TP_PAT_QualityASS.DefectFine =
TP_MST_DataDictionary.DictionaryID
and TP_MST_DataDictionary.DictionaryType =
'ASE002'
where TP_PAT_QualityASS.accountid=:accountid and TP_PAT_QualityASS.valueflag=1 ";
List parameters = new List();
parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
if (!string.IsNullOrEmpty(QualityTacticsName))
{
// sqlString += " AND TP_PAT_QualityASS.QualityTacticsName=:QualityTacticsName ";
sqlString = sqlString + " AND instr(TP_PAT_QualityASS.QualityTacticsName,:QualityTacticsName)>0 ";
parameters.Add(new OracleParameter(":QualityTacticsName", OracleDbType.NVarchar2, QualityTacticsName, ParameterDirection.Input));
}
if (PayPlanID!=null)
{
sqlString += " AND TP_PAT_QualityASS.PayPlanID=:PayPlanID ";
parameters.Add(new OracleParameter(":PayPlanID", OracleDbType.Int32, PayPlanID, ParameterDirection.Input));
}
sqlString += @" group by TP_PAT_QualityASS.QualityASSTacticsID,
TP_PAT_QualityASS.DefectFine,
TP_PAS_PayPlan.PayPlanName,
TP_PAT_QualityASS.QualityTacticsName,
TP_PAT_QualityASS.CreateTime,
TP_MST_DataDictionary.Dictionaryvalue";
DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
return ds;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (con.ConnState == ConnectionState.Open)
{
con.Close();
}
}
}
///
/// 根据显示数据信息
///
/// ID
/// DataSet
public static DataSet GetQualityASSByID(int? QualityASSTacticsID, SUserInfo sUserInfo)
{
IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
con.Open();
DataSet dsReturn = new DataSet();
string sqlString = @"select
TP_PAT_QualityASS.QualityASSTacticsID
,TP_PAT_QualityASS.PayPlanID
,TP_PAT_QualityASS.DefectFine
,TP_PAT_QualityASS.QualityTacticsName
from TP_PAT_QualityASS
where
TP_PAT_QualityASS.QualityASSTacticsID=:QualityASSTacticsID
";
string sqlString2 = @"
select *
from TP_PAM_WagesType
left join TP_PAT_QualityGoods on TP_PAM_WagesType.WagesTypeID =
TP_PAT_QualityGoods.WagesTypeID
and TP_PAT_QualityGoods.QualityASSTacticsID = :QualityASSTacticsID
where TP_PAM_WagesType.valueflag = '1'
and TP_PAM_WagesType.AccountID =:AccountID";
string sqlString3 = @"select
*
from TP_PAT_QualityReward
where
TP_PAT_QualityReward.QualityASSTacticsID=:QualityASSTacticsID order by QualityRate desc
";
// string sqlString4 = @"select
// *
// from TP_PAT_QualityProcedure
// left join TP_PC_Procedure
// on TP_PAT_QualityProcedure.ProcedureID=TP_PC_Procedure.ProcedureID
// where
// TP_PAT_QualityProcedure.QualityASSTacticsID=:QualityASSTacticsID
// ";
OracleParameter[] paras = new OracleParameter[]{
new OracleParameter(":QualityASSTacticsID",OracleDbType.Int32, QualityASSTacticsID,ParameterDirection.Input),
};
OracleParameter[] paras2 = new OracleParameter[]{
new OracleParameter(":QualityASSTacticsID",OracleDbType.Int32, QualityASSTacticsID,ParameterDirection.Input),
new OracleParameter(":AccountID",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
};
DataSet ds = con.GetSqlResultToDs(sqlString, paras);
ds.Tables[0].TableName = "TP_PAT_QualityASS";
DataSet ds2 = con.GetSqlResultToDs(sqlString2, paras2);
ds2.Tables[0].TableName = "TP_PAT_QualityGoods";
DataSet ds3 = con.GetSqlResultToDs(sqlString3, paras);
ds3.Tables[0].TableName = "TP_PAT_QualityReward";
//DataSet ds4 = con.GetSqlResultToDs(sqlString4, paras);
//ds4.Tables[0].TableName = "TP_PAT_QualityProcedure";
dsReturn.Tables.Add(ds.Tables[0].Copy());
dsReturn.Tables.Add(ds2.Tables[0].Copy());
dsReturn.Tables.Add(ds3.Tables[0].Copy());
//dsReturn.Tables.Add(ds4.Tables[0].Copy());
return dsReturn;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (con.ConnState == ConnectionState.Open)
{
con.Close();
}
}
}
///
/// 获取行政考核记录一览
///
/// 查询条码
/// 登录用户
/// 查询结果
public static ServiceResultEntity GetAdminEXA(AdminEXAEntity entity, SUserInfo sUserInfo)
{
IDBConnection conn = null;
try
{
conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
List parameters = new List();
parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
parameters.Add(new OracleParameter(":UPUserId", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input));
string sqlString = "\n" +
"select a.AdminEXAID,\n" +
" --a.UserID,\n" +
" a.StaffID,\n" +
" a.AdminEXATypeID,\n" +
" a.Amount,\n" +
" a.Remarks,\n" +
" a.AuditStatus,\n" +
" a.Auditor,\n" +
" a.AuditlDate,\n" +
" --a.AccountID,\n" +
" --a.ValueFlag,\n" +
" a.SettlementFlag,\n" +
" a.CreateTime,\n" +
" a.CreateUserID,\n" +
" a.UpdateTime,\n" +
" a.UpdateUserID,\n" +
" a.OPTimeStamp,\n" +
" s.staffcode,\n" +
" s.staffname,\n" +
" cu.username cname,\n" +
" uu.username uname,\n" +
" au.username aname,\n" +
" dd.dictionaryvalue AdminEXATypeName,\n" +
" ass.auditstatusname\n" +
" from TP_PAD_AdminEXA a\n" +
" left join tp_hr_staff s\n" +
" on s.staffid = a.staffid\n" +
" left join tp_mst_user cu\n" +
" on cu.userid = a.CreateUserID\n" +
" left join tp_mst_user uu\n" +
" on uu.userid = a.updateuserid\n" +
" left join tp_mst_user au\n" +
" on au.userid = a.auditor\n" +
" left join TP_MST_DataDictionary dd\n" +
" on dd.dictionaryid = a.AdminEXATypeID\n" +
" left join Tp_Sys_Auditstatus ass\n" +
" on ass.auditstatusid = a.AuditStatus\n" +
" where a.valueflag = '1'\n" +
" and a.AccountID = :AccountID\n" +
" AND (a.CreateUserID = :UPUserId OR EXISTS (SELECT UP.PurviewID\n" +
" FROM TP_MST_UserPurview UP\n" +
" WHERE UP.PurviewType = '" + (int)Constant.PurviewType.OperateUser + "'" +
" AND (UP.PurviewID = a.CreateUserID OR UP.PurviewID = -1)\n" +
" AND UP.UserId = :UPUserId))";
StringBuilder sql = new StringBuilder(sqlString);
if (entity.StaffID.HasValue)
{
sql.Append(" AND a.StaffID =:StaffID ");
parameters.Add(new OracleParameter(":StaffID", OracleDbType.Int32, entity.StaffID, ParameterDirection.Input));
}
if (!string.IsNullOrWhiteSpace( entity.SettlementFlag))
{
sql.Append(" AND a.SettlementFlag =:SettlementFlag ");
parameters.Add(new OracleParameter(":SettlementFlag", OracleDbType.Char, entity.SettlementFlag, ParameterDirection.Input));
}
if (entity.AuditStatus.HasValue)
{
sql.Append(" AND a.AuditStatus =:AuditStatus ");
parameters.Add(new OracleParameter(":AuditStatus", OracleDbType.Int32, entity.AuditStatus, ParameterDirection.Input));
}
if (entity.AdminEXATypeID.HasValue)
{
sql.Append(" AND a.AdminEXATypeID =:AdminEXATypeID ");
parameters.Add(new OracleParameter(":AdminEXATypeID", OracleDbType.Int32, entity.AdminEXATypeID, ParameterDirection.Input));
}
if (!string.IsNullOrWhiteSpace(entity.Remarks))
{
sql.Append(" AND INSTR(a.Remarks, :Remarks) > 0");
parameters.Add(new OracleParameter(":Remarks", OracleDbType.NVarchar2, entity.Remarks, ParameterDirection.Input));
}
sql.Append(" ORDER BY a.AdminEXAID");
DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
ServiceResultEntity sre = new ServiceResultEntity();
if (data == null || data.Rows.Count == 0)
{
sre.Status = Constant.ServiceResultStatus.NoSearchResults;
return sre;
}
sre.Data = new DataSet();
sre.Data.Tables.Add(data);
return sre;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (conn != null &&
conn.ConnState == ConnectionState.Open)
{
conn.Close();
}
}
}
///
/// 获取行政考核记录
///
/// 行政考核记录ID
/// 查询结果
public static ServiceResultEntity GetAdminEXAByID(int id)
{
IDBConnection conn = null;
try
{
conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
string sqlString = "\n" +
"select a.AdminEXAID,\n" +
" --a.UserID,\n" +
" a.StaffID,\n" +
" a.AdminEXATypeID,\n" +
" a.Amount,\n" +
" a.Remarks,\n" +
" a.AuditStatus,\n" +
" a.Auditor,\n" +
" a.AuditlDate,\n" +
" --a.AccountID,\n" +
" --a.ValueFlag,\n" +
" a.SettlementFlag,\n" +
" a.CreateTime,\n" +
" a.CreateUserID,\n" +
" a.UpdateTime,\n" +
" a.UpdateUserID,\n" +
" a.OPTimeStamp,\n" +
" s.staffcode,\n" +
" s.staffname,\n" +
" cu.username cname,\n" +
" uu.username uname,\n" +
" au.username aname,\n" +
" dd.dictionaryvalue AdminEXATypeName,\n" +
" ass.auditstatusname\n" +
" from TP_PAD_AdminEXA a\n" +
" left join tp_hr_staff s\n" +
" on s.staffid = a.staffid\n" +
" left join tp_mst_user cu\n" +
" on cu.userid = a.CreateUserID\n" +
" left join tp_mst_user uu\n" +
" on uu.userid = a.updateuserid\n" +
" left join tp_mst_user au\n" +
" on au.userid = a.auditor\n" +
" left join TP_MST_DataDictionary dd\n" +
" on dd.dictionaryid = a.AdminEXATypeID\n" +
" left join Tp_Sys_Auditstatus ass\n" +
" on ass.auditstatusid = a.AuditStatus\n" +
" where a.valueflag = '1'\n" +
" and a.AdminEXAID = :AdminEXAID\n";
OracleParameter[] parameters = new OracleParameter[]
{
new OracleParameter(":AdminEXAID", OracleDbType.Int32, id, ParameterDirection.Input),
};
DataTable data = conn.GetSqlResultToDt(sqlString, parameters);
ServiceResultEntity sre = new ServiceResultEntity();
if (data == null || data.Rows.Count == 0)
{
sre.Status = Constant.ServiceResultStatus.NoSearchResults;
return sre;
}
sre.Data = new DataSet();
sre.Data.Tables.Add(data);
return sre;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (conn != null &&
conn.ConnState == ConnectionState.Open)
{
conn.Close();
}
}
}
///
/// 停用行政考核记录
///
/// 行政考核记录ID
/// 时间戳
/// 执行结果
public static ServiceResultEntity StopAdminEXAByID(int id, object opTimeStamp, SUserInfo sUserInfo)
{
IDBTransaction tran = null;
try
{
tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
tran.IsCommandTimeout = false;
string sql = "update TP_PAD_AdminEXA a set a.valueflag = '0', a.UpdateUserID=:UpdateUserID "
+ " where a.AdminEXAID=:AdminEXAID and a.OPTimeStamp=:OPTimeStamp";
OracleParameter[] parameters = new OracleParameter[]
{
new OracleParameter(":AdminEXAID", OracleDbType.Int32, id, ParameterDirection.Input),
new OracleParameter(":UpdateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, opTimeStamp, ParameterDirection.Input),
};
int result = tran.ExecuteNonQuery(sql, parameters);
ServiceResultEntity sre = new ServiceResultEntity();
if (result <= 0)
{
sre.Status = Constant.ServiceResultStatus.DataChanged;
return sre;
}
tran.Commit();
return sre;
}
catch (Exception ex)
{
if (tran != null &&
tran.ConnState == ConnectionState.Open)
{
tran.Rollback();
}
throw ex;
}
finally
{
if (tran != null &&
tran.ConnState == ConnectionState.Open)
{
tran.Disconnect();
}
}
}
///
/// 审核行政考核记录
///
/// 行政考核记录IDs
/// 执行结果
public static ServiceResultEntity AuditAdminEXA(string ids, Constant.AuditStatus auditStatus, SUserInfo sUserInfo)
{
IDBTransaction tran = null;
try
{
tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
string sql = "update TP_PAD_AdminEXA a set a.AuditStatus = :AuditStatus, a.Auditor=:UpdateUserID,a.AuditlDate=sysdate, a.UpdateUserID=:UpdateUserID "
+ " where INSTR(:AdminEXAIDs, ',' || a.AdminEXAID || ',') > 0 and a.AuditStatus=" + (int)Constant.AuditStatus.Pending;
ids = "," + ids + ",";
OracleParameter[] parameters = new OracleParameter[]
{
new OracleParameter(":AdminEXAIDs", OracleDbType.Varchar2, ids, ParameterDirection.Input),
new OracleParameter(":UpdateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
new OracleParameter(":AuditStatus", OracleDbType.Int32, (int)auditStatus, ParameterDirection.Input),
};
int result = tran.ExecuteNonQuery(sql, parameters);
ServiceResultEntity sre = new ServiceResultEntity();
if (result <= 0)
{
sre.Status = Constant.ServiceResultStatus.NoModifyData;
return sre;
}
tran.Commit();
return sre;
}
catch (Exception ex)
{
if (tran != null &&
tran.ConnState == ConnectionState.Open)
{
tran.Rollback();
}
throw ex;
}
finally
{
if (tran != null &&
tran.ConnState == ConnectionState.Open)
{
tran.Disconnect();
}
}
}
///
/// 新建行政考核记录
///
/// 行政考核记录
/// 登录用户
///
public static ServiceResultEntity AddAdminEXA(AdminEXAEntity entity, SUserInfo sUserInfo)
{
IDBTransaction tran = null;
try
{
tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
string sql = "insert into tp_pad_adminexa\n" +
" (adminexaid,\n" +
//" userid,\n" +
" staffid,\n" +
" adminexatypeid,\n" +
" amount,\n" +
" remarks,\n" +
" auditstatus,\n" +
//" auditor,\n" +
//" auditldate,\n" +
" accountid,\n" +
" valueflag,\n" +
" settlementflag,\n" +
" createtime,\n" +
" createuserid,\n" +
" updatetime,\n" +
" updateuserid)\n" +
"values\n" +
" (null,\n" +
//" v_userid,\n" +
" :staffid,\n" +
" :adminexatypeid,\n" +
" :amount,\n" +
" :remarks,\n" +
" :auditstatus,\n" +
//" :auditor,\n" +
//" :auditldate,\n" +
" :accountid,\n" +
" '1',\n" +
" '0',\n" +
" sysdate,\n" +
" :createuserid,\n" +
" sysdate,\n" +
" :createuserid)";
OracleParameter[] parameters = new OracleParameter[]
{
new OracleParameter(":staffid", OracleDbType.Int32, entity.StaffID, ParameterDirection.Input),
new OracleParameter(":adminexatypeid", OracleDbType.Int32, entity.AdminEXATypeID, ParameterDirection.Input),
new OracleParameter(":amount", OracleDbType.Decimal, entity.Amount, ParameterDirection.Input),
new OracleParameter(":remarks", OracleDbType.NVarchar2, entity.Remarks, ParameterDirection.Input),
new OracleParameter(":auditstatus", OracleDbType.Int32, (int)Constant.AuditStatus.Pending, ParameterDirection.Input),
new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
new OracleParameter(":createuserid", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
};
int result = tran.ExecuteNonQuery(sql, parameters);
ServiceResultEntity sre = new ServiceResultEntity();
if (result <= 0)
{
sre.Status = Constant.ServiceResultStatus.NoModifyData;
return sre;
}
tran.Commit();
return sre;
}
catch (Exception ex)
{
if (tran != null &&
tran.ConnState == ConnectionState.Open)
{
tran.Rollback();
}
throw ex;
}
finally
{
if (tran != null &&
tran.ConnState == ConnectionState.Open)
{
tran.Disconnect();
}
}
}
///
///
///
///
///
///
///
public static ServiceResultEntity EditAdminEXA(DataTable dt, SUserInfo sUserInfo)
{
if (dt == null || dt.Rows.Count == 0)
{
ServiceResultEntity sre = new ServiceResultEntity();
sre.Status = Constant.ServiceResultStatus.NoModifyData;
return sre;
}
IDBTransaction tran = null;
try
{
tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
string sql = "update tp_pad_adminexa\n" +
" set staffid = :staffid,\n" +
//" userid = :userid,\n" +
" adminexatypeid = :adminexatypeid,\n" +
" amount = :amount,\n" +
" remarks = :remarks,\n" +
" updateuserid = :updateuserid\n" +
" where adminexaid = :adminexaid\n" +
" and auditstatus = " + (int)Constant.AuditStatus.Pending + "\n" +
" and optimestamp = :optimestamp\n" +
" and valueflag = '1'";
OracleParameter[] parameters = new OracleParameter[]
{
new OracleParameter(":adminexaid", OracleDbType.Int32, dt.Rows[0]["adminexaid"], ParameterDirection.Input),
new OracleParameter(":staffid", OracleDbType.Int32,dt.Rows[0]["staffid"], ParameterDirection.Input),
new OracleParameter(":adminexatypeid", OracleDbType.Int32, dt.Rows[0]["adminexatypeid"], ParameterDirection.Input),
new OracleParameter(":amount", OracleDbType.Decimal, dt.Rows[0]["amount"], ParameterDirection.Input),
new OracleParameter(":remarks", OracleDbType.NVarchar2, dt.Rows[0]["remarks"], ParameterDirection.Input),
new OracleParameter(":updateuserid", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
new OracleParameter(":optimestamp", OracleDbType.TimeStamp, dt.Rows[0]["optimestamp"], ParameterDirection.Input),
};
int result = tran.ExecuteNonQuery(sql, parameters);
ServiceResultEntity sre = new ServiceResultEntity();
if (result <= 0)
{
sre.Status = Constant.ServiceResultStatus.DataChanged;
return sre;
}
tran.Commit();
return sre;
}
catch (Exception ex)
{
if (tran != null &&
tran.ConnState == ConnectionState.Open)
{
tran.Rollback();
}
throw ex;
}
finally
{
if (tran != null &&
tran.ConnState == ConnectionState.Open)
{
tran.Disconnect();
}
}
}
}
}