using Infrastructure.Attribute; using Infrastructure.Extensions; using ZR.Model.Business.Dto; using ZR.Model.Business; using ZR.Repository; using ZR.Service.Business.IBusinessService; namespace ZR.Service.Business { /// /// 月报表Service业务层处理 /// [AppService(ServiceType = typeof(ICamWorkersService), ServiceLifetime = LifeTime.Transient)] public class CamWorkersService : BaseService, ICamWorkersService { private readonly ICamWorkrecordService _camWorkrecordService; private readonly ICamWorkerService _camWorkerService; public CamWorkersService(ICamWorkrecordService camWorkrecordService, ICamWorkerService camWorkerService) { _camWorkrecordService = camWorkrecordService; _camWorkerService = camWorkerService; } /// /// 查询月报表列表 /// /// /// public List GetList(CamWorkersQueryDto parm) { string where = ""; if (!string.IsNullOrEmpty(parm.WorkerName)) { where += $" and w.WorkerName like '%{parm.WorkerName}%'"; } if (parm.YearMonth != null) { where += $" and CONVERT(varchar(7), CAST(r.RecordTime AS date), 120) = '{parm.YearMonth}'"; } var predicate = QueryExp(parm); var list = Context.Ado.SqlQuery($@" SELECT r.DeptName, w.WorkerName, CONVERT(varchar(7), CAST(r.RecordTime AS date), 120) AS YearMonth, COUNT(DISTINCT CAST(r.RecordTime AS date)) AS WorkDays FROM cam_worker w LEFT JOIN cam_workrecord r ON w.workrecordId = r.Id where r.RecordTime is not null {where} GROUP BY r.DeptName, w.WorkerName, CONVERT(varchar(7), CAST(r.RecordTime AS date), 120) ORDER BY r.DeptName, w.WorkerName, YearMonth "); //.Where(predicate.ToExpression()) //var response = Queryable() // //.OrderBy("WorkerName asc") // .Where(predicate.ToExpression()) // .ToPage(parm); return list; } /// /// 获取详情 /// /// /// public CamWorkers GetInfo(long Id) { var response = Queryable() .Where(x => x.Id == Id) .First(); return response; } /// /// 添加月报表 /// /// /// public CamWorkers AddCamWorkers(CamWorkers model) { return Insertable(model).ExecuteReturnEntity(); } /// /// 导出月报表 /// /// /// public List ExportList(CamWorkersQueryDto parm) { return GetList(parm); } /// /// 查询导出表达式 /// /// /// private static Expressionable QueryExp(CamWorkersQueryDto parm) { var predicate = Expressionable.Create(); return predicate; } } }