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

Merge branch 'dev' of http://123.60.180.165:4647/ZZYDOP/DOPCore into dev

heteng 2 лет назад
Родитель
Сommit
60677571dd
33 измененных файлов с 1438 добавлено и 2711 удалено
  1. 6 4
      MicroServices/Business/Business.Application.Contracts/Business.Application.Contracts.csproj
  2. 0 30
      MicroServices/Business/Business.Application.Contracts/WMS/ISyncKingdeeAppService.cs
  3. 438 131
      MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs
  4. 7 4
      MicroServices/Business/Business.Application/ResourceExamineManagement/MorderAppService.cs
  5. 30 36
      MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs
  6. 13 14
      MicroServices/Business/Business.Application/SystemJobManagement/SystemJobAppService.cs
  7. 0 38
      MicroServices/Business/Business.Application/WMS/SyncKingdeeAppService.cs
  8. 3 4
      MicroServices/Business/Business.Domain/Business.Domain.csproj
  9. 0 202
      MicroServices/Business/Business.Domain/StructuredDB/Ext/ext_xref.cs
  10. 0 206
      MicroServices/Business/Business.Domain/StructuredDB/Ext/in_kd_bom.cs
  11. 0 1810
      MicroServices/Business/Business.Domain/StructuredDB/Ext/in_kd_material.cs
  12. 6 0
      MicroServices/Business/Business.Domain/StructuredDB/MES/IC/ASNBOLShipperDetail.cs
  13. 90 0
      MicroServices/Business/Business.Domain/StructuredDB/MES/IC/ASNBOLShipperMaster.cs
  14. 1 1
      MicroServices/Business/Business.Domain/StructuredDB/MES/IC/CustMaster.cs
  15. 5 0
      MicroServices/Business/Business.Domain/StructuredDB/MES/IC/ItemMaster.cs
  16. 6 0
      MicroServices/Business/Business.Domain/StructuredDB/MES/IC/PurOrdDetail.cs
  17. 47 0
      MicroServices/Business/Business.Domain/StructuredDB/Production/DMS_IN_ITEMMAPPING.cs
  18. 142 0
      MicroServices/Business/Business.Domain/StructuredDB/Production/DMS_IN_LOCDETAIL.cs
  19. 184 0
      MicroServices/Business/Business.Domain/StructuredDB/Production/DMS_IN_PODETAIL.cs
  20. 59 0
      MicroServices/Business/Business.Domain/StructuredDB/Production/DMS_IN_RETAILER.cs
  21. 213 0
      MicroServices/Business/Business.Domain/StructuredDB/Production/DMS_IN_SHIPPINGDETAIL.cs
  22. 41 6
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/BusinessDbContextModelCreatingExtensions.cs
  23. 2 0
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/DOP/BusinessDbContext.cs
  24. 5 3
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/Ext/BusinessExtDbContext.cs
  25. 122 0
      MicroServices/Business/Business.EntityFrameworkCore/Repository/SqlRepositories/ExtSqlRepository.cs
  26. 1 0
      MicroServices/Business/Business.Host/Startup.cs
  27. 1 1
      MicroServices/Business/Business.Host/appsettings.json
  28. 0 42
      MicroServices/Business/Business.HttpApi/Controllers/Kanban/KanbanController.cs
  29. 0 42
      MicroServices/Business/Business.HttpApi/Controllers/QMS/QMSController.cs
  30. 0 42
      MicroServices/Business/Business.HttpApi/Controllers/SIM/AndonController.cs
  31. 0 42
      MicroServices/Business/Business.HttpApi/Controllers/SIM/SIMController.cs
  32. 0 53
      MicroServices/Business/Business.HttpApi/Controllers/WMS/KingdeeController.cs
  33. 16 0
      MicroServices/Business/QuartzSettings/logs/logs.txt

+ 6 - 4
MicroServices/Business/Business.Application.Contracts/Business.Application.Contracts.csproj

@@ -18,6 +18,12 @@
     <WarningLevel>0</WarningLevel>
   </PropertyGroup>
 
+  <ItemGroup>
+    <Compile Remove="SaleForecast\**" />
+    <EmbeddedResource Remove="SaleForecast\**" />
+    <None Remove="SaleForecast\**" />
+  </ItemGroup>
+
   <ItemGroup>
     <None Remove="Localization\Business\cs.json" />
     <None Remove="Localization\Business\en.json" />
@@ -41,8 +47,4 @@
     <ProjectReference Include="..\Business.Domain\Business.Domain.csproj" />
   </ItemGroup>
 
-  <ItemGroup>
-    <Folder Include="SaleForecast\" />
-  </ItemGroup>
-
 </Project>

+ 0 - 30
MicroServices/Business/Business.Application.Contracts/WMS/ISyncKingdeeAppService.cs

@@ -1,30 +0,0 @@
-using Business.ResourceExamineManagement.Dto;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Volo.Abp.Application.Services;
-
-namespace Business.ResourceExamineManagement
-{
-    /// <summary>
-    /// 流水号生成
-    /// </summary>
-    public interface ISyncKingdeeAppService : IApplicationService
-    {
-        /// <summary>
-        /// 同步金蝶供应商
-        /// </summary>
-        /// <param name="id"></param>
-        /// <returns></returns>
-        string SyncSupplier();
-
-        /// <summary>
-        /// 同步金蝶物料表
-        /// </summary>
-        /// <param name="id"></param>
-        /// <returns></returns>
-        string SyncMaterial();
-    }
-}

+ 438 - 131
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -46,9 +46,8 @@ namespace Business.Replenishment
         /// </summary>
         SnowFlake help = new SnowFlake();
         private readonly IRepository<ReplenishmentROP, long> _replenishmentROP;
-        private readonly IRepository<DomesticTerminalFcst, long> _domesticTerminalFcst;
         private readonly ISqlRepository<ASNBOLShipperDetail> _ASNBOLShipperDetail;
-        private readonly IRepository<StandardItemModelSet, long> _standardItemModelSet;
+        private readonly ISqlRepository<ASNBOLShipperMaster> _ASNBOLShipperMaster;
         private readonly ISqlRepository<InvTransHist> _invTransHist;
         private readonly ISqlRepository<SAPInv> _SAPInv;
         private readonly IRepository<srm_purchase, long> _srmPurchase;
@@ -110,6 +109,12 @@ namespace Business.Replenishment
         private readonly IRepository<b_examine_result, long> _mysql_examine_result;
         private readonly IRepository<b_bom_child_examine, long> _mysql_bom_child_examine;
         private readonly IRepository<ReplenishmentServiceLevel, long> _replenishmentServiceLevel;
+        private readonly ISqlRepository<DMS_IN_ITEMMAPPING> _DMS_IN_ITEMMAPPING;
+        private readonly ISqlRepository<DMS_IN_LOCDETAIL> _DMS_IN_LOCDETAIL;
+        private readonly ISqlRepository<DMS_IN_PODETAIL> _DMS_IN_PODETAIL;
+        private readonly ISqlRepository<DMS_IN_RETAILER> _DMS_IN_RETAILER;
+        private readonly ISqlRepository<DMS_IN_SHIPPINGDETAIL> _DMS_IN_SHIPPINGDETAIL;
+        private readonly IRepository<ReplenishmentTurnOverSet> _ReplenishmentTurnOverSet;
 
         /// <summary>
         /// 年度销售预测
@@ -235,6 +240,7 @@ namespace Business.Replenishment
             IRepository<ReplenishmentROP, long> replenishmentROP,
             IRepository<DomesticTerminalFcst, long> domesticTerminalFcst,
             ISqlRepository<ASNBOLShipperDetail> ASNBOLShipperDetail,
+            ISqlRepository<ASNBOLShipperMaster> ASNBOLShipperMaster,
             IRepository<StandardItemModelSet, long> standardItemModelSet,
             ISqlRepository<InvTransHist> invTransHist,
             ISqlRepository<SAPInv> SAPInv,
@@ -308,6 +314,13 @@ namespace Business.Replenishment
             IRepository<b_bom_child_examine, long> mysql_bom_child_examine,
             IRepository<ReplenishmentServiceLevel, long> replenishmentServiceLevel,
 
+            ISqlRepository<DMS_IN_ITEMMAPPING> DMS_IN_ITEMMAPPING,
+            ISqlRepository<DMS_IN_LOCDETAIL> DMS_IN_LOCDETAIL,
+            ISqlRepository<DMS_IN_PODETAIL> DMS_IN_PODETAIL,
+            ISqlRepository<DMS_IN_RETAILER> DMS_IN_RETAILER,
+            ISqlRepository<DMS_IN_SHIPPINGDETAIL> DMS_IN_SHIPPINGDETAIL,
+            IRepository<ReplenishmentTurnOverSet> ReplenishmentTurnOverSet,
+
             SerialNumberAppService serialNumberAppService,
             PretreatmentAppService pretreatmentAppService,
             PurchaseOrderAppService purchaseOrderAppService,
@@ -319,9 +332,8 @@ namespace Business.Replenishment
             IUnitOfWorkManager unitOfWorkManager)
         {
             _replenishmentROP = replenishmentROP;
-            _domesticTerminalFcst = domesticTerminalFcst;
             _ASNBOLShipperDetail = ASNBOLShipperDetail;
-            _standardItemModelSet = standardItemModelSet;
+            _ASNBOLShipperMaster = ASNBOLShipperMaster;
             _invTransHist = invTransHist;
             _SAPInv = SAPInv;
             _srmPurchase = srmPurchase;
@@ -396,6 +408,13 @@ namespace Business.Replenishment
             _crm_planorder = crm_planorder;
             _platformInventory = platformInventory;
 
+            _DMS_IN_ITEMMAPPING = DMS_IN_ITEMMAPPING;
+            _DMS_IN_LOCDETAIL = DMS_IN_LOCDETAIL;
+            _DMS_IN_PODETAIL = DMS_IN_PODETAIL;
+            _DMS_IN_RETAILER = DMS_IN_RETAILER;
+            _DMS_IN_SHIPPINGDETAIL = DMS_IN_SHIPPINGDETAIL;
+            _ReplenishmentTurnOverSet= ReplenishmentTurnOverSet;
+
             _serialNumberAppService= serialNumberAppService;
             _pretreatmentAppService = pretreatmentAppService;
             _CalcBomViewAppService = CalcBomViewAppService;
@@ -715,26 +734,6 @@ namespace Business.Replenishment
             return "OK|刷新成功!";
         }
 
-        /// <summary>
-        /// 计算当月有多少个周末
-        /// </summary>
-        /// <param name="days"></param>
-        /// <param name="startDay"></param>
-        /// <returns></returns>
-        private int CalcWeekDays(int days, DateTime startDay)
-        {
-            int sumDays = 0;
-            for (int i = 0; i < days; i++)
-            {
-                int weekDays = (int)startDay.AddDays(i).DayOfWeek;
-                if (weekDays == 0 || weekDays == 6)
-                {
-                    sumDays++;
-                }
-            }
-            return sumDays;
-        }
-
         /// <summary>
         /// 调整ROP和最高库存水位(按照成品展开到原材料,原材料用领料算出库)
         /// </summary>
@@ -744,6 +743,11 @@ namespace Business.Replenishment
         {
             //1.获取补货模型全局参数
             ReplenishmentDto replenishmentDto = GetROPParam(input.factory_id.ToString());
+            List<ReplenishmentROP> addList = new List<ReplenishmentROP>();
+            List<ReplenishmentROP> updateList = new List<ReplenishmentROP>();//更新上一个月的实际出库数量
+            List<ReplenishmentServiceLevel> addServiceLevelList = new List<ReplenishmentServiceLevel>();
+            List<ReplenishmentServiceLevel> updateServiceLevelList = new List<ReplenishmentServiceLevel>();
+            var turnOverlist=_ReplenishmentTurnOverSet.GetListAsync(a=>a.factory_id==input.factory_id).Result;
             //获取月度发货计划(一次导入三个月的销售预测),因为是固定格式yyyy-MM所以可以用字符串比较,避免写很多字符串判断相等
             string planMonth = $"{DateTime.Now.Year}-{DateTime.Now.Month.ToString("00")}";
             string planMonthMax = $"{DateTime.Now.AddMonths(replenishmentDto.SaleFcstMonth).Year}-{DateTime.Now.AddMonths(replenishmentDto.SaleFcstMonth).Month.ToString("00")}";
@@ -770,53 +774,113 @@ namespace Business.Replenishment
 
             //获取补货模型前H周期和未来F个周期的数据
             var ropModelList = _replenishmentROP.GetListAsync(a => a.zero_based_seqno >= -1 * replenishmentDto.HistoryOutStockMonth && a.zero_based_seqno <= replenishmentDto.SaleFcstMonth).Result;
+            
             //获取成品库存、灭菌库存、在制库存(会从SAP同步的库存表更新到LocationDetail、ic_item表中)
-            //List<SAPInv> sAPInvs = _SAPInv.Select(p => p.WERKS == input.factory_id.ToString() && itemNums.Contains(p.MATNR));
             var locations = _locationDetail.Select(p => p.Domain == input.factory_id.ToString() && pretreatments.Select(p => p.item_number).Contains(p.ItemNum) && p.IsActive);
             var sapItemInv = _SAPInv.Select(a => pretreatments.Select(p => p.item_number).Contains(a.MATNR) && a.WERKS == input.factory_id.ToString());
+            var DMSItemList=_DMS_IN_ITEMMAPPING.Select(a => planList.Select(p => p.SAPItemNumber).ToList().Contains(a.CfnERPCode));
+            var gkhwStock=_DMS_IN_LOCDETAIL.Select(a => (a.DealerCode == "RQ000005" || a.DealerCode == "RQ000002"));
 
             //取过去6个月发货出库记录
             var listShip = pretreatments.Select(p => p.item_number).ToList();
             var dateBegin = getMonthStartTime(-6);
             var dateEnd = getMonthStartTime(-1);
             var dateCurrent = getMonthStartTime(-1);
-            var shipList = _ASNBOLShipperDetail.Select(a => a.Domain == input.factory_id.ToString() && a.IsActive && a.shtype == "SH" && a.Typed != "S" && a.RealQty > 0 && listShip.Contains(a.ContainerItem) && a.ShipDate >= dateBegin && a.ShipDate <= dateEnd);
+            var gkhwList=_ASNBOLShipperMaster.Select(a => a.Domain == input.factory_id.ToString() && (a.SoldTo == "10002080" || a.SoldTo == "10001981"));
+
+            var recidList = gkhwList.Select(a => a.RecID).ToList();
+            var shipList = _ASNBOLShipperDetail.Select(a => a.Domain == input.factory_id.ToString() && a.IsActive && a.shtype == "SH" && a.Typed != "S" && a.RealQty > 0 
+            && listShip.Contains(a.ContainerItem) && a.ShipDate >= dateBegin && a.ShipDate <= dateEnd && !recidList.Contains(a.ASNBOLShipperRecID));//瑞奇只算瑞奇排除国科海王
+
+            var DMSItemListGK = _DMS_IN_ITEMMAPPING.Select(a => planList.Where(p=>p.DistributionChannel=="国科").Select(p => p.SAPItemNumber).ToList().Contains(a.CfnERPCode));
+            var shipListGK = _DMS_IN_SHIPPINGDETAIL.Select(a =>
+           DMSItemListGK.Select(g=>g.CfnCode).Contains(a.UPN) && a.ParentDealerCode== "RQ000005" && a.ShipmentDate >= DateOnly.FromDateTime(dateBegin) && a.ShipmentDate <= DateOnly.FromDateTime(dateEnd));//国科
+            var DMSItemListHW = _DMS_IN_ITEMMAPPING.Select(a => planList.Where(p => p.DistributionChannel == "国科").Select(p => p.SAPItemNumber).ToList().Contains(a.CfnERPCode));
+            var shipListHW = _DMS_IN_SHIPPINGDETAIL.Select(a =>
+           DMSItemListHW.Select(g => g.CfnCode).Contains(a.UPN) && a.ParentDealerCode == "RQ000002" && a.ShipmentDate >= DateOnly.FromDateTime(dateBegin) && a.ShipmentDate <= DateOnly.FromDateTime(dateEnd));//海王
+
             //领料出库记录
-            //var pickbilllist = _NbrDetail.Select(a => a.Domain == input.factory_id.ToString() && a.Type == "SM" && a.IsActive && a.UpdateTime >= DateTime.Now.AddMonths(replenishmentDto.HistoryOutStockMonth * -1) && itemNumList.Contains(a.ItemNum));
-            var pickbilllist = _invTransHist.Select(a => a.Domain == input.factory_id.ToString() && a.TransType == "iss-wo" && a.IsActive && a.CreateTime >= DateTime.Now.AddMonths(-6) && pretreatments.Select(p => p.item_number).Contains(a.ItemNum));
+            var pickbilllist = _invTransHist.Select(a => a.Domain == input.factory_id.ToString() && a.TransType == "iss-wo" && a.IsActive 
+            && a.CreateTime >= DateTime.Now.AddMonths(-6) && pretreatments.Select(p => p.item_number).Contains(a.ItemNum));
             //取本月发货出库记录
-            var shipMList = _ASNBOLShipperDetail.Select(a => a.Domain == input.factory_id.ToString() && a.IsActive && a.shtype == "SH" && a.Typed != "S" && a.RealQty > 0 && listShip.Contains(a.ContainerItem) && a.ShipDate>= dateCurrent && a.ShipDate <= DateTime.Now);
-            //按照物料分组统计出货金额
+            var shipMList = _ASNBOLShipperDetail.Select(a => a.Domain == input.factory_id.ToString() && a.IsActive && a.shtype == "SH" && a.Typed != "S" && a.RealQty > 0 
+            && listShip.Contains(a.ContainerItem) && a.ShipDate>= dateCurrent && a.ShipDate <= DateTime.Now && !recidList.Contains(a.ASNBOLShipperRecID));//瑞奇只算瑞奇排除国科海王
+            var shipMListGK = _DMS_IN_SHIPPINGDETAIL.Select(a =>
+           DMSItemListGK.Select(g => g.CfnCode).Contains(a.UPN) && a.ParentDealerCode == "RQ000005" && a.ShipmentDate >= DateOnly.FromDateTime(dateCurrent) && a.ShipmentDate <= DateOnly.FromDateTime(DateTime.Now));//国科
+            var shipMListHW = _DMS_IN_SHIPPINGDETAIL.Select(a =>
+           DMSItemListHW.Select(g => g.CfnCode).Contains(a.UPN) && a.ParentDealerCode == "RQ000002" && a.ShipmentDate >= DateOnly.FromDateTime(dateCurrent) && a.ShipmentDate <= DateOnly.FromDateTime(DateTime.Now));//海王
+
             var itemGroup = shipList.GroupBy(p => p.ContainerItem)
                  .Select(p => new ASNBOLShipperDetail
                  {
                      QtyToShip = p.Sum(a => a.QtyToShip),
                      ContainerItem = p.Key
                  }).ToList();
-            //按照物料分组统计出货金额
             var itemMGroup = shipMList.GroupBy(p => p.ContainerItem)
                  .Select(p => new ASNBOLShipperDetail
                  {
                      QtyToShip = p.Sum(a => a.QtyToShip),
                      ContainerItem = p.Key
                  }).ToList();
-            List<ReplenishmentROP> addList = new List<ReplenishmentROP>();
-            List<ReplenishmentROP> updateList = new List<ReplenishmentROP>();//更新上一个月的实际出库数量
+
+            var itemGroupGK = shipListGK.GroupBy(p => p.UPN)
+                .Select(p => new ASNBOLShipperDetail
+                {
+                    QtyToShip = p.Sum(a => a.Qty),
+                    ContainerItem = p.Key
+                }).ToList();
+            var itemMGroupGK = shipMListGK.GroupBy(p => p.UPN)
+                 .Select(p => new ASNBOLShipperDetail
+                 {
+                     QtyToShip = p.Sum(a => a.Qty),
+                     ContainerItem = p.Key
+                 }).ToList();
+
+            var itemGroupHW = shipListHW.GroupBy(p => p.UPN)
+                .Select(p => new ASNBOLShipperDetail
+                {
+                    QtyToShip = p.Sum(a => a.Qty),
+                    ContainerItem = p.Key
+                }).ToList();
+            var itemMGroupHW = shipMListHW.GroupBy(p => p.UPN)
+                 .Select(p => new ASNBOLShipperDetail
+                 {
+                     QtyToShip = p.Sum(a => a.Qty),
+                     ContainerItem = p.Key
+                 }).ToList();
+
             var mathtool = new MathNet.Numerics.Distributions.Normal();
             ropModelList?.Where(r => r.isparam && r.seqno == DateTime.Now.AddMonths(-1).Month && r.year == DateTime.Now.AddMonths(-1).Year).ToList()?.ForEach
                 (m =>
                 {
-                    if (itemGroup.Any(a => a.ContainerItem == m.number))
+                    if(m.distributionchannel=="瑞奇")
+                    {
+                        if (itemGroup.Any(a => a.ContainerItem == m.number))
+                        {
+                            m.actual_out_qty = itemGroup.Find(a => a.ContainerItem == m.number)?.QtyToShip;
+                            updateList.Add(m);
+                        }
+                    }
+                    else if (m.distributionchannel == "国科")
+                    {
+                        if (itemGroupGK.Any(a => a.ContainerItem == m.number))
+                        {
+                            m.actual_out_qty = itemGroup.Find(a => a.ContainerItem == m.number)?.QtyToShip;
+                            updateList.Add(m);
+                        }
+                    }
+                    else if (m.distributionchannel == "海王")
                     {
-                        m.actual_out_qty = itemGroup.Find(a => a.ContainerItem == m.number)?.QtyToShip;
-                        updateList.Add(m);
+                        if (itemGroupHW.Any(a => a.ContainerItem == m.number))
+                        {
+                            m.actual_out_qty = itemGroup.Find(a => a.ContainerItem == m.number)?.QtyToShip;
+                            updateList.Add(m);
+                        }
                     }
                 });
             var serviceList=_replenishmentServiceLevel.GetListAsync(a => a.factory_id == input.factory_id).Result;
-            List<ReplenishmentServiceLevel> addServiceLevelList = new List<ReplenishmentServiceLevel>();
-            List<ReplenishmentServiceLevel> updateServiceLevelList = new List<ReplenishmentServiceLevel>();
-            //需要按照成品资源检查计算原材料
-            planList?.Where(s => s.PlanMonth == planMonth).ToList()?.ForEach(a =>
+ 
+            planList?.Where(s => s.PlanMonth == planMonth&& s.DistributionChannel=="瑞奇").ToList()?.ForEach(a =>
             {
                 var itemSourceId = boms.Find(b => b.item_number == a.SAPItemNumber)?.mysql_id;
                 if (itemSourceId != null)
@@ -837,16 +901,9 @@ namespace Business.Replenishment
                                 rop.min_pack_qty = icItem.minpackqty;
                                 rop.moq = icItem.moq;
                             }
-                            rop.actual_period_start_instock = 0;
-                            if (rop.distributionchannel == "海王" || rop.distributionchannel == "国科")
-                            {
-                                rop.actual_period_start_instock = locations.Find(l => l.ItemNum == pretreatments[i].item_number)?.QtyOnHand;
-                            }
-                            else
-                            {
-                                rop.actual_period_start_instock = sapItemInv.Find(s => s.MATNR == pretreatments[i].item_number)?.LABST.ToDecimal();
-                            }
                             rop.distributionchannel = a.DistributionChannel;
+                            rop.actual_period_start_instock = 0;
+                            rop.actual_period_start_instock = sapItemInv.Find(s => s.MATNR == pretreatments[i].item_number)?.LABST.ToDecimal();
                             rop.lifecycle = a.LifeCycle;
                             rop.area = a.Area;
                             rop.plan_out_qty = Math.Ceiling(a.Qty);
@@ -872,22 +929,47 @@ namespace Business.Replenishment
                             }
 
                             rop.monthl_avg_demand_variance = Math.Ceiling(Convert.ToDecimal(CalcVariance(planList, pretreatments[i].item_number, rop.erp_cls, rop.monthl_avg_demand, pickbilllist)));
-                            rop.monthl_avg_outstock = CalcAvgOutStock(ropModelList, replenishmentDto, rop.actual_out_qty.Value, pretreatments[i].item_number);
-                            rop.supply_leadtime = 1;//默认
-                            if (mesItemList.Find(s => s.ItemNum == pretreatments[i].item_number) != null)
+                            rop.monthl_avg_outstock = CalcAvgOutStock(ropModelList, replenishmentDto, rop.actual_out_qty.Value, pretreatments[i].item_number,"瑞奇");
+                            rop.supply_leadtime = 15;//默认
+                            
+                            //先判断是不是成品
+                            if(rop.number== a.SAPItemNumber)
                             {
-                                rop.stock_turnover = mesItemList.Find(s => s.ItemNum == pretreatments[i].item_number).StockTurnOver;
-                                rop.supply_leadtime = mesItemList.Find(s => s.ItemNum == pretreatments[i].item_number)?.PurLT;
-                                rop.stock_turnover = mesItemList.Find(s => s.ItemNum == pretreatments[i].item_number)?.StockTurnOver;
-                            }
-                            else
-                            {
-                                rop.stock_turnover = 4;
-                            }
-                            if (srm_purchaseList.Find(s => s.number == pretreatments[i].item_number) != null)
+                                //存货周转率先取规格型号,没有再取产品系列,没有取产品线,再没有取物料配置的(主要是原材料),再没有就默认
+                                if (turnOverlist.Find(t => t.Model == rop.model) != null)
+                                {
+                                    rop.stock_turnover = turnOverlist.Find(t => t.Model == rop.model).RQTurnOver;
+                                }
+                                else if (turnOverlist.Find(t => t.ProdRange == a.ProdRange) != null)
+                                {
+                                    rop.stock_turnover = turnOverlist.Find(t => t.ProdRange == a.ProdRange).RQTurnOver;
+                                }else if(turnOverlist.Find(t => t.ProdLine == a.ProdLine) != null)
+                                {
+                                    rop.stock_turnover = turnOverlist.Find(t => t.ProdLine == a.ProdLine).RQTurnOver;
+                                }else if(mesItemList.Find(s => s.ItemNum == pretreatments[i].item_number) != null)
+                                {
+                                    rop.stock_turnover = mesItemList.Find(s => s.ItemNum == pretreatments[i].item_number).StockTurnOver;
+                                }else
+                                {
+                                    rop.stock_turnover = 4;
+                                }
+                            }else
                             {
-                                rop.supply_leadtime = srm_purchaseList.Find(s => s.number == pretreatments[i].item_number).lead_time;
+                                if (mesItemList.Find(s => s.ItemNum == pretreatments[i].item_number) != null)
+                                {
+                                    rop.stock_turnover = mesItemList.Find(s => s.ItemNum == pretreatments[i].item_number).StockTurnOver;
+                                    rop.supply_leadtime = mesItemList.Find(s => s.ItemNum == pretreatments[i].item_number)?.PurLT;
+                                }
+                                else
+                                {
+                                    rop.stock_turnover = 4;
+                                }
+                                if (srm_purchaseList.Find(s => s.number == pretreatments[i].item_number) != null)
+                                {
+                                    rop.supply_leadtime = srm_purchaseList.Find(s => s.number == pretreatments[i].item_number).lead_time;
+                                }
                             }
+                            
                             CalcFMRAndABC(rop, replenishmentDto, shipList, pickbilllist, input);
                             if(serviceList.Any(s=>s.number==rop.number))
                             {
@@ -988,6 +1070,205 @@ namespace Business.Replenishment
                     }
                 }
             });
