|
|
@@ -704,6 +704,7 @@ namespace Business.ResourceExamineManagement
|
|
|
dtl.need_qty = item.qty.GetValueOrDefault();
|
|
|
dtl.need_time = item.plan_date;
|
|
|
dtl.bangid = bangid;
|
|
|
+ dtl.prd_code = item.item_number;
|
|
|
//获取当前物料bom数据
|
|
|
var childBom = boms.Where(p => p.item_number == item.item_number).FirstOrDefault();
|
|
|
dtl.bom_number = childBom.bom_number;
|
|
|
@@ -877,10 +878,10 @@ namespace Business.ResourceExamineManagement
|
|
|
b_ex.GenerateNewId(help.NextId());// = help.NextId();
|
|
|
if (_CalcBomViewAppService.mordersInsertList.Any())
|
|
|
{
|
|
|
- var moentry = _CalcBomViewAppService.moentriesInsertList.Where(s => s.soentry_id == b_ex.sentry_id).FirstOrDefault();
|
|
|
+ var moentry = _CalcBomViewAppService.moentriesInsertList.Where(s => s.soentry_id == b_ex.sentry_id).ToList();
|
|
|
if (moentry != null)
|
|
|
{
|
|
|
- var sentryMo = _CalcBomViewAppService.mordersInsertList.Where(s => s.mysql_id == moentry.moentry_moid).FirstOrDefault();
|
|
|
+ var sentryMo = _CalcBomViewAppService.mordersInsertList.Where(s => moentry.Select(x => x.moentry_moid).Contains(s.mysql_id) && s.product_code == ex.prd_code).FirstOrDefault();
|
|
|
if (sentryMo != null)
|
|
|
{
|
|
|
b_ex.morder_id = sentryMo.mysql_id;
|
|
|
@@ -1011,14 +1012,14 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
return JsonConvert.SerializeObject("所选包含已关闭采购申请,请重新选择。");
|
|
|
}
|
|
|
- if (prlist.Where(s => s.state == 2).Count() > 0)
|
|
|
+ /*if (prlist.Where(s => s.state == 2).Count() > 0)
|
|
|
{
|
|
|
return JsonConvert.SerializeObject("所选包含已提交评审采购申请,请重新选择。");
|
|
|
}
|
|
|
if (prlist.Where(s => s.state == 4).Count() > 0)
|
|
|
{
|
|
|
return JsonConvert.SerializeObject("所选包含已评审通过采购申请,请重新选择。");
|
|
|
- }
|
|
|
+ }*/
|
|
|
var list = prlist.GroupBy(s => new { s.icitem_id, s.pr_purchaseid, s.IsRequireGoods });
|
|
|
if (list.Count() > 1)
|
|
|
{
|
|
|
@@ -1099,7 +1100,7 @@ namespace Business.ResourceExamineManagement
|
|
|
DateTime toTime = DateTime.Now; //new DateTime(2023, 7, 6);
|
|
|
DateTime starttime = toTime.Date.AddDays(8);
|
|
|
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<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).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;
|
|
|
@@ -1308,7 +1309,7 @@ namespace Business.ResourceExamineManagement
|
|
|
DateTime starttime = toTime.AddDays(1);
|
|
|
DateTime endtime = toTime.AddDays(8);
|
|
|
List<srm_pr_main> prlist = _mysql_srm_pr_main.GetListAsync(s => s.company_id.ToString() == companyid && s.IsRequireGoods == 0 && s.pr_sarrive_date >= starttime &&
|
|
|
- s.pr_sarrive_date <= endtime && (s.state == 1|| s.state == 2 || s.state == 3)).Result;
|
|
|
+ s.pr_sarrive_date <= endtime && s.state == 1).Result;
|
|
|
|
|
|
if (prlist.Any())
|
|
|
{
|
|
|
@@ -1384,10 +1385,10 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
return JsonConvert.SerializeObject("所选包含已关闭要货令,请重新选择。");
|
|
|
}
|
|
|
- if (prlist.Where(s => s.state == 3).Count() > 0)
|
|
|
+ /*if (prlist.Where(s => s.state == 3).Count() > 0)
|
|
|
{
|
|
|
return JsonConvert.SerializeObject("所选包含评审未通过要货令,请重新选择。");
|
|
|
- }
|
|
|
+ }*/
|
|
|
if (prlist.Where(s => s.IsRequireGoods == 0).Count() > 0)
|
|
|
{
|
|
|
return JsonConvert.SerializeObject("包含采购申请,不允许与要货令转采购订单。");
|
|
|
@@ -1558,18 +1559,18 @@ namespace Business.ResourceExamineManagement
|
|
|
//如果计算记录有工单id,则代表有生成工单,而不是占用计划工单
|
|
|
if (newExm.morder_id.GetValueOrDefault() != 0)
|
|
|
{
|
|
|
- var me = moentry.Find(s => s.soentry_id == se.Id && s.bang_id == newExm.bangid);
|
|
|
- if (me == null)
|
|
|
+ var meList = moentry.Where(s => s.soentry_id == se.Id && s.bang_id == newExm.bangid).ToList();
|
|
|
+ if (!meList.Any())
|
|
|
{
|
|
|
- //补救场景,假设mongdb数据丢失,从一个json格式中获取数据
|
|
|
+ //补救场景,假设mongdb数据丢失,从一个json格式中获取数据//此处暂不考虑
|
|
|
}
|
|
|
- var mo = mordersList.Find(s => s.mysql_id == me.moentry_moid && s.bang_id == newExm.bangid);
|
|
|
- if (mo == null)
|
|
|
+ var molist = mordersList.Where(s => meList.Select(c => c.moentry_moid).Contains(s.mysql_id) && s.bang_id == newExm.bangid).ToList();
|
|
|
+ if (!molist.Any())
|
|
|
{
|
|
|
- //补救场景,假设mongdb数据丢失,从一个json格式中获取数据
|
|
|
+ //补救场景,假设mongdb数据丢失,从一个json格式中获取数据//此处暂不考虑
|
|
|
}
|
|
|
- WriteMoentry.Add(me);
|
|
|
- WriteMorder.Add(mo);
|
|
|
+ WriteMoentry.AddRange(meList);
|
|
|
+ WriteMorder.AddRange(molist);
|
|
|
}
|
|
|
exmResult.Add(newExm);
|
|
|
bangidList.Add(newExm.bangid.GetValueOrDefault());
|
|
|
@@ -1908,7 +1909,7 @@ namespace Business.ResourceExamineManagement
|
|
|
if (srm_po_list.Count > 0)
|
|
|
{
|
|
|
//采购订单--取出状态为在途的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;
|
|
|
+ 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 != 4).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);
|
|
|
@@ -1978,7 +1979,7 @@ namespace Business.ResourceExamineManagement
|
|
|
//await _srm_po_occupy.DeleteAsync(p => p.bang_id == bangid);
|
|
|
|
|
|
//清除PR
|
|
|
- await _srm_pr_main.DeleteAsync(p => p.bang_id == bangid);
|
|
|
+ //await _srm_pr_main.DeleteAsync(p => p.bang_id == bangid);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -2123,7 +2124,7 @@ namespace Business.ResourceExamineManagement
|
|
|
poDto.polist = new List<srm_po_list>();
|
|
|
pOGroupDtos.Add(poDto);
|
|
|
}
|
|
|
- item.state = 4;
|
|
|
+ item.state = 0;
|
|
|
srm_po_list podetail = new srm_po_list();
|
|
|
podetail.GenerateNewId(help.NextId());
|
|
|
podetail.pr_id = item.Id;
|
|
|
@@ -2146,7 +2147,7 @@ namespace Business.ResourceExamineManagement
|
|
|
podetail.taxamount = item.pr_orderprice.GetValueOrDefault() - podetail.netmoney;
|
|
|
podetail.plan_qty = item.pr_aqty;
|
|
|
podetail.unit = item.pr_unit;
|
|
|
- podetail.state = item.state;
|
|
|
+ podetail.state = 1;
|
|
|
podetail.rarrdate = item.pr_sarrive_date;
|
|
|
podetail.rnumber = 0;
|
|
|
podetail.currencytype = item.currencytype;
|
|
|
@@ -3105,6 +3106,7 @@ namespace Business.ResourceExamineManagement
|
|
|
dtl.order_statr_time = item.start_time;
|
|
|
dtl.bom_number = item.bom_number;
|
|
|
dtl.need_qty = item.need_number.GetValueOrDefault();
|
|
|
+ dtl.prd_code = item.product_code;
|
|
|
|
|
|
//获取当前物料bom数据
|
|
|
var childBom = boms.Where(p => p.bom_number == item.bom_number).FirstOrDefault();
|
|
|
@@ -3992,13 +3994,19 @@ namespace Business.ResourceExamineManagement
|
|
|
woRouting.CreateTime = DateTime.Now;
|
|
|
workOrdRoutings.Add(woRouting);
|
|
|
}
|
|
|
-
|
|
|
- var exm = exmResult.Find(s => s.morder_id == item.Id);
|
|
|
+ long fid = GetParentMo(morders, item);
|
|
|
+ var exm = exmResult.Find(s => s.morder_id == fid);
|
|
|
if (exm != null)
|
|
|
{
|
|
|
var childs = childExamineList.Where(s => s.examine_id == exm.Id && s.is_use == true).ToList();
|
|
|
+
|
|
|
+ var child = childs.Find(s => s.item_number == item.product_code);
|
|
|
+ if (child == null)
|
|
|
+ {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
List<b_bom_child_examine> returnList = new List<b_bom_child_examine>();
|
|
|
- GetWorkDetalis(childs.Where(s => s.level == 2).ToList(), returnList, childs);
|
|
|
+ GetWorkDetalis(childs.Where(s => s.parent_id == child.fid).ToList(), returnList, childs);
|
|
|
if (returnList.Any())
|
|
|
{
|
|
|
foreach (var structure in returnList)
|
|
|
@@ -4059,6 +4067,24 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public long GetParentMo(List<mes_morder> morders, mes_morder item)
|
|
|
+ {
|
|
|
+ if (item.parent_id != null)
|
|
|
+ {
|
|
|
+ var parentMo = morders.Find(s => s.Id == item.parent_id);
|
|
|
+ if (parentMo != null)
|
|
|
+ {
|
|
|
+ return GetParentMo(morders, parentMo);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return item.Id;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return item.Id;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 获取虚拟件明细
|
|
|
/// </summary>
|