浏览代码

产能计算调整

heteng 3 年之前
父节点
当前提交
4873dfcbeb

+ 2 - 1
MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/Dto/TechProcDto.cs

@@ -1,4 +1,5 @@
 using Bussiness.Model.Tech;
+using Bussiness.MongoModel.Tech;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -20,7 +21,7 @@ namespace Business.ResourceExamineManagement.Dto
         /// <summary>
         /// 工艺路径
         /// </summary>
-        public List<mes_tech_process> processes { get; set; }
+        public List<mo_mes_tech_process> processes { get; set; }
 
         /// <summary>
         /// 工序详细情况

+ 30 - 34
MicroServices/Business/Business.Application/ResourceExamineManagement/ProductExamineAppService.cs

@@ -2,6 +2,8 @@
 using Business.ResourceExamineManagement.Dto;
 using Bussiness.Model.Production;
 using Bussiness.Model.Tech;
+using Bussiness.MongoModel.Production;
+using Bussiness.MongoModel.Tech;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -21,47 +23,47 @@ namespace Business.ResourceExamineManagement
         /// <summary>
         /// 工艺路径
         /// </summary>
-        private readonly IMongoDB<mes_technique> _mes_technique;
+        private readonly IMongoDB<mo_mes_technique> _mes_technique;
 
         /// <summary>
         /// 工序
         /// </summary>
-        private readonly IMongoDB<mes_process> _mes_process;
+        private readonly IMongoDB<mo_mes_process> _mes_process;
 
         /// <summary>
         /// 工艺关联工序
         /// </summary>
-        private readonly IMongoDB<mes_tech_process> _mes_tech_process;
+        private readonly IMongoDB<mo_mes_tech_process> _mes_tech_process;
 
         /// <summary>
         /// 工作日历
         /// </summary>
-        private readonly IMongoDB<mes_work_calendar> _mes_work_calendar;
+        private readonly IMongoDB<mo_mes_work_calendar> _mes_work_calendar;
 
         /// <summary>
         /// 工作日历明细
         /// </summary>
-        private readonly IMongoDB<mes_work_calendar_list> _mes_work_calendar_list;
+        private readonly IMongoDB<mo_mes_work_calendar_list> _mes_work_calendar_list;
 
         /// <summary>
         /// 工艺工序关联工位
         /// </summary>
-        private readonly IMongoDB<mes_tech_proc_workshop> _mes_tech_proc_workshop;
+        private readonly IMongoDB<mo_mes_tech_proc_workshop> _mes_tech_proc_workshop;
 
         /// <summary>
         /// 排程占用记录
         /// </summary>