+            //国科海王只有成品
+            planList?.Where(s => s.PlanMonth == planMonth && (s.DistributionChannel == "海王"|| s.DistributionChannel == "国科")).ToList()?.ForEach(a =>
+            {
+                ReplenishmentROP rop = new ReplenishmentROP();
+                rop.number = a.SAPItemNumber;
+                var icItem = itemList.Find(s => s.number == a.SAPItemNumber);
+                if (icItem != null)
+                {
+                    rop.name = icItem.name;
+                    rop.model = a.Model;
+                    rop.erp_cls = icItem.erp_cls; //物料属性: 0.配置类 1.自制 2.委外加工 3.外购 4.虚拟件
+                    rop.fversion = icItem.fversion;
+                    rop.min_pack_qty = icItem.minpackqty;
+                    rop.moq = icItem.moq;
+                }
+                rop.distributionchannel = a.DistributionChannel;
+                rop.actual_period_start_instock = 0;
+                if(a.DistributionChannel == "海王")
+                {
+                    if (DMSItemList.Find(d => d.CfnERPCode == rop.number) != null)
+                    {
+                        var itemDMS = gkhwStock.Where(o => o.UPN == DMSItemList.Find(d => d.CfnERPCode == rop.number).CfnCode && o.DealerCode== "RQ000002").ToList();
+                        if (itemDMS.Count > 0)
+                        {
+                            var maxDate = itemDMS.OrderByDescending(i => i.InventoryDate).First();
+                            rop.actual_period_start_instock = itemDMS.Where(i => i.InventoryDate == maxDate.InventoryDate).Sum(q => q.Qty);
+                        }
+                    }
+                }else
+                {
+                    if (DMSItemList.Find(d => d.CfnERPCode == rop.number) != null)
+                    {
+                        var itemDMS = gkhwStock.Where(o => o.UPN == DMSItemList.Find(d => d.CfnERPCode == rop.number).CfnCode && o.DealerCode == "RQ000005").ToList();
+                        if (itemDMS.Count > 0)
+                        {
+                            var maxDate = itemDMS.OrderByDescending(i => i.InventoryDate).First();
+                            rop.actual_period_start_instock = itemDMS.Where(i => i.InventoryDate == maxDate.InventoryDate).Sum(q => q.Qty);
+                        }
+                    }
+                }
+                rop.lifecycle = a.LifeCycle;
+                rop.area = a.Area;
+                rop.plan_out_qty = Math.Ceiling(a.Qty);
+                rop.actual_out_qty = 0;
+                if(a.DistributionChannel == "海王")
+                {
+                    if (itemMGroup.Any(m => m.ContainerItem == a.SAPItemNumber))
+                    {
+                        rop.actual_out_qty = itemMGroupHW.Find(m => m.ContainerItem == a.SAPItemNumber)?.QtyToShip;
+                    }
+                }else
+                {
+                    if (itemMGroup.Any(m => m.ContainerItem == a.SAPItemNumber))
+                    {
+                        rop.actual_out_qty = itemMGroupGK.Find(m => m.ContainerItem == a.SAPItemNumber)?.QtyToShip;
+                    }
+                }
+                
+                rop.year = DateTime.Now.Year;
+                rop.long_period = "Y";
+                rop.short_period = "M";
+                rop.seqno = DateTime.Now.Month;
+                rop.zero_based_seqno = 0;
+                rop.period_start_date = getMonthStartTime(0);
+                rop.period_end_date = getMonthEndTime(0);
+
+                if(a.DistributionChannel == "海王")
+                {
+                    if (planList.Where(i => i.SAPItemNumber == a.SAPItemNumber && i.DistributionChannel == "海王").Count() > 0)
+                    {
+                        rop.monthl_avg_demand=planList.Where(i => i.SAPItemNumber == a.SAPItemNumber && i.DistributionChannel == "海王").Average(a => a.Qty);
+                        var nums = planList.Where(i => i.SAPItemNumber == a.SAPItemNumber && i.DistributionChannel == "海王").Select(a => a.Qty);
+                        if (nums.Count() <= 1)
+                        {
+                            rop.monthl_avg_demand_variance = 0;
+                        }else
+                        {
+                            rop.monthl_avg_demand_variance = Math.Ceiling(Convert.ToDecimal(Math.Sqrt(nums.Sum(x => Math.Pow(Convert.ToDouble(x) - Convert.ToDouble(rop.monthl_avg_demand), 2)) / (nums.Count() - 1))));
+                        }
+                    }
+                    else
+                    {
+                        rop.monthl_avg_demand = 0;
+                        rop.monthl_avg_demand_variance = 0;
+                    }
+                }
+                else
+                {
+                    if (planList.Where(i => i.SAPItemNumber == a.SAPItemNumber && i.DistributionChannel == "国科").Count() > 0)
+                    {
+                        rop.monthl_avg_demand = planList.Where(i => i.SAPItemNumber == a.SAPItemNumber && i.DistributionChannel == "国科").Average(a => a.Qty);
+                        var nums = planList.Where(i => i.SAPItemNumber == a.SAPItemNumber && i.DistributionChannel == "国科").Select(a => a.Qty);
+                        if (nums.Count() <= 1)
+                        {
+                            rop.monthl_avg_demand_variance = 0;
+                        }
+                        else
+                        {
+                            rop.monthl_avg_demand_variance = Math.Ceiling(Convert.ToDecimal(Math.Sqrt(nums.Sum(x => Math.Pow(Convert.ToDouble(x) - Convert.ToDouble(rop.monthl_avg_demand), 2)) / (nums.Count() - 1))));
+                        }
+                    }
+                    else
+                    {
+                        rop.monthl_avg_demand = 0;
+                        rop.monthl_avg_demand_variance = 0;
+                    }
+                }
+                rop.monthl_avg_outstock = CalcAvgOutStock(ropModelList, replenishmentDto, rop.actual_out_qty.Value, a.SAPItemNumber,a.DistributionChannel);
+                rop.supply_leadtime = 15;//默认
+
+
+                //存货周转率先取规格型号,没有再取产品系列,没有取产品线,再没有取物料配置的(主要是原材料),再没有就默认
+                if (turnOverlist.Find(t => t.Model == rop.model) != null)
+                {
+                    rop.stock_turnover = turnOverlist.Find(t => t.Model == rop.model).RQTurnOver;
+                }
+                else if (turnOverlist.Find(t => t.ProdRange == a.ProdRange) != null)
+                {
+                    rop.stock_turnover = turnOverlist.Find(t => t.ProdRange == a.ProdRange).RQTurnOver;
+                }
+                else if (turnOverlist.Find(t => t.ProdLine == a.ProdLine) != null)
+                {
+                    rop.stock_turnover = turnOverlist.Find(t => t.ProdLine == a.ProdLine).RQTurnOver;
+                }
+                else if (mesItemList.Find(s => s.ItemNum == a.SAPItemNumber) != null)
+                {
+                    rop.stock_turnover = mesItemList.Find(s => s.ItemNum == a.SAPItemNumber).StockTurnOver;
+                }
+                else
+                {
+                    rop.stock_turnover = 4;
+                }
+
+
+
+                CalcFMRAndABC(rop, replenishmentDto, shipList, pickbilllist, input);
+                if (serviceList.Any(s => s.number == rop.number))
+                {
+                    var rs = serviceList.Find(s => s.number == rop.number);
+                    //总的移库次数
+                    int totalCount =a.DistributionChannel=="海王"? shipListHW.Count(): shipListGK.Count();
+                    //平均出库次数
+                    decimal avgOutStock = totalCount / replenishmentDto.HistoryOutStockMonth;
+                    rs.number = rop.number;
+                    rs.name = rop.name;
+                    rs.model = rop.model;
+                    rs.item_type = icItem.item_type;
+                    rs.fversion = rop.fversion;
+                    rs.totalCount = totalCount;
+                    rs.avgOutStock = avgOutStock;
+                    rs.totalPrice =0;
+                    rs.Price = 0;
+                    rs.abc = rop.abc;
+                    rs.fmr = rop.fmr;
+                    rs.service_level_pct = rop.service_level_pct;
+                    rs.factory_id = input.factory_id;
+                    rs.tenant_id = input.tenant_id;
+                    rs.company_id = input.company_id;
+                    rs.update_time = DateTime.Now;
+                    updateServiceLevelList.Add(rs);
+                }
+                else
+                {
+                    //总的移库次数
+                    int totalCount = a.DistributionChannel == "海王" ? shipListHW.Count() : shipListGK.Count();
+                    //平均出库次数
+                    decimal avgOutStock = totalCount / replenishmentDto.HistoryOutStockMonth;
+                    ReplenishmentServiceLevel rs = new ReplenishmentServiceLevel();
+                    rs.number = rop.number;
+                    rs.name = rop.name;
+                    rs.model = rop.model;
+                    rs.item_type = icItem.item_type;
+                    rs.fversion = rop.fversion;
+                    rs.totalCount = totalCount;
+                    rs.avgOutStock = avgOutStock;
+                    rs.totalPrice = 0;
+                    rs.Price = 0;
+                    rs.abc = rop.abc;
+                    rs.fmr = rop.fmr;
+                    rs.service_level_pct = rop.service_level_pct;
+                    rs.factory_id = input.factory_id;
+                    rs.tenant_id = input.tenant_id;
+                    rs.company_id = input.company_id;
+                    rs.create_time = DateTime.Now;
+                    rs.GenerateNewId(help.NextId());
+                    addServiceLevelList.Add(rs);
+                }
+                rop.security_stock = Math.Ceiling((decimal)(mathtool.InverseCumulativeDistribution((double)rop.service_level_pct.Value) * (double)rop.monthl_avg_demand_variance));
+                rop.eop = Math.Ceiling(rop.monthl_avg_demand.Value * rop.supply_leadtime.Value / DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month));
+                rop.rop_computed = rop.security_stock + rop.eop;
+                rop.max_stock_level = rop.monthl_avg_outstock * (12 / rop.stock_turnover);
+                rop.rop_revised = Math.Min(rop.rop_computed.Value, rop.max_stock_level.Value);
+                rop.isparam = true;
+                rop.tenant_id = input.tenant_id;
+                rop.factory_id = input.factory_id;
+                rop.create_time = DateTime.Now;
+                rop.org_id = input.org_id;
+                addList.Add(rop);
+            });
             addList?.ForEach(item => { item.GenerateNewId(help.NextId()); });
             addServiceLevelList?.ForEach(item => { item.GenerateNewId(help.NextId()); });
             await _replenishmentROP.InsertManyAsync(addList);
@@ -1821,6 +2102,7 @@ namespace Business.Replenishment
                 workOrd.IsConfirm = true;
                 workOrd.CreateTime = DateTime.Now;
                 workOrd.Typed = "";
+                workOrd.SalesJob = item.morder_no;
                 workOrds.Add(workOrd);
 
                 //添加工单工艺路线数据
@@ -1842,6 +2124,7 @@ namespace Business.Replenishment
                     woRouting.IsActive = true;
                     woRouting.CommentIndex = dtl.CommentIndex;
                     woRouting.CreateTime = DateTime.Now;
+                    woRouting.PackingQty = dtl.PackingQty.GetValueOrDefault();
                     workOrdRoutings.Add(woRouting);
                 }
 
@@ -2126,6 +2409,14 @@ namespace Business.Replenishment
             var molist=_mysql_mes_morder.GetListAsync(a => itemNumbers.Contains(a.product_code) && a.factory_id == input.factory_id  && !a.IsDeleted).Result;
             var proccupylist=_mysql_srm_pr_main_occupy.GetListAsync(a=> molist.Select(p=>p.morder_no).ToList().Contains(a.morder_mo) && a.factory_id == input.factory_id  && !a.IsDeleted).Result;
 
