Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustSn.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,53 @@ using Rhea.Common; using Sundial; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using Tiger.IBusiness; using Tiger.Model; using Tiger.Model.Minsun; namespace Tiger.Business.MES { /// <summary> /// ä»U9Cè·åå®¢æ·æ¡ç ä¿¡æ¯ /// </summary> public class U9C_ME_GetCustSn : TigerJobBase, ITigerJob { public string Id { get; set; } = Guid.NewGuid().ToString("N"); public string Tag { get; set; } = "U9C_ME_GetCustSn Interface Job"; public string Name { get; set; } = "U9C_ME_GetCustSn Interface Job"; public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) { Logger.Scheduler.Info(context.Trigger.ConvertToMonitor()); try { var _lastRunTime = Biz.SysParam["GetCustBar_LastTime", "Interface_LastRun"].PARAM_VALUE; var LastRunTime = string.IsNullOrEmpty(_lastRunTime) ? DateTime.Now.AddMinutes(-30) : Convert.ToDateTime(_lastRunTime); if ((DateTime.Now - LastRunTime).TotalMinutes > 30) { GetCustBarcodeInput input = new GetCustBarcodeInput { startTime = LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"), endTime = LastRunTime.AddMinutes(30).ToString("yyyy-MM-dd HH:mm:ss") }; var result = await DI.Resolve<IU9C_MES>().GetCustBarCode(input); if (!result.IsSuccessed) { Logger.Scheduler.Error($"è·åå®¢æ·æ¡ç ä¿¡æ¯å¼å¸¸:{result.Message}"); } } //SaveLog(context, "ä»U9Cè·åå®¢æ·æ¡ç ä¿¡æ¯æå"); } catch (System.Exception ex) { Logger.Scheduler.Fatal(ex, "è·åå®¢æ·æ¡ç ä¿¡æ¯å¼å¸¸"); } await Task.CompletedTask; } } } Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustomer.cs
@@ -13,7 +13,7 @@ namespace Tiger.Business.MES { /// <summary> /// ä»U9Cè·åå·¥åä¿¡æ¯ /// ä»U9Cè·å客æ·ä¿¡æ¯ /// </summary> public class U9C_MES_GetCustomer : TigerJobBase, ITigerJob { @@ -27,25 +27,25 @@ try { var _lastRunTime = Biz.SysParam["GetCust_LastRun", "Interface_LastRun"].PARAM_VALUE; var LastRunTime = string.IsNullOrEmpty(_lastRunTime) ? DateTime.Now.AddMinutes(-30) : Convert.ToDateTime(_lastRunTime); if ((DateTime.Now - LastRunTime).TotalMinutes > 30) var LastRunTime = string.IsNullOrEmpty(_lastRunTime) ? DateTime.Now.AddDays(-1) : Convert.ToDateTime(_lastRunTime); if ((DateTime.Now - LastRunTime).TotalDays > 1) { GetCustomerInput input = new GetCustomerInput { startTime = LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"), endTime = LastRunTime.AddMinutes(30).ToString("yyyy-MM-dd HH:mm:ss") endTime = LastRunTime.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss") }; var result = await DI.Resolve<IU9C_MES>().GetCustomer(input); if (!result.IsSuccessed) { Logger.Scheduler.Error($"è·åå·¥åä¿¡æ¯å¼å¸¸:{result.Message}"); Logger.Scheduler.Error($"è·å客æ·ä¿¡æ¯å¼å¸¸:{result.Message}"); } } //SaveLog(context, "ä»U9Cè·åå·¥åä¿¡æ¯æå"); //SaveLog(context, "ä»U9Cè·å客æ·ä¿¡æ¯æå"); } catch (System.Exception ex) { Logger.Scheduler.Fatal(ex, "è·åå·¥åä¿¡æ¯å¼å¸¸"); Logger.Scheduler.Fatal(ex, "è·å客æ·ä¿¡æ¯å¼å¸¸"); } await Task.CompletedTask; } Tiger.Business.MES/Task/Jobs.U9C_ME_GetItem.cs
@@ -28,7 +28,7 @@ { var _lastRunTime = Biz.SysParam["GetItem_LastRun", "Interface_LastRun"].PARAM_VALUE; var LastRunTime = string.IsNullOrEmpty(_lastRunTime) ? DateTime.Now.AddDays(-1) : Convert.ToDateTime(_lastRunTime); if ((DateTime.Now - LastRunTime).TotalMinutes > 30) if ((DateTime.Now - LastRunTime).TotalDays > 1) { GetBasItemInput input = new GetBasItemInput { Tiger.Business.MES/Task/Jobs.U9C_ME_GetSupplier.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,53 @@ using Rhea.Common; using Sundial; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using Tiger.IBusiness; using Tiger.Model; using Tiger.Model.Minsun; namespace Tiger.Business.MES { /// <summary> /// ä»U9Cè·åä¾åºåä¿¡æ¯ /// </summary> public class U9C_ME_GetSupplier : TigerJobBase, ITigerJob { public string Id { get; set; } = Guid.NewGuid().ToString("N"); public string Tag { get; set; } = "U9C_ME_GetSupplier Interface Job"; public string Name { get; set; } = "U9C_ME_GetSupplier Interface Job"; public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) { Logger.Scheduler.Info(context.Trigger.ConvertToMonitor()); try { var _lastRunTime = Biz.SysParam["Vender_LastTime", "Interface_LastRun"].PARAM_VALUE; var LastRunTime = string.IsNullOrEmpty(_lastRunTime) ? DateTime.Now.AddDays(-1) : Convert.ToDateTime(_lastRunTime); if ((DateTime.Now - LastRunTime).TotalDays > 1) { GetSupplierInput input = new GetSupplierInput { startTime = LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"), endTime = LastRunTime.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss") }; var result = await DI.Resolve<IU9C_MES>().GetSupplier(input); if (!result.IsSuccessed) { Logger.Scheduler.Error($"è·åä¾åºåä¿¡æ¯å¼å¸¸:{result.Message}"); } } //SaveLog(context, "ä»U9Cè·åä¾åºåä¿¡æ¯æå"); } catch (System.Exception ex) { Logger.Scheduler.Fatal(ex, "è·åä¾åºåä¿¡æ¯å¼å¸¸"); } await Task.CompletedTask; } } } Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs
@@ -27,13 +27,13 @@ try { var _lastRunTime = Biz.SysParam["GetWo_LastRun", "Interface_LastRun"].PARAM_VALUE; var LastRunTime = string.IsNullOrEmpty(_lastRunTime) ? DateTime.Now.AddMinutes(-30) : Convert.ToDateTime(_lastRunTime); if ((DateTime.Now - LastRunTime).TotalMinutes > 30) var LastRunTime = string.IsNullOrEmpty(_lastRunTime) ? DateTime.Now.AddMinutes(-60) : Convert.ToDateTime(_lastRunTime); if ((DateTime.Now - LastRunTime).TotalMinutes > 60) { GetWoInput input = new GetWoInput { startTime = LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"), endTime = LastRunTime.AddMinutes(30).ToString("yyyy-MM-dd HH:mm:ss") endTime = LastRunTime.AddMinutes(60).ToString("yyyy-MM-dd HH:mm:ss") }; var result = await DI.Resolve<IU9C_MES>().GetBasWo(input); if (!result.IsSuccessed) Tiger.Business.MES/Transaction/CollectNode.cs
@@ -48,9 +48,16 @@ { action = NodeSubmit(action, input); //æ´æ°å·¥åºä¿¡æ¯ var info = WoContext.GetSnOperInfo(input.SN).Data; info.InputQty = OperInfoDic[CurBatch.Batch.BATCH_NO].InputQty; action.Data.OperInfo = info; if (!action.IsSuccessed) { var info = WoContext.GetSnOperInfo(input.SN).Data; info.InputQty = OperInfoDic[CurBatch.Batch.BATCH_NO].InputQty; action.Data.OperInfo = info; } else if (!IsFinishAllSteps) { action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]); } } //å½åå²ä½å¨å½åå·¥å䏿¯é¦ç«ï¼åæ¥æ¾æ¡ç å·²ç»å®çå·¥åå½ä½å½åå·¥å else @@ -85,8 +92,11 @@ } } //æ¡ç è¿ç« action = NodeSubmit(action, input); action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]); action = NodeSubmit(action, input); if (!IsFinishAllSteps) { action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]); } } } //æ¥æ¾ä¸å°æ¡ç å·²ç»å®çå·¥å @@ -146,9 +156,12 @@ //妿ææå·¥æ¥é½å®æ if (IsFinishAllSteps) { result = DoIfFinishAllSteps(result); result = DoIfFinishAllSteps(result); } result.Data.OperInfo = OperInfoDic[CurBatch.Batch.BATCH_NO]; else { result.Data.OperInfo = OperInfoDic[CurBatch.Batch.BATCH_NO]; } return result; } } @@ -204,6 +217,10 @@ ITEM_CODE = CurBatch.WO.ITEM_CODE, WORK_ORDER = CurBatch.Batch.ORDER_NO, BATCH_NO = CurBatch.Batch.BATCH_NO, FTY_CODE = CurFactory.FTY_CODE, WS_CODE = CurWorkshop.WS_CODE, LINE_CODE = CurLine.LINE_CODE, POST_CODE = CurPosition.POST_CODE, HOLD_FLAG = "N", REWORK_FLAG = CurBatch.WO.ORDER_TYPE == BIZ_MES_WO.ORDER_TYPEs.Rework.GetValue() ? "Y" : "N", FINISHED_FLAG = "N", @@ -497,9 +514,11 @@ //ä¿åæåï¼è¿åè¿ç«æ¶æ¯ OperInfoDic[CurBatch.Batch.BATCH_NO].InputQty += CurWipSNs.Count; action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]); action.Data.ShortMsg = new("è¿ç«æå", ShortMessage.Types.Success); //action.LocaleMsg = new($"å·¥å[{CurWipSN.WORK_ORDER}]çæ¡ç [{CurWipSN.SN}]å¨å²ä½[{CurWipSN.POST_CODE}]å·¥åº[{CurWipSN.NODE_NAME}]è¿ç«æåï¼ç¶æ[{CurWipSN.STATUS.GetEnumDesc<MES_WIP_DATA.STATUSs>()}]"); action.LocaleMsg = new("MES.Transaction.CollectNode.ScanSn.PassSuccess", CurWipSNs.First().WORK_ORDER, CurSN, CurWipSNs.First().POST_CODE, CurWipSNs.First().NODE_NAME,CurWipSNs.First().STATUS.GetEnumDesc<MES_WIP_DATA.STATUSs>()); //éç½®å·¥åº ResetNode(); return action; Tiger.Business.MES/Transaction/PackingNode.cs
@@ -71,9 +71,16 @@ { action = NodeSubmit(action, input); //æ´æ°å·¥åºä¿¡æ¯ var info = WoContext.GetSnOperInfo(input.SN).Data; info.InputQty = OperInfoDic[CurBatch.Batch.BATCH_NO].InputQty; action.Data.OperInfo = info; if (!action.IsSuccessed) { var info = WoContext.GetSnOperInfo(input.SN).Data; info.InputQty = OperInfoDic[CurBatch.Batch.BATCH_NO].InputQty; action.Data.OperInfo = info; } else if (!IsFinishAllSteps) { action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]); } } //å½åå²ä½å¨å½åå·¥å䏿¯é¦ç«ï¼åæ¥æ¾æ¡ç å·²ç»å®çå·¥åå½ä½å½åå·¥å else @@ -118,7 +125,10 @@ } //æ¡ç è¿ç« action = NodeSubmit(action, input); action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]); if (!IsFinishAllSteps) { action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]); } } } //æ¥æ¾ä¸å°æ¡ç å·²ç»å®çå·¥å @@ -180,7 +190,10 @@ { result = DoIfFinishAllSteps(result); } result.Data.OperInfo = OperInfoDic[CurBatch.Batch.BATCH_NO]; else { result.Data.OperInfo = OperInfoDic[CurBatch.Batch.BATCH_NO]; } return result; } } @@ -236,7 +249,11 @@ ITEM_CODE = CurBatch.WO.ITEM_CODE, WORK_ORDER = CurBatch.Batch.ORDER_NO, BATCH_NO = CurBatch.Batch.BATCH_NO, HOLD_FLAG = "N", FTY_CODE = CurFactory.FTY_CODE, WS_CODE = CurWorkshop.WS_CODE, LINE_CODE = CurLine.LINE_CODE, POST_CODE = CurPosition.POST_CODE, HOLD_FLAG = "N", REWORK_FLAG = CurBatch.WO.ORDER_TYPE == BIZ_MES_WO.ORDER_TYPEs.Rework.GetValue() ? "Y" : "N", FINISHED_FLAG = "N", INV_FLAG = "N", @@ -529,9 +546,11 @@ //ä¿åæåï¼è¿åè¿ç«æ¶æ¯ OperInfoDic[CurBatch.Batch.BATCH_NO].InputQty += CurWipSNs.Count; action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]); action.Data.ShortMsg = new("è¿ç«æå", ShortMessage.Types.Success); //action.LocaleMsg = new($"å·¥å[{CurWipSN.WORK_ORDER}]çæ¡ç [{CurWipSN.SN}]å¨å²ä½[{CurWipSN.POST_CODE}]å·¥åº[{CurWipSN.NODE_NAME}]è¿ç«æåï¼ç¶æ[{CurWipSN.STATUS.GetEnumDesc<MES_WIP_DATA.STATUSs>()}]"); action.LocaleMsg = new("MES.Transaction.CollectNode.ScanSn.PassSuccess", CurWipSNs.First().WORK_ORDER, CurSN, CurWipSNs.First().POST_CODE, CurWipSNs.First().NODE_NAME,CurWipSNs.First().STATUS.GetEnumDesc<MES_WIP_DATA.STATUSs>()); //éç½®å·¥åº ResetNode(); Tiger.Business.MES/Transaction/Position.cs
@@ -126,7 +126,11 @@ WoContext.WoBatchDic.Add(wb.Batch.BATCH_NO, wb); } CurBatch = WoContext.GetBatch(input.OrderNo, CurLine.LINE_CODE); OperInfoDic.Add(CurBatch.Batch.BATCH_NO, new()); if (!OperInfoDic.ContainsKey(CurBatch.Batch.BATCH_NO)) { OperInfoDic.Add(CurBatch.Batch.BATCH_NO, new()); } action.Data = new { WorkOrder = CurBatch.WO, Bacth = CurBatch.Batch }; } catch (Exception ex) Tiger.Business.MES/Transaction/TestNode.cs
@@ -49,9 +49,16 @@ { action = NodeSubmit(action, input); //æ´æ°å·¥åºä¿¡æ¯ var info = WoContext.GetSnOperInfo(input.SN).Data; info.InputQty = OperInfoDic[CurBatch.Batch.BATCH_NO].InputQty; action.Data.OperInfo = info; if (!action.IsSuccessed) { var info = WoContext.GetSnOperInfo(input.SN).Data; info.InputQty = OperInfoDic[CurBatch.Batch.BATCH_NO].InputQty; action.Data.OperInfo = info; } else if (!IsFinishAllSteps) { action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]); } } //å½åå²ä½å¨å½åå·¥å䏿¯é¦ç«ï¼åæ¥æ¾æ¡ç å·²ç»å®çå·¥åå½ä½å½åå·¥å else @@ -87,7 +94,10 @@ } //æ¡ç è¿ç« action = NodeSubmit(action, input); action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]); if (!IsFinishAllSteps) { action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]); } } } //æ¥æ¾ä¸å°æ¡ç å·²ç»å®çå·¥å @@ -149,7 +159,10 @@ { result = DoIfFinishAllSteps(result); } result.Data.OperInfo = OperInfoDic[CurBatch.Batch.BATCH_NO]; else { result.Data.OperInfo = OperInfoDic[CurBatch.Batch.BATCH_NO]; } return result; } } @@ -204,6 +217,10 @@ ITEM_CODE = CurBatch.WO.ITEM_CODE, WORK_ORDER = CurBatch.Batch.ORDER_NO, BATCH_NO = CurBatch.Batch.BATCH_NO, FTY_CODE = CurFactory.FTY_CODE, WS_CODE = CurWorkshop.WS_CODE, LINE_CODE = CurLine.LINE_CODE, POST_CODE = CurPosition.POST_CODE, HOLD_FLAG = "N", REWORK_FLAG = CurBatch.WO.ORDER_TYPE == BIZ_MES_WO.ORDER_TYPEs.Rework.GetValue() ? "Y" : "N", FINISHED_FLAG = "N", @@ -497,9 +514,11 @@ //ä¿åæåï¼è¿åè¿ç«æ¶æ¯ OperInfoDic[CurBatch.Batch.BATCH_NO].InputQty += CurWipSNs.Count; action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]); action.Data.ShortMsg = new("è¿ç«æå", ShortMessage.Types.Success); //action.LocaleMsg = new($"å·¥å[{CurWipSN.WORK_ORDER}]çæ¡ç [{CurWipSN.SN}]å¨å²ä½[{CurWipSN.POST_CODE}]å·¥åº[{CurWipSN.NODE_NAME}]è¿ç«æåï¼ç¶æ[{CurWipSN.STATUS.GetEnumDesc<MES_WIP_DATA.STATUSs>()}]"); action.LocaleMsg = new("MES.Transaction.CollectNode.ScanSn.PassSuccess", CurWipSNs.First().WORK_ORDER, CurSN, CurWipSNs.First().POST_CODE, CurWipSNs.First().NODE_NAME, CurWipSNs.First().STATUS.GetEnumDesc<MES_WIP_DATA.STATUSs>()); //éç½®å·¥åº ResetNode(); return action; Tiger.Business.MES/iERP/U9C_MES.cs
@@ -65,7 +65,7 @@ } Logger.Scheduler.Info($"ç©æä¿¡æ¯åå ¥å®ä½ä¸ï¼æ»æ°ï¼[{items.Count}]"); db = Biz.Db; var LastRun = db.Queryable<SYS_PARAM>().Where(q => q.PRMG_CODE == "Interface_LastRun" && q.PARAM_CODE == "GetItem_LastRun").Single(); var LastRun = await db.Queryable<SYS_PARAM>().Where(q => q.PRMG_CODE == "Interface_LastRun" && q.PARAM_CODE == "GetItem_LastRun").SingleAsync(); LastRun.PARAM_VALUE = (input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? LastRun.PARAM_VALUE : input.endTime; var dbTran = db.UseTran(() => { @@ -104,7 +104,7 @@ } /// <summary> /// è·åå·¥åä¿¡æ¯ /// 忥工åä¿¡æ¯ /// </summary> /// <param name="input"></param> /// <returns></returns> @@ -146,7 +146,15 @@ SN_PREFIX = di["InBarHead"] == null ? "" : di["InBarHead"].ToString(), CUST_PREFIX = di["OutBarHead"] == null ? "" : di["OutBarHead"].ToString(), }; items.Add(woItem); if (!Biz.Db.Queryable<BIZ_MES_WO>().Any(x => x.ORDER_NO == woItem.ORDER_NO && (x.STATUS > 0 || x.ROUTE_STATUS > 0))) { items.Add(woItem); } else { var _wo = await Biz.Db.Queryable<BIZ_MES_WO>().Where(x => x.ORDER_NO == woItem.ORDER_NO).FirstAsync(); Logger.Scheduler.Info($"å·¥å[{woItem.ORDER_NO}]ä¿¡æ¯åå¨å¹¶ä¸ç¶æä¸æ¯åå§åï¼æè å·¥èºå·²ç»é ç½®ãç¶æ[{EnumHelper.GetDesc(EnumHelper.GetEnum<BIZ_MES_WO.STATUSs>(_wo.STATUS))}]ï¼å·¥èºé ç½®ç¶æ[{EnumHelper.GetDesc(EnumHelper.GetEnum<BIZ_MES_WO.ROUTE_STATUSs>(_wo.ROUTE_STATUS))}]"); } } } } @@ -191,7 +199,7 @@ } /// <summary> /// è·å客æ·ä¿¡æ¯ /// 忥客æ·ä¿¡æ¯ /// </summary> /// <param name="input"></param> /// <returns></returns> @@ -203,7 +211,7 @@ Logger.Scheduler.Info($"{input.triggerDetail}"); DbClient db = Biz.DataSource["YadaU9C"].Client; var list = db.Queryable<dynamic>().AS("mes_Customer").Where("ModifiedOn > @startTime And ModifiedOn < @endTime", new { startTime = input.startTime, endTime = input.endTime }).ToList(); var orgs = Biz.Db.Queryable<SYS_ORGANIZATION>().ToList(); var orgs = await Biz.Db.Queryable<SYS_ORGANIZATION>().ToListAsync(); List<BAS_CUSTOMER> items = new(); if (list != null && list.Count > 0) { @@ -270,9 +278,160 @@ return action; } public Task<ApiAction> GetSupplier(GetSupplierInput input) /// <summary> /// 忥ä¾åºå /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task<ApiAction> GetSupplier(GetSupplierInput input) { throw new NotImplementedException(); var action = new ApiAction(); Logger.Scheduler.Info($"ä¾åºåä¿¡æ¯å¼å§åæ¥ãããæ°æ®æ£æ¥è¿è¡ä¸ããã"); Logger.Scheduler.Info($"{input.triggerDetail}"); DbClient db = Biz.DataSource["YadaU9C"].Client; var list = db.Queryable<dynamic>().AS("mes_Supplier").Where("ModifiedOn > @startTime And ModifiedOn < @endTime", new { startTime = input.startTime, endTime = input.endTime }).ToList(); var orgs = await Biz.Db.Queryable<SYS_ORGANIZATION>().ToListAsync(); List<BAS_SUPPLIER> items = new(); if (list != null && list.Count > 0) { foreach (var item in list) { var d = item as System.Dynamic.ExpandoObject; var di = d as IDictionary<string, object>; di = di?.ToDictionary(x => x.Key, x => x.Value); if (di != null) { var orgId = di["Org"] == null ? "" : di["Org"].ToString(); BAS_SUPPLIER suppItem = new() { SUPP_CODE = di["Code"] == null ? "" : di["Code"].ToString(), SUPP_NAME_CN = di["Name"] == null ? "" : di["Name"].ToString(), CREATE_TIME = di["CreatedOn"].ToDateTime(), UPDATE_TIME = di["ModifiedOn"].ToDateTime(), AUTH_ORG = orgs.Where(x => x.ID == orgId).Select(q => q.ORG_CODE).FirstOrDefault(), }; items.Add(suppItem); } } } Logger.Scheduler.Info($"ä¾åºåä¿¡æ¯åå ¥å®ä½ä¸ï¼æ»æ°ï¼[{items.Count}]"); db = Biz.Db; var LastRun = db.Queryable<SYS_PARAM>().Where(q => q.PRMG_CODE == "Interface_LastRun" && q.PARAM_CODE == "Vender_LastTime").Single(); LastRun.PARAM_VALUE = (input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? LastRun.PARAM_VALUE : input.endTime; var dbTran = db.UseTran(() => { db.Storageable(LastRun, "U9C_MES_GetCustomer").ExecuteCommand(); if (items.Any()) { if (items.Count > 150) { db.Utilities.PageEach(items, 1000, pageList => { var y = db.Storageable(pageList, "U9C") .WhereColumns(t => new { t.SUPP_CODE, t.GHOST_ROW }) .ToStorage(); y.BulkCopy(); y.BulkUpdate(); }); } else { var s = db.Storageable(items, "U9C") .WhereColumns(t => new { t.SUPP_CODE, t.GHOST_ROW }) .ToStorage(); s.AsInsertable.ExecuteCommand(); s.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); } } }); if (!dbTran.IsSuccess) { action.CatchExceptionWithLog(dbTran.ErrorException, $"æ°æ®å¤ç失败"); Logger.Scheduler.Error(action.Message); } Logger.Scheduler.Info($"ä¾åºåä¿¡æ¯åå ¥æ°æ®åºï¼æ»æ°ï¼[{items.Count}]"); return action; } /// <summary> /// åæ¥å®¢æ·æ¡ç /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task<ApiAction> GetCustBarCode(GetCustBarcodeInput input) { var action = new ApiAction(); Logger.Scheduler.Info($"å®¢æ·æ¡ç ä¿¡æ¯å¼å§åæ¥ãããæ°æ®æ£æ¥è¿è¡ä¸ããã"); Logger.Scheduler.Info($"{input.triggerDetail}"); DbClient db = Biz.DataSource["YadaU9C"].Client; var list = db.Queryable<dynamic>().AS("mes_MoBarCode").Where("ModifiedOn > @startTime And ModifiedOn < @endTime", new { startTime = input.startTime, endTime = input.endTime }).ToList(); List<MES_CUST_SN> items = new(); if (list != null && list.Count > 0) { foreach (var item in list) { var d = item as System.Dynamic.ExpandoObject; var di = d as IDictionary<string, object>; di = di?.ToDictionary(x => x.Key, x => x.Value); if (di != null) { if (di["MoDoc"] != null) { var _MES_WO = await Biz.Db.Queryable<BIZ_MES_WO>().Where(x => x.ORDER_NO == di["MoDoc"].ToString()).FirstAsync(); MES_CUST_SN snItem = new() { CUST_CODE = _MES_WO?.CUST_CODE ?? "", WORK_ORDER = di["MoDoc"].ToString(), CUST_SN = di["OutBarCode"] == null ? "" : di["OutBarCode"].ToString(), FLOW_SN = di["InBarCode"] == null ? "" : di["InBarCode"].ToString(), CREATE_TIME = di["CreatedOn"].ToDateTime(), UPDATE_TIME = di["ModifiedOn"].ToDateTime(), AUTH_ORG = _MES_WO?.AUTH_ORG, }; items.Add(snItem); } } } } Logger.Scheduler.Info($"å®¢æ·æ¡ç ä¿¡æ¯åå ¥å®ä½ä¸ï¼æ»æ°ï¼[{items.Count}]"); db = Biz.Db; var LastRun = db.Queryable<SYS_PARAM>().Where(q => q.PRMG_CODE == "Interface_LastRun" && q.PARAM_CODE == "GetCustBar_LastTime").Single(); LastRun.PARAM_VALUE = (input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? LastRun.PARAM_VALUE : input.endTime; var dbTran = db.UseTran(() => { db.Storageable(LastRun, "U9C_MES_GetCustomer").ExecuteCommand(); if (items.Any()) { if (items.Count > 150) { db.Utilities.PageEach(items, 1000, pageList => { var y = db.Storageable(pageList, "U9C") .WhereColumns(t => new { t.CUST_SN, t.GHOST_ROW }) .ToStorage(); y.BulkCopy(); y.BulkUpdate(); }); } else { var s = db.Storageable(items, "U9C") .WhereColumns(t => new { t.CUST_SN, t.GHOST_ROW }) .ToStorage(); s.AsInsertable.ExecuteCommand(); s.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); } } }); if (!dbTran.IsSuccess) { action.CatchExceptionWithLog(dbTran.ErrorException, $"æ°æ®å¤ç失败"); Logger.Scheduler.Error(action.Message); } Logger.Scheduler.Info($"å®¢æ·æ¡ç ä¿¡æ¯åå ¥æ°æ®åºï¼æ»æ°ï¼[{items.Count}]"); return action; } } } Tiger.Business/MES/Biz.WorkBatch.cs
@@ -366,7 +366,7 @@ foreach (var next in nextNodes) { //æ¥æ¾ææ²¡æåç½®å·¥åºæ¾ä¸å°å·²è¯åè¿ç«çåå²è®°å½ï¼è¥æåä¸å è®¸ç»§ç»æ§è¡ if (!next.PrepNodeIDs.Any(id => !wipSN.History.Any(h => h.WORK_ORDER == WO.ORDER_NO && h.NODE_ID == id && h.IsFinished))) if (!next.PrepNodeIDs.Any(id => !wipSN.History.Any(h => h.WORK_ORDER == WO.ORDER_NO && h.NODE_ID == id && h.IsFinished)) || parent.IS_FIRST_NODE == "Y") { var setting = NodeSets.FirstOrDefault(q => q.NODE_ID == next.ID); //åç»å·¥åºæ¯å¯ç¨çï¼åæ·»å Tiger.IBusiness/MES/iERP/IU9C_MES.cs
@@ -15,5 +15,6 @@ public Task<ApiAction> GetCustomer(GetCustomerInput input); public Task<ApiAction> GetSupplier(GetSupplierInput input); public Task<ApiAction> GetBasWo(GetWoInput input); public Task<ApiAction> GetCustBarCode(GetCustBarcodeInput input); } } Tiger.Model.Net/Entitys/MES/ParameterEntity/U9C_MES_Input.cs
@@ -29,4 +29,7 @@ public class GetWoInput : U9C_MES_Input { } public class GetCustBarcodeInput : U9C_MES_Input { } }