-        private readonly IMongoDB<mes_schedule_occupy> _mes_schedule_occupy;
+        private readonly IMongoDB<mo_mes_schedule_occupy> _mes_schedule_occupy;
         #endregion
 
         /// <summary>
         /// 构造函数
         /// </summary>
         public ProductExamineAppService(
-            IMongoDB<mes_technique> mes_technique,
-            IMongoDB<mes_process> mes_process,
-            IMongoDB<mes_tech_process> mes_tech_process,
-            IMongoDB<mes_tech_proc_workshop> mes_tech_proc_workshop
+            IMongoDB<mo_mes_technique> mes_technique,
+            IMongoDB<mo_mes_process> mes_process,
+            IMongoDB<mo_mes_tech_process> mes_tech_process,
+            IMongoDB<mo_mes_tech_proc_workshop> mes_tech_proc_workshop
             )
         {
             _mes_technique = mes_technique;
@@ -79,42 +81,36 @@ namespace Business.ResourceExamineManagement
         {
             if (param.packages <= 0)
             {
-                var rtn = 10 * param.packages;
-                return rtn;
-                //throw new NotImplementedException("产能计算参数有误!");
+                throw new NotImplementedException("产能计算参数有误!");
             }
             #region 1、数据准备
             //1.1、获取工艺路径数据
-            mes_technique tech = _mes_technique.Find(p => p.bom == param.bom_number && p.bomver == param.version && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted).Result.FirstOrDefault();
+            mo_mes_technique tech = _mes_technique.Find(p => p.bom == param.bom_number && p.bomver == param.version && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted).Result.FirstOrDefault();
             if (tech == null)
             {
-                var rtn = 10 * param.packages;
-                return rtn;
-                //throw new NotImplementedException("请先配置工艺路径!");
+                throw new NotImplementedException("请先配置工艺路径!");
             }
 
             //1.2、获取工艺路径关联工序数据
-            List<mes_tech_process> tech_Processes = await _mes_tech_process.GetManyByCondition(p => p.tech_id == tech.Id && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted);
+            List<mo_mes_tech_process> tech_Processes = await _mes_tech_process.GetManyByCondition(p => p.tech_id == tech.mysql_id && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted);
             if (tech_Processes.Count == 0)
             {
-                var rtn = 10 * param.packages;
-                return rtn;
-                //throw new NotImplementedException("请先配置工序!");
+                throw new NotImplementedException("请先配置工序!");
             }
 
             //1.3、获取当前工艺路径下的工序数据
             //FilterDefinition<mes_process> filter = Builders<mes_process>.Filter.In(s => s.Id, tech_Processes.Select(m => m.proc_id).ToList());
             //List<mes_process> process = await _mes_process.GetManyByIds(filter);
             List<long> procIds = tech_Processes.Select(m => m.proc_id.GetValueOrDefault()).ToList();
-            List<mes_process> process = await _mes_process.GetManyByCondition(p => procIds.Contains(p.Id) && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted);
+            List<mo_mes_process> process = await _mes_process.GetManyByCondition(p => procIds.Contains(p.mysql_id) && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted);
 
             //1.3、获取工艺工序关联工位信息
-            List<long> techProcIds = tech_Processes.Select(m => m.Id).ToList();
-            List<mes_tech_proc_workshop> tech_Proc_Workshops = await _mes_tech_proc_workshop.GetManyByCondition(p => techProcIds.Contains(p.tech_proc_id.Value) && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted);
+            List<long> techProcIds = tech_Processes.Select(m => m.mysql_id).ToList();
+            List<mo_mes_tech_proc_workshop> tech_Proc_Workshops = await _mes_tech_proc_workshop.GetManyByCondition(p => techProcIds.Contains(p.tech_proc_id.Value) && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted);
             #endregion
 
             //1、获取工艺路径下的第一层级工序:目前只考虑第一层级
-            List<mes_tech_process> fistLevels = tech_Processes.Where(p => p.parentprocid == tech.Id).ToList();
+            List<mo_mes_tech_process> fistLevels = tech_Processes.Where(p => p.parentprocid == tech.mysql_id).ToList();
             if (fistLevels.Count == 0)
             {
                 throw new NotImplementedException("当前工艺路径没有配置工序,请调整!");
@@ -132,7 +128,7 @@ namespace Business.ResourceExamineManagement
         /// <param name="processes">工艺关联工序list</param>
         /// <param name="packages">生产件数</param>
         /// <returns></returns>
-        private List<TechProcDto> TechProcPretreatment(List<mes_tech_process> processes,int packages)
+        private List<TechProcDto> TechProcPretreatment(List<mo_mes_tech_process> processes,int packages)
         { 
             //工艺路径预处理dto
             List<TechProcDto> techProcDtos = new List<TechProcDto>();
@@ -142,11 +138,11 @@ namespace Business.ResourceExamineManagement
             //获取起点工序
             var startProcs = processes.Where(p => !nextProcIds.Contains(p.proc_id.GetValueOrDefault())).ToList();
             //递归处理工序返回值
-            List<mes_tech_process> rtnList;
+            List<mo_mes_tech_process> rtnList;
             for (int i = 0; i < startProcs.Count; i++)
             {
                 dto = new TechProcDto();
-                rtnList = new List<mes_tech_process>();
+                rtnList = new List<mo_mes_tech_process>();
                 GetNextProc(startProcs[i], processes, rtnList);
                 dto.serialno = i + 1;
                 dto.processes = rtnList;
@@ -164,7 +160,7 @@ namespace Business.ResourceExamineManagement
         /// <param name="proc"></param>
         /// <param name="processes"></param>
         /// <param name="rtnList"></param>
-        private void GetNextProc(mes_tech_process proc, List<mes_tech_process> processes, List<mes_tech_process> rtnList)
+        private void GetNextProc(mo_mes_tech_process proc, List<mo_mes_tech_process> processes, List<mo_mes_tech_process> rtnList)
         {
             rtnList.Add(proc);
             //下一工序id为null,终止
@@ -187,7 +183,7 @@ namespace Business.ResourceExamineManagement
         /// <param name="Processes"></param>
         /// <param name="packages"></param>
         /// <returns></returns>
-        private List<StartTimeDto> CalcTakeTimeByLq(List<mes_tech_process> Processes, int packages)
+        private List<StartTimeDto> CalcTakeTimeByLq(List<mo_mes_tech_process> Processes, int packages)
         {
             //工序需要等待时间记录
             List<StartTimeDto> starts = new List<StartTimeDto>();
@@ -217,7 +213,7 @@ namespace Business.ResourceExamineManagement
         /// <param name="quantity">LeadQuantity to Start Next</param>
         /// <param name="packages">件数</param>
         /// <returns></returns>
-        private StartTimeDto CalcProcTakeTimeByLq(mes_tech_process proc, decimal quantity, int packages)
+        private StartTimeDto CalcProcTakeTimeByLq(mo_mes_tech_process proc, decimal quantity, int packages)
         {
             //记录当前工序耗时
             StartTimeDto dto = new StartTimeDto();
@@ -261,7 +257,7 @@ namespace Business.ResourceExamineManagement
         /// <param name="Processes"></param>
         /// <param name="packages"></param>
         /// <returns></returns>
-        private List<StartTimeDto> CalcTakeTimeByLqt(List<mes_tech_process> Processes, int packages)
+        private List<StartTimeDto> CalcTakeTimeByLqt(List<mo_mes_tech_process> Processes, int packages)
         {
             //工序需要等待时间记录
             List<StartTimeDto> starts = new List<StartTimeDto>();
@@ -296,7 +292,7 @@ namespace Business.ResourceExamineManagement
         /// <param name="proc"></param>
         /// <param name="packages">件数</param>
         /// <returns></returns>
-        private decimal CalcProcTakeTime(mes_tech_process proc, int packages)
+        private decimal CalcProcTakeTime(mo_mes_tech_process proc, int packages)
         {
             //当前工序生产时间
             decimal takeTiem = 0.00m;