Explorar el Código

保存订单齐套检查结果

heteng hace 3 años
padre
commit
7478867cb5

+ 3 - 0
MicroServices/Business/Business.Application/BusinessApplicationAutoMapperProfile.cs

@@ -106,6 +106,9 @@ namespace Business
 
             CreateMap<ExamineResult, b_examine_result>();
 
+            CreateMap<OrderResourceDto, b_order_examine_result>();
+            CreateMap<OrderItemDto, b_order_detail>();
+
             CreateMap<mo_occupy, b_mo_occupy>()
                 .ForMember(d => d.Id, map => map.MapFrom(o => o.id));
 

+ 36 - 0
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -1,6 +1,7 @@
 using Business.Core.Enum;
 using Business.Core.MongoDBHelper;
 using Business.Core.Utilities;
+using Business.EntityFrameworkCore;
 using Business.ResourceExamineManagement.Dto;
 using Bussiness.Model.Bang;
 using Bussiness.Model.MES.IC;
@@ -27,6 +28,7 @@ using Volo.Abp.DependencyInjection;
 using Volo.Abp.Domain.Repositories;
 using Volo.Abp.MultiTenancy;
 using Volo.Abp.ObjectMapping;
+using ZstdSharp.Unsafe;
 
 namespace Business.ResourceExamineManagement
 {
@@ -226,6 +228,8 @@ namespace Business.ResourceExamineManagement
         private List<mo_ic_item_pur> supplierList;
 
         private List<mo_ic_plan> planList;
+
+        private readonly BusinessBangDbContext _businessBangDbContext;
         #endregion
 
         #region 构造函数
@@ -1273,6 +1277,38 @@ namespace Business.ResourceExamineManagement
             var result = await OrderKittingCheck(input);
             OrderResourceViewDto rtn = DataPackage(result);
             rtn.DayBulletinBoardList = rtn.DayBulletinBoardList.OrderByDescending(d => d.day).ToList();
+
+            //检查结果写入数据库
+            List<b_order_examine_result> examineList = new List<b_order_examine_result>();
+            List<b_order_detail> orderDetails = new List<b_order_detail>();
+
+            foreach (var ex in rtn.KittingCheckResultList)
+            {
+                var examine = ObjectMapper.Map<OrderResourceDto, b_order_examine_result>(ex);
+                examine.GenerateNewId();
+                examine.create_time = DateTime.Now;
+                examine.tenant_id = param.tenantId;
+                examine.factory_id = param.factoryId;
+                examineList.Add(examine);
+
+                ex.order_item_list.ForEach(s => {
+                    var detail = ObjectMapper.Map<OrderItemDto, b_order_detail>(s);
+                    detail.GenerateNewId();
+                    detail.order_examine_id = examine.Id;
+                    detail.tenant_id = param.tenantId;
+                    detail.factory_id = param.factoryId;
+                    orderDetails.Add(detail);
+                });
+            }
+            if (examineList.Any())
+            {
+                await _businessBangDbContext.b_order_examine_result.BulkInsertAsync(examineList,options=>options.AutoMapOutputDirection = false);
+            }
+            if (orderDetails.Any())
+            {
+                await _businessBangDbContext.b_order_detail.BulkInsertAsync(orderDetails, options => options.AutoMapOutputDirection = false);
+            }
+            
             return JsonConvert.SerializeObject(rtn);
         }