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;
|
}
|
|
/// <summary>
|
/// 新增
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
|
{
|
Model.OA_WagePieceRecord trueModel = model as Model.OA_WagePieceRecord;
|
if (trueModel == null)
|
{
|
return false;
|
}
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{ 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<SqlParameter>());
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
return true;
|
}
|
|
/// <summary>
|
/// 修改
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
|
{
|
Model.OA_WagePieceRecord trueModel = model as Model.OA_WagePieceRecord;
|
if (trueModel == null)
|
{
|
return false;
|
}
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{ 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<SqlParameter>());
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
return true;
|
}
|
|
/// <summary>
|
/// 删除
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
|
{
|
Model.OA_WagePieceRecord trueModel = model as Model.OA_WagePieceRecord;
|
if (trueModel == null)
|
{
|
return false;
|
}
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
new SqlParameter("@Keyid",trueModel.Keyid)
|
};
|
try
|
{
|
_dataBase.Query("sp_OA_WagePieceRecord_DeleteRow", CommandType.StoredProcedure, sqlParms.ToArray<SqlParameter>());
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
|
return true;
|
}
|
|
/// <summary>
|
/// 分页查询
|
/// </summary>
|
/// <param name="query"></param>
|
/// <param name="pagination"></param>
|
/// <returns></returns>
|
public IEnumerable<Model.OA_WagePieceRecord> SelectModelPage(Infrastructure.Query.Query query, Infrastructure.Query.Pagination pagination)
|
{
|
throw new NotImplementedException();
|
}
|
|
/// <summary>
|
/// 单个查询
|
/// </summary>
|
/// <param name="query"></param>
|
/// <returns></returns>
|
public IEnumerable<Model.OA_WagePieceRecord> SelectAllModel(Infrastructure.Query.Query query)
|
{
|
throw new NotImplementedException();
|
}
|
|
/// <summary>
|
/// 根据编号获得信息
|
/// </summary>
|
/// <param name="Keyid">编号</param>
|
/// <returns></returns>
|
public OA_WagePieceRecord GetModelByKeyid(int? Keyid)
|
{
|
try
|
{
|
if (Keyid == null || Keyid < 0)
|
return null;//错误数据返会空
|
|
IList<OA_WagePieceRecord> result = _dataBase.SelectModel<OA_WagePieceRecord>(" * ", " OA_WagePieceRecord ", string.Format(" Keyid='{0}'", Keyid)) as IList<OA_WagePieceRecord>;//执行查询
|
|
return (null == result || result.Count == 0) ? null : result[0];//返回结果
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
}
|
|
/// <summary>
|
/// 分页查询
|
/// </summary>
|
/// <param name="pagination"></param>
|
/// <returns></returns>
|
public IEnumerable<Model.OA_WagePieceRecord> 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<Model.OA_WagePieceRecord>(pagination, " * ", " OA_WagePieceRecord ", " Keyid desc", " Keyid desc ", condition);
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
}
|
|
/// <summary>
|
/// 分页查询
|
/// </summary>
|
/// <param name="pagination"></param>
|
/// <returns></returns>
|
public IEnumerable<Model.OA_WagePieceRecord> 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<Model.OA_WagePieceRecord>(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;
|
}
|
}
|
|
/// <summary>
|
/// 分页查询
|
/// </summary>
|
/// <param name="pagination"></param>
|
/// <returns></returns>
|
public IEnumerable<Model.OA_WagePieceRecord> 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<Model.OA_WagePieceRecord>(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;
|
}
|
}
|
|
}
|
}
|