浏览代码

在途逻辑调整。

tangdi 2 年之前
父节点
当前提交
9763d215b6

+ 7 - 11
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -3226,11 +3226,6 @@ namespace Business.Replenishment
             await DbSnapShot(input.company_id, input.factoryId, bangid, pretreatments);
             
             DataInitialization(boms, bangid, icitemlist, stocklist, pretreatments, sklist);
-            if (!planCheck)
-            {
-                //如果是齐套检查,则不考虑其他数据的占用,只看原材料库存
-                sklist = new List<mo_ic_item_stockoccupy>();
-            }
             _CalcBomViewAppService.param = param;
             foreach (var item in mo_Mes_Morders)
             {
@@ -3801,15 +3796,16 @@ namespace Business.Replenishment
             List<mo_mes_mooccupy> mes_mooccupyList = _mes_mooccupy.GetListAsync(x => x.moo_state == 1 && !x.IsDeleted && x.company_id == param.company_id
           && boms.Select(p => p.item_number).Contains(x.fitem_number) && x.bang_id == bangid).Result;
 
+            List<long> occoupyRefId = new List<long>();
             //物料采购订单明细
-            var poDetailList = _srm_po_list.GetListAsync(x => icitemlist.Select(p => p.mysql_id).ToList().Contains(x.icitem_id.Value) && x.bang_id == bangid && x.state == 1 && x.rstate == 1 && !x.IsDeleted).Result;
-            //采购订单占用数据
-            var poOccupys = _srm_po_occupy.GetListAsync(x => poDetailList.Select(p => p.Id).ToList().Contains(x.polist_id) && x.bang_id == bangid && !x.IsDeleted).Result;
-            var srm_pr_mains = _srm_pr_main.GetListAsync(x => icitemlist.Select(p => p.mysql_id).ToList().Contains(x.icitem_id.Value) && x.bang_id == bangid && x.state == 0 && !x.IsDeleted).Result;
+            var poDetailList = _srm_po_list.GetListAsync(x => icitemlist.Select(p => p.mysql_id).ToList().Contains(x.icitem_id.Value) && x.bang_id == bangid && x.state == 1 && !x.IsDeleted).Result;
+            occoupyRefId.AddRange(poDetailList.Select(p => p.Id).ToList());
+            var srm_pr_mains = _srm_pr_main.GetListAsync(x => icitemlist.Select(p => p.mysql_id).ToList().Contains(x.icitem_id.Value) && x.bang_id == bangid && x.state != 0 && x.state != 4 && !x.IsDeleted).Result;
+            occoupyRefId.AddRange(srm_pr_mains.Select(p => p.Id).ToList());
+            //采购订单或采购申请占用数据
+            var poOccupys = _srm_po_occupy.GetListAsync(x => occoupyRefId.Contains(x.polist_id) && x.bang_id == bangid && !x.IsDeleted).Result;
             #endregion
 
-            //处理一下已经插入得占用记录
-
             //物料库存
             stocklist.AddRange(_ic_item_stock.GetListAsync(p => p.factory_id == param.factoryId && p.bang_id == bangid && itemIds.Contains(p.icitem_id)).Result);
             //物料库存占用表

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

@@ -1040,7 +1040,7 @@ namespace Business.ResourceExamineManagement
         {
             //物料、供应商为相同才允许合并。
             var idList = AnalysisIdList(ids);
-            List<srm_pr_main> prlist = _mysql_srm_pr_main.GetListAsync(s => idList.Contains(s.Id)).Result;
+            List<srm_pr_main> prlist = _mysql_srm_pr_main.GetListAsync(s => idList.Contains(s.Id) && s.IsRequireGoods == 1).Result;
             if (prlist.Any())
             {
                 if (prlist.Where(s => s.state == 0).Count() > 0)
@@ -1142,7 +1142,8 @@ namespace Business.ResourceExamineManagement
             DateTime toTime = DateTime.Now; //new DateTime(2023, 7, 6);
             DateTime starttime = toTime.Date.AddDays(1);
             DateTime endtime = toTime.Date.AddDays(7);
-            List<srm_pr_main> prlist = _mysql_srm_pr_main.GetListAsync(s => s.company_id.ToString() == companyid && s.pr_ssend_date >= starttime && s.pr_ssend_date <= endtime && s.state == 1).Result;
+            //只合并要货令
+            List<srm_pr_main> prlist = _mysql_srm_pr_main.GetListAsync(s => s.company_id.ToString() == companyid && s.pr_ssend_date >= starttime && s.pr_ssend_date <= endtime && s.state == 1 && s.IsRequireGoods == 1).Result;
             List<ic_item> ic_Items = _mysql_ic_item.GetListAsync(s => s.company_id.ToString() == companyid && prlist.Select(c => c.icitem_id).Contains(s.Id)).Result;
 
             var occupylist = _mysql_srm_po_occupy.GetListAsync(s => prlist.Select(c => c.Id).Contains(s.polist_id.GetValueOrDefault()) && s.company_id.ToString() == companyid && s.IsDeleted == false).Result;
@@ -1152,6 +1153,7 @@ namespace Business.ResourceExamineManagement
             List<srm_pr_main> insetPrList = new List<srm_pr_main>();
             List<srm_pr_main> updatePrList = new List<srm_pr_main>();
             var moPrlist = ObjectMapper.Map<List<srm_pr_main>, List<mo_srm_pr_main>>(prlist);
+            long Nbr = help.NextId();
             foreach (var pr in prlist)
             {
                 bool bl = pr.sentry_id == null;//区分是销售订单和非销售订单的合并。
@@ -1172,7 +1174,7 @@ namespace Business.ResourceExamineManagement
                         prRefoccupy.ForEach(a => {
                             a.polist_id = newPr.Id;
                         });
-                        newPr.pr_billno = pr.pr_type == 2 ? _CalcBomViewAppService.getOrderNum("WWPR") : _CalcBomViewAppService.getOrderNum("PR");//pr单号
+                        newPr.pr_billno = Nbr.ToString();//pr单号
                         newPr.state = pr.state;
                         newPr.pr_rqty = ilist.Sum(s => s.pr_rqty);//需求数量
                         newPr.pr_aqty = ilist.Sum(s => s.pr_aqty);//申请数量
@@ -1190,6 +1192,7 @@ namespace Business.ResourceExamineManagement
                         insetPrList.Add(newPr);
                         ilist.ForEach(s => { s.state = 0; });
                         updatePrList.AddRange(ilist);
+                        Nbr++;
                     }
                 }
             }
@@ -2210,7 +2213,7 @@ namespace Business.ResourceExamineManagement
                     poDto.polist = new List<srm_po_list>();
                     pOGroupDtos.Add(poDto);
                 }
