diff --git a/DOAN.Admin.WebApi/Controllers/MES/group/GroupPersonOfSkillMatrixController.cs b/DOAN.Admin.WebApi/Controllers/MES/group/GroupPersonOfSkillMatrixController.cs
index 84fb692..7a76bf0 100644
--- a/DOAN.Admin.WebApi/Controllers/MES/group/GroupPersonOfSkillMatrixController.cs
+++ b/DOAN.Admin.WebApi/Controllers/MES/group/GroupPersonOfSkillMatrixController.cs
@@ -53,6 +53,15 @@ namespace DOAN.Admin.WebApi.Controllers
return SUCCESS(response);
}
+ //TODO 获取人员在某一工艺流程下技能的详情
+ [HttpPost("get_detail")]
+ public IActionResult GetSkillsDetailofPepole([FromBody] HandleSkillQueryDto parm)
+ {
+ var response = _SkillMatrixService.GetSkillsDetailofPepole(parm);
+
+ return SUCCESS(response);
+
+ }
}
}
\ No newline at end of file
diff --git a/DOAN.Model/MES/group/Dto/HandleSkillInfoDto.cs b/DOAN.Model/MES/group/Dto/HandleSkillInfoDto.cs
new file mode 100644
index 0000000..848ffb4
--- /dev/null
+++ b/DOAN.Model/MES/group/Dto/HandleSkillInfoDto.cs
@@ -0,0 +1,156 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DOAN.Model.MES.group.Dto
+{
+ public class HandleSkillQueryDto
+ {
+ ///
+ /// 人员清单
+ ///
+ public string[] person_id { get; set; }
+ ///
+ /// 路线id
+ ///
+ public int Route_id { get; set; }
+
+ }
+ ///
+ /// 人员技能矩阵
+ ///
+ public class HandleSkillInfoDto
+ {
+ ///
+ /// 工艺流程名称
+ ///
+ public string RouteName { get; set; }
+
+
+
+ ///
+ /// 工艺流程绑定的工序
+ ///
+ public List colums { get; set; }
+
+
+
+ ///
+ /// 人员技能列表
+ ///
+ public List tableList { get; set; }
+
+
+ }
+ ///
+ /// 工序详情
+ ///
+ public class Columprocesses
+ {
+ ///
+ /// 工序名称
+ ///
+ public string processesName { get; set; }
+ ///
+ /// 工序绑定的工位
+ ///
+ public List chlidren { get; set; }
+
+
+
+ }
+
+ ///
+ /// 工位
+ ///
+ public class StationChlidren
+ {
+ ///
+ /// 工位名称
+ ///
+ public string stationName { get; set; }
+
+ ///
+ /// 技能描述
+ ///
+ public List children { get; set; }
+ }
+
+ ///
+ /// 技能描述
+ ///
+ public class Skillschlidren
+ {
+ ///
+ /// 技能id
+ ///
+ public string skillId { get; set; }
+ ///
+ /// 技能名称
+ ///
+ public string skillName { get; set; }
+ }
+ ///
+ /// 个人的技能
+ ///
+ public class PersonOfKills
+ {
+ ///
+ /// 个人id
+ ///
+ public string personId { get; set; }
+ ///
+ /// 工号
+ ///
+ public string workNum { get; set; }
+ ///
+ /// 职位
+ ///
+ public string postName { get; set; }
+ ///
+ /// 姓名
+ ///
+ public string personName { get; set; }
+
+ }
+
+
+ ///
+ /// 人员技能增加属性
+ ///
+ public static class PersonOfKillsExtensions
+ {
+ ///
+ /// 获取属性
+ ///
+ ///
+ ///
+ ///
+ public static string GetScore(this PersonOfKills person, string Property)
+ {
+ return person.GetType().GetProperty(Property).GetValue(person)?.ToString();
+ }
+ ///
+ /// 设置属性
+ ///
+ ///
+ ///
+ ///
+ public static void SetScore(this PersonOfKills person, string Property, int value)
+ {
+ var propertyInfo = person.GetType().GetProperty(Property);
+ if (propertyInfo != null && propertyInfo.CanWrite)
+ {
+ propertyInfo.SetValue(person, value);
+ }
+ }
+ }
+
+}
+
+
+
+
+
diff --git a/DOAN.Service/MES/group/GroupScheduleService.cs b/DOAN.Service/MES/group/GroupScheduleService.cs
index e365c58..f4efe85 100644
--- a/DOAN.Service/MES/group/GroupScheduleService.cs
+++ b/DOAN.Service/MES/group/GroupScheduleService.cs
@@ -334,10 +334,8 @@ namespace DOAN.Service.Business
if(item.FkSkillId == item2.FkSkillId)
{
item.WorkStationDescription = item.WorkStationDescription;
- }
-
+ }
}
-
}
return result_List;
diff --git a/DOAN.Service/MES/group/IService/ISkillMatrixService.cs b/DOAN.Service/MES/group/IService/ISkillMatrixService.cs
index 6e73af7..b3a439d 100644
--- a/DOAN.Service/MES/group/IService/ISkillMatrixService.cs
+++ b/DOAN.Service/MES/group/IService/ISkillMatrixService.cs
@@ -5,6 +5,7 @@ using DOAN.Model.MES.group;
using DOAN.Model.MES.group.Dto;
using System.Collections.Generic;
using DOAN.Model.MES.base_;
+using Microsoft.AspNetCore.Mvc;
namespace DOAN.Service.MES.group.IService
{
@@ -16,5 +17,7 @@ namespace DOAN.Service.MES.group.IService
List GetAllRoutes();
List GetPersonsList(string group_schedule_id);
+
+ HandleSkillInfoDto GetSkillsDetailofPepole(HandleSkillQueryDto parm);
}
}
diff --git a/DOAN.Service/MES/group/SkillMatrixService.cs b/DOAN.Service/MES/group/SkillMatrixService.cs
index 75f43a4..bf18c23 100644
--- a/DOAN.Service/MES/group/SkillMatrixService.cs
+++ b/DOAN.Service/MES/group/SkillMatrixService.cs
@@ -14,6 +14,7 @@ using System.Linq;
using Mapster;
using DOAN.Service.MES.group.IService;
using DOAN.Model.MES.base_;
+using NPOI.SS.Formula.Functions;
namespace DOAN.Service.group
{
@@ -25,9 +26,9 @@ namespace DOAN.Service.group
{
public List GetAllGroups(DateTime date)
{
- return Context.Queryable().Where(it=>it.Status==1)
- .Where(it=>it.ScheduleDate==date)
- .ToList();
+ return Context.Queryable().Where(it => it.Status == 1)
+ .Where(it => it.ScheduleDate == date)
+ .ToList();
}
@@ -43,5 +44,129 @@ namespace DOAN.Service.group
return null;
}
+
+ ///
+ /// 获取人员在某一工艺流程下技能的详情
+ ///
+ ///
+ ///
+ public HandleSkillInfoDto GetSkillsDetailofPepole(HandleSkillQueryDto parm)
+ {
+ HandleSkillInfoDto handleSkillInfoDto = new HandleSkillInfoDto();
+
+ // 3 人员技能列表
+
+
+ List personOfKills_List = new List();
+ List groupPeople = Context.Queryable().LeftJoin((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)
+ {
+ PersonOfKills personOfKills = new PersonOfKills();
+ personOfKills.personId = person.Id;
+ personOfKills.workNum = person.WorkNum;
+ personOfKills.postName = person.PostName;
+ personOfKills_List.Add(personOfKills);
+ }
+ }
+ handleSkillInfoDto.tableList = personOfKills_List;
+
+
+
+ // 1 获取工艺流程
+ handleSkillInfoDto.RouteName = Context.Queryable().Where(it => it.Id == parm.Route_id).Select(it => it.Name).First();
+ // 2 获取工艺流程绑定的工序
+ List Processess = Context.Queryable().LeftJoin((rel, p) => rel.FkWorkProcesses == p.Id)
+ .Where((rel, p) => rel.FkWorkRoute == parm.Route_id).Select((rel, p) => p).ToList();
+
+
+ List colums_process_List=new List();
+ int index = 1;
+ if (Processess != null && Processess.Count() > 0)
+ {
+
+ foreach (var processItem in Processess)
+ {
+
+ Columprocesses columprocesses = new Columprocesses();
+ columprocesses.processesName = processItem.Name;
+
+ List chlidren_workstation_List=new List();
+ // 获取工序下的工位
+ List workStationList = Context.Queryable().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 skillList = Context.Queryable()
+ .LeftJoin((rel, skill) => rel.FkSkillId == skill.Id)
+ .Where((rel, skill) => rel.FkWorkstationId == workstation_item.Id)
+ .Select((rel, skill) => skill)
+ .Distinct()
+ .ToList();
+ List children_skill_list = new List();
+
+ 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(var person in handleSkillInfoDto.tableList)
+ {
+ int? score= Context.Queryable()
+ .Where(it => it.FkSkillId == skill_item.Id)
+ .Where(it => it.FkPersonId == person.personId)
+ .Select(it=>it.Score).First();
+ if(score!=null)
+ {
+ person.SetScore("score" + index, score.Value);
+ }
+
+
+ index++;
+
+
+ }
+
+
+ }
+ }
+ chlidren.children = children_skill_list;
+ chlidren_workstation_List.Add(chlidren);
+
+
+ }
+ }
+
+ columprocesses.chlidren = chlidren_workstation_List;
+ colums_process_List.Add(columprocesses);
+ }
+
+ }
+ handleSkillInfoDto.colums = colums_process_List;
+
+
+
+
+ return handleSkillInfoDto;
+
+ }
}
}
\ No newline at end of file