From aecffc1fac016281d4c835fafe23c002906acef5 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期四, 02 一月 2025 10:27:38 +0800 Subject: [PATCH] Handle packaging barcodes and improve weighing logic --- Tiger.Business.MES/WorkAction/InputQty.cs | 32 +++++++++++++--- Tiger.Api/Language.db | 0 Tiger.Business.MES/WorkAction/Weighing.cs | 44 +++++++++++---------- 3 files changed, 49 insertions(+), 27 deletions(-) diff --git a/Tiger.Api/Language.db b/Tiger.Api/Language.db index 31e59fc..7a3f82b 100644 --- a/Tiger.Api/Language.db +++ b/Tiger.Api/Language.db Binary files differ diff --git a/Tiger.Business.MES/WorkAction/InputQty.cs b/Tiger.Business.MES/WorkAction/InputQty.cs index 8a7fafa..3c4afd5 100644 --- a/Tiger.Business.MES/WorkAction/InputQty.cs +++ b/Tiger.Business.MES/WorkAction/InputQty.cs @@ -69,11 +69,25 @@ action.LocaleMsg = GetBeginMsg(); - //濡傛灉杩斿洖鎴愬姛鍒欒涓哄綋鍓嶈涓哄彲浠ュ紑濮嬫墽琛岋紝鍚﹀垯杩斿洖澶辫触 - CurStep.Message = Biz.L("璇疯緭鍏ユ暟閲�"); - CurStep.Status = StepStatus.Normal; - action.IsSuccessed = true; - action.Data.ShortMsg = new("璇疯緭鍏ユ暟閲�", ShortMessage.Types.Success); + //濡傛灉鏄寘瑁呮潯鐮佸垯涓嶅厑璁镐慨鏀规暟閲� + if (MainDB.Queryable<MES_WIP_PKG>().Any(q => q.PARENT_SN == CurPosition.CurSN && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG)) + { + CurStep.Message = Biz.L("鍖呰鏉$爜涓嶅厑璁镐慨鏀规暟閲�"); + CurStep.Status = StepStatus.Error; + action.IsSuccessed = false; + action.Data.ShortMsg = new("鍖呰鏉$爜涓嶅厑璁镐慨鏀规暟閲�", ShortMessage.Types.Error); + //action.LocaleMsg = new($"鍖呰鏉$爜[{0}]涓嶅厑璁镐慨鏀规暟閲忥紝璇烽噸鏂版壂鎻忔纭殑鏉$爜"); + action.LocaleMsg = new("MES.WorkAction.InputQty.NotAllowPackage", CurPosition.CurSN); + CurPosition.ResetNode(); + } + else + { + //濡傛灉杩斿洖鎴愬姛鍒欒涓哄綋鍓嶈涓哄彲浠ュ紑濮嬫墽琛岋紝鍚﹀垯杩斿洖澶辫触 + CurStep.Message = Biz.L("璇疯緭鍏ユ暟閲�"); + CurStep.Status = StepStatus.Normal; + action.IsSuccessed = true; + action.Data.ShortMsg = new("璇疯緭鍏ユ暟閲�", ShortMessage.Types.Success); + } return action; } @@ -114,7 +128,8 @@ .Where(q => !CurPosition.CurWipSNs.Any(sn => sn.ID == q.WIP_ID)).DistinctBy(q => q.WIP_ID).Sum(q => q.QTY); var batchInput = CurPosition.WorkBatch.WoSNs.Where(q => q.BATCH_NO == CurPosition.WorkBatch.Batch.BATCH_NO && BIZ_MES_WO_SN.STATUSs.NotInput.GetValue() < q.STATUS && q.STATUS <= BIZ_MES_WO_SN.STATUSs.Finished.GetValue()) .Where(q => !CurPosition.CurWipSNs.Any(sn => sn.ID == q.WIP_ID)).DistinctBy(q => q.WIP_ID).Sum(q => q.QTY); - + + //宸ュ崟鎵规鎶曞叆鏁伴噺鍑忓幓鎶ュ簾鏁伴噺濡傛灉澶т簬绛変簬璁″垝鏁伴噺锛屽垯涓嶅厑璁哥敓浜� if ((NewBatchInputQty = batchInput + newInput) > CurPosition.WorkBatch.Batch.PLAN_QTY) { @@ -287,6 +302,11 @@ .SetColumns(q => q.QTY == NewQty) .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && _wipIDs.Contains(q.WIP_ID)) .ExecuteCommand(); + //鐢熶骇鍖呰璁板綍 + db.Updateable<MES_WIP_PKG>(CurPosition.UserCode) + .SetColumns(q => q.QTY == NewQty) + .Where(q => q.WORK_ORDER == wo && _wipIDs.Contains(q.ID)) + .ExecuteCommand(); //宸ュ崟琛� db.Updateable<BIZ_MES_WO>(CurPosition.UserCode) .SetColumns(q => q.INPUT_QTY == NewWoInputQty) diff --git a/Tiger.Business.MES/WorkAction/Weighing.cs b/Tiger.Business.MES/WorkAction/Weighing.cs index 2cd4152..10dcc41 100644 --- a/Tiger.Business.MES/WorkAction/Weighing.cs +++ b/Tiger.Business.MES/WorkAction/Weighing.cs @@ -41,27 +41,7 @@ Setting = setting; #endregion - CurPkg = MainDB.Queryable<MES_WIP_PKG>().Where(q => q.SN == CurPosition.CurSN && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG).First() ?? new() - { - AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, - AUTH_PROD = CurPosition.CurLine.LINE_CODE, - SN = CurPosition.CurSN, - PKG_TYPE = CurPosition.WorkBatch.WO.ItemInfo?.UNIT, - ITEM_CODE = CurPosition.CurWipSNs.First().ITEM_CODE, - QTY = CurPosition.CurWipSNs.Sum(q => q.QTY), - UNIT = CurPosition.WorkBatch.WO.ItemInfo?.UNIT, - WORK_ORDER = CurPosition.CurWipSNs.First().WORK_ORDER, - BATCH_NO = CurPosition.CurWipSNs.First().BATCH_NO, - ROT_CODE = CurPosition.CurWipSNs.First().ROT_CODE, - NODE_ID = CurPosition.CurWipSNs.First().NODE_ID, - NODE_NAME = CurPosition.CurWipSNs.First().NODE_NAME, - FTY_CODE = CurPosition.CurWipSNs.First().FTY_CODE, - WS_CODE = CurPosition.CurWipSNs.First().WS_CODE, - LINE_CODE = CurPosition.CurWipSNs.First().LINE_CODE, - POST_CODE = CurPosition.CurWipSNs.First().POST_CODE, - OPER_CODE = CurPosition.CurWipSNs.First().OPER_CODE, - SEGMENT = CurPosition.CurWipSNs.First().SEGMENT, - }; + CurStep.Message = Biz.L("绛夊緟绉伴噸鏁版嵁"); CurStep.Status = StepStatus.Normal; @@ -86,6 +66,28 @@ { var action = new ApiAction<SubmitOutput>(new SubmitOutput()); + CurPkg = MainDB.Queryable<MES_WIP_PKG>().Where(q => q.SN == CurPosition.CurSN && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG).First() ?? new() + { + AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, + AUTH_PROD = CurPosition.CurLine.LINE_CODE, + SN = CurPosition.CurSN, + PKG_TYPE = CurPosition.WorkBatch.WO.ItemInfo?.UNIT, + ITEM_CODE = CurPosition.CurWipSNs.First().ITEM_CODE, + QTY = CurPosition.CurWipSNs.Sum(q => q.QTY), + UNIT = CurPosition.WorkBatch.WO.ItemInfo?.UNIT, + WORK_ORDER = CurPosition.CurWipSNs.First().WORK_ORDER, + BATCH_NO = CurPosition.CurWipSNs.First().BATCH_NO, + ROT_CODE = CurPosition.CurWipSNs.First().ROT_CODE, + NODE_ID = CurPosition.CurWipSNs.First().NODE_ID, + NODE_NAME = CurPosition.CurWipSNs.First().NODE_NAME, + FTY_CODE = CurPosition.CurWipSNs.First().FTY_CODE, + WS_CODE = CurPosition.CurWipSNs.First().WS_CODE, + LINE_CODE = CurPosition.CurWipSNs.First().LINE_CODE, + POST_CODE = CurPosition.CurWipSNs.First().POST_CODE, + OPER_CODE = CurPosition.CurWipSNs.First().OPER_CODE, + SEGMENT = CurPosition.CurWipSNs.First().SEGMENT, + }; + action.LocaleMsg = GetBeginMsg(); //濡傛灉杩斿洖鎴愬姛鍒欒涓哄綋鍓嶈涓哄彲浠ュ紑濮嬫墽琛岋紝鍚﹀垯杩斿洖澶辫触 -- Gitblit v1.9.3