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

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

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

+ 1 - 0
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -2124,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);
                 }
 

+ 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交付找到最早日期工单,则返回无需后续继续检查。

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

@@ -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++;
                 });
 
                 //获取工单工艺路径数据

+ 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;//单位

+ 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; }
     }
 }