Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Business.MES/iERP/U9C_MES.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.IBusiness/MES/iERP/IU9C_MES.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Model.Net/Entitys/MES/BIZ_MES_WO.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Model.Net/Entitys/MES/ParameterEntity/U9C_MES_Input.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.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_MES_GetWo : TigerJobBase, ITigerJob { public string Id { get; set; } = Guid.NewGuid().ToString("N"); public string Tag { get; set; } = "U9C_MES_GetWo Interface Job"; public string Name { get; set; } = "U9C_MES_GetWo Interface Job"; public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) { Logger.Scheduler.Info(context.Trigger.ConvertToMonitor()); 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) { GetBasItemInput input = new GetBasItemInput { 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>().GetBasItem(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/iERP/U9C_MES.cs
@@ -98,6 +98,86 @@ } /// <summary> /// è·åå·¥åä¿¡æ¯ /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task<ApiAction> GetBasWo(GetWoInput input) { var action = new ApiAction(); Logger.Scheduler.Info(Biz.L($"å·¥åä¿¡æ¯å¼å§åæ¥ãããæ°æ®æ£æ¥è¿è¡ä¸ããã")); Logger.Scheduler.Info(Biz.L($"{input.triggerDetail}")); DbClient db = Biz.DataSource["YadaU9C"].Client; var list = db.Queryable<dynamic>().AS("mes_ItemMaster").Where("ModifiedOn > @startTime And ModifiedOn < @endTime", new { startTime = input.startTime, endTime = input.endTime }).ToList(); List<BAS_ITEM> items = new(); 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) { BAS_ITEM basItem = new() { ID = di["ID"].ToString(), ITEM_CODE = di["Code"] == null ? "" : di["Code"].ToString(), ITEM_NAME = di["Name"] == null ? "" : di["Name"].ToString(), ITEM_DESC = di["Description"] == null ? "" : di["Description"].ToString(), SPEC = di["SPECS"] == null ? "" : di["SPECS"].ToString(), ITEM_TYPE = di["CategoryCode"] == null ? "" : di["CategoryCode"].ToString(), UNIT = di["InventorySecondUOM"] == null ? "" : di["InventorySecondUOM"].ToString(), PROD_TYPE = di["ProductTypeCode"] == null ? "" : di["ProductTypeCode"].ToString(), CREATE_TIME = di["CreatedOn"].ToDateTime(), UPDATE_TIME = di["ModifiedOn"].ToDateTime(), IS_ACTIVE = "Y", IS_PROD = ((string)di["Code"]).StartsWith("2") ? "Y" : "N", }; items.Add(basItem); } } Logger.Scheduler.Info(Biz.L($"å·¥åä¿¡æ¯åå ¥å®ä½ä¸ï¼æ»æ°ï¼[{items.Count}]")); db = Biz.Db; var LastRun = db.Queryable<SYS_PARAM>().Where(q => q.PRMG_CODE == "Interface_LastRun" && q.PARAM_CODE == "GetItem_LastRun").Single(); LastRun.PARAM_VALUE = input.endTime; var dbTran = db.UseTran(() => { db.Storageable(LastRun, "U9C_MES_GetItem").ExecuteCommand(); if (items.Any()) { if (items.Count > 150) { db.Utilities.PageEach(items, 1000, pageList => { var y = db.Storageable(pageList, "U9C") .WhereColumns(t => new { t.ITEM_CODE, t.GHOST_ROW }) .ToStorage(); y.BulkCopy(); y.BulkUpdate(); }); } else { var s = db.Storageable(items, "U9C") .WhereColumns(t => new { t.ITEM_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(Biz.L($"å·¥åä¿¡æ¯åå ¥æ°æ®åºï¼æ»æ°ï¼[{items.Count}]")); return action; } public Task<ApiAction> GetCustomer(GetCustomerInput input) { throw new NotImplementedException(); Tiger.IBusiness/MES/iERP/IU9C_MES.cs
@@ -14,5 +14,6 @@ public Task<ApiAction> GetBasItem(GetBasItemInput input); public Task<ApiAction> GetCustomer(GetCustomerInput input); public Task<ApiAction> GetSupplier(GetSupplierInput input); public Task<ApiAction> GetBasWo(GetWoInput input); } } Tiger.Model.Net/Entitys/MES/BIZ_MES_WO.cs
@@ -29,9 +29,9 @@ [DisplayName("å·¥åå·")] public string ORDER_NO { get; set; } /// <summary> /// å·¥åç±»å(0Normalæ£å¸¸|1Reworkè¿å·¥) /// å·¥åç±»å(0Plan计å|1Standardæ å|2Reworkè¿å·¥|3Restructuringå¨åºæ¹å¶|5å§å¤Outsourcing|6RDç å|7Forecast颿µ|8Disassembleæå¸) /// </summary> [DisplayName("å·¥åç±»å(0Normalæ£å¸¸|1Reworkè¿å·¥)")] [DisplayName("å·¥åç±»å(0Plan计å|1Standardæ å|2Reworkè¿å·¥|3Restructuringå¨åºæ¹å¶|5Outsourcingå§å¤|6RDç å|7Forecast颿µ|8Disassembleæå¸)")] public string ORDER_TYPE { get; set; } /// <summary> /// å·¥åæè¿° @@ -276,6 +276,28 @@ [Description("å·²å ³é")] Closed, } /// <summary> /// å·¥åç±»åæä¸¾ /// </summary> public enum ORDER_TYPEs { [Description("计å")] Plan=0, [Description("æ å")] Standard=1, [Description("è¿å·¥")] Rework=2, [Description("å¨åºæ¹å¶")] Restructuring=3, [Description("å§å¤")] Outsourcing = 5, [Description("ç å")] RD = 6, [Description("颿µ")] Forecast = 7, [Description("æå¸")] Disassemble = 8, } #endregion #region å ¬å ±æ¹æ³ Tiger.Model.Net/Entitys/MES/ParameterEntity/U9C_MES_Input.cs
@@ -25,4 +25,8 @@ public class GetSupplierInput : U9C_MES_Input { } public class GetWoInput : U9C_MES_Input { } }