소스 검색

增加配额展示

Murphy 3 년 전
부모
커밋
59cec9dcc2

+ 12 - 0
MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/Dto/SRMPRDto.cs

@@ -1,7 +1,9 @@
 using Bussiness.Model.SRM;
 using Bussiness.MongoModel.SRM;
+using Microsoft.EntityFrameworkCore;
 using System;
 using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
@@ -23,5 +25,15 @@ namespace Business.ResourceExamineManagement.Dto
         /// 订单行主键
         /// </summary>
         public long orderentry_id { get; set; }
+
+        /// <summary>
+        /// 总共提前期
+        /// </summary>
+        public decimal? totalLeadTime { get; set; }
+
+        /// <summary>
+        /// 订单价格(含税)
+        /// </summary>
+        public decimal? pr_orderprice { get; set; }
     }
 }

+ 20 - 0
MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/Dto/SRMPRShowDto.cs

@@ -0,0 +1,20 @@
+using Bussiness.Model.SRM;
+using Bussiness.MongoModel.SRM;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Business.ResourceExamineManagement.Dto
+{
+    [Serializable]
+    public class SRMPRShowDto
+    {
+        //列出所有,供客户自由选择
+        public List<SRMPRDto> srm_Pr_MainList { get; set; }
+
+        //取出交期最短然后价格最低的
+        public SRMPRDto srm_Pr_Main { get; set; }
+    }
+}

+ 81 - 0
MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs

@@ -10,6 +10,7 @@ using Bussiness.MongoModel.MES.IC;
 using Bussiness.MongoModel.Production;
 using Bussiness.MongoModel.SRM;
 using Bussiness.MongoModel.Tech;
+using NUglify.Helpers;
 using Spire.Pdf.Exporting.XPS.Schema;
 using Spire.Pdf.General.Render.Decode.Jpeg2000.j2k.wavelet.synthesis;
 using System;
@@ -86,6 +87,8 @@ namespace Business.ResourceExamineManagement
         /// </summary>
         private readonly PurchaseOrderAppService _purchaseOrderAppService;
 
+        Random rnd = new Random();
+
         /// <summary>
         /// 构造函数
         /// </summary>
@@ -1073,6 +1076,84 @@ namespace Business.ResourceExamineManagement
             return sRMPR;
         }
 
+        private SRMPRShowDto CreateSRMPRShow(BomChildExamineDto returnlist, long tenantId, long factoryid, long bangId, int orderType, List<ICItemLeadTimeDto> iCItemLeadTimes, List<mo_ic_item_pur> supplierList, List<mo_ic_plan> planList, DateTime deliveryDate)
+        {
+            SRMPRShowDto sRMPRShowDto = new SRMPRShowDto();
+            SRMPRDto sRMPR = new SRMPRDto();
+
+            mo_srm_pr_main srm_Pr = new mo_srm_pr_main();
+            var leadTime = iCItemLeadTimes.Find(x => x.item_id == returnlist.item_id);
+            var supplier = supplierList.Where(x => x.icitem_id == returnlist.item_id);//默认取第一个供应商
+            var plan = planList.Find(x => x.icitem_id == returnlist.item_id);
+            if (leadTime == null || supplier == null || plan == null)
+            {
+                sRMPR.srm_Pr_Main = null;
+                sRMPR.lastStartTmie = deliveryDate.AddDays(7 * -1);//减去提前期
+                sRMPRShowDto.srm_Pr_Main = sRMPR;
+                sRMPRShowDto.srm_Pr_MainList.Add(sRMPR);
+                return sRMPRShowDto;
+                //throw new NotImplementedException("未找到物料ic_factory_details或ic_item_pur或ic_plan信息!");
+            }
+
+
+            supplier.ForEach(x =>
+            {
+                //提前期随机数,金额随机数
+                leadTime.order_leadtime = rnd.Next(1, 5);
+                leadTime.transportation_leadtime = rnd.Next(1, 5);
+                leadTime.stock_leadtime = rnd.Next(1, 5);
+                leadTime.production_leadtime = rnd.Next(1, 5);
+
+                x.netpurchase_price = rnd.Next(1, 100);
+                x.taxrate = 0.13m;//固定13%增值税
+
+                srm_Pr.id = help.NextId();
+                srm_Pr.GenerateNewId();
+                srm_Pr.pr_billno = getOrderNum("PR");//pr单号
+                srm_Pr.pr_mono = "";//关联工单号
+                srm_Pr.entity_id = 1;//工单行号
+                srm_Pr.pr_purchaseid = x.supplier_id;//供应商id  
+                srm_Pr.pr_purchasenumber = x.supplier_number;//供应商编码
+                srm_Pr.pr_purchasename = x.supplier_name;//供应商名称
+                srm_Pr.pr_purchaser = x.purcher;//采购员
+                srm_Pr.pr_purchaser_num = "";//采购员工号(采购信息表)
+                srm_Pr.pr_rqty = returnlist.lack_qty;//需求数量
+                srm_Pr.pr_aqty = returnlist.lack_qty;//申请数量
+                srm_Pr.pr_sqty = returnlist.lack_qty;//建议数量
+                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 = deliveryDate.AddDays((double)leadTime.order_leadtime * -1);//系统建议下单日期
+                srm_Pr.pr_sarrive_date = deliveryDate.AddDays((double)leadTime.transportation_leadtime * -1);//系统建议到达日期(建议到货日期)
+                srm_Pr.pr_psend_date = deliveryDate.AddDays((double)leadTime.order_leadtime * -1);//计划下单日期
+                srm_Pr.pr_parrive_date = deliveryDate.AddDays((double)leadTime.transportation_leadtime * -1);//计划到达日期
+                srm_Pr.pr_psend_date = deliveryDate.AddDays((double)leadTime.order_leadtime * -1);//计划下单日期
+                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;//采购净价(不含税)
+                srm_Pr.pr_rate = x.taxrate;//税率
+                srm_Pr.pr_unit = returnlist.unit;//单位
+                srm_Pr.state = 1;//状态
+                srm_Pr.old_apply_aqty = 0;//已申请数量
+                srm_Pr.pr_type = orderType;//申请类型
+                srm_Pr.currencytype = x.currency_type;//币种
+                srm_Pr.secInv_ratio = plan.secinv_ratio;//安全库存触发采购比例
+                srm_Pr.tenant_id = tenantId;
+                srm_Pr.factory_id = factoryid;
+                srm_Pr.bang_id = bangId;
+                //_srm_pr_main.InsertOne(srm_Pr);
+                decimal? totalLeadTime = leadTime.transportation_leadtime + leadTime.stock_leadtime + leadTime.production_leadtime + leadTime.order_leadtime;
+
+                sRMPR.srm_Pr_Main = srm_Pr;
+                sRMPR.item_no = returnlist.num;
+                sRMPR.orderentry_id = returnlist.sentry_id;
+                sRMPR.lastStartTmie = deliveryDate.AddDays((double)totalLeadTime * -1);//减去提前期
+                sRMPRShowDto.srm_Pr_MainList.Add(sRMPR);
+            });
+            sRMPRShowDto.srm_Pr_Main= sRMPRShowDto.srm_Pr_MainList.OrderByDescending(x=>x.lastStartTmie).ThenBy(x=>x.pr_orderprice).First();
+            return sRMPRShowDto;
+        }
+
         // 生成订单编号 字母+年月日+8位随机数+时间戳
         private string getOrderNum(string preCode)
         {