-                item.state = 0;
+                item.state = 4;
                 srm_po_list podetail = new srm_po_list();
                 podetail.GenerateNewId(help.NextId());
                 podetail.pr_id = item.Id;
@@ -3521,16 +3524,14 @@ namespace Business.ResourceExamineManagement
 
             List<long> occoupyRefId = new List<long>();
             //物料采购订单明细
-            var poDetailList = _srm_po_list.GetListAsync(x => icitemlist.Select(p => p.mysql_id).ToList().Contains(x.icitem_id.Value) && x.bang_id == bangid && x.state == 1 && x.rstate == 1 && !x.IsDeleted).Result;
+            var poDetailList = _srm_po_list.GetListAsync(x => icitemlist.Select(p => p.mysql_id).ToList().Contains(x.icitem_id.Value) && x.bang_id == bangid && x.state == 1 && !x.IsDeleted).Result;
             occoupyRefId.AddRange(poDetailList.Select(p => p.Id).ToList());
-            var srm_pr_mains = _srm_pr_main.GetListAsync(x => icitemlist.Select(p => p.mysql_id).ToList().Contains(x.icitem_id.Value) && x.bang_id == bangid && x.state != 0 && !x.IsDeleted).Result;
+            var srm_pr_mains = _srm_pr_main.GetListAsync(x => icitemlist.Select(p => p.mysql_id).ToList().Contains(x.icitem_id.Value) && x.bang_id == bangid && x.state != 0 && x.state != 4 && !x.IsDeleted).Result;
             occoupyRefId.AddRange(srm_pr_mains.Select(p => p.Id).ToList());
             //采购订单或采购申请占用数据
             var poOccupys = _srm_po_occupy.GetListAsync(x => occoupyRefId.Contains(x.polist_id) && x.bang_id == bangid && !x.IsDeleted).Result;
             #endregion
 
-            //处理一下已经插入得占用记录
-            
             //物料库存
             stocklist.AddRange(_ic_item_stock.GetListAsync(p => p.factory_id == param.factoryId && p.bang_id == bangid && itemIds.Contains(p.icitem_id)).Result);
             //物料库存占用表
