115 lines
3.5 KiB
C#
115 lines
3.5 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// 月报表Service业务层处理
|
|
/// </summary>
|
|
[AppService(ServiceType = typeof(ICamWorkersService), ServiceLifetime = LifeTime.Transient)]
|
|
public class CamWorkersService : BaseService<CamWorkers>, ICamWorkersService
|
|
{
|
|
private readonly ICamWorkrecordService _camWorkrecordService;
|
|
private readonly ICamWorkerService _camWorkerService;
|
|
public CamWorkersService(ICamWorkrecordService camWorkrecordService, ICamWorkerService camWorkerService)
|
|
{
|
|
|
|
|
|
_camWorkrecordService = camWorkrecordService;
|
|
_camWorkerService = camWorkerService;
|
|
}
|
|
/// <summary>
|
|
/// 查询月报表列表
|
|
/// </summary>
|
|
/// <param name="parm"></param>
|
|
/// <returns></returns>
|
|
public List<WorkerMonthlyWorkDays> 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<WorkerMonthlyWorkDays>($@"
|
|
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<CamWorkers, CamWorkersDto>(parm);
|
|
|
|
return list;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 获取详情
|
|
/// </summary>
|
|
/// <param name="Id"></param>
|
|
/// <returns></returns>
|
|
public CamWorkers GetInfo(long Id)
|
|
{
|
|
var response = Queryable()
|
|
.Where(x => x.Id == Id)
|
|
.First();
|
|
|
|
return response;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 添加月报表
|
|
/// </summary>
|
|
/// <param name="model"></param>
|
|
/// <returns></returns>
|
|
public CamWorkers AddCamWorkers(CamWorkers model)
|
|
{
|
|
return Insertable(model).ExecuteReturnEntity();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 导出月报表
|
|
/// </summary>
|
|
/// <param name="parm"></param>
|
|
/// <returns></returns>
|
|
public List<WorkerMonthlyWorkDays> ExportList(CamWorkersQueryDto parm)
|
|
{
|
|
return GetList(parm);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询导出表达式
|
|
/// </summary>
|
|
/// <param name="parm"></param>
|
|
/// <returns></returns>
|
|
private static Expressionable<CamWorkrecord> QueryExp(CamWorkersQueryDto parm)
|
|
{
|
|
var predicate = Expressionable.Create<CamWorkrecord>();
|
|
|
|
return predicate;
|
|
}
|
|
}
|
|
} |