|
@@ -501,64 +501,45 @@ namespace Business.ResourceExamineManagement
|
|
|
else if (item.erp_cls == 3)
|
|
else if (item.erp_cls == 3)
|
|
|
{
|
|
{
|
|
|
//先找在途
|
|
//先找在途
|
|
|
- _purchaseOrderAppService.mo_Srm_Po_Lists = srm_Po_Lists;
|
|
|
|
|
- _purchaseOrderAppService.srm_Po_Occupies = srm_Po_Occupies;
|
|
|
|
|
CalcInTransit(sentrys, item, bangid, plan_date.GetValueOrDefault());
|
|
CalcInTransit(sentrys, item, bangid, plan_date.GetValueOrDefault());
|
|
|
if (item.lack_qty > 0)
|
|
if (item.lack_qty > 0)
|
|
|
{
|
|
{
|
|
|
//采购申请
|
|
//采购申请
|
|
|
- var SRMPRDto = CreateSRMPR(item, input.tenantId, input.factoryId, bangid, item.erp_cls, leadTimeList, supplierList, planList, plan_date.Value);
|
|
|
|
|
- item.purchase_qty = item.lack_qty;
|
|
|
|
|
- item.purchase_list = new List<purchase>();
|
|
|
|
|
- if (SRMPRDto.srm_Pr_Main != null)
|
|
|
|
|
- {
|
|
|
|
|
- purchase pur = new purchase();
|
|
|
|
|
- pur.pr_billno = SRMPRDto.srm_Pr_Main.pr_billno;
|
|
|
|
|
- pur.pr_purchasenumber = SRMPRDto.srm_Pr_Main.pr_purchasenumber;
|
|
|
|
|
- pur.pr_purchasename = SRMPRDto.srm_Pr_Main.pr_purchasename;
|
|
|
|
|
- pur.pr_rqty = SRMPRDto.srm_Pr_Main.pr_rqty;
|
|
|
|
|
- pur.pr_aqty = SRMPRDto.srm_Pr_Main.pr_aqty;
|
|
|
|
|
- pur.pr_sqty = SRMPRDto.srm_Pr_Main.pr_sqty;
|
|
|
|
|
- pur.pr_parrive_date = SRMPRDto.srm_Pr_Main.pr_parrive_date;
|
|
|
|
|
- pur.pr_rarrive_date = SRMPRDto.srm_Pr_Main.pr_rarrive_date;
|
|
|
|
|
- pur.pr_pur_affirm_date = SRMPRDto.srm_Pr_Main.pr_pur_affirm_date;
|
|
|
|
|
- pur.pr_sysprice = SRMPRDto.srm_Pr_Main.pr_sysprice;
|
|
|
|
|
- pur.pr_orderprice = SRMPRDto.srm_Pr_Main.pr_orderprice;
|
|
|
|
|
- pur.pr_price = SRMPRDto.srm_Pr_Main.pr_price;
|
|
|
|
|
- pur.pr_rate = SRMPRDto.srm_Pr_Main.pr_rate;
|
|
|
|
|
- item.purchase_list.Add(pur);
|
|
|
|
|
- }
|
|
|
|
|
- item.kitting_time = SRMPRDto.lastStartTmie;
|
|
|
|
|
- SRMPRDtoList.Add(SRMPRDto);
|
|
|
|
|
|
|
+ PackageSRMPR(item, input, bangid, plan_date);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
else if (item.erp_cls == 2)
|
|
else if (item.erp_cls == 2)
|
|
|
{
|
|
{
|
|
|
//先找在途
|
|
//先找在途
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- //先计算末级数据的齐套时间。
|
|
|
|
|
- if (cilList.Count() > 0)
|
|
|
|
|
|
|
+ CalcInTransit(sentrys, item, bangid, plan_date.GetValueOrDefault());
|
|
|
|
|
+ if (item.lack_qty > 0)
|
|
|
{
|
|
{
|
|
|
- CalcIcitem(cilList, returnlist, bangid, input, sklist, plan_date, icitemlist, sentrys, childidList);
|
|
|
|
|
- item.kitting_time = cilList.Max(s => s.kitting_time);
|
|
|
|
|
|
|
+ //先计算末级数据的齐套时间。
|
|
|
|
|
+ if (cilList.Count() > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ CalcIcitem(cilList, returnlist, bangid, input, sklist, plan_date, icitemlist, sentrys, childidList);
|
|
|
|
|
+ item.kitting_time = cilList.Max(s => s.kitting_time);
|
|
|
|
|
+ }
|
|
|
|
|
+ //1.先生成委外工单。
|
|
|
|
|
+ var mesorder = CreateMesOOder(item, input.tenantId, input.factoryId, bangid, leadTimeList, supplierList, plan_date.Value);
|
|
|
|
|
+ item.subcontracting_qty = item.lack_qty;
|
|
|
|
|
+ item.subcontracting_list = new List<ooder>();
|
|
|
|
|
+ ooder oo = new ooder();
|
|
|
|
|
+ oo.morder_production_number = mesorder.morder_production_number;
|
|
|
|
|
+ oo.production_unit = mesorder.production_unit;
|
|
|
|
|
+ oo.production_unit_code = mesorder.production_unit_code;
|
|
|
|
|
+ oo.ooentry_prdname = mesorder.ooentry_prdname;
|
|
|
|
|
+ oo.ooentry_stime = mesorder.ooentry_stime;
|
|
|
|
|
+ oo.ooentry_etime = mesorder.ooentry_etime;
|
|
|
|
|
+ oo.oorder_date = mesorder.oorder_date;
|
|
|
|
|
+ oo.oorder_no = mesorder.oorder_no;
|
|
|
|
|
+ item.subcontracting_list.Add(oo);
|
|
|
|
|
+ item.kitting_time = mesorder.ooentry_etime;
|
|
|
|
|
+ orderList.Add(mesorder);
|
|
|
|
|
+ //2.生成采购申请
|
|
|
|
|
+ //采购申请
|
|
|
|
|
+ PackageSRMPR(item, input, bangid, plan_date);
|
|
|
}
|
|
}
|
|
|
- //1.先生成委外工单。
|
|
|
|
|
- var mesorder = CreateMesOOder(item, input.tenantId, input.factoryId, bangid, leadTimeList, supplierList, plan_date.Value);
|
|
|
|
|
- item.subcontracting_qty = item.lack_qty;
|
|
|
|
|
- item.subcontracting_list = new List<ooder>();
|
|
|
|
|
- ooder oo = new ooder();
|
|
|
|
|
- oo.morder_production_number = mesorder.morder_production_number;
|
|
|
|
|
- oo.production_unit = mesorder.production_unit;
|
|
|
|
|
- oo.production_unit_code = mesorder.production_unit_code;
|
|
|
|
|
- oo.ooentry_prdname = mesorder.ooentry_prdname;
|
|
|
|
|
- oo.ooentry_stime = mesorder.ooentry_stime;
|
|
|
|
|
- oo.ooentry_etime = mesorder.ooentry_etime;
|
|
|
|
|
- oo.oorder_date = mesorder.oorder_date;
|
|
|
|
|
- oo.oorder_no = mesorder.oorder_no;
|
|
|
|
|
- item.subcontracting_list.Add(oo);
|
|
|
|
|
- item.kitting_time = mesorder.ooentry_etime;
|
|
|
|
|
- orderList.Add(mesorder);
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
@@ -882,59 +863,66 @@ namespace Business.ResourceExamineManagement
|
|
|
else if (sct.erp_cls == 3)
|
|
else if (sct.erp_cls == 3)
|
|
|
{
|
|
{
|
|
|
//先找在途
|
|
//先找在途
|
|
|
- _purchaseOrderAppService.mo_Srm_Po_Lists = srm_Po_Lists;
|
|
|
|
|
- _purchaseOrderAppService.srm_Po_Occupies = srm_Po_Occupies;
|
|
|
|
|
CalcInTransit(sentrys, sct, bangid, plan_date.GetValueOrDefault());
|
|
CalcInTransit(sentrys, sct, bangid, plan_date.GetValueOrDefault());
|
|
|
-
|
|
|
|
|
- //采购申请
|
|
|
|
|
- var SRMPRDto = CreateSRMPR(sct, input.tenantId, input.factoryId, bangid, sct.erp_cls, leadTimeList, supplierList, planList, plan_date.Value);
|
|
|
|
|
- sct.purchase_qty = sct.lack_qty;
|
|
|
|
|
- sct.purchase_list = new List<purchase>();
|
|
|
|
|
- if (SRMPRDto.srm_Pr_Main != null)
|
|
|
|
|
|
|
+ if (sct.lack_qty > 0)
|
|
|
{
|
|
{
|
|
|
- purchase pur = new purchase();
|
|
|
|
|
- pur.pr_billno = SRMPRDto.srm_Pr_Main.pr_billno;
|
|
|
|
|
- pur.pr_purchasenumber = SRMPRDto.srm_Pr_Main.pr_purchasenumber;
|
|
|
|
|
- pur.pr_purchasename = SRMPRDto.srm_Pr_Main.pr_purchasename;
|
|
|
|
|
- pur.pr_rqty = SRMPRDto.srm_Pr_Main.pr_rqty;
|
|
|
|
|
- pur.pr_aqty = SRMPRDto.srm_Pr_Main.pr_aqty;
|
|
|
|
|
- pur.pr_sqty = SRMPRDto.srm_Pr_Main.pr_sqty;
|
|
|
|
|
- pur.pr_parrive_date = SRMPRDto.srm_Pr_Main.pr_parrive_date;
|
|
|
|
|
- pur.pr_rarrive_date = SRMPRDto.srm_Pr_Main.pr_rarrive_date;
|
|
|
|
|
- pur.pr_pur_affirm_date = SRMPRDto.srm_Pr_Main.pr_pur_affirm_date;
|
|
|
|
|
- pur.pr_sysprice = SRMPRDto.srm_Pr_Main.pr_sysprice;
|
|
|
|
|
- pur.pr_orderprice = SRMPRDto.srm_Pr_Main.pr_orderprice;
|
|
|
|
|
- pur.pr_price = SRMPRDto.srm_Pr_Main.pr_price;
|
|
|
|
|
- pur.pr_rate = SRMPRDto.srm_Pr_Main.pr_rate;
|
|
|
|
|
- sct.purchase_list.Add(pur);
|
|
|
|
|
|
|
+ //采购申请
|
|
|
|
|
+ var SRMPRDto = CreateSRMPR(sct, input.tenantId, input.factoryId, bangid, sct.erp_cls, leadTimeList, supplierList, planList, plan_date.Value);
|
|
|
|
|
+ sct.purchase_qty = sct.lack_qty;
|
|
|
|
|
+ sct.purchase_list = new List<purchase>();
|
|
|
|
|
+ if (SRMPRDto.srm_Pr_Main != null)
|
|
|
|
|
+ {
|
|
|
|
|
+ purchase pur = new purchase();
|
|
|
|
|
+ pur.pr_billno = SRMPRDto.srm_Pr_Main.pr_billno;
|
|
|
|
|
+ pur.pr_purchasenumber = SRMPRDto.srm_Pr_Main.pr_purchasenumber;
|
|
|
|
|
+ pur.pr_purchasename = SRMPRDto.srm_Pr_Main.pr_purchasename;
|
|
|
|
|
+ pur.pr_rqty = SRMPRDto.srm_Pr_Main.pr_rqty;
|
|
|
|
|
+ pur.pr_aqty = SRMPRDto.srm_Pr_Main.pr_aqty;
|
|
|
|
|
+ pur.pr_sqty = SRMPRDto.srm_Pr_Main.pr_sqty;
|
|
|
|
|
+ pur.pr_parrive_date = SRMPRDto.srm_Pr_Main.pr_parrive_date;
|
|
|
|
|
+ pur.pr_rarrive_date = SRMPRDto.srm_Pr_Main.pr_rarrive_date;
|
|
|
|
|
+ pur.pr_pur_affirm_date = SRMPRDto.srm_Pr_Main.pr_pur_affirm_date;
|
|
|
|
|
+ pur.pr_sysprice = SRMPRDto.srm_Pr_Main.pr_sysprice;
|
|
|
|
|
+ pur.pr_orderprice = SRMPRDto.srm_Pr_Main.pr_orderprice;
|
|
|
|
|
+ pur.pr_price = SRMPRDto.srm_Pr_Main.pr_price;
|
|
|
|
|
+ pur.pr_rate = SRMPRDto.srm_Pr_Main.pr_rate;
|
|
|
|
|
+ sct.purchase_list.Add(pur);
|
|
|
|
|
+ }
|
|
|
|
|
+ sct.kitting_time = SRMPRDto.lastStartTmie;
|
|
|
|
|
+ SRMPRDtoList.Add(SRMPRDto);
|
|
|
}
|
|
}
|
|
|
- sct.kitting_time = SRMPRDto.lastStartTmie;
|
|
|
|
|
- SRMPRDtoList.Add(SRMPRDto);
|
|
|
|
|
}
|
|
}
|
|
|
else if (sct.erp_cls == 2)
|
|
else if (sct.erp_cls == 2)
|
|
|
{
|
|
{
|
|
|
- //先计算末级数据的齐套时间。
|
|
|
|
|
- if (cilList.Count() > 0)
|
|
|
|
|
|
|
+ //先找在途
|
|
|
|
|
+ CalcInTransit(sentrys, sct, bangid, plan_date.GetValueOrDefault());
|
|
|
|
|
+ if (sct.lack_qty > 0)
|
|
|
{
|
|
{
|
|
|
- CalcIcitem(cilList, returnlist, bangid, input, sklist, plan_date, icitemlist, sentrys, childidList);
|
|
|
|
|
- sct.kitting_time = cilList.Max(s => s.kitting_time);
|
|
|
|
|
|
|
+ //先计算末级数据的齐套时间。
|
|
|
|
|
+ if (cilList.Count() > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ CalcIcitem(cilList, returnlist, bangid, input, sklist, plan_date, icitemlist, sentrys, childidList);
|
|
|
|
|
+ sct.kitting_time = cilList.Max(s => s.kitting_time);
|
|
|
|
|
+ }
|
|
|
|
|
+ //1.先生成委外工单。
|
|
|
|
|
+ var mesorder = CreateMesOOder(sct, input.tenantId, input.factoryId, bangid, leadTimeList, supplierList, plan_date.Value);
|
|
|
|
|
+ sct.subcontracting_qty = sct.lack_qty;
|
|
|
|
|
+ sct.subcontracting_list = new List<ooder>();
|
|
|
|
|
+ ooder oo = new ooder();
|
|
|
|
|
+ oo.morder_production_number = mesorder.morder_production_number;
|
|
|
|
|
+ oo.production_unit = mesorder.production_unit;
|
|
|
|
|
+ oo.production_unit_code = mesorder.production_unit_code;
|
|
|
|
|
+ oo.ooentry_prdname = mesorder.ooentry_prdname;
|
|
|
|
|
+ oo.ooentry_stime = mesorder.ooentry_stime;
|
|
|
|
|
+ oo.ooentry_etime = mesorder.ooentry_etime;
|
|
|
|
|
+ oo.oorder_date = mesorder.oorder_date;
|
|
|
|
|
+ oo.oorder_no = mesorder.oorder_no;
|
|
|
|
|
+ item.subcontracting_list.Add(oo);
|
|
|
|
|
+ sct.kitting_time = mesorder.ooentry_etime;
|
|
|
|
|
+ orderList.Add(mesorder);
|
|
|
|
|
+ //采购申请
|
|
|
|
|
+ PackageSRMPR(item, input, bangid, plan_date);
|
|
|
}
|
|
}
|
|
|
- //1.先生成委外工单。
|
|
|
|
|
- var mesorder = CreateMesOOder(sct, input.tenantId, input.factoryId, bangid, leadTimeList, supplierList, plan_date.Value);
|
|
|
|
|
- sct.subcontracting_qty = sct.lack_qty;
|
|
|
|
|
- sct.subcontracting_list = new List<ooder>();
|
|
|
|
|
- ooder oo = new ooder();
|
|
|
|
|
- oo.morder_production_number = mesorder.morder_production_number;
|
|
|
|
|
- oo.production_unit = mesorder.production_unit;
|
|
|
|
|
- oo.production_unit_code = mesorder.production_unit_code;
|
|
|
|
|
- oo.ooentry_prdname = mesorder.ooentry_prdname;
|
|
|
|
|
- oo.ooentry_stime = mesorder.ooentry_stime;
|
|
|
|
|
- oo.ooentry_etime = mesorder.ooentry_etime;
|
|
|
|
|
- oo.oorder_date = mesorder.oorder_date;
|
|
|
|
|
- oo.oorder_no = mesorder.oorder_no;
|
|
|
|
|
- item.subcontracting_list.Add(oo);
|
|
|
|
|
- sct.kitting_time = mesorder.ooentry_etime;
|
|
|
|
|
- orderList.Add(mesorder);
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1101,6 +1089,7 @@ namespace Business.ResourceExamineManagement
|
|
|
item.purchase_occupy_qty = occqty;
|
|
item.purchase_occupy_qty = occqty;
|
|
|
item.lack_qty -= occqty;
|
|
item.lack_qty -= occqty;
|
|
|
item.purchase_occupy_list = new List<purchase_occupy>();
|
|
item.purchase_occupy_list = new List<purchase_occupy>();
|
|
|
|
|
+ item.kitting_time = occupylist[0].etime;
|
|
|
occupylist.ForEach(s => {
|
|
occupylist.ForEach(s => {
|
|
|
purchase_occupy ocp = new purchase_occupy();
|
|
purchase_occupy ocp = new purchase_occupy();
|
|
|
ocp.stime = s.stime;
|
|
ocp.stime = s.stime;
|
|
@@ -1116,5 +1105,33 @@ namespace Business.ResourceExamineManagement
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ public void PackageSRMPR(BomChildExamineDto item, SeorderentryDto input,long bangid,DateTime? plan_date)
|
|
|
|
|
+ {
|
|
|
|
|
+ //采购申请
|
|
|
|
|
+ var SRMPRDto = CreateSRMPR(item, input.tenantId, input.factoryId, bangid, item.erp_cls, leadTimeList, supplierList, planList, plan_date.Value);
|
|
|
|
|
+ item.purchase_qty = item.lack_qty;
|
|
|
|
|
+ item.purchase_list = new List<purchase>();
|
|
|
|
|
+ if (SRMPRDto.srm_Pr_Main != null)
|
|
|
|
|
+ {
|
|
|
|
|
+ purchase pur = new purchase();
|
|
|
|
|
+ pur.pr_billno = SRMPRDto.srm_Pr_Main.pr_billno;
|
|
|
|
|
+ pur.pr_purchasenumber = SRMPRDto.srm_Pr_Main.pr_purchasenumber;
|
|
|
|
|
+ pur.pr_purchasename = SRMPRDto.srm_Pr_Main.pr_purchasename;
|
|
|
|
|
+ pur.pr_rqty = SRMPRDto.srm_Pr_Main.pr_rqty;
|
|
|
|
|
+ pur.pr_aqty = SRMPRDto.srm_Pr_Main.pr_aqty;
|
|
|
|
|
+ pur.pr_sqty = SRMPRDto.srm_Pr_Main.pr_sqty;
|
|
|
|
|
+ pur.pr_parrive_date = SRMPRDto.srm_Pr_Main.pr_parrive_date;
|
|
|
|
|
+ pur.pr_rarrive_date = SRMPRDto.srm_Pr_Main.pr_rarrive_date;
|
|
|
|
|
+ pur.pr_pur_affirm_date = SRMPRDto.srm_Pr_Main.pr_pur_affirm_date;
|
|
|
|
|
+ pur.pr_sysprice = SRMPRDto.srm_Pr_Main.pr_sysprice;
|
|
|
|
|
+ pur.pr_orderprice = SRMPRDto.srm_Pr_Main.pr_orderprice;
|
|
|
|
|
+ pur.pr_price = SRMPRDto.srm_Pr_Main.pr_price;
|
|
|
|
|
+ pur.pr_rate = SRMPRDto.srm_Pr_Main.pr_rate;
|
|
|
|
|
+ item.purchase_list.Add(pur);
|
|
|
|
|
+ }
|
|
|
|
|
+ item.kitting_time = SRMPRDto.lastStartTmie;
|
|
|
|
|
+ SRMPRDtoList.Add(SRMPRDto);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|