|
|
@@ -296,6 +296,8 @@ namespace Business.ResourceExamineManagement
|
|
|
private ISqlRepository<ItemMaster> _itemMaster;
|
|
|
private ISqlRepository<NbrMaster> _nbrMaster;
|
|
|
private ISqlRepository<NbrDetail> _nbrDetail;
|
|
|
+ private ISqlRepository<PurOrdMaster> _purOrdMaster;
|
|
|
+ private ISqlRepository<PurOrdDetail> _purOrdDetail;
|
|
|
private ISqlRepository<ItemPackMaster> _itemPackMaster;
|
|
|
/// <summary>
|
|
|
/// 生产排产
|
|
|
@@ -418,6 +420,8 @@ namespace Business.ResourceExamineManagement
|
|
|
ISqlRepository<WorkOrdDetail> workOrdDetail,
|
|
|
ISqlRepository<NbrMaster> nbrMaster,
|
|
|
ISqlRepository<NbrDetail> nbrDetail,
|
|
|
+ ISqlRepository<PurOrdMaster> purOrdMaster,
|
|
|
+ ISqlRepository<PurOrdDetail> purOrdDetail,
|
|
|
PriorityAppService priorityAppService,
|
|
|
ISqlRepository<ProdLineDetail> prodLineDetail,
|
|
|
ISqlRepository<ShopCalendarWorkCtr> shopCalendarWorkCtr,
|
|
|
@@ -488,19 +492,21 @@ namespace Business.ResourceExamineManagement
|
|
|
_routingOpDetail = routingOpDetail;
|
|
|
_productStructureMaster = productStructureMaster;
|
|
|
_workOrdRouting = workOrdRouting;
|
|
|
- _workOrdMaster=workOrdMaster;
|
|
|
- _workOrdDetail=workOrdDetail;
|
|
|
+ _workOrdMaster = workOrdMaster;
|
|
|
+ _workOrdDetail = workOrdDetail;
|
|
|
_lineMaster = lineMaster;
|
|
|
_itemMaster = itemMaster;
|
|
|
_nbrMaster = nbrMaster;
|
|
|
_nbrDetail = nbrDetail;
|
|
|
- _priorityAppService= priorityAppService;
|
|
|
+ _purOrdMaster = purOrdMaster;
|
|
|
+ _purOrdDetail= purOrdDetail;
|
|
|
+ _priorityAppService = priorityAppService;
|
|
|
_rf_serialnumber = rf_serialnumber;
|
|
|
_prodLineDetail = prodLineDetail;
|
|
|
_shopCalendarWorkCtr = shopCalendarWorkCtr;
|
|
|
_qualityLineWorkDetail = qualityLineWorkDetail;
|
|
|
_holidayMaster = holidayMaster;
|
|
|
- _productExamineAppService= productExamineAppService;
|
|
|
+ _productExamineAppService = productExamineAppService;
|
|
|
_locationDetail = locationDetail;
|
|
|
_itemPackMaster = itemPackMaster;
|
|
|
}
|
|
|
@@ -678,7 +684,7 @@ namespace Business.ResourceExamineManagement
|
|
|
//同步工单
|
|
|
CreateWorkOrdDates(moderlist, allRoutings, workOrds, workOrdRoutings, workOrdDetails);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
using (TransactionScope scope = new TransactionScope())
|
|
|
{
|
|
|
try
|
|
|
@@ -739,7 +745,8 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
scope.Complete();
|
|
|
}
|
|
|
- catch (Exception e) {
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
scope.Dispose();
|
|
|
new NLogHelper("ResourceExamineAppService").WriteLog("ReceiveResult", "资源检查工单相关数据更新失败:" + e.Message, _currentTenant.Id.ToString());
|
|
|
return e.Message;
|
|
|
@@ -771,7 +778,8 @@ namespace Business.ResourceExamineManagement
|
|
|
AutoCreatePOFromPR(prmainlist, bangid, icitemlist, itemsupplierList, poaction);
|
|
|
using (TransactionScope scope = new TransactionScope())
|
|
|
{
|
|
|
- try {
|
|
|
+ try
|
|
|
+ {
|
|
|
await _srm_pr_main.InsertMany(prmainlist);
|
|
|
_businessDbContext.BulkInsert(pr_mainlist);
|
|
|
if (poaction.mopoMain.Any())
|
|
|
@@ -795,6 +803,19 @@ namespace Business.ResourceExamineManagement
|
|
|
var poOccupies = ObjectMapper.Map<List<mo_srm_po_occupy>, List<srm_po_occupy>>(poaction.poOccupiesList);
|
|
|
_businessDbContext.BulkInsert(poOccupies);
|
|
|
}
|
|
|
+
|
|
|
+ if(poaction.poMasterList.Any())
|
|
|
+ {
|
|
|
+ _purOrdMaster.Insert(poaction.poMasterList);
|
|
|
+ //快开平台用自增列RecId关联,所以需要插入后再查给明细表赋相应的值
|
|
|
+ List<string> nbrs = poaction.poMasterList.Select(a => a.PurOrd).ToList();
|
|
|
+ var nbrList = _purOrdMaster.Select(a => a.Domain == "1001" && nbrs.Contains(a.PurOrd));
|
|
|
+ poaction.poDetailList.ForEach(c =>
|
|
|
+ {
|
|
|
+ c.PurOrdRecID = nbrList.Where(a => a.PurOrd == c.PurOrd).First().RecID;
|
|
|
+ });
|
|
|
+ _purOrdDetail.Insert(poaction.poDetailList);
|
|
|
+ }
|
|
|
scope.Complete();
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
@@ -943,7 +964,7 @@ namespace Business.ResourceExamineManagement
|
|
|
return e.Message;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//清空快照数据
|
|
|
await ClearSnapShot(bangid);
|
|
|
//return JsonConvert.SerializeObject(rtn);
|
|
|
@@ -1186,9 +1207,9 @@ namespace Business.ResourceExamineManagement
|
|
|
production_leadtime = x.production_leadtime,
|
|
|
order_leadtime = x.order_leadtime,
|
|
|
minorderqty = x.minorderqty,
|
|
|
- put_integer=x.put_integer,
|
|
|
- minpackqty=x.minpackqty,
|
|
|
- ordissu_days=x.ordissu_days
|
|
|
+ put_integer = x.put_integer,
|
|
|
+ minpackqty = x.minpackqty,
|
|
|
+ ordissu_days = x.ordissu_days
|
|
|
}).AsQueryable<ICItemLeadTimeDto>().ToList();
|
|
|
}
|
|
|
|
|
|
@@ -1324,7 +1345,7 @@ namespace Business.ResourceExamineManagement
|
|
|
podetail.mysql_id = help.NextId();
|
|
|
podetail.po_id = po_Main.mysql_id;
|
|
|
podetail.po_billno = po_Main.po_billno;
|
|
|
- podetail.polist_row = podetaillist.Where(a=>a.po_billno== po_Main.po_billno).Count() + 1;
|
|
|
+ podetail.polist_row = podetaillist.Where(a => a.po_billno == po_Main.po_billno).Count() + 1;
|
|
|
podetail.pr_id = item.mysql_id;
|
|
|
podetail.pr_billno = item.pr_billno;
|
|
|
podetail.pr_purchase_id = po_Main.supplier_id;
|
|
|
@@ -1515,6 +1536,49 @@ namespace Business.ResourceExamineManagement
|
|
|
poaction.polist.AddRange(po_listlist);
|
|
|
poaction.mopoMain.AddRange(polist);
|
|
|
poaction.mopolist.AddRange(podetaillist);
|
|
|
+ List<PurOrdMaster> purOrdMasters = new List<PurOrdMaster>();
|
|
|
+ po_mainlist.ForEach(a =>
|
|
|
+ {
|
|
|
+ purOrdMasters.Add(new PurOrdMaster
|
|
|
+ {
|
|
|
+ Domain = "1001",
|
|
|
+ Potype = "po",
|
|
|
+ PurOrd = a.po_billno,
|
|
|
+ Buyer = a.po_purchaser,
|
|
|
+ OrdDate = a.po_ssend_date,
|
|
|
+ Curr = "CNY",
|
|
|
+ Supp = a.supplier_no,
|
|
|
+ Tax1 = a.po_tax_rate,
|
|
|
+ Department = a.purchasing_orgname,
|
|
|
+ CustPhone = a.suppliertelephone,
|
|
|
+ CustAddress = a.supplierdddress,
|
|
|
+ IsActive = true,
|
|
|
+ CreateTime = a.create_time,
|
|
|
+ UpdateTime = a.update_time
|
|
|
+ });
|
|
|
+ });
|
|
|
+ poaction.poMasterList.AddRange(purOrdMasters);
|
|
|
+ List<PurOrdDetail> purOrdDetails = new List<PurOrdDetail>();
|
|
|
+ po_listlist.ForEach(a =>
|
|
|
+ {
|
|
|
+ purOrdDetails.Add(new PurOrdDetail
|
|
|
+ {
|
|
|
+ Domain = "1001",
|
|
|
+ Potype = "po",
|
|
|
+ PurOrd = a.po_billno,
|
|
|
+ IsActive = true,
|
|
|
+ CreateTime = a.create_time,
|
|
|
+ UpdateTime = a.update_time,
|
|
|
+ Line = a.polist_row,
|
|
|
+ ItemNum = a.ItemNum,
|
|
|
+ QtyOrded = a.qty,
|
|
|
+ QtyReceived = a.rqty,
|
|
|
+ PurCost = a.price,
|
|
|
+ TaxRate = a.rate,
|
|
|
+ DueDate = a.rarrdate
|
|
|
+ });
|
|
|
+ });
|
|
|
+ poaction.poDetailList.AddRange(purOrdDetails);
|
|
|
}
|
|
|
private void AutoCreateWWPOFromPR(List<mo_srm_pr_main> list, long bangid, List<mo_ic_item> itemList, List<mo_srm_supplier> itemsupplierList, PoActionListDto poaction)
|
|
|
{
|
|
|
@@ -1761,6 +1825,49 @@ namespace Business.ResourceExamineManagement
|
|
|
poaction.polist.AddRange(po_listlist);
|
|
|
poaction.mopoMain.AddRange(polist);
|
|
|
poaction.mopolist.AddRange(podetaillist);
|
|
|
+ List<PurOrdMaster> purOrdMasters = new List<PurOrdMaster>();
|
|
|
+ po_mainlist.ForEach(a =>
|
|
|
+ {
|
|
|
+ purOrdMasters.Add(new PurOrdMaster
|
|
|
+ {
|
|
|
+ Domain = "1001",
|
|
|
+ Potype = "pw",
|
|
|
+ PurOrd = a.po_billno,
|
|
|
+ Buyer = a.po_purchaser,
|
|
|
+ OrdDate = a.po_ssend_date,
|
|
|
+ Curr = "CNY",
|
|
|
+ Supp = a.supplier_no,
|
|
|
+ Tax1 = a.po_tax_rate,
|
|
|
+ Department = a.purchasing_orgname,
|
|
|
+ CustPhone = a.suppliertelephone,
|
|
|
+ CustAddress = a.supplierdddress,
|
|
|
+ IsActive = true,
|
|
|
+ CreateTime = a.create_time,
|
|
|
+ UpdateTime = a.update_time
|
|
|
+ });
|
|
|
+ });
|
|
|
+ poaction.poMasterList.AddRange(purOrdMasters);
|
|
|
+ List<PurOrdDetail> purOrdDetails = new List<PurOrdDetail>();
|
|
|
+ po_listlist.ForEach(a =>
|
|
|
+ {
|
|
|
+ purOrdDetails.Add(new PurOrdDetail
|
|
|
+ {
|
|
|
+ Domain = "1001",
|
|
|
+ Potype = "pw",
|
|
|
+ PurOrd = a.po_billno,
|
|
|
+ IsActive = true,
|
|
|
+ CreateTime = a.create_time,
|
|
|
+ UpdateTime = a.update_time,
|
|
|
+ Line = a.polist_row,
|
|
|
+ ItemNum = a.ItemNum,
|
|
|
+ QtyOrded = a.qty,
|
|
|
+ QtyReceived = a.rqty,
|
|
|
+ PurCost = a.price,
|
|
|
+ TaxRate = a.rate,
|
|
|
+ DueDate = a.rarrdate
|
|
|
+ });
|
|
|
+ });
|
|
|
+ poaction.poDetailList.AddRange(purOrdDetails);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -2092,12 +2199,12 @@ namespace Business.ResourceExamineManagement
|
|
|
//产品物料编码
|
|
|
List<string> itemnums = pretreatments.Where(p => p.level == 1).Select(p => p.item_number).Distinct().ToList();
|
|
|
//产线明细
|
|
|
- prodLines = _prodLineDetail.Select(p=> itemnums.Contains(p.Part)).ToList();
|
|
|
+ prodLines = _prodLineDetail.Select(p => itemnums.Contains(p.Part)).ToList();
|
|
|
//标准工序
|
|
|
routingOps = _routingOpDetail.Select(p => itemnums.Contains(p.RoutingCode)).ToList();
|
|
|
- List<string> lines = prodLines.Select(p=>p.Line).Distinct().ToList();
|
|
|
+ List<string> lines = prodLines.Select(p => p.Line).Distinct().ToList();
|
|
|
//工作日历
|
|
|
- calendarWorks = _shopCalendarWorkCtr.Select(p=>lines.Contains(p.ProdLine)).ToList();
|
|
|
+ calendarWorks = _shopCalendarWorkCtr.Select(p => lines.Contains(p.ProdLine)).ToList();
|
|
|
//休息日
|
|
|
qualityLineWorks = _qualityLineWorkDetail.Select(p => lines.Contains(p.ProdLine)).ToList();
|
|
|
//节假日
|
|
|
@@ -2124,7 +2231,7 @@ namespace Business.ResourceExamineManagement
|
|
|
//物料提前期
|
|
|
leadTimeList = GetLeadTime(icitemlist, param.tenantId, param.factoryId);//提前期列表
|
|
|
supplierList = GetSupplier(itemIds, param.tenantId, param.factoryId);//供应商列表
|
|
|
-
|
|
|
+
|
|
|
_CalcBomViewAppService.leadTimeList = leadTimeList;
|
|
|
_CalcBomViewAppService.supplierList = supplierList;
|
|
|
|
|
|
@@ -2138,7 +2245,7 @@ namespace Business.ResourceExamineManagement
|
|
|
_CalcBomViewAppService.mordersList = mo_Mes_Morders;//工单
|
|
|
_CalcBomViewAppService.moentriesList = mo_Mes_Moentry;//工单子表
|
|
|
_CalcBomViewAppService.mooccupyAllList = mes_mooccupyList;//工单占用表
|
|
|
-
|
|
|
+
|
|
|
_CalcBomViewAppService.srm_Po_Lists = poDetailList; //采购明细
|
|
|
_CalcBomViewAppService.srm_Po_Occupies = poOccupys; //采购占用表
|
|
|
_CalcBomViewAppService.ic_item_List = icitemlist; //物料表
|
|
|
@@ -2269,10 +2376,10 @@ namespace Business.ResourceExamineManagement
|
|
|
if (dbPeriodSequences.Any())
|
|
|
{
|
|
|
//按照工单领料,一个工单一个领料单,之前是按照排产日期和产线分别领料
|
|
|
- foreach(var workord in workOrds)
|
|
|
+ foreach (var workord in workOrds)
|
|
|
{
|
|
|
Dictionary<string, decimal> dictItemQty = new Dictionary<string, decimal>();
|
|
|
- List<string> lines = dbPeriodSequences.Where(a=>a.WorkOrds==workord).Select(a => a.Line).Distinct().ToList();
|
|
|
+ List<string> lines = dbPeriodSequences.Where(a => a.WorkOrds == workord).Select(a => a.Line).Distinct().ToList();
|
|
|
List<LineMaster> lineMasters = _lineMaster.Select(p => lines.Contains(p.Line) && p.Domain == "1001" && p.IsActive);
|
|
|
List<ProductStructureMaster> itemList = GetProductStructure(dbPeriodSequences.First(a => a.WorkOrds == workord).ItemNum);
|
|
|
var childrenList = itemList.Select(a => a.ComponentItem).Distinct().ToList();
|
|
|
@@ -2287,7 +2394,7 @@ namespace Business.ResourceExamineManagement
|
|
|
Type = "SM",
|
|
|
Nbr = Nbr,
|
|
|
Remark = "排产自动领料",
|
|
|
- Date = dbPeriodSequences.Where(a => a.WorkOrds == workord).Min(a=>a.PlanDate),
|
|
|
+ Date = dbPeriodSequences.Where(a => a.WorkOrds == workord).Min(a => a.PlanDate),
|
|
|
//ProdLine = item.Line,
|
|
|
Status = "",
|
|
|
WorkOrd = workord,
|
|
|
@@ -2306,13 +2413,13 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
var find = itemLocList?.Find(c => c.ItemNum == a.ComponentItem);
|
|
|
string LocationTo = "";
|
|
|
- if (find!=null)
|
|
|
+ if (find != null)
|
|
|
{
|
|
|
- LocationTo=find.Location;
|
|
|
+ LocationTo = find.Location;
|
|
|
}
|
|
|
//相同物料汇总
|
|
|
var itemComponent = nbrDetailList.Find(b => b.Nbr == Nbr && b.ItemNum == a.ComponentItem);
|
|
|
- if (itemComponent==null)
|
|
|
+ if (itemComponent == null)
|
|
|
{
|
|
|
nbrDetailList.Add(new NbrDetail
|
|
|
{
|
|
|
@@ -2325,8 +2432,8 @@ namespace Business.ResourceExamineManagement
|
|
|
LocationFrom = LocationTo,
|
|
|
LocationTo = "",
|
|
|
WorkOrd = workord,
|
|
|
- QtyOrd =QtyOrdSum * a.Qty,
|
|
|
- CurrQtyOpened = QtyOrdSum * a.Qty ,
|
|
|
+ QtyOrd = QtyOrdSum * a.Qty,
|
|
|
+ CurrQtyOpened = QtyOrdSum * a.Qty,
|
|
|
Line = i,
|
|
|
IsActive = true,
|
|
|
CreateTime = DateTime.Now,
|
|
|
@@ -2339,13 +2446,13 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- nbrDetailList.First( b=> b.Nbr == Nbr && b.ItemNum == a.ComponentItem).QtyOrd= itemComponent.QtyOrd+ QtyOrdSum * a.Qty;
|
|
|
+ nbrDetailList.First(b => b.Nbr == Nbr && b.ItemNum == a.ComponentItem).QtyOrd = itemComponent.QtyOrd + QtyOrdSum * a.Qty;
|
|
|
nbrDetailList.First(b => b.Nbr == Nbr && b.ItemNum == a.ComponentItem).CurrQtyOpened = itemComponent.CurrQtyOpened + QtyOrdSum * a.Qty;
|
|
|
}
|
|
|
});
|
|
|
- nbrDetailList.ForEach(a =>
|
|
|
+ nbrDetailList.ForEach(a =>
|
|
|
{
|
|
|
- if(a.Nbr==Nbr)
|
|
|
+ if (a.Nbr == Nbr)
|
|
|
{
|
|
|
var find = itemLocList?.Find(c => c.ItemNum == a.ItemNum);
|
|
|
var packfind = itemPackList?.Find(c => c.ItemNum == a.ItemNum);
|
|
|
@@ -2364,7 +2471,7 @@ namespace Business.ResourceExamineManagement
|
|
|
//var items = _mysql_ic_item.GetListAsync(a => itemKeys.Contains(a.number) && a.factory_id == 1001 && a.tenant_id == 1000).Result;
|
|
|
//var itemIds = items.Select(b => b.Id).ToList();
|
|
|
//var leadTimes = GetLeadTime(itemIds, 1000, 1001).Max(a=>a.ordissu_days.GetValueOrDefault());
|
|
|
- decimal leadTimes=itemLocList.Select(a => a.MFGMTTR).Max();
|
|
|
+ decimal leadTimes = itemLocList.Select(a => a.MFGMTTR).Max();
|
|
|
//没有维护备料提前期,默认取7天
|
|
|
if (leadTimes > 0)
|
|
|
{
|
|
|
@@ -2377,12 +2484,12 @@ namespace Business.ResourceExamineManagement
|
|
|
//TODO:
|
|
|
//因为我们并没有模拟发料的过程,在自动生成领料单的时候就要扣减库存,实际业务不能这么做。
|
|
|
//在有上料和追溯的系统,可以在扫码上料或报工时(从线边仓)扣减。或者在实际发料出库时扣减。
|
|
|
- var locStock=_locationDetail.Select(a => itemKeys.Contains(a.ItemNum) && a.IsActive && a.Domain == "1001");
|
|
|
+ var locStock = _locationDetail.Select(a => itemKeys.Contains(a.ItemNum) && a.IsActive && a.Domain == "1001");
|
|
|
locStock?.ForEach(a =>
|
|
|
{
|
|
|
nbrDetailList.ForEach(b =>
|
|
|
{
|
|
|
- if(a.ItemNum==b.ItemNum && a.Location==b.LocationFrom && a.QtyOnHand - dictItemQty[a.ItemNum] > 0)
|
|
|
+ if (a.ItemNum == b.ItemNum && a.Location == b.LocationFrom && a.QtyOnHand - dictItemQty[a.ItemNum] > 0)
|
|
|
{
|
|
|
a.QtyOnHand = a.QtyOnHand - dictItemQty[a.ItemNum];
|
|
|
}
|
|
|
@@ -2421,45 +2528,46 @@ namespace Business.ResourceExamineManagement
|
|
|
List<ic_item_stock> mysqlStock = _mysql_ic_item_stock.GetListAsync(a => itemIds.Contains(a.Id) && a.factory_id == 1001 && a.tenant_id == 1000).Result;
|
|
|
List<ic_item_stock> needAddList = new List<ic_item_stock>();
|
|
|
|
|
|
- foreach(var stockWMS in groupList)
|
|
|
+ foreach (var stockWMS in groupList)
|
|
|
{
|
|
|
foreach (var num in items)
|
|
|
{
|
|
|
- if (stockWMS.ItemNum==num.number)
|
|
|
+ if (stockWMS.ItemNum == num.number)
|
|
|
{
|
|
|
var item = mysqlStock.Find(a => a.Id == num.Id);
|
|
|
- if(item!=null)
|
|
|
+ if (item != null)
|
|
|
{
|
|
|
item.sqty = groupList.First(a => a.ItemNum == num.number).Qty;
|
|
|
- }else
|
|
|
+ }
|
|
|
+ else
|
|
|
{
|
|
|
- ic_item_stock stock= new ic_item_stock();
|
|
|
+ ic_item_stock stock = new ic_item_stock();
|
|
|
stock.GenerateNewId();
|
|
|
stock.factory_id = 1001;
|
|
|
stock.tenant_id = 1000;
|
|
|
stock.icitem_id = num.Id;
|
|
|
stock.icitem_name = num.name;
|
|
|
- stock.sqty= groupList.First(a => a.ItemNum == num.number).Qty;
|
|
|
+ stock.sqty = groupList.First(a => a.ItemNum == num.number).Qty;
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
};
|
|
|
}
|
|
|
- if(needAddList.Count>0)
|
|
|
+ if (needAddList.Count > 0)
|
|
|
{
|
|
|
_businessDbContext.BulkInsert(needAddList);
|
|
|
}
|
|
|
_businessDbContext.BulkUpdate(mysqlStock);
|
|
|
}
|
|
|
//循环获取子级物料编码,包括产品本身,有重复的结果去重即可
|
|
|
- public List<string> GetChildItemNumber(string itemNum,List<string> list)
|
|
|
+ public List<string> GetChildItemNumber(string itemNum, List<string> list)
|
|
|
{
|
|
|
list.Add(itemNum);
|
|
|
- var productStructures = _productStructureMaster.Select(p =>p.ParentItem== itemNum && p.Domain == "1001" && p.IsActive);
|
|
|
- list.AddRange(productStructures.Select(a=>a.ComponentItem));
|
|
|
+ var productStructures = _productStructureMaster.Select(p => p.ParentItem == itemNum && p.Domain == "1001" && p.IsActive);
|
|
|
+ list.AddRange(productStructures.Select(a => a.ComponentItem));
|
|
|
foreach (var item in productStructures)
|
|
|
{
|
|
|
- if(item.StructureType.ToUpper()=="X")
|
|
|
+ if (item.StructureType.ToUpper() == "X")
|
|
|
{
|
|
|
GetChildItemNumber(item.ComponentItem, list);
|
|
|
}
|
|
|
@@ -2576,7 +2684,7 @@ namespace Business.ResourceExamineManagement
|
|
|
workOrd.IsActive = true;
|
|
|
workOrd.IsConfirm = true;
|
|
|
workOrds.Add(workOrd);
|
|
|
-
|
|
|
+
|
|
|
//添加工单工艺路线数据
|
|
|
var curRoutings = allRoutings.Where(p => p.RoutingCode == item.product_code).ToList();
|
|
|
foreach (var dtl in curRoutings)
|
|
|
@@ -2637,7 +2745,7 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
//递归获取所有虚拟件对应的子物料
|
|
|
RecursionProductStructure(itenNum, curPhantoms, rtnStructures);
|
|
|
-
|
|
|
+
|
|
|
return rtnStructures;
|
|
|
}
|
|
|
|
|
|
@@ -2674,10 +2782,10 @@ namespace Business.ResourceExamineManagement
|
|
|
/// </summary>
|
|
|
/// <param name="sentrys"></param>
|
|
|
/// <param name="kittingTimes"></param>
|
|
|
- public void CalcSuggestDate(List<crm_seorderentry> sentrys, List<KittingTimeDto> kittingTimes)
|
|
|
+ public void CalcSuggestDate(List<crm_seorderentry> sentrys, List<KittingTimeDto> kittingTimes)
|
|
|
{
|
|
|
//获取排产记录
|
|
|
- List<string> itemNums = sentrys.Select(p=>p.item_number).Distinct().ToList();
|
|
|
+ List<string> itemNums = sentrys.Select(p => p.item_number).Distinct().ToList();
|
|
|
DateTime eralist = kittingTimes.Min(p => p.kitting_time).Date;
|
|
|
List<PeriodSequenceDet> periodSequences = _periodSequenceDet.Select(p => itemNums.Contains(p.ItemNum) && p.PlanDate >= eralist).ToList();
|
|
|
|