Quellcode durchsuchen

忽略某些本地项

Murphy vor 2 Jahren
Ursprung
Commit
8ea8fda216

+ 72 - 0
.gitignore

@@ -2029,5 +2029,77 @@ MicroServices/Business/Bussiness.MongoModel/bin/Debug/net6.0/Bussiness.MongoMode
 /MicroServices/Procurement/.vs/ProjectEvaluation/procurement.projects.v6.1
 /MicroServices/Procurement/Procurement.Host/obj/Debug/net6.0/Procurement.Host.csproj.AssemblyReference.cache
 /MicroServices/Business/Bussiness.MongoModel/obj
+MicroServices/Business/Bussiness.ApplicationTest/obj/Business.ApplicationTest.csproj.nuget.dgspec.json
+MicroServices/Business/Bussiness.ApplicationTest/obj/Business.ApplicationTest.csproj.nuget.g.props
+MicroServices/Business/Bussiness.ApplicationTest/obj/Business.ApplicationTest.csproj.nuget.g.targets
+MicroServices/Business/Bussiness.ApplicationTest/obj/Debug/net6.0/Business.ApplicationTest.AssemblyInfo.cs
+MicroServices/Business/Bussiness.ApplicationTest/obj/Debug/net6.0/Business.ApplicationTest.AssemblyInfoInputs.cache
+MicroServices/Business/Bussiness.ApplicationTest/obj/Debug/net6.0/Business.ApplicationTest.assets.cache
+MicroServices/Business/Bussiness.ApplicationTest/obj/Debug/net6.0/Business.ApplicationTest.csproj.AssemblyReference.cache
+MicroServices/Business/Bussiness.ApplicationTest/obj/Debug/net6.0/Business.ApplicationTest.csproj.CopyComplete
+MicroServices/Business/Bussiness.ApplicationTest/obj/Debug/net6.0/Business.ApplicationTest.csproj.CoreCompileInputs.cache
+MicroServices/Business/Bussiness.ApplicationTest/obj/Debug/net6.0/Business.ApplicationTest.csproj.FileListAbsolute.txt
+MicroServices/Business/Bussiness.ApplicationTest/obj/Debug/net6.0/Business.ApplicationTest.dll
+MicroServices/Business/Bussiness.ApplicationTest/obj/Debug/net6.0/Business.ApplicationTest.GeneratedMSBuildEditorConfig.editorconfig
+MicroServices/Business/Bussiness.ApplicationTest/obj/Debug/net6.0/Business.ApplicationTest.genruntimeconfig.cache
+MicroServices/Business/Bussiness.ApplicationTest/obj/Debug/net6.0/Business.ApplicationTest.GlobalUsings.g.cs
+MicroServices/Business/Bussiness.ApplicationTest/obj/Debug/net6.0/ref/Business.ApplicationTest.dll
+MicroServices/Business/Bussiness.ApplicationTest/obj/Debug/net6.0/refint/Business.ApplicationTest.dll
+MicroServices/Business/Bussiness.Domain.Test/obj/Business.Domain.Test.csproj.nuget.dgspec.json
+MicroServices/Business/Bussiness.Domain.Test/obj/Business.Domain.Test.csproj.nuget.g.props
+MicroServices/Business/Bussiness.Domain.Test/obj/Business.Domain.Test.csproj.nuget.g.targets
+MicroServices/Business/Bussiness.Domain.Test/obj/Debug/net6.0/Business.Domain.Test.AssemblyInfo.cs
+MicroServices/Business/Bussiness.Domain.Test/obj/Debug/net6.0/Business.Domain.Test.AssemblyInfoInputs.cache
+MicroServices/Business/Bussiness.Domain.Test/obj/Debug/net6.0/Business.Domain.Test.assets.cache
+MicroServices/Business/Bussiness.Domain.Test/obj/Debug/net6.0/Business.Domain.Test.csproj.AssemblyReference.cache
+MicroServices/Business/Bussiness.Domain.Test/obj/Debug/net6.0/Business.Domain.Test.csproj.CopyComplete
+MicroServices/Business/Bussiness.Domain.Test/obj/Debug/net6.0/Business.Domain.Test.csproj.CoreCompileInputs.cache
+MicroServices/Business/Bussiness.Domain.Test/obj/Debug/net6.0/Business.Domain.Test.csproj.FileListAbsolute.txt
+MicroServices/Business/Bussiness.Domain.Test/obj/Debug/net6.0/Business.Domain.Test.dll
+MicroServices/Business/Bussiness.Domain.Test/obj/Debug/net6.0/Business.Domain.Test.GeneratedMSBuildEditorConfig.editorconfig
+MicroServices/Business/Bussiness.Domain.Test/obj/Debug/net6.0/Business.Domain.Test.genruntimeconfig.cache
+MicroServices/Business/Bussiness.Domain.Test/obj/Debug/net6.0/Business.Domain.Test.GlobalUsings.g.cs
+MicroServices/Business/Bussiness.Domain.Test/obj/Debug/net6.0/Business.Domain.Test.pdb
+MicroServices/Business/Bussiness.Domain.Test/obj/Debug/net6.0/ref/Business.Domain.Test.dll
+MicroServices/Business/Bussiness.Domain.Test/obj/Debug/net6.0/refint/Business.Domain.Test.dll
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Business.EntityFrameworkCore.Test.csproj.nuget.dgspec.json
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Business.EntityFrameworkCore.Test.csproj.nuget.g.props
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Business.EntityFrameworkCore.Test.csproj.nuget.g.targets
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Debug/net6.0/Business.EntityFrameworkCore.Test.AssemblyInfo.cs
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Debug/net6.0/Business.EntityFrameworkCore.Test.AssemblyInfoInputs.cache
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Debug/net6.0/Business.EntityFrameworkCore.Test.assets.cache
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Debug/net6.0/Business.EntityFrameworkCore.Test.csproj.AssemblyReference.cache
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Debug/net6.0/Business.EntityFrameworkCore.Test.csproj.CopyComplete
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Debug/net6.0/Business.EntityFrameworkCore.Test.csproj.CoreCompileInputs.cache
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Debug/net6.0/Business.EntityFrameworkCore.Test.csproj.FileListAbsolute.txt
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Debug/net6.0/Business.EntityFrameworkCore.Test.dll
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Debug/net6.0/Business.EntityFrameworkCore.Test.GeneratedMSBuildEditorConfig.editorconfig
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Debug/net6.0/Business.EntityFrameworkCore.Test.genruntimeconfig.cache
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Debug/net6.0/Business.EntityFrameworkCore.Test.GlobalUsings.g.cs
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Debug/net6.0/Business.EntityFrameworkCore.Test.pdb
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Debug/net6.0/ref/Business.EntityFrameworkCore.Test.dll
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/obj/Debug/net6.0/refint/Business.EntityFrameworkCore.Test.dll
+MicroServices/Business/Bussiness.Model/bin/Debug/net6.0/Business.Model.deps.json
+MicroServices/Business/Bussiness.Model/bin/Debug/net6.0/Business.Model.dll
+MicroServices/Business/Bussiness.Model/bin/Debug/net6.0/Business.Model.pdb
+MicroServices/Business/Bussiness.Model/obj/Business.Model.csproj.nuget.dgspec.json
+MicroServices/Business/Bussiness.Model/obj/Business.Model.csproj.nuget.g.props
+MicroServices/Business/Bussiness.Model/obj/Business.Model.csproj.nuget.g.targets
+MicroServices/Business/Bussiness.Model/obj/Debug/net6.0/Business.Model.AssemblyInfo.cs
+MicroServices/Business/Bussiness.Model/obj/Debug/net6.0/Business.Model.AssemblyInfoInputs.cache
+MicroServices/Business/Bussiness.Model/obj/Debug/net6.0/Business.Model.assets.cache
+MicroServices/Business/Bussiness.Model/obj/Debug/net6.0/Business.Model.csproj.AssemblyReference.cache
+MicroServices/Business/Bussiness.Model/obj/Debug/net6.0/Business.Model.csproj.CopyComplete
+MicroServices/Business/Bussiness.Model/obj/Debug/net6.0/Business.Model.csproj.CoreCompileInputs.cache
+MicroServices/Business/Bussiness.Model/obj/Debug/net6.0/Business.Model.csproj.FileListAbsolute.txt
+MicroServices/Business/Bussiness.Model/obj/Debug/net6.0/Business.Model.dll
+MicroServices/Business/Bussiness.Model/obj/Debug/net6.0/Business.Model.GeneratedMSBuildEditorConfig.editorconfig
+MicroServices/Business/Bussiness.Model/obj/Debug/net6.0/Business.Model.GlobalUsings.g.cs
+MicroServices/Business/Bussiness.Model/obj/Debug/net6.0/Business.Model.pdb
+MicroServices/Business/Bussiness.Model/obj/Debug/net6.0/ref/Business.Model.dll
+MicroServices/Business/Bussiness.Model/obj/Debug/net6.0/refint/Business.Model.dll
+MicroServices/Business/Bussiness.MongoModel/bin/Debug/net6.0/Business.MongoModel.deps.json
+MicroServices/Business/Bussiness.MongoModel/bin/Debug/net6.0/Business.MongoModel.dll
+MicroServices/Business/Bussiness.MongoModel/bin/Debug/net6.0/Business.MongoModel.pdb
 /MicroServices/Business/Business.Application/bin/Release/net6.0
 /MicroServices/Business/Business.Host/Properties/PublishProfiles

