From 25f8eb843fd2046d8b94b410185e4ecdd3c07f57 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期日, 04 八月 2024 18:44:28 +0800 Subject: [PATCH] 工单工艺路线编辑 --- Tiger.Business.MES/Transaction/PackingNode.cs | 90 ++++++++++++++++++++++++++++++-------------- 1 files changed, 61 insertions(+), 29 deletions(-) diff --git a/Tiger.Business.MES/Transaction/PackingNode.cs b/Tiger.Business.MES/Transaction/PackingNode.cs index 404ff34..6a65b6c 100644 --- a/Tiger.Business.MES/Transaction/PackingNode.cs +++ b/Tiger.Business.MES/Transaction/PackingNode.cs @@ -76,26 +76,35 @@ else { var wosn = Biz.Db.Queryable<BIZ_MES_WO_BATCH, BIZ_MES_WO_SN>((q, s) => new JoinQueryInfos(JoinType.Inner, q.ORDER_NO == s.WORK_ORDER)) - .ByAuth(input.AuthOption) - .Where((q, s) => s.SN == input.SN && q.ACT_LINE == CurLine.LINE_CODE && (q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() || q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue())) - .Select((q, s) => new { Batch = q, SN = s }).First(); + .ByAuth(input.AuthOption).Where((q, s) => s.SN == input.SN).Select((q, s) => new { Batch = q, SN = s }).First(); + //鏌ユ壘鍒版潯鐮佸凡缁戝畾鐨勫伐鍗� if (!wosn.IsNullOrEmpty()) { - if (CurBatch?.Batch?.ORDER_NO != wosn.Batch.ORDER_NO) + if (wosn.Batch.ACT_LINE != CurLine.LINE_CODE) { - //鏉$爜宸茬粦瀹氱殑宸ュ崟涓嶇瓑浜庡綋鍓嶅伐鍗曞垯閲嶆柊閫夋嫨宸ュ崟 - var result = await SelectOrder(new() { AuthOption = input.AuthOption, OrderNo = wosn.Batch.ORDER_NO }); - if (!result.IsSuccessed) - { - action.IsSuccessed = result.IsSuccessed; - action.LocaleMsg = result.LocaleMsg; - return action; - } + action.IsSuccessed = false; + //action.LocaleMsg = new($"鏉$爜[{0}]宸插湪浜х嚎[{1}]鎶曞叆鐢熶骇锛岃鍦ㄦ纭矖浣嶆壂鎻�"); + action.LocaleMsg = new("MES.Transaction.PackingNode.Submit.NotCorrectLine", input.SN, wosn.Batch.ACT_LINE); + return action; + } + else + { + if (CurBatch?.Batch?.ORDER_NO != wosn.Batch.ORDER_NO) + { + //鏉$爜宸茬粦瀹氱殑宸ュ崟涓嶇瓑浜庡綋鍓嶅伐鍗曞垯閲嶆柊閫夋嫨宸ュ崟 + var result = await SelectOrder(new() { AuthOption = input.AuthOption, OrderNo = wosn.Batch.ORDER_NO }); + if (!result.IsSuccessed) + { + action.IsSuccessed = result.IsSuccessed; + action.LocaleMsg = result.LocaleMsg; + return action; + } + } + //鏉$爜杩囩珯 + action = NodeSubmit(action, input); + return action; } - //鏉$爜杩囩珯 - action = NodeSubmit(action, input); - return action; } //鏌ユ壘涓嶅埌鏉$爜宸茬粦瀹氱殑宸ュ崟 else @@ -166,7 +175,8 @@ } catch (Exception ex) { - action.CatchExceptionWithLog(ex, $"鍖呰宸ュ簭锛氭彁浜ゆ搷浣滄暟鎹紓甯�"); + //action.CatchExceptionWithLog(ex, $"鍖呰宸ュ簭锛氭彁浜ゆ搷浣滄暟鎹紓甯�"); + action.CatchExceptionWithLog(ex, Biz.L("MES.Transaction.PackingNode.SubmitException")); } return action; } @@ -179,11 +189,11 @@ /// <returns></returns> public ApiAction<SubmitOutput> NodeSubmit(ApiAction<SubmitOutput> action, SubmitInput input) { + var curNode = CurBatch.GetNode(PostCode); try { - var curNode = CurBatch.GetNode(PostCode); - //鍒ゆ柇宸ュ崟瀹炴椂鐘舵�佸垽鏂� - var woStatus = CurBatch.CheckStatus(); + //鍒ゆ柇宸ュ崟瀹炴椂鐘舵�佸垽鏂槸鍚﹀彲浠ョ敓浜� + var woStatus = CurBatch.CheckCanProduce(curNode); if (!woStatus.IsSuccessed) { return woStatus; @@ -287,17 +297,38 @@ db.Storageable(woSN, UserCode).ExecuteCommand(); db.Storageable(wipSN, UserCode).ExecuteCommand(); db.Storageable(CurWipSNHis, UserCode).ExecuteCommand(); - } + //濡傛灉鏄姇鍏ョ珯 + if (curNode.IS_INPUT == "Y") + { + db.Updateable<BIZ_MES_WO>().SetColumns(q => q.INPUT_QTY == q.INPUT_QTY + 1).Where(q => q.ORDER_NO == CurBatch.WO.ORDER_NO).ExecuteCommand(); + db.Updateable<BIZ_MES_WO_BATCH>().SetColumns(q => q.INPUT_QTY == q.INPUT_QTY + 1).Where(q => q.BATCH_NO == CurBatch.Batch.BATCH_NO).ExecuteCommand(); + } + //濡傛灉鏄骇鍑虹珯 + if (curNode.IS_OUTPUT == "Y") + { + db.Updateable<BIZ_MES_WO>().SetColumns(q => q.OUTPUT_QTY == q.OUTPUT_QTY + 1).Where(q => q.ORDER_NO == CurBatch.WO.ORDER_NO).ExecuteCommand(); + db.Updateable<BIZ_MES_WO_BATCH>().SetColumns(q => q.OUTPUT_QTY == q.OUTPUT_QTY + 1).Where(q => q.BATCH_NO == CurBatch.Batch.BATCH_NO).ExecuteCommand(); + } + } }; Steps.Add(curStep); - - //鏈夐渶瑕佺敤鎴锋彁浜や俊鎭垯娣诲姞宸ュ簭鑺傜偣鐨勫叾浠栧伐姝� - - //鏈�鍚庢坊鍔犲綋鍓嶅伐搴忕殑琛屼负宸ユ - GenerateSteps(curStep); - - //瀹屾垚绗竴涓伐搴忚妭鐐瑰伐姝� - curStep.IsFinished = true; + + //鏈夐渶瑕佺敤鎴锋彁浜や俊鎭垯娣诲姞宸ュ簭鑺傜偣鐨勫叾浠栧伐姝� + + //鏈�鍚庢坊鍔犲綋鍓嶅伐搴忕殑琛屼负宸ユ + try + { + GenerateSteps(curStep); + } + catch (System.Exception ex) + { + ResetNode(); + //action.CatchExceptionWithLog(ex, $"{curNode.NODE_NAME}锛氬伐搴忚涓哄伐姝ョ敓鎴愬紓甯革紝璇锋鏌ュ伐搴忚涓鸿缃�"); + action.CatchExceptionWithLog(ex, Biz.L("MES.Transaction.PackingNode.NodeSubmit.GenerateStepsException", curNode.NODE_NAME)); + } + + //瀹屾垚绗竴涓伐搴忚妭鐐瑰伐姝� + curStep.IsFinished = true; CurStep = curStep; } else if (!IsFinishNodeSteps) @@ -351,7 +382,8 @@ catch (Exception ex) { ResetNode(); - action.CatchExceptionWithLog(ex, $"鍖呰宸ュ簭锛氬伐搴忚妭鐐瑰伐姝ユ彁浜ゆ暟鎹紓甯�"); + //action.CatchExceptionWithLog(ex, $"{curNode.NODE_NAME}锛氬伐搴忚妭鐐瑰伐姝ユ彁浜ゆ暟鎹紓甯革紝璇锋鏌ュ伐搴忚妭鐐硅缃�"); + action.CatchExceptionWithLog(ex, Biz.L("MES.Transaction.PackingNode.NodeSubmitException", curNode.NODE_NAME)); } return action; } -- Gitblit v1.9.3