|
|
@@ -266,6 +266,9 @@ namespace Business.ResourceExamineManagement
|
|
|
/// 生产线维护表
|
|
|
/// </summary>
|
|
|
private ISqlRepository<LineMaster> _lineMaster;
|
|
|
+ private ISqlRepository<ItemMaster> _itemMaster;
|
|
|
+ private ISqlRepository<NbrMaster> _nbrMaster;
|
|
|
+ private ISqlRepository<NbrDetail> _nbrDetail;
|
|
|
private readonly ProductionScheduleAppService _productionScheduleAppService;
|
|
|
#endregion
|
|
|
|
|
|
@@ -333,6 +336,7 @@ namespace Business.ResourceExamineManagement
|
|
|
ISqlRepository<TagMaster> tagMasterRepository,
|
|
|
ISqlRepository<PeriodSequenceDet> periodSequenceDet,
|
|
|
ISqlRepository<LineMaster> lineMaster,
|
|
|
+ ISqlRepository<ItemMaster> itemMaster,
|
|
|
PretreatmentAppService pretreatmentAppService,
|
|
|
CalcBomViewAppService calcbomviewAppService,
|
|
|
PurchaseOrderAppService purchaseOrderAppService,
|
|
|
@@ -345,7 +349,9 @@ namespace Business.ResourceExamineManagement
|
|
|
ISqlRepository<ProductStructureMaster> productStructureMaster,
|
|
|
ISqlRepository<WorkOrdRouting> workOrdRouting,
|
|
|
ISqlRepository<WorkOrdMaster> workOrdMaster,
|
|
|
- ISqlRepository<WorkOrdDetail> workOrdDetail
|
|
|
+ ISqlRepository<WorkOrdDetail> workOrdDetail,
|
|
|
+ ISqlRepository<NbrMaster> nbrMaster,
|
|
|
+ ISqlRepository<NbrDetail> nbrDetail
|
|
|
)
|
|
|
{
|
|
|
_mes_technique = mes_technique;
|
|
|
@@ -401,7 +407,6 @@ namespace Business.ResourceExamineManagement
|
|
|
_mysql_srm_supplier = mysql_srm_supplier;
|
|
|
_tagMasterRepository = tagMasterRepository;
|
|
|
_periodSequenceDet = periodSequenceDet;
|
|
|
- _lineMaster = lineMaster;
|
|
|
_pretreatmentAppService = pretreatmentAppService;
|
|
|
_CalcBomViewAppService = calcbomviewAppService;
|
|
|
_purchaseOrderAppService = purchaseOrderAppService;
|
|
|
@@ -415,6 +420,10 @@ namespace Business.ResourceExamineManagement
|
|
|
_workOrdRouting = workOrdRouting;
|
|
|
_workOrdMaster=workOrdMaster;
|
|
|
_workOrdDetail=workOrdDetail;
|
|
|
+ _lineMaster = lineMaster;
|
|
|
+ _itemMaster = itemMaster;
|
|
|
+ _nbrMaster = nbrMaster;
|
|
|
+ _nbrDetail = nbrDetail;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
@@ -2441,31 +2450,63 @@ namespace Business.ResourceExamineManagement
|
|
|
|
|
|
public void AutoCreatePickBill(List<string> workOrds)
|
|
|
{
|
|
|
+ workOrds.Add("Test0000001");
|
|
|
//获取生产周期数据
|
|
|
List<PeriodSequenceDet> dbPeriodSequences = _periodSequenceDet.Select(p => workOrds.Contains(p.WorkOrds) && p.Domain == "1001" && p.IsActive);
|
|
|
List<LineMaster> lineMasters = new List<LineMaster>();
|
|
|
- List<string> lines = new List<string>();//产线列表,用于获取领料单对应产线线边仓
|
|
|
- List<NbrDetail> nNbrDetail = new List<NbrDetail>();//需要生成领料单列表
|
|
|
+ List<string> lines = new List<string>();//产线列表,
|
|
|
+ List<NbrMaster> nbrMasterList = new List<NbrMaster>();//需要生成领料单列表
|
|
|
+ List<NbrDetail> nbrDetailList = new List<NbrDetail>();//需要生成领料单列表
|
|
|
if (dbPeriodSequences.Any())
|
|
|
{
|
|
|
lines = dbPeriodSequences.Select(a => a.Line).Distinct().ToList();
|
|
|
lineMasters = _lineMaster.Select(p => lines.Contains(p.Line) && p.Domain == "1001" && p.IsActive);
|
|
|
+ List<ProductStructureMaster> itemList=GetProductStructure(dbPeriodSequences.Select(a=>a.ItemNum).Distinct().ToList());
|
|
|
+ var childrenList= itemList.Select(a=>a.ComponentItem).Distinct().ToList();
|
|
|
+ List<ItemMaster> itemLocList = _itemMaster.Select(p => childrenList.Contains(p.ItemNum) && p.Domain == "1001" && p.IsActive).Distinct().ToList();
|
|
|
+ int i = 100;
|
|
|
foreach (var item in dbPeriodSequences)
|
|
|
{
|
|
|
- nNbrDetail.Add(new NbrDetail
|
|
|
+ var Nbr = "YHF" + DateTime.Now.ToString("yyyyMMdd")+ i.ToString();
|
|
|
+ nbrMasterList.Add(new NbrMaster
|
|
|
{
|
|
|
-
|
|
|
Domain = "1001",
|
|
|
Type = "SM",
|
|
|
- Nbr = "",
|
|
|
- ItemNum = "",
|
|
|
- QtyFrom = 0,
|
|
|
- QtyTo = 0,
|
|
|
- WorkOrd = item.WorkOrds,
|
|
|
- QtyOrd = 0,
|
|
|
+ Nbr = Nbr,
|
|
|
+ Remark="",
|
|
|
+ Date=item.PlanDate,
|
|
|
+ Status="",
|
|
|
+ WorkOrd="",
|
|
|
+ QtyOrd=item.OrdQty.HasValue? item.OrdQty.Value:0,
|
|
|
IsActive = true
|
|
|
});
|
|
|
+ i++;
|
|
|
+ itemList.Where(a => a.ParentItem == item.ItemNum).ToList()?.ForEach(a =>
|
|
|
+ {
|
|
|
+ string LocationTo = "";
|
|
|
+ if (itemLocList.Where(c => c.ItemNum == a.ComponentItem).ToList().Any())
|
|
|
+ {
|
|
|
+ LocationTo = itemLocList?.Where(c => c.ItemNum == a.ComponentItem).First().Location;
|
|
|
+ }
|
|
|
+ nbrDetailList.Add(new NbrDetail
|
|
|
+ {
|
|
|
+ Domain = "1001",
|
|
|
+ Type = "SM",
|
|
|
+ Nbr = Nbr,
|
|
|
+ //TODO:Line产线字段是否需要
|
|
|
+ ItemNum =a.ComponentItem,
|
|
|
+ QtyFrom = 0,
|
|
|
+ QtyTo = 0,
|
|
|
+ LocationFrom="",
|
|
|
+ LocationTo= LocationTo,
|
|
|
+ WorkOrd = item.WorkOrds,
|
|
|
+ QtyOrd = item.OrdQty*a.Qty,
|
|
|
+ IsActive = true
|
|
|
+ });
|
|
|
+ });
|
|
|
}
|
|
|
+ _nbrMaster.Insert(nbrMasterList);
|
|
|
+ _nbrDetail.Insert(nbrDetailList);
|
|
|
}
|
|
|
}
|
|
|
}
|