|
|
@@ -52,7 +52,6 @@ using Microsoft.EntityFrameworkCore.Migrations.Operations;
|
|
|
using Microsoft.AspNetCore.SignalR;
|
|
|
using System.Diagnostics;
|
|
|
using Newtonsoft.Json;
|
|
|
-using Bussiness.Model.Dto.ResExamin;
|
|
|
|
|
|
namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
@@ -1764,15 +1763,15 @@ namespace Business.ResourceExamineManagement
|
|
|
//外购生成采购申请单
|
|
|
if (item.erp_cls == 3)
|
|
|
{
|
|
|
- DateTime lastTime = CreateSRMPR(item, tenantId, factoryid, bangid, 2, leadTimeList, supplierList, planList, deliveryDate);
|
|
|
- itemlist.Add(new ICItemDateDto { item_id = item.item_id, dateTime = lastTime });
|
|
|
+ //DateTime lastTime = CreateSRMPR(item, tenantId, factoryid, bangid, 2, leadTimeList, supplierList, planList, deliveryDate);
|
|
|
+ //itemlist.Add(new ICItemDateDto { item_id = item.item_id, dateTime = lastTime });
|
|
|
}
|
|
|
else if (item.erp_cls == 2)
|
|
|
{
|
|
|
//委外生成委外采购申请单和委外工单
|
|
|
- DateTime lastTime = CreateSRMPR(item, tenantId, factoryid, bangid, 1, leadTimeList, supplierList, planList, deliveryDate);
|
|
|
- CreateMesOOder(item, tenantId, factoryid, bangid, leadTimeList, supplierList, deliveryDate);
|
|
|
- itemlist.Add(new ICItemDateDto { item_id = item.item_id, dateTime = lastTime });
|
|
|
+ //DateTime lastTime = CreateSRMPR(item, tenantId, factoryid, bangid, 1, leadTimeList, supplierList, planList, deliveryDate);
|
|
|
+ //CreateMesOOder(item, tenantId, factoryid, bangid, leadTimeList, supplierList, deliveryDate);
|
|
|
+ //itemlist.Add(new ICItemDateDto { item_id = item.item_id, dateTime = lastTime });
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
@@ -1832,12 +1831,64 @@ namespace Business.ResourceExamineManagement
|
|
|
return itemlist;
|
|
|
}
|
|
|
|
|
|
+ ///// <summary>
|
|
|
+ ///// 生成委外工单
|
|
|
+ ///// </summary>
|
|
|
+ ///// <param name="returnlist"></param>
|
|
|
+ ///// <param name="factoryid"></param>
|
|
|
+ //private DateTime CreateMesOOder(BomChildExamineDto returnlist, long tenantId, long factoryid, long bangId, List<ICItemLeadTimeDto> iCItemLeadTimes, List<ic_item_pur> supplierList, DateTime deliveryDate)
|
|
|
+ //{
|
|
|
+ // mes_oorder oOrder = new mes_oorder();
|
|
|
+ // oOrder.GenerateNewId();
|
|
|
+ // oOrder.oorder_no = getOrderNum("WW");//生产工单编号
|
|
|
+ // oOrder.oorder_type = "委外工单";//生产工单类型
|
|
|
+ // oOrder.oorder_date = DateTime.Now;//委外订单日期
|
|
|
+ // oOrder.oorder_state = "已提交";//订单状态
|
|
|
+ // oOrder.ooentry_prd = 10000;//生产组织
|
|
|
+ // oOrder.ooentry_prdname = "1000";//生产组织名称
|
|
|
+ // oOrder.ooentry_wrkc = 10000;//工作中心id
|
|
|
+ // oOrder.ooentry_wrkcname = "10001";//工作中心名称
|
|
|
+ // oOrder.planner_num = "wwww";//计划员工号
|
|
|
+ // oOrder.planner_name = "qqq";//计划员名称
|
|
|
+ // oOrder.ooentry_stime = DateTime.Now;//计划开工日期
|
|
|
+ // oOrder.ooentry_etime = DateTime.Now;//计划完工日期
|
|
|
+ // oOrder.product_code = "产品代码";//产品代码
|
|
|
+ // oOrder.ffms_number = "1000";//fms旧料号
|
|
|
+ // oOrder.product_name = "test";//产品名称
|
|
|
+ // oOrder.specification_model = returnlist.model;//规格型号
|
|
|
+ // oOrder.bom_number = "";//bom编码
|
|
|
+ // oOrder.unit = returnlist.unit;//单位
|
|
|
+ // oOrder.morder_progress = "";//工单进度
|
|
|
+ // oOrder.morder_production_number = returnlist.lack_qty;//工单生产数量(计划数量)
|
|
|
+ // oOrder.need_number = returnlist.lack_qty;//需求数量
|
|
|
+ // oOrder.remaining_number = returnlist.lack_qty;//剩余可用数量
|
|
|
+ // oOrder.work_number = 0;//报工数量
|
|
|
+ // oOrder.inspection_number = 0;//报检数量
|
|
|
+ // oOrder.qualified_number = 0;//合格数量
|
|
|
+ // oOrder.inventory_number = 0;//入库数量
|
|
|
+ // oOrder.notice_qty = 0;//已开通知单数量
|
|
|
+ // oOrder.moentry_on = 1;//启动状态
|
|
|
+ // //oOrder.start_time = DateTime.Now;//开始时间
|
|
|
+ // //oOrder.pause_time = DateTime.Now;//最近暂停时间
|
|
|
+ // //oOrder.restart_time = DateTime.Now;//最近重启时间
|
|
|
+ // oOrder.project_name = returnlist.item_name;//项目名称
|
|
|
+ // oOrder.sent_status = 1;//发料状态 1-待发料 2-已发料
|
|
|
+ // oOrder.production_unit = returnlist.unit;//加工单位
|
|
|
+ // oOrder.production_unit_code = "";//加工单位编码
|
|
|
+ // oOrder.need_icitem_status = 1;//所需物料是否充足 1-充足 0-缺料
|
|
|
+ // oOrder.tenant_id = tenantId;
|
|
|
+ // oOrder.factory_id = factoryid;
|
|
|
+ // oOrder.bang_id = bangId;
|
|
|
+ // _mes_oorder.InsertOne(oOrder);
|
|
|
+ // return DateTime.Now;
|
|
|
+ //}
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 生成委外工单
|
|
|
/// </summary>
|
|
|
/// <param name="returnlist"></param>
|
|
|
/// <param name="factoryid"></param>
|
|
|
- private DateTime CreateMesOOder(BomChildExamineDto returnlist, long tenantId, long factoryid, long bangId, List<ICItemLeadTimeDto> iCItemLeadTimes, List<ic_item_pur> supplierList, DateTime deliveryDate)
|
|
|
+ private mes_oorder CreateMesOOder(BomChildExamineDto returnlist, long tenantId, long factoryid, long bangId, List<ICItemLeadTimeDto> iCItemLeadTimes, List<ic_item_pur> supplierList, DateTime deliveryDate)
|
|
|
{
|
|
|
mes_oorder oOrder = new mes_oorder();
|
|
|
oOrder.GenerateNewId();
|
|
|
@@ -1880,18 +1931,72 @@ namespace Business.ResourceExamineManagement
|
|
|
oOrder.tenant_id = tenantId;
|
|
|
oOrder.factory_id = factoryid;
|
|
|
oOrder.bang_id = bangId;
|
|
|
- _mes_oorder.InsertOne(oOrder);
|
|
|
- return DateTime.Now;
|
|
|
+ return oOrder;
|
|
|
+ //_mes_oorder.InsertOne(oOrder);
|
|
|
}
|
|
|
|
|
|
|
|
|
+ ///// <summary>
|
|
|
+ ///// 生成采购申请单,颗粒度是一个物料一个单,没必要弄列表
|
|
|
+ ///// </summary>
|
|
|
+ ///// <param name="returnlist"></param>
|
|
|
+ ///// <param name="factoryid"></param>
|
|
|
+ ///// <param name="orderType">2委外采购申请单,3采购申请单</param>
|
|
|
+ //private DateTime CreateSRMPR(BomChildExamineDto returnlist, long tenantId, long factoryid, long bangId, int orderType, List<ICItemLeadTimeDto> iCItemLeadTimes, List<ic_item_pur> supplierList, List<ic_plan> planList, DateTime deliveryDate)
|
|
|
+ //{
|
|
|
+ // var leadTime = iCItemLeadTimes.Find(x => x.item_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);
|
|
|
+ // 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.GenerateNewId();
|
|
|
+ // srm_Pr.pr_billno = getOrderNum("PR");//pr单号
|
|
|
+ // srm_Pr.pr_mono = "";//关联工单号
|
|
|
+ // srm_Pr.entity_id = 1;//工单行号
|
|
|
+ // srm_Pr.pr_purchaseid = supplier.supplier_id;//供应商id
|
|
|
+ // srm_Pr.pr_purchasenumber = supplier.supplier_number;//供应商编码
|
|
|
+ // srm_Pr.pr_purchasename = supplier.supplier_name;//供应商名称
|
|
|
+ // srm_Pr.pr_purchaser = supplier.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 * supplier.netpurchase_price * (1 + supplier.taxrate);//系统价格(含税)
|
|
|
+ // srm_Pr.pr_orderprice = returnlist.lack_qty * supplier.netpurchase_price * (1 + supplier.taxrate);//订单价格(含税)
|
|
|
+ // srm_Pr.pr_price = supplier.netpurchase_price;//采购净价(不含税)
|
|
|
+ // srm_Pr.pr_rate = supplier.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 = supplier.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;
|
|
|
+ // return deliveryDate.AddDays((double)totalLeadTime * -1);//减去提前期
|
|
|
+ //}
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 生成采购申请单,颗粒度是一个物料一个单,没必要弄列表
|
|
|
/// </summary>
|
|
|
/// <param name="returnlist"></param>
|
|
|
/// <param name="factoryid"></param>
|
|
|
/// <param name="orderType">2委外采购申请单,3采购申请单</param>
|
|
|
- private DateTime CreateSRMPR(BomChildExamineDto returnlist, long tenantId, long factoryid, long bangId, int orderType, List<ICItemLeadTimeDto> iCItemLeadTimes, List<ic_item_pur> supplierList, List<ic_plan> planList, DateTime deliveryDate)
|
|
|
+ private SRMPRDto CreateSRMPR(BomChildExamineDto returnlist, long tenantId, long factoryid, long bangId, int orderType, List<ICItemLeadTimeDto> iCItemLeadTimes, List<ic_item_pur> supplierList, List<ic_plan> planList, DateTime deliveryDate)
|
|
|
{
|
|
|
var leadTime = iCItemLeadTimes.Find(x => x.item_id == returnlist.item_id);
|
|
|
var supplier = supplierList.Find(x => x.icitem_id == returnlist.item_id);//默认取第一个供应商
|
|
|
@@ -1934,9 +2039,12 @@ namespace Business.ResourceExamineManagement
|
|
|
srm_Pr.tenant_id = tenantId;
|
|
|
srm_Pr.factory_id = factoryid;
|
|
|
srm_Pr.bang_id = bangId;
|
|
|
- _srm_pr_main.InsertOne(srm_Pr);
|
|
|
+ //_srm_pr_main.InsertOne(srm_Pr);
|
|
|
decimal? totalLeadTime = leadTime.transportation_leadtime + leadTime.stock_leadtime + leadTime.production_leadtime + leadTime.order_leadtime;
|
|
|
- return deliveryDate.AddDays((double)totalLeadTime * -1);//减去提前期
|
|
|
+ SRMPRDto sRMPR = new SRMPRDto();
|
|
|
+ sRMPR.srm_Pr_Main = srm_Pr;
|
|
|
+ sRMPR.lastStartTmie = deliveryDate.AddDays((double)totalLeadTime * -1);//减去提前期
|
|
|
+ return sRMPR;
|
|
|
}
|
|
|
|
|
|
// 生成订单编号 字母+年月日+8位随机数+时间戳
|