瀏覽代碼

调整在途

tangdi 3 年之前
父節點
當前提交
8058642f7d

+ 27 - 1
MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/Dto/BomChildExamineDto.cs

@@ -171,7 +171,7 @@ namespace Business.ResourceExamineManagement.Dto
         /// <summary>
         /// 采购占用明细
         /// </summary>
-        public List<mo_srm_po_occupy> purchase_occupy_list { get; set; }
+        public List<purchase_occupy> purchase_occupy_list { get; set; }
 
         /// <summary>
         /// 委外数量
@@ -400,6 +400,32 @@ namespace Business.ResourceExamineManagement.Dto
         public decimal? pr_rate { get; set; }
     }
 
+    /// <summary>
+    /// 采购占用明细
+    /// </summary>
+    public class purchase_occupy
+    {
+        /// <summary>
+        /// 采购订单单号
+        /// </summary>
+        public string? po_billno { get; set; }
+        /// <summary>
+        /// 类型
+        /// </summary>
+        public string? type { get; set; }
+        /// <summary>
+        /// 占用量
+        /// </summary>
+        public decimal? qty { get; set; }
+        /// <summary>
+        /// 开始时间
+        /// </summary>
+        public DateTime? stime { get; set; }
+        /// <summary>
+        /// 结束时间
+        /// </summary>
+        public DateTime? etime { get; set; }
+    }
     /// <summary>
     /// 委外工单信息
     /// </summary>

+ 28 - 15
MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs

@@ -36,6 +36,7 @@ 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>();
 
         /// <summary>
         /// 工艺路径
@@ -508,13 +509,7 @@ namespace Business.ResourceExamineManagement
                 else if (item.erp_cls == 3)
                 {
                     //先找在途
-                    var occoupylist =  _purchaseOrderAppService.CheckPurchaseOrder(sentrys, item.item_id, item.lack_qty, plan_date.GetValueOrDefault(), planList, bangid);
-                    if (occoupylist.Any())
-                    {
-                        decimal occqty = occoupylist.Sum(s => s.qty.GetValueOrDefault());
-                        item.purchase_occupy_qty = occqty;
-                        item.lack_qty -= occqty;
-                    }
+                    CalcInTransit(sentrys, item, bangid, plan_date.GetValueOrDefault());
                     if (item.lack_qty > 0)
                     {
                         //采购申请
@@ -967,14 +962,6 @@ namespace Business.ResourceExamineManagement
             item.stock_state = item.lack_qty > 0 ? 0 : 1;
         }
 
-
-
-
-
-
-
-
-
         /// <summary>
         /// 生成采购申请单,颗粒度是一个物料一个单,没必要弄列表
         /// </summary>
@@ -1102,5 +1089,31 @@ namespace Business.ResourceExamineManagement
             //_mes_oorder.InsertOne(oOrder);
         }
 
+        /// <summary>
+        /// 计算在途
+        /// </summary>
+        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())
+            {
+                decimal occqty = occupylist.Sum(s => s.qty.GetValueOrDefault());
+                item.purchase_occupy_qty = occqty;
+                item.lack_qty -= occqty;
+                item.purchase_occupy_list = new List<purchase_occupy>();
+                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);
+                    if (polist != null)
+                    {
+                        ocp.po_billno = polist.po_billno;
+                    }
+                });
+            }
+        }
     }
 }

+ 3 - 0
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -420,6 +420,8 @@ 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;
+
             _CalcBomViewAppService.param = param;
             _CalcBomViewAppService.planList = planList;
             _CalcBomViewAppService.leadTimeList = leadTimeList;
@@ -432,6 +434,7 @@ namespace Business.ResourceExamineManagement
 
             _CalcBomViewAppService.mordersList = mo_Mes_Morders;//工单
             _CalcBomViewAppService.mooccupyAllList = mes_mooccupyList;//工单占用表
+            _CalcBomViewAppService.srm_po_list = srm_po_list;
 
             foreach (var item in sentrys)
             {