Ver Fonte

Merge branch 'master' of http://123.60.180.165:4647/ZZYDOP/DOPCore

# Conflicts:
#	MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs
heteng há 3 anos atrás
pai
commit
ecee015ec0

+ 2 - 12
MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/Dto/BomChildExamineDto.cs

@@ -9,25 +9,15 @@ namespace Business.ResourceExamineManagement.Dto
 {
 {
     public class BomChildExamineDto
     public class BomChildExamineDto
     {
     {
-        /*/// <summary>
-        /// 主键
-        /// </summary>
-        public long id { get; set; }
-
-        /// <summary>
-        /// 父级
-        /// </summary>
-        public long? parent_id { get; set; }*/
-
         /// <summary>
         /// <summary>
         /// 主键
         /// 主键
         /// </summary>
         /// </summary>
-        public Guid id { get; set; }
+        public long id { get; set; }
 
 
         /// <summary>
         /// <summary>
         /// 父级
         /// 父级
         /// </summary>
         /// </summary>
-        public Guid parent_id { get; set; }
+        public long? parent_id { get; set; }
 
 
         /// <summary>
         /// <summary>
         /// bom明细主键
         /// bom明细主键

+ 105 - 29
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -62,6 +62,8 @@ namespace Business.ResourceExamineManagement
     public class ResourceExamineAppService : ApplicationService, IResourceExamineAppService
     public class ResourceExamineAppService : ApplicationService, IResourceExamineAppService
     {
     {
         #region 服务
         #region 服务
+        SnowFlake help = new SnowFlake();
+
         /// <summary>
         /// <summary>
         /// 工艺路径
         /// 工艺路径
         /// </summary>
         /// </summary>
@@ -459,7 +461,7 @@ namespace Business.ResourceExamineManagement
                 //获取当前物料bom数据
                 //获取当前物料bom数据
                 var childBom = boms.Where(p => p.bom_number == item.bom_number).FirstOrDefault();
                 var childBom = boms.Where(p => p.bom_number == item.bom_number).FirstOrDefault();
                 //bom层级组装
                 //bom层级组装
-                var getBomList = BomPretreatment(item.Id, 160162, item.qty.GetInt(), bomlist, bomchildlist, icitemlist);
+                var getBomList = BomPretreatment(item.Id, childBom.Id, item.qty.GetInt(), bomlist, bomchildlist, icitemlist);
                 //bom替代关系组装
                 //bom替代关系组装
                 BomSubstitute(getBomList, bomlist, bomchildlist, icitemlist);
                 BomSubstitute(getBomList, bomlist, bomchildlist, icitemlist);
                 //库存初始化
                 //库存初始化
@@ -1071,7 +1073,7 @@ namespace Business.ResourceExamineManagement
             }
             }
             List<BomChildExamineDto> returnlist = new List<BomChildExamineDto>();
             List<BomChildExamineDto> returnlist = new List<BomChildExamineDto>();
             //var query = (await _ic_bom.GetQueryableAsync()).WhereIf(true, a => a.bom_id == BomId).ToList();
             //var query = (await _ic_bom.GetQueryableAsync()).WhereIf(true, a => a.bom_id == BomId).ToList();
-            var help = new SnowFlake();
+            
             var bom = bomlist.Find(s => s.Id == BomId);
             var bom = bomlist.Find(s => s.Id == BomId);
             if (bom == null)
             if (bom == null)
             {
             {
@@ -1082,8 +1084,8 @@ namespace Business.ResourceExamineManagement
             dto.item_id = bom.icitem_id;
             dto.item_id = bom.icitem_id;
             dto.bom_id = BomId.Value;
             dto.bom_id = BomId.Value;
             dto.level = 1;
             dto.level = 1;
-            dto.id = Guid.NewGuid();
-            dto.parent_id = Guid.NewGuid();
+            dto.id = help.NextId();
+            dto.parent_id = help.NextId();
             dto.qty = 1;
             dto.qty = 1;
             dto.num = "1";
             dto.num = "1";
             dto.isbom = 1;
             dto.isbom = 1;
@@ -1107,7 +1109,6 @@ namespace Business.ResourceExamineManagement
         public void GetBomList(List<ic_bom> bomlist, List<ic_bom_child> bomchildlist, List<ic_item> icitemlist, BomChildExamineDto dto, List<BomChildExamineDto> returnlist, int type)
         public void GetBomList(List<ic_bom> bomlist, List<ic_bom_child> bomchildlist, List<ic_item> icitemlist, BomChildExamineDto dto, List<BomChildExamineDto> returnlist, int type)
         {
         {
             int level = dto.level + 1;//初始化定义level层级
             int level = dto.level + 1;//初始化定义level层级
-            var help = new SnowFlake();
 
 
             var bom = bomlist.Where(s => s.Id == dto.bom_id).FirstOrDefault();
             var bom = bomlist.Where(s => s.Id == dto.bom_id).FirstOrDefault();
             ic_item item = new ic_item();
             ic_item item = new ic_item();
@@ -1146,7 +1147,7 @@ namespace Business.ResourceExamineManagement
                 if (childBom != null)
                 if (childBom != null)
                 {
                 {
                     var cdto = new BomChildExamineDto();
                     var cdto = new BomChildExamineDto();
-                    cdto.id = Guid.NewGuid();
+                    cdto.id = help.NextId();
                     cdto.level = level;
                     cdto.level = level;
                     cdto.parent_id = dto.id;
                     cdto.parent_id = dto.id;
                     cdto.bom_child_id = c.Id;
                     cdto.bom_child_id = c.Id;
@@ -1169,10 +1170,10 @@ namespace Business.ResourceExamineManagement
                     if (icitem != null)
                     if (icitem != null)
                     {
                     {
                         var childDto = new BomChildExamineDto();
                         var childDto = new BomChildExamineDto();
-                        childDto.level = level++;
+                        childDto.level = level;
                         childDto.bom_id = dto.bom_id;
                         childDto.bom_id = dto.bom_id;
                         childDto.bom_child_id = c.Id;
                         childDto.bom_child_id = c.Id;
-                        childDto.id = Guid.NewGuid();
+                        childDto.id = help.NextId();
                         childDto.parent_id = dto.id;
                         childDto.parent_id = dto.id;
                         childDto.item_id = icitem.Id;
                         childDto.item_id = icitem.Id;
                         childDto.item_name = icitem.name;
                         childDto.item_name = icitem.name;
@@ -1214,7 +1215,6 @@ namespace Business.ResourceExamineManagement
             var subdtllist = _ic_substitute_all_dtl.GetManyByCondition(p => suballidlist.Contains(p.substitute_allid) && !p.IsDeleted).Result;
             var subdtllist = _ic_substitute_all_dtl.GetManyByCondition(p => suballidlist.Contains(p.substitute_allid) && !p.IsDeleted).Result;
 
 
             List<long> childidList = new List<long>();
             List<long> childidList = new List<long>();
-            var help = new SnowFlake();
             int type = 1;
             int type = 1;
             List<BomChildExamineDto> addlist = new List<BomChildExamineDto>();
             List<BomChildExamineDto> addlist = new List<BomChildExamineDto>();
 
 
@@ -1287,7 +1287,6 @@ namespace Business.ResourceExamineManagement
         public void SubstitutePretreatment(ic_substitute sl, ic_substitute_all sal, ic_substitute_all_dtl dtl, BomChildExamineDto toDto, List<BomChildExamineDto> returnlist, List<ic_item> icitemlist, List<ic_bom> bomlist, List<ic_bom_child> bomchildlist, int type)
         public void SubstitutePretreatment(ic_substitute sl, ic_substitute_all sal, ic_substitute_all_dtl dtl, BomChildExamineDto toDto, List<BomChildExamineDto> returnlist, List<ic_item> icitemlist, List<ic_bom> bomlist, List<ic_bom_child> bomchildlist, int type)
         {
         {
             //如果dtl对应的icitem是BOM,还需要向下继续展开。
             //如果dtl对应的icitem是BOM,还需要向下继续展开。
-            var help = new SnowFlake();
 
 
             //List<BomChildExamineDto> returnlist = new List<BomChildExamineDto>();
             //List<BomChildExamineDto> returnlist = new List<BomChildExamineDto>();
             var dto = new BomChildExamineDto();
             var dto = new BomChildExamineDto();
@@ -1297,7 +1296,7 @@ namespace Business.ResourceExamineManagement
             {
             {
                 return;
                 return;
             }
             }
-            dto.id = Guid.NewGuid();
+            dto.id = help.NextId();
             dto.level = toDto.level;
             dto.level = toDto.level;
             dto.parent_id = toDto.parent_id;
             dto.parent_id = toDto.parent_id;
             dto.item_id = icitem.Id;
             dto.item_id = icitem.Id;
@@ -1370,7 +1369,15 @@ namespace Business.ResourceExamineManagement
             }
             }
         }
         }
 
 
-        //计算库存
+        /// <summary>
+        /// 替代关系计算
+        /// </summary>
+        /// <param name="returnlist"></param>
+        /// <param name="bangid"></param>
+        /// <param name="orderid"></param>
+        /// <param name="count"></param>
+        /// <param name="input"></param>
+        /// <param name="plan_date"></param>
         public void calcTest(List<BomChildExamineDto> returnlist, long bangid, long orderid, decimal count, SeorderentryDto input, DateTime
         public void calcTest(List<BomChildExamineDto> returnlist, long bangid, long orderid, decimal count, SeorderentryDto input, DateTime
             ? plan_date)
             ? plan_date)
         {
         {
@@ -1420,18 +1427,19 @@ namespace Business.ResourceExamineManagement
                 }
                 }
                 else
                 else
                 {
                 {
+                    //直接占用库存,缺料就生成采购
+                    ic_item_stockoccupy itemStockoccupyDto = new ic_item_stockoccupy();
+                    itemStockoccupyDto.bang_id = bangid;
+                    itemStockoccupyDto.icitem_id = item.item_id;
+                    itemStockoccupyDto.quantity = item.sqty;
+                    sklist.Add(itemStockoccupyDto);
+                    item.is_use = true;
                     if (item.erp_cls == 1)
                     if (item.erp_cls == 1)
                     {
                     {
                         //走自制
                         //走自制
                     }
                     }
                     else if (item.erp_cls == 2 || item.erp_cls == 3)
                     else if (item.erp_cls == 2 || item.erp_cls == 3)
                     {
                     {
-                        //直接占用库存,缺料就生成采购
-                        ic_item_stockoccupy itemStockoccupyDto = new ic_item_stockoccupy();
-                        itemStockoccupyDto.bang_id = bangid;
-                        itemStockoccupyDto.icitem_id = item.item_id;
-                        itemStockoccupyDto.quantity = item.sqty;
-                        sklist.Add(itemStockoccupyDto);
                         var leadTimeList = GetLeadTime(new List<long> { item.item_id }, input.tenantId, input.factoryId);//提前期列表
                         var leadTimeList = GetLeadTime(new List<long> { item.item_id }, input.tenantId, input.factoryId);//提前期列表
                         var supplierList = GetSupplier(new List<BomChildExamineDto> { item }, input.tenantId, input.factoryId);//供应商列表
                         var supplierList = GetSupplier(new List<BomChildExamineDto> { item }, input.tenantId, input.factoryId);//供应商列表
                         var planList = GetICPlan(new List<BomChildExamineDto> { item }, input.tenantId, input.factoryId);//plan列表
                         var planList = GetICPlan(new List<BomChildExamineDto> { item }, input.tenantId, input.factoryId);//plan列表
@@ -1447,7 +1455,12 @@ namespace Business.ResourceExamineManagement
         }
         }
 
 
 
 
-        //平铺每个物料需要总数
+        /// <summary>
+        /// 平铺计算物料情况
+        /// </summary>
+        /// <param name="returnlist"></param>
+        /// <param name="item"></param>
+        /// <param name="count"></param>
         public void CaclMaterialShortage(List<BomChildExamineDto> returnlist, BomChildExamineDto item, decimal count)
         public void CaclMaterialShortage(List<BomChildExamineDto> returnlist, BomChildExamineDto item, decimal count)
         {
         {
             var parent = returnlist.Find(s => s.id == item.parent_id);
             var parent = returnlist.Find(s => s.id == item.parent_id);
@@ -1470,6 +1483,12 @@ namespace Business.ResourceExamineManagement
             }*/
             }*/
         }
         }
 
 
+        /// <summary>
+        /// 根据占用情况重新计算占用
+        /// </summary>
+        /// <param name="item"></param>
+        /// <param name="returnlist"></param>
+        /// <param name="sklist"></param>
         public void RecalculationStock(BomChildExamineDto item, List<BomChildExamineDto> returnlist, List<ic_item_stockoccupy> sklist)
         public void RecalculationStock(BomChildExamineDto item, List<BomChildExamineDto> returnlist, List<ic_item_stockoccupy> sklist)
         {
         {
             //再计算一边占用情况,这里根据父级产品额缺料量*当前子料的使用数量-子料库存量。得出当前子物料的缺料数量
             //再计算一边占用情况,这里根据父级产品额缺料量*当前子料的使用数量-子料库存量。得出当前子物料的缺料数量
@@ -1481,6 +1500,15 @@ namespace Business.ResourceExamineManagement
             item.stock_state = item.lack_qty > 0 ? 0 : 1;
             item.stock_state = item.lack_qty > 0 ? 0 : 1;
         }
         }
 
 
+        /// <summary>
+        /// 根据替代策略计算
+        /// </summary>
+        /// <param name="item"></param>
+        /// <param name="returnlist"></param>
+        /// <param name="bangid"></param>
+        /// <param name="sklist"></param>
+        /// <param name="input"></param>
+        /// <param name="plan_date"></param>
         public void CalcStrategy(BomChildExamineDto item, List<BomChildExamineDto> returnlist, long bangid, List<ic_item_stockoccupy> sklist, SeorderentryDto input, DateTime
         public void CalcStrategy(BomChildExamineDto item, List<BomChildExamineDto> returnlist, long bangid, List<ic_item_stockoccupy> sklist, SeorderentryDto input, DateTime
             ? plan_date)
             ? plan_date)
         {
         {
@@ -1513,7 +1541,13 @@ namespace Business.ResourceExamineManagement
                     break;
                     break;
             }
             }
         }
         }
-        //整批判断
+        /// <summary>
+        /// 整批计算
+        /// </summary>
+        /// <param name="sublist"></param>
+        /// <param name="returnlist"></param>
+        /// <param name="sklist"></param>
+        /// <param name="select"></param>
         public void WholeBatchCheck(List<BomChildExamineDto> sublist, List<BomChildExamineDto> returnlist, List<ic_item_stockoccupy> sklist, List<BomChildExamineDto> select)
         public void WholeBatchCheck(List<BomChildExamineDto> sublist, List<BomChildExamineDto> returnlist, List<ic_item_stockoccupy> sklist, List<BomChildExamineDto> select)
         {
         {
             for (int idx = 0; idx < 99; idx++)
             for (int idx = 0; idx < 99; idx++)
@@ -1541,7 +1575,18 @@ namespace Business.ResourceExamineManagement
                 }
                 }
             }
             }
         }
         }
-        //整批占用
+        /// <summary>
+        /// 整批占用
+        /// </summary>
+        /// <param name="item"></param>
+        /// <param name="sublist"></param>
+        /// <param name="returnlist"></param>
+        /// <param name="sklist"></param>
+        /// <param name="select"></param>
+        /// <param name="bangid"></param>
+        /// <param name="parent"></param>
+        /// <param name="input"></param>
+        /// <param name="plan_date"></param>
         public void WholeBatch(BomChildExamineDto item, List<BomChildExamineDto> sublist, List<BomChildExamineDto> returnlist, List<ic_item_stockoccupy> sklist, List<BomChildExamineDto> select, long bangid, BomChildExamineDto parent, SeorderentryDto input, DateTime
         public void WholeBatch(BomChildExamineDto item, List<BomChildExamineDto> sublist, List<BomChildExamineDto> returnlist, List<ic_item_stockoccupy> sklist, List<BomChildExamineDto> select, long bangid, BomChildExamineDto parent, SeorderentryDto input, DateTime
             ? plan_date)
             ? plan_date)
         {
         {
@@ -1566,6 +1611,7 @@ namespace Business.ResourceExamineManagement
                 ic_item_stockoccupy itemStockoccupyDto = new ic_item_stockoccupy();
                 ic_item_stockoccupy itemStockoccupyDto = new ic_item_stockoccupy();
                 itemStockoccupyDto.bang_id = bangid;
                 itemStockoccupyDto.bang_id = bangid;
                 itemStockoccupyDto.icitem_id = slt.item_id;
                 itemStockoccupyDto.icitem_id = slt.item_id;
+                slt.is_use = true;
                 if (slt.lack_qty > 0)
                 if (slt.lack_qty > 0)
                 {
                 {
 
 
@@ -1608,7 +1654,17 @@ namespace Business.ResourceExamineManagement
 
 
         }
         }
 
 
-        //混用占用数据
+        /// <summary>
+        /// 混用占用
+        /// </summary>
+        /// <param name="item"></param>
+        /// <param name="sublist"></param>
+        /// <param name="returnlist"></param>
+        /// <param name="sklist"></param>
+        /// <param name="bangid"></param>
+        /// <param name="parent"></param>
+        /// <param name="input"></param>
+        /// <param name="plan_date"></param>
         public void MixedUse(BomChildExamineDto item, List<BomChildExamineDto> sublist, List<BomChildExamineDto> returnlist, List<ic_item_stockoccupy> sklist, long bangid, BomChildExamineDto parent, SeorderentryDto input, DateTime
         public void MixedUse(BomChildExamineDto item, List<BomChildExamineDto> sublist, List<BomChildExamineDto> returnlist, List<ic_item_stockoccupy> sklist, long bangid, BomChildExamineDto parent, SeorderentryDto input, DateTime
             ? plan_date)
             ? plan_date)
         {
         {
@@ -1657,10 +1713,12 @@ namespace Business.ResourceExamineManagement
                     //根据混用逻辑,去占用物料
                     //根据混用逻辑,去占用物料
                     foreach (var zy in list)
                     foreach (var zy in list)
                     {
                     {
+                        zy.is_use = true;
                         ic_item_stockoccupy itemStockoccupyDto = new ic_item_stockoccupy();
                         ic_item_stockoccupy itemStockoccupyDto = new ic_item_stockoccupy();
                         itemStockoccupyDto.bang_id = bangid;
                         itemStockoccupyDto.bang_id = bangid;
                         itemStockoccupyDto.icitem_id = zy.item_id;
                         itemStockoccupyDto.icitem_id = zy.item_id;
                         itemStockoccupyDto.quantity = use_p_num * zy.qty; ;
                         itemStockoccupyDto.quantity = use_p_num * zy.qty; ;
+                        sklist.Add(itemStockoccupyDto);
                     }
                     }
                     idx++;
                     idx++;
                 }
                 }
@@ -1705,7 +1763,13 @@ namespace Business.ResourceExamineManagement
             }
             }
         }
         }
 
 
-
+        /// <summary>
+        /// 可制占用计算---暂时未用
+        /// </summary>
+        /// <param name="item"></param>
+        /// <param name="returnlist"></param>
+        /// <param name="bangid"></param>
+        /// <param name="kznun"></param>
         public void Sockoccupy(BomChildExamineDto item, List<BomChildExamineDto> returnlist, long bangid, decimal kznun)
         public void Sockoccupy(BomChildExamineDto item, List<BomChildExamineDto> returnlist, long bangid, decimal kznun)
         {
         {
             ic_item_stockoccupy itemStockoccupyDto = new ic_item_stockoccupy();
             ic_item_stockoccupy itemStockoccupyDto = new ic_item_stockoccupy();
@@ -1740,7 +1804,13 @@ namespace Business.ResourceExamineManagement
             }
             }
         }
         }
 
 
