|
|
@@ -81,6 +81,11 @@ namespace Business.ResourceExamineManagement
|
|
|
/// </summary>
|
|
|
private readonly IMongoDB<mes_schedule_occupy> _mes_schedule_occupy;
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 物料占用记录
|
|
|
+ /// </summary>
|
|
|
+ private readonly IMongoDB<ic_item_stockoccupy> _ic_item_stockoccupy;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 物料详情
|
|
|
/// </summary>
|
|
|
@@ -158,6 +163,7 @@ namespace Business.ResourceExamineManagement
|
|
|
//IMongoDB<ic_substitute_all_dtl> ic_substitute_all_dtl,
|
|
|
IMongoDB<mes_morder> mes_morder,
|
|
|
IMongoDB<mes_mooccupy> mes_mooccupy,
|
|
|
+ IMongoDB<ic_item_stockoccupy> ic_item_stockoccupy,
|
|
|
IRepository<ic_item, long> mysql_ic_item,
|
|
|
IRepository<ic_bom, long> mysql_ic_bom,
|
|
|
IRepository<ic_bom_child, long> mysql_ic_bom_child,
|
|
|
@@ -179,6 +185,8 @@ namespace Business.ResourceExamineManagement
|
|
|
//_ic_substitute_all = ic_substitute_all;
|
|
|
//_ic_substitute_all_dtl = ic_substitute_all_dtl;
|
|
|
_mes_morder = mes_morder;
|
|
|
+ _mes_mooccupy = mes_mooccupy;
|
|
|
+ _ic_item_stockoccupy = ic_item_stockoccupy;
|
|
|
_mysql_ic_item = mysql_ic_item;
|
|
|
_mysql_ic_bom = mysql_ic_bom;
|
|
|
_mysql_ic_bom_child = mysql_ic_bom_child;
|
|
|
@@ -228,18 +236,20 @@ namespace Business.ResourceExamineManagement
|
|
|
/// <exception cref="NotImplementedException"></exception>
|
|
|
public async Task<PschedDto> ReceiveResult(SeorderentryDto input)
|
|
|
{
|
|
|
- //测试代码
|
|
|
- //await test();
|
|
|
- //同步数据测试方法
|
|
|
+ //数据库快照-同步mysql库数据到mongoDB中
|
|
|
//await SyncData();
|
|
|
+ //生成当前计算bangid
|
|
|
+ SnowFlake snow = new SnowFlake();
|
|
|
+ long bangid = snow.NextId();
|
|
|
|
|
|
+ //产能检查
|
|
|
await ProductiveExamine(1733221167209762816, 100);
|
|
|
return null;
|
|
|
throw new NotImplementedException();
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 同步数据
|
|
|
+ /// 数据库快照
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public async Task SyncData()
|
|
|
@@ -249,7 +259,7 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 产能计算V2.0
|
|
|
+ /// 产能计算
|
|
|
/// </summary>
|
|
|
/// <param name="tech_id">工艺路径主键</param>
|
|
|
/// <param name="packages">需要生产产品件数</param>
|
|
|
@@ -745,24 +755,28 @@ namespace Business.ResourceExamineManagement
|
|
|
/// 计算库存量
|
|
|
/// </summary>
|
|
|
/// <param name="returnlist"></param>
|
|
|
- public void BomStock(List<BomChildExamineDto> returnlist, long factoryid)
|
|
|
+ public void BomStock(List<BomChildExamineDto> returnlist,long bangid,long orderid,long orderentryid, long factoryid)
|
|
|
{
|
|
|
returnlist = returnlist.OrderBy(s => s.num).ToList();
|
|
|
//取物料库存记录
|
|
|
- var stocklist = _ic_item_stock.GetManyByCondition(s => s.icitem_id.IsIn(returnlist.Select(c => c.item_id)) && s.factory_id == factoryid).Result;
|
|
|
- //取当前物料质检记录
|
|
|
- //var checklist = _ic_check.GetManyByCondition(s => s.icitem_id.IsIn(returnlist.Select(c => c.item_id)) && s.istest.GetValueOrDefault() != 1).Result.ToList();
|
|
|
- List<long> idlist = new List<long>();
|
|
|
+ FilterDefinition<ic_item_stock> filter = Builders<ic_item_stock>.Filter.In(s => s.icitem_id, returnlist.Select(c => c.item_id).ToList());
|
|
|
+ var stocklist = _ic_item_stock.GetManyByIds(filter).Result;
|
|
|
+ //取当前订单的物料库存占用记录
|
|
|
+ var occupylist = _ic_item_stockoccupy.GetManyByCondition(p=>p.bang_id == bangid && p.order_id == orderid).Result;
|
|
|
+ //计算剩余库存
|
|
|
foreach (var item in returnlist)
|
|
|
{
|
|
|
- if (item.erp_cls != 4)//虚拟件不计算
|
|
|
+ if (item.erp_cls == 4)//虚拟件不计算
|
|
|
{
|
|
|
- var sl = stocklist.Where(s => s.icitem_id == item.item_id).ToList();
|
|
|
- //库存=物料库存+VMI库存+质检未入库。
|
|
|
- item.sqty = sl.Sum(s => s.sqty).GetValueOrDefault();
|
|
|
- //质检记录没加入,暂时不考虑。
|
|
|
- //VMI仓储信息
|
|
|
+ continue;
|
|
|
}
|
|
|
+ //非虚拟件
|
|
|
+ //当前物料的库存数量
|
|
|
+ decimal stockQty = stocklist.Where(s => s.icitem_id == item.item_id).Sum(p=>p.sqty.GetValueOrDefault());
|
|
|
+ //获取当前订单其他订单行当前物料的占用数量
|
|
|
+ decimal otherStockQty = occupylist.Where(s => s.icitem_id == item.item_id).Sum(p=>p.quantity);
|
|
|
+ //当前订单行物料库存情况
|
|
|
+ item.sqty = stockQty - otherStockQty;
|
|
|
}
|
|
|
}
|
|
|
}
|