zhengly 3 anni fa
parent
commit
fe1c53351e

+ 4 - 0
MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/Dto/GenerateMorderDto.cs

@@ -16,6 +16,10 @@ namespace Business.ResourceExamineManagement.Dto
         /// </summary>
         public crm_seorderentry seorderentry { get; set; }
         /// <summary>
+        /// 销售订单
+        /// </summary>
+        public crm_seorder seorder { get; set; }
+        /// <summary>
         /// 物料详情
         /// </summary>
         public mo_ic_item ic_Item { get; set; }

+ 16 - 11
MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs

@@ -1,4 +1,5 @@
-using Business.Core.MongoDBHelper;
+using Business.Core.Enum;
+using Business.Core.MongoDBHelper;
 using Business.ResourceExamineManagement.Dto;
 using Bussiness.Model.MES.IC;
 using Bussiness.Model.Production;
@@ -36,11 +37,13 @@ namespace Business.ResourceExamineManagement
         public List<mo_mes_morder> mordersList = new List<mo_mes_morder>();
         public List<mo_mes_moentry> moentriesList = new List<mo_mes_moentry>();
         public List<mo_mes_mooccupy> mooccupyAllList = new List<mo_mes_mooccupy>();
-        public List<mo_srm_po_list> srm_po_list = new List<mo_srm_po_list>();
+        //public List<mo_srm_po_list> srm_po_list = new List<mo_srm_po_list>();
 
         public List<mo_srm_po_list> srm_Po_Lists = new List<mo_srm_po_list>();
         public List<mo_srm_po_occupy> srm_Po_Occupies = new List<mo_srm_po_occupy>();
 
+        public crm_seorder seorder = new crm_seorder();
+
         /// <summary>
         /// 工艺路径
         /// </summary>
@@ -200,14 +203,15 @@ namespace Business.ResourceExamineManagement
                     GenerateMorderDto generateMorderDto = new GenerateMorderDto()
                     {
                         seorderentry = sentrys,
+                        seorder = seorder,
                         ic_Item = ic_item,
                         BomNumber = level1Dto.bom_number,
                         version = level1Dto.version,
                         number = level1Dto.item_number,
                         Quantity = level1Dto.lack_qty,
-                        morder_type = "销售工单",
-                        work_order_type = "常规工单",
-                        morder_state = "初始",
+                        morder_type = MorderEnum.XsMorder,
+                        work_order_type = MorderEnum.CgMorder,
+                        morder_state = MorderEnum.Initial_state,
                         bang_id = bangid,
 
                     };
@@ -1082,9 +1086,9 @@ namespace Business.ResourceExamineManagement
             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.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;//加工单位
@@ -1100,7 +1104,7 @@ namespace Business.ResourceExamineManagement
         /// <summary>
         /// 计算在途
         /// </summary>
