From 738df70120209daecd85566d0c50dbf56d9e4453 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期二, 17 十二月 2024 21:06:59 +0800 Subject: [PATCH] 一些更改 --- Tiger.Business.MES/BIZ/BIZ_MES_WO.cs | 70 ++++++++++++++++++++++++++--------- 1 files changed, 52 insertions(+), 18 deletions(-) diff --git a/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs b/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs index 37bd5c6..11911d5 100644 --- a/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs +++ b/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs @@ -186,7 +186,6 @@ pars[1].Direction = System.Data.ParameterDirection.Output; pars[2].Direction = System.Data.ParameterDirection.Output; Biz.Db.Ado.UseStoredProcedure().ExecuteCommand("SP_MES_WO2CUST", pars); - //response.LocaleMsg = new(pars[2].Value.ToString()); if (pars[1].Value.ToInt32() == 0) { Logger.Default.Info($"宸ュ崟[{input.Wo.ORDER_NO}]涓嬪彂瀹屾垚鍚庝繚瀛樺伐鑹鸿矾绾挎暟鎹埌浜у搧[{input.Wo.ITEM_CODE}]鐨勫鎴穂{input.Wo.CUST_CODE ?? ""}]鐨勫伐鑹鸿矾绾夸腑锛寋pars[2].Value.ToString()}"); @@ -225,6 +224,8 @@ var _wo = await Biz.Db.Queryable<BIZ_MES_WO>().Where(x => x.ORDER_NO == input.WorkOrder).FirstAsync(); if (_wo != null) { + _wo.CHANGE_TIME = _wo.STATUS == BIZ_MES_WO.STATUSs.Paused.GetValue() && input.Status == BIZ_MES_WO.STATUSs.Working.GetValue() ? DateTime.Now : _wo.CHANGE_TIME; + _wo.CHANGE_USER = _wo.STATUS == BIZ_MES_WO.STATUSs.Paused.GetValue() && input.Status == BIZ_MES_WO.STATUSs.Working.GetValue() ? input.UserId : _wo.CHANGE_USER; _wo.STATUS = input.Status < 0 ? _wo.STATUS : input.Status; _wo.ROUTE_STATUS = input.RouteStatus; } @@ -269,6 +270,8 @@ var _woBatch = await Biz.Db.Queryable<BIZ_MES_WO_BATCH>().Where(x => x.BATCH_NO == input.WoBatch).FirstAsync(); if (_woBatch != null) { + _woBatch.CHANGE_TIME = _woBatch.STATUS == BIZ_MES_WO_BATCH.STATUSs.Paused.GetValue() && input.Status == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue()? DateTime.Now: _woBatch.CHANGE_TIME; + _woBatch.CHANGE_USER = _woBatch.STATUS == BIZ_MES_WO_BATCH.STATUSs.Paused.GetValue() && input.Status == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue() ? input.UserId: _woBatch.CHANGE_USER; _woBatch.STATUS = input.Status < 0 ? _woBatch.STATUS : input.Status; if (input.Status == BIZ_MES_WO_BATCH.STATUSs.Paused.GetValue()) { @@ -286,6 +289,11 @@ _woBatch.RELEASE_TIME = DateTime.Now; _woBatch.RELEASE_USER = input.UserId; _woBatch.ACT_LINE = input.ActLine; + _woBatch.CHANGE_USER = input.UserId; + _woBatch.CHANGE_TIME = DateTime.Now; + } + if (!Biz.Db.Queryable<BIZ_MES_WO_BATCH>().Where(x => x.ORDER_NO == input.WorkOrder && x.STATUS> BIZ_MES_WO_BATCH.STATUSs.Init.GetValue()).Any()) { + _wo.STATUS = BIZ_MES_WO.STATUSs.Init.GetValue(); } } else @@ -301,11 +309,15 @@ //濡傛灉鏄笅鍙� if (input.Status == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue()) { - db.Updateable(_woBatch, input.UserId).UpdateColumns(x => new { x.STATUS, x.RELEASE_USER, x.RELEASE_TIME, x.ACT_LINE, x.UPDATE_USER, x.UPDATE_TIME }).ExecuteCommand(); + db.Updateable(_woBatch, input.UserId).UpdateColumns(x => new { x.STATUS, x.RELEASE_USER, x.RELEASE_TIME, x.ACT_LINE, x.UPDATE_USER, x.UPDATE_TIME, x.CHANGE_USER,x.CHANGE_TIME }).ExecuteCommand(); } else { - db.Updateable(_woBatch, input.UserId).UpdateColumns(x => new { x.STATUS, x.UPDATE_USER, x.UPDATE_TIME }).ExecuteCommand(); + db.Updateable(_woBatch, input.UserId).UpdateColumns(x => new { x.STATUS, x.UPDATE_USER, x.UPDATE_TIME, x.CHANGE_USER, x.CHANGE_TIME }).ExecuteCommand(); + } + if (!_wo.IsNullOrEmpty() && _wo.STATUS == BIZ_MES_WO.STATUSs.Init.GetValue()) + { + db.Updateable(_wo, input.UserId).UpdateColumns(x => new { x.STATUS, x.UPDATE_USER, x.UPDATE_TIME }).ExecuteCommand(); } }); if (!dbTran.IsSuccess) @@ -580,7 +592,7 @@ //濡傛灉鏌ヤ笉鍒板氨鍘昏涓烘棩蹇楁煡 if (labelPrint.IsNullOrEmpty() && input.ReqType == 1) { - printParam = Biz.Db.Queryable<MES_WIP_ACT>().Where(q => q.CARTON_SN.Equals(woSn.OUTER_SN) && q.ACT_VALUE_4 == "Customer").First()?.ACT_VALUE_3 ?? ""; + printParam = Biz.Db.Queryable<MES_WIP_ACT>().Where(q => q.CARTON_SN.Equals(woSn.OUTER_SN) && q.ACT_VALUE_4 == "Customer" && !SqlFunc.IsNullOrEmpty(q.ACT_VALUE_3)).First()?.ACT_VALUE_3 ?? ""; } else if (labelPrint.IsNullOrEmpty() && input.ReqType == 2) { @@ -619,7 +631,7 @@ wo = woSn.WORK_ORDER; } } - var ship = db.Queryable<mes_ShipList>().Where(q => q.MoDoc.Equals(wo) && q.Org == org.ID.ToInt64()).First(); + var ship = db.Queryable<mes_ShipList>().Where(q => q.MoDoc.Equals(wo) && q.Org == org.ID.ToInt64() && q.Status == 2 ).First(); if (!ship.IsNullOrEmpty()) { result.Data = ship.BusinessDate.Date == DateTime.Now.Date ? new() @@ -697,39 +709,38 @@ try { //寰楀埌宸ュ崟鏉$爜璁板綍 - var woSns = await Biz.Db.Queryable<BIZ_MES_WO_SN>().Where(q => q.OUTER_SN == code).ToListAsync(); + var cartonSn = code.Split('|')[0]; + var woSns = await Biz.Db.Queryable<BIZ_MES_WO_SN>().Where(q => q.OUTER_SN == cartonSn).ToListAsync(); if (woSns.Count == 0) { result.IsSuccessed = false; result.LocaleMsg = new($"鏉$爜涓嶅瓨鍦紒"); return result; } - var wo = await Biz.Db.Queryable<BIZ_MES_WO>().Where(q => q.ORDER_NO == woSns[0].WORK_ORDER ).IncludesAllFirstLayer().FirstAsync(); + var wo = await Biz.Db.Queryable<BIZ_MES_WO>().Where(q => q.ORDER_NO == woSns[0].WORK_ORDER ).IncludesAllFirstLayer().IncludesAllSecondLayer(q => q._ItemInfos).FirstAsync(); if (wo == null) { result.IsSuccessed = false; result.LocaleMsg = new($"鏉$爜瀵瑰簲鐨勫伐鍗曚笉瀛樺湪"); return result; } + //鍒ゆ柇宸ュ崟鏄惁宸茬粡鍏ㄩ儴鍏ュ簱 + + InStoreInfo inStoreInfo = new() { ErpProdInBth= new() { WORK_ORDER = wo.ORDER_NO, BATCH_NO = woSns[0].BATCH_NO, + SALES_ORDER = wo.SALES_ORDER, ITEM_CODE = wo.ITEM_CODE, ITEM_NAME = wo.ItemInfo?.ITEM_DESC, - SCAN_QTY = woSns.Count - }, - ProdInBatch = new() - { - WORK_ORDER = wo.ORDER_NO, - BATCH_NO = woSns[0].BATCH_NO, - ITEM_CODE = wo.ITEM_CODE, - ITEM_NAME = wo.ItemInfo?.ITEM_DESC, - PLAN_QTY = wo.PLAN_QTY, - SCAN_QTY = woSns.Count + SapCode = wo.ItemInfo?.ExtInfo?.SapCode, + SCAN_QTY = woSns.Count, + IS_HANDLED = "N" //Y-宸茬敓鎴愶紝N-鏈敓鎴愶紝F-澶辫触 }, InStoreScanInfo = new() { - SN = code, + SN = cartonSn, + SALES_ORDER = wo.SALES_ORDER, WORK_ORDER = wo.ORDER_NO, BATCH_NO = woSns[0].BATCH_NO, SCAN_QTY = woSns.Count @@ -744,5 +755,28 @@ } return result; } + + #region 鎻愪氦鍓嶉�氱敤鏂规硶 + /// <summary> + /// 鎻愪氦鍓嶆鏌ユ槸鍚﹀矖浣嶃�佸伐鍗曞拰涓嶈壇浠g爜 + /// </summary> + /// <param name="code"></param> + /// <returns></returns> + public async Task<ApiAction<CheckCodeOutput>> CheckCode(string code) + { + var action = new ApiAction<CheckCodeOutput>($"妫�鏌ユ潯鐮亄code}鎴愬姛", new CheckCodeOutput()); + try + { + action.Data.Position = DbCache.Cache.Position[code]; + action.Data.WorkOrder = await Biz.Db.Queryable<BIZ_MES_WO>().Where(q => q.ORDER_NO == code).FirstAsync(); + action.Data.Defect = DbCache.Cache.Defect[code]; + } + catch (Exception ex) + { + action.CatchExceptionWithLog(ex, $"妫�鏌ユ潯鐮亄code}寮傚父"); + } + return action; + } + #endregion } } -- Gitblit v1.9.3