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

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

Murphy 2 лет назад
Родитель
Сommit
8e95381eff

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

@@ -431,7 +431,7 @@ namespace Business.ResourceExamineManagement
                         //减去提前期
                         LeadTime = plan.self_inspection_date.GetValueOrDefault() + plan.Warehousing_date.GetValueOrDefault() + plan.Shipping_date.GetValueOrDefault();
                     }
-                    mes_Morders.moentry_sys_etime = plan_date.GetValueOrDefault().AddDays(-(int)Math.Floor(LeadTime));
+                    mes_Morders.moentry_sys_etime = plan_date.GetValueOrDefault().AddDays(-(int)Math.Ceiling(LeadTime));
 
                     mes_Morders.moentry_sys_stime = mes_Morders.moentry_sys_etime.GetValueOrDefault().AddDays(-(make_time - 1));
                     MatterTileDevelop(level1Dto, childList, returnlist, sklist, bangid, mes_Morders.moentry_sys_stime, sentrys, icitemlist);
@@ -681,7 +681,7 @@ namespace Business.ResourceExamineManagement
                 //增加前处理时间
                 if (item.clean_leadtime.GetValueOrDefault() != 0)
                 {
-                    plan_date = plan_date.GetValueOrDefault().AddDays(-(int)Math.Floor(item.clean_leadtime.GetValueOrDefault()));
+                    plan_date = plan_date.GetValueOrDefault().AddDays(-(int)Math.Ceiling(item.clean_leadtime.GetValueOrDefault()));
                 }
                 item.use_qty = item.sqty;
                 if (item.erp_cls == 1)
@@ -1206,7 +1206,7 @@ namespace Business.ResourceExamineManagement
                         //增加前处理时间
                         if (item.clean_leadtime.GetValueOrDefault() != 0)
                         {
-                            dateTime = dateTime.AddDays(-(int)Math.Floor(sct.clean_leadtime.GetValueOrDefault()));
+                            dateTime = dateTime.AddDays(-(int)Math.Ceiling(sct.clean_leadtime.GetValueOrDefault()));
                         }
                         if (sct.erp_cls == 1)
                         {
@@ -1548,7 +1548,7 @@ namespace Business.ResourceExamineManagement
             {
                 //-1为提前一天准备
                 srm_Pr.pr_sarrive_date = plan_date.GetValueOrDefault().AddDays(-1 - (int)(Math.Ceiling(plan.clean_leadtime.GetValueOrDefault())));
-                srm_Pr.pr_ssend_date = srm_Pr.pr_sarrive_date.Value.AddDays(-(int)Math.Floor(supplier.lead_time.GetValueOrDefault()));//系统建议下单日期
+                srm_Pr.pr_ssend_date = srm_Pr.pr_sarrive_date.Value.AddDays(-(int)Math.Ceiling(supplier.lead_time.GetValueOrDefault()));//系统建议下单日期
                 if (srm_Pr.pr_ssend_date < DateTime.Now.AddDays(1))
                 {
                     //如果建议下单日期为今天或者过去,则代表物料需求供应时间不够,则需要标记此物料时间不足。
@@ -1560,7 +1560,7 @@ namespace Business.ResourceExamineManagement
                 srm_Pr.pr_ssend_date = DateTime.Now.Date.AddDays(1);//系统建议下单日期
                 srm_Pr.pr_sarrive_date = DateTime.Now.AddDays((double)supplier.lead_time.GetValueOrDefault());//系统建议到达日期(建议到货日期)
             }
-            sRMPR.totalLeadTime = (int)Math.Floor(supplier.lead_time.GetValueOrDefault());
+            sRMPR.totalLeadTime = (int)Math.Ceiling(supplier.lead_time.GetValueOrDefault());
             srm_Pr.pr_sysprice = supplier.order_price;//系统价格(含税)
             srm_Pr.pr_orderprice = qty * supplier.order_price;//订单价格(含税)
             srm_Pr.pr_price = supplier.netpurchase_price;//采购净价(不含税)

+ 2 - 2
MicroServices/Business/Business.Application/ResourceExamineManagement/ProductExamineAppService.cs

@@ -68,7 +68,7 @@ namespace Business.ResourceExamineManagement
                 decimal maxRt = allOps.Max(s => s.RunTime);
                 decimal sumRt = allOps.Sum(s => s.RunTime);
                 decimal totalTime = (param.QtyOrd - 1) * maxRt + sumRt;//总计生产小时
-                return (int)(Math.Floor(totalTime / 8));
+                return (int)(Math.Ceiling(totalTime / 7));
             }
             return 1;
         }
