From 587b608d17fbb1c4c238f007acebb363fc2be615 Mon Sep 17 00:00:00 2001 From: qian Date: Mon, 20 May 2024 14:20:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=97=E6=B1=BD=20=E8=A6=81=E8=B4=A7?= =?UTF-8?q?=E7=9C=8B=E6=9D=BF=20=E7=BA=A2=E8=89=B2=E5=AD=97=E4=BD=93?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E8=B6=85=E6=97=B6=20=E6=89=93=E4=B8=8D?= =?UTF-8?q?=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 北京北汽/Controller/SCP_ASK_CONTROLLER.cs | 78 +++++++++++++++---- 北京北汽/Models/ScpEntity/V_TB_ASK.cs | 2 +- 2 files changed, 62 insertions(+), 18 deletions(-) diff --git a/北京北汽/Controller/SCP_ASK_CONTROLLER.cs b/北京北汽/Controller/SCP_ASK_CONTROLLER.cs index d15aeef..6f203a6 100644 --- a/北京北汽/Controller/SCP_ASK_CONTROLLER.cs +++ b/北京北汽/Controller/SCP_ASK_CONTROLLER.cs @@ -1504,26 +1504,70 @@ namespace CK.SCP.Controller { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - var _ls = p_list.Select(p => p.AskBillNum); - StringBuilder _buffer = new StringBuilder(); - _buffer.Append(" select distinct (C.AskBillNum)from V_TB_ASK_DETAIL C"); - _buffer.Append(" left JOIN "); - _buffer.Append(" (select SUM(Qty) as Qty, a.PoLine, a.AskBillNum, a.PartCode from v_tb_asn_detail a where a.IsDeleted=0 "); - _buffer.Append(" group by a.PoLine, a.AskBillNum, a.PartCode) AS D "); - _buffer.Append(" ON C.AskBillNum = D.AskBillNum AND C.PoLine = D.PoLine AND C.PartCode = D.PartCode "); - _buffer.Append(" WHERE C.AskQty>isnull(D.Qty,0)"); - _buffer.Append(" and c.AskBillNum in ('{0}')"); - var _str = string.Format(_buffer.ToString(), string.Join("','", _ls.ToArray())); - var _list = db.Database.SqlQuery(_str).ToList(); - - p_list.ForEach(p => + var _ls = p_list.Select(p => p.AskBillNum).ToList(); + List numlist = new List(); + var askdetailList = db.V_TB_ASK_DETAIL.Where(q => _ls.Contains(q.AskBillNum) && q.IsDeleted == false).ToList().Distinct().ToList(); + var asndetailList = db.V_TB_ASN_DETAIL.Where(q => _ls.Contains(q.AskBillNum) && q.IsDeleted == false).ToList(); + if (askdetailList.Count() > 0) { - p.IsComplete = true; - if (_list.Contains(p.AskBillNum)) + if (asndetailList.Count() > 0) + { + //按照看板号 行号 零件号分组 + var list = asndetailList.GroupBy(p => new { p.AskBillNum, p.PoLine, p.PartCode }).Select(p => new { Sum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, AskBillNum = p.Key.AskBillNum, PartCode = p.Key.PartCode }).ToList(); + askdetailList.ForEach(p => + { + var detail = list.FirstOrDefault(q => q.AskBillNum == p.AskBillNum && q.PoLine == p.PoLine && q.PartCode == p.PartCode); + if (detail != null) + { + if (detail.Sum < p.AskQty) + { + numlist.Add(p.AskBillNum); + } + } + else + { + numlist.Add(p.AskBillNum); + } + }); + if (numlist.Count() > 0) + { + p_list.ForEach(p => + { + if (numlist.Contains(p.AskBillNum)) + { + p.IsComplete = false; + } + }); + } + + } + else // 全部没有 { - p.IsComplete = false; + p_list.ForEach(p => + { + p.IsComplete = true; + }); } - }); + } + //StringBuilder _buffer = new StringBuilder(); + //_buffer.Append(" select distinct (C.AskBillNum)from V_TB_ASK_DETAIL C"); + //_buffer.Append(" left JOIN "); + //_buffer.Append(" (select SUM(Qty) as Qty, a.PoLine, a.AskBillNum, a.PartCode from v_tb_asn_detail a where a.IsDeleted=0 "); + //_buffer.Append(" group by a.PoLine, a.AskBillNum, a.PartCode) AS D "); + //_buffer.Append(" ON C.AskBillNum = D.AskBillNum AND C.PoLine = D.PoLine AND C.PartCode = D.PartCode "); + //_buffer.Append(" WHERE C.AskQty>isnull(D.Qty,0)"); + //_buffer.Append(" and c.AskBillNum in ('{0}')"); + //var _str = string.Format(_buffer.ToString(), string.Join("','", _ls.ToArray())); + //var _list = db.Database.SqlQuery(_str).ToList(); + + //p_list.ForEach(p => + //{ + // p.IsComplete = true; + // if (_list.Contains(p.AskBillNum)) + // { + // p.IsComplete = false; + // } + //}); } return p_list; diff --git a/北京北汽/Models/ScpEntity/V_TB_ASK.cs b/北京北汽/Models/ScpEntity/V_TB_ASK.cs index a3dae80..15ffd0a 100644 --- a/北京北汽/Models/ScpEntity/V_TB_ASK.cs +++ b/北京北汽/Models/ScpEntity/V_TB_ASK.cs @@ -77,7 +77,7 @@ namespace CK.SCP.Models.ScpEntity [NotMapped] public string Month { get; set; } [NotMapped] - public bool IsComplete { get; set; } + public bool IsComplete { get; set; } = true; [NotMapped] public string PartCode { get; set; } [NotMapped]