Murphy 2 rokov pred
rodič
commit
46b2561f85

+ 11 - 1
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -292,6 +292,7 @@ namespace Business.ResourceExamineManagement
 
         private readonly ISqlRepository<rf_serialnumber> _rf_serialnumber;
         private readonly ISqlRepository<LocationDetail> _locationDetail;
+        private readonly ISqlRepository<ConfigurationItem> _configurationItem;
         /// <summary>
         /// 资源检查入参
         /// </summary>
@@ -480,6 +481,7 @@ namespace Business.ResourceExamineManagement
             ProductExamineAppService productExamineAppService,
             ISqlRepository<rf_serialnumber> rf_serialnumber,
             ISqlRepository<LocationDetail> locationDetail,
+            ISqlRepository<ConfigurationItem> configurationItem,
             ISqlRepository<ItemPackMaster> itemPackMaster,
             ISqlRepository<GeneralizedCodeMaster> generalizedCodeMaster,
             ISqlRepository<ScheduleResultOpMaster> scheduleResultOpMaster,
@@ -583,6 +585,7 @@ namespace Business.ResourceExamineManagement
             _holidayMaster = holidayMaster;
             _productExamineAppService = productExamineAppService;
             _locationDetail = locationDetail;
+            _configurationItem = configurationItem;
             _itemPackMaster = itemPackMaster;
             _generalizedCodeMaster = generalizedCodeMaster;
             _unitOfWorkManager = unitOfWorkManager;