+ 1 - 0
MicroServices/Business/Business.Application/Business.Application.csproj

@@ -26,6 +26,7 @@
     <ProjectReference Include="..\Business.Domain\Business.Domain.csproj" />
     <ProjectReference Include="..\Business.EntityFrameworkCore\Business.EntityFrameworkCore.csproj" />
     <ProjectReference Include="..\Bussiness.Model\Business.Model.csproj" />
+    <ProjectReference Include="..\Bussiness.Model\Bussiness.Model.csproj" />
     <ProjectReference Include="..\Bussiness.MongoModel\Business.MongoModel.csproj" />
   </ItemGroup>
 

+ 19 - 6
MicroServices/Business/Business.Application/Quartz/ProductionScheduleAppService.cs

@@ -1,11 +1,10 @@
 using Business.Business.Dto;
 using Business.Core.Utilities;
 using Business.Dto;
+using Business.EntityFrameworkCore;
 using Business.EntityFrameworkCore.SqlRepositories;
 using Business.Model.MES.IC;
 using Business.Model.Production;
-using MongoDB.Driver;
-using MongoDB.Driver.Linq;
 using System;
 using System.Collections.Generic;
 using System.Collections.Immutable;
@@ -101,6 +100,8 @@ namespace Business.Quartz
         /// </summary>
         private List<HolidayMaster> holidays;
 
