From 2420648a1522c2e1cd8138bb43dd7d46a6561a1a Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期三, 25 九月 2024 23:37:04 +0800 Subject: [PATCH] 厂内码客户码绑定增加包装工单和成品料号 --- Tiger.Business.MES/Transaction/Position.cs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 43 insertions(+), 0 deletions(-) diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs index 11eba06..bf7046f 100644 --- a/Tiger.Business.MES/Transaction/Position.cs +++ b/Tiger.Business.MES/Transaction/Position.cs @@ -11,6 +11,7 @@ using Tiger.Model; using static Tiger.Business.Biz; using Tiger.Model.Entitys.MES.Position; +using System.Globalization; namespace Tiger.Business.MES.Transaction { @@ -579,6 +580,48 @@ return result; } + /// <summary> + /// 鏍规嵁鍖呰宸ュ崟鍜屾潯鐮佽幏鍙栧崕涓鸿姹傜殑鐢熶骇鍛ㄦ湡 + /// </summary> + /// <param name="snList"></param> + /// <returns></returns> + private string GetHuaWeiWeek(string pkgOrder, List<string> snList) + { + Dictionary<string, string> dic = new(); + var snOrder = Biz.Db.Queryable<MES_CUST_SN, BIZ_MES_WO>((q, w) => new JoinQueryInfos(JoinType.Left, q.WORK_ORDER == w.ORDER_NO)) + .Where((q, w) => q.PKG_ORDER == pkgOrder && (snList.Contains(q.FLOW_SN) || snList.Contains(q.CUST_SN))) + .Select((q, w) => new { q.PKG_ORDER, q.WORK_ORDER, w.ACT_START_TIME, w.PLAN_START_TIME, q.FLOW_SN, q.CUST_SN }).ToList(); + foreach (var sn in snList) + { + var item = snOrder.FirstOrDefault(q => q.FLOW_SN == sn || q.CUST_SN == sn); + if (!item.IsNullOrEmpty()) + { + var date = item.ACT_START_TIME < new DateTime(2000, 1, 1) ? item.PLAN_START_TIME : item.ACT_START_TIME; ; + var firstDay = new DateTime(date.Year, 1, 1); + int daysOffset = firstDay.DayOfWeek.GetValue() > 3 ? (firstDay.DayOfWeek.GetValue() - 7) : 0; + int year = date.Year + ((date - firstDay).TotalDays + daysOffset < 0 ? -1 : 0); + int week = CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Sunday); + dic.Add(sn, $"{year.ToString().Substring(2, 2)}{week:00}"); + } + else + { + dic.Add(sn, ""); + } + } + var weeks = dic.Select(q => q.Value).Where(q => !q.IsNullOrEmpty()).Distinct().OrderBy(q => q).ToList(); + + switch (weeks.Count) + { + case 0: + return ""; + case 1: + return weeks.First(); + case 2: + return string.Join("/", weeks.Select(q => q + $"({dic.Count(d => d.Value == q)})")); + default: + return string.Join("/", weeks.Take(2)) + " (+)"; + } + } #endregion #endregion Functions -- Gitblit v1.9.3