@@ -1959,7 +1962,13 @@ namespace Business.ResourceExamineManagement
             if (icitemStokc.Count > 0)
             {
                 List<string> numbers = pretreatments.Select(s => s.item_number).ToList();
-                List<string> locationList = new List<string> { "1000", "1001", "5008","8000","8001" };
+                var locationRange = _configurationItem.Select(x => x.FldName == "MRPLocationRange" && x.Domain == companyId.ToString()).FirstOrDefault();
+
+                List<string> locationList = new List<string> { "1000", "1001", "5008", "8000", "8001" };
+                if (locationRange != null && locationRange.Val != null)
+                {
+                    locationList = locationRange.Val.SplitToArray(",").ToList();
+                }
                 var locStock = _invMaster.Select(a => numbers.Contains(a.ItemNum) && a.IsActive && a.Domain == factoryId.ToString() && locationList.Contains(a.Location));
                 //设置当前计算bangid
                 icitemStokc.ForEach(item => { 
@@ -2056,6 +2065,7 @@ namespace Business.ResourceExamineManagement
                     var moSrm_po_main = ObjectMapper.Map<List<srm_po_main>, List<mo_srm_po_main>>(srm_po_main);
                     moSrm_po_main.ForEach(item => { item.GenerateNewId(help.NextId()); item.bang_id = bangid; });
                     await MongoHelper<mo_srm_po_main>.InsertManyAsync(moSrm_po_main);
+
                     //订单明细--根据在途PO过滤出有效的Po_list
                     srm_po_list = srm_po_list.Where(s => srm_po_main.Select(x => x.Id).Contains(s.po_id.GetValueOrDefault())).ToList();
                     var moSrm_po_list = ObjectMapper.Map<List<srm_po_list>, List<mo_srm_po_list>>(srm_po_list);

+ 17 - 3
MicroServices/Business/Business.Application/SystemJobManagement/SystemJobAppService.cs

@@ -827,6 +827,12 @@ namespace Business.SystemJobManagement
                         {
                             var itemchild = ic_itemList.Find(a => a.number == child.ComponentItem);
                             if (itemchild == null) { continue; }
+                            decimal scrap = child.QtyExchd > child.Scrap ? child.QtyExchd : child.Scrap;
+                            /*//如果当前明细是BOM,则使用组件报废率
+                            if (wmsBomList.Where(c => c.ParentItem == child.ComponentItem).Any())
+                            {
+                                scrap = child.Scrap;
+                            }*/
                             var bomchild = new ic_bom_child(help.NextId())
                             {
                                 bom_id = bom.Id,
@@ -848,7 +854,7 @@ namespace Business.SystemJobManagement
                                 IsDeleted = false,
                                 Op = child.Op,
                                 use_status = 1,
-                                scrap = child.Scrap,
+                                scrap = scrap,
                                 wastage = child.QtyConsumed
                             };
                             childItemsAdd.Add(bomchild);
@@ -861,6 +867,12 @@ namespace Business.SystemJobManagement
                             var itemchild = ic_itemList.Find(a => a.number == child.ComponentItem);
                             if (itemchild == null) { continue; }
                             var icbomchild = ic_bomchildList.Find(s => s.bom_number == c && s.item_number == child.ComponentItem);
+                            decimal scrap = child.QtyExchd > child.Scrap ? child.QtyExchd : child.Scrap;
+                            /*//如果当前明细是BOM,则使用组件报废率
+                            if (wmsBomList.Where(c => c.ParentItem == child.ComponentItem).Any())
+                            {
+                                scrap = child.Scrap;
+                            }*/
                             if (icbomchild == null)
                             {
                                 var bomchild = new ic_bom_child(help.NextId())
@@ -884,7 +896,7 @@ namespace Business.SystemJobManagement
                                     IsDeleted = false,
                                     Op = child.Op,
                                     use_status = 1,
-                                    scrap = child.Scrap,
+                                    scrap = scrap,
                                     wastage = child.QtyConsumed
                                 };
                                 childItemsAdd.Add(bomchild);
@@ -900,7 +912,9 @@ namespace Business.SystemJobManagement
                                 icbomchild.company_id = item.company_id;
                                 icbomchild.tenant_id = item.company_id;
                                 icbomchild.Op = child.Op;
-                                icbomchild.scrap = child.Scrap;
+                                //icbomchild.scrap = child.Scrap;
+                                icbomchild.scrap = scrap;
+                                
                                 icbomchild.wastage = child.QtyConsumed;
                                 childItemsUpd.Add(icbomchild);
                             }

+ 73 - 0
MicroServices/Business/Business.Domain/StructuredDB/MES/IC/ConfigurationItem.cs

@@ -0,0 +1,73 @@
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Business.Domain
+{
+    /// <summary>
+    /// 配置项表
+    /// </summary>
+    [Comment("配置项表")]
+    public class ConfigurationItem
+    {
+        /// <summary>
+        /// 主键
+        /// </summary>
+        [Comment("主键")]
+        [Key]
+        public int RecID { get; set; }
+
+        /// <summary>
+        /// 域名
+        /// </summary>
+        [Comment("域名")]
+        public string Domain { get; set; }
+
+        /// <summary>
+        /// 配置Key
+        /// </summary>
+        [Comment("配置Key")]
+        public string FldName { get; set; }
+
+        /// <summary>
+        /// 配置Val
+        /// </summary>
+        [Comment("配置Val")]
+        public string Val { get; set; }
+
+        /// <summary>
+        /// 是否有效:1-有效;0-无效
+        /// </summary>
+        [Comment("是否有效")]
+        public bool IsActive { get; set; }
+
+
+        /// <summary>
+        /// 创建时间
+        /// </summary>
+        [Comment("创建时间")]
+        public DateTime? CreateTime { get; set; }
+
+        /// <summary>
+        /// 创建人
+        /// </summary>
+        [Comment("创建人")]
+        public string CreateUser { get; set; }
+
+        /// <summary>
+        /// 创建时间
+        /// </summary>
+        [Comment("修改时间")]
+        public DateTime? UpdateTime { get; set; }
+
+        /// <summary>
+        /// 修改人
+        /// </summary>
+        [Comment("修改人")]
+        public string UpdateUser { get; set; }
+    }
+}

+ 8 - 2
MicroServices/Business/Business.Domain/StructuredDB/MES/IC/ProductStructureMaster.cs

@@ -76,11 +76,17 @@ namespace Business.Domain
         public DateTime? EndEff { get; set; }
 
         /// <summary>
-        /// 损耗率
+        /// 组件损耗率
         /// </summary>
-        [Comment("损耗率")]
+        [Comment("组件损耗率")]
         public decimal Scrap { get; set; }
 
+        /// <summary>
+        /// 工序报废率
+        /// </summary>
+        [Comment("工序报废率")]
+        public decimal QtyExchd { get; set; }
+
         /// <summary>
         /// 固定损耗量
         /// </summary>

+ 2 - 1
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/DOP/BusinessDbContext.cs

@@ -186,7 +186,8 @@ namespace Business.EntityFrameworkCore
         public DbSet<rf_serialnumber> rf_serialnumber { get; set; }
         public DbSet<LocationDetail> LocationDetail { get; set; }
         public DbSet<InvMaster> InvMaster { get; set; }
-        
+
+        public DbSet<ConfigurationItem> ConfigurationItem { get; set; }
 
         public DbSet<ItemPackMaster> ItemPackMaster { get; set; }