+            //TODO:完善占用逻辑
+            //srm_pr_main pr = new srm_pr_main();
+            //pr.state = 1;
+            //srm_po_main po = new srm_po_main();
+            ////po.state.GetValueOrDefault() != 3;
+            //srm_po_occupy srm_Po_Occupy = new srm_po_occupy();
+            ////srm_Po_Occupy.polist_id = pr.Id;po.id;
+
             itemNumbers.ForEach(a =>
             {
                 EOPDto eOPDto=new EOPDto();
@@ -3331,48 +3622,91 @@ namespace Business.Replenishment
             return replenishmentDto;
         }
 
+        ///// <summary>
+        ///// 计算ABC分类和FMR分类
+        ///// </summary>
+        ///// <param name="replenishmentModels"></param>
+        //public void CalcFMRAndABC(ReplenishmentROP replenishmentModel, ReplenishmentDto replenishmentDto,List<ASNBOLShipperDetail> shipList,List<InvTransHist> pickbilllist, InputDto input)
+        //{
+        //    //总的移库次数
+        //    int totalCount = shipList.Count() + pickbilllist.Count();
+        //    //平均出库次数
+        //    decimal avgOutStock = totalCount / replenishmentDto.HistoryOutStockMonth;
+
+        //    //总出货金额
+        //    decimal? totalPrice = shipList.Sum(a => a.Price * a.QtyToShip);
+        //    //按照物料分组统计出货金额
+        //    var itemGroup = shipList.GroupBy(p => p.ContainerItem)
+        //         .Select(p => new ASNBOLShipperDetail
+        //         {
+        //             Price = p.Sum(a => a.Price * a.QtyToShip) * 100 / totalPrice,
+        //             ContainerItem = p.Key
+        //         }).ToList().OrderByDescending(c => c.Price).ThenByDescending(c => c.ContainerItem);
+        //    var AIndex = (int)Math.Ceiling(itemGroup.Count() * 0.75);//A类:0-75%
+        //    var BIndex = (int)Math.Ceiling(itemGroup.Count() * 0.9) - AIndex;//A类:75%-90%
+        //    var CIndex = itemGroup.Count() - AIndex - BIndex;//A类:90%-100%
+        //    var AItem = itemGroup.Take(AIndex);
+        //    var BItem = itemGroup.Skip(AIndex).Take(BIndex);
+        //    var CItem = itemGroup.Skip(AIndex + BIndex).Take(CIndex);
+        //    if (AItem.Any(a => a.ContainerItem == replenishmentModel.number))
+        //    {
+        //        replenishmentModel.abc = "A";//金额占比前75%的物料划为A类
+        //    }
+        //    else if (BItem.Any(a => a.ContainerItem == replenishmentModel.number))
+        //    {
+        //        replenishmentModel.abc = "B";//金额占比前75%-90%的物料划为B类
+        //    }
+        //    else if (CItem.Any(a => a.ContainerItem == replenishmentModel.number))
+        //    {
+        //        replenishmentModel.abc = "C";//金额占比后10%的物料划为C类
+        //    }
+        //    else
+        //    {
+        //        replenishmentModel.abc = "B";//原材料默认为B
+        //    }
+        //    int itemMoveCount = shipList.Count(a => a.ContainerItem == replenishmentModel.number) + pickbilllist.Count(a => a.ItemNum == replenishmentModel.number);
+        //    if (itemMoveCount >= avgOutStock)
+        //    {
+        //        replenishmentModel.fmr = "F";
+        //    }
+        //    else if (itemMoveCount >= avgOutStock / 2 && itemMoveCount < avgOutStock || itemMoveCount == 0)
+        //    {
+        //        replenishmentModel.fmr = "M";//没有出库移库记录的默认为M
+        //    }
+        //    else if (itemMoveCount < avgOutStock / 2)
+        //    {
+        //        replenishmentModel.fmr = "R";
+        //    }
+
+        //    if (replenishmentModel.abc == "A" && replenishmentModel.fmr == "R")
+        //    {
+        //        replenishmentModel.service_level_pct = (decimal?)0.8;
+        //    }
+        //    if (replenishmentModel.fmr != "R")
+        //    {
+        //        replenishmentModel.service_level_pct = (decimal?)0.96;
+        //    }
+        //    if (replenishmentModel.abc != "A" && replenishmentModel.fmr == "R")
+        //    {
+        //        replenishmentModel.service_level_pct = (decimal?)0.9;
+        //    }
+        //}
+
         /// <summary>
         /// 计算ABC分类和FMR分类
         /// </summary>
         /// <param name="replenishmentModels"></param>
-        public void CalcFMRAndABC(ReplenishmentROP replenishmentModel, ReplenishmentDto replenishmentDto,List<ASNBOLShipperDetail> shipList,List<InvTransHist> pickbilllist, InputDto input)
+        public void CalcFMRAndABC(ReplenishmentROP replenishmentModel, ReplenishmentDto replenishmentDto, List<ASNBOLShipperDetail> shipList, List<InvTransHist> pickbilllist, InputDto input)
         {
             //总的移库次数
             int totalCount = shipList.Count() + pickbilllist.Count();
             //平均出库次数
             decimal avgOutStock = totalCount / replenishmentDto.HistoryOutStockMonth;
+            //瑞奇不提供价格敏感信息,ABC类都默认为B,全部当做无出库金额的物料
+            //无出库金额的物料 FMR分类  F   96 % M   90 % R   80 %
+            //有出库金额的物料 ABC/ FMR分类   AF  96 % AM  90 % AR  80 % BF  96 % BM  90 % BR  80 % CF  96 % CM  90 % CR  80 % 
+            replenishmentModel.abc = "B";//原材料默认为B
 
-            //总出货金额
-            decimal? totalPrice = shipList.Sum(a => a.Price * a.QtyToShip);
-            //按照物料分组统计出货金额
-            var itemGroup = shipList.GroupBy(p => p.ContainerItem)
-                 .Select(p => new ASNBOLShipperDetail
-                 {
-                     Price = p.Sum(a => a.Price * a.QtyToShip) * 100 / totalPrice,
-                     ContainerItem = p.Key
-                 }).ToList().OrderByDescending(c => c.Price).ThenByDescending(c => c.ContainerItem);
-            var AIndex = (int)Math.Ceiling(itemGroup.Count() * 0.75);//A类:0-75%
-            var BIndex = (int)Math.Ceiling(itemGroup.Count() * 0.9) - AIndex;//A类:75%-90%
-            var CIndex = itemGroup.Count() - AIndex - BIndex;//A类:90%-100%
-            var AItem = itemGroup.Take(AIndex);
-            var BItem = itemGroup.Skip(AIndex).Take(BIndex);
-            var CItem = itemGroup.Skip(AIndex + BIndex).Take(CIndex);
-            if (AItem.Any(a => a.ContainerItem == replenishmentModel.number))
-            {
-                replenishmentModel.abc = "A";//金额占比前75%的物料划为A类
-            }
-            else if (BItem.Any(a => a.ContainerItem == replenishmentModel.number))
-            {
-                replenishmentModel.abc = "B";//金额占比前75%-90%的物料划为B类
-            }
-            else if (CItem.Any(a => a.ContainerItem == replenishmentModel.number))
-            {
-                replenishmentModel.abc = "C";//金额占比后10%的物料划为C类
-            }
-            else
-            {
-                replenishmentModel.abc = "B";//原材料默认为B
-            }
             int itemMoveCount = shipList.Count(a => a.ContainerItem == replenishmentModel.number) + pickbilllist.Count(a => a.ItemNum == replenishmentModel.number);
             if (itemMoveCount >= avgOutStock)
             {
@@ -3387,18 +3721,18 @@ namespace Business.Replenishment
                 replenishmentModel.fmr = "R";
             }
 
-            if (replenishmentModel.abc == "A" && replenishmentModel.fmr == "R")
-            {
-                replenishmentModel.service_level_pct = (decimal?)0.8;
-            }
-            if (replenishmentModel.fmr != "R")
+            if (replenishmentModel.fmr == "F")
             {
                 replenishmentModel.service_level_pct = (decimal?)0.96;
             }
-            if (replenishmentModel.abc != "A" && replenishmentModel.fmr == "R")
+            if (replenishmentModel.fmr == "M")
             {
                 replenishmentModel.service_level_pct = (decimal?)0.9;
             }
+            if (replenishmentModel.fmr == "R")
+            {
+                replenishmentModel.service_level_pct = (decimal?)0.8;
+            }
         }
 
         /// <summary>
@@ -3413,9 +3747,9 @@ namespace Business.Replenishment
         {
             if(erp_cls!=3)
             {
-                if(list.Where(i => i.SAPItemNumber == itemNum).Count()>0)
+                if(list.Where(i => i.SAPItemNumber == itemNum && i.DistributionChannel=="瑞奇").Count()>0)
                 {
-                    return list.Where(i => i.SAPItemNumber == itemNum).Average(a => a.Qty);
+                    return list.Where(i => i.SAPItemNumber == itemNum && i.DistributionChannel == "瑞奇").Average(a => a.Qty);
                 }
                 return 0;
             }else
@@ -3437,9 +3771,9 @@ namespace Business.Replenishment
         /// <param name="replenishmentDto">全局参数</param>
         /// <param name="itemNum">物料编码</param>
         /// <returns></returns>
-        public decimal CalcAvgOutStock(List<ReplenishmentROP> list, ReplenishmentDto replenishmentDto, decimal MQty, string itemNum)
+        public decimal CalcAvgOutStock(List<ReplenishmentROP> list, ReplenishmentDto replenishmentDto, decimal MQty, string itemNum,string distributionchannel)
         {
-            return (list.Where(i => i.number == itemNum && i.zero_based_seqno > 1 - replenishmentDto.HistoryOutStockMonth && i.zero_based_seqno <= 0).Select(a => a.actual_out_qty.Value).Sum() + MQty) / (replenishmentDto.HistoryOutStockMonth + 1);
+            return (list.Where(i => i.number == itemNum && i.distributionchannel== distributionchannel && i.zero_based_seqno > 1 - replenishmentDto.HistoryOutStockMonth && i.zero_based_seqno <= 0).Select(a => a.actual_out_qty.Value).Sum() + MQty) / (replenishmentDto.HistoryOutStockMonth + 1);
         }
 
         public double CalcVariance(List<MonthlyShipmentPlan> list, string itemNum, int? erp_cls,decimal? monthl_avg_demand, List<InvTransHist> pickbilllist = null)
@@ -3472,33 +3806,6 @@ namespace Business.Replenishment
             return weekOfYear;
         }
 
-        /// <summary>
-        /// 获取指定日期在该月的第几周
-        /// </summary>
-        /// <param name="day"></param>
-        /// <param name="WeekStart">1表示周一至周日为一周,2表示周日至周六为一周</param>
-        /// <returns></returns>
-        public static int WeekOfMonth(DateTime day, int WeekStart)
-        {
-            DateTime FirstofMonth = Convert.ToDateTime(day.Date.Year + "-" + day.Date.Month + "-" + 1);
-
-            int i = (int)FirstofMonth.Date.DayOfWeek;
-            if (i == 0)
-            {
-                i = 7;
-            }
-
-            if (WeekStart == 1)
-            {
-                return (day.Date.Day + i - 2) / 7 + 1;
-            }
-            if (WeekStart == 2)
-            {
-                return (day.Date.Day + i - 1) / 7;
-
-            }
-            return 0;
-        }
         //获取上周开始时间
         public static DateTime getPreWeekStartTime()
         {

+ 7 - 4
MicroServices/Business/Business.Application/ResourceExamineManagement/MorderAppService.cs

@@ -256,19 +256,22 @@ namespace Business.ResourceExamineManagement
                 if (morderDataList.Sum(x => x.morder_production_number.GetValueOrDefault()) - morderDataList.Sum(x => x.inventory_number.GetValueOrDefault()) < Quantity)
                 {
                     //再找没有被计划占用的子工单
-                    morderDataList.AddRange(mo_Mes_Morders.Where(x => x.product_code == itemNumber && x.parent_id.GetValueOrDefault() == 0 && x.morder_type == MorderEnum.JhMorder && totime < x.moentry_sys_etime.GetValueOrDefault() && x.moentry_sys_etime.GetValueOrDefault() < DeliverDate &&
-            (x.morder_production_number - x.inventory_number - mes_mooccupyList.Where(p => p.moo_moid.GetValueOrDefault() == x.mysql_id)?.Sum(m => m.moo_qty)) > Quantity)
-             .OrderByDescending(x => x.planner_end_date).ToList());
+                    morderDataList.AddRange(mo_Mes_Morders.Where(x => x.product_code == itemNumber && x.parent_id.GetValueOrDefault() == 0 && x.morder_type == MorderEnum.JhMorder && totime < x.moentry_sys_etime.GetValueOrDefault() && x.moentry_sys_etime.GetValueOrDefault() < DeliverDate).OrderByDescending(x => x.planner_end_date).ToList());
                 }
             }
             else
             {
                 //成品进入,只找没有父级的工单,并且是计划工单
+                //先判断是否有数量直接满足的
                 morderDataList = mo_Mes_Morders.Where(x => x.product_code == itemNumber && x.parent_id.GetValueOrDefault() == 0 && x.morder_type == MorderEnum.JhMorder && totime < x.moentry_sys_etime.GetValueOrDefault() && x.moentry_sys_etime.GetValueOrDefault() < DeliverDate &&
             (x.morder_production_number - x.inventory_number - mes_mooccupyList.Where(p => p.moo_moid.GetValueOrDefault() == x.mysql_id)?.Sum(m => m.moo_qty)) > Quantity)
              .OrderByDescending(x => x.planner_end_date).ToList();
+                if (morderDataList.Any())
+                {
+                    //直接去占用数量不满足的工单
+                    morderDataList = mo_Mes_Morders.Where(x => x.product_code == itemNumber && x.parent_id.GetValueOrDefault() == 0 && x.morder_type == MorderEnum.JhMorder && totime < x.moentry_sys_etime.GetValueOrDefault() && x.moentry_sys_etime.GetValueOrDefault() < DeliverDate).ToList().OrderByDescending(x => x.planner_end_date).ToList();
+                }
             }
-            
 
             var QuantityNumber = 0.00m;
             //存在此数据满足当前BOM交付找到最早日期工单,则返回无需后续继续检查。

+ 30 - 36
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -1604,7 +1604,7 @@ namespace Business.ResourceExamineManagement
                 List<RoutingOpDetail> allRoutings = _routingOpDetail.Select(p => moderlist.Select(m => m.product_code).Contains(p.RoutingCode));
                 List<b_bom_child_examine> childExamineList = _mysql_bom_child_examine.GetListAsync(c => exmResult.Select(x => x.Id).Contains(c.examine_id.GetValueOrDefault())).Result;
                 //同步工单
-                CreateWorkOrdDates(moderlist, allRoutings, workOrds, workOrdRoutings, workOrdDetails, exmResult, childExamineList);
+                CreateWorkOrdDates(moderlist, WriteMoentry, allRoutings, workOrds, workOrdRoutings, workOrdDetails, exmResult, childExamineList);
             }
             //当前订单号所关联的最新计算结果里的占用记录
             List<mo_mes_mooccupy> mooccupyList = await _mes_mooccupy.GetListAsync(s => seIds.Contains(s.moo_id_billid.Value) && bangidList.Contains(s.bang_id.Value));
@@ -1617,9 +1617,9 @@ namespace Business.ResourceExamineManagement
             if (prmainlist.Any())
             {
                 var nbrlistDto = _serialNumberAppService.GetBillNo(prmainlist[0].factory_id.ToString(), "PR", prmainlist.Count, "admin", 1);
-                
+
                 int index = 0;
-                
+
                 foreach (var p in prmainlist)
                 {
                     if (nbrlistDto[index] != null)
@@ -1638,25 +1638,24 @@ namespace Business.ResourceExamineManagement
                             p.pr_purchasenumber = list[0].supplier_number;
                         }
                     }
-                    
                 }
                 var prapplyList = prmainlist.Where(s => s.IsRequireGoods != 1).ToList();
                 if (prapplyList.Any())
                 {
+                    //请购单插入事务
                     var rstSeqId = _serialNumberAppService.GetSeqIdList(prapplyList[0].factory_id.ToString(), 1, 1);
                     long seqId = 0;
                     if (long.TryParse(rstSeqId, out seqId))
                     {
                         prapplyList.ForEach(p =>
                         {
-                            seqSql += "insert QadTracking(Domain,SeqID,TransType,Subject,[Order],Int1,CreateTime,CreateUser,UpdateTime,UpdateUser) value('" + p.factory_id.ToString() +
-                                "'," + seqId + ",'nbr-pr-mes','请购单'," + p.pr_billno + " [Order]," + p.Id.ToString() + " as Int1,getdate() as CreateTime,'',getdate() as UpdateTime,'');";
+                            seqSql += "insert QadTracking(Ufld1,Domain,SeqID,TransType,Subject,[Order],Int1,CreateTime,CreateUser,UpdateTime,UpdateUser) value('A','" + p.factory_id.ToString() +
+                                "'," + seqId.ToString() + ",'nbr-pr-mes','请购单'," + p.pr_billno + " [Order]," + p.Id.ToString() + " as Int1,getdate() as CreateTime,'',getdate() as UpdateTime,'');";
                             seqId++;
                         });
                     }
-                    }
                 }
-            
+            }
             
             List<mo_ic_item_stockoccupy> item_stockoccupy = await _ic_item_stockoccupy.GetListAsync(s => seIds.Contains(s.orderentry_id.Value) && bangidList.Contains(s.bang_id));
 
@@ -2311,6 +2310,9 @@ namespace Business.ResourceExamineManagement
                 index++;
             }
             List<PurOrdMaster> purOrdMasters = new List<PurOrdMaster>();
