using MES.Service.DB; using MES.Service.Dto.service; using MES.Service.Modes; using SqlSugar; namespace MES.Service.service.Warehouse; public class MesInvItemArnDetailManager : Repository { //当前类已经继承了 Repository 增、删、查、改的方法 //这里面写的代码不会给覆盖,如果要重新生成请删除 MesInvItemArnDetailManager.cs public List GetDetails(WarehouseQuery query) { // 查询 return Db.Queryable( (c, t, u) => new object[] { JoinType.Left, c.ItemNo == t.ItemNo && c.Company == t.Company && c.Factory == t.Factory, JoinType.Left, t.Fpurchaseunitid == u.Id && t.Factory == u.Factory && t.Company == u.Company }) .Where((c, t, u) => c.Mid == query.id) .Select((c, t, u) => new MesInvItemArnDetail { CheckRes = c.CheckRes, itemModel = t.ItemModel, itemName = t.ItemName, UrgentFlag = c.UrgentFlag, Memo = c.Memo, Quantity = c.Quantity, SubQty = c.SubQty, CheckStates = c.CheckStates, WorkLine = c.WorkLine, IsdepsIn = c.IsdepsIn, OkRkqty = c.OkRkqty, Fname = u.Fname, EbelnQty = c.EbelnQty, ItemNo = c.ItemNo, Id = c.Id, Ebeln = c.Ebeln }) .ToList(); } public List GetMaterial(WarehouseQuery query) { // 查询 var result = Db .Queryable( (a, d, b, c, t) => 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 }) .Where((a, d, b, c, t) => a.FngHandle == "退货" && query.ItemArnDetailIds.Contains(b.Id)) .Select((a, d, b, c, t) => new Material { FmrMode = a.Fmrmode, FngDesc = a.FngDesc, FsrcEntryId = b.Id, FrmRealQty = b.Quantity, FmaterialId = a.ItemNo, FstockId = d.DepotsCode, Funit = t.Fnumber, FmesEntryId = a.Id, Mid = d.Id }) .ToList(); 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 executeCommand = db.Updateable() .SetColumns(s => s.CheckRes == "不合格") .SetColumns(s => s.CheckStates == "退货") .SetColumns(s => s.Ischeck == 1) .Where(s => s.Mid == material.Mid && s.ItemNo == material.FmaterialId) .ExecuteCommand(); var mesQaItemsDetect01 = db.Queryable() .Where(a => a.Id == material.FmesEntryId).Single(); if (mesQaItemsDetect01 == null) { return 0; } var suppName = db.Queryable() .Where(b => b.SuppNo == mesQaItemsDetect01.SuppNo) .Select(b => b.SuppName).First(); var CIdt = db.Ado.GetString( $"SELECT f_getseqnextvalue('mes_inv_item_ins') FROM DUAL"); var billNo = db.Ado.GetString( $"SELECT getbillcode1('1000', '1000', 'INV_IN_BACK') FROM DUAL"); // PURDKA var purdka = GetPurdka(CIdt, billNo, mesQaItemsDetect01, suppName); executeCommand += db.Insertable(purdka).ExecuteCommand(); db.Queryable() .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(); return executeCommand; }) > 3; } private static Purdka GetPurdka(string CIdt, string billNo, MesQaItemsDetect01 mesQaItemsDetect01, string suppName) { var date = DateTime.Now.ToString("yyyy-MM-dd"); Purdka purdka = new Purdka(); purdka.Id = Convert.ToDecimal(CIdt); purdka.Dka001 = billNo; purdka.Dka002 = "采购退货"; purdka.Dka003 = date; purdka.Dka004 = date; purdka.Dka005 = mesQaItemsDetect01.SuppNo; purdka.Dka006 = suppName; purdka.Dka010 = "1"; purdka.Dka013 = 0; purdka.Createuser = mesQaItemsDetect01.LastupdateBy; return purdka; } }