using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CY.IDAL;
using System.Data.SqlClient;
using System.Data;
using CY.Model;
using System.Transactions;
namespace CY.SQLDAL
{
//计件登记记录
public class OA_WagePieceRecordDAL : IOA_WagePieceRecordDAL
{
private Database _dataBase = null;
public OA_WagePieceRecordDAL()
{
_dataBase = new Database();
}
public OA_WagePieceRecordDAL(Database dataBase)
{
_dataBase = dataBase;
}
///
/// 新增
///
///
///
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.OA_WagePieceRecord trueModel = model as Model.OA_WagePieceRecord;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{ new SqlParameter("@FirmId", trueModel.FirmId) ,
new SqlParameter("@MemberId", trueModel.MemberId) ,
new SqlParameter("@StartWorkTime", trueModel.StartWorkTime) ,
new SqlParameter("@EndWorkTime", trueModel.EndWorkTime) ,
new SqlParameter("@Process", trueModel.Process) ,
new SqlParameter("@Unit", trueModel.Unit) ,
new SqlParameter("@JobPerformance", trueModel.JobPerformance) ,
new SqlParameter("@PieceworkWages", trueModel.PieceworkWages) ,
new SqlParameter("@LastUpdateTime", trueModel.LastUpdateTime) ,
new SqlParameter("@Operator", trueModel.Operator)
};
try
{
_dataBase.Query("sp_OA_WagePieceRecord_Insert", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 修改
///
///
///
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.OA_WagePieceRecord trueModel = model as Model.OA_WagePieceRecord;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{ new SqlParameter("@Keyid", trueModel.Keyid) ,
new SqlParameter("@FirmId", trueModel.FirmId) ,
new SqlParameter("@MemberId", trueModel.MemberId) ,
new SqlParameter("@StartWorkTime", trueModel.StartWorkTime) ,
new SqlParameter("@EndWorkTime", trueModel.EndWorkTime) ,
new SqlParameter("@Process", trueModel.Process) ,
new SqlParameter("@Unit", trueModel.Unit) ,
new SqlParameter("@JobPerformance", trueModel.JobPerformance) ,
new SqlParameter("@PieceworkWages", trueModel.PieceworkWages) ,
new SqlParameter("@LastUpdateTime", trueModel.LastUpdateTime) ,
new SqlParameter("@Operator", trueModel.Operator)
};
try
{
_dataBase.Query("sp_OA_WagePieceRecord_Update", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 删除
///
///
///
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.OA_WagePieceRecord trueModel = model as Model.OA_WagePieceRecord;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid)
};
try
{
_dataBase.Query("sp_OA_WagePieceRecord_DeleteRow", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 分页查询
///
///
///
///
public IEnumerable SelectModelPage(Infrastructure.Query.Query query, Infrastructure.Query.Pagination pagination)
{
throw new NotImplementedException();
}
///
/// 单个查询
///
///
///
public IEnumerable SelectAllModel(Infrastructure.Query.Query query)
{
throw new NotImplementedException();
}
///
/// 根据编号获得信息
///
/// 编号
///
public OA_WagePieceRecord GetModelByKeyid(int? Keyid)
{
try
{
if (Keyid == null || Keyid < 0)
return null;//错误数据返会空
IList result = _dataBase.SelectModel(" * ", " OA_WagePieceRecord ", string.Format(" Keyid='{0}'", Keyid)) as IList;//执行查询
return (null == result || result.Count == 0) ? null : result[0];//返回结果
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 分页查询
///
///
///
public IEnumerable SelectModelPage(Infrastructure.Query.Pagination pagination, Guid _FirmId, Guid _MemberId, DateTime? _BeginStartWorkTime, DateTime? _EndStartWorkTime, DateTime? _BeginEndWorkTime, DateTime? _EndEndWorkTime, string _Process, string _Unit, string _JobPerformance, decimal? _PieceworkWages, DateTime? _BeginLastUpdateTime, DateTime? _EndLastUpdateTime, string _Operator)
{
try
{
string condition = " 1=1 ";
if (_FirmId != Guid.Empty)
condition += " and FirmId = '" + _FirmId + "'";
if (_MemberId != Guid.Empty)
condition += " and MemberId = '" + _MemberId + "'";
if (_BeginStartWorkTime.HasValue)
condition += string.Format(" and CAST(StartWorkTime AS DATE) >='{0}'", _BeginStartWorkTime);
if (_EndStartWorkTime.HasValue)
condition += string.Format(" and CAST(StartWorkTime AS DATE) <='{0}'", _EndStartWorkTime);
if (_BeginEndWorkTime.HasValue)
condition += string.Format(" and CAST(EndWorkTime AS DATE) >='{0}'", _BeginEndWorkTime);
if (_EndEndWorkTime.HasValue)
condition += string.Format(" and CAST(EndWorkTime AS DATE) <='{0}'", _EndEndWorkTime);
if (!string.IsNullOrEmpty(_Process))
condition += " and Process = '" + _Process + "'";
if (!string.IsNullOrEmpty(_Unit))
condition += " and Unit = '" + _Unit + "'";
if (!string.IsNullOrEmpty(_JobPerformance))
condition += " and JobPerformance = '" + _JobPerformance + "'";
if (_PieceworkWages.HasValue)
condition += " and PieceworkWages = '" + _PieceworkWages + "'";
if (_BeginLastUpdateTime.HasValue)
condition += string.Format(" and CAST(LastUpdateTime AS DATE) >='{0}'", _BeginLastUpdateTime);
if (_EndLastUpdateTime.HasValue)
condition += string.Format(" and CAST(LastUpdateTime AS DATE) <='{0}'", _EndLastUpdateTime);
if (!string.IsNullOrEmpty(_Operator))
condition += " and Operator = '" + _Operator + "'";
return _dataBase.SelectModelPage(pagination, " * ", " OA_WagePieceRecord ", " Keyid desc", " Keyid desc ", condition);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 分页查询
///
///
///
public IEnumerable SelectModelPage(Infrastructure.Query.Pagination pagination, Guid _FirmId, int? _DepartmentId,string _StaffName, DateTime? _BeginStartWorkTime, DateTime? _EndStartWorkTime, string _Process)
{
try
{
string condition = " 1=1 ";
if (_FirmId != Guid.Empty)
condition += " and a.FirmId = '" + _FirmId + "' ";
if (!string.IsNullOrEmpty(_StaffName))
condition += " and b.Name = '" + _StaffName + "' ";
if (_BeginStartWorkTime.HasValue)
condition += string.Format(" and CAST(a.StartWorkTime AS DATE) >='{0}' ", _BeginStartWorkTime);
if (_EndStartWorkTime.HasValue)
condition += string.Format(" and CAST(a.StartWorkTime AS DATE) <='{0}' ", _EndStartWorkTime);
if (_DepartmentId.HasValue)
condition += string.Format(" and b.DepartmentId ='{0}' ", _DepartmentId);
if (!string.IsNullOrEmpty(_Process))
condition += " and a.Process = '" + _Process + "' ";
return _dataBase.SelectModelPage(pagination, " a.*,b.Name AS StaffName,c.Name AS DepartmentName ", " OA_WagePieceRecord AS a LEFT JOIN dbo.OA_Staff AS b ON a.MemberId = b.MemberId LEFT JOIN dbo.OA_Department AS c ON b.DepartmentId = c.Keyid ", " a.Keyid desc", " Keyid desc ", condition);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 分页查询
///
///
///
public IEnumerable SelectModelPage(Infrastructure.Query.Pagination pagination, Guid _FirmId, int? _DepartmentId, string _StaffName)
{
try
{
string condition = " 1=1 ";
if (_FirmId != Guid.Empty)
condition += " and w.FirmId = '" + _FirmId + "' ";
if (!string.IsNullOrEmpty(_StaffName))
condition += " and w.StaffName = '" + _StaffName + "' ";
if (_DepartmentId.HasValue)
condition += string.Format(" and w.DepartmentId ='{0}' ", _DepartmentId);
DateTime Time1 = DateTime.Parse(DateTime.Now.AddMonths(-2).Year + "-" + DateTime.Now.AddMonths(-2).Month + "-1");
DateTime Time2 = Time1.AddMonths(1);
DateTime Time3 = Time1.AddMonths(2);
return _dataBase.SelectModelPage(pagination, " w.* ", " ( SELECT m.MemberId AS emberId,m.FirmId,m.DepartmentId,m.DepartmentName,m.Name AS StaffName,shi,shiyi,shier,SUM(n.PieceworkWages) AS quanbu FROM ( SELECT e.MemberId AS MemberId,e.FirmId,e.DepartmentId,e.DepartmentName,e.Name AS NAME,shi,shiyi,SUM(f.PieceworkWages) AS shier FROM ( SELECT c.MemberId AS MemberId,c.FirmId,c.DepartmentId,c.DepartmentName,c.Name AS NAME,shi,SUM(d.PieceworkWages) AS shiyi FROM (SELECT a.MemberId AS MemberId,a.FirmId,a.DepartmentId,q.Name AS DepartmentName,a.Name AS Name,SUM(b.PieceworkWages) AS shi FROM OA_Staff AS a LEFT JOIN dbo.OA_WagePieceRecord AS b ON a.MemberId = b.MemberId AND CAST(b.StartWorkTime AS DATE) >='" + Time1.ToString() + "' AND CAST(b.StartWorkTime AS DATE) <'" + Time2.ToString() + "' LEFT JOIN dbo.OA_Department AS q ON a.DepartmentId = q.Keyid WHERE a.Status='在职' GROUP BY a.Name,a.MemberId,a.FirmId,a.DepartmentId,q.Name) AS c LEFT JOIN dbo.OA_WagePieceRecord AS d ON c.MemberId = d.MemberId AND CAST(d.StartWorkTime AS DATE) >='" + Time2.ToString() + "' AND CAST(d.StartWorkTime AS DATE) <'" + Time3.ToString() + "' GROUP BY c.Name,c.MemberId,c.FirmId,c.DepartmentId,c.DepartmentName,shi ) AS e LEFT JOIN dbo.OA_WagePieceRecord AS f ON e.MemberId = f.MemberId AND CAST(f.StartWorkTime AS DATE) >='" + Time3.ToString() + "' AND CAST(f.StartWorkTime AS DATE) <'" + Time3.AddMonths(1).ToString() + "' GROUP BY e.Name,e.MemberId,e.FirmId,e.DepartmentId,e.DepartmentName,shi,shiyi) AS m LEFT JOIN dbo.OA_WagePieceRecord AS n ON m.MemberId = n.MemberId GROUP BY m.Name, m.MemberId, m.FirmId, m.DepartmentId, m.DepartmentName, shi, shiyi, shier ) as w", " w.DepartmentId ASC,w.StaffName ASC ", " DepartmentId ASC,StaffName ASC ", condition);
}
catch (Exception ex)
{
throw ex;
}
}
}
}