-        //计算物料是否缺料
+        /// <summary>
+        /// 计算物料是否缺料
+        /// </summary>
+        /// <param name="parent"></param>
+        /// <param name="bzlist"></param>
+        /// <param name="returnlist"></param>
+        /// <param name="sockoccupyList"></param>
         public void calcTest2(BomChildExamineDto parent, List<BomChildExamineDto> bzlist, List<BomChildExamineDto> returnlist, List<ic_item_stockoccupy> sockoccupyList)
         public void calcTest2(BomChildExamineDto parent, List<BomChildExamineDto> bzlist, List<BomChildExamineDto> returnlist, List<ic_item_stockoccupy> sockoccupyList)
         {
         {
             //从第二级开始循环
             //从第二级开始循环
@@ -1777,7 +1847,7 @@ namespace Business.ResourceExamineManagement
         }
         }
 
 
         /// <summary>
         /// <summary>
-        /// 计算
+        /// 递归计算物料信息
         /// </summary>
         /// </summary>
         /// <param name="sublist"></param>
         /// <param name="sublist"></param>
         public void MaterialCalc(List<BomChildExamineDto> sublist, List<BomChildExamineDto> returnlist, List<ic_item_stockoccupy> sockoccupyList)
         public void MaterialCalc(List<BomChildExamineDto> sublist, List<BomChildExamineDto> returnlist, List<ic_item_stockoccupy> sockoccupyList)
