|
|
@@ -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
|