获取员工绩效列表
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
using DOAN.Admin.WebApi.Filters;
|
||||
using DOAN.Model.MES.Group.Dto;
|
||||
using DOAN.Service.MES.Group.IService;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
namespace DOAN.Admin.WebApi.Controllers.MES.Group
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 员工绩效
|
||||
/// </summary>
|
||||
[Verify]
|
||||
[Route("mes/deviceManagement/DeviceAccount")]
|
||||
public class AchievementController : BaseController
|
||||
{
|
||||
private readonly IAchievementService _achievementService;
|
||||
public AchievementController(IAchievementService achievementService)
|
||||
{
|
||||
_achievementService = achievementService;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取y工绩效列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("get_staff_achievement_list")]
|
||||
public IActionResult GetstaffAchievementList([FromBody]AchievementQueryDto parm)
|
||||
{
|
||||
var response = _achievementService.GetstaffAchievementList(parm);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
100
DOAN.Model/MES/Group/Dto/AchievementDto.cs
Normal file
100
DOAN.Model/MES/Group/Dto/AchievementDto.cs
Normal file
@@ -0,0 +1,100 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DOAN.Model.MES.Group.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 员工业绩Dto
|
||||
/// </summary>
|
||||
public class AchievementDto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 员工
|
||||
/// </summary>
|
||||
public string Worker { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 物料领用
|
||||
/// </summary>
|
||||
public int MaterialUse { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工作时间
|
||||
/// </summary>
|
||||
public DateTime? JobDatetime01 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 机械加工
|
||||
/// </summary>
|
||||
public int MechanicalProcessing { get; set; }
|
||||
/// <summary>
|
||||
/// 工作时间
|
||||
/// </summary>
|
||||
public DateTime? JobDatetime02 { get; set; }
|
||||
/// <summary>
|
||||
/// 中间检查
|
||||
/// </summary>
|
||||
public int MiddleCheck { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工作时间
|
||||
/// </summary>
|
||||
public DateTime? JobDatetime03 { get; set; }
|
||||
/// <summary>
|
||||
/// 手工研磨
|
||||
/// </summary>
|
||||
public int Handgrind { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工作时间
|
||||
/// </summary>
|
||||
public DateTime? JobDatetime04 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 机研磨
|
||||
/// </summary>
|
||||
public int Machinegrind { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工作时间
|
||||
/// </summary>
|
||||
public DateTime? JobDatetime05 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 精研磨
|
||||
/// </summary>
|
||||
public int Finegrind { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工作时间
|
||||
/// </summary>
|
||||
public DateTime? JobDatetime06 { get; set; }
|
||||
/// <summary>
|
||||
/// 入库检查
|
||||
/// </summary>
|
||||
public int WarehouseInspection { get; set; }
|
||||
/// <summary>
|
||||
/// 工作时间
|
||||
/// </summary>
|
||||
public DateTime? JobDatetime07 { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 出货
|
||||
/// </summary>
|
||||
public int Shipment { get; set; }
|
||||
/// <summary>
|
||||
/// 工作时间
|
||||
/// </summary>
|
||||
public DateTime? JobDatetime08 { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
17
DOAN.Model/MES/Group/Dto/AchievementQueryDto.cs
Normal file
17
DOAN.Model/MES/Group/Dto/AchievementQueryDto.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DOAN.Model.MES.Group.Dto
|
||||
{
|
||||
public class AchievementQueryDto
|
||||
{
|
||||
public DateTime[] JobDatetime { get; set; }
|
||||
|
||||
public string Worker { get; set; }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
81
DOAN.Service/MES/Group/AchievementService.cs
Normal file
81
DOAN.Service/MES/Group/AchievementService.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
using DOAN.Model.MES.Group.Dto;
|
||||
using DOAN.Model.MES.order;
|
||||
using DOAN.Model.MES.order.Dto;
|
||||
using DOAN.Model.MES.product;
|
||||
using DOAN.Model.MES.product.Dto;
|
||||
using DOAN.Service.MES.Group.IService;
|
||||
using DOAN.Service.MES.Order.IService;
|
||||
using Infrastructure.Attribute;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DOAN.Service.MES.Group
|
||||
{
|
||||
[AppService(ServiceType = typeof(IAchievementService), ServiceLifetime = LifeTime.Transient)]
|
||||
public class AchievementService : BaseService<ProReportwork01>, IAchievementService
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取员工绩效列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public List<AchievementDto> GetstaffAchievementList(AchievementQueryDto parm)
|
||||
{
|
||||
var predicate = QueryExp(parm);
|
||||
return Context.Queryable<ProReportwork01>().Where(predicate.ToExpression())
|
||||
.GroupBy(x => x.Worker)
|
||||
.Select(it=>new AchievementDto
|
||||
{
|
||||
Worker = it.Worker,
|
||||
|
||||
MaterialUse=SqlFunc.Subqueryable<ProReportwork01>().Where(x=>x.Worker==it.Worker&&x.ProcessId==10).Where(predicate.ToExpression()).Sum(x=>x.FinishNum??0),
|
||||
JobDatetime01=SqlFunc.Subqueryable<ProReportwork01>().Where(x=>x.Worker==it.Worker&&x.ProcessId==10).Where(predicate.ToExpression()).Max(x=>x.JobDateTime),
|
||||
|
||||
MechanicalProcessing = SqlFunc.Subqueryable<ProReportwork01>().Where(x => x.Worker == it.Worker && x.ProcessId == 20).Where(predicate.ToExpression()).Sum(x => x.FinishNum ?? 0),
|
||||
JobDatetime02 = SqlFunc.Subqueryable<ProReportwork01>().Where(x => x.Worker == it.Worker && x.ProcessId == 20).Where(predicate.ToExpression()).Max(x => x.JobDateTime),
|
||||
|
||||
MiddleCheck = SqlFunc.Subqueryable<ProReportwork01>().Where(x => x.Worker == it.Worker && x.ProcessId == 10).Where(predicate.ToExpression()).Sum(x => x.FinishNum ?? 0),
|
||||
JobDatetime03 = SqlFunc.Subqueryable<ProReportwork01>().Where(x => x.Worker == it.Worker && x.ProcessId == 10).Where(predicate.ToExpression()).Max(x => x.JobDateTime),
|
||||
|
||||
|
||||
Handgrind = SqlFunc.Subqueryable<ProReportwork01>().Where(x => x.Worker == it.Worker && x.ProcessId == 10).Where(predicate.ToExpression()).Sum(x => x.FinishNum ?? 0),
|
||||
JobDatetime04 = SqlFunc.Subqueryable<ProReportwork01>().Where(x => x.Worker == it.Worker && x.ProcessId == 10).Where(predicate.ToExpression()).Max(x => x.JobDateTime),
|
||||
|
||||
|
||||
Machinegrind = SqlFunc.Subqueryable<ProReportwork01>().Where(x => x.Worker == it.Worker && x.ProcessId == 10).Where(predicate.ToExpression()).Sum(x => x.FinishNum ?? 0),
|
||||
JobDatetime05 = SqlFunc.Subqueryable<ProReportwork01>().Where(x => x.Worker == it.Worker && x.ProcessId == 10).Where(predicate.ToExpression()).Max(x => x.JobDateTime),
|
||||
|
||||
|
||||
Finegrind = SqlFunc.Subqueryable<ProReportwork01>().Where(x => x.Worker == it.Worker && x.ProcessId == 10).Where(predicate.ToExpression()).Sum(x => x.FinishNum ?? 0),
|
||||
JobDatetime06 = SqlFunc.Subqueryable<ProReportwork01>().Where(x => x.Worker == it.Worker && x.ProcessId == 10).Where(predicate.ToExpression()).Max(x => x.JobDateTime),
|
||||
|
||||
|
||||
WarehouseInspection = SqlFunc.Subqueryable<ProReportwork01>().Where(x => x.Worker == it.Worker && x.ProcessId == 10).Where(predicate.ToExpression()).Sum(x => x.FinishNum ?? 0),
|
||||
JobDatetime07 = SqlFunc.Subqueryable<ProReportwork01>().Where(x => x.Worker == it.Worker && x.ProcessId == 10).Where(predicate.ToExpression()).Max(x => x.JobDateTime),
|
||||
|
||||
|
||||
Shipment = SqlFunc.Subqueryable<ProReportwork01>().Where(x => x.Worker == it.Worker && x.ProcessId == 10).Where(predicate.ToExpression()).Sum(x => x.FinishNum ?? 0),
|
||||
JobDatetime08 = SqlFunc.Subqueryable<ProReportwork01>().Where(x => x.Worker == it.Worker && x.ProcessId == 10).Where(predicate.ToExpression()).Max(x => x.JobDateTime),
|
||||
|
||||
}).Distinct().ToList();
|
||||
}
|
||||
|
||||
private static Expressionable<ProReportwork01> QueryExp(AchievementQueryDto parm)
|
||||
{
|
||||
|
||||
var predicate = Expressionable.Create<ProReportwork01>()
|
||||
.AndIF(!string.IsNullOrEmpty(parm.Worker), it => it.Worker.Contains(parm.Worker))
|
||||
.AndIF(parm.JobDatetime != null&& parm.JobDatetime[0]>DateTime.MinValue, it => it.JobDateTime >=parm.JobDatetime[0])
|
||||
.AndIF(parm.JobDatetime != null&& parm.JobDatetime[0]>DateTime.MinValue, it => it.JobDateTime <=parm.JobDatetime[1])
|
||||
|
||||
|
||||
;
|
||||
|
||||
return predicate;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
16
DOAN.Service/MES/Group/IService/IAchievementService.cs
Normal file
16
DOAN.Service/MES/Group/IService/IAchievementService.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using DOAN.Model.MES.Group.Dto;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DOAN.Service.MES.Group.IService
|
||||
{
|
||||
public interface IAchievementService
|
||||
{
|
||||
List<AchievementDto> GetstaffAchievementList(AchievementQueryDto parm);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user