Просмотр исходного кода

Merge branch 'master' of http://123.60.180.165:4647/ZZYDOP/DOPCore

tangdi 3 лет назад
Родитель
Сommit
c1c35a6f8d

+ 1 - 1
MicroServices/Business/Bussiness.Model/Dto/ResExamin/ProdExamineParamDto.cs → MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/Dto/ProdExamineParamDto.cs

@@ -4,7 +4,7 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 
-namespace Bussiness.Model.Dto.ResExamin
+namespace Business.ResourceExamineManagement.Dto
 {
     /// <summary>
     /// 产能检查入参Dto

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

@@ -0,0 +1,17 @@
+using Bussiness.Model.SRM;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Business.ResourceExamineManagement.Dto
+{
+    [Serializable]
+    public class SRMPRDto
+    {
+        public DateTime lastStartTmie { get; set; }
+
+        public srm_pr_main srm_Pr_Main { get; set; }
+    }
+}

+ 0 - 1
MicroServices/Business/Business.Application/ResourceExamineManagement/ProductExamineAppService.cs

@@ -1,6 +1,5 @@
 using Business.Core.MongoDBHelper;
 using Business.ResourceExamineManagement.Dto;
-using Bussiness.Model.Dto.ResExamin;
 using Bussiness.Model.Production;
 using Bussiness.Model.Tech;
 using System;

+ 120 - 12
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -52,7 +52,6 @@ using Microsoft.EntityFrameworkCore.Migrations.Operations;
 using Microsoft.AspNetCore.SignalR;
 using System.Diagnostics;
 using Newtonsoft.Json;
-using Bussiness.Model.Dto.ResExamin;
 
 namespace Business.ResourceExamineManagement
 {
@@ -1764,15 +1763,15 @@ namespace Business.ResourceExamineManagement
                         //外购生成采购申请单
                         if (item.erp_cls == 3)
                         {
-                            DateTime lastTime = CreateSRMPR(item, tenantId, factoryid, bangid, 2, leadTimeList, supplierList, planList, deliveryDate);
-                            itemlist.Add(new ICItemDateDto { item_id = item.item_id, dateTime = lastTime });
+                            //DateTime lastTime = CreateSRMPR(item, tenantId, factoryid, bangid, 2, leadTimeList, supplierList, planList, deliveryDate);
+                            //itemlist.Add(new ICItemDateDto { item_id = item.item_id, dateTime = lastTime });
                         }
                         else if (item.erp_cls == 2)
                         {
                             //委外生成委外采购申请单和委外工单
-                            DateTime lastTime = CreateSRMPR(item, tenantId, factoryid, bangid, 1, leadTimeList, supplierList, planList, deliveryDate);
-                            CreateMesOOder(item, tenantId, factoryid, bangid, leadTimeList, supplierList, deliveryDate);
-                            itemlist.Add(new ICItemDateDto { item_id = item.item_id, dateTime = lastTime });
+                            //DateTime lastTime = CreateSRMPR(item, tenantId, factoryid, bangid, 1, leadTimeList, supplierList, planList, deliveryDate);
+                            //CreateMesOOder(item, tenantId, factoryid, bangid, leadTimeList, supplierList, deliveryDate);
+                            //itemlist.Add(new ICItemDateDto { item_id = item.item_id, dateTime = lastTime });
                         }
                     }
                     else
@@ -1832,12 +1831,64 @@ namespace Business.ResourceExamineManagement
             return itemlist;
         }
 
