Ver Fonte

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

heteng há 2 anos atrás
pai
commit
c72695dbcc

+ 7 - 0
MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/IResourceExamineAppService.cs

@@ -161,5 +161,12 @@ namespace Business.ResourceExamineManagement
         /// <param name="domain"></param>
         /// <returns></returns>
         Task<string> AutoMergeWWPR(string domain);
+
+        /// <summary>
+        /// Éú³É½»»õ¼Æ»®
+        /// </summary>
+        /// <param name="domain"></param>
+        /// <returns></returns>
+        Task<string> CreateDemandSchedule(string domain);
     }
 }

+ 45 - 0
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -37,6 +37,7 @@ using System.Threading.Tasks;
 using Volo.Abp.Application.Services;
 using Volo.Abp.DependencyInjection;
 using Volo.Abp.Domain.Repositories;
+using Volo.Abp.EntityFrameworkCore;
 using Volo.Abp.Json.SystemTextJson;
 using Volo.Abp.MultiTenancy;
 using Volo.Abp.ObjectMapping;
@@ -5639,6 +5640,50 @@ namespace Business.ResourceExamineManagement
                 return "保存失败,请联系管理员。";
             }
         }
+
+
+        public async Task<string> CreateDemandSchedule(string domain)
+        {
+            try
+            {
+                var weekday = (int)DateTime.Now.DayOfWeek;
+                int adddays = weekday==0?1:8-weekday;
+                DateTime beginTime = Convert.ToDateTime(DateTime.Now.AddDays(adddays).ToString("yyyy-MM-dd 00:00:00.000"));
+                DateTime endTime = Convert.ToDateTime(DateTime.Now.AddDays(adddays+21+6).ToString("yyyy-MM-dd 23:59:59.999"));
+                var workords=_workOrdMaster.Select(a => a.OrdDate >= beginTime && a.OrdDate <= endTime && a.Domain == domain);
+                var workordList = workords.Select(x => x.WorkOrd).Distinct().ToList();       
+                var workExamineResult=_businessBangDbContext.b_examine_result.Where(a => workordList.Contains(a.morder_no)).GroupBy(i => i.morder_no).Select(g => new
+                {
+                    workOrd = g.Key,
+                    examineId = g.Max(row => row.Id)
+                });
+                //需要测试工单没有做资源检查会不会报错
+                var examineIds = workExamineResult.Select(s => s.examineId).ToList();
+                var examines=_mysql_bom_child_examine.GetListAsync(a => examineIds.Contains(a.examine_id.Value) && a.erp_cls==3 && a.lack_qty>0 && a.factory_id.ToString() == domain).Result;
+                //var pickBills = _nbrDetail.Select(a => workordList.Contains(a.WorkOrd) && a.Type.ToUpper()="SM" && a.Domain == domain);
+                for(int i=0;i<4;i++)
+                {
+                    var itemBegin = beginTime.AddDays(i*7);
+                    var itemEnd = endTime.AddDays(7 * i-28);
+                    var workItem = workords.Where(a => a.OrdDate >= itemBegin && a.OrdDate <= itemEnd).ToList();
+                    if(workItem.Count>0)
+                    {
+                        var examids=workExamineResult.Where(a => workItem.Select(x => x.WorkOrd).ToList().Contains(a.workOrd)).Select(s => s.examineId);
+                        //examines.Where()
+                        foreach (var item in workItem)
+                        {
+                            //workExamineResult.
+                        }
+                    }
+                }
+                return "ok";
+            }
+            catch (Exception e)
+            {
+                new NLogHelper("ResourceExamineAppService").WriteLog("CreateDemandSchedule", "生成交货计划失败:" + e.Message, _currentTenant.Id.ToString());
+                return "保存失败,请联系管理员。";
+            }
+        }
     }
 
     public class WorkOrdDto

+ 12 - 0
MicroServices/Business/Business.HttpApi/Controllers/ResourceExamineController.cs

@@ -284,5 +284,17 @@ namespace Business.Controllers
         {
             return _ResourceExamineAppService.AutoMergeWWPR(domain);
         }
+
+        /// <summary>
+        /// 生成交货计划
+        /// </summary>
+        /// <param name="domain"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("createdemandschedule")]
+        public Task<string> CreateDemandSchedule(string domain)
+        {
+            return _ResourceExamineAppService.CreateDemandSchedule(domain);
+        }
     }
 }