+
+            var itemMasterList = _itemMaster.Select(s => itemList.Select(x => x.number).Contains(s.ItemNum)).ToList();
+
             polist.ForEach(a =>
             {
                 purOrdMasters.Add(new PurOrdMaster
@@ -2336,6 +2338,7 @@ namespace Business.ResourceExamineManagement
             List<PurOrdDetail> purOrdDetails = new List<PurOrdDetail>();
             podetaillist.ForEach(a =>
             {
+                var refItem = itemMasterList.Find(x => x.ItemNum == a.ItemNum);
                 purOrdDetails.Add(new PurOrdDetail
                 {
                     Domain = domain,
@@ -2351,7 +2354,8 @@ namespace Business.ResourceExamineManagement
                     PurCost = a.price.GetValueOrDefault(),
                     StdCost = a.price.GetValueOrDefault() / (1 + a.rate.GetValueOrDefault()),
                     TaxRate = a.rate.GetValueOrDefault(),
-                    DueDate = a.rarrdate
+                    DueDate = a.rarrdate,
+                    Rev = refItem?.Rev
                 });
             });
             poaction.poDetailList.AddRange(purOrdDetails);
@@ -3754,13 +3758,11 @@ namespace Business.ResourceExamineManagement
             if (headAccount.Any())
             {
                 newNbr.User1 = string.Join(",", headAccount.Distinct());
-                string[] user2 = headAccount.ToArray();
+                string[] user2 = headAccount.Distinct().ToArray();
                 newNbr.User2 = JsonConvert.SerializeObject(user2);
             }
         }
 
-
-
         public void AsyncItemStockFromWMS(List<crm_seorderentry> sentrys)
         {
             //产品编码
@@ -3889,10 +3891,13 @@ namespace Business.ResourceExamineManagement
                 string seqSql = "";
                var weekplan = _replenishmentWeekPlan.GetListAsync(s => s.factory_id.ToString() == domain && workOrdMasters.Select(x => x.WorkOrd).Contains(s.OrderNO)).Result;
                 var worklistDto = _serialNumberAppService.GetBillNo(domain, "WOlot", workOrdMasters.Count, userAccount, 1);
-                var seqid = _serialNumberAppService.GetSeqIdList(domain, 1, 1);
+                var rstSeqId = _serialNumberAppService.GetSeqIdList(domain, 1, 1);
+                long seqId = 0;
+                long.TryParse(rstSeqId, out seqId);
+
                 int index = 0;
-                int idx = 0;
-                workOrdMasters.ForEach(p => { 
+                workOrdMasters.ForEach(p =>
+                {
                     p.Status = "r";
                     if (worklistDto.Any())
                     {
@@ -3907,17 +3912,8 @@ namespace Business.ResourceExamineManagement
                         }
                         index++;
                     }
-                    /*if (seqidlist.Any())
-                    {
-                        if (seqidlist.Any())
-                        {
-                            if (seqidlist[idx] != null)
-                            {
-                                seqSql += "insert QadTracking(Domain,SeqID,TransType,Subject,[Order],Int1,CreateTime,CreateUser,UpdateTime,UpdateUser) select '" + domain + "'," + seqidlist[idx].NbrResult + ",'nbr-wo-mes','工单',WorkOrd [Order],RecID as Int1,getdate() as CreateTime,CreateUser,getdate() as UpdateTime,UpdateUser from WorkOrdMaster where RecID=" + p.RecID.ToString() + ";";
-                                idx++;
-                            }
-                        }
-                    }*/
+                    seqSql += "insert QadTracking(Ufld1,Domain,SeqID,TransType,Subject,[Order],Int1,CreateTime,CreateUser,UpdateTime,UpdateUser) select 'A','" + domain + "'," + seqId.ToString() + ",'nbr-wo-mes','工单',WorkOrd [Order],RecID as Int1,getdate() as CreateTime,CreateUser,getdate() as UpdateTime,UpdateUser from WorkOrdMaster where RecID=" + p.RecID.ToString() + ";";
+                    seqId++;
                 });
                 
                 var nbrlistDto = _serialNumberAppService.GetBillNo(workOrdMasters[0].Domain, "SM", nbrMasterList.Count, userAccount, 1);
@@ -3943,8 +3939,6 @@ namespace Business.ResourceExamineManagement
                 //根据领料单生成一次工单的数据占用
                 List<ic_item_stockoccupy> insertOccuyy = new List<ic_item_stockoccupy>();
 
-                var seqId = _serialNumberAppService.GetSeqIdList(workOrdMasters[0].Domain, 1, 1);
-                int sidx = 0;
                 nbrMasterList.ForEach(s =>
                 {
                     var nbrdtls = nbrDetailList.Where(a => a.Nbr == s.Nbr).ToList();
@@ -3955,7 +3949,8 @@ namespace Business.ResourceExamineManagement
                         itemStockoccupyDto.morder_mo = s.WorkOrd;
                         itemStockoccupyDto.occupy_time = DateTime.Now;
                         var nbrItem = icitem.Find(c => c.number == x.ItemNum);
-                        if(nbrItem!= null) {
+                        if (nbrItem != null)
+                        {
                             itemStockoccupyDto.icitem_id = nbrItem.Id;
                             itemStockoccupyDto.icitem_number = nbrItem.number;
                             itemStockoccupyDto.tenant_id = nbrItem.tenant_id;
@@ -3965,12 +3960,9 @@ namespace Business.ResourceExamineManagement
                             itemStockoccupyDto.quantity = x.CurrQtyOpened.GetValueOrDefault();
                             insertOccuyy.Add(itemStockoccupyDto);
                         }
-                    });
-                    /*if (seqIdlist[sidx] != null)
-                    {
-                        seqSql += "insert QadTracking(Domain,SeqID,TransType,Subject,[Order],Int1,Ufld1,Ufld2,CreateTime,CreateUser,UpdateTime,UpdateUser) select '" + domain + "'," + seqIdlist[sidx].NbrResult + " as SeqID,'nbr-sm-mes','领料申请单',Nbr as [Order],RecID as Int1,'A' as Ufld1,'sm' as Ufld2,getdate() as CreateTime,CreateUser,getdate() as UpdateTime,UpdateUser from NbrMaster where RecID=" + s.RecID + ";";
-                        sidx++;
-                    }*/
+                    }); 
+                    seqSql += "insert QadTracking(Ufld1,Domain,SeqID,TransType,Subject,[Order],Int1,Ufld1,Ufld2,CreateTime,CreateUser,UpdateTime,UpdateUser) select 'A','" + domain + "'," + seqId.ToString() + " as SeqID,'nbr-sm-mes','领料申请单',Nbr as [Order],RecID as Int1,'A' as Ufld1,'sm' as Ufld2,getdate() as CreateTime,CreateUser,getdate() as UpdateTime,UpdateUser from NbrMaster where RecID=" + s.RecID + ";";
+                    seqId++;
                 });
 
                 //获取工单工艺路径数据
@@ -4030,7 +4022,7 @@ namespace Business.ResourceExamineManagement
         /// </summary>
         /// <param name="morders"></param>
         /// <param name="allRoutings">工艺路线数据</param>
-        public void CreateWorkOrdDates(List<mes_morder> morders, List<RoutingOpDetail> allRoutings, List<WorkOrdMaster> workOrds, List<WorkOrdRouting> workOrdRoutings, List<WorkOrdDetail> workOrdDetails, List<b_examine_result> exmResult, List<b_bom_child_examine> childExamineList)
+        public void CreateWorkOrdDates(List<mes_morder> morders, List<mo_mes_moentry> WriteMoentry, List<RoutingOpDetail> allRoutings, List<WorkOrdMaster> workOrds, List<WorkOrdRouting> workOrdRoutings, List<WorkOrdDetail> workOrdDetails, List<b_examine_result> exmResult, List<b_bom_child_examine> childExamineList)
         {
             //工单主表
             WorkOrdMaster workOrd;
@@ -4057,6 +4049,8 @@ namespace Business.ResourceExamineManagement
                 workOrd.IsConfirm = true;
                 workOrd.CreateTime = DateTime.Now;
                 workOrd.Typed = "";
+                var me = WriteMoentry.Find(s => s.moentry_moid == item.Id);
+                workOrd.SalesJob = me?.fbill_no;
                 workOrds.Add(workOrd);
 
                 //添加工单工艺路线数据

+ 13 - 14
MicroServices/Business/Business.Application/SystemJobManagement/SystemJobAppService.cs

@@ -315,18 +315,18 @@ namespace Business.SystemJobManagement
                         var customer = new crm_customer
                         {
                             customer_no = custList[i].Cust,
-                            customer_name = address is null ? address.Name : "",
-                            telephone = address is null ? address.Telephone : "",
-                            email = address is null ? address.AttentionEmail : "",
-                            contact = address is null ? address.Attention1 : "",
-                            post_code = address is null ? address.Post : "",
-                            country = address is null ? address.Country : "",
-                            province = address is null ? address.State : "",
-                            city = address is null ? address.City : "",
-                            region = address is null ? address.State : "",
-                            address = address is null ? address.Address1 : "",
+                            customer_name = address is not null ? address.Name : "",
+                            telephone = address is not null ? address.Telephone : "",
+                            email = address is not null ? address.AttentionEmail : "",
+                            contact = address is not null ? address.Attention1 : "",
+                            post_code = address is not null ? address.Post : "",
+                            country = address is not null ? address.Country : "",
+                            province = address is not null ? address.State : "",
+                            city = address is not null ? address.City : "",
+                            region = address is not null ? address.State : "",
+                            address = address is not null ? address.Address1 : "",
                             short_name = custList[i].SortName,
-                            carrying_aos = Convert.ToInt32(custList[i].CustShippingLT),
+                            carrying_aos = custList[i].CustShippingLT.GetValueOrDefault(),
                             currency = custList[i].Curr,
                             employee_name = custList[i].Salesperson1,
                             factory_id = factory_id,
@@ -629,7 +629,7 @@ namespace Business.SystemJobManagement
                             number = custList[i].ItemNum, //物料编码
                             name = custList[i].Descr, //物料名称
                             model = custList[i].Descr1,//规格型号
-                            fversion = "",//版本号
+                            fversion = custList[i].Rev,//版本号
                             //ext.FErpClsID == "配置类" ? 0 : ext.FErpClsID == "自制" ? 1 : ext.FErpClsID == "委外" ? 2 : ext.FErpClsID == "外购" ? 3 : ext.FErpClsID == "虚拟" ? 4 : ext.FErpClsID == "费用" ? 5 : ext.FErpClsID == "服务" ? 6 : -1;
                             //erp_cls = custList[i].PurMfg == "P" ? 3 : 1,//物料属性
                             erp_cls = custList[i].PurMfg == "P" ? 3 : 1,//物料属性
@@ -666,7 +666,6 @@ namespace Business.SystemJobManagement
                             stock_leadtime = 1,
                             production_leadtime = 4,
                             order_leadtime = 4,
-
                             fix_leadtime = 1,
                             order_inter_val = 1,
                             lead_time = 1,
@@ -726,7 +725,7 @@ namespace Business.SystemJobManagement
                     {
                         ic_item.name = custList[i].Descr;
                         ic_item.model = custList[i].Descr1;//规格型号
-                        ic_item.fversion = "";//版本号
+                        ic_item.fversion = custList[i].Rev;//版本号
                         ic_item.erp_cls = custList[i].PurMfg == "P" ? 3 : 1;//物料属性
                         ic_item.erp_cls_name = custList[i].PurMfg == "P" ? "外购" : "自制";//物料属性名称
                         ic_item.unit = custList[i].UM;//单位

+ 0 - 38
MicroServices/Business/Business.Application/WMS/SyncKingdeeAppService.cs

@@ -1,38 +0,0 @@
-using Business.Domain;
-using Microsoft.Extensions.Configuration;
-using System;
-using System.Collections.Generic;
-using Volo.Abp.Application.Services;
-using Volo.Abp.DependencyInjection;
-using Volo.Abp.Domain.Repositories;
-using Volo.Abp.MultiTenancy;
-
-namespace Business.ResourceExamineManagement
-{
-    public class SyncKingdeeAppService : ApplicationService, ISyncKingdeeAppService, ITransientDependency
-    {
-        private readonly ICurrentTenant _currentTenant;
-        private readonly IRepository<in_kd_material,long> _mysql_ic_item;
-
-        public SyncKingdeeAppService(IRepository<in_kd_material, long> mysql_ic_item, ICurrentTenant currentTenant) 
-        {
-            _mysql_ic_item = mysql_ic_item;
-            _currentTenant = currentTenant;
-        }
-        public string SyncSupplier()
-        {
-            IConfiguration configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory).AddJsonFile("appsettings.json").Build();
-            var test111=configuration["AuthServer:Authority"];
-            List<mes_technique> _Techniques= new List<mes_technique>();
-            _Techniques.Add(new mes_technique { level = 1, tech_name = "1111" });
-            _Techniques.Add(new mes_technique { level = 2, tech_name = "2222" });
-            _Techniques.Add(new mes_technique { level = 3, tech_name = "333" });
-            return "";
-        }
-
-       public string SyncMaterial()
-        {
-            throw new NotImplementedException();
-        }
-    }
-}

+ 3 - 4
MicroServices/Business/Business.Domain/Business.Domain.csproj

@@ -17,8 +17,11 @@
 
   <ItemGroup>
     <Compile Remove="BaseData\**" />
+    <Compile Remove="StructuredDB\Sys\**" />
     <EmbeddedResource Remove="BaseData\**" />
+    <EmbeddedResource Remove="StructuredDB\Sys\**" />
     <None Remove="BaseData\**" />
+    <None Remove="StructuredDB\Sys\**" />
   </ItemGroup>
 
   <ItemGroup>
@@ -34,8 +37,4 @@
     <ProjectReference Include="..\Business.Core\Business.Core.csproj" />
   </ItemGroup>
 
-  <ItemGroup>
-    <Folder Include="StructuredDB\Sys\" />
-  </ItemGroup>
-
 </Project>

+ 0 - 202
MicroServices/Business/Business.Domain/StructuredDB/Ext/ext_xref.cs

@@ -1,202 +0,0 @@
-using Business.Core.Attributes;
-using Microsoft.EntityFrameworkCore;
-using System.ComponentModel.DataAnnotations;
-using Volo.Abp.Domain.Entities;
-
-namespace Business.Domain
-{
-    /// <summary>
-    /// ext_xref
-    /// </summary>
-    [CollectionName("dopbase", "ext_xref")]
-    [Comment("ext_xref")]
-    public class ext_xref : Entity<long>
-    {
-        public ext_xref()
-        {
-        }
-
-        public ext_xref(long Id) : base(Id)
-        {
-        }
-        /// <summary>
-        /// DOP表名
-        /// </summary>
-        [StringLength(32)]
-        [Comment("DOP表名")]
-        public string dop_table_name { get; set; }
-        /// <summary>
-        /// DOP表ID
-        /// </summary>
-        [Comment("DOP表ID")]
-        public long? dop_id { get; set; }
-
-        /// <summary>
-        /// 表列1名
-        /// </summary>
-        [StringLength(32)]
-        [Comment("表列1名")]
-        public string dop_col1_name { get; set; }
-        /// <summary>
-        /// 表列1值
-        /// </summary>
-        [StringLength(80)]
-        [Comment("表列1值")]
-        public string dop_col1_value { get; set; }
-
-        /// <summary>
-        /// 表列2名
-        /// </summary>
-        [StringLength(32)]
-        [Comment("表列2名")]
-        public string dop_col2_name { get; set; }
-        /// <summary>
-        /// 表列2值
-        /// </summary>
-        [StringLength(80)]
-        [Comment("表列2值")]
-        public string dop_col2_value { get; set; }
-
-        /// <summary>
-        /// 表列3名
-        /// </summary>
-        [StringLength(32)]
-        [Comment("表列3名")]
-        public string dop_col3_name { get; set; }
-        /// <summary>
-        /// 表列3值
-        /// </summary>
-        [StringLength(80)]
-        [Comment("表列3值")]
-        public string dop_col3_value { get; set; }
-
-        /// <summary>
-        /// 表列4名
-        /// </summary>
-        [StringLength(32)]
-        [Comment("表列4名")]
-        public string dop_col4_name { get; set; }
-        /// <summary>
-        /// 表列4值
-        /// </summary>
-        [StringLength(80)]
-        [Comment("表列4值")]
-        public string dop_col4_value { get; set; }
-
-        /// <summary>
-        /// 表列5名
-        /// </summary>
-        [StringLength(32)]
-        [Comment("表列5名")]
-        public string dop_col5_name { get; set; }
-        /// <summary>
-        /// 表列5值
-        /// </summary>
-        [StringLength(80)]
-        [Comment("表列5值")]
-        public string dop_col5_value { get; set; }
-
-
-        /// <summary>
-        /// 其它系统名
-        /// </summary>
-        [StringLength(32)]
-        [Comment("其它系统名")]
-        public string other_sys_name { get; set; }
-
-        /// <summary>
-        /// 其它表名
-        /// </summary>
-        [StringLength(32)]
-        [Comment("其它表名")]
-        public string other_table_name { get; set; }
-
-        /// <summary>
-        /// 它表ID
-        /// </summary>
-        [Comment("它表ID")]
-        public long? other_id { get; set; }
-
-
-        /// <summary>
-        /// 它列1名
-        /// </summary>
-        [StringLength(32)]
-        [Comment("它列1名")]
-        public string other_col1_name { get; set; }
-        /// <summary>
-        /// 它列1名
-        /// </summary>
-        [StringLength(80)]
-        [Comment("它列1名")]
-        public string other_col1_value { get; set; }
-
-        /// <summary>
-        /// 它列2名
-        /// </summary>
-        [StringLength(32)]
-        [Comment("它列2名")]
-        public string other_col2_name { get; set; }
-        /// <summary>
-        /// 它列2名
-        /// </summary>
-        [StringLength(80)]
-        [Comment("它列2名")]
-        public string other_col2_value { get; set; }
-
-        /// <summary>
-        /// 它列3名
-        /// </summary>
-        [StringLength(32)]
-        [Comment("它列3名")]
-        public string other_col3_name { get; set; }
-        /// <summary>
-        /// 它列3名
-        /// </summary>
-        [StringLength(80)]
-        [Comment("它列3名")]
-        public string other_col3_value { get; set; }
-
-
-        /// <summary>
-        /// 它列4名
-        /// </summary>
-        [StringLength(32)]
-        [Comment("它列4名")]
-        public string other_col4_name { get; set; }
-        /// <summary>
-        /// 它列4名
-        /// </summary>
-        [StringLength(80)]
-        [Comment("它列4名")]
-        public string other_col4_value { get; set; }
-
-
-        /// <summary>
-        /// 它列5名
-        /// </summary>
-        [StringLength(32)]
-        [Comment("它列5名")]
-        public string other_col5_name { get; set; }
-        /// <summary>
-        /// 它列5名
-        /// </summary>
-        [StringLength(80)]
-        [Comment("它列5名")]
-        public string other_col5_value { get; set; }
-
-        /// <summary>
-        /// 备注信息
-        /// </summary>
-        [Comment("备注信息")]
-        [StringLength(255)]
-        public string note { get; set; }
-
-        /// <summary>
-        /// DOP系统名
-        /// </summary>
-        [Comment("DOP系统名")]
-        [StringLength(32)]
-        public string dop_sys_name { get; set; }
-    }
-}

+ 0 - 206
MicroServices/Business/Business.Domain/StructuredDB/Ext/in_kd_bom.cs

@@ -1,206 +0,0 @@
-using Business.Core.Attributes;
-using Business.Core.Utilities;
-using Microsoft.EntityFrameworkCore;
-using System.ComponentModel.DataAnnotations;
-using Volo.Abp.Domain.Entities;
-
-namespace Business.Domain
-{
-    /// <summary>
-    /// 物料清单
-    /// </summary>
-    [CollectionName("dopbase", "in_kd_bom")]
-    [Comment("物料清单")]
-    public class in_kd_bom : Entity<long>
-    {
-        [Key]
-        public override long Id
-        {
-            get
-            {
-                if (Id == 0)
-                    return new SnowFlake().NextId();
-                return Id;
-            }
-        }
-        /// <summary>
-        /// 使用组织
-        /// </summary>
-        [StringLength(80)]
-        [Comment("使用组织")]
-        public string FUseOrgId_Name { get; set; }
-
-        /// <summary>
-        /// BOM版本
-        /// </summary>
-        [StringLength(80)]
-        [Comment("BOM版本")]
-        public string FNumber { get; set; }
-        /// <summary>
-        /// BOM简称
-        /// </summary>
-        [StringLength(10)]
-        [Comment("BOM简称")]
-        public string FName_2052 { get; set; }
-
-        /// <summary>
-        /// BOM分类
-        /// </summary>
-        [StringLength(80)]
-        [Comment("BOM分类")]
-        public string FBOMCATEGORY { get; set; }
-
-        /// <summary>
-        /// 父项物料编码
-        /// </summary>
-        [StringLength(80)]
-        [Comment("父项物料编码")]
-        public string FMATERIALID_Name { get; set; }
-
-        /// <summary>
-        /// 物料名称
-        /// </summary>
-        [StringLength(80)]
-        [Comment("物料名称")]
-        public string FITEMNAME { get; set; }
-
-        /// <summary>
-        /// 规格型号
-        /// </summary>
-        [StringLength(80)]
-        [Comment("规格型号")]
-        public string FITEMMODEL { get; set; }
-
-        /// <summary>
-        /// 数据状态
-        /// </summary>
-        [StringLength(10)]
-        [Comment("数据状态")]
-        public string FITEMPPROPERTY { get; set; }
-
-        /// <summary>
-        /// 项次
-        /// </summary>
-        [Comment("项次")]
-        public int? FReplaceGroup { get; set; }
-
-        /// <summary>
-        /// 替代优先级
-        /// </summary>
-        [Comment("替代优先级")]
-        public int? FReplacePriority { get; set; }
-
-
-        /// <summary>
-        /// 替代方案编码
-        /// </summary>
-        [Comment("80")]
-        [StringLength(255)]
-        public string FSubstitutionId_Name { get; set; }
-
-        /// <summary>
-        /// 子项物料编码
-        /// </summary>
-        [Comment("子项物料编码")]
-        [StringLength(80)]
-        public string FMATERIALIDCHILD_Name { get; set; }
-
-        /// <summary>
-        /// 子项物料名称
-        /// </summary>
-        [StringLength(80)]
-        [Comment("子项物料名称")]
-        public string FCHILDITEMNAME { get; set; }
-
-        /// <summary>
-        /// 子项规格型号
-        /// </summary>
-        [Comment("子项规格型号")]
-        [StringLength(80)]
-        public string FCHILDITEMMODEL { get; set; }
-
-        /// <summary>
-        /// 供应类型
-        /// </summary>
-        [Comment("供应类型")]
-        [StringLength(1)]
-        public string FSupplyType { get; set; }
-
-        /// <summary>
-        /// 子项单位
-        /// </summary>
-        [Comment("子项单位")]
-        [StringLength(10)]
-        public string FCHILDUNITID_Name { get; set; }
-
-
-        /// <summary>
-        /// 供应组织
-        /// </summary>
-        [StringLength(80)]
-        [Comment("供应组织")]
-        public string FChildSupplyOrgId_Name { get; set; }
-
-        /// <summary>
-        /// 用量:分子
-        [Comment("用量:分子")]
-        [Precision(23, 10)]
-        public decimal? FNUMERATOR { get; set; }
-        /// <summary>
-        /// 用量:分母
-        /// </summary>
-        [Comment("用量:分母")]
-        [Precision(23, 10)]
-        public decimal? FDENOMINATOR { get; set; }
-
-
-        /// <summary>
-        /// 作业
-        /// </summary>
-        [Comment("作业")]
-        [StringLength(80)]
-        public string FPROCESSID_Name { get; set; }
-
-        /// <summary>
-        /// 替代策略
-        /// </summary>
-        [StringLength(80)]
-        [Comment("替代策略")]
-        public string FReplacePolicy { get; set; }
-
-
-        /// <summary>
-        /// 替代方式
-        /// </summary>
-        [Comment("替代方式")]
-        [StringLength(80)]
-        public string FReplaceType { get; set; }
-
-        /// <summary>
-        /// 替代主料
-        /// </summary>
-        [Comment("替代主料")]
-        [StringLength(1)]
-        public string FIskeyItem { get; set; }
-
-        /// <summary>
-        /// 替代方案名称
-        /// </summary>
-        [Comment("替代方案名称")]
-        [StringLength(80)]
-        public string FSubstitutionName { get; set; }
-
-        /// <summary>
-        /// 子项物料描述
-        /// </summary>
-        [StringLength(255)]
-        [Comment("子项物料描述")]
-        public string F_ZXWLMS { get; set; }
-        /// <summary>
-        /// 子项物料品牌
-        /// </summary>
-        [Comment("子项物料品牌")]
-        [StringLength(255)]
-        public string F_ZXWLPP { get; set; }
-    }
-}

+ 0 - 1810
MicroServices/Business/Business.Domain/StructuredDB/Ext/in_kd_material.cs

@@ -1,1810 +0,0 @@
-using Business.Core.Attributes;
-using Microsoft.EntityFrameworkCore;
-using System;
-using System.ComponentModel.DataAnnotations;
-using Volo.Abp.Domain.Entities;
-
-namespace Business.Domain
-{
-    /// <summary>
-    /// 物料
-    /// </summary>
-    [CollectionName("dopbase", "in_kd_material")]
-    [Comment("物料")]
-    public class in_kd_material : Entity<long>
-    {
-        /// <summary>
-        /// 创建组织
-        /// </summary>
-        [StringLength(80)]
-        [Comment("创建组织")]
-        public string FCreateOrgId_Name { get; set; }
-        /// <summary>
-        /// 使用组织
-        /// </summary>
-        [StringLength(80)]
-        [Comment("使用组织")]
-        public string FUseOrgId_Name { get; set; }
-
-        /// <summary>
-        /// 编码
-        /// </summary>
-        [StringLength(80)]
-        [Comment("编码")]
-        public string FNumber { get; set; }
-        /// <summary>
-        /// 物料来源
-        /// </summary>
-        [StringLength(10)]
-        [Comment("物料来源")]
-        public string FDataSource { get; set; }
-        /// <summary>
-        /// 名称
-        /// </summary>
-        [StringLength(80)]
-        [Comment("名称")]
-        public string FName_2052 { get; set; }
-
-        /// <summary>
-        /// 规格型号
-        /// </summary>
-        [StringLength(255)]
-        [Comment("规格型号")]
-        public string FSpecification_2052 { get; set; }
-
-        /// <summary>
-        /// 助记码
-        /// </summary>
-        [StringLength(80)]
-        [Comment("助记码")]
-        public string FMnemonicCode { get; set; }
-
-        /// <summary>
-        /// 旧物料编码
-        /// </summary>
-        [StringLength(80)]
-        [Comment("旧物料编码")]
-        public string FOldNumber { get; set; }
-
-        /// <summary>
-        /// 描述
-        /// </summary>
-        [StringLength(255)]
-        [Comment("描述")]
-        public string FDescription_2052 { get; set; }
-        /// <summary>
-        /// 物料分组
-        /// </summary>
-        [StringLength(80)]
-        [Comment("物料分组")]
-        public string FMaterialGroup_Name { get; set; }
-
-        /// <summary>
-        /// 物料分组编码
-        /// </summary>
-        [StringLength(80)]
-        [Comment("物料分组编码")]
-        public string FMaterialGroup { get; set; }
-
-        /// <summary>
-        /// 数据状态
-        /// </summary>
-        [Comment("数据状态")]
-        [StringLength(255)]
-        public string FUseStatus { get; set; }
-
-        /// <summary>
-        /// 禁用状态
-        /// </summary>
-        [Comment("禁用状态")]
-        [StringLength(10)]
-        public string FForbidStatus { get; set; }
-
-        /// <summary>
-        /// 创建人
-        /// </summary>
-        [StringLength(80)]
-        [Comment("创建人")]
-        public string FCreatorId_Name { get; set; }
-        /// <summary>
-        /// 创建日期
-        /// </summary>
-        [Comment("创建日期")]
-        public DateTime? FCreateDate { get; set; }
-
-        /// <summary>
-        /// 修改人
-        /// </summary>
-        [Comment("修改人")]
-        [StringLength(80)]
-        public string FModifierId_Name { get; set; }
-        /// <summary>
-        /// 修改日期
-        /// </summary>
-        [Comment("修改日期")]
-        public DateTime? FModifyDate { get; set; }
-        /// <summary>
-        /// 审核人
-        /// </summary>
-        [StringLength(80)]
-        [Comment("审核人")]
-        public string FApproverId_Name { get; set; }
-
-        /// <summary>
-        /// 审核日期
-        [Comment("审核日期")]
-        public DateTime? FApproveDate { get; set; }
-        /// <summary>
-        /// 禁用人
-        /// </summary>
-        [Comment("禁用人")]
-        [StringLength(80)]
-        public string FForbidderId_Name { get; set; }
-        /// <summary>
-        /// 禁用日期
-        /// </summary>
-        [Comment("禁用日期")]
-        public DateTime? FForbidDate { get; set; }
-
-        /// <summary>
-        /// 物料属性
-        /// </summary>
-        [StringLength(80)]
-        [Comment("物料属性")]
-        public string FErpClsID { get; set; }
-        /// <summary>
-        /// 存货类别
-        /// </summary>
-        [Comment("存货类别")]
-        [StringLength(80)]
-        public string FCategoryID_Name { get; set; }
-        /// <summary>
-        /// 税分类
-        /// </summary>
-        [Comment("税分类")]
-        [StringLength(80)]
-        public string FTaxType_Name { get; set; }
-        /// <summary>
-        /// 默认税率
-        /// </summary>
-        [Comment("默认税率")]
-        [StringLength(80)]
-        public string FTaxRateId_Name { get; set; }
-        /// <summary>
-        /// 基本单位
-        /// </summary>
-        [StringLength(80)]
-        [Comment("基本单位")]
-        public string FBaseUnitId_Name { get; set; }
-        /// <summary>
-        /// 允许采购
-        /// </summary>
-        [Comment("允许采购")]
-        [StringLength(1)]
-        public string FIsPurchase { get; set; }
-        /// <summary>
-        /// 允许库存
-        /// </summary>
-        [StringLength(1)]
-        [Comment("允许库存")]
-        public string FIsInventory { get; set; }
-        /// <summary>
-        /// 允许委外
-        /// </summary>
-        [Comment("允许委外")]
-        [StringLength(1)]
-        public string FIsSubContract { get; set; }
-        /// <summary>
-        /// 允许销售
-        /// </summary>
-        [Comment("允许销售")]
-        [StringLength(1)]
-        public string FIsSale { get; set; }
-
-        /// <summary>
-        /// FIsProduce
-        /// </summary>
-        [Comment("FIsProduce")]
-        [StringLength(1)]
-        public string FIsProduce { get; set; }
-
-        /// <summary>
-        /// 允许资产
-        /// </summary>
-        [Comment("允许资产")]
-        [StringLength(1)]
-        public string FIsAsset { get; set; }
-
-        /// <summary>
-        /// 条码
-        /// </summary>
-        [Comment("条码")]
-        [StringLength(80)]
-        public string FBARCODE { get; set; }
-        /// <summary>
-        /// 毛重
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("毛重")]
-        public decimal? FGROSSWEIGHT { get; set; }
-        /// <summary>
-        /// 净重
-        /// </summary>
-        [Comment("净重")]
-        [Precision(23, 10)]
-        public decimal? FNETWEIGHT { get; set; }
-        /// <summary>
-        /// 尺寸单位
-        /// </summary>
-        [Comment("尺寸单位")]
-        [StringLength(10)]
-        public string FVOLUMEUNITID_Name { get; set; }
-        /// <summary>
-        /// 长
-        /// </summary>
-        [Comment("长")]
-        [Precision(23, 10)]
-        public decimal? FLENGTH { get; set; }
-        /// <summary>
-        /// 宽
-        /// </summary>
-        [Comment("宽")]
-        [Precision(23, 10)]
-        public decimal? FWIDTH { get; set; }
-
-        /// <summary>
-        /// 高
-        /// </summary>
-        [Comment("高")]
-        [Precision(23, 10)]
-        public decimal? FHEIGHT { get; set; }
-        /// <summary>
-        /// 重量单位
-        /// </summary>
-        [Comment("重量单位")]
-        [StringLength(10)]
-        public string FWEIGHTUNITID_Name { get; set; }
-        /// <summary>
-        /// 体积
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("体积")]
-        public decimal? FVOLUME { get; set; }
-
-        /// <summary>
-        /// 库存单位
-        /// </summary>
-        [Comment("库存单位")]
-        [StringLength(10)]
-        public string FStoreUnitID_Name { get; set; }
-        /// <summary>
-        /// 辅助单位
-        /// </summary>
-        [Comment("辅助单位")]
-        [StringLength(10)]
-        public string FAuxUnitID_Name { get; set; }
-        /// <summary>
-        /// 仓库
-        /// </summary>
-        [Comment("仓库")]
-        [StringLength(80)]
-        public string FStockId_Name { get; set; }
-
-        /// <summary>
-        /// 仓位
-        /// </summary>
-        [Comment("仓位")]
-        [StringLength(80)]
-        public string FStockLoc { get; set; }
-        /// <summary>
-        /// 仓位.客户.编码
-        /// </summary>
-
-        [Comment("仓位.客户.编码")]
-        [StringLength(80)]
-        public string FStockPlaceId_FF100002 { get; set; }
-        /// <summary>
-        /// 仓位.客户.名称
-        /// </summary>
-        [Comment("仓位.客户.名称")]
-        [StringLength(80)]
-        public string FStockPlaceId_FF100002_Name { get; set; }
-
-
-        /// <summary>
-        /// 仓位.供应商.编码
-        /// </summary>
-        [StringLength(80)]
-        [Comment("仓位.供应商.编码")]
-        public string FStockPlaceId_FF100003 { get; set; }
-        /// <summary>
-        /// 仓位.客户.编码
-        /// </summary>
-
-        [Comment("仓位.供应商.名称")]
-        [StringLength(80)]
-        public string FStockPlaceId_FF100003_Name { get; set; }
-        /// <summary>
-        /// 仓位.服务机客户.编码
-        /// </summary>
-        [Comment("仓位.服务机客户.编码")]
-        [StringLength(80)]
-        public string FStockPlaceId_FF100004 { get; set; }
-
-
-        /// <summary>
-        /// 仓位.服务机客户.名称
-        /// </summary>
-        [Comment("仓位.服务机客户.名称")]
-        [StringLength(80)]
-        public string FStockPlaceId_FF100004_Name { get; set; }
-        /// <summary>
-        /// 可锁库
-        /// </summary>
-        [StringLength(1)]
-        [Comment("可锁库")]
-        public string FIsLockStock { get; set; }
-        /// <summary>
-        /// 启用盘点周期
-        /// </summary>
-        [Comment("启用盘点周期")]
-        [StringLength(1)]
-        public string FIsCycleCounting { get; set; }
-
-
-        /// <summary>
-        /// 盘点周期单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("盘点周期单位")]
-        public string FCountCycle { get; set; }
-        /// <summary>
-        /// 盘点周期
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("盘点周期")]
-        public decimal? FCountDay { get; set; }
-        /// <summary>
-        /// 必盘
-        /// </summary>
-        [Comment("必盘")]
-        [StringLength(1)]
-        public string FIsMustCounting { get; set; }
-
-        /// <summary>
-        /// 启用批号管理
-        /// </summary>
-        [StringLength(1)]
-        [Comment("启用批号管理")]
-        public string FIsBatchManage { get; set; }
-        /// <summary>
-        /// 批号编码规则
-        /// </summary>
-        [StringLength(80)]
-        [Comment("批号编码规则")]
-        public string FBatchRuleID_Name { get; set; }
-        /// <summary>
-        /// 启用保质期管理
-        /// </summary>
-        [Comment("启用保质期管理")]
-        [StringLength(1)]
-        public string FIsKFPeriod { get; set; }
-
-
-        /// <summary>
-        /// 批号附属信息
-        /// </summary>
-        [StringLength(1)]
-        [Comment("批号附属信息")]
-        public string FIsExpParToFlot { get; set; }
-        /// <summary>
-        /// 保质期单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("保质期单位")]
-        public string FExpUnit { get; set; }
-        /// <summary>
-        /// 保质期
-        /// </summary>
-        [Comment("保质期")]
-        [Precision(23, 10)]
-        public decimal? FExpPeriod { get; set; }
-
-        /// <summary>
-        /// 在架寿命期
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("在架寿命期")]
-        public decimal? FOnlineLife { get; set; }
-        /// <summary>
-        /// 参考成本
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("参考成本")]
-        public decimal? FRefCost { get; set; }
-        /// <summary>
-        /// 币别
-        /// </summary>
-        [Comment("币别")]
-        [StringLength(80)]
-        public string FCurrencyId_Name { get; set; }
-
-        /// <summary>
-        /// 库存管理
-        /// </summary>
-        [StringLength(1)]
-        [Comment("库存管理")]
-        public string FIsSNManage { get; set; }
-        /// <summary>
-        /// 启用最小库存
-        /// </summary>
-        [StringLength(1)]
-        [Comment("启用最小库存")]
-        public string FIsEnableMinStock { get; set; }
-        /// <summary>
-        /// 启用安全库存
-        /// </summary>
-        [StringLength(1)]
-        [Comment("启用安全库存")]
-        public string FIsEnableSafeStock { get; set; }
-
-
-        /// <summary>
-        /// 序列号编码规则
-        /// </summary>
-        [StringLength(80)]
-        [Comment("序列号编码规则")]
-        public string FSNCodeRule_Name { get; set; }
-        /// <summary>
-        /// 启用再订货点
-        /// </summary>
-        [StringLength(1)]
-        [Comment("启用再订货点")]
-        public string FIsEnableReOrder { get; set; }
-        /// <summary>
-        /// 启用最大库存
-        /// </summary>
-        [StringLength(1)]
-        [Comment("启用最大库存")]
-        public string FIsEnableMaxStock { get; set; }
-
-
-        /// <summary>
-        /// 序列号单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("序列号单位")]
-        public string FSNUnit_Name { get; set; }
-        /// <summary>
-        /// 最小库存
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("最小库存")]
-        public decimal? FMinStock { get; set; }
-        /// <summary>
-        /// 安全库存
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("安全库存")]
-        public decimal? FSafeStock { get; set; }
-
-
-        /// <summary>
-        /// 再订货点
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("再订货点")]
-        public decimal? FReOrderGood { get; set; }
-        /// <summary>
-        /// 经济订货批量
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("经济订货批量")]
-        public decimal? FEconReOrderQty { get; set; }
-        /// <summary>
-        /// 最大库存
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("最大库存")]
-        public decimal? FMaxStock { get; set; }
-
-
-        /// <summary>
-        /// 销售单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("销售单位")]
-        public string FSaleUnitId_Name { get; set; }
-        /// <summary>
-        /// 销售计价单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("销售计价单位")]
-        public string FSalePriceUnitId_Name { get; set; }
-        /// <summary>
-        /// 起订量
-        /// </summary>
-        [Precision(20, 10)]
-        [Comment("起订量")]
-        public decimal? FOrderQty { get; set; }
-
-        /// <summary>
-        /// 超发上限(%)
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("超发上限(%)")]
-        public decimal? FOutStockLmtH { get; set; }
-        /// <summary>
-        /// 超发下限(%)
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("超发下限(%)")]
-        public decimal? FOutStockLmtL { get; set; }
-        /// <summary>
-        /// 代理销售减价比例(%)
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("代理销售减价比例(%)")]
-        public decimal? FAgentSalReduceRate { get; set; }
-
-        /// <summary>
-        /// ATP检查
-        /// </summary>
-        [StringLength(1)]
-        [Comment("ATP检查")]
-        public string FIsATPCheck { get; set; }
-        /// <summary>
-        /// 允许退货
-        /// </summary>
-        [StringLength(1)]
-        [Comment("允许退货")]
-        public string FIsReturn { get; set; }
-        /// <summary>
-        /// 部件可退
-        /// </summary>
-        [StringLength(1)]
-        [Comment("部件可退")]
-        public string FIsReturnPart { get; set; }
-
-        /// <summary>
-        /// 允许发布到订货平台
-        /// </summary>
-        [StringLength(1)]
-        [Comment("允许发布到订货平台")]
-        public string FAllowPublish { get; set; }
-        /// <summary>
-        /// 启用售后服务
-        /// </summary>
-        [StringLength(1)]
-        [Comment("启用售后服务")]
-        public string FISAFTERSALE { get; set; }
-        /// <summary>
-        /// 生成产品档案
-        /// </summary>
-        [StringLength(1)]
-        [Comment("生成产品档案")]
-        public string FISPRODUCTFILES { get; set; }
-
-
-        /// <summary>
-        /// 是否保修
-        /// </summary>
-        [StringLength(1)]
-        [Comment("是否保修")]
-        public string FISWARRANTED { get; set; }
-        /// <summary>
-        /// 保修期单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("保修期单位")]
-        public string FWARRANTYUNITID { get; set; }
-        /// <summary>
-        /// 采购单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("采购单位")]
-        public string FPurchaseUnitId_Name { get; set; }
-
-        /// <summary>
-        /// 采购计价单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("采购计价单位")]
-        public string FPurchasePriceUnitId_Name { get; set; }
-        /// <summary>
-        /// 采购组
-        /// </summary>
-        [StringLength(80)]
-        [Comment("采购组")]
-        public string FPurchaseGroupId_Name { get; set; }
-        /// <summary>
-        /// 采购员
-        /// </summary>
-        [StringLength(80)]
-        [Comment("采购员")]
-        public string FPurchaserId_Name { get; set; }
-
-        /// <summary>
-        /// 配额管理
-        /// </summary>
-        [StringLength(1)]
-        [Comment("配额管理")]
-        public string FIsQuota { get; set; }
-        /// <summary>
-        /// 配额方式
-        /// </summary>
-        [StringLength(80)]
-        [Comment("配额方式")]
-        public string FQuotaType { get; set; }
-        /// <summary>
-        /// 最小拆分数量
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("最小拆分数量")]
-        public decimal? FMinSplitQty { get; set; }
-
-
-        /// <summary>
-        /// VMI业务
-        /// </summary>
-        [StringLength(1)]
-        [Comment("VMI业务")]
-        public string FIsVmiBusiness { get; set; }
-        /// <summary>
-        /// 默认供应商
-        /// </summary>
-        [StringLength(80)]
-        [Comment("默认供应商")]
-        public string FDefaultVendor_Name { get; set; }
-        /// <summary>
-        /// 费用项目
-        /// </summary>
-        [StringLength(80)]
-        [Comment("费用项目")]
-        public string FChargeID_Name { get; set; }
-
-
-        /// <summary>
-        /// 货源控制
-        /// </summary>
-        [StringLength(1)]
-        [Comment("货源控制")]
-        public string FIsSourceControl { get; set; }
-        /// <summary>
-        /// 需要请购
-        /// </summary>
-        [StringLength(1)]
-        [Comment("需要请购")]
-        public string FIsPR { get; set; }
-        /// <summary>
-        /// 收货上限比例(%)
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("收货上限比例(%)")]
-        public decimal? FReceiveMaxScale { get; set; }
-
-        /// <summary>
-        ///收货下限比例(%)
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("收货下限比例(%)")]
-        public decimal? FReceiveMinScale { get; set; }
-        /// <summary>
-        /// 代理采购加成比例
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("代理采购加成比例")]
-        public decimal? FAgentPurPlusRate { get; set; }
-        /// <summary>
-        /// 收货提前天数
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("收货提前天数")]
-        public decimal? FReceiveAdvanceDays { get; set; }
-
-        /// <summary>
-        ///收货延迟天数
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("收货延迟天数")]
-        public decimal? FReceiveDelayDays { get; set; }
-        /// <summary>
-        /// 允许退料
-        /// </summary>
-        [StringLength(1)]
-        [Comment("允许退料")]
-        public string FIsReturnMaterial { get; set; }
-        /// <summary>
-        /// 采购组织
-        /// </summary>
-        [StringLength(80)]
-        [Comment("采购组织")]
-        public string FPurchaseOrgId_Name { get; set; }
-
-        /// <summary>
-        ///委外单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("委外单位")]
-        public string FSubconUnitId_Name { get; set; }
-        /// <summary>
-        /// 委外计价单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("委外计价单位")]
-        public string FSubconPriceUnitId_Name { get; set; }
-        /// <summary>
-        /// 采购类型
-        /// </summary>
-        [StringLength(10)]
-        [Comment("采购类型")]
-        public string FPOBillTypeId_Name { get; set; }
-
-
-        /// <summary>
-        ///委外类型
-        /// </summary>
-        [StringLength(10)]
-        [Comment("委外类型")]
-        public string FSubBillType_Name { get; set; }
-        /// <summary>
-        /// 计划策略
-        /// </summary>
-        [StringLength(10)]
-        [Comment("计划策略")]
-        public string FPlanningStrategy { get; set; }
-        /// <summary>
-        /// 制造策略
-        /// </summary>
-        [StringLength(80)]
-        [Comment("制造策略")]
-        public string FMfgPolicyId_Name { get; set; }
-
-        /// <summary>
-        ///检验提前期单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("检验提前期单位")]
-        public string FCheckLeadTimeType { get; set; }
-        /// <summary>
-        /// 订货策略
-        /// </summary>
-        [StringLength(80)]
-        [Comment("订货策略")]
-        public string FOrderPolicy { get; set; }
-        /// <summary>
-        /// 最小订货量
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("最小订货量")]
-        public decimal? FMinPOQty { get; set; }
-
-
-        /// <summary>
-        ///计划区
-        /// </summary>
-        [StringLength(80)]
-        [Comment("计划区")]
-        public string FPlanWorkshop_Name { get; set; }
-        /// <summary>
-        /// 订货间隔期单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("订货间隔期单位")]
-        public string FOrderIntervalTimeType { get; set; }
-        /// <summary>
-        /// 固定提前期
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("固定提前期")]
-        public decimal? FFixLeadTime { get; set; }
-
-
-        /// <summary>
-        ///最小包装量
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("最小包装量")]
-        public decimal? FIncreaseQty { get; set; }
-        /// <summary>
-        /// 固定提前期单位
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("固定提前期单位")]
-        public decimal? FFixLeadTimeType { get; set; }
-        /// <summary>
-        /// 订货间隔期
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("订货间隔期")]
-        public decimal? FOrderIntervalTime { get; set; }
-
-
-
-        /// <summary>
-        ///变动提前期
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("变动提前期")]
-        public decimal? FVarLeadTime { get; set; }
-        /// <summary>
-        /// 变动提前期批量
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("变动提前期批量")]
-        public decimal? FVarLeadTimeLotSize { get; set; }
-        /// <summary>
-        /// 变动提前期单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("变动提前期单位")]
-        public string FVarLeadTimeType { get; set; }
-
-
-        /// <summary>
-        ///最大订货量
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("最大订货量")]
-        public decimal? FMaxPOQty { get; set; }
-        /// <summary>
-        /// 检验提前期
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("检验提前期")]
-        public decimal? FCheckLeadTime { get; set; }
-        /// <summary>
-        /// 固定/经济批量
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("固定/经济批量")]
-        public decimal? FEOQ { get; set; }
-
-
-        /// <summary>
-        ///批量拆分间隔天数
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("批量拆分间隔天数")]
-        public decimal? FPlanIntervalsDays { get; set; }
-        /// <summary>
-        /// 拆分批量
-        /// </summary>
-        [Precision(20, 10)]
-        [Comment("拆分批量")]
-        public decimal? FPlanBatchSplitQty { get; set; }
-        /// <summary>
-        /// MRP计算是否合并需求
-        /// </summary>
-        [StringLength(1)]
-        [Comment("MRP计算是否合并需求")]
-        public string FIsMrpComReq { get; set; }
-
-        /// <summary>
-        ///需求时界
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("需求时界")]
-        public decimal? FRequestTimeZone { get; set; }
-        /// <summary>
-        /// MRP计算是否按单合并
-        /// </summary>
-        [StringLength(1)]
-        [Comment("MRP计算是否按单合并")]
-        public string FIsMrpComBill { get; set; }
-        /// <summary>
-        /// 允许提前天数
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("允许提前天数")]
-        public decimal? FCanLeadDays { get; set; }
-
-
-        /// <summary>
-        ///计划时界
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("计划时界")]
-        public decimal? FPlanTimeZone { get; set; }
-        /// <summary>
-        /// 预留类型
-        /// </summary>
-        [StringLength(10)]
-        [Comment("预留类型")]
-        public string FReserveType { get; set; }
-        /// <summary>
-        /// 计划组
-        /// </summary>
-        [StringLength(80)]
-        [Comment("计划组")]
-        public string FPlanGroupId_Name { get; set; }
-
-
-        /// <summary>
-        ///提前宽限期
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("提前宽限期")]
-        public decimal? FLeadExtendDay { get; set; }
-        /// <summary>
-        /// 计划员
-        /// </summary>
-        [StringLength(80)]
-        [Comment("计划员")]
-        public string FPlanerID_Name { get; set; }
-        /// <summary>
-        /// ATO预测冲销方案
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("ATO预测冲销方案")]
-        public decimal? FATOSchemeId_Name { get; set; }
-
-        /// <summary>
-        ///允许延后天数
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("允许延后天数")]
-        public decimal? FCanDelayDays { get; set; }
-        /// <summary>
-        /// 偏置时间
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("偏置时间")]
-        public decimal? FPlanOffsetTime { get; set; }
-        /// <summary>
-        /// 安全库存
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("安全库存")]
-        public decimal? FPlanSafeStockQty { get; set; }
-
-
-        /// <summary>
-        ///按批号匹配供需
-        /// </summary>
-        [StringLength(1)]
-        [Comment("按批号匹配供需")]
-        public string FDSMatchByLot { get; set; }
-        /// <summary>
-        /// 预计入库允许部分提前
-        /// </summary>
-        [StringLength(1)]
-        [Comment("预计入库允许部分提前")]
-        public string FAllowPartAhead { get; set; }
-        /// <summary>
-        /// 时间紧迫系数
-        /// </summary>
-        [StringLength(80)]
-        [Comment("时间紧迫系数")]
-        public string FTimeFactorId_Name { get; set; }
-
-        /// <summary>
-        ///预计入库允许部分延后
-        /// </summary>
-        [StringLength(1)]
-        [Comment("预计入库允许部分延后")]
-        public string FAllowPartDelay { get; set; }
-        /// <summary>
-        /// 数量负荷系数
-        /// </summary>
-        [StringLength(80)]
-        [Comment("数量负荷系数")]
-        public string FQtyFactorId_Name { get; set; }
-        /// <summary>
-        /// 供应来源
-        /// </summary>
-        [StringLength(80)]
-        [Comment("供应来源")]
-        public string FSupplySourceId_Name { get; set; }
-
-        /// <summary>
-        ///延后宽限期
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("延后宽限期")]
-        public decimal? FDelayExtendDay { get; set; }
-        /// <summary>
-        /// 时间单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("时间单位")]
-        public string FPlanOffsetTimeType { get; set; }
-        /// <summary>
-        /// 发料方式
-        /// </summary>
-        [StringLength(10)]
-        [Comment("发料方式")]
-        public string FIssueType { get; set; }
-
-
-        /// <summary>
-        ///生产车间
-        /// </summary>
-        [StringLength(80)]
-        [Comment("生产车间")]
-        public string FWorkShopId_Name { get; set; }
-        /// <summary>
-        /// 可为联副产品
-        /// </summary>
-        [StringLength(1)]
-        [Comment("可为联副产品")]
-        public string FIsCoby { get; set; }
-        /// <summary>
-        /// 生产单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("生产单位")]
-        public string FProduceUnitId_Name { get; set; }
-
-
-        /// <summary>
-        ///可为主产品
-        /// </summary>
-        [StringLength(1)]
-        [Comment("可为主产品")]
-        public string FIsMainPrd { get; set; }
-        /// <summary>
-        /// 倒冲时机
-        /// </summary>
-        [StringLength(80)]
-        [Comment("倒冲时机")]
-        public string FBKFLTime { get; set; }
-        /// <summary>
-        /// 入库超收比例(%)
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("入库超收比例(%)")]
-        public decimal? FFinishReceiptOverRate { get; set; }
-
-
-        /// <summary>
-        ///发料仓库
-        /// </summary>
-        [StringLength(80)]
-        [Comment("发料仓库")]
-        public string FPickStockId_Name { get; set; }
-        /// <summary>
-        /// 入库欠收比例(%)
-        /// </summary>
-        [StringLength(255)]
-        [Comment("入库欠收比例(%)")]
-        public string FFinishReceiptShortRate { get; set; }
-        /// <summary>
-        /// 发料仓位
-        /// </summary>
-        [StringLength(80)]
-        [Comment("发料仓位")]
-        public string FPickStockLoc { get; set; }
-
-
-        /// <summary>
-        ///发料仓位.客户.编码
-        [Comment("发料仓位.客户.编码")]
-        [StringLength(80)]
-        public string FPickBinId_FF100002 { get; set; }
-        /// <summary>
-        /// 发料仓位.客户.名称
-        /// </summary>
-        [StringLength(80)]
-        [Comment("发料仓位.客户.名称")]
-        public string FPickBinId_FF100002_Name { get; set; }
-        /// <summary>
-        ///  发料仓位.供应商.编码
-        /// </summary>
-        [StringLength(80)]
-        [Comment("发料仓位.供应商.编码")]
-        public string FPickBinId_FF100003 { get; set; }
-
-
-        /// <summary>
-        ///发料仓位.供应商.名称
-        /// </summary>
-        [Comment("发料仓位.供应商.名称")]
-        [StringLength(80)]
-        public string FPickBinId_FF100003_Name { get; set; }
-        /// <summary>
-        /// 发料仓位.服务机客户.编码
-        /// </summary>
-        [StringLength(80)]
-        [Comment("发料仓位.服务机客户.编码")]
-        public string FPickBinId_FF100004 { get; set; }
-        /// <summary>
-        ///发料仓位.服务机客户.名称
-        /// </summary>
-        [StringLength(80)]
-        [Comment("发料仓位.服务机客户.名称")]
-        public string FPickBinId_FF100004_Name { get; set; }
-
-
-        /// <summary>
-        ///超发控制方式
-        /// </summary>
-        [StringLength(10)]
-        [Comment("超发控制方式")]
-        public string FOverControlMode { get; set; }
-        /// <summary>
-        /// 子项单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("子项单位")]
-        public string FBOMUnitId_Name { get; set; }
-        /// <summary>
-        ///最小发料批量
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("最小发料批量")]
-        public decimal? FMinIssueQty { get; set; }
-
-
-
-        /// <summary>
-        ///是否关键件
-        /// </summary>
-        [StringLength(1)]
-        [Comment("是否关键件")]
-        public string FIsKitting { get; set; }
-        /// <summary>
-        /// 是否齐套件
-        /// </summary>
-        [StringLength(1)]
-        [Comment("是否齐套件")]
-        public string FIsCompleteSet { get; set; }
-        /// <summary>
-        ///标准人员准备工时
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("标准人员准备工时")]
-        public decimal? FStdLaborPrePareTime { get; set; }
-
-        /// <summary>
-        ///标准人员实作工时
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("标准人员实作工时")]
-        public decimal? FStdLaborProcessTime { get; set; }
-        /// <summary>
-        /// 默认工艺路线
-        /// </summary>
-        [StringLength(255)]
-        [Comment("默认工艺路线")]
-        public string FDefaultRouting_Name { get; set; }
-        /// <summary>
-        ///标准工时
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("标准工时")]
-        public decimal? FPerUnitStandHour { get; set; }
-
-
-        /// <summary>
-        ///标准机器准备工时
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("标准机器准备工时")]
-        public decimal? FStdMachinePrepareTime { get; set; }
-        /// <summary>
-        /// 消耗波动(%)
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("消耗波动(%)")]
-        public decimal? FConsumVolatility { get; set; }
-        /// <summary>
-        ///变动损耗率(%)
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("变动损耗率(%)")]
-        public decimal? FLOSSPERCENT { get; set; }
-
-
-
-        /// <summary>
-        ///序列号携带到父项
-        /// </summary>
-        [StringLength(1)]
-        [Comment("序列号携带到父项")]
-        public string FIsSNCarryToParent { get; set; }
-        /// <summary>
-        /// 标准机器实作工时
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("标准机器实作工时")]
-        public decimal? FStdMachineProcessTime { get; set; }
-        /// <summary>
-        ///生产线生产
-        /// </summary>
-        [StringLength(1)]
-        [Comment("生产线生产")]
-        public string FIsProductLine { get; set; }
-
-        /// <summary>
-        ///生产类型
-        /// </summary>
-        [StringLength(10)]
-        [Comment("生产类型")]
-        public string FProduceBillType_Name { get; set; }
-        /// <summary>
-        /// 组织间受托类型
-        /// </summary>
-        [StringLength(10)]
-        [Comment("组织间受托类型")]
-        public string FOrgTrustBillType_Name { get; set; }
-        /// <summary>
-        ///领料考虑最小发料批量
-        /// </summary>
-        [StringLength(1)]
-        [Comment("领料考虑最小发料批量")]
-        public string FISMinIssueQty { get; set; }
-
-        /// <summary>
-        ///启用ECN
-        /// </summary>
-        [StringLength(1)]
-        [Comment("启用ECN")]
-        public string FIsECN { get; set; }
-        /// <summary>
-        /// 启用
-        /// </summary>
-        [StringLength(1)]
-        [Comment("启用")]
-        public string FIsEnable1 { get; set; }
-        /// <summary>
-        ///影响价格
-        /// </summary>
-        [StringLength(1)]
-        [Comment("影响价格")]
-        public string FIsAffectPrice1 { get; set; }
-
-
-        /// <summary>
-        ///影响计划
-        /// </summary>
-        [StringLength(1)]
-        [Comment("影响计划")]
-        public string FIsAffectPlan1 { get; set; }
-        /// <summary>
-        /// 影响出库成本
-        /// </summary>
-        [StringLength(1)]
-        [Comment("影响出库成本")]
-        public string FIsAffectCost1 { get; set; }
-        /// <summary>
-        ///辅助属性
-        /// </summary>
-        [StringLength(255)]
-        [Comment("辅助属性")]
-        public string FAuxPropertyId_Name { get; set; }
-
-        /// <summary>
-        ///组合控制
-        /// </summary>
-        [StringLength(1)]
-        [Comment("组合控制")]
-        public string FIsComControl { get; set; }
-        /// <summary>
-        /// 来料检验
-        /// </summary>
-        [StringLength(1)]
-        [Comment("来料检验")]
-        public string FCheckIncoming { get; set; }
-        /// <summary>
-        ///库存检验
-        /// </summary>
-        [StringLength(1)]
-        [Comment("库存检验")]
-        public string FCheckStock { get; set; }
-
-        /// <summary>
-        ///产品检验
-        /// </summary>
-        [StringLength(1)]
-        [Comment("产品检验")]
-        public string FCheckProduct { get; set; }
-        /// <summary>
-        /// 抽样方案
-        /// </summary>
-        [StringLength(255)]
-        [Comment("抽样方案")]
-        public string FIncSampSchemeId_Name { get; set; }
-        /// <summary>
-        ///质检方案
-        /// </summary>
-        [StringLength(255)]
-        [Comment("质检方案")]
-        public string FIncQcSchemeId_Name { get; set; }
-
-        /// <summary>
-        ///启用库存周期复检
-        /// </summary>
-        [StringLength(1)]
-        [Comment("启用库存周期复检")]
-        public string FEnableCyclistQCSTK { get; set; }
-        /// <summary>
-        /// 复检周期
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("复检周期")]
-        public decimal? FStockCycle { get; set; }
-        /// <summary>
-        ///启用库存周期复检提醒
-        /// </summary>
-        [StringLength(1)]
-        [Comment("启用库存周期复检提醒")]
-        public string FEnableCyclistQCSTKEW { get; set; }
-
-
-        /// <summary>
-        ///生产追溯
-        /// </summary>
-        [StringLength(1)]
-        [Comment("生产追溯")]
-        public string FIsSNPRDTracy { get; set; }
-        /// <summary>
-        /// 提醒提前期
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("提醒提前期")]
-        public decimal? FEWLeadDay { get; set; }
-        /// <summary>
-        ///保修期
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("保修期")]
-        public decimal? FWARRANTY { get; set; }
-
-
-        /// <summary>
-        ///超发控制单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("超发控制单位")]
-        public string FOutLmtUnit { get; set; }
-        /// <summary>
-        /// 质检组
-        /// </summary>
-        [StringLength(80)]
-        [Comment("质检组")]
-        public string FInspectGroupId_Name { get; set; }
-        /// <summary>
-        ///发货检验
-        /// </summary>
-        [StringLength(1)]
-        [Comment("发货检验")]
-        public string FCheckDelivery { get; set; }
-
-
-        /// <summary>
-        ///默认条码规则
-        /// </summary>
-        [StringLength(255)]
-        [Comment("默认条码规则")]
-        public string FDefBarCodeRuleId_Name { get; set; }
-        /// <summary>
-        /// 退货检验
-        /// </summary>
-        [StringLength(1)]
-        [Comment("退货检验")]
-        public string FCheckReturn { get; set; }
-        /// <summary>
-        ///质检员
-        /// </summary>
-        [StringLength(80)]
-        [Comment("质检员")]
-        public string FInspectorId_Name { get; set; }
-
-
-
-        /// <summary>
-        ///配置生产
-        /// </summary>
-        [StringLength(255)]
-        [Comment("配置生产")]
-        public string FCONFIGTYPE { get; set; }
-        /// <summary>
-        /// 特征件子项
-        /// </summary>
-        [StringLength(80)]
-        [Comment("特征件子项")]
-        public string FFeatureItem { get; set; }
-        /// <summary>
-        ///重复打印数
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("重复打印数")]
-        public decimal? FPrintCount { get; set; }
-
-
-        /// <summary>
-        ///最小发料批量单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("最小发料批量单位")]
-        public string FMinIssueUnitId_Name { get; set; }
-        /// <summary>
-        /// 产品模型
-        /// </summary>
-        [StringLength(80)]
-        [Comment("产品模型")]
-        public string FMdlId_Name { get; set; }
-        /// <summary>
-        ///模型物料
-        /// </summary>
-        [StringLength(80)]
-        [Comment("模型物料")]
-        public string FMdlMaterialId_Name { get; set; }
-
-
-        /// <summary>
-        ///税收分类编码
-        /// </summary>
-        [StringLength(80)]
-        [Comment("税收分类编码")]
-        public string FTaxCategoryCodeId_Name { get; set; }
-        /// <summary>
-        /// 受托材料检验
-        /// </summary>
-        [StringLength(1)]
-        [Comment("受托材料检验")]
-        public string FCheckEntrusted { get; set; }
-        /// <summary>
-        ///套件
-        /// </summary>
-        [StringLength(1)]
-        [Comment("套件")]
-        public string FSuite { get; set; }
-
-        /// <summary>
-        ///单箱标准数量
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("单箱标准数量")]
-        public decimal? FBoxStandardQty { get; set; }
-        /// <summary>
-        /// 销售分组
-        /// </summary>
-        [StringLength(80)]
-        [Comment("销售分组")]
-        public string FSalGroup_Name { get; set; }
-        /// <summary>
-        ///其他检验
-        /// </summary>
-        [StringLength(1)]
-        [Comment("其他检验")]
-        public string FCheckOther { get; set; }
-
-
-        /// <summary>
-        ///享受税收优惠政策
-        /// </summary>
-        [StringLength(1)]
-        [Comment("享受税收优惠政策")]
-        public string FIsTaxEnjoy { get; set; }
-        /// <summary>
-        /// 税收优惠政策类型
-        /// </summary>
-        [StringLength(80)]
-        [Comment("税收优惠政策类型")]
-        public string FTaxDiscountsType { get; set; }
-        /// <summary>
-        ///工时单位
-        /// </summary>
-        [StringLength(10)]
-        [Comment("工时单位")]
-        public string FStandHourUnitId { get; set; }
-
-        /// <summary>
-        ///结算成本价加减价比例(%)
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("结算成本价加减价比例(%)")]
-        public decimal? FCostPriceRate { get; set; }
-        /// <summary>
-        /// 倒冲数量
-        /// </summary>
-        [StringLength(80)]
-        [Comment("倒冲数量")]
-        public string FBackFlushType { get; set; }
-        /// <summary>
-        ///累计提前期
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("累计提前期")]
-        public decimal? FAccuLeadTime { get; set; }
-
-
-
-        /// <summary>
-        ///产品系列
-        /// </summary>
-        [StringLength(255)]
-        [Comment("产品系列")]
-        public string FProductLine_Name { get; set; }
-        /// <summary>
-        /// 冲销数量
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("冲销数量")]
-        public decimal? FWriteOffQty { get; set; }
-        /// <summary>
-        ///固定损耗
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("固定损耗")]
-        public decimal? FFIXLOSS { get; set; }
-
-
-        /// <summary>
-        ///计划标识
-        /// </summary>
-        [StringLength(80)]
-        [Comment("计划标识")]
-        public string FPlanIdent_Name { get; set; }
-        /// <summary>
-        /// 订单进度分组
-        /// </summary>
-        [StringLength(80)]
-        [Comment("订单进度分组")]
-        public string FProScheTrackId_Name { get; set; }
-        /// <summary>
-        ///最小包装数
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("最小包装数")]
-        public decimal? FMinPackCount { get; set; }
-
-        /// <summary>
-        ///日产量
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("日产量")]
-        public decimal? FDailyOutQty { get; set; }
-        /// <summary>
-        /// 产品首检
-        /// </summary>
-        [StringLength(1)]
-        [Comment("产品首检")]
-        public string FIsFirstInspect { get; set; }
-        /// <summary>
-        ///生产退料检验
-        /// </summary>
-        [StringLength(1)]
-        [Comment("生产退料检验")]
-        public string FCheckReturnMtrl { get; set; }
-
-
-        /// <summary>
-        ///禁用原因
-        /// </summary>
-        [StringLength(255)]
-        [Comment("禁用原因")]
-        public string FForbidReson_2052 { get; set; }
-        /// <summary>
-        /// 已使用
-        /// </summary>
-        [StringLength(1)]
-        [Comment("已使用")]
-        public string FForbidResonIsUsed { get; set; }
-        /// <summary>
-        ///不参与可发量统计
-        /// </summary>
-        [StringLength(1)]
-        [Comment("不参与可发量统计")]
-        public string FUnValidateExpQty { get; set; }
-
-
-        /// <summary>
-        ///物料类型
-        /// </summary>
-        [StringLength(10)]
-        [Comment("物料类型")]
-        public string F_WLLX { get; set; }
-        /// <summary>
-        /// 启用日排产
-        /// </summary>
-        [StringLength(1)]
-        [Comment("启用日排产")]
-        public string FIsEnableSchedule { get; set; }
-        /// <summary>
-        ///直接关联物料号
-        /// </summary>
-        [StringLength(80)]
-        [Comment("直接关联物料号")]
-        public string F_ZJGLWLH_Name { get; set; }
-
-        /// <summary>
-        ///默认产线
-        /// </summary>
-        [StringLength(80)]
-        [Comment("默认产线")]
-        public string FDefaultLineId_Name { get; set; }
-        /// <summary>
-        /// 电压/电网类型
-        /// </summary>
-        [StringLength(80)]
-        [Comment("电压/电网类型")]
-        public string F_DYDWLX { get; set; }
-        /// <summary>
-        ///根物料号
-        /// </summary>
-        [StringLength(80)]
-        [Comment("根物料号")]
-        public string F_GWLH_Name { get; set; }
-
-
-        /// <summary>
-        ///功率段
-        /// </summary>
-        [StringLength(80)]
-        [Comment("功率段")]
-        public string F_GLD_Name { get; set; }
-        /// <summary>
-        ///电子料属性
-        /// </summary>
-        [StringLength(80)]
-        [Comment("电子料属性")]
-        public string F_DZLSX { get; set; }
-        /// <summary>
-        ///旧物料编码U8
-        /// </summary>
-        [StringLength(80)]
-        [Comment("旧物料编码U8")]
-        public string F_JWLBMU8 { get; set; }
-
-        /// <summary>
-        ///品牌
-        /// </summary>
-        [StringLength(255)]
-        [Comment("品牌")]
-        public string F_PP_Name { get; set; }
-        /// <summary>
-        ///整机测试工时
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("整机测试工时")]
-        public decimal? F_ZJCSGS { get; set; }
-        /// <summary>
-        ///作业工时
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("作业工时")]
-        public decimal? F_ZYGS { get; set; }
-
-        /// <summary>
-        ///工时最后更改日期
-        /// </summary>
-        [Comment("工时最后更改日期")]
-        public DateTime? F_GSZHGGRQ { get; set; }
-        /// <summary>
-        ///体积重量最后更改日期
-        [Comment("体积重量最后更改日期")]
-        public DateTime? F_TJZLZHGGRQ { get; set; }
-        /// <summary>
-        ///生命周期最后更改日期
-        /// </summary>
-        [Comment("生命周期最后更改日期")]
-        public DateTime? F_SMZQZHGGRQ { get; set; }
-
-
-        /// <summary>
-        ///体积重量最后更改人
-        /// </summary>
-        [StringLength(80)]
-        [Comment("体积重量最后更改人")]
-        public string F_TJZLZHGGR_Name { get; set; }
-        /// <summary>
-        ///生命周期最后更改人
-        /// </summary>
-        [StringLength(80)]
-        [Comment("生命周期最后更改人")]
-        public string F_SMZQZHGGR_Name { get; set; }
-        /// <summary>
-        ///工时最后更改人
-        /// </summary>
-        [StringLength(80)]
-        [Comment("工时最后更改人")]
-        public string F_GSZHGGR_Name { get; set; }
-
-
-        /// <summary>
-        ///整机质保(月)
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("整机质保(月)")]
-        public decimal? F_ZJZB_Name { get; set; }
-        /// <summary>
-        ///是否记录批次号
-        /// </summary>
-        [StringLength(1)]
-        [Comment("是否记录批次号")]
-        public string F_SFJLPCH { get; set; }
-        /// <summary>
-        ///业务类型
-        /// </summary>
-        [StringLength(80)]
-        [Comment("业务类型")]
-        public string F_YWLX { get; set; }
-
-        /// <summary>
-        ///产品披露类别
-        /// </summary>
-        [StringLength(80)]
-        [Comment("产品披露类别")]
-        public string F_CPPLLB { get; set; }
-        /// <summary>
-        ///已终审过
-        /// </summary>
-        [StringLength(10)]
-        [Comment("已终审过")]
-        public string F_YZSG { get; set; }
-        /// <summary>
-        ///物料申请人
-        /// </summary>
-        [StringLength(80)]
-        [Comment("物料申请人")]
-        public string F_WLSQR_Name { get; set; }
-
-        /// <summary>
-        ///产品线
-        /// </summary>
-        [StringLength(80)]
-        [Comment("产品线")]
-        public string F_CPX_Name { get; set; }
-        /// <summary>
-        ///产品分类
-        /// </summary>
-        [StringLength(80)]
-        [Comment("产品分类")]
-        public string F_CPFL_Name { get; set; }
-        /// <summary>
-        ///料号生命周期
-        /// </summary>
-        [StringLength(80)]
-        [Comment("料号生命周期")]
-        public string F_SMZQ { get; set; }
-
-        ///<summary>
-        ///允许收料
-        ///</summary>
-        [StringLength(1)]
-        [Comment("允许收料")]
-        public string F_YXSL { get; set; }
-
-        /// <summary>
-        ///SAJ型号
-        /// </summary>
-        [StringLength(80)]
-        [Comment("SAJ型号")]
-        public string F_XSXH_2052 { get; set; }
-        /// <summary>
-        ///回料包装量
-        /// </summary>
-        [Precision(23, 10)]
-        [Comment("回料包装量")]
-        public decimal? F_HLBZL { get; set; }
-        /// <summary>
-        ///包装规格
-        /// </summary>
-        [StringLength(255)]
-        [Comment("包装规格")]
-        public string F_BZGG { get; set; }
-
-        /// <summary>
-        ///供应商
-        /// </summary>
-        [StringLength(255)]
-        [Comment("供应商")]
-        public string F_GYS { get; set; }
-        /// <summary>
-        ///禁采原因
-        /// </summary>
-        [StringLength(255)]
-        [Comment("禁采原因")]
-        public string F_JCYY { get; set; }
-
-        /// <summary>
-        ///允许请购
-        /// </summary>
-        [StringLength(1)]
-        [Comment("允许请购")]
-        public string F_YXQG { get; set; }
-    }
-}

