|
|
@@ -10,7 +10,9 @@ using Business.ResourceExamineManagement.Dto;
|
|
|
using Business.StructuredDB.SaleFcst;
|
|
|
using Business.StructuredDB.WMS;
|
|
|
using EFCore.BulkExtensions;
|
|
|
+using Microsoft.AspNetCore.DataProtection.Repositories;
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
+using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
|
using MongoDB.Driver;
|
|
|
using MongoDB.Driver.Linq;
|
|
|
using Newtonsoft.Json;
|
|
|
@@ -30,6 +32,7 @@ using Volo.Abp.MultiTenancy;
|
|
|
using Volo.Abp.ObjectMapping;
|
|
|
using Volo.Abp.Uow;
|
|
|
using static Spire.Pdf.General.Render.Decode.Jpeg2000.j2k.codestream.HeaderInfo;
|
|
|
+using static Volo.Abp.Identity.Settings.IdentitySettingNames;
|
|
|
|
|
|
namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
@@ -2415,6 +2418,9 @@ namespace Business.ResourceExamineManagement
|
|
|
//只做库存是否齐套检查
|
|
|
if (mo_Mes_Morders.Any())
|
|
|
{
|
|
|
+ List<mes_morder> updateList = new List<mes_morder>();
|
|
|
+ List<mes_morder> xdupdateList = new List<mes_morder>();
|
|
|
+
|
|
|
//检查工单是否已经下了领料单
|
|
|
var nbrList = _nbrMaster.Select(a => a.Domain == domain && a.Type == "SM" && mo_Mes_Morders.Select(c => c.morder_no).Contains(a.WorkOrd));
|
|
|
foreach (var mo in mo_Mes_Morders)
|
|
|
@@ -2444,6 +2450,7 @@ namespace Business.ResourceExamineManagement
|
|
|
//工单状态为 “备料中”
|
|
|
mo.MaterialSituation = MorderEnum.Preparation;
|
|
|
}
|
|
|
+ updateList.Add(mo);
|
|
|
//完成时间已经过去,则不做处理
|
|
|
}
|
|
|
else {
|
|
|
@@ -2501,6 +2508,7 @@ namespace Business.ResourceExamineManagement
|
|
|
workords += "," + cmo.morder_no;
|
|
|
cmo.MaterialSituation = MorderEnum.Preparation;
|
|
|
cmo.morder_state = MorderEnum.Xd_state;
|
|
|
+ updateList.Add(cmo);
|
|
|
}
|
|
|
else {
|
|
|
cmo.MaterialSituation = MorderEnum.CarehouseComplete;
|
|
|
@@ -2509,6 +2517,10 @@ namespace Business.ResourceExamineManagement
|
|
|
workords += "," + cmo.morder_no;
|
|
|
cmo.MaterialSituation = MorderEnum.Preparation;
|
|
|
cmo.morder_state = MorderEnum.Xd_state;
|
|
|
+ xdupdateList.Add(cmo);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ updateList.Add(cmo);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -2521,6 +2533,11 @@ namespace Business.ResourceExamineManagement
|
|
|
workords += "," + cmo.morder_no;
|
|
|
cmo.morder_state = MorderEnum.Xd_state;
|
|
|
cmo.MaterialSituation = MorderEnum.Part;
|
|
|
+ xdupdateList.Add(cmo);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ updateList.Add(cmo);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -2530,7 +2547,7 @@ namespace Business.ResourceExamineManagement
|
|
|
//保存检查结果
|
|
|
SaveExamineResult(result.KittingCheckResultList, result.DayBulletinBoardList, 1);*/
|
|
|
}
|
|
|
- _businessDbContext.BulkUpdate(mo_Mes_Morders);
|
|
|
+ _businessDbContext.BulkUpdate(updateList);
|
|
|
if (workords.Length > 0)
|
|
|
{
|
|
|
workords = workords.Substring(1, workords.Length - 1);
|
|
|
@@ -2540,6 +2557,7 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
return rst;
|
|
|
}
|
|
|
+ _businessDbContext.BulkUpdate(xdupdateList);
|
|
|
var insertList = GetCopyOP(workords, domain);
|
|
|
if (insertList.Any())
|
|
|
{
|
|
|
@@ -3060,8 +3078,13 @@ namespace Business.ResourceExamineManagement
|
|
|
var wkordPrList = prmainlist.Where(s => s.pr_mono == wod.WorkOrd).ToList();
|
|
|
|
|
|
//反算所有的PR,根据时间减去提前期 //按最大预处理时间倒排
|
|
|
- var moIcitems = icitemlist.Where(s => wkordPrList.Select(c => c.icitem_id).Contains(s.mysql_id)).ToList();
|
|
|
- var maxTime = moIcitems.Max(s => s.clean_leadtime.GetValueOrDefault());
|
|
|
+ var moIcitems = icitemlist.Where(s => s.is_clean == 1 && wkordPrList.Select(c => c.icitem_id).Contains(s.mysql_id)).ToList();
|
|
|
+ //获取预处理提前期最大值
|
|
|
+ decimal maxTime = 0;
|
|
|
+ if (moIcitems.Any())
|
|
|
+ {
|
|
|
+ maxTime = moIcitems.Max(x => x.clean_leadtime.GetValueOrDefault());
|
|
|
+ }
|
|
|
wkordPrList.ForEach(pr =>
|
|
|
{
|
|
|
var ts = pr.pr_parrive_date - pr.pr_psend_date;
|
|
|
@@ -3310,7 +3333,7 @@ namespace Business.ResourceExamineManagement
|
|
|
AutoCreateBomBill(companyid);
|
|
|
}
|
|
|
|
|
|
- public async Task AutoCreatePickBill(List<WorkOrdMaster> workOrdMasters, List<PeriodSequenceDet> dbPeriodSequences, List<NbrMaster> nbrMasterList, List<NbrDetail> nbrDetailList, string userAccount)
|
|
|
+ public async Task AutoCreatePickBill(List<WorkOrdMaster> workOrdMasters, List<PeriodSequenceDet> dbPeriodSequences, List<NbrMaster> nbrMasterList, List<NbrDetail> nbrDetailList, string userAccount, List<WorkOrdDetail> workDetails)
|
|
|
{
|
|
|
if (dbPeriodSequences.Any())
|
|
|
{
|
|
|
@@ -3318,11 +3341,14 @@ namespace Business.ResourceExamineManagement
|
|
|
List<LineMaster> AllLineMasters = _lineMaster.Select(p => AllLines.Contains(p.Line) && p.Domain == workOrdMasters[0].Domain && p.IsActive);
|
|
|
var user = _employeeMaster.Select(s => s.Employee == userAccount && s.Domain == workOrdMasters[0].Domain).FirstOrDefault();
|
|
|
var ewdmList = _empWorkDutyMaster.Select(s => s.Domain == workOrdMasters[0].Domain).ToList();
|
|
|
+ //需要前处理物料
|
|
|
+ var Items = _mysql_ic_item.GetListAsync(s => workDetails.Select(c => c.ItemNum).Contains(s.number) && s.factory_id.ToString() == workOrdMasters[0].Domain).Result;
|
|
|
+ List<ItemMaster> itemMasterList = _itemMaster.Select(p => workDetails.Select(c => c.ItemNum).Contains(p.ItemNum) && p.Domain == workOrdMasters[0].Domain).Distinct().ToList();
|
|
|
+
|
|
|
//按照工单领料,一个工单一个领料单,之前是按照排产日期和产线分别领料
|
|
|
foreach (var workord in workOrdMasters)
|
|
|
{
|
|
|
Dictionary<string, decimal> dictItemQty = new Dictionary<string, decimal>();
|
|
|
- decimal QtyOrdSum = workord.QtyOrded;
|
|
|
string LocationTo = "";
|
|
|
LineMaster defaultLine = null;
|
|
|
|
|
|
@@ -3336,110 +3362,44 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
LocationTo = defaultLine?.VLocation;
|
|
|
}
|
|
|
-
|
|
|
- List<ProductStructureMaster> itemList = GetProductStructure(dbPeriodSequences.First(a => a.WorkOrds == workord.WorkOrd).ItemNum, QtyOrdSum, workord.Domain);
|
|
|
- var childrenList = itemList.Select(a => a.ComponentItem).Distinct().ToList();
|
|
|
- List<ItemMaster> itemLocList = _itemMaster.Select(p => childrenList.Contains(p.ItemNum) && p.Domain == workord.Domain && p.IsActive).Distinct().ToList();
|
|
|
- var dopIcitems = _ic_item.GetListAsync(s => itemLocList.Select(c => c.ItemNum).Contains(s.number) && s.factory_id.ToString() == workord.Domain).Result;
|
|
|
+ var workdtls = workDetails.Where(s => s.WorkOrd == workord.WorkOrd).ToList();
|
|
|
+ //List<ProductStructureMaster> itemList = GetProductStructure(dbPeriodSequences.First(a => a.WorkOrds == workord.WorkOrd).ItemNum, QtyOrdSum, workord.Domain);
|
|
|
+ //var childrenList = itemList.Select(a => a.ComponentItem).Distinct().ToList();
|
|
|
+ List<ItemMaster> itemLocList = itemMasterList.Where(p => workdtls.Select(c => c.ItemNum).Contains(p.ItemNum) && p.Domain == workord.Domain).Distinct().ToList();
|
|
|
+
|
|
|
+ List<WorkOrdDetail> cleanDetail = new List<WorkOrdDetail>();
|
|
|
+ List<WorkOrdDetail> noCleanDetail = new List<WorkOrdDetail>();
|
|
|
+ workdtls.ForEach(s => {
|
|
|
+ var i = Items.Find(x => x.number == s.ItemNum && x.is_clean == 1);
|
|
|
+ if (i != null)
|
|
|
+ {
|
|
|
+ cleanDetail.Add(s);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ noCleanDetail.Add(s);
|
|
|
+ }
|
|
|
+ });
|
|
|
//获取预处理提前期最大值
|
|
|
decimal cleanTime = 0;
|
|
|
- if (dopIcitems.Any())
|
|
|
+ if (noCleanDetail.Any())
|
|
|
{
|
|
|
- cleanTime = dopIcitems.Max(s => s.clean_leadtime.GetValueOrDefault());
|
|
|
+ //无需前处理领料单
|
|
|
+ GenerateNbr(workord, cleanTime, defaultLine, userAccount, nbrMasterList, nbrDetailList, noCleanDetail, itemLocList, ewdmList, LocationTo, user,"");
|
|
|
}
|
|
|
- List<ItemPackMaster> itemPackList = _itemPackMaster.Select(p => childrenList.Contains(p.ItemNum) && p.Domain == workord.Domain && p.IsActive).Distinct().ToList();
|
|
|
- var Nbr = GetMaxSerialNumber(417416915624005);
|
|
|
-
|
|
|
- DateTime eff = workord.OrdDate.GetValueOrDefault().Date.AddDays(-1);
|
|
|
- DateTime start = eff.AddDays((double)(0 - cleanTime - 1));
|
|
|
- if (start <= DateTime.Now.Date)
|
|
|
+ if (cleanDetail.Any())
|
|
|
{
|
|
|
- start = DateTime.Now.Date;
|
|
|
+ //需要前处理的领料单
|
|
|
+ cleanTime = Items.Where(s=> cleanDetail.Select(i=>i.ItemNum).Contains(s.number)).Max(s => s.clean_leadtime.GetValueOrDefault());
|
|
|
+ GenerateNbr(workord, cleanTime, defaultLine, userAccount, nbrMasterList, nbrDetailList, cleanDetail, itemLocList, ewdmList, LocationTo, user, "PrevProcess");
|
|
|
}
|
|
|
- var newNbr = new NbrMaster
|
|
|
- {
|
|
|
- Domain = workord.Domain,
|
|
|
- Type = "SM",
|
|
|
- Nbr = Nbr,
|
|
|
- Remark = "下达自动领料",
|
|
|
- //Date = dbPeriodSequences.Where(a => a.WorkOrds == workord.WorkOrd).Min(a => a.PlanDate),
|
|
|
- ProdLine = defaultLine?.Line,
|
|
|
- EffDate = eff,
|
|
|
- Date = start,
|
|
|
- Status = "",
|
|
|
- WorkOrd = workord.WorkOrd,
|
|
|
- QtyOrd = QtyOrdSum,
|
|
|
- IsActive = true,
|
|
|
- IsChanged = true,
|
|
|
- Name = userAccount,
|
|
|
- Department = "101",
|
|
|
- CreateTime = DateTime.Now,
|
|
|
- UpdateTime = DateTime.Now,
|
|
|
- CreateUser = user?.Name,
|
|
|
- UpdateUser = user?.Name,
|
|
|
- };
|
|
|
- nbrMasterList.Add(newNbr);
|
|
|
- List<string> headAccount = new List<string>();
|
|
|
- int i = 1;
|
|
|
- itemList?.ForEach(a =>
|
|
|
- {
|
|
|
- var find = itemLocList?.Find(c => c.ItemNum == a.ComponentItem);
|
|
|
- string LocationFrom = "";
|
|
|
- if (find != null)
|
|
|
- {
|
|
|
- LocationFrom = find.Location;
|
|
|
- //找出职责范围负责人
|
|
|
- //s.ItemNum1 <= a.ComponentItem && a.ComponentItem <= s.ItemNum2
|
|
|
- var ewdm = ewdmList.Find(s => 0 >= string.Compare(s.ItemNum1, a.ComponentItem) && 0 >= string.Compare(a.ComponentItem, s.ItemNum2));
|
|
|
- if (ewdm != null && !string.IsNullOrEmpty(ewdm.Employee))
|
|
|
- {
|
|
|
- headAccount.Add(ewdm.Employee);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //相同物料汇总
|
|
|
- var itemComponent = nbrDetailList.Find(b => b.Nbr == Nbr && b.ItemNum == a.ComponentItem);
|
|
|
- if (itemComponent == null)
|
|
|
- {
|
|
|
- nbrDetailList.Add(new NbrDetail
|
|
|
- {
|
|
|
- Domain = workord.Domain,
|
|
|
- Type = "SM",
|
|
|
- Nbr = Nbr,
|
|
|
- ItemNum = a.ComponentItem,
|
|
|
- QtyFrom = 0,
|
|
|
- QtyTo = 0,
|
|
|
- LocationFrom = LocationFrom,
|
|
|
- LocationTo = LocationTo,//现在这几条线是同一线边仓,暂时不考虑多个线边仓
|
|
|
- WorkOrd = workord.WorkOrd,
|
|
|
- QtyOrd = a.Qty,
|
|
|
- CurrQtyOpened = a.Qty,
|
|
|
- Line = i,
|
|
|
- IsActive = true,
|
|
|
- CreateTime = DateTime.Now,
|
|
|
- UpdateTime = DateTime.Now,
|
|
|
- CreateUser = user?.Name,
|
|
|
- UpdateUser = user?.Name,
|
|
|
- UM = a.UM
|
|
|
- });
|
|
|
- i++;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- nbrDetailList.First(b => b.Nbr == Nbr && b.ItemNum == a.ComponentItem).QtyOrd = itemComponent.QtyOrd + a.Qty;
|
|
|
- nbrDetailList.First(b => b.Nbr == Nbr && b.ItemNum == a.ComponentItem).CurrQtyOpened = itemComponent.CurrQtyOpened + a.Qty;
|
|
|
- }
|
|
|
- });
|
|
|
+
|
|
|
|
|
|
- if (headAccount.Any())
|
|
|
- {
|
|
|
- newNbr.User1 = string.Join(",", headAccount.Distinct());
|
|
|
- string[] user2 = headAccount.ToArray();
|
|
|
- newNbr.User2 =JsonConvert.SerializeObject(user2);
|
|
|
- }
|
|
|
+
|
|
|
+ //List<ItemPackMaster> itemPackList = _itemPackMaster.Select(p => childrenList.Contains(p.ItemNum) && p.Domain == workord.Domain && p.IsActive).Distinct().ToList();
|
|
|
+
|
|
|
|
|
|
- //先屏蔽备料单扣除库存的DEMO演示。
|
|
|
- /*nbrDetailList.ForEach(a =>
|
|
|
+ /*//先屏蔽备料单扣除库存的DEMO演示。
|
|
|
+ nbrDetailList.ForEach(a =>
|
|
|
{
|
|
|
if (a.Nbr == Nbr)
|
|
|
{
|
|
|
@@ -3486,6 +3446,101 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void GenerateNbr(WorkOrdMaster workord,decimal cleanTime, LineMaster defaultLine, string userAccount, List<NbrMaster> nbrMasterList, List<NbrDetail> nbrDetailList, List<WorkOrdDetail> detail, List<ItemMaster> itemLocList, List<EmpWorkDutyMaster> ewdmList, string LocationTo,EmployeeMaster user,string TransType)
|
|
|
+ {
|
|
|
+ var Nbr = GetMaxSerialNumber(417416915624005);
|
|
|
+ DateTime eff = workord.OrdDate.GetValueOrDefault().Date.AddDays(-1);
|
|
|
+ DateTime start = eff.AddDays((double)(0 - cleanTime - 1));
|
|
|
+ if (start <= DateTime.Now.Date)
|
|
|
+ {
|
|
|
+ start = DateTime.Now.Date;
|
|
|
+ }
|
|
|
+ //string sql = "exec pr_SFM_GetOrdNbr @Domain='{0}',@NbrType='SM', @UserNo='{1}',@IsDopCall=1'";
|
|
|
+
|
|
|
+ var newNbr = new NbrMaster
|
|
|
+ {
|
|
|
+ Domain = workord.Domain,
|
|
|
+ Type = "SM",
|
|
|
+ Nbr = Nbr,
|
|
|
+ Remark = "下达自动领料",
|
|
|
+ //Date = dbPeriodSequences.Where(a => a.WorkOrds == workord.WorkOrd).Min(a => a.PlanDate),
|
|
|
+ ProdLine = defaultLine?.Line,
|
|
|
+ EffDate = eff,
|
|
|
+ Date = start,
|
|
|
+ Status = "",
|
|
|
+ WorkOrd = workord.WorkOrd,
|
|
|
+ QtyOrd = workord.QtyOrded,
|
|
|
+ IsActive = true,
|
|
|
+ IsChanged = true,
|
|
|
+ Name = userAccount,
|
|
|
+ Department = "101",
|
|
|
+ CreateTime = DateTime.Now,
|
|
|
+ UpdateTime = DateTime.Now,
|
|
|
+ CreateUser = user?.Name,
|
|
|
+ UpdateUser = user?.Name,
|
|
|
+ TransType = TransType
|
|
|
+ };
|
|
|
+ nbrMasterList.Add(newNbr);
|
|
|
+ List<string> headAccount = new List<string>();
|
|
|
+ int i = 1;
|
|
|
+ detail.ForEach(a =>
|
|
|
+ {
|
|
|
+ var find = itemLocList?.Find(c => c.ItemNum == a.ItemNum);
|
|
|
+ string LocationFrom = "";
|
|
|
+ if (find != null)
|
|
|
+ {
|
|
|
+ LocationFrom = find.Location;
|
|
|
+ //找出职责范围负责人
|
|
|
+ var ewdm = ewdmList.Find(s => 0 >= string.Compare(s.ItemNum1, a.ItemNum) && 0 >= string.Compare(a.ItemNum, s.ItemNum2));
|
|
|
+ if (ewdm != null && !string.IsNullOrEmpty(ewdm.Employee))
|
|
|
+ {
|
|
|
+ headAccount.Add(ewdm.Employee);
|
|
|
+ }
|
|
|
+ //相同物料汇总
|
|
|
+ var itemComponent = nbrDetailList.Find(b => b.Nbr == Nbr && b.ItemNum == a.ItemNum);
|
|
|
+ if (itemComponent == null)
|
|
|
+ {
|
|
|
+ nbrDetailList.Add(new NbrDetail
|
|
|
+ {
|
|
|
+ Domain = workord.Domain,
|
|
|
+ Type = "SM",
|
|
|
+ Nbr = Nbr,
|
|
|
+ ItemNum = a.ItemNum,
|
|
|
+ QtyFrom = 0,
|
|
|
+ QtyTo = 0,
|
|
|
+ LocationFrom = LocationFrom,
|
|
|
+ LocationTo = LocationTo,//现在这几条线是同一线边仓,暂时不考虑多个线边仓
|
|
|
+ WorkOrd = workord.WorkOrd,
|
|
|
+ QtyOrd = a.QtyRequired,
|
|
|
+ CurrQtyOpened = a.QtyRequired,
|
|
|
+ Line = i,
|
|
|
+ IsActive = true,
|
|
|
+ CreateTime = DateTime.Now,
|
|
|
+ UpdateTime = DateTime.Now,
|
|
|
+ CreateUser = user?.Name,
|
|
|
+ UpdateUser = user?.Name,
|
|
|
+ UM = find.UM
|
|
|
+ });
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ nbrDetailList.First(b => b.Nbr == Nbr && b.ItemNum == a.ItemNum).QtyOrd = itemComponent.QtyOrd + a.QtyRequired;
|
|
|
+ nbrDetailList.First(b => b.Nbr == Nbr && b.ItemNum == a.ItemNum).CurrQtyOpened = itemComponent.CurrQtyOpened + a.QtyRequired;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ if (headAccount.Any())
|
|
|
+ {
|
|
|
+ newNbr.User1 = string.Join(",", headAccount.Distinct());
|
|
|
+ string[] user2 = headAccount.ToArray();
|
|
|
+ newNbr.User2 = JsonConvert.SerializeObject(user2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
public void AsyncItemStockFromWMS(List<crm_seorderentry> sentrys)
|
|
|
{
|
|
|
//产品编码
|
|
|
@@ -3643,19 +3698,20 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
|
|
|
//增加判断当前工单是否进行过齐套检查,并且是仓库齐套
|
|
|
- var mes_morders = _mysql_mes_morder.GetListAsync(s => dbWorkOrds.Contains(s.morder_no) && s.factory_id.ToString() == domain).Result;
|
|
|
+ /*var mes_morders = _mysql_mes_morder.GetListAsync(s => dbWorkOrds.Contains(s.morder_no) && s.factory_id.ToString() == domain).Result;
|
|
|
if (mes_morders.Where(s => s.MaterialSituation != MorderEnum.CarehouseComplete).Any())
|
|
|
{
|
|
|
return "请选择物料情况为“仓库齐套”的工单。";
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
List<NbrMaster> nbrMasterList = new List<NbrMaster>();//需要生成领料单列表
|
|
|
List<NbrDetail> nbrDetailList = new List<NbrDetail>();//需要生成领料单明细列表
|
|
|
|
|
|
var ords = workOrdMasters.Select(p => p.WorkOrd).ToList();
|
|
|
+ var workDetails = _workOrdDetail.Select(p => p.Domain == domain && workOrds.Contains(p.WorkOrd));
|
|
|
|
|
|
dbPeriodSequences = dbPeriodSequences.Where(p => ords.Contains(p.WorkOrds)).ToList();
|
|
|
- await AutoCreatePickBill(workOrdMasters, dbPeriodSequences, nbrMasterList, nbrDetailList, userAccount);
|
|
|
+ await AutoCreatePickBill(workOrdMasters, dbPeriodSequences, nbrMasterList, nbrDetailList, userAccount, workDetails);
|
|
|
if (nbrMasterList.Any())
|
|
|
{
|
|
|
dbPeriodSequences.ForEach(p => { p.Status = "r"; });
|
|
|
@@ -3672,6 +3728,7 @@ namespace Business.ResourceExamineManagement
|
|
|
nbrdtls.ForEach(x =>
|
|
|
{
|
|
|
ic_item_stockoccupy itemStockoccupyDto = new ic_item_stockoccupy();
|
|
|
+ itemStockoccupyDto.GenerateNewId(help.NextId());
|
|
|
itemStockoccupyDto.morder_mo = s.WorkOrd;
|
|
|
itemStockoccupyDto.occupy_time = DateTime.Now;
|
|
|
var nbrItem = icitem.Find(c => c.number == x.ItemNum);
|
|
|
@@ -3698,13 +3755,13 @@ namespace Business.ResourceExamineManagement
|
|
|
_nbrMaster.Insert(nbrMasterList);
|
|
|
nbrMasterList.ForEach(a =>
|
|
|
{
|
|
|
- string sql ="exec pr_WMS_BPM_AddMobileTask @TaskID='{0}',@PlanDate='{1}',@ExecuterTypeID=2,@CreateUser='{2}'";
|
|
|
- _businessDbContext.Database.ExecuteSqlRaw(sql, a.Nbr, a.Date.Value.ToString("yyyy-MM-dd"), a.CreateUser);
|
|
|
+ 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);
|
|
|
+ await _mysql_ic_item_stockoccupy.HardDeleteAsync(itemstockoccupy);
|
|
|
}
|
|
|
if (insertOccuyy.Any())
|
|
|
{
|