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; } } } }