+        ///// <summary>
+        ///// 生成委外工单
+        ///// </summary>
+        ///// <param name="returnlist"></param>
+        ///// <param name="factoryid"></param>
+        //private DateTime CreateMesOOder(BomChildExamineDto returnlist, long tenantId, long factoryid, long bangId, List<ICItemLeadTimeDto> iCItemLeadTimes, List<ic_item_pur> supplierList, DateTime deliveryDate)
+        //{
+        //    mes_oorder oOrder = new mes_oorder();
+        //    oOrder.GenerateNewId();
+        //    oOrder.oorder_no = getOrderNum("WW");//生产工单编号
+        //    oOrder.oorder_type = "委外工单";//生产工单类型
+        //    oOrder.oorder_date = DateTime.Now;//委外订单日期
+        //    oOrder.oorder_state = "已提交";//订单状态
+        //    oOrder.ooentry_prd = 10000;//生产组织
+        //    oOrder.ooentry_prdname = "1000";//生产组织名称
+        //    oOrder.ooentry_wrkc = 10000;//工作中心id
+        //    oOrder.ooentry_wrkcname = "10001";//工作中心名称
+        //    oOrder.planner_num = "wwww";//计划员工号
+        //    oOrder.planner_name = "qqq";//计划员名称
+        //    oOrder.ooentry_stime = DateTime.Now;//计划开工日期
+        //    oOrder.ooentry_etime = DateTime.Now;//计划完工日期
+        //    oOrder.product_code = "产品代码";//产品代码
+        //    oOrder.ffms_number = "1000";//fms旧料号
+        //    oOrder.product_name = "test";//产品名称
+        //    oOrder.specification_model = returnlist.model;//规格型号
+        //    oOrder.bom_number = "";//bom编码
+        //    oOrder.unit = returnlist.unit;//单位
+        //    oOrder.morder_progress = "";//工单进度
+        //    oOrder.morder_production_number = returnlist.lack_qty;//工单生产数量(计划数量)
+        //    oOrder.need_number = returnlist.lack_qty;//需求数量
+        //    oOrder.remaining_number = returnlist.lack_qty;//剩余可用数量
+        //    oOrder.work_number = 0;//报工数量
+        //    oOrder.inspection_number = 0;//报检数量
+        //    oOrder.qualified_number = 0;//合格数量
+        //    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.project_name = returnlist.item_name;//项目名称
+        //    oOrder.sent_status = 1;//发料状态 1-待发料  2-已发料
+        //    oOrder.production_unit = returnlist.unit;//加工单位
+        //    oOrder.production_unit_code = "";//加工单位编码
+        //    oOrder.need_icitem_status = 1;//所需物料是否充足  1-充足 0-缺料
+        //    oOrder.tenant_id = tenantId;
+        //    oOrder.factory_id = factoryid;
+        //    oOrder.bang_id = bangId;
+        //    _mes_oorder.InsertOne(oOrder);
+        //    return DateTime.Now;
+        //}
+
         /// <summary>
         /// 生成委外工单
         /// </summary>
         /// <param name="returnlist"></param>
         /// <param name="factoryid"></param>
-        private DateTime CreateMesOOder(BomChildExamineDto returnlist, long tenantId, long factoryid, long bangId, List<ICItemLeadTimeDto> iCItemLeadTimes, List<ic_item_pur> supplierList, DateTime deliveryDate)
+        private mes_oorder CreateMesOOder(BomChildExamineDto returnlist, long tenantId, long factoryid, long bangId, List<ICItemLeadTimeDto> iCItemLeadTimes, List<ic_item_pur> supplierList, DateTime deliveryDate)
         {
             mes_oorder oOrder = new mes_oorder();
             oOrder.GenerateNewId();
@@ -1880,18 +1931,72 @@ namespace Business.ResourceExamineManagement
             oOrder.tenant_id = tenantId;
             oOrder.factory_id = factoryid;
             oOrder.bang_id = bangId;
-            _mes_oorder.InsertOne(oOrder);
-            return DateTime.Now;
+            return oOrder;
+            //_mes_oorder.InsertOne(oOrder);
         }
 
 
