|
|
@@ -81,57 +81,57 @@ namespace Business.ResourceExamineManagement
|
|
|
/// <param name="number">物料编码</param>
|
|
|
/// <param name="Quantity"></param>
|
|
|
/// <param name="ParentId"></param>
|
|
|
- public Mes_MorderDto GenerateMorder(crm_seorderentry seorderentry, ic_item ic_Item, string BomNumber, string version, string number, decimal? Quantity, long? ParentId = null)
|
|
|
+ public Mes_MorderDto GenerateMorder(GenerateMorderDto generateMorderDto)
|
|
|
{
|
|
|
//1.库存、在制工单检查完成后 当前BOM需要自制时 产生工单。
|
|
|
|
|
|
//2.每一个销售订单行对应一个工单。
|
|
|
//TODO:考虑性能问题 循环调用,后期改造传递数组,批量处理数据后,批量保存。
|
|
|
//获取销售订单信息
|
|
|
- var seorder = _mysql_crm_seorder.FindAsync(x => x.Id == seorderentry.seorder_id).Result;
|
|
|
+ var seorder = _mysql_crm_seorder.FindAsync(x => x.Id == generateMorderDto.seorderentry.seorder_id).Result;
|
|
|
|
|
|
mes_morder mes_Morder = new mes_morder();
|
|
|
mes_Morder.GenerateNewId();
|
|
|
- mes_Morder.morder_type = "销售工单";
|
|
|
- mes_Morder.parent_id = ParentId;
|
|
|
+ mes_Morder.morder_type = generateMorderDto.morder_type;
|
|
|
+ mes_Morder.parent_id = generateMorderDto.ParentId;
|
|
|
//mes_Morder.morder_icitem_type
|
|
|
- mes_Morder.work_order_type = "常规工单";
|
|
|
- mes_Morder.morder_state = "初始";
|
|
|
+ mes_Morder.work_order_type = generateMorderDto.work_order_type;
|
|
|
+ mes_Morder.morder_state = generateMorderDto.morder_state;
|
|
|
mes_Morder.morder_no = string.Format("VMO{0}", DateTime.Now.ToString("yyyyMMddhhmmss"));//测试编码
|
|
|
- mes_Morder.fms_number = ic_Item.fms_number;
|
|
|
- mes_Morder.bom_number = BomNumber;
|
|
|
- mes_Morder.fmodel = ic_Item.model;
|
|
|
- if (ParentId != null)
|
|
|
+ mes_Morder.fms_number = generateMorderDto.ic_Item.fms_number;
|
|
|
+ mes_Morder.bom_number = generateMorderDto.BomNumber;
|
|
|
+ mes_Morder.fmodel = generateMorderDto.ic_Item.model;
|
|
|
+ if (generateMorderDto.ParentId != null && generateMorderDto.moentry_sys_stime != null)
|
|
|
{
|
|
|
//最早的开工时间3天后、 最晚时间为订单承诺时间 - 采购提前期 - 质检提前期 - 入库提前期 - 发料提前期 = 最晚开工时间 最早或最晚为系统建议开工日期
|
|
|
- var StartDate = DateTime.Now.Date.AddDays(3);
|
|
|
- mes_Morder.moentry_sys_stime = StartDate;
|
|
|
- if (!string.IsNullOrEmpty(BomNumber))
|
|
|
+ //var StartDate = DateTime.Now.Date.AddDays(3);
|
|
|
+ mes_Morder.moentry_sys_stime = generateMorderDto.moentry_sys_stime;
|
|
|
+ if (!string.IsNullOrEmpty(generateMorderDto.BomNumber))
|
|
|
{
|
|
|
ProdExamineParamDto prodExamine = new ProdExamineParamDto()
|
|
|
{
|
|
|
- bom_number = BomNumber,
|
|
|
- version = version,
|
|
|
- packages = (int)Quantity.GetValueOrDefault(),
|
|
|
- tenantId = seorderentry.tenant_id,
|
|
|
- factoryId = seorderentry.factory_id.GetValueOrDefault()
|
|
|
+ bom_number = generateMorderDto.BomNumber,
|
|
|
+ version = generateMorderDto.version,
|
|
|
+ packages = (int)generateMorderDto.Quantity.GetValueOrDefault(),
|
|
|
+ tenantId = generateMorderDto.seorderentry.tenant_id,
|
|
|
+ factoryId = generateMorderDto.seorderentry.factory_id.GetValueOrDefault()
|
|
|
};
|
|
|
var ProductiveDate = _productExamineAppService.ProductiveExamine(prodExamine);
|
|
|
//系统建议完工日期为 开工日期+产能检查时间=完工日期
|
|
|
var Day = ProductiveDate.Result / (60 * 10); //返回的分钟除以十个小时得出工作天数;
|
|
|
- mes_Morder.moentry_sys_etime = StartDate.AddDays((double)Day);
|
|
|
+ mes_Morder.moentry_sys_etime = mes_Morder.moentry_sys_stime.GetValueOrDefault().AddDays((double)Day);
|
|
|
mes_Morder.morder_need_time = ProductiveDate.Result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
mes_Morder.moentry_startup_status = 0;
|
|
|
- mes_Morder.tenant_id = seorderentry.tenant_id;
|
|
|
- mes_Morder.factory_id = seorderentry.factory_id;
|
|
|
- mes_Morder.product_code = number;
|
|
|
- mes_Morder.product_name = ic_Item.name;
|
|
|
+ mes_Morder.tenant_id = generateMorderDto.seorderentry.tenant_id;
|
|
|
+ mes_Morder.factory_id = generateMorderDto.seorderentry.factory_id;
|
|
|
+ mes_Morder.product_code = generateMorderDto.number;
|
|
|
+ mes_Morder.product_name = generateMorderDto.ic_Item.name;
|
|
|
mes_Morder.project_name = seorder.project_name;
|
|
|
- mes_Morder.planner_num = seorderentry.planner_no;
|
|
|
- mes_Morder.planner_name = seorderentry.planner_name;
|
|
|
+ mes_Morder.planner_num = generateMorderDto.seorderentry.planner_no;
|
|
|
+ mes_Morder.planner_name = generateMorderDto.seorderentry.planner_name;
|
|
|
mes_Morder.morder_date = DateTime.Now.Date.AddDays(1);
|
|
|
//mes_Morder.morder_fstate = "计划";
|
|
|
//TODO:目前没有取值位置
|
|
|
@@ -141,23 +141,23 @@ namespace Business.ResourceExamineManagement
|
|
|
mes_Morder.moentry_wrkcname = null;
|
|
|
mes_Morder.picking_qty = 0;
|
|
|
//TODO:可删除主表字段
|
|
|
- mes_Morder.unit = ic_Item.unit;
|
|
|
- mes_Morder.morder_production_number = Quantity;
|
|
|
- mes_Morder.need_number = Quantity;
|
|
|
+ mes_Morder.unit = generateMorderDto.ic_Item.unit;
|
|
|
+ mes_Morder.morder_production_number = generateMorderDto.Quantity;
|
|
|
+ mes_Morder.need_number = generateMorderDto.Quantity;
|
|
|
mes_Morder.remaining_number = 0;
|
|
|
//生成工单子表数据
|
|
|
mes_moentry mes_Moentry = new mes_moentry();
|
|
|
mes_Moentry.GenerateNewId();
|
|
|
mes_Moentry.moentry_moid = mes_Morder.Id;
|
|
|
mes_Moentry.moentry_mono = mes_Morder.morder_no;
|
|
|
- mes_Moentry.soentry_id = seorderentry.Id;
|
|
|
- mes_Moentry.fbill_no = seorderentry.bill_no;
|
|
|
- mes_Moentry.fentry_id = seorderentry.entry_seq.Value;
|
|
|
- mes_Moentry.unit = ic_Item.unit;
|
|
|
- mes_Moentry.morder_production_number = Quantity;
|
|
|
- mes_Moentry.need_number = Quantity;
|
|
|
+ mes_Moentry.soentry_id = generateMorderDto.seorderentry.Id;
|
|
|
+ mes_Moentry.fbill_no = generateMorderDto.seorderentry.bill_no;
|
|
|
+ mes_Moentry.fentry_id = generateMorderDto.seorderentry.entry_seq.Value;
|
|
|
+ mes_Moentry.unit = generateMorderDto.ic_Item.unit;
|
|
|
+ mes_Moentry.morder_production_number = generateMorderDto.Quantity;
|
|
|
+ mes_Moentry.need_number = generateMorderDto.Quantity;
|
|
|
mes_Moentry.remaining_number = 0;
|
|
|
- mes_Moentry.factory_id = seorderentry.factory_id;
|
|
|
+ mes_Moentry.factory_id = generateMorderDto.seorderentry.factory_id;
|
|
|
|
|
|
Mes_MorderDto mes_MorderDto = new Mes_MorderDto();
|
|
|
mes_MorderDto.mes_Morders = new List<mes_morder>();
|