+        private readonly BusinessDbContext _businessDbContext;
+
         #endregion
 
         #region 构造函数
@@ -119,7 +120,8 @@ namespace Business.Quartz
             ISqlRepository<ShopCalendarWorkCtr> shopCalendarWorkCtr,
             ISqlRepository<ScheduleExceptionMaster> scheduleExceptionMaster,
             ISqlRepository<QualityLineWorkDetail> qualityLineWorkDetail,
-            ISqlRepository<HolidayMaster> holidayMaster
+            ISqlRepository<HolidayMaster> holidayMaster,
+            BusinessDbContext businessDbContext
             )
         { 
             _itemMaster= itemMaster;
@@ -134,6 +136,7 @@ namespace Business.Quartz
             _scheduleExceptionMaster= scheduleExceptionMaster;
             _qualityLineWorkDetail= qualityLineWorkDetail;
             _holidayMaster = holidayMaster;
+            _businessDbContext = businessDbContext;
         }
         #endregion
 
@@ -190,6 +193,8 @@ namespace Business.Quartz
 
                 //工序预处理:确定每层级工序对应的产线
                 List<WorkOrdRoutingDto> routingDtos = ProcPretreatment(item, workOrdRoutings.Where(p => p.WorkOrd == item.WorkOrd).ToList(), prodLines, curSchedules);
+                
+                //排产前的数据校验
                 if (routingDtos.Count() == 0)//没有维护主工序
                 {
                     //记录排产异常原因
@@ -244,7 +249,15 @@ namespace Business.Quartz
 
                 //产线排产
                 LineSchedule(item, routingDtos.OrderBy(p => p.level).ToList(), periodSequenceDtls, scheduleMasters);
+
+                //更新工单表
+                item.Status = "w";
+                await _workOrdMaster.Update(item);
             }
+            //记录排产数据
+            await _businessDbContext.PeriodSequenceDet.BulkInsertAsync(periodSequenceDtls);
+            await _businessDbContext.ScheduleResultOpMaster.BulkInsertAsync(scheduleMasters);
+            await _businessDbContext.ScheduleExceptionMaster.BulkInsertAsync(scheduleExceptions);
         }
 
         /// <summary>
@@ -394,7 +407,7 @@ namespace Business.Quartz
                     }
                 }
             }
-
+            //记录排产结果
             periodsDet.AddRange(curSequences);
             scheduleResults.AddRange(curScheduleRsts);
         }
@@ -689,7 +702,7 @@ namespace Business.Quartz
             dto.ParentOp = lastOp.ParentOp;
             dto.level = 1;
             dto.Op = lastOp.OP;
-            //主工序对应的产线
+            //主工序对应的产线(目前只考虑一个产品对应一条产线的情况)
             var line = prodLines.Where(p => p.Part == lastOp.ItemNum && p.Op == lastOp.OP).FirstOrDefault();
             if (line != null) {
                 dto.Line = line.Line;
@@ -735,7 +748,7 @@ namespace Business.Quartz
                 dto.Op = lastOp.OP;
                 dto.ParentOp = lastOp.ParentOp;
                 dto.level = level + 1;
-                //当前层级工序对应的产线,子产线有多条,则取产能最大的那一条
+                //当前层级工序对应的产线
                 var maxRateLine = prodLines.Where(p => p.Part == lastOp.ItemNum && p.Op == lastOp.OP).OrderByDescending(p => p.Rate).FirstOrDefault();
                 if (maxRateLine != null)
                 {