+ 6 - 0
MicroServices/Business/Business.Domain/StructuredDB/MES/IC/ASNBOLShipperDetail.cs

@@ -96,6 +96,12 @@ namespace Business.Domain
         [Comment("是否有效")]
         public bool IsActive { get; set; }
 
+        /// <summary>
+        /// 主表ID
+        /// </summary>
+        [Comment("主表ID")]
+        public int ASNBOLShipperRecID { get; set; }
+
         /// <summary>
         /// 创建时间
         /// </summary>

+ 90 - 0
MicroServices/Business/Business.Domain/StructuredDB/MES/IC/ASNBOLShipperMaster.cs

@@ -0,0 +1,90 @@
+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.Domain
+{
+    /// <summary>
+    /// 发货主表
+    /// </summary>
+    [Comment("发货主表")]
+    public class ASNBOLShipperMaster
+    {
+        /// <summary>
+        /// 主键
+        /// </summary>
+        [Comment("主键")]
+        [Key]
+        public int RecID { get; set; }
+
+        /// <summary>
+        /// 域名
+        /// </summary>
+        [Comment("域名")]
+        public string Domain { get; set; }
+
+        /// <summary>
+        /// Id
+        /// </summary>
+        [Comment("Id")]
+        public string Id { get; set; }
+
+        /// <summary>
+        /// OrdNbr
+        /// </summary>
+        [Comment("OrdNbr")]
+        public string OrdNbr { get; set; }
+
+        /// <summary>
+        /// SoldTo
+        /// </summary>
+        [Comment("SoldTo")]
+        public string SoldTo { get; set; }
+
+        /// <summary>
+        /// ShType
+        /// </summary>
+        [Comment("ShType")]
+        public string ShType { get; set; }
+
+        /// <summary>
+        /// Terms
+        /// </summary>
+        [Comment("Terms")]
+        public string Terms { get; set; }
+
+        /// <summary>
+        /// 是否有效:1-有效;0-无效
+        /// </summary>
+        [Comment("是否有效")]
+        public bool IsActive { get; set; }
+
+        /// <summary>
+        /// 创建时间
+        /// </summary>
+        [Comment("创建时间")]
+        public DateTime? CreateTime { get; set; }
+
+        /// <summary>
+        /// 创建人
+        /// </summary>
+        [Comment("创建人")]
+        public string CreateUser { get; set; }
+
+        /// <summary>
+        /// 创建时间
+        /// </summary>
+        [Comment("修改时间")]
+        public DateTime? UpdateTime { get; set; }
+
+        /// <summary>
+        /// 修改人
+        /// </summary>
+        [Comment("修改人")]
+        public string UpdateUser { get; set; }
+    }
+}