-        public void CalcInTransit(crm_seorderentry sentrys,BomChildExamineDto item,long bangid,DateTime plan_date)
+        public void CalcInTransit(crm_seorderentry sentrys, BomChildExamineDto item, long bangid, DateTime plan_date)
         {
             var occupylist = _purchaseOrderAppService.CheckPurchaseOrder(sentrys, item.item_id, item.lack_qty, plan_date, planList, bangid);
             if (occupylist.Any())
@@ -1109,13 +1113,14 @@ namespace Business.ResourceExamineManagement
                 item.purchase_occupy_qty = occqty;
                 item.lack_qty -= occqty;
                 item.purchase_occupy_list = new List<purchase_occupy>();
-                occupylist.ForEach(s => {
+                occupylist.ForEach(s =>
+                {
                     purchase_occupy ocp = new purchase_occupy();
                     ocp.stime = s.stime;
                     ocp.etime = s.etime;
                     ocp.qty = s.qty;
                     ocp.type = s.type;
-                    var polist = srm_po_list.Find(f => f.id == s.polist_id);
+                    var polist = srm_Po_Lists.Find(f => f.id == s.polist_id);
                     if (polist != null)
                     {
                         ocp.po_billno = polist.po_billno;

+ 32 - 34
MicroServices/Business/Business.Application/ResourceExamineManagement/MorderAppService.cs

@@ -26,27 +26,27 @@ namespace Business.ResourceExamineManagement
     public class MorderAppService : ApplicationService
     {
         #region 服务
-        /// <summary>
-        /// 生产工单主表
-        /// </summary>
-        private readonly IMongoDB<mo_mes_morder> _mo_mes_morder;
-        /// <summary>
-        /// 生产工单子表
-        /// </summary>
-        private readonly IMongoDB<mo_mes_moentry> _mo_mes_moentry;
-
-        /// <summary>
-        /// 在制工单占用记录表
-        /// </summary>
-        private readonly IMongoDB<mo_mes_mooccupy> _mo_mes_mooccupy;
-        /// <summary>
-        /// 销售订单
-        /// </summary>
-        private readonly IRepository<crm_seorder, long> _mysql_crm_seorder;
-        /// <summary>
-        /// 销售订单明细
-        /// </summary>
-        private readonly IRepository<crm_seorderentry, long> _mysql_crm_seorderentry;
+        ///// <summary>
+        ///// 生产工单主表
+        ///// </summary>
+        //private readonly IMongoDB<mo_mes_morder> _mo_mes_morder;
+        ///// <summary>
+        ///// 生产工单子表
+        ///// </summary>
+        //private readonly IMongoDB<mo_mes_moentry> _mo_mes_moentry;
+
+        ///// <summary>
+        ///// 在制工单占用记录表
+        ///// </summary>
+        //private readonly IMongoDB<mo_mes_mooccupy> _mo_mes_mooccupy;
+        ///// <summary>
+        ///// 销售订单
+        ///// </summary>
+        //private readonly IRepository<crm_seorder, long> _mysql_crm_seorder;
+        ///// <summary>
+        ///// 销售订单明细
+        ///// </summary>
+        //private readonly IRepository<crm_seorderentry, long> _mysql_crm_seorderentry;
         /// <summary>
         /// 产能检查
         /// </summary>
@@ -92,20 +92,20 @@ namespace Business.ResourceExamineManagement
         /// <param name="icitem"></param>
         /// <param name="icbom"></param>
         public MorderAppService(
-            IMongoDB<mo_mes_morder> mo_mes_morder,
-            IMongoDB<mo_mes_moentry> mo_mes_moentry,
-            IMongoDB<mo_mes_mooccupy> mo_mes_mooccupy,
-            IRepository<crm_seorder, long> mysql_crm_seorder,
-            IRepository<crm_seorderentry, long> mysql_crm_seorderentry,
+            //IMongoDB<mo_mes_morder> mo_mes_morder,
+            //IMongoDB<mo_mes_moentry> mo_mes_moentry,
+            //IMongoDB<mo_mes_mooccupy> mo_mes_mooccupy,
+            //IRepository<crm_seorder, long> mysql_crm_seorder,
+            //IRepository<crm_seorderentry, long> mysql_crm_seorderentry,
             ProductExamineAppService productExamineAppService
             )
         {
 
-            _mo_mes_morder = mo_mes_morder;
-            _mo_mes_moentry = mo_mes_moentry;
-            _mo_mes_mooccupy = mo_mes_mooccupy;
-            _mysql_crm_seorder = mysql_crm_seorder;
-            _mysql_crm_seorderentry = mysql_crm_seorderentry;
+            //_mo_mes_morder = mo_mes_morder;
+            //_mo_mes_moentry = mo_mes_moentry;
+            //_mo_mes_mooccupy = mo_mes_mooccupy;
+            //_mysql_crm_seorder = mysql_crm_seorder;
+            //_mysql_crm_seorderentry = mysql_crm_seorderentry;
             _productExamineAppService = productExamineAppService;
         }
         #endregion
@@ -125,8 +125,6 @@ namespace Business.ResourceExamineManagement
 
             //2.每一个销售订单行对应一个工单。
             //TODO:考虑性能问题 循环调用,后期改造传递数组,批量处理数据后,批量保存。
-            //获取销售订单信息
-            var seorder = _mysql_crm_seorder.FindAsync(x => x.Id == generateMorderDto.seorderentry.seorder_id).Result;
 
             mo_mes_morder mes_Morder = new mo_mes_morder();
             mes_Morder.mysql_id = snowFlake.NextId();
@@ -171,7 +169,7 @@ namespace Business.ResourceExamineManagement
             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.project_name = generateMorderDto.seorder.project_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);

+ 6 - 4
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -423,7 +423,7 @@ namespace Business.ResourceExamineManagement
             supplierList = GetSupplier(itemIds, input.tenantId, input.factoryId);//供应商列表
             planList = GetICPlan(itemIds, input.tenantId, input.factoryId);//plan列表
 
-            var srm_po_list = _srm_po_list.GetManyByCondition(x => itemIds.Contains(x.icitem_id.GetValueOrDefault()) && x.state == 1 && x.rstate == 1).Result;
+            //var srm_po_list = _srm_po_list.GetManyByCondition(x => itemIds.Contains(x.icitem_id.GetValueOrDefault()) && x.state == 1 && x.rstate == 1).Result;
 
             _CalcBomViewAppService.param = param;
             _CalcBomViewAppService.planList = planList;
@@ -437,10 +437,12 @@ namespace Business.ResourceExamineManagement
 
             _CalcBomViewAppService.mordersList = mo_Mes_Morders;//工单
             _CalcBomViewAppService.mooccupyAllList = mes_mooccupyList;//工单占用表
-            _CalcBomViewAppService.srm_po_list = srm_po_list;
+                                                                      // _CalcBomViewAppService.srm_po_list = srm_po_list;//采购明细
 
-            _CalcBomViewAppService.srm_Po_Lists = poDetailList;
-            _CalcBomViewAppService.srm_Po_Occupies = poOccupys;
+            _CalcBomViewAppService.seorder = sorder;//销售订单
+
+            _CalcBomViewAppService.srm_Po_Lists = poDetailList; //采购明细
+            _CalcBomViewAppService.srm_Po_Occupies = poOccupys; //采购占用表
 
             foreach (var item in sentrys)
             {

+ 41 - 0
MicroServices/Business/Business.Test/MorderTest.cs

@@ -0,0 +1,41 @@
+using Business.ResourceExamineManagement.Dto;
+using Business.ResourceExamineManagement;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Xunit;
+
+namespace Business.Test
+{
+    /// <summary>
+    /// 工单单元测试类
+    /// </summary>
+    public class MorderTest
+    {
+        [Fact]
+        public void Morder()
+        {
+            //Arrange
+            var ProductExamine = new ProductExamineAppService();
+            ProductExamineTest productExamineTest = new ProductExamineTest();
+            ProductExamine.techs = productExamineTest.CreateTechnique();
+            ProductExamine.process = productExamineTest.CreateProcess();
+            ProductExamine.tech_Processes = productExamineTest.CreateTechProcess();
+            var morder = new MorderAppService(ProductExamine);
+
+            //Act
+            ProdExamineParamDto prodExamine = new ProdExamineParamDto()
+            {
+                bom_number = "R650K",
+                version = "3.0",
+                packages = 1000
+            };
+            //var result = sut.ProductiveExamine(prodExamine);
+            //Assert
+            //Xunit.Assert.Equal(14030, result);
+        }
+
+    }
+}