|
|
@@ -10,6 +10,7 @@ using Bussiness.MongoModel.MES.IC;
|
|
|
using Bussiness.MongoModel.Production;
|
|
|
using Bussiness.MongoModel.SRM;
|
|
|
using Bussiness.MongoModel.Tech;
|
|
|
+using NUglify.Helpers;
|
|
|
using Spire.Pdf.Exporting.XPS.Schema;
|
|
|
using Spire.Pdf.General.Render.Decode.Jpeg2000.j2k.wavelet.synthesis;
|
|
|
using System;
|
|
|
@@ -86,6 +87,8 @@ namespace Business.ResourceExamineManagement
|
|
|
/// </summary>
|
|
|
private readonly PurchaseOrderAppService _purchaseOrderAppService;
|
|
|
|
|
|
+ Random rnd = new Random();
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 构造函数
|
|
|
/// </summary>
|
|
|
@@ -1073,6 +1076,84 @@ namespace Business.ResourceExamineManagement
|
|
|
return sRMPR;
|
|
|
}
|
|
|
|
|
|
+ private SRMPRShowDto CreateSRMPRShow(BomChildExamineDto returnlist, long tenantId, long factoryid, long bangId, int orderType, List<ICItemLeadTimeDto> iCItemLeadTimes, List<mo_ic_item_pur> supplierList, List<mo_ic_plan> planList, DateTime deliveryDate)
|
|
|
+ {
|
|
|
+ SRMPRShowDto sRMPRShowDto = new SRMPRShowDto();
|
|
|
+ SRMPRDto sRMPR = new SRMPRDto();
|
|
|
+
|
|
|
+ mo_srm_pr_main srm_Pr = new mo_srm_pr_main();
|
|
|
+ var leadTime = iCItemLeadTimes.Find(x => x.item_id == returnlist.item_id);
|
|
|
+ var supplier = supplierList.Where(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)
|
|
|
+ {
|
|
|
+ sRMPR.srm_Pr_Main = null;
|
|
|
+ sRMPR.lastStartTmie = deliveryDate.AddDays(7 * -1);//减去提前期
|
|
|
+ sRMPRShowDto.srm_Pr_Main = sRMPR;
|
|
|
+ sRMPRShowDto.srm_Pr_MainList.Add(sRMPR);
|
|
|
+ return sRMPRShowDto;
|
|
|
+ //throw new NotImplementedException("未找到物料ic_factory_details或ic_item_pur或ic_plan信息!");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ supplier.ForEach(x =>
|
|
|
+ {
|
|
|
+ //提前期随机数,金额随机数
|
|
|
+ leadTime.order_leadtime = rnd.Next(1, 5);
|
|
|
+ leadTime.transportation_leadtime = rnd.Next(1, 5);
|
|
|
+ leadTime.stock_leadtime = rnd.Next(1, 5);
|
|
|
+ leadTime.production_leadtime = rnd.Next(1, 5);
|
|
|
+
|
|
|
+ x.netpurchase_price = rnd.Next(1, 100);
|
|
|
+ x.taxrate = 0.13m;//固定13%增值税
|
|
|
+
|
|
|
+ srm_Pr.id = help.NextId();
|
|
|
+ srm_Pr.GenerateNewId();
|
|
|
+ srm_Pr.pr_billno = getOrderNum("PR");//pr单号
|
|
|
+ srm_Pr.pr_mono = "";//关联工单号
|
|
|
+ srm_Pr.entity_id = 1;//工单行号
|
|
|
+ srm_Pr.pr_purchaseid = x.supplier_id;//供应商id
|
|
|
+ srm_Pr.pr_purchasenumber = x.supplier_number;//供应商编码
|
|
|
+ srm_Pr.pr_purchasename = x.supplier_name;//供应商名称
|
|
|
+ srm_Pr.pr_purchaser = x.purcher;//采购员
|
|
|
+ srm_Pr.pr_purchaser_num = "";//采购员工号(采购信息表)
|
|
|
+ srm_Pr.pr_rqty = returnlist.lack_qty;//需求数量
|
|
|
+ srm_Pr.pr_aqty = returnlist.lack_qty;//申请数量
|
|
|
+ srm_Pr.pr_sqty = returnlist.lack_qty;//建议数量
|
|
|
+ srm_Pr.icitem_id = returnlist.item_id;//物料id
|
|
|
+ srm_Pr.icitem_name = returnlist.item_name;//物料名称
|
|
|
+ srm_Pr.pr_order_type = 1;//单据类型
|
|
|
+ srm_Pr.pr_ssend_date = deliveryDate.AddDays((double)leadTime.order_leadtime * -1);//系统建议下单日期
|
|
|
+ srm_Pr.pr_sarrive_date = deliveryDate.AddDays((double)leadTime.transportation_leadtime * -1);//系统建议到达日期(建议到货日期)
|
|
|
+ srm_Pr.pr_psend_date = deliveryDate.AddDays((double)leadTime.order_leadtime * -1);//计划下单日期
|
|
|
+ srm_Pr.pr_parrive_date = deliveryDate.AddDays((double)leadTime.transportation_leadtime * -1);//计划到达日期
|
|
|
+ srm_Pr.pr_psend_date = deliveryDate.AddDays((double)leadTime.order_leadtime * -1);//计划下单日期
|
|
|
+ srm_Pr.pr_sysprice = returnlist.lack_qty * x.netpurchase_price * (1 + x.taxrate);//系统价格(含税)
|
|
|
+ srm_Pr.pr_orderprice = returnlist.lack_qty * x.netpurchase_price * (1 + x.taxrate);//订单价格(含税)
|
|
|
+ srm_Pr.pr_price = x.netpurchase_price;//采购净价(不含税)
|
|
|
+ srm_Pr.pr_rate = x.taxrate;//税率
|
|
|
+ srm_Pr.pr_unit = returnlist.unit;//单位
|
|
|
+ srm_Pr.state = 1;//状态
|
|
|
+ srm_Pr.old_apply_aqty = 0;//已申请数量
|
|
|
+ srm_Pr.pr_type = orderType;//申请类型
|
|
|
+ srm_Pr.currencytype = x.currency_type;//币种
|
|
|
+ srm_Pr.secInv_ratio = plan.secinv_ratio;//安全库存触发采购比例
|
|
|
+ srm_Pr.tenant_id = tenantId;
|
|
|
+ srm_Pr.factory_id = factoryid;
|
|
|
+ srm_Pr.bang_id = bangId;
|
|
|
+ //_srm_pr_main.InsertOne(srm_Pr);
|
|
|
+ decimal? totalLeadTime = leadTime.transportation_leadtime + leadTime.stock_leadtime + leadTime.production_leadtime + leadTime.order_leadtime;
|
|
|
+
|
|
|
+ sRMPR.srm_Pr_Main = srm_Pr;
|
|
|
+ sRMPR.item_no = returnlist.num;
|
|
|
+ sRMPR.orderentry_id = returnlist.sentry_id;
|
|
|
+ sRMPR.lastStartTmie = deliveryDate.AddDays((double)totalLeadTime * -1);//减去提前期
|
|
|
+ sRMPRShowDto.srm_Pr_MainList.Add(sRMPR);
|
|
|
+ });
|
|
|
+ sRMPRShowDto.srm_Pr_Main= sRMPRShowDto.srm_Pr_MainList.OrderByDescending(x=>x.lastStartTmie).ThenBy(x=>x.pr_orderprice).First();
|
|
|
+ return sRMPRShowDto;
|
|
|
+ }
|
|
|
+
|
|
|
// 生成订单编号 字母+年月日+8位随机数+时间戳
|
|
|
private string getOrderNum(string preCode)
|
|
|
{
|