+ 1 - 1
MicroServices/Business/Business.Domain/StructuredDB/MES/IC/CustMaster.cs

@@ -55,7 +55,7 @@ namespace Business.Domain
         /// 发货提前期
         /// </summary>
         [Comment("发货提前期")]
-        public string CustShippingLT { get; set; }
+        public int? CustShippingLT { get; set; }
 
         /// <summary>
         /// 客户类别,T1,海外,国科,海王

+ 5 - 0
MicroServices/Business/Business.Domain/StructuredDB/MES/IC/ItemMaster.cs

@@ -110,5 +110,10 @@ namespace Business.Domain
         /// </summary>
         public string ItemType { get; set; }
 
+        /// <summary>
+        /// 版本
+        /// </summary>
+        [Comment("版本")]
+        public string Rev { get; set; }
     }
 }

+ 6 - 0
MicroServices/Business/Business.Domain/StructuredDB/MES/IC/PurOrdDetail.cs

@@ -137,5 +137,11 @@ namespace Business.Domain
         /// </summary>
         [Comment("修改人")]
         public string UpdateUser { get; set; }
+
+        /// <summary>
+        /// 版本
+        /// </summary>
+        [Comment("版本")]
+        public string Rev { get; set; }
     }
 }

+ 47 - 0
MicroServices/Business/Business.Domain/StructuredDB/Production/DMS_IN_ITEMMAPPING.cs

