Browse Source

中间件也生成周生产计划

Murphy 2 năm trước cách đây
mục cha
commit
9cc95100de

+ 268 - 15
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -1616,13 +1616,13 @@ namespace Business.Replenishment
                         var weekItemPlan = weekPlanList.Find(a => a.PlanMonth == kMonth && a.ItemNumber == item.number && a.WeekSeq == w && a.DistributionChannel==item.distributionchannel);
                         if (weekItemPlan != null)
                         {
-                            if (weekItemPlan.ProductionStatus != "已发布")
+                            if (weekItemPlan.ProductionStatus != "已发布" && publishedWeekCount<4)
                             {
                                 weekItemPlan.Qty = Math.Ceiling((item.montheop1.GetValueOrDefault() + item.montheop2.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
                                 updateRopList.Add(weekItemPlan);
                             }
                         }
-                        else
+                        else if(publishedWeekCount<4)
                         {
                             ReplenishmentWeekPlan weekItemPlanAdd = new ReplenishmentWeekPlan();
                             weekItemPlanAdd.Area = item.area;
@@ -1654,6 +1654,10 @@ namespace Business.Replenishment
             await _replenishmentWeekPlan.UpdateManyAsync(updateRopList);
 
             //更新周生产计划
+            //生产线明细表
+            List<ProdLineDetail> prodLines = new List<ProdLineDetail>();
+            List<LineMaster> lineMasters = new List<LineMaster>();
+            var routingOpList = _routingOpDetail.Select(x => x.Ufld1 == "组装" && x.MilestoneOp).ToList();
             for (int k = 0; k < replenishmentDto.SaleFcstMonth; k++)
             {
                 //如果该10月有发布的2周生产计划,则周生产数量=9月补货量-已发布的2周生产计划数量/剩余周次(2)
@@ -1664,6 +1668,7 @@ namespace Business.Replenishment
                 var ropList = planList.Select(t => t.number).Distinct().ToList();
                 //中间件汇总,比如A成品10、11、12月都需要中间件C,B成品11、12月都需要中间件C,那么中间件C需要每个月汇总平均分到4周
                 Dictionary<string, decimal?> subProductItem = new Dictionary<string, decimal?>();
+                Dictionary<string, BomChildExamineDto> subProductItemModel = new Dictionary<string, BomChildExamineDto>();
                 foreach (var itemSeq in ropList)
                 {
                     if(shipPlanList.Select(s=>s.SAPItemNumber).ToList().Contains(itemSeq))
@@ -1680,8 +1685,19 @@ namespace Business.Replenishment
                         {
                             days = 8;
                         }
+                        int publishedWeekCount = weekProductPlanList.Where(a => a.PlanMonth == kMonth && a.ItemNumber == item.number && a.ProductionStatus == "已发布" && a.DistributionChannel == item.distributionchannel).Count();
+                        decimal publishedWeekQtySum = weekProductPlanList.Where(a => a.PlanMonth == kMonth && a.ItemNumber == item.number && a.ProductionStatus == "已发布" && a.DistributionChannel == item.distributionchannel).Sum(a => a.Qty);
                         for (int w = 0; w < 4; w++)
                         {
+                            var weekItemPlan = weekProductPlanList.Find(a => a.PlanMonth == kMonth && a.ItemNumber == item.number && a.WeekSeq == w );
+                            if (weekItemPlan != null)
+                            {
+                                if (weekItemPlan.ProductionStatus != "已发布" && publishedWeekCount<4)
+                                {
+                                    weekItemPlan.Qty = Math.Ceiling((item.montheop1.GetValueOrDefault() + item.montheop2.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
+                                    updateRopList.Add(weekItemPlan);
+                                }
+                            }
                             if (itemQty > 0)
                             {
                                 var bom = bomList.Find(b => b.item_number == itemSeq);
@@ -1690,7 +1706,7 @@ namespace Business.Replenishment
                                 mes_Morder.GenerateNewId(help.NextId());
                                 mes_Morder.morder_type = MorderEnum.JhMorder;
                                 mes_Morder.work_order_type = MorderEnum.CgMorder;
-                                mes_Morder.morder_state = MorderEnum.Initial_state;
+                                mes_Morder.morder_state ="";
                                 //mes_Morder.morder_no = _serialNumberAppService.GetBillNo(input.factory_id.ToString(), "MPO", 1, "", 1)[0].NbrResult;
                                 mes_Morder.morder_no = Guid.NewGuid().ToString();
                                 mes_Morder.fms_number = ic_item.fms_number;
@@ -1790,7 +1806,6 @@ namespace Business.Replenishment
                                 moentryList.Add(mes_Moentry);
                             }
                         }
-
                         var planBOM = boms.Find(b => b.item_number == itemSeq);
                         var pretreament = pretreatments.Where(c => c.sourceid == planBOM.mysql_id).ToList();
                         var returnlist = ObjectMapper.Map<List<b_bom_pretreatment>, List<BomChildExamineDto>>(pretreament);
@@ -1800,7 +1815,7 @@ namespace Business.Replenishment
                         CaclMaterialShortage(returnlist);
                         foreach (var r in returnlist)
                         {
-                            if(r.item_number!=itemSeq && r.erp_cls==1)
+                            if (r.item_number != itemSeq && r.erp_cls == 1)
                             {
                                 if (subProductItem.ContainsKey(r.item_number))
                                 {
@@ -1809,7 +1824,251 @@ namespace Business.Replenishment
                                 else
                                 {
                                     subProductItem.Add(r.item_number, r.needCount);
+                                    subProductItemModel.Add(r.item_number, r);
+                                }
+                            }
+                        }
+                    }
+                }
+                if(prodLines.Count==0)
+                {
+                    prodLines=_prodLineDetail.Select(p => subProductItem.Keys.Contains(p.Part) && p.Domain == input.factory_id.ToString() && p.IsActive && routingOpList.Select(m => m.Op).Contains(p.Op)).OrderBy(x => x.Sequence).ToList();
+                }
+                if(lineMasters.Count==0)
+                {
+                    lineMasters = _lineMaster.Select(p => prodLines.Select(a => a.Line).Contains(p.Line) && p.Domain == input.factory_id.ToString() && p.IsActive).ToList();
+                }
+                var middleItemList=_itemMaster.Select(a => subProductItem.Keys.Contains(a.ItemNum) && a.Domain == input.factory_id.ToString());
+                foreach (var key in subProductItem.Keys)
+                {
+                    var itemQty = subProductItem[key];
+                    var middleItem = middleItemList.Find(m => m.ItemNum == key).MinOrdSales;
+                    if (middleItem == 0)
+                        middleItem = 10000;
+                    if (itemQty< middleItem)
+                    {
+                        itemQty = middleItem;
+                    }else if(middleItem>0)
+                    {
+                        itemQty = Math.Ceiling(Math.Ceiling(itemQty.GetValueOrDefault()/ middleItem) * middleItem);
+                    } 
+                    
+                    int publishedWeekCount = weekProductPlanList.Where(a => a.PlanMonth == kMonth && a.ItemNumber == key && a.ProductionStatus == "已发布").Count();
+                    decimal publishedWeekQtySum = weekProductPlanList.Where(a => a.PlanMonth == kMonth && a.ItemNumber == key && a.ProductionStatus == "已发布").Sum(a => a.Qty);
+                    //如果平均每周的需求大于经济批量直接均分
+                    if(publishedWeekCount<4 && itemQty/(4-publishedWeekCount)>= middleItem)
+                    {
+                        for(int w= publishedWeekCount;w<4;w++)
+                        {
+                            mes_morder mes_Morder = new mes_morder();
+                            mes_Morder.GenerateNewId(help.NextId());
+                            mes_Morder.morder_type = MorderEnum.JhMorder;
+                            mes_Morder.work_order_type = MorderEnum.CgMorder;
+                            mes_Morder.morder_state = "";
+                            //mes_Morder.morder_no = _serialNumberAppService.GetBillNo(input.factory_id.ToString(), "MPO", 1, "", 1)[0].NbrResult;
+                            mes_Morder.morder_no = Guid.NewGuid().ToString();
+                            mes_Morder.fms_number = "";
+                            mes_Morder.bom_number = subProductItemModel[key].bom_number;
+                            mes_Morder.fmodel = subProductItemModel[key].model;
+                            mes_Morder.moentry_startup_status = 0;
+                            mes_Morder.tenant_id = input.tenant_id;
+                            mes_Morder.factory_id = input.factory_id;
+                            mes_Morder.company_id = input.company_id;
+                            mes_Morder.org_id = input.org_id;
+                            mes_Morder.product_code = subProductItemModel[key].item_number;
+                            mes_Morder.product_name = subProductItemModel[key].item_name;
+                            mes_Morder.morder_date = DateTime.Now.Date.AddDays(1);
+                            mes_Morder.moentry_prd = null;
+                            mes_Morder.moentry_prdname = null;
+                            mes_Morder.moentry_wrkc = null;
+                            mes_Morder.moentry_wrkcname = null;
+                            mes_Morder.picking_qty = 0;
+                            mes_Morder.unit = subProductItemModel[key].unit;
+                            mes_Morder.morder_production_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
+                            mes_Morder.need_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
+                            //成品半成品取周一为入库时间开始往前推
+                            mes_Morder.moentry_sys_stime = kTime.AddDays(7 * w - ProductTime(routingOps, subProductItemModel[key].item_number, input.factory_id.ToString(), mes_Morder.need_number.GetValueOrDefault()));
+                            mes_Morder.moentry_sys_etime = kTime.AddDays(7 * w);
+                            mes_Morder.remaining_number = 0;
+                            mes_Morder.create_time = DateTime.Now;
+                            mes_Morder.bang_id = bang_id;
+                            //生成工单子表数据
+                            mes_moentry mes_Moentry = new mes_moentry();
+                            mes_Moentry.GenerateNewId(help.NextId());
+                            mes_Moentry.moentry_moid = mes_Morder.Id;
+                            mes_Moentry.moentry_mono = mes_Morder.morder_no;
+                            mes_Moentry.unit = subProductItemModel[key].unit;
+                            mes_Moentry.morder_production_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
+                            mes_Moentry.need_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
+                            mes_Moentry.remaining_number = 0;
+                            mes_Moentry.tenant_id = input.tenant_id;
+                            mes_Moentry.factory_id = input.factory_id;
+                            mes_Moentry.company_id = input.company_id;
+                            mes_Moentry.org_id = input.org_id;
+                            mes_Moentry.create_time = DateTime.Now;
+                            mes_Moentry.bang_id = bang_id;
+                            //暂时不做同周合并
+                            var isExitsSameWeek = moList.Find(m => m.bom_number == subProductItemModel[key].bom_number &&
+                                                                                      m.product_code == subProductItemModel[key].item_number &&
+                                                                                      GetWeekOfYear(m.moentry_sys_stime.GetValueOrDefault()) == GetWeekOfYear(mes_Morder.moentry_sys_stime.GetValueOrDefault()));
+
+                            var prodLine = prodLines.Where(x => x.Part == key).OrderBy(x => x.Sequence).FirstOrDefault();
+                            ReplenishmentWeekPlan weekItem = new ReplenishmentWeekPlan();
+                            weekItem.Priority = 1;
+                            weekItem.Area = "";
+                            weekItem.PlanStartDate = mes_Morder.moentry_sys_stime.GetValueOrDefault();
+                            weekItem.Week = $"WK{GetWeekOfYear(mes_Morder.moentry_sys_stime.Value).ToString("00")}";
+                            //weekItem.OrderNO = _serialNumberAppService.GetBillNo(input.factory_id.ToString(), "WO", 1, "", 1)[0].NbrResult;
+                            weekItem.OrderNO = Guid.NewGuid().ToString();
+                            weekItem.ProductionOrder = mes_Morder.morder_no;
+                            weekItem.SAPOrderNO = "";
+                            weekItem.OrderType = "量产";
+                            weekItem.ProductionBatch = "";
+                            weekItem.ProductionStatus = "";
+                            weekItem.ProdLine = "";
+                            weekItem.ProdRange = "";
+                            if (prodLine != null && lineMasters.Find(b => b.Line == prodLine.Line) != null)
+                            {
+                                weekItem.Line = lineMasters.Find(b => b.Line == prodLine.Line).Describe;
+                            }
+                            else
+                            {
+                                weekItem.Line = "";
+                            }
+
+                            weekItem.ItemNumber = key;
+                            weekItem.Model = subProductItemModel[key].model;
+                            weekItem.Languages = "";
+                            weekItem.Qty = mes_Morder.morder_production_number.Value;
+                            weekItem.ItemStatus = "";
+                            weekItem.PlanKittingDate = DateTime.Now;
+                            weekItem.Year = DateTime.Now.AddMonths(k).Year;
+                            weekItem.Month = DateTime.Now.AddMonths(k).Month;
+                            weekItem.PlanMonth = kMonth;
+                            weekItem.WeekSeq = w;
+                            weekItem.tenant_id = input.tenant_id;
+                            weekItem.factory_id = input.factory_id;
+                            weekItem.company_id = input.company_id;
+                            weekItem.org_id = input.org_id;
+                            weekItem.create_time = DateTime.Now;
+                            weekItem.DistributionChannel = "瑞奇";
+                            weekItem.IsReplenishmentModel = "N";
+                            weekItem.InStockDate = mes_Morder.moentry_sys_etime.Value;
+                            weekItem.AssembleHours = 0;
+                            weekItem.HeatSealHours = 0;
+                            weekItem.PackageHours = 0;
+                            weekItem.TotalHours = 0;
+                            weekPlan.Add(weekItem);
+                            moList.Add(mes_Morder);
+                            moentryList.Add(mes_Moentry);
+                        }
+                    }else if(publishedWeekCount < 4 && itemQty / (4 - publishedWeekCount) < middleItem)//不够的话就按顺序排
+                    {
+                        for (int w = publishedWeekCount; w < 4; w++)
+                        {
+                            if(itemQty>0)
+                            {
+                                mes_morder mes_Morder = new mes_morder();
+                                mes_Morder.GenerateNewId(help.NextId());
+                                mes_Morder.morder_type = MorderEnum.JhMorder;
+                                mes_Morder.work_order_type = MorderEnum.CgMorder;
+                                mes_Morder.morder_state = "";
+                                //mes_Morder.morder_no = _serialNumberAppService.GetBillNo(input.factory_id.ToString(), "MPO", 1, "", 1)[0].NbrResult;
+                                mes_Morder.morder_no = Guid.NewGuid().ToString();
+                                mes_Morder.fms_number = "";
+                                mes_Morder.bom_number = subProductItemModel[key].bom_number;
+                                mes_Morder.fmodel = subProductItemModel[key].model;
+                                mes_Morder.moentry_startup_status = 0;
+                                mes_Morder.tenant_id = input.tenant_id;
+                                mes_Morder.factory_id = input.factory_id;
+                                mes_Morder.company_id = input.company_id;
+                                mes_Morder.org_id = input.org_id;
+                                mes_Morder.product_code = subProductItemModel[key].item_number;
+                                mes_Morder.product_name = subProductItemModel[key].item_name;
+                                mes_Morder.morder_date = DateTime.Now.Date.AddDays(1);
+                                mes_Morder.moentry_prd = null;
+                                mes_Morder.moentry_prdname = null;
+                                mes_Morder.moentry_wrkc = null;
+                                mes_Morder.moentry_wrkcname = null;
+                                mes_Morder.picking_qty = 0;
+                                mes_Morder.unit = subProductItemModel[key].unit;
+                                mes_Morder.morder_production_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
+                                mes_Morder.need_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
+                                //成品半成品取周一为入库时间开始往前推
+                                mes_Morder.moentry_sys_stime = kTime.AddDays(7 * w - ProductTime(routingOps, subProductItemModel[key].item_number, input.factory_id.ToString(), mes_Morder.need_number.GetValueOrDefault()));
+                                mes_Morder.moentry_sys_etime = kTime.AddDays(7 * w);
+                                mes_Morder.remaining_number = 0;
+                                mes_Morder.create_time = DateTime.Now;
+                                mes_Morder.bang_id = bang_id;
+                                //生成工单子表数据
+                                mes_moentry mes_Moentry = new mes_moentry();
+                                mes_Moentry.GenerateNewId(help.NextId());
+                                mes_Moentry.moentry_moid = mes_Morder.Id;
+                                mes_Moentry.moentry_mono = mes_Morder.morder_no;
+                                mes_Moentry.unit = subProductItemModel[key].unit;
+                                mes_Moentry.morder_production_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
+                                mes_Moentry.need_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
+                                mes_Moentry.remaining_number = 0;
+                                mes_Moentry.tenant_id = input.tenant_id;
+                                mes_Moentry.factory_id = input.factory_id;
+                                mes_Moentry.company_id = input.company_id;
+                                mes_Moentry.org_id = input.org_id;
+                                mes_Moentry.create_time = DateTime.Now;
+                                mes_Moentry.bang_id = bang_id;
+                                //暂时不做同周合并
+                                var isExitsSameWeek = moList.Find(m => m.bom_number == subProductItemModel[key].bom_number &&
+                                                                                          m.product_code == subProductItemModel[key].item_number &&
+                                                                                          GetWeekOfYear(m.moentry_sys_stime.GetValueOrDefault()) == GetWeekOfYear(mes_Morder.moentry_sys_stime.GetValueOrDefault()));
+
+                                var prodLine = prodLines.Where(x => x.Part == key).OrderBy(x => x.Sequence).FirstOrDefault();
+                                ReplenishmentWeekPlan weekItem = new ReplenishmentWeekPlan();
+                                weekItem.Priority = 1;
+                                weekItem.Area = "";
+                                weekItem.PlanStartDate = mes_Morder.moentry_sys_stime.GetValueOrDefault();
+                                weekItem.Week = $"WK{GetWeekOfYear(mes_Morder.moentry_sys_stime.Value).ToString("00")}";
+                                //weekItem.OrderNO = _serialNumberAppService.GetBillNo(input.factory_id.ToString(), "WO", 1, "", 1)[0].NbrResult;
+                                weekItem.OrderNO = Guid.NewGuid().ToString();
+                                weekItem.ProductionOrder = mes_Morder.morder_no;
+                                weekItem.SAPOrderNO = "";
+                                weekItem.OrderType = "量产";
+                                weekItem.ProductionBatch = "";
+                                weekItem.ProductionStatus = "";
+                                weekItem.ProdLine = "";
+                                weekItem.ProdRange = "";
+                                if (prodLine != null && lineMasters.Find(b => b.Line == prodLine.Line) != null)
+                                {
+                                    weekItem.Line = lineMasters.Find(b => b.Line == prodLine.Line).Describe;
                                 }
+                                else
+                                {
+                                    weekItem.Line = "";
+                                }
+
+                                weekItem.ItemNumber = key;
+                                weekItem.Model = subProductItemModel[key].model;
+                                weekItem.Languages = "";
+                                weekItem.Qty = mes_Morder.morder_production_number.Value;
+                                weekItem.ItemStatus = "";
+                                weekItem.PlanKittingDate = DateTime.Now;
+                                weekItem.Year = DateTime.Now.AddMonths(k).Year;
+                                weekItem.Month = DateTime.Now.AddMonths(k).Month;
+                                weekItem.PlanMonth = kMonth;
+                                weekItem.WeekSeq = w;
+                                weekItem.tenant_id = input.tenant_id;
+                                weekItem.factory_id = input.factory_id;
+                                weekItem.company_id = input.company_id;
+                                weekItem.org_id = input.org_id;
+                                weekItem.create_time = DateTime.Now;
+                                weekItem.DistributionChannel = "瑞奇";
+                                weekItem.IsReplenishmentModel = "N";
+                                weekItem.InStockDate = mes_Morder.moentry_sys_etime.Value;
+                                weekItem.AssembleHours = 0;
+                                weekItem.HeatSealHours = 0;
+                                weekItem.PackageHours = 0;
+                                weekItem.TotalHours = 0;
+                                weekPlan.Add(weekItem);
+                                moList.Add(mes_Morder);
+                                moentryList.Add(mes_Moentry);
                             }
                         }
                     }
@@ -1824,15 +2083,9 @@ namespace Business.Replenishment
                 weekPlan[i].ProductionOrder = morder_noList[i].NbrResult;
                 weekPlan[i].OrderNO = OrderNOList[i].NbrResult;
             }
-            
             await PlanOrderResourceCheck(moList, moentryList, bang_id, input);
 
             var examine_resultList = _mysql_examine_result.GetListAsync(a => a.bangid == bang_id).Result;
-            moList.ForEach(mo =>
-            {
-                var moItem = examine_resultList.Find(b => b.morder_no == mo.morder_no);
-                mo.moentry_sys_stime = moItem.kitting_times;
-            });
             await _mysql_mes_morder.InsertManyAsync(moList);
             await _mysql_mes_moentry.InsertManyAsync(moentryList);
 
@@ -2397,7 +2650,7 @@ namespace Business.Replenishment
                 //添加工单数据
                 workOrd = new WorkOrdMaster();
                 workOrd.Domain = item.factory_id.ToString();
-                workOrd.OrdDate = item.moentry_sys_stime;
+                workOrd.OrdDate = item.moentry_sys_stime.GetValueOrDefault().Date;
                 workOrd.ReleaseDate = Convert.ToDateTime(item.moentry_sys_stime.GetValueOrDefault().ToString("u"));
                 workOrd.DueDate = item.moentry_sys_etime;
                 workOrd.WorkOrd = item.morder_no;
@@ -2405,7 +2658,7 @@ namespace Business.Replenishment
                 workOrd.QtyOrded = item.need_number.GetValueOrDefault();
                 workOrd.Period = 1;
                 workOrd.Priority = item.urgent;
-                workOrd.Status = "p";
+                workOrd.Status = "";
                 workOrd.IsActive = true;
                 workOrd.IsConfirm = true;
                 workOrd.CreateTime = DateTime.Now;
@@ -3761,7 +4014,7 @@ namespace Business.Replenishment
                 mes_Morder.morder_type = MorderEnum.JhMorder;
                 //mes_Morder.morder_icitem_type
                 mes_Morder.work_order_type = MorderEnum.CgMorder;
-                mes_Morder.morder_state = MorderEnum.Initial_state;
+                mes_Morder.morder_state ="";
                 mes_Morder.morder_no = list[i].NbrResult.ToString();
                 mes_Morder.fms_number = ic_item.fms_number;
                 mes_Morder.bom_number = bom.bom_number;
@@ -4010,7 +4263,7 @@ namespace Business.Replenishment
         public static int GetWeekOfYear(DateTime dt)
         {
             System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar();
-            int weekOfYear = gc.GetWeekOfYear(dt, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Friday);
+            int weekOfYear = gc.GetWeekOfYear(dt, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday);
             return weekOfYear;
         }
 

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

@@ -4153,7 +4153,7 @@ namespace Business.ResourceExamineManagement
                 //添加工单数据
                 workOrd = new WorkOrdMaster();
                 workOrd.Domain = item.factory_id.ToString();
-                workOrd.OrdDate = item.moentry_sys_stime;
+                workOrd.OrdDate = item.moentry_sys_stime.GetValueOrDefault().Date;
                 workOrd.DueDate = item.moentry_sys_etime;
                 workOrd.ReleaseDate = Convert.ToDateTime(item.moentry_sys_stime.GetValueOrDefault().ToString("u"));
                 workOrd.WorkOrd = item.morder_no;

+ 6 - 0
MicroServices/Business/Business.Domain/StructuredDB/MES/IC/ItemMaster.cs

@@ -126,5 +126,11 @@ namespace Business.Domain
         /// 特殊采购类型
         /// </summary>
         public string EMTType { get; set; }
+
+        /// <summary>
+        /// 起订量
+        /// </summary>
+        [Comment("起订量")]
+        public decimal MinOrdSales { get; set; }
     }
 }