소스 검색

PR提前期调整

Murphy 2 년 전
부모
커밋
2d3d17f41e

+ 5 - 5
MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs

@@ -1147,11 +1147,11 @@ namespace Business.ResourceExamineManagement
                 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 = DateTime.Now.AddDays((double)leadTime.order_leadtime);//系统建议下单日期
-                srm_Pr.pr_sarrive_date = DateTime.Now.AddDays((double)leadTime.transportation_leadtime);//系统建议到达日期(建议到货日期)
-                srm_Pr.pr_psend_date = DateTime.Now.AddDays((double)leadTime.order_leadtime);//计划下单日期
-                srm_Pr.pr_parrive_date = DateTime.Now.AddDays((double)leadTime.transportation_leadtime);//计划到达日期
-                srm_Pr.pr_psend_date = DateTime.Now.AddDays((double)leadTime.order_leadtime);//计划下单日期
+                srm_Pr.pr_ssend_date = DateTime.Now;//系统建议下单日期
+                srm_Pr.pr_sarrive_date = DateTime.Now.AddDays((double)leadTime.order_leadtime).AddDays((double)leadTime.transportation_leadtime);//系统建议到达日期(建议到货日期)
+                srm_Pr.pr_psend_date = DateTime.Now;//计划下单日期
+                srm_Pr.pr_parrive_date = DateTime.Now.AddDays((double)leadTime.order_leadtime).AddDays((double)leadTime.transportation_leadtime);//计划到达日期
+                srm_Pr.pr_rarrive_date = DateTime.Now.AddDays((double)leadTime.order_leadtime).AddDays((double)leadTime.transportation_leadtime);//需求到货日期
                 srm_Pr.pr_sysprice = returnlist.lack_qty * x.netpurchase_price * (1 + x.taxrate);//系统价格(含税)
                 srm_Pr.pr_orderprice = returnlist.lack_qty * x.netpurchase_price * (1 + x.taxrate);//订单价格(含税)
                 srm_Pr.pr_price = x.netpurchase_price;//采购净价(不含税)

+ 39 - 1
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -33,6 +33,7 @@ using MongoDB.Bson.Serialization.Attributes;
 using System.ComponentModel.DataAnnotations.Schema;
 using System.ComponentModel.DataAnnotations;
 using System.Diagnostics.CodeAnalysis;
+using System.Diagnostics;
 
 namespace Business.ResourceExamineManagement
 {
@@ -244,6 +245,14 @@ namespace Business.ResourceExamineManagement
         private readonly BusinessBangDbContext _businessBangDbContext;
         private readonly BusinessDbContext _businessDbContext;
         private readonly ISqlRepository<TagMaster> _tagMasterRepository;
+        /// <summary>
+        /// 生产周期明细
+        /// </summary>
+        private ISqlRepository<PeriodSequenceDet> _periodSequenceDet;
+        /// <summary>
+        /// 生产线维护表
+        /// </summary>
+        private ISqlRepository<LineMaster> _lineMaster;
         private readonly ProductionScheduleAppService _productionScheduleAppService;
         #endregion
 
@@ -309,6 +318,8 @@ namespace Business.ResourceExamineManagement
             IRepository<b_bom_pretreatment, long> mysql_b_bom_pretreatment,
             IRepository<srm_supplier, long> mysql_srm_supplier,
             ISqlRepository<TagMaster> tagMasterRepository,
+            ISqlRepository<PeriodSequenceDet> periodSequenceDet,
+            ISqlRepository<LineMaster> lineMaster,
             PretreatmentAppService pretreatmentAppService,
             CalcBomViewAppService calcbomviewAppService,
             PurchaseOrderAppService purchaseOrderAppService,
@@ -371,6 +382,8 @@ namespace Business.ResourceExamineManagement
             _mysql_b_bom_pretreatment = mysql_b_bom_pretreatment;
             _mysql_srm_supplier= mysql_srm_supplier;
             _tagMasterRepository = tagMasterRepository;
+            _periodSequenceDet = periodSequenceDet;
+            _lineMaster = lineMaster;
             _pretreatmentAppService = pretreatmentAppService;
             _CalcBomViewAppService = calcbomviewAppService;
             _purchaseOrderAppService = purchaseOrderAppService;
@@ -2220,9 +2233,34 @@ namespace Business.ResourceExamineManagement
             AutoCreateBomBill();
         }
 
