Переглянути джерело

修改计算工单建议时间

zhengly 2 роки тому
батько
коміт
d04a4c88bf

+ 21 - 16
MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs

@@ -7,9 +7,11 @@ using Business.MongoModel.Production;
 using Business.MongoModel.SRM;
 using Business.MongoModel.Tech;
 using Business.ResourceExamineManagement.Dto;
+using MongoDB.Driver.Linq;
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using System.Globalization;
 using System.Linq;
 using Volo.Abp.Application.Services;
 using static Spire.Pdf.General.Render.Decode.Jpeg2000.j2k.codestream.HeaderInfo;
@@ -348,37 +350,40 @@ namespace Business.ResourceExamineManagement
                 {
                     if (!string.IsNullOrEmpty(mes_Morders.bom_number))
                     {
+                        mes_Morders.moentry_sys_stime = childList.Max(s => s.kitting_time.GetValueOrDefault()).AddDays(1).Date;//数据齐套完成后隔天开始生产;
                         //var ProductiveDate = ProductiveExamine(mes_Morders.bom_number, level1Dto.version, (int)mes_Morders.morder_production_number.Value);
                         ProdExamineParamDto prodExamine = new ProdExamineParamDto()
                         {
-                            bom_number = mes_Morders.bom_number,
-                            version = level1Dto.version,
-                            packages = (int)mes_Morders.morder_production_number.Value
+                            ItemNum = mes_Morders.bom_number,
+                            PlanStart = mes_Morders.moentry_sys_stime.Value,
+                            QtyOrd = (int)mes_Morders.morder_production_number.Value
                         };
-                        _productExamineAppService.process = process;
-                        _productExamineAppService.techs = techs;
-                        _productExamineAppService.tech_Processes = tech_Processes;
-                        _productExamineAppService.tech_Proc_Workshops = tech_Proc_Workshops;
+                        //_productExamineAppService.process = process;
+                        //_productExamineAppService.techs = techs;
+                        //_productExamineAppService.tech_Processes = tech_Processes;
+                        //_productExamineAppService.tech_Proc_Workshops = tech_Proc_Workshops;
 
                         var plan = planList.Find(x => x.icitem_id == level1Dto.item_id);
                         var ProductiveDate = _productExamineAppService.ProductiveExamine(prodExamine);
-                        var Day = ProductiveDate / (60 * 10); //返回的分钟除以十个小时得出工作天数;
-                        mes_Morders.moentry_sys_stime = childList.Max(s => s.kitting_time.GetValueOrDefault()).AddDays(1);//数据齐套完成后隔天开始生产;
+                        //var Day = ProductiveDate / (60 * 10); //返回的分钟除以十个小时得出工作天数;
+
                         //结束日期=开始时间+生产时长+自检提前期+入库提前期+发运提前期;
-                        var LeadTime = 0.00m;
+                        DateTime LeadTime;
                         if (plan != null)
                         {
-                            LeadTime = Day + plan.self_inspection_date.GetValueOrDefault() + plan.Warehousing_date.GetValueOrDefault();
+                            var TQdate = plan.self_inspection_date.GetValueOrDefault() + plan.Warehousing_date.GetValueOrDefault();
+                            LeadTime = ProductiveDate.AddDays((double)TQdate);
                         }
                         else
                         {
-                            LeadTime = Day;
+                            LeadTime = ProductiveDate;
                         }
-                        ProductionTimeDay = LeadTime;
-                        mes_Morders.moentry_sys_etime = mes_Morders.moentry_sys_stime.Value.AddDays((double)Day);
-                        mes_Morders.morder_need_time = ProductiveDate;
+                        //ProductionTimeDay = LeadTime;
+                        mes_Morders.moentry_sys_etime = LeadTime;
+                        mes_Morders.morder_need_time = Convert.ToInt32(DateTime.ParseExact(ProductiveDate.ToString("yyyyMMddHHmmss"), "yyyyMMddHHmmss", CultureInfo.CurrentCulture) -
+                            DateTime.ParseExact(mes_Morders.moentry_sys_stime.Value.ToString("yyyyMMddHHmmss"), "yyyyMMddHHmmss", CultureInfo.CurrentCulture));
                         //满足资源检查的时间需加上提前期
-                        level1Dto.satisfy_time = mes_Morders.moentry_sys_stime.Value.AddDays((double)LeadTime);
+                        level1Dto.satisfy_time = LeadTime;
                         if (sentrys != null)
                         {
                             sentrys.sys_capacity_date = level1Dto.satisfy_time;

+ 12 - 10
MicroServices/Business/Business.Application/ResourceExamineManagement/MorderAppService.cs

@@ -7,6 +7,7 @@ using Business.MongoModel.Tech;
 using Business.ResourceExamineManagement.Dto;
 using System;
 using System.Collections.Generic;
+using System.Globalization;
 using System.Linq;
 using Volo.Abp.Application.Services;
 
@@ -148,20 +149,21 @@ namespace Business.ResourceExamineManagement
                 {
                     ProdExamineParamDto prodExamine = new ProdExamineParamDto()
                     {
-                        bom_number = generateMorderDto.BomNumber,
-                        version = generateMorderDto.version,
-                        packages = (int)generateMorderDto.Quantity.GetValueOrDefault()
+                        ItemNum = generateMorderDto.BomNumber,
+                        PlanStart = generateMorderDto.moentry_sys_stime.Value,
+                        QtyOrd = (int)generateMorderDto.Quantity.GetValueOrDefault()
                     };
-                    _productExamineAppService.process = process;
-                    _productExamineAppService.techs = techs;
-                    _productExamineAppService.tech_Processes = tech_Processes;
-                    _productExamineAppService.tech_Proc_Workshops = tech_Proc_Workshops;
+                    //_productExamineAppService.process = process;
+                    //_productExamineAppService.techs = techs;
+                    //_productExamineAppService.tech_Processes = tech_Processes;
+                    //_productExamineAppService.tech_Proc_Workshops = tech_Proc_Workshops;
 
                     var ProductiveDate = _productExamineAppService.ProductiveExamine(prodExamine);
                     //系统建议完工日期为 开工日期+产能检查时间=完工日期
-                    var Day = ProductiveDate / (60 * 10); //返回的分钟除以十个小时得出工作天数;
-                    mes_Morder.moentry_sys_etime = mes_Morder.moentry_sys_stime.GetValueOrDefault().AddDays((double)Day);
-                    mes_Morder.morder_need_time = ProductiveDate;
+                    //var Day = ProductiveDate / (60 * 10); //返回的分钟除以十个小时得出工作天数;
+                    mes_Morder.moentry_sys_etime = ProductiveDate;
+                    mes_Morder.morder_need_time = Convert.ToInt32(DateTime.ParseExact(ProductiveDate.ToString("yyyyMMddHHmmss"), "yyyyMMddHHmmss", CultureInfo.CurrentCulture) -
+                            DateTime.ParseExact(generateMorderDto.moentry_sys_stime.Value.ToString("yyyyMMddHHmmss"), "yyyyMMddHHmmss", CultureInfo.CurrentCulture)); ;
                 }
             }
 

+ 9 - 9
MicroServices/Business/Business.Test/MorderTest.cs

@@ -20,18 +20,18 @@ namespace Business.Test
             //Arrange
             var ProductExamine = new ProductExamineAppService();
             ProductExamineTest productExamineTest = new ProductExamineTest();
-            ProductExamine.techs = productExamineTest.CreateTechnique();
-            ProductExamine.process = productExamineTest.CreateProcess();
-            ProductExamine.tech_Processes = productExamineTest.CreateTechProcess();
+            //ProductExamine.techs = productExamineTest.CreateTechnique();
+            //ProductExamine.process = productExamineTest.CreateProcess();
+            //ProductExamine.tech_Processes = productExamineTest.CreateTechProcess();
             var morder = new MorderAppService(ProductExamine);
 
             //Act
-            ProdExamineParamDto prodExamine = new ProdExamineParamDto()
-            {
-                bom_number = "R650K",
-                version = "3.0",
-                packages = 1000
-            };
+            //ProdExamineParamDto prodExamine = new ProdExamineParamDto()
+            //{
+            //    bom_number = "R650K",
+            //    version = "3.0",
+            //    packages = 1000
+            //};
             //var result = sut.ProductiveExamine(prodExamine);
             //Assert
             //Xunit.Assert.Equal(14030, result);