@@ -0,0 +1,47 @@
+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.Domain
+{
+    /// <summary>
+    /// 物料对应表
+    /// </summary>
+    [Comment("物料对应表")]
+    public class DMS_IN_ITEMMAPPING
+    {
+        /// <summary>
+        /// 产品线编码
+        /// </summary>
+        [Comment("产品线编码")]
+        public string? DivisionCode { get; set; }
+
+        /// <summary>
+        /// 产品线名称
+        /// </summary>
+        [Comment("产品线名称")]
+        public string? DivisionName { get; set; }
+
+        /// <summary>
+        /// 产品型号
+        /// </summary>
+        [Comment("产品型号")]
+        public string? CfnCode { get; set; }
+
+        /// <summary>
+        /// 产品名称
+        /// </summary>
+        [Comment("产品名称")]
+        public string? CfnName { get; set; }
+
+        /// <summary>
+        /// SAP物料编码
+        /// </summary>
+        [Comment("SAP物料编码")]
+        public string? CfnERPCode { get; set; }
+    }
+}

+ 142 - 0
MicroServices/Business/Business.Domain/StructuredDB/Production/DMS_IN_LOCDETAIL.cs

@@ -0,0 +1,142 @@
+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.Domain
+{
+    /// <summary>
+    /// DMS库存明细
+    /// </summary>
+    [Comment("DMS库存明细")]
+    public class DMS_IN_LOCDETAIL
+    {
+        /// <summary>
+        /// 产品线编码
+        /// </summary>
+        [Comment("产品线编码")]
+        public string? DivisionCode { get; set; }
+
+        /// <summary>
+        /// 产品线名称
+        /// </summary>
+        [Comment("产品线名称")]
+        public string? DivisionName { get; set; }
+
+        /// <summary>
+        /// 合同产品分类编码
+        /// </summary>
+        [Comment("合同产品分类编码")]
+        public string? SubBUCode { get; set; }
+
+        /// <summary>
+        /// 合同产品分类名称
+        /// </summary>
+        [Comment("合同产品分类名称")]
+        public string? SubBUName { get; set; }
+
+        /// <summary>
+        /// 经销商编码
+        /// </summary>
+        [Comment("经销商编码")]
+        public string? DealerCode { get; set; }
+
+        /// <summary>
+        /// 经销商名称
+        /// </summary>
+        [Comment("经销商名称")]
+        public string? DealerName { get; set; }
+
+
+        /// <summary>
+        /// 经销商类型
+        /// </summary>
+        [Comment("经销商类型")]
+        public string? DealerLevel { get; set; }
+
+        /// <summary>
+        /// 经销商状态
+        /// </summary>
+        [Comment("经销商状态")]
+        public string? DealerStatus { get; set; }
+
+
+        /// <summary>
+        /// 上游公司编码
+        /// </summary>
+        [Comment("上游公司编码")]
+        public string? ParentDealerCode { get; set; }
+
+        /// <summary>
+        /// 上游公司名称
+        /// </summary>
+        [Comment("上游公司名称")]
+        public string? ParentDealerName { get; set; }
+
+        /// <summary>
+        /// 仓库名称
+        /// </summary>
+        [Comment("仓库名称")]
+        public string? WarehouseName { get; set; }
+
+        /// <summary>
+        /// 仓库类型
+        /// </summary>
+        [Comment("仓库类型")]
+        public string? WarehouseType { get; set; }
+
+        /// <summary>
+        /// 产品型号
+        /// </summary>
+        [Comment("产品型号")]
+        public string? UPN { get; set; }
+
+
+        /// <summary>
+        /// LOT
+        /// </summary>
+        [Comment("LOT")]
+        public string? LOT { get; set; }
+
+        /// <summary>
+        /// 产品有效期
+        /// </summary>
+        [Comment("产品有效期")]
+        public DateOnly? ExpiredDate { get; set; }
+
+        /// <summary>
+        /// 转移时间
+        /// </summary>
+        [Comment("转移时间")]
+        public DateOnly? TransferDate { get; set; }
+
+        /// <summary>
+        /// 库存日期
+        /// </summary>
+        [Comment("库存日期")]
+        public DateOnly? InventoryDate { get; set; }
+
+        /// <summary>
+        /// 库存类型
+        /// </summary>
+        [Comment("库存类型")]
+        public string? InventoryType { get; set; }
+
+        /// <summary>
+        /// 数量
+        /// </summary>
+        [Comment("数量")]
+        [Precision(15,5)]
+        public decimal? Qty { get; set; }
+
+        /// <summary>
+        /// 更新日期
+        /// </summary>
+        [Comment("更新日期")]
+        [Timestamp]
+        public byte[]? TSN { get; set; }
+    }
+}

+ 184 - 0
MicroServices/Business/Business.Domain/StructuredDB/Production/DMS_IN_PODETAIL.cs

@@ -0,0 +1,184 @@
+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.Domain
+{
+    /// <summary>
+    /// T2向平台的采购订单
+    /// </summary>
+    [Comment("T2向平台的采购订单")]
+    public class DMS_IN_PODETAIL
+    {
+        /// <summary>
+        /// 创建日期
+        /// </summary>
+        [Comment("创建日期")]
+        public DateOnly? CreateDate { get; set; }
+
+        /// <summary>
+        /// 采购订单
+        /// </summary>
+        [Comment("采购订单")]
+        public string? OrderNo { get; set; }
+
+        /// <summary>
+        /// 订单类型
+        /// </summary>
+        [Comment("订单类型")]
+        public string? OrderType { get; set; }
+
+        /// <summary>
+        /// 订单类型名称
+        /// </summary>
+        [Comment("订单类型名称")]
+        public string OrderTypeName { get; set; }
+
+        /// <summary>
+        /// 订单状态
+        /// </summary>
+        [Comment("订单状态")]
+        public string?  OrderStatus { get; set; }
+
+        /// <summary>
+        /// 提交日期
+        /// </summary>
+        [Comment("提交日期")]
+        public DateOnly?  SubmitDate { get; set; }
+       
+        /// <summary>
+        /// 更新日期
+        /// </summary>
+        [Comment("更新日期")]
+        public DateOnly? UpdateDate { get; set; }
+
+        /// <summary>
+        /// 最近审核日期
+        /// </summary>
+        [Comment("最近审核日期")]
+        public DateOnly? LatestAuditDate { get; set; }
+
+
+        /// <summary>
+        /// 订单确认日期
+        /// </summary>
+        [Comment("订单确认日期")]
+        public DateOnly? ConfirmDate { get; set; }
+
+        /// <summary>
+        /// 期望到货日期
+        /// </summary>
+        [Comment("期望到货日期")]
+        public DateOnly? RequiredDeliveryDate { get; set; }
+
+        /// <summary>
+        /// 产品线编码
+        /// </summary>
+        [Comment("产品线编码")]
+        public string?  DivisionCode { get; set; }
+
+        /// <summary>
+        /// 产品线名称
+        /// </summary>
+        [Comment("产品线名称")]
+        public string?  DivisionName { get; set; }
+
+        /// <summary>
+        /// 合同产品分类编码
+        /// </summary>
+        [Comment("合同产品分类编码")]
+        public string?  SubBUCode { get; set; }
+
+        /// <summary>
+        /// 合同产品分类名称
+        /// </summary>
+        [Comment("合同产品分类名称")]
+        public string? SubBUName { get; set; }
+
+        /// <summary>
+        /// 经销商编码
+        /// </summary>
+        [Comment("经销商编码")]
+        public string?  DealerCode { get; set; }
+
+        /// <summary>
+        /// 经销商名称
+        /// </summary>
+        [Comment("经销商名称")]
+        public string?  DealerName { get; set; }
+
+        /// <summary>
+        /// 经销商类型
+        /// </summary>
+        [Comment("经销商类型")]
+        public string? DealerLevel { get; set; }
+
+        /// <summary>
+        /// 上游公司编码
+        /// </summary>
+        [Comment("上游公司编码")]
+        public string?  ParentDealerCode { get; set; }
+
+        /// <summary>
+        /// 上游公司名称
+        /// </summary>
+        [Comment("上游公司名称")]
+        public string?  ParentDealerName { get; set; }
+
+        /// <summary>
+        /// 配送类型
+        /// </summary>
+        [Comment("配送类型")]
+        public string?  DeliveryType { get; set; }
+
+        /// <summary>
+        /// 配送商
+        /// </summary>
+        [Comment("配送商")]
+        public string?  DeliveryVendor { get; set; }
+
+        /// <summary>
+        /// 订单备注
+        /// </summary>
+        [Comment("订单备注")]
+        public string?  Remark { get; set; }
+
+        /// <summary>
+        /// 产品型号
+        /// </summary>
+        [Comment("产品型号")]
+        public string?  UPN { get; set; }
+
+        /// <summary>
+        /// 批次号
+        /// </summary>
+        [Comment("批次号")]
+        public string?  LOT { get; set; }
+
+        /// <summary>
+        /// 采购数量
+        /// </summary>
+        [Comment("采购数量")]
+        [Precision(15, 5)]
+        public decimal?  RequiredQty { get; set; }
+
+        /// <summary>
+        /// 收货数量
+        /// </summary>
+        [Comment("收货数量")]
+        [Precision(15, 5)]
+        public decimal?  ReceiptQty { get; set; }
+
+
+        /// <summary>
+        /// 退货数量
+        /// </summary>
+        [Comment("退货数量")]
+        [Precision(15, 5)]
+        public decimal?  ReturnQty { get; set; }
+    }
+}

+ 59 - 0
MicroServices/Business/Business.Domain/StructuredDB/Production/DMS_IN_RETAILER.cs

@@ -0,0 +1,59 @@
+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.Domain
+{
+    /// <summary>
+    /// 平台的经销商信息
+    /// </summary>
+    [Comment("平台的经销商信息")]
+    public class DMS_IN_RETAILER
+    {
+        /// <summary>
+        /// 经销商编号
+        /// </summary>
+        [Comment("经销商编号")]
+        public string?  DealerCode { get; set; }
+
+        /// <summary>
+        /// 经销商名称
+        /// </summary>
+        [Comment("经销商名称")]
+        public string?  DealerName { get; set; }
+
+        /// <summary>
+        /// 经销商类型
+        /// </summary>
+        [Comment("经销商类型")]
+        public string?  DealerLevel { get; set; }
+
+        /// <summary>
+        /// 销售大区
+        /// </summary>
+        [Comment("销售大区")]
+        public string?  Region { get; set; }
+
+        /// <summary>
+        /// 销售小区
+        /// </summary>
+        [Comment("销售小区")]
+        public string?  District { get; set; }
+
+        /// <summary>
+        /// 销售代表
+        /// </summary>
+        [Comment("销售代表")]
+        public string?  SA { get; set; }
+
+        /// <summary>
+        /// 经销商状态
+        /// </summary>
+        [Comment("经销商状态")]
+        public string? DealerStatus { get; set; }
+    }
+}

+ 213 - 0
MicroServices/Business/Business.Domain/StructuredDB/Production/DMS_IN_SHIPPINGDETAIL.cs

@@ -0,0 +1,213 @@
+using Microsoft.EntityFrameworkCore;
+using NLog.Fluent;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Business.Domain
+{
+    /// <summary>
+    /// 平台的实际出货数据
+    /// </summary>
+    [Comment("平台的实际出货数据")]
+    public class DMS_IN_SHIPPINGDETAIL
+    {
+        /// <summary>
+        /// 产品线编码
+        /// </summary>
+        [Comment("产品线编码")]
+        public string? DivisionCode { get; set; }
+
+        /// <summary>
+        /// 产品线名称
+        /// </summary>
+        [Comment("产品线名称")]
+        public string? DivisionName { get; set; }
+
+
+        /// <summary>
+        /// 经销商编码
+        /// </summary>
+        [Comment("经销商编码")]
+        public string? DealerCode { get; set; }
+
+        /// <summary>
+        /// 经销商名称
+        /// </summary>
+        [Comment("经销商名称")]
+        public string? DealerName { get; set; }
+
+        /// <summary>
+        /// 经销商类型
+        /// </summary>
+        [Comment("经销商类型")]
+        public string? DealerLevel { get; set; }
+
+        /// <summary>
+        /// 上游公司编码
+        /// </summary>
+        [Comment("上游公司编码")]
+        public string? ParentDealerCode { get; set; }
+
+        /// <summary>
+        /// 上游公司名称
+        /// </summary>
+        [Comment("上游公司名称")]
+        public string? ParentDealerName { get; set; }
+
+
+        /// <summary>
+        /// 合并经销商代码
+        /// </summary>
+        [Comment("合并经销商代码")]
+        public string?  Cons_DealerCode { get; set; }
+
+        /// <summary>
+        /// 合并经销商名称
+        /// </summary>
+        [Comment("合并经销商名称")]
+        public string?  Cons_DealerName { get; set; }
+
+        /// <summary>
+        /// 仓库编码
+        /// </summary>
+        [Comment("仓库编码")]
+        public string?  WarehouseCode { get; set; }
+
+        /// <summary>
+        /// 仓库名称
+        /// </summary>
+        [Comment("仓库名称")]
+        public string?  WarehouseName { get; set; }
+
+        /// <summary>
+        /// 医院编码
+        /// </summary>
+        [Comment("医院编码")]
+        public string?  HospitalCode { get; set; }
+
+        /// <summary>
+        /// 医院名称
+        /// </summary>
+        [Comment("医院名称")]
+        public string?  HospitalName { get; set; }
+
+        /// <summary>
+        /// 医院省份
+        /// </summary>
+        [Comment("医院省份")]
+        public string?  HOS_Province { get; set; }
+
+        /// <summary>
+        /// 医院城市
+        /// </summary>
+        [Comment("医院城市")]
+        public string?  HOS_City { get; set; }
+
+        /// <summary>
+        /// 产品型号
+        /// </summary>
+        [Comment("产品型号")]
+        public string? UPN { get; set; }
+
+        /// <summary>
+        /// 产品有效期
+        /// </summary>
+        [Comment("产品有效期")]
+        public DateOnly? ExpiredDate { get; set; }
+
+        /// <summary>
+        /// 批次号
+        /// </summary>
+        [Comment("批次号")]
+        public string? LOT { get; set; }
+
+        /// <summary>
+        /// 二维码QRCode
+        /// </summary>
+        [Comment("二维码QRCode")]
+        public string?  QRCode { get; set; }
+
+        /// <summary>
+        /// 销售出库单编号
+        /// </summary>
+        [Comment("销售出库单编号")]
+        public string?  ShipmentNo { get; set; }
+
+        /// <summary>
+        /// 出库单类型
+        /// </summary>
+        [Comment("出库单类型")]
+        public string?  OrderType { get; set; }
+
+        /// <summary>
+        /// 出库单状态
+        /// </summary>
+        [Comment("出库单状态")]
+        public string?  Status { get; set; }
+
+        /// <summary>
+        /// 用量日期
+        /// </summary>
+        [Comment("用量日期")]
+        public DateOnly?  ShipmentDate { get; set; }
+
+        /// <summary>
+        /// 提交日期
+        /// </summary>
+        [Comment("提交日期")]
+        public DateOnly?  SubmitDate { get; set; }
+
+        /// <summary>
+        /// 更新日期
+        /// </summary>
+        [Comment("更新日期")]
+        public DateOnly? UpdateDate { get; set; }
+
+        /// <summary>
+        /// 调整类型
+        /// </summary>
+        [Comment("调整类型")]
+        public string?  AdjType { get; set; }
+
+        /// <summary>
+        /// 调整原因
+        /// </summary>
+        [Comment("调整原因")]
+        public string?  AdjReason { get; set; }
+
+        /// <summary>
+        /// 调整时间
+        /// </summary>
+        [Comment("调整时间")]
+        public DateTime? AdjInputTime { get; set; }
+
+        /// <summary>
+        /// 销售大区
+        /// </summary>
+        [Comment("销售大区")]
+        public string? Region { get; set; }
+
+        /// <summary>
+        /// 销售小区
+        /// </summary>
+        [Comment("销售小区")]
+        public string? District { get; set; }
+
+        /// <summary>
+        /// 销售代表
+        /// </summary>
+        [Comment("销售代表")]
+        public string? SA { get; set; }
+
+        /// <summary>
+        /// 数量
+        /// </summary>
+        [Comment("数量")]
+        [Precision(15, 5)]
+        public decimal? Qty { get; set; }
+    }
+}

