zhengly 3 жил өмнө
parent
commit
dd34aad5da

+ 47 - 8
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -132,6 +132,10 @@ namespace Business.ResourceExamineManagement
         /// 生产工单主表
         /// </summary>
         private readonly IMongoDB<mes_morder> _mes_morder;
+        /// <summary>
+        /// 生产工单子表
+        /// </summary>
+        private readonly IMongoDB<mes_moentry> _mes_moentry;
 
         /// <summary>
         /// 在制工单占用记录表
@@ -166,6 +170,7 @@ namespace Business.ResourceExamineManagement
             //IMongoDB<ic_substitute_all> ic_substitute_all,
             //IMongoDB<ic_substitute_all_dtl> ic_substitute_all_dtl,
             IMongoDB<mes_morder> mes_morder,
+            IMongoDB<mes_moentry> mes_moentry,
             IMongoDB<mes_mooccupy> mes_mooccupy,
             IMongoDB<ic_item_stockoccupy> ic_item_stockoccupy,
             IRepository<ic_item, long> mysql_ic_item,
@@ -175,6 +180,7 @@ namespace Business.ResourceExamineManagement
             IRepository<crm_seorder, long> mysql_crm_seorder,
             IRepository<crm_seorderentry, long> mysql_crm_seorderentry,
             IRepository<ic_item_stock, long> mysql_ic_item_stock
+
             )
         {
             _mes_technique = mes_technique;
@@ -190,6 +196,7 @@ namespace Business.ResourceExamineManagement
             //_ic_substitute_all = ic_substitute_all;
             //_ic_substitute_all_dtl = ic_substitute_all_dtl;
             _mes_morder = mes_morder;
+            _mes_moentry = mes_moentry;
             _mes_mooccupy = mes_mooccupy;
             _ic_item_stockoccupy = ic_item_stockoccupy;
             _mysql_ic_item = mysql_ic_item;
@@ -377,10 +384,10 @@ namespace Business.ResourceExamineManagement
             //1.库存、在制工单检查完成后 当前BOM需要自制时 产生工单。
 
             //2.每一个销售订单行对应一个工单。
-            //获取销售订单信息
-            //var seorder = await _crm_seorder.FindAsync(x => x.Id == OrderId);
             //查询销售订单子表数据
             var seorderentry = await _crm_seorderentry.FindAsync(x => x.Id == seorderentry_id);
+            //获取销售订单信息
+            var seorder = await _crm_seorder.FindAsync(x => x.Id == seorderentry.seorder_id);
 
             mes_morder mes_Morder = new mes_morder();
             mes_Morder.GenerateNewId();
@@ -388,7 +395,38 @@ namespace Business.ResourceExamineManagement
             //mes_Morder.morder_icitem_type
             mes_Morder.work_order_type = "常规工单";
             mes_Morder.morder_state = "初始";
-
+            mes_Morder.morder_no = "";//TODO:编码规则暂时没有
+            mes_Morder.fms_number = seorderentry.fms_number;
+            mes_Morder.bom_number = seorderentry.bom_number;
+            mes_Morder.fmodel = seorderentry.specification;
+            mes_Morder.moentry_startup_status = 1;
+            mes_Morder.tenant_id = 0;
+            mes_Morder.product_code = seorderentry.item_number;
+            mes_Morder.product_name = seorderentry.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.morder_date = DateTime.Now.Date;
+            //TODO:可删除主表字段
+            mes_Morder.unit = seorderentry.unit;
+            mes_Morder.morder_production_number = seorderentry.qty;
+            mes_Morder.need_number = seorderentry.qty;
+            mes_Morder.remaining_number = 0;
+            await _mes_morder.InsertOne(mes_Morder);
+
+            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 = seorderentry.unit;
+            mes_Moentry.morder_production_number = seorderentry.qty;
+            mes_Moentry.need_number = seorderentry.qty;
+            mes_Moentry.remaining_number = 0;
+
+            await _mes_moentry.InsertOne(mes_Moentry);
 
         }
         /// <summary>
@@ -810,7 +848,7 @@ namespace Business.ResourceExamineManagement
         /// <summary>
         /// 替代关系检查计算
         /// </summary>
-        public void CalcIcitemSubstitute(List<BomChildExamineDto> returnlist,int count)
+        public void CalcIcitemSubstitute(List<BomChildExamineDto> returnlist, int count)
         {
             returnlist = returnlist.OrderBy(s => s.num).ToList();
             //1.如果主料够的时候,不需要显示替代料的平铺视图,如果主料不够,显示替代料的平铺视图。
@@ -824,7 +862,7 @@ namespace Business.ResourceExamineManagement
             foreach (var item in returnlist)
             {
                 //循环平铺整个资源检查的物料库存情况、缺料情况
-                CaclMaterialShortage(returnlist,item, count);
+                CaclMaterialShortage(returnlist, item, count);
             }
             foreach (var item in returnlist)
             {
@@ -868,14 +906,15 @@ namespace Business.ResourceExamineManagement
                 var sublist = returnlist.Where(s => s.parent_id == item.parent_id && s.num == item.num && s.level == item.level).OrderBy(c => c.substitute_all_num).ToList();
                 //sublist找出当前含替代关系的标准件和替代件。
 
-                
+
 
 
                 if (item.substitute_mode == 0)
                 {
                     //替代
                 }
-                else { 
+                else
+                {
                     //取代
 
                 }
@@ -883,7 +922,7 @@ namespace Business.ResourceExamineManagement
             else
             {
                 //无替代关系
-                if (item.stock_state==0)
+                if (item.stock_state == 0)
                 {
                     item.use_qty = item.needCount;
                     item.is_show = true;