/*******************************************************************************
* Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
* 类的信息:
* 1.程序名称:TATModuleLogic.cs
* 2.功能描述:策略管理信息与数据库的交互类
* 编辑履历:
* 作者 日期 版本 修改内容
* 庄天威 2014/11/18 1.00 新建
*******************************************************************************/
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using Dongke.IBOSS.PRD.Basics.BaseResources;
using Dongke.IBOSS.PRD.Basics.DataAccess;
using Dongke.IBOSS.PRD.Basics.Library;
using Dongke.IBOSS.PRD.Service.DataModels;
using Dongke.IBOSS.PRD.WCF.DataModels;
using Dongke.IBOSS.PRD.WCF.DataModels.PMModule;
using Oracle.ManagedDataAccess.Client;
namespace Dongke.IBOSS.PRD.Service.TATModuleLogic
{
///
/// 策略管理信息与数据库的交互类
///
public partial class TATModuleLogic
{
#region 管理岗位工资策略
///
/// 查询管理岗位工资策略信息
///
/// 查询条件实体
/// 当前用户信息
/// 查询结果实体
public static ServiceResultEntity GetManagerSalary(ManagerSalaryEntity msEntity, SUserInfo userInfo)
{
ServiceResultEntity srEntity = new ServiceResultEntity();
IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
try
{
con.Open();
OracleParameter[] MSParas = new OracleParameter[]{
new OracleParameter("In_ManagerSalaryID",OracleDbType.Int32,
msEntity.ManagerSalaryID,ParameterDirection.Input),
new OracleParameter("In_AccountID",OracleDbType.Int32,
userInfo.AccountID,ParameterDirection.Input),
new OracleParameter("In_ManagerSalaryName",OracleDbType.NVarchar2,
msEntity.ManagerSalaryName,ParameterDirection.Input),
new OracleParameter("In_BeginAccountMonthS",OracleDbType.Date,
msEntity.BeginAccountMonth,ParameterDirection.Input),
new OracleParameter("In_BeginAccountMonthE",OracleDbType.Date,
msEntity.BeginAccountMonthEnd,ParameterDirection.Input),
new OracleParameter("In_EndAccountMonthS",OracleDbType.Date,
msEntity.EndAccountMonth,ParameterDirection.Input),
new OracleParameter("In_EndAccountMonthE",OracleDbType.Date,
msEntity.EndAccountMonthEnd,ParameterDirection.Input),
new OracleParameter("In_Remarks",OracleDbType.NVarchar2,
msEntity.Remarks,ParameterDirection.Input),
new OracleParameter("In_AuditStatus",OracleDbType.Int32,
msEntity.AuditStatus,ParameterDirection.Input),
new OracleParameter("Out_Result",OracleDbType.RefCursor,
ParameterDirection.Output),
};
DataSet dsWages = con.ExecStoredProcedure("PRO_PM_GetManagerSalary", MSParas);
if (dsWages.Tables.Count == 0 || dsWages.Tables[0].Rows.Count == 0)
{
srEntity.Status = Constant.ServiceResultStatus.NoSearchResults;
srEntity.Message = Messages.MSG_CMN_I002;
}
else
{
srEntity.Status = Constant.ServiceResultStatus.Success;
// srEntity.Result = dsWages;
srEntity.Data = dsWages;
}
return srEntity;
}
catch (Exception ex)
{
srEntity.Status = Constant.ServiceResultStatus.SystemError;
srEntity.Exception = ex;
return srEntity;
}
finally
{
if (con.ConnState == ConnectionState.Open)
{
con.Close();
}
}
}
///
/// 根据管理岗位工资策略主信息ID获取对应管理者信息
///
/// 主信息ID
/// 服务实体对象,包含工种明细数据源
public static ServiceResultEntity GetManagersById(int ManagerSalaryID)
{
ServiceResultEntity srEntity = new ServiceResultEntity();
IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
DataSet dsDetail = new DataSet();
try
{
StringBuilder sbSql = new StringBuilder();
//根据主信息ID查询管理者信息
sbSql.Append(@"Select m.managersid,m.SalaryType,m.SalaryPercent,s.staffid,s.staffcode,s.staffname,o.organizationname,p.postname
from TP_TAT_Managers m
Inner join TP_HR_STAFF s
on m.manager = s.staffid
Inner join TP_MST_Organization o
on s.organizationid = o.organizationid
Inner join TP_MST_Post p
on s.post = p.postid
where m.Managersalaryid = :MID and m.valueflag = 1");
OracleParameter[] ManagerParas = new OracleParameter[]{
new OracleParameter(":MID",OracleDbType.Int32,
ManagerSalaryID,ParameterDirection.Input),
};
DataTable dtJobs = con.GetSqlResultToDt(sbSql.ToString(), ManagerParas);
dsDetail.Tables.Add(dtJobs);
srEntity.Status = Constant.ServiceResultStatus.Success;
//srEntity.Result = dsDetail;
srEntity.Data = dsDetail;
return srEntity;
}
catch (Exception ex)
{
srEntity.Status = Constant.ServiceResultStatus.SystemError;
srEntity.Exception = ex;
return srEntity;
}
finally
{
if (con.ConnState == ConnectionState.Open)
{
con.Close();
}
}
}
///
/// 根据管理者信息ID获取对应的组内成员数据源
///
/// 工价策略主ID
/// 包含对应产品数据源的服务返回实体
public static ServiceResultEntity GetMembers(int ManagersID)
{
ServiceResultEntity srEntity = new ServiceResultEntity();
IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
DataSet dsDetail = new DataSet();
try
{
StringBuilder sbSql = new StringBuilder();
//根据管理者ID获取对应的组员信息数据源
sbSql.Append(@"Select m.ManagersID,s.staffid,s.staffcode,s.staffname,o.organizationname,p.postname
from TP_TAT_Members m
Inner join TP_HR_STAFF s
on m.Member = s.staffid
Inner join TP_MST_Organization o
on s.organizationid = o.organizationid
Inner join TP_MST_Post p
on s.post = p.postid
where m.ManagersID = :MID and m.valueflag = 1");
OracleParameter[] MemberParas = new OracleParameter[]{
new OracleParameter(":MID",OracleDbType.Int32,
ManagersID,ParameterDirection.Input)
};
DataTable dtGoods = con.GetSqlResultToDt(sbSql.ToString(), MemberParas);
dsDetail.Tables.Add(dtGoods);
srEntity.Status = Constant.ServiceResultStatus.Success;
//srEntity.Result = dsDetail;
srEntity.Data = dsDetail;
return srEntity;
}
catch (Exception ex)
{
srEntity.Status = Constant.ServiceResultStatus.SystemError;
srEntity.Exception = ex;
return srEntity;
}
finally
{
if (con.ConnState == ConnectionState.Open)
{
con.Close();
}
}
}
#endregion
}
}