@@ -1847,7 +1917,11 @@ namespace Business.ResourceExamineManagement
             }
             }
         }
         }
 
 
-        //根据每个物料来实时计算占用情况
+        /// <summary>
+        /// 根据每个物料来实时计算占用情况
+        /// </summary>
+        /// <param name="item"></param>
+        /// <param name="sockoccupyList"></param>
         public void Calczykc(BomChildExamineDto item, List<ic_item_stockoccupy> sockoccupyList)
         public void Calczykc(BomChildExamineDto item, List<ic_item_stockoccupy> sockoccupyList)
         {
         {
             //找到当前物料的占用记录
             //找到当前物料的占用记录
@@ -2039,7 +2113,6 @@ namespace Business.ResourceExamineManagement
         /// <returns></returns>
         /// <returns></returns>
         private List<ICItemLeadTimeDto> GetLeadTime(List<long> icItemIds, long tenantId, long factoryid)
         private List<ICItemLeadTimeDto> GetLeadTime(List<long> icItemIds, long tenantId, long factoryid)
         {
         {
-            //ToDo:企业Id
             ProjectionDefinitionBuilder<ic_factory_details> project = new ProjectionDefinitionBuilder<ic_factory_details>();
             ProjectionDefinitionBuilder<ic_factory_details> project = new ProjectionDefinitionBuilder<ic_factory_details>();
             return _ic_factory_details.Find(p => icItemIds.Contains(p.icitem_id) && p.factory_id == factoryid && p.tenant_id == tenantId && !p.IsDeleted,
             return _ic_factory_details.Find(p => icItemIds.Contains(p.icitem_id) && p.factory_id == factoryid && p.tenant_id == tenantId && !p.IsDeleted,
                 project.Include(p => p.icitem_id).Include(p => p.production_leadtime).Include(p => p.stock_leadtime).Include(p => p.transportation_leadtime).Include(p => p.order_leadtime)).Result.
                 project.Include(p => p.icitem_id).Include(p => p.production_leadtime).Include(p => p.stock_leadtime).Include(p => p.transportation_leadtime).Include(p => p.order_leadtime)).Result.
@@ -2049,7 +2122,6 @@ namespace Business.ResourceExamineManagement
         //根据物料id获取物料供应商
         //根据物料id获取物料供应商
         private List<ic_item_pur> GetSupplier(List<BomChildExamineDto> returnlist, long tenantId, long factoryid)
         private List<ic_item_pur> GetSupplier(List<BomChildExamineDto> returnlist, long tenantId, long factoryid)
         {
         {
-            //ToDo:企业Id
             return _ic_item_pur.Find(p => returnlist.Select(x => x.item_id).Contains(p.icitem_id) && p.tenant_id == tenantId && p.factory_id == factoryid && !p.IsDeleted).Result;
             return _ic_item_pur.Find(p => returnlist.Select(x => x.item_id).Contains(p.icitem_id) && p.tenant_id == tenantId && p.factory_id == factoryid && !p.IsDeleted).Result;
         }
         }
 
 
@@ -2217,7 +2289,11 @@ namespace Business.ResourceExamineManagement
         {
         {
             var leadTime = iCItemLeadTimes.Find(x => x.item_id == returnlist.item_id);
             var leadTime = iCItemLeadTimes.Find(x => x.item_id == returnlist.item_id);
             var supplier = supplierList.Find(x => x.icitem_id == returnlist.item_id);//默认取第一个供应商
             var supplier = supplierList.Find(x => x.icitem_id == returnlist.item_id);//默认取第一个供应商
-            var plan = planList.Find(x => x.icitem_id == returnlist.item_id);//
+            var plan = planList.Find(x => x.icitem_id == returnlist.item_id);
+            if(leadTime==null || supplier==null || plan==null)
+            {
+                throw new NotImplementedException("未找到物料ic_factory_details或ic_item_pur或ic_plan信息!");
+            }
             srm_pr_main srm_Pr = new srm_pr_main();
             srm_pr_main srm_Pr = new srm_pr_main();
             srm_Pr.GenerateNewId();
             srm_Pr.GenerateNewId();
             srm_Pr.pr_billno = getOrderNum("PR");//pr单号
             srm_Pr.pr_billno = getOrderNum("PR");//pr单号