|
|
@@ -982,24 +982,24 @@ namespace Business.ResourceExamineManagement
|
|
|
//物料、供应商为相同才允许合并。
|
|
|
var idList = AnalysisIdList(ids);
|
|
|
List<srm_pr_main> prlist = _mysql_srm_pr_main.GetListAsync(s => idList.Contains(s.Id)).Result;
|
|
|
- if (prlist.Where(s => s.state == 0).Count() > 0)
|
|
|
- {
|
|
|
- return JsonConvert.SerializeObject("所选包含已关闭采购申请,请重新选择。");
|
|
|
- }
|
|
|
- if (prlist.Where(s => s.state == 2).Count() > 0)
|
|
|
- {
|
|
|
- return JsonConvert.SerializeObject("所选包含已提交评审采购申请,请重新选择。");
|
|
|
- }
|
|
|
- if (prlist.Where(s => s.state == 4).Count() > 0)
|
|
|
- {
|
|
|
- return JsonConvert.SerializeObject("所选包含已评审通过采购申请,请重新选择。");
|
|
|
- }
|
|
|
if (prlist.Any())
|
|
|
{
|
|
|
- var list = prlist.GroupBy(s => new { s.icitem_id, s.pr_purchaseid });
|
|
|
+ if (prlist.Where(s => s.state == 0).Count() > 0)
|
|
|
+ {
|
|
|
+ return JsonConvert.SerializeObject("所选包含已关闭采购申请,请重新选择。");
|
|
|
+ }
|
|
|
+ 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)
|
|
|
{
|
|
|
- return JsonConvert.SerializeObject("所选行的物料编码,供应商名称必须相同");
|
|
|
+ return JsonConvert.SerializeObject("所选行的物料编码、供应商名称、采购类型必须相同");
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
@@ -1085,13 +1085,13 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
bool bl = pr.sentry_id == null;//区分是销售订单和非销售订单的合并。
|
|
|
//找到是否生成了新的PR 当前数据是否已经产生合并,则不再合并。
|
|
|
- var newPr = insetPrList.Find(s => s.pr_purchaseid == pr.pr_purchaseid && s.icitem_id == pr.icitem_id && (s.sentry_id == null) == bl);
|
|
|
+ var newPr = insetPrList.Find(s => s.pr_purchaseid == pr.pr_purchaseid && s.icitem_id == pr.icitem_id && s.IsRequireGoods == pr.IsRequireGoods && (s.sentry_id == null) == bl);
|
|
|
//var newPr = insetPrList.Find(s => s.pr_purchaseid == pr.pr_purchaseid && s.icitem_id == pr.icitem_id);
|
|
|
if (newPr == null)
|
|
|
{
|
|
|
//有多条才进行合并
|
|
|
- //var ilist = prlist.Where(s => s.pr_purchaseid == pr.pr_purchaseid && s.icitem_id == pr.icitem_id && (s.sentry_id == null) == bl).ToList();
|
|
|
- var ilist = prlist.Where(s => s.pr_purchaseid == pr.pr_purchaseid && s.icitem_id == pr.icitem_id).ToList();
|
|
|
+ var ilist = prlist.Where(s => s.pr_purchaseid == pr.pr_purchaseid && s.icitem_id == pr.icitem_id && s.IsRequireGoods == pr.IsRequireGoods && (s.sentry_id == null) == bl).ToList();
|
|
|
+ //var ilist = prlist.Where(s => s.pr_purchaseid == pr.pr_purchaseid && s.icitem_id == pr.icitem_id).ToList();
|
|
|
if (ilist.Count > 1)
|
|
|
{
|
|
|
var icitem = ic_Items.Find(s => s.Id == pr.icitem_id);
|
|
|
@@ -2548,6 +2548,7 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
List<WorkOrdRouting> alllist = workordRList.Where(s => s.WorkOrd == work).ToList();
|
|
|
List<WorkOrdRouting> parentlist = alllist.Where(s => s.WorkOrd == work && s.ParentOp == 0).ToList();
|
|
|
+ //非关键工序也要添加
|
|
|
copyList.AddRange(parentlist.Where(s => s.MilestoneOp == false).ToList());
|
|
|
GetChildOP(parentlist, alllist, copyList);
|
|
|
}
|
|
|
@@ -3768,11 +3769,13 @@ namespace Business.ResourceExamineManagement
|
|
|
if (exm != null)
|
|
|
{
|
|
|
var childs = childExamineList.Where(s => s.examine_id == exm.Id).ToList();
|
|
|
- if (childs.Any())
|
|
|
+ List<b_bom_child_examine> returnList = new List<b_bom_child_examine>();
|
|
|
+ GetWorkDetalis(childs.Where(s => s.level == 2).ToList(), returnList, childs);
|
|
|
+ if (returnList.Any())
|
|
|
{
|
|
|
- foreach (var structure in childs)
|
|
|
+ foreach (var structure in returnList)
|
|
|
{
|
|
|
- woDetail = workOrdDetails.Find(s => s.ItemNum == structure.item_number);
|
|
|
+ woDetail = workOrdDetails.Find(s => s.ItemNum == structure.item_number && s.WorkOrd == item.morder_no);
|
|
|
if (woDetail == null)
|
|
|
{
|
|
|
//添加工单的物料信息
|
|
|
@@ -3828,6 +3831,23 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 获取虚拟件明细
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dtl"></param>
|
|
|
+ /// <param name="returnList"></param>
|
|
|
+ /// <param name="childs"></param>
|
|
|
+ public void GetWorkDetalis(List<b_bom_child_examine> dtl, List<b_bom_child_examine> returnList, List<b_bom_child_examine> childs)
|
|
|
+ {
|
|
|
+ returnList.AddRange(dtl);
|
|
|
+ var rst = childs.Where(s => dtl.Where(x => x.erp_cls == 4).Select(c => c.fid).Contains(s.parent_id.GetValueOrDefault())).ToList();
|
|
|
+ if (rst.Any())
|
|
|
+ {
|
|
|
+ GetWorkDetalis(rst, returnList, childs);
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 获取标准Bom数据--TODO:存在循环查询数据库问题,后续调整
|
|
|
/// </summary>
|