|
|
@@ -296,6 +296,8 @@ namespace Business.ResourceExamineManagement
|
|
|
/// </summary>
|
|
|
private readonly MorderAppService _morderAppService;
|
|
|
|
|
|
+ private readonly SerialNumberAppService _serialNumberAppService;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 计算BOM平铺物料情况
|
|
|
/// </summary>
|
|
|
@@ -468,7 +470,8 @@ namespace Business.ResourceExamineManagement
|
|
|
ISqlRepository<SAPInv> SAPInv,
|
|
|
ISqlRepository<MonthlyShipmentPlan> monthlyShipmentPlan,
|
|
|
IRepository<srm_purchase, long> srmPurchase,
|
|
|
- IUnitOfWorkManager unitOfWorkManager
|
|
|
+ IUnitOfWorkManager unitOfWorkManager,
|
|
|
+ SerialNumberAppService serialNumberAppService
|
|
|
)
|
|
|
{
|
|
|
_mes_technique = mes_technique;
|
|
|
@@ -556,7 +559,7 @@ namespace Business.ResourceExamineManagement
|
|
|
_generalizedCodeMaster = generalizedCodeMaster;
|
|
|
_unitOfWorkManager = unitOfWorkManager;
|
|
|
_scheduleResultOpMaster = scheduleResultOpMaster;
|
|
|
- _businessDbContext = businessDbContext;
|
|
|
+ _serialNumberAppService = serialNumberAppService;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
@@ -1016,7 +1019,7 @@ namespace Business.ResourceExamineManagement
|
|
|
else {
|
|
|
return JsonConvert.SerializeObject("所选采购申请单未找到,请刷新界面重新操作。");
|
|
|
}
|
|
|
-
|
|
|
+ List<srm_po_occupy> occupylist = _mysql_srm_po_occupy.GetListAsync(s => idList.Contains(s.polist_id.GetValueOrDefault())).Result;
|
|
|
srm_pr_main srm_Pr = help.DeepCopy(prlist[0]);
|
|
|
srm_Pr.GenerateNewId(help.NextId());
|
|
|
srm_Pr.pr_billno = prlist[0].pr_type == 2 ? _CalcBomViewAppService.getOrderNum("WWPR") : _CalcBomViewAppService.getOrderNum("PR");//pr单号
|
|
|
@@ -1056,12 +1059,14 @@ namespace Business.ResourceExamineManagement
|
|
|
srm_Pr.tenant_id = prlist[0].tenant_id;
|
|
|
srm_Pr.factory_id = prlist[0].factory_id;*/
|
|
|
prlist.ForEach(s => { s.state = 0; s.refer_pr_billno = srm_Pr.pr_billno; });
|
|
|
+ occupylist.ForEach(s => { s.polist_id = srm_Pr.Id; });
|
|
|
using (var unitOfWork = _unitOfWorkManager.Begin(false, true))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
_businessDbContext.BulkUpdate(prlist);
|
|
|
_businessDbContext.BulkInsert(new List<srm_pr_main> { srm_Pr });
|
|
|
+ _businessDbContext.BulkUpdate(occupylist);
|
|
|
await unitOfWork.CompleteAsync();
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
@@ -1087,6 +1092,9 @@ namespace Business.ResourceExamineManagement
|
|
|
DateTime endtime = toTime.Date.AddDays(14);
|
|
|
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.state == 3)).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;
|
|
|
+
|
|
|
List<PrWeekDto> prWeekDtos = new List<PrWeekDto>();
|
|
|
|
|
|
List<srm_pr_main> insetPrList = new List<srm_pr_main>();
|
|
|
@@ -1106,9 +1114,12 @@ namespace Business.ResourceExamineManagement
|
|
|
if (ilist.Count > 1)
|
|
|
{
|
|
|
var icitem = ic_Items.Find(s => s.Id == pr.icitem_id);
|
|
|
-
|
|
|
+ var prRefoccupy = occupylist.Where(s => s.polist_id == pr.Id).ToList();
|
|
|
newPr = help.DeepCopy(pr);
|
|
|
newPr.GenerateNewId(help.NextId());
|
|
|
+ prRefoccupy.ForEach(a => {
|
|
|
+ a.polist_id = newPr.Id;
|
|
|
+ });
|
|
|
newPr.pr_billno = pr.pr_type == 2 ? _CalcBomViewAppService.getOrderNum("WWPR") : _CalcBomViewAppService.getOrderNum("PR");//pr单号
|
|
|
newPr.state = pr.state;
|
|
|
newPr.pr_rqty = ilist.Sum(s => s.pr_rqty);//需求数量
|
|
|
@@ -1194,6 +1205,10 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
_businessDbContext.BulkUpdate(updatePrList);
|
|
|
}
|
|
|
+ if (occupylist.Any())
|
|
|
+ {
|
|
|
+ _businessDbContext.BulkUpdate(occupylist);
|
|
|
+ }
|
|
|
unitOfWork.CompleteAsync();
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
@@ -1310,7 +1325,7 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
if (poaction.poOccupiesList.Any())
|
|
|
{
|
|
|
- _businessDbContext.BulkInsert(poaction.poOccupiesList);
|
|
|
+ _businessDbContext.BulkUpdate(poaction.poOccupiesList);
|
|
|
}
|
|
|
|
|
|
if (poaction.poMasterList.Any())
|
|
|
@@ -1319,7 +1334,7 @@ namespace Business.ResourceExamineManagement
|
|
|
_purOrdMaster.Insert(poaction.poMasterList);
|
|
|
//快开平台用自增列RecId关联,所以需要插入后再查给明细表赋相应的值
|
|
|
List<string> nbrs = poaction.poMasterList.Select(a => a.PurOrd).ToList();
|
|
|
- var nbrList = _purOrdMaster.Select(a => a.Domain == "1001" && nbrs.Contains(a.PurOrd));
|
|
|
+ var nbrList = _purOrdMaster.Select(a => a.Domain == poaction.poMasterList[0].Domain && nbrs.Contains(a.PurOrd));
|
|
|
poaction.poDetailList.ForEach(c =>
|
|
|
{
|
|
|
c.PurOrdRecID = nbrList.Where(a => a.PurOrd == c.PurOrd).First().RecID;
|
|
|
@@ -1395,7 +1410,7 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
if (poaction.poOccupiesList.Any())
|
|
|
{
|
|
|
- _businessDbContext.BulkInsert(poaction.poOccupiesList);
|
|
|
+ _businessDbContext.BulkUpdate(poaction.poOccupiesList);
|
|
|
}
|
|
|
|
|
|
if (poaction.poMasterList.Any())
|
|
|
@@ -1404,7 +1419,7 @@ namespace Business.ResourceExamineManagement
|
|
|
_purOrdMaster.Insert(poaction.poMasterList);
|
|
|
//快开平台用自增列RecId关联,所以需要插入后再查给明细表赋相应的值
|
|
|
List<string> nbrs = poaction.poMasterList.Select(a => a.PurOrd).ToList();
|
|
|
- var nbrList = _purOrdMaster.Select(a => a.Domain == "1001" && nbrs.Contains(a.PurOrd));
|
|
|
+ var nbrList = _purOrdMaster.Select(a => a.Domain == poaction.poMasterList[0].Domain && nbrs.Contains(a.PurOrd));
|
|
|
poaction.poDetailList.ForEach(c =>
|
|
|
{
|
|
|
c.PurOrdRecID = nbrList.Where(a => a.PurOrd == c.PurOrd).First().RecID;
|
|
|
@@ -1863,41 +1878,52 @@ namespace Business.ResourceExamineManagement
|
|
|
await _mes_mooccupy.InsertManyAsync(moMes_mooccupy);
|
|
|
}
|
|
|
}
|
|
|
- //TODO:要不要根据某些条件只同步有效的数据
|
|
|
- //采购订单
|
|
|
- var srm_po_main = _mysql_srm_po_main.GetListAsync(x => x.company_id == companyId && x.factory_id == factoryId).Result;
|
|
|
- if (srm_po_main.Count > 0)
|
|
|
- {
|
|
|
- var moSrm_po_main = ObjectMapper.Map<List<srm_po_main>, List<mo_srm_po_main>>(srm_po_main);
|
|
|
- moSrm_po_main.ForEach(item => { item.GenerateNewId(help.NextId()); item.bang_id = bangid; });
|
|
|
- await _srm_po_main.InsertManyAsync(moSrm_po_main);
|
|
|
- }
|
|
|
+ //根据物料信息,只同步在途未关闭的采购订单和采购申请
|
|
|
|
|
|
//采购订单明细
|
|
|
- var srm_po_list = _mysql_srm_po_list.GetListAsync(x => x.company_id == companyId && x.factory_id == factoryId).Result;
|
|
|
+ var srm_po_list = _mysql_srm_po_list.GetListAsync(x => x.company_id == companyId && x.factory_id == factoryId && itemIds.Contains(x.icitem_id.GetValueOrDefault())).Result;
|
|
|
if (srm_po_list.Count > 0)
|
|
|
{
|
|
|
- var moSrm_po_list = ObjectMapper.Map<List<srm_po_list>, List<mo_srm_po_list>>(srm_po_list);
|
|
|
- moSrm_po_list.ForEach(item => { item.GenerateNewId(help.NextId()); item.bang_id = bangid; });
|
|
|
- await _srm_po_list.InsertManyAsync(moSrm_po_list);
|
|
|
- }
|
|
|
-
|
|
|
- //采购订单占用详情
|
|
|
- var srm_po_occupy = _mysql_srm_po_occupy.GetListAsync(x => x.company_id == companyId && x.factory_id == factoryId).Result;
|
|
|
- if (srm_po_occupy.Count > 0)
|
|
|
- {
|
|
|
- var moSrm_po_occupy = ObjectMapper.Map<List<srm_po_occupy>, List<mo_srm_po_occupy>>(srm_po_occupy);
|
|
|
- moSrm_po_occupy.ForEach(item => { item.GenerateNewId(help.NextId()); item.bang_id = bangid; });
|
|
|
- await _srm_po_occupy.InsertManyAsync(moSrm_po_occupy);
|
|
|
+ //采购订单--取出状态为在途的PO
|
|
|
+ var srm_po_main = _mysql_srm_po_main.GetListAsync(x => x.company_id == companyId && x.factory_id == factoryId && srm_po_list.Select(c => c.po_id).Contains(x.Id) && (x.state == 0 || x.state == 1)).Result;
|
|
|
+ if (srm_po_main.Count > 0)
|
|
|
+ {
|
|
|
+ var moSrm_po_main = ObjectMapper.Map<List<srm_po_main>, List<mo_srm_po_main>>(srm_po_main);
|
|
|
+ moSrm_po_main.ForEach(item => { item.GenerateNewId(help.NextId()); item.bang_id = bangid; });
|
|
|
+ await _srm_po_main.InsertManyAsync(moSrm_po_main);
|
|
|
+
|
|
|
+ //订单明细--根据在途PO过滤出有效的Po_list
|
|
|
+ srm_po_list = srm_po_list.Where(s => srm_po_main.Select(x => x.Id).Contains(s.po_id.GetValueOrDefault())).ToList();
|
|
|
+ var moSrm_po_list = ObjectMapper.Map<List<srm_po_list>, List<mo_srm_po_list>>(srm_po_list);
|
|
|
+ moSrm_po_list.ForEach(item => { item.GenerateNewId(help.NextId()); item.bang_id = bangid; });
|
|
|
+ await _srm_po_list.InsertManyAsync(moSrm_po_list);
|
|
|
+ }
|
|
|
+ //采购订单明细占用详情
|
|
|
+ var srm_po_occupy = _mysql_srm_po_occupy.GetListAsync(x => x.company_id == companyId && x.factory_id == factoryId && srm_po_list.Select(c => c.Id).Contains(x.polist_id.GetValueOrDefault())).Result;
|
|
|
+ if (srm_po_occupy.Count > 0)
|
|
|
+ {
|
|
|
+ var moSrm_po_occupy = ObjectMapper.Map<List<srm_po_occupy>, List<mo_srm_po_occupy>>(srm_po_occupy);
|
|
|
+ moSrm_po_occupy.ForEach(item => { item.GenerateNewId(help.NextId()); item.bang_id = bangid; });
|
|
|
+ await _srm_po_occupy.InsertManyAsync(moSrm_po_occupy);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//pr
|
|
|
- var srm_pr_main = _mysql_srm_pr_main.GetListAsync(x => x.company_id == companyId && x.factory_id == factoryId && itemIds.Contains(x.icitem_id.GetValueOrDefault())).Result;
|
|
|
+ var srm_pr_main = _mysql_srm_pr_main.GetListAsync(x => x.company_id == companyId && x.factory_id == factoryId && x.state != 0 && itemIds.Contains(x.icitem_id.GetValueOrDefault())).Result;
|
|
|
if(srm_pr_main.Count>0)
|
|
|
{
|
|
|
var moSrm_pr_main = ObjectMapper.Map<List<srm_pr_main>, List<mo_srm_pr_main>>(srm_pr_main);
|
|
|
moSrm_pr_main.ForEach(item => { item.GenerateNewId(help.NextId()); item.bang_id = bangid; });
|
|
|
await _srm_pr_main.InsertManyAsync(moSrm_pr_main);
|
|
|
+
|
|
|
+ //采购申请占用详情
|
|
|
+ var srm_pr_occupy = _mysql_srm_po_occupy.GetListAsync(x => x.company_id == companyId && x.factory_id == factoryId && srm_pr_main.Select(c => c.Id).Contains(x.polist_id.GetValueOrDefault())).Result;
|
|
|
+ if (srm_pr_occupy.Count > 0)
|
|
|
+ {
|
|
|
+ var moSrm_pr_occupy = ObjectMapper.Map<List<srm_po_occupy>, List<mo_srm_po_occupy>>(srm_pr_occupy);
|
|
|
+ moSrm_pr_occupy.ForEach(item => { item.GenerateNewId(help.NextId()); item.bang_id = bangid; });
|
|
|
+ await _srm_po_occupy.InsertManyAsync(moSrm_pr_occupy);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -2047,7 +2073,11 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
List<srm_po_main> polist = new List<srm_po_main>();
|
|
|
List<srm_po_list> podetaillist = new List<srm_po_list>();
|
|
|
+ List<srm_po_occupy> pooccupylist = new List<srm_po_occupy>();
|
|
|
List<POGroupDto> pOGroupDtos = new List<POGroupDto>();
|
|
|
+
|
|
|
+ var occupyList = _mysql_srm_po_occupy.GetListAsync(s => list.Select(c => c.Id).Contains(s.polist_id.GetValueOrDefault()) && s.company_id == list[0].company_id && s.factory_id == list[0].factory_id && s.IsDeleted == false).Result;
|
|
|
+ string domain = list[0].factory_id.ToString();
|
|
|
//合并条件:目前传入的数据是一周的数据,暂时不考虑多周数据合并。
|
|
|
//标准类 1.销售订单产生 2.计划工单产生
|
|
|
//物料属性 委外 外购
|
|
|
@@ -2101,11 +2131,17 @@ namespace Business.ResourceExamineManagement
|
|
|
podetail.factory_id = param.factoryId;
|
|
|
podetail.company_id = param.company_id;
|
|
|
podetail.stock_id = 1;
|
|
|
+ var refProccupy = occupyList.Where(s => s.polist_id == item.Id).ToList();
|
|
|
+ refProccupy.ForEach(f =>
|
|
|
+ {
|
|
|
+ f.polist_id = podetail.Id;
|
|
|
+ });
|
|
|
+ poaction.poOccupiesList.AddRange(refProccupy);
|
|
|
podetaillist.Add(podetail);
|
|
|
poDto.polist.Add(podetail);
|
|
|
}
|
|
|
- List<srm_pr_main> referlist = new List<srm_pr_main>();
|
|
|
- RecursionGetDbPr(list, referlist);
|
|
|
+ /*List<srm_pr_main> referlist = new List<srm_pr_main>();
|
|
|
+ RecursionGetDbPr(list, referlist);*/
|
|
|
//组合PO
|
|
|
foreach (var dto in pOGroupDtos)
|
|
|
{
|
|
|
@@ -2146,7 +2182,7 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
var toPr = list.Find(s => s.Id == p.pr_id);
|
|
|
List<srm_pr_main> clist = new List<srm_pr_main>();
|
|
|
- RecursionPr(toPr, referlist, clist);
|
|
|
+ /*RecursionPr(toPr, referlist, clist);
|
|
|
if (clist.Any())
|
|
|
{
|
|
|
clist.ForEach(c =>
|
|
|
@@ -2174,7 +2210,7 @@ namespace Business.ResourceExamineManagement
|
|
|
poaction.poOccupiesList.Add(srm_Po_Occupy);
|
|
|
}
|
|
|
});
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
po_Main.po_total += p.total_price;
|
|
|
p.po_id = po_Main.Id;
|
|
|
@@ -2185,7 +2221,6 @@ namespace Business.ResourceExamineManagement
|
|
|
row++;
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
poaction.poMain.AddRange(polist);
|
|
|
poaction.polist.AddRange(podetaillist);
|
|
|
List<PurOrdMaster> purOrdMasters = new List<PurOrdMaster>();
|
|
|
@@ -2193,7 +2228,7 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
purOrdMasters.Add(new PurOrdMaster
|
|
|
{
|
|
|
- Domain = "1001",
|
|
|
+ Domain = domain,
|
|
|
Potype = poType==1?"po":"pw",
|
|
|
PurOrd = a.po_billno,
|
|
|
Buyer = a.po_purchaser,
|
|
|
@@ -2215,7 +2250,7 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
purOrdDetails.Add(new PurOrdDetail
|
|
|
{
|
|
|
- Domain = "1001",
|
|
|
+ Domain = domain,
|
|
|
Potype = poType == 1 ? "po" : "pw",
|
|
|
PurOrd = a.po_billno,
|
|
|
IsActive = true,
|
|
|
@@ -3219,12 +3254,14 @@ namespace Business.ResourceExamineManagement
|
|
|
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;
|
|
|
+ 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;
|
|
|
+ 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
|
|
|
|
|
|
//处理一下已经插入得占用记录
|
|
|
@@ -3232,7 +3269,7 @@ namespace Business.ResourceExamineManagement
|
|
|
//物料库存
|
|
|
stocklist.AddRange(_ic_item_stock.GetListAsync(p => p.factory_id == param.factoryId && p.bang_id == bangid && itemIds.Contains(p.icitem_id)).Result);
|
|
|
//物料库存占用表
|
|
|
- sklist.AddRange(_ic_item_stockoccupy.GetListAsync(x => x.bang_id == bangid && !x.IsDeleted).Result);
|
|
|
+ sklist.AddRange(_ic_item_stockoccupy.GetListAsync(x => x.bang_id == bangid && !x.IsDeleted && itemIds.Contains(x.icitem_id)).Result);
|
|
|
|
|
|
//物料提前期
|
|
|
leadTimeList = GetLeadTime(icitemlist, param.company_id, param.factoryId);//提前期列表
|
|
|
@@ -3255,7 +3292,7 @@ namespace Business.ResourceExamineManagement
|
|
|
_CalcBomViewAppService.srm_Po_Lists = poDetailList; //采购明细
|
|
|
_CalcBomViewAppService.srm_Po_Occupies = poOccupys; //采购占用表
|
|
|
_CalcBomViewAppService.ic_item_List = icitemlist; //物料表
|
|
|
- _CalcBomViewAppService.srm_Pr_Mains = srm_pr_mains;//PR
|
|
|
+ _CalcBomViewAppService.srm_Pr_Mains = srm_pr_mains.Where(s=>s.state != 4).ToList();//PR
|
|
|
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);
|
|
|
@@ -3312,7 +3349,7 @@ namespace Business.ResourceExamineManagement
|
|
|
/// </summary>
|
|
|
public void AutoCreateBomBill(string companyid,List<mo_ic_bom> ic_Boms = null)
|
|
|
{
|
|
|
- ic_Boms ??= _ic_bom.GetListAsync(p => p.company_id.ToString() == companyid && (p.bom_number == "10100012_V1.0" || p.bom_number == "10100241_V1.0" || p.bom_number == "BOM00042070") && !p.IsDeleted).Result.ToList();
|
|
|
+ ic_Boms ??= _ic_bom.GetListAsync(p => p.company_id.ToString() == companyid && !p.IsDeleted).Result.ToList();
|
|
|
var pretreatment = _mysql_b_bom_pretreatment.GetListAsync(s => ic_Boms.Select(c => c.mysql_id).ToList().Contains(s.sourceid)).Result;
|
|
|
|
|
|
param.company_id = long.Parse(companyid);
|
|
|
@@ -3494,15 +3531,19 @@ 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);
|
|
|
+ //var Nbr = GetMaxSerialNumber(417416915624005);
|
|
|
+ string Nbr = "";
|
|
|
DateTime eff = workord.OrdDate.GetValueOrDefault().Date.AddDays(-1);
|
|
|
DateTime start = eff.AddDays((double)(0 - cleanTime));
|
|
|
if (start <= DateTime.Now.Date)
|
|
|
{
|
|
|
start = DateTime.Now.Date;
|
|
|
}
|
|
|
- //string sql = "exec pr_SFM_GetOrdNbr @Domain='{0}',@NbrType='SM', @UserNo='{1}',@IsDopCall=1'";
|
|
|
-
|
|
|
+ var nbrlistDto = _serialNumberAppService.GetBillNo(workord.Domain, "SM", 1, userAccount, 1);
|
|
|
+ if (nbrlistDto.Any())
|
|
|
+ {
|
|
|
+ Nbr = nbrlistDto[0].NbrResult;
|
|
|
+ }
|
|
|
var newNbr = new NbrMaster
|
|
|
{
|
|
|
Domain = workord.Domain,
|
|
|
@@ -4291,8 +4332,33 @@ namespace Business.ResourceExamineManagement
|
|
|
DateTime startDate = DateTime.Now.Date.AddDays(1);
|
|
|
//尚未开始生产的工单+正在生产的工单
|
|
|
var workOrds = _workOrdMaster.Select(p => p.IsActive && p.Domain == domain && ((p.OrdDate < endDate && p.OrdDate >= startDate && (string.IsNullOrEmpty(p.Typed) || (!string.IsNullOrEmpty(p.Typed) && p.BusinessID > 0))) || p.Status.ToLower() == "w")).ToList();
|
|
|
- await _productionScheduleAppService.DoProductSchedule(workOrds, domain, 2);
|
|
|
- return "ok";
|
|
|
+ string result = await _productionScheduleAppService.DoProductSchedule(workOrds, domain, 2);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 日计划日期调整
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="input">日计划调整入参</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ /// <exception cref="NotImplementedException"></exception>
|
|
|
+ public async Task<string> UpdatePlanDate(UpdateDto input)
|
|
|
+ {
|
|
|
+ WorkOrdMaster workOrd = _workOrdMaster.Select(p=>p.IsActive && p.Domain == input.domain && p.WorkOrd == input.workord).FirstOrDefault();
|
|
|
+ if (workOrd == null)
|
|
|
+ {
|
|
|
+ return "NO|工单【"+input.workord+"】不存在,请联系系统管理员!";
|
|
|
+ }
|
|
|
+ //更新工单计划开工日期,调整是否需要处理提前期状态字段为B
|
|
|
+ workOrd.OrdDate = input.planDate;
|
|
|
+ workOrd.JointTyped = "B";
|
|
|
+ _workOrdMaster.Update(workOrd);
|
|
|
+
|
|
|
+ //调用优先级计算算法
|
|
|
+
|
|
|
+ //调用手动排产算法
|
|
|
+ string result = await ProductionSchedule(input.domain);
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|