|
|
@@ -23,6 +23,7 @@ using Volo.Abp.Domain.Repositories;
|
|
|
using Volo.Abp.MultiTenancy;
|
|
|
using Volo.Abp.ObjectMapping;
|
|
|
using Volo.Abp.Uow;
|
|
|
+using static Spire.Pdf.General.Render.Decode.Jpeg2000.j2k.codestream.HeaderInfo;
|
|
|
|
|
|
namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
@@ -2354,7 +2355,7 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- mo_Mes_Morders = _mysql_mes_morder.GetListAsync(x => companyid == x.company_id.ToString() && x.moentry_sys_stime > DateTime.Now.Date.AddDays(1) && x.moentry_sys_stime < DateTime.Now.Date.AddDays(day) && x.morder_state == MorderEnum.Initial_state && !x.IsDeleted).Result;
|
|
|
+ mo_Mes_Morders = _mysql_mes_morder.GetListAsync(x => companyid == x.company_id.ToString() && x.moentry_sys_stime > DateTime.Now.Date.AddDays(1) && x.moentry_sys_stime <= DateTime.Now.Date.AddDays(day) && x.morder_state == MorderEnum.Initial_state && !x.IsDeleted).Result;
|
|
|
}
|
|
|
|
|
|
List<mes_morder> checkMo = new List<mes_morder>();
|
|
|
@@ -2401,7 +2402,7 @@ namespace Business.ResourceExamineManagement
|
|
|
|
|
|
if (checkMo.Any())
|
|
|
{
|
|
|
- var rtn = await OrderKittingCheck(mo_Mes_Morders);
|
|
|
+ var rtn = await OrderKittingCheck(checkMo);
|
|
|
if (rtn != null && rtn.examines != null)
|
|
|
{
|
|
|
var sysSet = _generalizedCodeMaster.Select(s => s.FldName == "SystemConfig" && s.Val == "WorkOrderLockPeriod" && s.Domain == companyid).ToList();
|
|
|
@@ -2468,6 +2469,7 @@ namespace Business.ResourceExamineManagement
|
|
|
if (workords.Length > 0)
|
|
|
{
|
|
|
workords = workords.Substring(1, workords.Length - 1);
|
|
|
+ //如果生成领料单,需清理掉当前工单的占用,然后根据领料单的数据,来生成工单的占用
|
|
|
await CreatePickBill(workords, mo_Mes_Morders[0].factory_id.GetValueOrDefault().ToString());
|
|
|
}
|
|
|
return "ok";
|
|
|
@@ -3438,6 +3440,34 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
dbPeriodSequences.ForEach(p => { p.Status = "r"; });
|
|
|
workOrdMasters.ForEach(p => { p.Status = "r"; });
|
|
|
+
|
|
|
+ //清理掉库存占用 这里考虑的是资源检查的占用没有完全占用备料单数据,而其他数据再进行齐套检查时,无法考虑到备料单的占用。
|
|
|
+ var itemstockoccupy = _mysql_ic_item_stockoccupy.GetListAsync(s => workOrdMasters.Select(x => x.WorkOrd).Contains(s.morder_mo) && s.factory_id.ToString() == domain).Result;
|
|
|
+ var icitem = _mysql_ic_item.GetListAsync(s => s.factory_id.ToString() == domain && nbrDetailList.Select(c => c.ItemNum).Contains(s.number)).Result;
|
|
|
+ //根据领料单生成一次工单的数据占用
|
|
|
+ List<ic_item_stockoccupy> insertOccuyy = new List<ic_item_stockoccupy>();
|
|
|
+ nbrMasterList.ForEach(s =>
|
|
|
+ {
|
|
|
+ var nbrdtls = nbrDetailList.Where(a => a.Nbr == s.Nbr).ToList();
|
|
|
+ nbrdtls.ForEach(x =>
|
|
|
+ {
|
|
|
+ ic_item_stockoccupy itemStockoccupyDto = new ic_item_stockoccupy();
|
|
|
+ itemStockoccupyDto.morder_mo = s.WorkOrd;
|
|
|
+ itemStockoccupyDto.occupy_time = DateTime.Now;
|
|
|
+ var nbrItem = icitem.Find(c => c.number == x.ItemNum);
|
|
|
+ if(nbrItem!= null) {
|
|
|
+ itemStockoccupyDto.icitem_id = nbrItem.Id;
|
|
|
+ itemStockoccupyDto.icitem_number = nbrItem.number;
|
|
|
+ itemStockoccupyDto.tenant_id = nbrItem.tenant_id;
|
|
|
+ itemStockoccupyDto.factory_id = nbrItem.factory_id;
|
|
|
+ itemStockoccupyDto.org_id = nbrItem.org_id;
|
|
|
+ itemStockoccupyDto.company_id = nbrItem.company_id;
|
|
|
+ itemStockoccupyDto.quantity = x.CurrQtyOpened.GetValueOrDefault();
|
|
|
+ insertOccuyy.Add(itemStockoccupyDto);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
//获取工单工艺路径数据
|
|
|
List<WorkOrdRouting> workOrdRoutings = _workOrdRouting.Select(p => ords.Contains(p.WorkOrd) && p.MilestoneOp && p.Domain == workOrdMasters[0].Domain && p.Status != "C" && p.IsActive);
|
|
|
workOrdRoutings.ForEach(p => { p.Status = "r"; });
|
|
|
@@ -3451,6 +3481,16 @@ namespace Business.ResourceExamineManagement
|
|
|
string sql = string.Format("exec pr_WMS_BPM_AddMobileTask @TaskID='{0}',@PlanDate='{1}',@ExecuterTypeID=2,@CreateUser='{2}'",a.Nbr,a.Date.Value.ToString("yyyy-MM-dd"),a.CreateUser);
|
|
|
_businessDbContext.Database.ExecuteSqlRaw(sql);
|
|
|
});
|
|
|
+
|
|
|
+ if (itemstockoccupy.Any())
|
|
|
+ {
|
|
|
+ _businessDbContext.BulkDelete(itemstockoccupy);
|
|
|
+ }
|
|
|
+ if (insertOccuyy.Any())
|
|
|
+ {
|
|
|
+ _businessDbContext.BulkInsert(insertOccuyy);
|
|
|
+ }
|
|
|
+
|
|
|
//快开平台用自增列RecId关联,所以需要插入后再查给明细表赋相应的值
|
|
|
List<string> nbrs = nbrMasterList.Select(a => a.Nbr).ToList();
|
|
|
var DBnbrList = _nbrMaster.Select(a => a.Domain == workOrdMasters[0].Domain && a.Type == "SM" && nbrs.Contains(a.Nbr));
|