班组修改
This commit is contained in:
182
DOAN.Service/MES/Group/SkillMatrixService.cs
Normal file
182
DOAN.Service/MES/Group/SkillMatrixService.cs
Normal file
@@ -0,0 +1,182 @@
|
||||
using DOAN.Model.MES.group;
|
||||
using DOAN.Service.group.IService;
|
||||
using System;
|
||||
using SqlSugar;
|
||||
using Infrastructure.Attribute;
|
||||
using Infrastructure.Extensions;
|
||||
using DOAN.Model;
|
||||
using DOAN.Model.MES.group.Dto;
|
||||
using DOAN.Model.MES.group;
|
||||
using DOAN.Repository;
|
||||
using DOAN.Service.group.IService;
|
||||
|
||||
using System.Linq;
|
||||
using Mapster;
|
||||
using DOAN.Service.MES.group.IService;
|
||||
using DOAN.Model.MES.base_;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using System.Dynamic;
|
||||
|
||||
namespace DOAN.Service.group
|
||||
{
|
||||
/// <summary>
|
||||
/// 班次Service业务层处理
|
||||
/// </summary>
|
||||
[AppService(ServiceType = typeof(ISkillMatrixService), ServiceLifetime = LifeTime.Transient)]
|
||||
public class SkillMatrixService : BaseService<GroupShift>, ISkillMatrixService
|
||||
{
|
||||
public List<GroupSchedule> GetAllGroups(DateTime date)
|
||||
{
|
||||
return Context.Queryable<GroupSchedule>().Where(it => it.Status == 1)
|
||||
.Where(it => it.ScheduleDate == date)
|
||||
.ToList();
|
||||
|
||||
}
|
||||
|
||||
public List<BaseWorkRoute> GetAllRoutes()
|
||||
{
|
||||
return Context.Queryable<BaseWorkRoute>().Where(it => it.Status == 1).ToList();
|
||||
}
|
||||
public List<GroupPerson> GetPersonsList(string group_schedule_id)
|
||||
{
|
||||
var query = Context.Queryable<GroupRelPersonGroup>()
|
||||
.Where(it => it.FkGroupId == group_schedule_id);
|
||||
var result = Context.Queryable(query).LeftJoin<GroupPerson>((q, p) => q.FkPersonId == p.Id)
|
||||
.Select((q, p) => p).ToList();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取人员在某一工艺流程下技能的详情
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public HandleSkillInfoDto GetSkillsDetailofPepole(HandleSkillQueryDto parm)
|
||||
{
|
||||
HandleSkillInfoDto handleSkillInfoDto = new HandleSkillInfoDto();
|
||||
|
||||
// 3 人员技能列表
|
||||
|
||||
|
||||
List<dynamic> personOfKills_List = new List<dynamic>();
|
||||
List<GroupPersonDto> groupPeople = Context.Queryable<GroupPerson>().LeftJoin<GroupPost>((pe, po) => pe.FkPost == po.Id)
|
||||
.Where((pe, po) => parm.person_id.Contains(pe.Id))
|
||||
.Select((pe, po) => new GroupPersonDto() { PostName = po.PostName }, true)
|
||||
.ToList();
|
||||
if (groupPeople != null && groupPeople.Count() > 0)
|
||||
{
|
||||
foreach (GroupPersonDto person in groupPeople)
|
||||
{
|
||||
dynamic personOfKills = new ExpandoObject();
|
||||
personOfKills.personId = person.Id;
|
||||
personOfKills.personName = person.Name;
|
||||
personOfKills.workNum = person.WorkNum;
|
||||
personOfKills.postName = person.PostName;
|
||||
personOfKills_List.Add(personOfKills);
|
||||
}
|
||||
}
|
||||
handleSkillInfoDto.tableList = personOfKills_List;
|
||||
|
||||
|
||||
|
||||
// 1 获取工艺流程
|
||||
handleSkillInfoDto.RouteName = Context.Queryable<BaseWorkRoute>().Where(it => it.Id == parm.Route_id).Select(it => it.Name).First();
|
||||
// 2 获取工艺流程绑定的工序
|
||||
List<BaseWorkProcesses> Processess = Context.Queryable<BaseRelWorkRouteProcesses>().LeftJoin<BaseWorkProcesses>((rel, p) => rel.FkWorkProcesses == p.Id)
|
||||
.Where((rel, p) => rel.FkWorkRoute == parm.Route_id).Select((rel, p) => p).ToList();
|
||||
|
||||
|
||||
List<Columprocesses> colums_process_List = new List<Columprocesses>();
|
||||
|
||||
if (Processess != null && Processess.Count() > 0)
|
||||
{
|
||||
|
||||
foreach (var processItem in Processess)
|
||||
{
|
||||
|
||||
Columprocesses columprocesses = new Columprocesses();
|
||||
columprocesses.processesName = processItem.Name;
|
||||
|
||||
List<StationChlidren> chlidren_workstation_List = new List<StationChlidren>();
|
||||
// 获取工序下的工位
|
||||
List<BaseWorkStation> workStationList = Context.Queryable<BaseWorkStation>().Where(it => it.FkWorkProcesses == processItem.Id).ToList();
|
||||
|
||||
if (workStationList != null && workStationList.Count() > 0)
|
||||
{
|
||||
|
||||
foreach (var workstation_item in workStationList)
|
||||
{
|
||||
|
||||
StationChlidren chlidren = new StationChlidren();
|
||||
chlidren.stationName = workstation_item.WorkStationDescription;
|
||||
|
||||
// 获取工位下的技能
|
||||
List<GroupPersonSkill> skillList = Context.Queryable<GroupRelWorkstationSkill>()
|
||||
.LeftJoin<GroupPersonSkill>((rel, skill) => rel.FkSkillId == skill.Id)
|
||||
.Where((rel, skill) => rel.FkWorkstationId == workstation_item.Id)
|
||||
.Select((rel, skill) => skill)
|
||||
.Distinct()
|
||||
.ToList();
|
||||
List<Skillschlidren> children_skill_list = new List<Skillschlidren>();
|
||||
|
||||
if (skillList != null && skillList.Count() > 0)
|
||||
{
|
||||
foreach (var skill_item in skillList)
|
||||
{
|
||||
Skillschlidren skillschlidren = new Skillschlidren();
|
||||
skillschlidren.skillId = skill_item.Id;
|
||||
skillschlidren.skillName = skill_item.SkillName;
|
||||
children_skill_list.Add(skillschlidren);
|
||||
|
||||
// 判断在这个工位这个技能在某个人的评分
|
||||
|
||||
foreach (dynamic person in handleSkillInfoDto.tableList)
|
||||
{
|
||||
string person_id = person.personId;
|
||||
GroupRelPersonSkill skill = Context.Queryable<GroupRelPersonSkill>()
|
||||
.Where(it => it.FkSkillId == skill_item.Id)
|
||||
.Where(it => it.FkPersonId == person_id)
|
||||
.First();
|
||||
|
||||
if (skill != null)
|
||||
{
|
||||
//person.SetScore(skill.FkSkillId + index, skill.Score.Value);
|
||||
// person[skill.FkSkillId + index] = skill.Score.Value;
|
||||
IDictionary<string, object> personDict = (IDictionary<string, object>)person;
|
||||
string key = skill.FkSkillId;
|
||||
personDict[key] = skill.Score.Value;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
chlidren.children = children_skill_list;
|
||||
chlidren_workstation_List.Add(chlidren);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
columprocesses.children = chlidren_workstation_List;
|
||||
colums_process_List.Add(columprocesses);
|
||||
}
|
||||
|
||||
}
|
||||
handleSkillInfoDto.colums = colums_process_List;
|
||||
|
||||
|
||||
|
||||
|
||||
return handleSkillInfoDto;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user