+ 41 - 6
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/BusinessDbContextModelCreatingExtensions.cs

@@ -1,5 +1,6 @@
 using Business.Domain;
 using Microsoft.EntityFrameworkCore;
+using System;
 using Volo.Abp;
 using Volo.Abp.EntityFrameworkCore.Modeling;
 
@@ -311,18 +312,52 @@ namespace Business.EntityFrameworkCore
         {
             //TODO:这样太麻烦了,有时间研究一下批量
             Check.NotNull(builder, nameof(builder));
-            builder.Entity<in_kd_material>(b =>
+            builder.Entity<DMS_IN_ITEMMAPPING>(b =>
             {
-                b.ToTable("in_kd_material");
+                b.ToTable("DMS_IN_ITEMMAPPING");
+                b.HasKey(b => new { b.CfnCode, b.CfnERPCode});
                 b.ConfigureByConvention();
-                b.Property(x => x.Id).ValueGeneratedNever();//迁移sqlserver默认是自增,需要配置一下
             });
 
-            builder.Entity<in_kd_bom>(b =>
+            builder.Entity<DMS_IN_LOCDETAIL>(b =>
+            {
+                b.ToTable("DMS_IN_LOCDETAIL");
+                b.HasKey(b => new { b.WarehouseName, b.UPN,b.LOT });
+                b.Property(b => b.ExpiredDate).HasConversion(d => d.GetValueOrDefault().ToDateTime(TimeOnly.MinValue), d => DateOnly.FromDateTime(d));
+                b.Property(b => b.TransferDate).HasConversion(d => d.GetValueOrDefault().ToDateTime(TimeOnly.MinValue), d => DateOnly.FromDateTime(d));
+                b.Property(b => b.InventoryDate).HasConversion(d => d.GetValueOrDefault().ToDateTime(TimeOnly.MinValue), d => DateOnly.FromDateTime(d));
+                b.ConfigureByConvention(); 
+            });
+
+            builder.Entity<DMS_IN_PODETAIL>(b =>
+            {
+                b.ToTable("DMS_IN_PODETAIL");
+                b.HasKey(b => new { b.CreateDate,b.OrderNo,b.DealerCode,b.UPN, b.LOT });
+                b.Property(b => b.CreateDate).HasConversion(d => d.GetValueOrDefault().ToDateTime(TimeOnly.MinValue), d => DateOnly.FromDateTime(d));
+                b.Property(b => b.ConfirmDate).HasConversion(d => d.GetValueOrDefault().ToDateTime(TimeOnly.MinValue), d => DateOnly.FromDateTime(d));
+                b.Property(b => b.LatestAuditDate).HasConversion(d => d.GetValueOrDefault().ToDateTime(TimeOnly.MinValue), d => DateOnly.FromDateTime(d));
+                b.Property(b => b.RequiredDeliveryDate).HasConversion(d => d.GetValueOrDefault().ToDateTime(TimeOnly.MinValue), d => DateOnly.FromDateTime(d));
+                b.Property(b => b.SubmitDate).HasConversion(d => d.GetValueOrDefault().ToDateTime(TimeOnly.MinValue), d => DateOnly.FromDateTime(d));
+                b.Property(b => b.UpdateDate).HasConversion(d => d.GetValueOrDefault().ToDateTime(TimeOnly.MinValue), d => DateOnly.FromDateTime(d));
+                b.ConfigureByConvention(); 
+            });
+
+            builder.Entity<DMS_IN_RETAILER>(b =>
             {
-                b.ToTable("in_kd_bom");
+                b.ToTable("DMS_IN_RETAILER");
+                b.HasKey(b => new { b.DealerCode, b.DealerLevel, b.Region, b.District });
+                b.ConfigureByConvention();
+            });
+
+            builder.Entity<DMS_IN_SHIPPINGDETAIL>(b =>
+            {
+                b.ToTable("DMS_IN_SHIPPINGDETAIL");
+                b.HasKey(b => new { b.QRCode, b.ShipmentNo}); 
+                b.Property(b => b.ExpiredDate).HasConversion(d => d.GetValueOrDefault().ToDateTime(TimeOnly.MinValue), d => DateOnly.FromDateTime(d));
+                b.Property(b => b.ShipmentDate).HasConversion(d => d.GetValueOrDefault().ToDateTime(TimeOnly.MinValue), d => DateOnly.FromDateTime(d));
+                b.Property(b => b.SubmitDate).HasConversion(d => d.GetValueOrDefault().ToDateTime(TimeOnly.MinValue), d => DateOnly.FromDateTime(d));
+                b.Property(b => b.UpdateDate).HasConversion(d => d.GetValueOrDefault().ToDateTime(TimeOnly.MinValue), d => DateOnly.FromDateTime(d));
                 b.ConfigureByConvention();
-                b.Property(x => x.Id).ValueGeneratedNever();//迁移sqlserver默认是自增,需要配置一下
             });
         }
 

+ 2 - 0
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/DOP/BusinessDbContext.cs

@@ -270,6 +270,8 @@ namespace Business.EntityFrameworkCore
 
         public DbSet<ASNBOLShipperDetail> ASNBOLShipperDetail { get; set; }
 
+        public DbSet<ASNBOLShipperMaster> ASNBOLShipperMaster { get; set; }
+
         public DbSet<InvTransHist> InvTransHist { get; set; }
 
         /// <summary>

+ 5 - 3
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/Ext/BusinessExtDbContext.cs

@@ -11,9 +11,11 @@ namespace Business.EntityFrameworkCore
     [ConnectionStringName("DOPExt")]
     public class BusinessExtDbContext : AbpDbContext<BusinessExtDbContext>
     {
-        public DbSet<in_kd_material> material { get; set; }
-        public DbSet<in_kd_bom> bom { get; set; }   
-        public DbSet<ext_xref> ext_xref { get; set; }
+        public DbSet<DMS_IN_ITEMMAPPING> DMS_IN_ITEMMAPPING { get; set; }
+        public DbSet<DMS_IN_LOCDETAIL> DMS_IN_LOCDETAIL { get; set; }   
+        public DbSet<DMS_IN_PODETAIL> DMS_IN_PODETAIL { get; set; }
+        public DbSet<DMS_IN_RETAILER> DMS_IN_RETAILER { get; set; }
+        public DbSet<DMS_IN_SHIPPINGDETAIL> DMS_IN_SHIPPINGDETAIL { get; set; }
         public BusinessExtDbContext(DbContextOptions<BusinessExtDbContext> options)
             : base(options)
         {

+ 122 - 0
MicroServices/Business/Business.EntityFrameworkCore/Repository/SqlRepositories/ExtSqlRepository.cs

@@ -0,0 +1,122 @@
+using System;
+using System.Collections.Generic;
+using System.Data.Common;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore;
+using System.Collections;
+using Business.EntityFrameworkCore;
+using System.Linq.Expressions;
+using System.Data.SqlClient;
+using EFCore.BulkExtensions;
+
+namespace Business.EntityFrameworkCore.SqlRepositories
+{
+    public class ExtSqlRepository<T>:ISqlRepository<T> where T : class, new()
+    {
+        readonly BusinessExtDbContext _dbContext;
+
+        public ExtSqlRepository(BusinessExtDbContext dbContext)
+        {
+            _dbContext = dbContext;
+        }
+        public  int Insert(T entity)
+        {
+            _dbContext.Set<T>().Add(entity);
+            return  _dbContext.SaveChanges();
+        }
+
+        public int Insert(List<T> entitylist)
+        {
+             _dbContext.Set<T>().AddRange(entitylist);
+            return  _dbContext.SaveChanges();
+        }
+
+        public  int Update(T entity)
+        {
+            _dbContext.Set<T>().Update(entity);
+           return _dbContext.SaveChanges();
+        }
+        public  int Update(List<T> entitylist)
+        {
+            _dbContext.Set<T>().UpdateRange(entitylist);
+           return  _dbContext.SaveChanges();
+        }
+
+        public int Update(Expression<Func<T, bool>> whereLambda, Expression<Func<T, T>> entity)
+        {
+            _dbContext.Set<T>().Where(whereLambda).BatchUpdate(entity);
+            return  _dbContext.SaveChanges();
+        }
+
+        public  int Delete(Expression<Func<T, bool>> whereLambda)
+        {
+            _dbContext.Set<T>().Where(whereLambda).BatchDelete();
+            return  _dbContext.SaveChanges();
+        }
+
+        public int Delete(List<T> entitylist)
+        {
+            _dbContext.Set<T>().RemoveRange(entitylist);
+            return _dbContext.SaveChanges();
+        }
+
+        public  bool IsExist(Expression<Func<T, bool>> whereLambda)
+        {
+            return  _dbContext.Set<T>().Any(whereLambda);
+        }
+
+        public  List<T> Select()
+        {
+            return  _dbContext.Set<T>().ToList();
+        }
+
+        public  List<T> Select(Expression<Func<T, bool>> whereLambda)
+        {
+            return _dbContext.Set<T>().Where(whereLambda).ToList();
+        }
+
+        public Tuple<List<T>, int> Select<S>(int pageSize, int pageIndex, Expression<Func<T, bool>> whereLambda, Expression<Func<T, S>> orderByLambda, bool isAsc)
+        {
+            var total = _dbContext.Set<T>().Where(whereLambda).Count();
+
+            if (isAsc)
+            {
+                var entities =  _dbContext.Set<T>().Where(whereLambda)
+                                      .OrderBy<T, S>(orderByLambda)
+                                      .Skip(pageSize * (pageIndex - 1))
+                                      .Take(pageSize).ToList();
+
+                return  new Tuple<List<T>, int>(entities, total);
+            }
+            else
+            {
+                var entities = _dbContext.Set<T>().Where(whereLambda)
+                                      .OrderByDescending<T, S>(orderByLambda)
+                                      .Skip(pageSize * (pageIndex - 1))
+                                      .Take(pageSize).ToList();
+
+                return new Tuple<List<T>, int>(entities, total);
+            }
+        }
+
+        public DataSet SelectDataBaseBySql(string sql, string tableName)
+        {
+            DataSet ds = new DataSet();
+            try
+            {
+                string connectionString = _dbContext.Database.GetConnectionString();
+                SqlDataAdapter da = new SqlDataAdapter(sql, connectionString);
+                da.Fill(ds, tableName);
+            }
+            catch (Exception ex)
+            {
+            }
+            return ds;
+        }
+    }
+}

+ 1 - 0
MicroServices/Business/Business.Host/Startup.cs

@@ -14,6 +14,7 @@ namespace Business
         {
             services.AddApplication<BusinessHostModule>();
             services.AddScoped(typeof(ISqlRepository<>), typeof(SqlRepository<>));
+            services.AddScoped(typeof(ISqlRepository<>), typeof(ExtSqlRepository<>));
             services.AddScoped(typeof(ISystemJobAppService), typeof(SystemJobAppService));
             services.AddScoped<GZY.Quartz.MUI.Areas.MyFeature.Pages.MainModel>();
         }

+ 1 - 1
MicroServices/Business/Business.Host/appsettings.json

@@ -16,7 +16,7 @@
     "Default": "Server=123.60.181.157;Database=dopbiz;uid=sa;pwd=5h3n9)uN;Trusted_Connection=false;TrustServerCertificate=True",
     "DOPLog": "Server=123.60.181.157;Database=dopbiz;uid=sa;pwd=5h3n9)uN;Trusted_Connection=false;TrustServerCertificate=True",
     "DOPBang": "Server=123.60.181.157;Database=dopbiz;uid=sa;pwd=5h3n9)uN;Trusted_Connection=false;TrustServerCertificate=True",
-    "DOPExt": "Server=123.60.181.157;Database=dopbiz;uid=sa;pwd=5h3n9)uN;Trusted_Connection=false;TrustServerCertificate=True",
+    "DOPExt": "Server=123.60.181.157;Database=DOPEXT;uid=sa;pwd=5h3n9)uN;Trusted_Connection=false;TrustServerCertificate=True",
     "MongoDB": "mongodb://zzydop:h1Q$us3r@123.60.181.157/dopbase",
     "Factory_id": "8010"
   },

+ 0 - 42
MicroServices/Business/Business.HttpApi/Controllers/Kanban/KanbanController.cs

@@ -1,42 +0,0 @@
-using Business.ResourceExamineManagement;
-using Business.ResourceExamineManagement.Dto;
-using Microsoft.AspNetCore.Mvc;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Volo.Abp;
-using Volo.Abp.AspNetCore.Mvc;
-
-namespace Business.Controllers.Kanban
-{
-    /// <summary>
-    /// 看板&报表
-    /// </summary>
-    [RemoteService]
-    [Area("Business")]
-    [Route("api/business/kanban")]
-    public class KanbanController : AbpController
-    {
-        //private readonly IResourceExamineAppService _ResourceExamineAppService;
-
-        public KanbanController(IResourceExamineAppService ResourceExamineAppService)
-        {
-            //_ResourceExamineAppService = ResourceExamineAppService;
-        }
-
-        /// <summary>
-        /// 待收货看板
-        /// </summary>
-        /// <param name="input"></param>
-        /// <returns></returns>
-        [HttpGet]
-        [Route("demo")]
-        public Task<string> Demo()
-        {
-            //收货通知组织、收货通知日期、收货通知单号、收货申请人、单据类型、供应商编码、供应商名称、已等待收货时间、物料编码、物料名称、规格型号、数量
-            throw new NotImplementedException();
-        }
-    }
-}

+ 0 - 42
MicroServices/Business/Business.HttpApi/Controllers/QMS/QMSController.cs

@@ -1,42 +0,0 @@
-using Business.ResourceExamineManagement;
-using Business.ResourceExamineManagement.Dto;
-using Microsoft.AspNetCore.Mvc;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Volo.Abp;
-using Volo.Abp.AspNetCore.Mvc;
-
-namespace Business.Controllers.QMS
-{
-    /// <summary>
-    /// QMS示例,具体接口名称和接口设计请参考具体需求文档
-    /// </summary>
-    [RemoteService]
-    [Area("Business")]
-    [Route("api/business/qms")]
-    public class QMSController : AbpController
-    {
-        //private readonly IResourceExamineAppService _ResourceExamineAppService;
-
-        public QMSController(IResourceExamineAppService ResourceExamineAppService)
-        {
-            //_ResourceExamineAppService = ResourceExamineAppService;
-        }
-
-        /// <summary>
-        /// 待收货看板
-        /// </summary>
-        /// <param name="input"></param>
-        /// <returns></returns>
-        [HttpGet]
-        [Route("demo")]
-        public Task<string> Demo()
-        {
-            //收货通知组织、收货通知日期、收货通知单号、收货申请人、单据类型、供应商编码、供应商名称、已等待收货时间、物料编码、物料名称、规格型号、数量
-            throw new NotImplementedException();
-        }
-    }
-}

+ 0 - 42
MicroServices/Business/Business.HttpApi/Controllers/SIM/AndonController.cs

@@ -1,42 +0,0 @@
-using Business.ResourceExamineManagement;
-using Business.ResourceExamineManagement.Dto;
-using Microsoft.AspNetCore.Mvc;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Volo.Abp;
-using Volo.Abp.AspNetCore.Mvc;
-
-namespace Business.Controllers.SIM
-{
-    /// <summary>
-    /// 安灯系统示例,具体接口名称和接口设计请参考具体需求文档
-    /// </summary>
-    [RemoteService]
-    [Area("Business")]
-    [Route("api/business/andon")]
-    public class AndonController : AbpController
-    {
-        //private readonly IResourceExamineAppService _ResourceExamineAppService;
-
-        public AndonController(IResourceExamineAppService ResourceExamineAppService)
-        {
-            //_ResourceExamineAppService = ResourceExamineAppService;
-        }
-
-        /// <summary>
-        /// 待收货看板
-        /// </summary>
-        /// <param name="input"></param>
-        /// <returns></returns>
-        [HttpGet]
-        [Route("demo")]
-        public Task<string> Demo()
-        {
-            //收货通知组织、收货通知日期、收货通知单号、收货申请人、单据类型、供应商编码、供应商名称、已等待收货时间、物料编码、物料名称、规格型号、数量
-            throw new NotImplementedException();
-        }
-    }
-}

+ 0 - 42
MicroServices/Business/Business.HttpApi/Controllers/SIM/SIMController.cs

@@ -1,42 +0,0 @@
-using Business.ResourceExamineManagement;
-using Business.ResourceExamineManagement.Dto;
-using Microsoft.AspNetCore.Mvc;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Volo.Abp;
-using Volo.Abp.AspNetCore.Mvc;
-
-namespace Business.Controllers.SIM
-{
-    /// <summary>
-    /// SIM系统示例,具体接口名称和接口设计请参考具体需求文档
-    /// </summary>
-    [RemoteService]
-    [Area("Business")]
-    [Route("api/business/sim")]
-    public class SIMController : AbpController
-    {
-        //private readonly IResourceExamineAppService _ResourceExamineAppService;
-
-        public SIMController(IResourceExamineAppService ResourceExamineAppService)
-        {
-            //_ResourceExamineAppService = ResourceExamineAppService;
-        }
-
-        /// <summary>
-        /// 异常问题升级规则
-        /// </summary>
-        /// <param name="input"></param>
-        /// <returns></returns>
-        [HttpGet]
-        [Route("demo")]
-        public Task<string> Demo()
-        {
-            //升级规则维护
-            throw new NotImplementedException();
-        }
-    }
-}

+ 0 - 53
MicroServices/Business/Business.HttpApi/Controllers/WMS/KingdeeController.cs

@@ -1,53 +0,0 @@
-using Business.Core.Utilities;
-using Business.ResourceExamineManagement;
-using Business.ResourceExamineManagement.Dto;
-using Microsoft.AspNetCore.Mvc;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Volo.Abp;
-using Volo.Abp.AspNetCore.Mvc;
-using static Business.Permissions.BusinessPermissions;
-
-namespace Business.Controllers.WMS
-{
-    /// <summary>
-    /// 金蝶数据同步接口
-    /// </summary>
-    [RemoteService]
-    [Area("Business")]
-    [Route("api/business/kingdee")]
-    public class KingdeeController : AbpController
-    {
-        private readonly ISyncKingdeeAppService _SerialNumberAppService;
-
-        public KingdeeController(ISyncKingdeeAppService SerialNumberAppService)
-        {
-            _SerialNumberAppService = SerialNumberAppService;
-        }
-
-        /// <summary>
-        /// 同步供应商
-        /// </summary>
-        /// <returns></returns>
-        [HttpGet]
-        [Route("syncsupplier")]
-        public string SyncSupplier()
-        {
-            return _SerialNumberAppService.SyncSupplier();
-        }
-
-        /// <summary>
-        /// 同步供应商
-        /// </summary>
-        /// <returns></returns>
-        [HttpGet]
-        [Route("syncmaterial")]
-        public string SyncMaterial()
-        {
-            return _SerialNumberAppService.SyncMaterial();
-        }
-    }
-}

+ 16 - 0
MicroServices/Business/QuartzSettings/logs/logs.txt

@@ -797,3 +797,19 @@
 {"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-23T23:10:40.689808+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
 {"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-23T23:10:40.6950497+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
 {"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-23T23:10:40.7061992+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-10-05T18:13:48.6092764+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-10-05T18:13:48.6527378+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-10-05T18:13:48.655717+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-10-05T18:13:48.6574307+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-10-05T18:35:06.6449113+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-10-05T18:35:06.7114778+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-10-05T18:35:06.7159843+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-10-05T18:35:06.7184033+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-10-05T18:50:38.9037525+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-10-05T18:50:38.9650467+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-10-05T18:50:38.9707397+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-10-05T18:50:38.9733481+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-10-05T19:03:05.8178672+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-10-05T19:03:05.8676435+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-10-05T19:03:05.8759565+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-10-05T19:03:05.8781915+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}