-        public void AutoCreatePickBill(List<string> WorkOrds)
+        public void AutoCreatePickBill(List<string> workOrds)
         {
+            //获取生产周期数据
+            List<PeriodSequenceDet> dbPeriodSequences = _periodSequenceDet.Select(p => workOrds.Contains(p.WorkOrds) && p.Domain == "1001" && p.IsActive).Result;
+            List<LineMaster> lineMasters= new List<LineMaster>();
+            List<string> lines = new List<string>();//产线列表,用于获取领料单对应产线线边仓
+            List<NbrDetail> nNbrDetail = new List<NbrDetail>();//需要生成领料单列表
+            if (dbPeriodSequences.Any())
+            {
+                lines=dbPeriodSequences.Select(a=>a.Line).Distinct().ToList();
+                lineMasters = _lineMaster.Select(p => lines.Contains(p.Line) && p.Domain == "1001" && p.IsActive).Result;
+                foreach(var item in dbPeriodSequences)
+                {
+                    nNbrDetail.Add(new NbrDetail 
+                    {
 
+                        Domain="1001",
+                        Type= "SM",
+                        Nbr="",
+                        ItemNum="",
+                        QtyFrom=0,
+                        QtyTo=0,
+                        WorkOrd=item.WorkOrds,
+                        QtyOrd=0,
+                        IsActive=true
+                   });
+                }
+            }
         }
 
     }

+ 82 - 0
MicroServices/Business/Bussiness.Model/Production/LineMaster.cs

@@ -0,0 +1,82 @@
+using Business.Model;
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Business.Model.Production
+{
+    /// <summary>
+    /// 生产线维护表
+    /// </summary>
+    [Comment("生产线维护表")]
+    public class LineMaster
+    {
+        /// <summary>
+        /// 主键
+        /// </summary>
+        [Comment("主键")]
+        [Key]
+        public int RecID { get; set; }
+
+        /// <summary>
+        /// 域名
+        /// </summary>
+        [Comment("域名")]
+        public string? Domain { get; set; }
+
+        /// <summary>
+        /// 生产线
+        /// </summary>
+        [Comment("生产线")]
+        public string? Line { get; set; }
+
+        /// <summary>
+        /// 库位
+        /// </summary>
+        [Comment("库位")]
+        public string? Location { get; set; }
+
+        /// <summary>
+        /// 生产线类型:区分生产线和生产线组
+        /// </summary>
+        [Comment("生产线类型:区分生产线和生产线组")]
+        public string? LineType { get; set; }
+
+        /// <summary>
+        /// 线边库
+        /// </summary>
+        [Comment("线边库")]
+        public string? VLocation { get; set; }
+
+        /// <summary>
+        /// 是否有效:1-有效;0-无效
+        /// </summary>
+        [Comment("是否有效")]
+        public Boolean IsActive { get; set; }
+
+        /// <summary>
+        /// 库位
+        /// </summary>
+        [Comment("库位")]
+        public string? location2 { get; set; }
+        /// <summary>
+        /// 不良库位
+        /// </summary>
+        [Comment("不良库位")]
+        public string? location3 { get; set; }
+        /// <summary>
+        /// 可领料库位
+        /// </summary>
+        [Comment("可领料库位")]
+        public string? PickingLocation { get; set; }
+        /// <summary>
+        /// 中间库位
+        /// </summary>
+        [Comment("中间库位")]
+        public string? MidLocation { get; set; }
+    }
+}