@@ -3561,7 +3562,7 @@ namespace Business.ResourceExamineManagement
             DateTime dt = DateTime.Now;
             _CalcBomViewAppService.quarter_starttime = dt.AddMonths(0 - (dt.Month - 1) % 3).AddDays(1 - dt.Day).Date;
             _CalcBomViewAppService.quarter_endtime = _CalcBomViewAppService.quarter_starttime.AddMonths(3);
-            _CalcBomViewAppService.quarter_srm_pr_mains = srm_pr_mains.Where(s => s.pr_psend_date >= _CalcBomViewAppService.quarter_starttime && s.pr_psend_date < _CalcBomViewAppService.quarter_endtime).ToList();//本季度PR
+            _CalcBomViewAppService.quarter_srm_pr_mains = _srm_pr_main.GetListAsync(s => s.state != 0 && s.pr_psend_date >= _CalcBomViewAppService.quarter_starttime && s.pr_psend_date < _CalcBomViewAppService.quarter_endtime).Result;//本季度PR
         }
 
         public void GenerateSort(List<BomChildExamineDto> returnlist)
@@ -4252,13 +4253,13 @@ namespace Business.ResourceExamineManagement
                             woDetail.Domain = item.factory_id.ToString();
                             woDetail.WorkOrd = item.morder_no;
                             woDetail.Op = caleList.Max(f => f.Op);
-                            woDetail.ItemNum =caleNumber;
+                            woDetail.ItemNum = caleNumber;
                             woDetail.QtyPosted = 0m;
                             woDetail.QtyReturned = 0m;
                             woDetail.Status = "";
                             woDetail.IsActive = true;
                             woDetail.CreateTime = DateTime.Now;
-                            woDetail.QtyRequired= caleList.Sum(c => c.needCount.GetValueOrDefault());
+                            woDetail.QtyRequired = caleList.Sum(c => c.needCount.GetValueOrDefault());
                             if (workOrd.QtyOrded != 0)
                             {
                                 woDetail.FrozenBOMQty = Math.Round(woDetail.QtyRequired / workOrd.QtyOrded, 10);

+ 1 - 1
MicroServices/Business/Business.Domain/MongoDB/SRM/mo_srm_po_main.cs

@@ -60,7 +60,7 @@ namespace Business.Domain
         [Comment("是否加急")]
         public int? po_express { get; set; }
         /// <summary>
-        /// 数据状态(0-新增、1-通过、2-完成、3-未通过)
+        /// 数据状态(0-新增、1-审核中、2-同意、3-关闭)
         /// </summary>
         [Comment("数据状态")]
         public int? state { get; set; }

+ 1 - 1
MicroServices/Business/Business.Domain/MongoDB/SRM/mo_srm_pr_main.cs

@@ -172,7 +172,7 @@ namespace Business.Domain
         [Comment("单位")]
         public string? pr_unit { get; set; }
         /// <summary>
-        /// 状态 0,关闭;1,新增;    暂时不考虑这种状态,影响PR重新生成,如增加需调整PR代码。2,提交;3,未通过;4,评审通过
+        /// 0,PR合并后旧PR关闭 1,新增  2,推送过SAP 4,关闭 SAP回传PO后关闭PR,或者转了要货令DO后关闭
         /// </summary>
         [Comment("状态")]
         public int? state { get; set; }

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

@@ -141,5 +141,11 @@ namespace Business.Domain
         /// </summary>
         [Comment("仓类型")]
         public string FSTID { get; set; }
+
+        /// <summary>
+        /// 状态  "",新增;A,审核中;B,同意;C,关闭
+        /// </summary>
+        [Comment("状态")]
+        public string Status { get; set; }
     }
 }

+ 1 - 1
MicroServices/Business/Business.Domain/StructuredDB/SRM/srm_pr_main.cs

@@ -179,7 +179,7 @@ namespace Business.Domain
         [Comment("单位")]
         public string pr_unit { get; set; }
         /// <summary>
-        /// 状态 0,关闭;1,新增;    暂时不考虑这种状态,影响PR重新生成,如增加需调整PR代码。2,提交;3,未通过;4,评审通过
+        /// 0,PR合并后旧PR关闭 1,新增  2,推送过SAP 4,关闭 SAP回传PO后关闭PR,或者转了要货令DO后关闭
         /// </summary>
         [Comment("状态")]
         public int? state { get; set; }