@@ -171,7 +171,7 @@ namespace Business.ResourceExamineManagement
             //获取当天的工作时长(分钟)
             decimal workTime = curCalendars.First(p => p.WeekDay == (int)startTime.DayOfWeek).ShiftsHours1 * 60;
             //计算产能
-            sumQty = Math.Floor((workTime - sumResrt) / 60 * prodLine.Rate);
+            sumQty = Math.Ceiling((workTime - sumResrt) / 60 * prodLine.Rate);
             return sumQty;
         }
 

+ 20 - 26
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -1835,7 +1835,8 @@ namespace Business.ResourceExamineManagement
             if (icitemStokc.Count > 0)
             {
                 List<string> numbers = pretreatments.Select(s => s.item_number).ToList();
-                var locStock = _locationDetail.Select(a => numbers.Contains(a.ItemNum) && a.IsActive && a.Domain == factoryId.ToString());
+                List<string> locationList = new List<string> { "1000", "1001", "5008","8000","8001" };
+                var locStock = _locationDetail.Select(a => numbers.Contains(a.ItemNum) && a.IsActive && a.Domain == factoryId.ToString() && locationList.Contains(a.Location));
                 //设置当前计算bangid
                 icitemStokc.ForEach(item => { 
                     item.bang_id = bangid;
@@ -2668,34 +2669,16 @@ namespace Business.ResourceExamineManagement
                     copyList = new List<WorkOrdRouting>();
                     if (upperOp == null)
                     {
-                        refMilestoneOpList.AddRange(parentlist.Where(x => x.OP < wt.OP).ToList());
+                        refMilestoneOpList.AddRange(parentlist.Where(x => x.OP <= wt.OP).ToList());
                     }
                     else {
-                        refMilestoneOpList.AddRange(parentlist.Where(x => upperOp.OP < x.OP && x.OP < wt.OP).ToList());
+                        refMilestoneOpList.AddRange(parentlist.Where(x => upperOp.OP < x.OP && x.OP <= wt.OP).ToList());
                     }
                     upperOp = wt;
                     GetChildOP(refMilestoneOpList, alllist, copyList);
                     var workPsd = dbPeriodSequences.Where(s => s.ItemNum == wt.ItemNum && s.WorkOrds == work && s.Op == wt.OP).ToList();
                     foreach (var psd in workPsd)
                     {
-                        refMilestoneOpList.ForEach(wor =>
-                        {
-                            var newPsd = new PeriodSequenceDet
-                            {
-                                Domain = domain,
-                                Line = psd.Line,
-                                ItemNum = wor.ItemNum,
-                                PlanDate = psd.PlanDate,
-                                Period = 1,//目前只考虑一班制
-                                OrdQty = psd.OrdQty,
-                                WorkOrds = wor.WorkOrd,
-                                Op = wor.OP,
-                                IsActive = true,
-                                Status = "",
-                                CreateTime = DateTime.Now
-                            };
-                            returnList.Add(newPsd);
-                        });
                         copyList.ForEach(wor =>
                         {
                             var line = prodLines.Where(p => p.Part == wor.ItemNum && p.Op == wor.OP).FirstOrDefault();
@@ -3873,13 +3856,24 @@ namespace Business.ResourceExamineManagement
             await AutoCreatePickBill(workOrdMasters, dbPeriodSequences, nbrMasterList, nbrDetailList, userAccount, workDetails);
             if (nbrMasterList.Any())
             {
-                //改到发布日计划时更新。
-                //dbPeriodSequences.ForEach(p => { p.Status = "r"; });
-                workOrdMasters.ForEach(p => { p.Status = "r"; });
-                var nbrlistDto = _serialNumberAppService.GetBillNo(workOrdMasters[0].Domain, "WOlot", nbrMasterList.Count, userAccount, 1);
+                var worklistDto = _serialNumberAppService.GetBillNo(workOrdMasters[0].Domain, "WOlot", workOrdMasters.Count, userAccount, 1);
+                int index = 0;
+                workOrdMasters.ForEach(p => { 
+                    p.Status = "r";
+                    if (worklistDto.Any())
+                    {
+                        if (worklistDto[index] != null)
+                        {
+                            p.LotSerial = worklistDto[index].NbrResult;
+                        }
+                        index++;
+                    }
+                });
+                
+                var nbrlistDto = _serialNumberAppService.GetBillNo(workOrdMasters[0].Domain, "SM", nbrMasterList.Count, userAccount, 1);
                 if (nbrlistDto.Any())
                 {
-                    int index = 0;
+                    index = 0;
                     foreach (var nm in nbrMasterList)
                     {
                         var nbrDtls = nbrDetailList.Where(s => s.Nbr == nm.Nbr).ToList();

+ 35 - 7
MicroServices/Business/Business.Application/SystemJobManagement/SystemJobAppService.cs

@@ -14,6 +14,7 @@ using System.Threading.Tasks;
 using Volo.Abp.Application.Services;
 using Volo.Abp.Domain.Repositories;
 using Volo.Abp.MultiTenancy;
+using WkHtmlToPdfDotNet;
 
 namespace Business.SystemJobManagement
 {
@@ -167,12 +168,12 @@ namespace Business.SystemJobManagement
         {
             try
             {
-                //SyncCustMaster();
-                //SyncSuppMaster();
+                SyncCustMaster();
+                SyncSuppMaster();
                 //SyncSalesOrdMaster();
                 //SyncSalesOrdMasterEntry();
-                //SyncItemMaster();
-                //SyncBom();
+                SyncItemMaster();
+                SyncBom();
             }
             catch (Exception ex)
             {
@@ -612,6 +613,7 @@ namespace Business.SystemJobManagement
                 custList = _itemMaster.Select(a => a.IsActive && childItems.Distinct().Contains(a.ItemNum));
             }
             List<ic_item> ItemsAdd = new List<ic_item>();
+            List<ic_item> ItemsUpd = new List<ic_item>();
             List<srm_purchase> srm_purchaseAdd = new List<srm_purchase>();
             if (custList != null && custList.Count > 0)
             {
@@ -649,9 +651,9 @@ namespace Business.SystemJobManagement
                             allowserial = custList[i].LotSerialControl ? 1 : 0,//序列号管理
                             photo = "",//图片
                             enable_warning = 1,//启用预警
-                            factory_id =long.Parse(custList[i].Domain),
+                            factory_id = long.Parse(custList[i].Domain),
                             company_id = 1000,
-                            tenant_id=1000,
+                            tenant_id = 1000,
                             IsDeleted = false,
                             clean_leadtime = custList[i].MFGMTTR,
                             is_clean = custList[i].IssuePolicy ? 1 : 0,
@@ -703,10 +705,21 @@ namespace Business.SystemJobManagement
                             IsDeleted = false
                         });*/
                     }
+                    else
+                    {
+                        ic_item.name = custList[i].Descr;
+                        ic_item.model = custList[i].Descr1;//规格型号
+                        ic_item.fversion = "";//版本号
+                        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;//单位
+                        ic_item.clean_leadtime = custList[i].MFGMTTR;
+                        ItemsUpd.Add(ic_item);
+                    }
                 }
             }
             _businessDbContext.BulkInsert(ItemsAdd);
-            //_businessDbContext.BulkInsert(srm_purchaseAdd);
+            _mysql_ic_item.UpdateManyAsync(ItemsUpd);
         }
 
         public void SyncBom()
@@ -717,6 +730,7 @@ namespace Business.SystemJobManagement
             List<ProductStructureMaster> wmsBomList = _productStructureMaster.Select(a => a.IsActive);
             List<ic_bom> ItemsAdd = new List<ic_bom>();
             List<ic_bom_child> childItemsAdd = new List<ic_bom_child>();
+            List<ic_bom_child> childItemsUpd = new List<ic_bom_child>();
             if (wmsBomList != null && wmsBomList.Count > 0)
             {
                 var ItemMasterDS = wmsBomList.Select(a => a.ParentItem).Distinct().ToList();
@@ -810,6 +824,19 @@ namespace Business.SystemJobManagement
                                 };
                                 childItemsAdd.Add(bomchild);
                             }
+                            else
+                            {
+                                icbomchild.qty = child.Qty;
+                                icbomchild.erp_cls = itemchild == null ? 2 : itemchild.erp_cls;
+                                icbomchild.begin_day = child.StartEff;
+                                icbomchild.end_day = child.EndEff;
+                                icbomchild.version = child.Refs;
+                                icbomchild.factory_id = item.factory_id;
+                                icbomchild.company_id = item.company_id;
+                                icbomchild.tenant_id = item.company_id;
+                                icbomchild.Op = child.Op;
+                                childItemsUpd.Add(icbomchild);
+                            }
                         }
                     }
 
@@ -817,6 +844,7 @@ namespace Business.SystemJobManagement
                 }
                 _businessDbContext.BulkInsert(ItemsAdd);
                 _businessDbContext.BulkInsert(childItemsAdd);
+                _mysql_ic_bom_child.UpdateManyAsync(childItemsUpd);
             }
         }