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