From 481e4bef4be32a5a9754d01faf80bf0bc4e14951 Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期三, 28 八月 2024 14:23:16 +0800 Subject: [PATCH] 生产领料单 --- MES.Service/service/Warehouse/MesInvItemArnDetailManager.cs | 121 ++++++++++++++++++++++++++++------------ 1 files changed, 84 insertions(+), 37 deletions(-) diff --git a/MES.Service/service/Warehouse/MesInvItemArnDetailManager.cs b/MES.Service/service/Warehouse/MesInvItemArnDetailManager.cs index 38d361f..73d3732 100644 --- a/MES.Service/service/Warehouse/MesInvItemArnDetailManager.cs +++ b/MES.Service/service/Warehouse/MesInvItemArnDetailManager.cs @@ -7,6 +7,13 @@ public class MesInvItemArnDetailManager : Repository<MesInvItemArnDetail> { + //var result = db.Ado.GetString($"SELECT f_getseqnextvalue('{sequenceName}') FROM DUAL"); + + private readonly PurdhbManager purdhbManager = new(); + private readonly PurdkaManager purdkaManager = new(); + private readonly PurdkbManager purdkbManager = new(); + + private readonly MesQaItemsDetect01Manager rohInDataManager = new(); //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉� //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 MesInvItemArnDetailManager.cs @@ -21,7 +28,8 @@ c.ItemNo == t.ItemNo && c.Company == t.Company && c.Factory == t.Factory, JoinType.Left, - t.Fpurchaseunitid == u.Id && t.Factory == u.Factory && + t.Fpurchaseunitid == u.Id.ToString() && + t.Factory == u.Factory && t.Company == u.Company }) .Where((c, t, u) => c.Mid == query.id) @@ -52,18 +60,20 @@ // 鏌ヨ var result = Db .Queryable<MesQaItemsDetect01, MesInvItemArn, MesInvItemArnDetail, - MesItems, MesUnit>( - (a, d, b, c, t) => new object[] + MesItems, MesUnit, MesQaItemsDetectDetail5>( + (a, d, b, c, t, z) => new object[] { JoinType.Inner, d.BillNo == a.LotNo, JoinType.Inner, d.Id == b.Mid && b.ItemNo == a.ItemNo, JoinType.Inner, a.ItemNo == c.ItemNo && a.Company == c.Company && a.Factory == c.Factory, - JoinType.Inner, c.Fpurchaseunitid == t.Id + JoinType.Inner, c.Fpurchaseunitid == t.Id.ToString(), + JoinType.Inner, z.ReleaseNo == a.ReleaseNo }) - .Where((a, d, b, c, t) => a.FngHandle == "閫�璐�" && - query.ItemArnDetailIds.Contains(b.Id)) + .Where((a, d, b, c, t, z) => a.FngHandle == "閫�璐�" && + z.FcheckResu == "涓嶅悎鏍�" && + query.ItemArnDetailIds.Contains(b.Id)) .Select((a, d, b, c, t) => new Material { FmrMode = a.Fmrmode, @@ -81,16 +91,9 @@ return result; } - //var result = db.Ado.GetString($"SELECT f_getseqnextvalue('{sequenceName}') FROM DUAL"); - - private readonly PurdhbManager purdhbManager = new(); - private readonly PurdkaManager purdkaManager = new(); - private readonly PurdkbManager purdkbManager = new(); - private readonly MesQaItemsDetect01Manager rohInDataManager = new(); - public bool SetMaterial(Material material) { - return UseTransaction(db => + var b1 = UseTransaction(db => { var executeCommand = db.Updateable<MesInvItemArnDetail>() .SetColumns(s => s.CheckRes == "涓嶅悎鏍�") @@ -103,50 +106,94 @@ var mesQaItemsDetect01 = db.Queryable<MesQaItemsDetect01>() .Where(a => a.Id == material.FmesEntryId).Single(); - if (mesQaItemsDetect01 == null) - { - return 0; - } + if (mesQaItemsDetect01 == null) return 0; var suppName = db.Queryable<MesSupplier>() .Where(b => b.SuppNo == mesQaItemsDetect01.SuppNo) .Select<string>(b => b.SuppName).First(); var CIdt = db.Ado.GetString( - $"SELECT f_getseqnextvalue('mes_inv_item_ins') FROM DUAL"); + "SELECT f_getseqnextvalue('mes_inv_item_ins') FROM DUAL"); var billNo = db.Ado.GetString( - $"SELECT getbillcode1('1000', '1000', 'INV_IN_BACK') FROM DUAL"); + "SELECT getbillcode1('1000', '1000', 'INV_IN_BACK') FROM DUAL"); // PURDKA var purdka = GetPurdka(CIdt, billNo, mesQaItemsDetect01, suppName); - executeCommand += db.Insertable<Purdka>(purdka).ExecuteCommand(); + executeCommand += db.Insertable(purdka).ExecuteCommand(); - db.Queryable<Purdhb>() - .Where(c => c.Dhb001 == mesQaItemsDetect01.LotNo - && c.Dhb003 == mesQaItemsDetect01.ItemNo) - .Select(c => new Purdhb - { - Dhb002 = c.Dhb002, - Dhb003 = c.Dhb003, - Dhb006 = c.Dhb006, - Dhb007 = c.Dhb007, - Dhb017 = c.Dhb017, - Dhb018 = c.Dhb018, - Dhb001 = c.Dhb001, - Dhb042 = c.Dhb042 - }).ToList(); + executeCommand += InsertPurdkbs(db, mesQaItemsDetect01, billNo); + + executeCommand += db.Updateable<MesQaItemsDetect01>() + .SetColumns(c => c.Modify1Flag == 1) + .SetColumns(c => c.Modify1By == material.UserName) + .SetColumns(c => c.Modify1Date == DateTime.Now) + .SetColumns(c => c.FngHandle == "閫�璐�") + .Where(c => c.ReleaseNo == mesQaItemsDetect01.ReleaseNo) + .ExecuteCommand(); return executeCommand; - }) > 3; + }) >= 4; + + if (b1 == false) throw new NotImplementedException("鎺ㄩ�佸け璐ワ紝Mes鏂归潰鍑虹幇闂"); + + return b1; + } + + private int InsertPurdkbs(SqlSugarScope db, + MesQaItemsDetect01 mesQaItemsDetect01, string billNo) + { + var purdhbs = db.Queryable<Purdhb>() + .Where(c => c.Dhb001 == mesQaItemsDetect01.LotNo + && c.Dhb003 == mesQaItemsDetect01.ItemNo) + .Select(c => new Purdhb + { + Dhb002 = c.Dhb002, + Dhb003 = c.Dhb003, + Dhb006 = c.Dhb006, + Dhb007 = c.Dhb007, + Dhb017 = c.Dhb017, + Dhb018 = c.Dhb018, + Dhb001 = c.Dhb001, + Dhb042 = c.Dhb042 + }).ToList(); + + var list = new List<Purdkb>(); + + purdhbs.ForEach(s => + { + var id = db.Ado.GetString( + "SELECT f_getseqnextvalue('MES_INV_ITEM_IN_C_DETAILS') FROM DUAL"); + + var purdkb = new Purdkb(); + purdkb.Id = Convert.ToDecimal(id); + purdkb.Dkb001 = billNo; + purdkb.Dkb002 = s.Dhb002; + purdkb.Dkb003 = s.Dhb003; + purdkb.Dkb006 = s.Dhb006; + purdkb.Dkb007 = s.Dhb006; + purdkb.Dkb008 = 0; + purdkb.Dkb009 = s.Dhb007; + purdkb.Dkb010 = s.Dhb017; + purdkb.Dkb011 = s.Dhb018; + purdkb.Dkb012 = s.Dhb001; + purdkb.Dkb013 = s.Dhb002; + purdkb.Dkb016 = s.Dhb042; + + list.Add(purdkb); + }); + + var insertRange = db.Insertable(list).ExecuteCommand(); + + return insertRange == purdhbs.Count ? 1 : 0; } private static Purdka GetPurdka(string CIdt, string billNo, MesQaItemsDetect01 mesQaItemsDetect01, string suppName) { var date = DateTime.Now.ToString("yyyy-MM-dd"); - Purdka purdka = new Purdka(); + var purdka = new Purdka(); purdka.Id = Convert.ToDecimal(CIdt); purdka.Dka001 = billNo; purdka.Dka002 = "閲囪喘閫�璐�"; -- Gitblit v1.9.3