From 22bd4e4fef55fa22e1a843d5488d77e837da760d Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期六, 11 一月 2025 12:53:05 +0800 Subject: [PATCH] 11 --- service/Warehouse/MesItemTblManager.cs | 367 ---------------------------------------------------- 1 files changed, 0 insertions(+), 367 deletions(-) diff --git a/service/Warehouse/MesItemTblManager.cs b/service/Warehouse/MesItemTblManager.cs index 0df7b9a..10fbaac 100644 --- a/service/Warehouse/MesItemTblManager.cs +++ b/service/Warehouse/MesItemTblManager.cs @@ -456,371 +456,4 @@ query.Num = c_quantity.Value; return query; } - - - /// <summary> - /// 濮斿閫�鏂欐壂鎻忔潯鐮�(鐢熶骇閫�鏂欑殑閫昏緫锛屽彧鏄皟鏁翠簡鍑犱釜瀛楁) - /// </summary> - /// <param name="query">浠撳簱鏌ヨ鍙傛暟</param> - /// <returns>澶勭悊缁撴灉</returns> - public WarehouseQuery WwtlScanBarcode(WarehouseQuery query) - { - var p_item_barcode = query.barcode; // 鐗╂枡鏉$爜 - var p_bill_no = query.billNo; // 鍗曟嵁鍙� - var p_section_code = query.DepotCode; // 搴撲綅缂栫爜 - var c_user = query.userName; // 鐢ㄦ埛鍚� - - var p_bill_type_id = 100; // 鍗曟嵁绫诲瀷ID - var p_transction_no = 104; // 浜ゆ槗缂栧彿 - - // 楠岃瘉搴撲綅鏉$爜 - if (p_section_code.IsNullOrEmpty()) throw new Exception("璇锋壂搴撲綅鏉$爜锛�"); - - // 鑾峰彇搴撲綅淇℃伅 - var c_depot_code = Db.Queryable<MesDepotSections, MesDepots>((a, b) => - new JoinQueryInfos(JoinType.Inner, a.DepotGuid == b.Guid)) - .Where((a, b) => a.DepotSectionCode == p_section_code) - .Select((a, b) => b.DepotId).First(); - - if (!c_depot_code.HasValue) - throw new Exception("搴撲綅缂栫爜" + p_section_code + " 涓嶅瓨鍦紝璇风‘璁わ紒"); - - // 鑾峰彇搴撲綅鍒嗗尯淇℃伅 - var mesDepotSections = Db.Queryable<MesDepotSections>() - .Where(a => a.DepotSectionCode == p_section_code).First(); - - if (mesDepotSections == null) - throw new Exception("搴撲綅缂栫爜" + p_section_code + " 涓嶅瓨鍦紝璇风‘璁わ紒"); - - // 鑾峰彇搴撲綅鍩虹淇℃伅 - var c_mes_depots = Db.Queryable<MesDepots>() - .Where(b => b.Guid == mesDepotSections.DepotGuid).First(); - - if (c_mes_depots == null) - throw new Exception("搴撲綅缂栫爜" + p_section_code + " 涓嶅瓨鍦紝璇风‘璁わ紒"); - - // 妫�鏌ユ潯鐮佹槸鍚﹀凡鍏ュ簱 - var c_num = Db.Queryable<MesInvItemIns, MesInvItemInCDetails>((a, b) => - new JoinQueryInfos(JoinType.Inner, a.Guid == b.ItemInId)) - .Where((a, b) => b.ItemBarcode == p_item_barcode - && a.BillTypeId == p_bill_type_id && - a.TransctionNo == p_transction_no.ToString()) - .Count(); - - if (c_num > 0) throw new Exception("姝ゆ潯鐮佸凡鎵叆搴擄紝鍕块噸澶嶆壂鎻忥紒"); - - c_num = Db.Queryable<MesInvItemStocks>() - .Where(t => t.ItemBarcode == p_item_barcode).Count(); - - if (c_num > 0) throw new Exception("姝ゆ潯鐮佸凡鎵叆搴擄紝鍕块噸澶嶆壂鎻忥紒"); - - // 鑾峰彇鏉$爜淇℃伅 - var c_mes_inv_item_barcodes = Db.Queryable<MesInvItemBarcodes>() - .Where(t => t.ItemBarcode == p_item_barcode).First(); - - if (c_mes_inv_item_barcodes == null) - throw new Exception("姝ゆ潯鐮佷笉灞炰簬璇ラ��鏂欏崟锛岃鏍稿锛�"); - - // if (c_mes_inv_item_barcodes.Memo != "鐢熶骇閫�鏂�") - // throw new Exception("姝ゆ潯鐮佷笉鏄敓浜ч��鏂欐潯鐮侊紝涓嶅彲浣跨敤鐢熶骇閫�鏂欐ā鍧楋紒"); - - // 鑾峰彇閫�鏂欏崟淇℃伅 - var C_MES_ITEM_TBL = Db.Queryable<MesItemTbl>() - .Where(a => a.BillNo == c_mes_inv_item_barcodes.BillNo - && (a.Tbl013 ?? 0) == 1).First(); - - if (C_MES_ITEM_TBL == null) throw new Exception("鐢宠鍗曞凡鎾ゅ洖,鏃犳硶鎵爜!"); - - if (C_MES_ITEM_TBL.Tbl020 == 1) throw new Exception("鎵爜瀹屾垚,鐢宠鍗曞凡瀹岀粨!"); - - // 鑾峰彇閫�鏂欏崟鏄庣粏 - var C_MES_ITEM_TBL_DETAIL = Db.Queryable<MesItemTblDetail>() - .Where(a => a.Tlmid == C_MES_ITEM_TBL.Id - && a.Tld010 == c_mes_inv_item_barcodes.WorkLine) - .First(); - - if (C_MES_ITEM_TBL_DETAIL == null) - throw new Exception("鏉$爜涓嶅睘浜庤鐢宠鍗曟槑缁�,鏃犳硶鎵爜!"); - - var c_quantity = c_mes_inv_item_barcodes.Quantity; - - var c_bill_no = ""; - var c_id = Guid.Empty; - - // 浣跨敤浜嬪姟澶勭悊鏁版嵁鏇存柊 - UseTransaction(db => - { - // 鏌ヨ鍏ュ簱鍗� - var mesInvItemIns = db.Queryable<MesInvItemIns>() - .Where(d => - d.Status == 0 && d.TransctionNo == - p_transction_no.ToString() - && d.CbillNo == c_mes_inv_item_barcodes.BillNo - && d.DepotsId == c_depot_code - && d.InsDate.Value.ToString("yyyyMMdd") == - DateTime.Now.ToString("yyyyMMdd")).First(); - - var totalResult = 0; - - // 濡傛灉鍏ュ簱鍗曚笉瀛樺湪鍒欏垱寤烘柊鐨勫叆搴撳崟 - if (mesInvItemIns == null) - { - c_bill_no = BillNo.GetBillNo("IN(鍏ュ簱鍗�)"); - - c_id = Guid.NewGuid(); - - totalResult += db.Insertable(new MesInvItemIns - { - Guid = c_id, - BillNo = c_bill_no, - BillTypeId = p_bill_type_id, - UserNoBack = c_user, - Reason = C_MES_ITEM_TBL.Tbl005, - Remark = C_MES_ITEM_TBL.Tbl006, - InsDate = DateTime.Now, - // DepotsCode = c_depot_code, - DepotsId = c_depot_code, - TransctionNo = p_transction_no.ToString(), - CreateBy = c_user, - CreateDate = DateTime.Now, - LastupdateBy = c_user, - LastupdateDate = DateTime.Now, - CbillNo = C_MES_ITEM_TBL.BillNo, - RbillNo = C_MES_ITEM_TBL.Tbl002 - }).IgnoreColumns(true).ExecuteCommand(); - } - else - { - c_id = mesInvItemIns.Guid; - c_bill_no = mesInvItemIns.BillNo; - } - - // 妫�鏌ユ槸鍚︿负鍚堝苟鎵撳嵃鏉$爜 - var hbdy = c_mes_inv_item_barcodes.Hbdy ?? 0; - if (hbdy == 1) throw new Exception("涓嶆敮鎸佸悎骞舵墦鍗扮殑鏉$爜:" + p_item_barcode); - - // 鎻掑叆鍏ュ簱鍗曟槑缁� - totalResult += db.Insertable(new MesInvItemInCDetails - { - Guid = Guid.NewGuid(), - ItemInId = c_id, - BillNo = c_bill_no, - ItemBarcode = p_item_barcode, - Quantity = c_quantity, - BarcodeFlag = true, - EpFlag = true, - WorkType = 1, - ItemId = c_mes_inv_item_barcodes.ItemId, - ItemNo = c_mes_inv_item_barcodes.ItemNo, - LotNo = c_mes_inv_item_barcodes.LotNo, - SuppId = c_mes_inv_item_barcodes.SuppId, - SuppNo = c_mes_inv_item_barcodes.SuppNo, - DepotId = c_mes_depots.DepotId, - DepotCode = c_mes_depots.DepotCode, - DepotSectionCode = p_section_code, - ItemSname = c_mes_inv_item_barcodes.ItemSname, - Unit = c_mes_inv_item_barcodes.Unit, - CreateBy = c_user, - CreateDate = DateTime.Now, - LastupdateBy = c_user, - LastupdateDate = DateTime.Now, - Remark = c_mes_inv_item_barcodes.Memo, - Ebeln = c_mes_inv_item_barcodes.Mblnr, - EbelnLineNo = c_mes_inv_item_barcodes.Zeile, - WorkNo = c_mes_inv_item_barcodes.WorkNo, - WorkLine = c_mes_inv_item_barcodes.WorkLine, - CbillNo = c_mes_inv_item_barcodes.BillNo, - UrgentFlag = c_mes_inv_item_barcodes.UrgentFlag, - BoardStyle = c_mes_inv_item_barcodes.BoardStyle, - TaskNo = c_mes_inv_item_barcodes.TaskNo, - RbillNo = C_MES_ITEM_TBL.Tbl002 - }).IgnoreColumns(true).ExecuteCommand(); - - // 鎻掑叆涓氬姟璁板綍 - totalResult += db.Insertable(new MesInvBusiness2 - { - Guid = Guid.NewGuid(), - Status = 1, - BillTypeId = p_bill_type_id, - TransactionCode = p_transction_no.ToString(), - BusinessType = 1, - ItemBarcode = p_item_barcode, - ItemNo = c_mes_inv_item_barcodes.ItemNo, - LotNo = c_mes_inv_item_barcodes.LotNo, - EpFlag = true, - Quantity = c_mes_inv_item_barcodes.Quantity, - ToInvDepotsCode = c_mes_depots.DepotCode, - InvDepotId = c_depot_code, - ToInvDepotSectionsCode = p_section_code, - Description = "濮斿閫�鏂�", - CreateBy = c_user, - CreateDate = DateTime.Now, - LastupdateBy = c_user, - LastupdateDate = DateTime.Now, - TaskNo = c_mes_inv_item_barcodes.TaskNo, - BillNo = c_bill_no, - WorkNo = c_mes_inv_item_barcodes.WorkNo, - WorkLine = c_mes_inv_item_barcodes.WorkLine, - SuppId = c_mes_inv_item_barcodes.SuppId, - SuppNo = c_mes_inv_item_barcodes.SuppNo, - ItemId = c_mes_inv_item_barcodes.ItemId - }).IgnoreColumns(true).ExecuteCommand(); - - // 鎻掑叆搴撳瓨璁板綍 - totalResult += db.Insertable(new MesInvItemStocks - { - Guid = Guid.NewGuid(), - TaskNo = c_mes_inv_item_barcodes.TaskNo, - ItemBarcode = p_item_barcode, - ItemNo = c_mes_inv_item_barcodes.ItemNo, - LotNo = c_mes_inv_item_barcodes.LotNo, - Quantity = c_mes_inv_item_barcodes.Quantity, - EpFlag = c_mes_inv_item_barcodes.EpFlag.Value - ? (byte)1 - : (byte)0, - DepotId = c_mes_depots.DepotId, - DepotsCode = c_mes_depots.DepotCode, - DepotSectionsCode = p_section_code, - CheckDate = c_mes_inv_item_barcodes.CreateDate, - IndepDate = DateTime.Now, - BoardStyle = c_mes_inv_item_barcodes.BoardStyle, - WorkNo = c_mes_inv_item_barcodes.WorkNo, - WorkLine = c_mes_inv_item_barcodes.WorkLine, - SuppNo = c_mes_inv_item_barcodes.SuppNo, - ItemId = c_mes_inv_item_barcodes.ItemId - }).IgnoreColumns(true).ExecuteCommand(); - - // 鏍规嵁閫�鏂欑被鍨�(鑹搧閫�鏂欍�佹潵鏂欎笉鑹��鏂欍�佷綔涓氫笉鑹��鏂�)鏇存柊鐩稿叧鏁版嵁 - if (C_MES_ITEM_TBL.Tbl005 is "鑹搧閫�鏂�" or "鏉ユ枡涓嶈壇閫�鏂�") - { - // 鑹搧閫�鏂� - 鏇存柊宸ュ崟琛�(WOMDAB)鐩稿叧鏁伴噺 - if (C_MES_ITEM_TBL.Tbl005 == "鑹搧閫�鏂�") - totalResult += Db.Updateable<Womdab>() - .SetColumns(it => new Womdab - { - Dab007 = it.Dab007 - - c_mes_inv_item_barcodes.Quantity, // 鍑忓皯宸ュ崟鏁伴噺 - Dab022 = (it.Dab022 ?? 0) + - c_mes_inv_item_barcodes.Quantity, // 澧炲姞閫�鏂欐暟閲� - LpTl = (it.LpTl ?? 0) + - (int)c_mes_inv_item_barcodes - .Quantity, // 澧炲姞鑹搧閫�鏂欐暟閲� - Dab020 = (it.Dab020 ?? 0) - - c_mes_inv_item_barcodes.Quantity // 鍑忓皯宸插彂鏂欐暟閲� - }) - .Where(it => it.Dab001 == c_mes_inv_item_barcodes.WorkNo - && it.Dab002 == c_mes_inv_item_barcodes - .WorkLine - && it.Dab003 == c_mes_inv_item_barcodes - .ItemId.ToString()) - .ExecuteCommand(); - // 鏉ユ枡涓嶈壇閫�鏂� - 鏇存柊宸ュ崟琛�(WOMDAB)鐩稿叧鏁伴噺 - else if (C_MES_ITEM_TBL.Tbl005 == "鏉ユ枡涓嶈壇閫�鏂�") - totalResult += Db.Updateable<Womdab>() - .SetColumns(it => new Womdab - { - Dab007 = it.Dab007 - - c_mes_inv_item_barcodes.Quantity, // 鍑忓皯宸ュ崟鏁伴噺 - Dab022 = (it.Dab022 ?? 0) + - c_mes_inv_item_barcodes.Quantity, // 澧炲姞閫�鏂欐暟閲� - LlBl = (it.LlBl ?? 0) + - (int)c_mes_inv_item_barcodes - .Quantity, // 澧炲姞鏉ユ枡涓嶈壇鏁伴噺 - Dab020 = (it.Dab020 ?? 0) - - c_mes_inv_item_barcodes.Quantity // 鍑忓皯宸插彂鏂欐暟閲� - }) - .Where(it => it.Dab001 == c_mes_inv_item_barcodes.WorkNo - && it.Dab002 == c_mes_inv_item_barcodes - .WorkLine - && it.Dab003 == c_mes_inv_item_barcodes - .ItemId.ToString()) - .ExecuteCommand(); - - // 鏇存柊閫�鏂欏崟鏄庣粏琛ㄥ凡閫�鏁伴噺 - totalResult += Db.Updateable<MesItemTblDetail>() - .SetColumns(it => new MesItemTblDetail - { - Tld006 = (it.Tld006 ?? 0) + - (int)c_mes_inv_item_barcodes.Quantity // 澧炲姞宸查��鏁伴噺 - }) - .Where(it => it.Tlmid == C_MES_ITEM_TBL.Id - && it.Tld009 == c_mes_inv_item_barcodes.ItemId - && it.Tld010 == - c_mes_inv_item_barcodes.WorkLine) - .ExecuteCommand(); - } - // 浣滀笟涓嶈壇閫�鏂� - 鏇存柊宸ュ崟琛ㄥ拰閫�鏂欏崟鏄庣粏琛� - else if (C_MES_ITEM_TBL.Tbl005 == "浣滀笟涓嶈壇閫�鏂�") - { - totalResult += Db.Updateable<Womdab>() - .SetColumns(it => new Womdab - { - Dab022 = (it.Dab022 ?? 0) + - c_mes_inv_item_barcodes.Quantity, // 澧炲姞閫�鏂欐暟閲� - ZyBl = (it.ZyBl ?? 0) + - (int)c_mes_inv_item_barcodes - .Quantity, // 澧炲姞浣滀笟涓嶈壇鏁伴噺 - Dab020 = (it.Dab020 ?? 0) - - c_mes_inv_item_barcodes.Quantity // 鍑忓皯宸插彂鏂欐暟閲� - }) - .Where(it => it.Dab001 == c_mes_inv_item_barcodes.WorkNo - && it.Dab002 == - c_mes_inv_item_barcodes.WorkLine - && it.Dab003 == c_mes_inv_item_barcodes.ItemId - .ToString()) - .ExecuteCommand(); - - // 鏇存柊閫�鏂欏崟鏄庣粏琛ㄥ凡閫�鏁伴噺 - totalResult += Db.Updateable<MesItemTblDetail>() - .SetColumns(it => new MesItemTblDetail - { - Tld006 = (it.Tld006 ?? 0) + - (int)c_mes_inv_item_barcodes.Quantity // 澧炲姞宸查��鏁伴噺 - }) - .Where(it => it.Tlmid == C_MES_ITEM_TBL.Id - && it.Tld009 == c_mes_inv_item_barcodes.ItemId - && it.Tld010 == - c_mes_inv_item_barcodes.WorkLine) - .ExecuteCommand(); - } - - // 濡傛灉寰呴��鏁伴噺绛変簬鏈閫�鏂欐暟閲忥紝鍒欐洿鏂版槑缁嗗畬鎴愮姸鎬� - if ((C_MES_ITEM_TBL_DETAIL.Tld005 ?? 0) - - (C_MES_ITEM_TBL_DETAIL.Tld006 ?? 0) == - c_mes_inv_item_barcodes.Quantity) - totalResult += Db.Updateable<MesItemTblDetail>() - .SetColumns(it => new MesItemTblDetail - { Tld008 = 1 }) // 璁剧疆瀹屾垚鏍囧織 - .Where(it => it.Tlid == C_MES_ITEM_TBL_DETAIL.Tlid) - .ExecuteCommand(); - - // 妫�鏌ラ��鏂欏崟鏄惁鎵�鏈夋槑缁嗛兘宸插畬鎴� - var remainingCount = Db.Queryable<MesItemTbl, MesItemTblDetail>( - (a, b) => - new JoinQueryInfos(JoinType.Left, a.Id == b.Tlmid)) - .Where((a, b) => - a.BillNo == p_bill_no && - (b.Tld005 ?? 0) - (b.Tld006 ?? 0) > 0) - .Count(); - - // 濡傛灉鎵�鏈夋槑缁嗛兘宸插畬鎴愶紝鍒欐洿鏂伴��鏂欏崟鐘舵�佷负宸插畬鎴� - if (remainingCount < 1) - totalResult += Db.Updateable<MesItemTbl>() - .SetColumns(it => it.Tbl020 == 1) // 璁剧疆瀹屾垚鏍囧織 - .Where(it => it.BillNo == p_bill_no) - .ExecuteCommand(); - - // 妫�鏌ュ繀瑕佺殑鎻掑叆鎿嶄綔鏄惁閮芥垚鍔熸墽琛� - var minimumExpectedOperations = 3; // 鑷冲皯闇�瑕佹墽琛岀殑鎻掑叆鎿嶄綔鏁� - if (totalResult < minimumExpectedOperations) - throw new Exception( - $"鍏抽敭鏁版嵁鎻掑叆澶辫触锛岄鏈熻嚦灏憑minimumExpectedOperations}涓搷浣滐紝瀹為檯鎵ц{totalResult}涓搷浣�"); - - return totalResult; - }); - - query.itemNo = c_mes_inv_item_barcodes.ItemNo; - query.Num = c_quantity.Value; - return query; - } } \ No newline at end of file -- Gitblit v1.9.3