+        ///// <summary>
+        ///// 生成采购申请单,颗粒度是一个物料一个单,没必要弄列表
+        ///// </summary>
+        ///// <param name="returnlist"></param>
+        ///// <param name="factoryid"></param>
+        ///// <param name="orderType">2委外采购申请单,3采购申请单</param>
+        //private DateTime CreateSRMPR(BomChildExamineDto returnlist, long tenantId, long factoryid, long bangId, int orderType, List<ICItemLeadTimeDto> iCItemLeadTimes, List<ic_item_pur> supplierList, List<ic_plan> planList, DateTime deliveryDate)
+        //{
+        //    var leadTime = iCItemLeadTimes.Find(x => x.item_id == returnlist.item_id);
+        //    var supplier = supplierList.Find(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)
+        //    {
+        //        throw new NotImplementedException("未找到物料ic_factory_details或ic_item_pur或ic_plan信息!");
+        //    }
+        //    srm_pr_main srm_Pr = new srm_pr_main();
+        //    srm_Pr.GenerateNewId();
+        //    srm_Pr.pr_billno = getOrderNum("PR");//pr单号
+        //    srm_Pr.pr_mono = "";//关联工单号
+        //    srm_Pr.entity_id = 1;//工单行号
+        //    srm_Pr.pr_purchaseid = supplier.supplier_id;//供应商id  
+        //    srm_Pr.pr_purchasenumber = supplier.supplier_number;//供应商编码
+        //    srm_Pr.pr_purchasename = supplier.supplier_name;//供应商名称
+        //    srm_Pr.pr_purchaser = supplier.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 * supplier.netpurchase_price * (1 + supplier.taxrate);//系统价格(含税)
+        //    srm_Pr.pr_orderprice = returnlist.lack_qty * supplier.netpurchase_price * (1 + supplier.taxrate);//订单价格(含税)
+        //    srm_Pr.pr_price = supplier.netpurchase_price;//采购净价(不含税)
+        //    srm_Pr.pr_rate = supplier.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 = supplier.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;
+        //    return deliveryDate.AddDays((double)totalLeadTime * -1);//减去提前期
+        //}
+
         /// <summary>
         /// 生成采购申请单,颗粒度是一个物料一个单,没必要弄列表
         /// </summary>
         /// <param name="returnlist"></param>
         /// <param name="factoryid"></param>
         /// <param name="orderType">2委外采购申请单,3采购申请单</param>
-        private DateTime CreateSRMPR(BomChildExamineDto returnlist, long tenantId, long factoryid, long bangId, int orderType, List<ICItemLeadTimeDto> iCItemLeadTimes, List<ic_item_pur> supplierList, List<ic_plan> planList, DateTime deliveryDate)
+        private SRMPRDto CreateSRMPR(BomChildExamineDto returnlist, long tenantId, long factoryid, long bangId, int orderType, List<ICItemLeadTimeDto> iCItemLeadTimes, List<ic_item_pur> supplierList, List<ic_plan> planList, DateTime deliveryDate)
         {
             var leadTime = iCItemLeadTimes.Find(x => x.item_id == returnlist.item_id);
             var supplier = supplierList.Find(x => x.icitem_id == returnlist.item_id);//默认取第一个供应商
@@ -1934,9 +2039,12 @@ namespace Business.ResourceExamineManagement
             srm_Pr.tenant_id = tenantId;
             srm_Pr.factory_id = factoryid;
             srm_Pr.bang_id = bangId;
-            _srm_pr_main.InsertOne(srm_Pr);
+            //_srm_pr_main.InsertOne(srm_Pr);
             decimal? totalLeadTime = leadTime.transportation_leadtime + leadTime.stock_leadtime + leadTime.production_leadtime + leadTime.order_leadtime;
-            return deliveryDate.AddDays((double)totalLeadTime * -1);//减去提前期
+            SRMPRDto sRMPR = new SRMPRDto();
+            sRMPR.srm_Pr_Main = srm_Pr;
+            sRMPR.lastStartTmie = deliveryDate.AddDays((double)totalLeadTime * -1);//减去提前期
+            return sRMPR;
         }
 
         // 生成订单编号 字母+年月日+8位随机数+时间戳