From bdf5a76a8eab8304176a1379a175e2248fa90ca7 Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期一, 02 十二月 2024 08:56:56 +0800 Subject: [PATCH] 采购退料扫码 --- service/Warehouse/MesInvItemOutsManager.cs | 112 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 91 insertions(+), 21 deletions(-) diff --git a/service/Warehouse/MesInvItemOutsManager.cs b/service/Warehouse/MesInvItemOutsManager.cs index 14a12de..59c5394 100644 --- a/service/Warehouse/MesInvItemOutsManager.cs +++ b/service/Warehouse/MesInvItemOutsManager.cs @@ -2,6 +2,7 @@ using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; using NewPdaSqlServer.util; +using Newtonsoft.Json; using SqlSugar; namespace NewPdaSqlServer.service.Warehouse; @@ -376,14 +377,15 @@ { var message = MesToErpParam(query); - // var executeReturnIdentity = - // Db.Insertable(message).ExecuteReturnIdentity(); - // if (executeReturnIdentity > 0) - // { - // message.Id = executeReturnIdentity; - // message.Pid = executeReturnIdentity; - // return message; - // } + var newGuid = Guid.NewGuid(); + message.Guid = newGuid; + message.Pid = newGuid; + var executeReturnIdentity = + Db.Insertable(message).IgnoreColumns(true).ExecuteCommand(); + if (executeReturnIdentity > 0) + { + return message; + } throw new Exception("鑾峰彇鏁版嵁澶辫触"); } @@ -415,7 +417,10 @@ if (mesInvItemStocks == null) return dto; - dto.ItemNo = mesInvItemStocks.ItemNo; + var mesItems = Db.Queryable<MesItems>() + .Where(s => s.Id == mesInvItemStocks.ItemId).Single(); + + dto.ItemNo = mesItems.ItemNo; dto.Quantity = mesInvItemStocks.Quantity; return dto; @@ -443,6 +448,7 @@ .Where((b, bar, c, d) => b.ItemOutId == parsedGuid) .Select((b, bar, c, d) => new MesInvItemOutCDetails { + Guid = b.Guid, Quantity = b.Quantity, DepotSectionCode = b.DepotSectionCode, DepotCode = b.DepotCode, @@ -464,12 +470,12 @@ var tableName = "MES_INV_ITEM_OUTS_" + query.Type; if ("A".Equals(query.Type)) { - //erpParameters = GetErpParameters(query.billNo); + erpParameters = GetErpParameters(query.id); title = "閲囪喘閫�璐у崟" + query.billNo + "瀹℃牳"; } else if ("B".Equals(query.Type)) { - //erpParameters = GetDeApprovePam(query.id); + erpParameters = GetDeApprovePam(query.id); title = "閲囪喘閫�璐у崟" + query.billNo + "鍙嶅鏍�"; } @@ -492,6 +498,72 @@ ContentType = "application/x-www-form-urlencoded" }; return message; + } + + private string GetErpParameters(string? id) + { + var guid = Guid.Empty; + if (string.IsNullOrEmpty(id)) return ""; + + var isValid = Guid.TryParse(id, out guid); + if (!isValid) + throw new ApplicationException("GUID杞崲閿欒"); + + var materials = Db + .Queryable<MesInvItemOuts, MesInvItemOutItems, + MesItems, MesUnit, MesInvItemArnDetail, MesDepots>( + (a, b, c, d, e, f) => new JoinQueryInfos( + JoinType.Left, a.Guid == b.ItemOutId, + JoinType.Left, b.ItemId == c.Id, + JoinType.Left, d.Id.ToString() == c.ItemUnit, + JoinType.Left, + e.CbillNo == b.WorkNo && e.ItemId == b.ItemId, + JoinType.Left, f.DepotId == a.DepotId + )).Where((a, b, c, d, e, f) => b.Guid == guid) + .Select<Material>((a, b, c, d, e, f) => new Material + { + FMaterialId = c.ItemNo, + FRMREALQTY = b.Quantity.ToString(), + FStockId = f.DepotCode, + FUnitID = d.Fnumber, + FLot = b.WorkNo, + F_MES_ENTRYID = b.Guid, + FsrcEntryId = e.Guid.ToString(), + }).ToList(); + + + var mm = Db.Queryable<MesInvItemOuts>() + .Where(a => a.Guid == guid).First(); + + var jsonEntries = materials.Select(d => new + { + FMaterialId = d.FMaterialId, + FRMREALQTY = d.FRMREALQTY, + FStockId = d.FStockId, + FUnitID = d.FUnitID, + FLot = d.FLot, + F_MES_ENTRYID = d.F_MES_ENTRYID.ToString(), + FsrcEntryId = d.FsrcEntryId, + }).ToList(); + var fdate = DateTime.Now.ToString("yyyy-MM-dd"); + var jsonString = JsonConvert.SerializeObject(jsonEntries); + var encodedUrl = "taskname=CGTL&mesid=" + guid + + "&optype=create&datajson={\"F_MES_ID\":\"" + guid + + "\",\"FDate\":\"" + fdate + + "\",\"FSRCBillTypeId\":\"" + "閲囪喘鍏ュ簱鍗�" + + "\",\"FDESCRIPTION\":\"" + mm.Remark + + "\",\"FMRMODE\":\"" + mm.Fmrmode + + "\",\"cgtlentry\":" + jsonString + + "}"; + return encodedUrl; + } + + private string GetDeApprovePam(string? id) + { + var encodedUrl = "taskname=CGTL&mesid=" + id + + "&optype=delete&datajson={}"; + + return encodedUrl; } public bool ScanCode(WarehouseQuery query) @@ -582,17 +654,15 @@ sql = string.Format(@" SELECT SUM(C.QUANTITY) AS SQ_QTY, SUM(D.QUANTITY_OK) AS OK_QTY - FROM MES_INV_ITEM_OUT_ITEMS C - LEFT JOIN ( - SELECT ITEM_OUT_ID, ITEM_NO, PBILL_NO, RK_NO, SUM(QUANTITY) AS QUANTITY_OK + FROM MES_INV_ITEM_OUT_ITEMS C + LEFT JOIN (SELECT ITEM_OUT_ID, ITEM_ID, PBILL_NO, RK_NO, SUM(QUANTITY) AS QUANTITY_OK FROM MES_INV_ITEM_OUT_C_DETAILS - GROUP BY ITEM_OUT_ID, ITEM_NO, PBILL_NO, RK_NO - ) D - ON D.ITEM_OUT_ID = C.ITEM_OUT_ID - AND D.ITEM_NO = C.ITEM_NO - AND D.RK_NO = C.RK_NO - AND isnull(C.PBILL_NO, '0') = isnull(D.PBILL_NO, '0') - WHERE C.ITEM_OUT_ID = '{0}'", mesInvItemOuts.Guid); + GROUP BY ITEM_OUT_ID, ITEM_ID, PBILL_NO, RK_NO) D + ON D.ITEM_OUT_ID = C.ITEM_OUT_ID + AND D.ITEM_ID = C.ITEM_ID + AND isnull(C.PBILL_NO, '0') = isnull(D.PBILL_NO, '0') + WHERE C.ITEM_OUT_ID = '{0}'", + mesInvItemOuts.Guid); var queryResult = Db.Ado.SqlQuerySingle<dynamic>(sql); -- Gitblit v1.9.3