From a592da60f0db0d4eb950a81a8530e965444be7b1 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期三, 16 十月 2024 09:14:02 +0800 Subject: [PATCH] 工艺路线默认优化 --- Tiger.Business/MES/Biz.Route.cs | 54 ++++++++++++++++++++++---- Tiger.Controllers.MES/Controllers/MESController.Route.cs | 4 +- Tiger.IBusiness/MES/IRoute.cs | 1 Tiger.Model.Net/Entitys/MES/ParameterEntity/RouteInput.cs | 1 Tiger.Model.Net/Entitys/MES/V_MES_ROUTE_PTREE.cs | 2 + Tiger.Business.MES/Transaction/Position.cs | 10 ++++- Tiger.Business.MES/WorkAction/PackingAction.cs | 6 ++- Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs | 1 8 files changed, 64 insertions(+), 15 deletions(-) diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs index 5a149c2..ffd085e 100644 --- a/Tiger.Business.MES/Transaction/Position.cs +++ b/Tiger.Business.MES/Transaction/Position.cs @@ -553,6 +553,8 @@ return CurSN; case "GetBAS_ITEM": return WorkBatch.Product.CUST_PROD_CODE; + case "GetItemName": + return WorkBatch.Product.ITEM_NAME; case "GetCustomer": return WorkBatch.Batch.Customer.ToJson(); case "GetBoxQR": @@ -574,7 +576,7 @@ case "GetPAndO": return WorkBatch.WO.SALES_CONTRACT; case "GetLTD": - return WorkBatch.Batch.Customer.SHORT_NAME; + return WorkBatch.Batch.Customer.CUST_NAME_CN; case "GetHWDate": List<string> list = new List<string>(); var _action = action is PackingAction ? action as PackingAction : null; @@ -603,6 +605,10 @@ return GetLabelVarWo(lv, WorkBatch.Product.ExtInfo?.Accuracy); case "GetVarByWo": return GetLabelVarWo(lv, ""); + case "GetLOTNO": + return ""; + case "GetNOTES": + return WorkBatch.Product.ExtInfo?.Remark; default: return ""; } @@ -724,7 +730,7 @@ var wo = WorkBatch.Batch.ORDER_NO; var snList = string.Join("\r\n", minPkgList); if (snList.IsNullOrEmpty()) { snList = $"{CurSN}"; } - var itemCode = Biz.Db.Queryable<MES_CUST_SN>().Where(q => q.FLOW_SN == CurWipSNs.First().FLOW_SN).First()?.ITEM_CODE; + var itemCode = action.CurPkg.ITEM_CODE; var weight = action.CurPkg.WeightInfo.Weight; var unit = action.CurPkg.WeightInfo.Unit.ToUpper(); var model = WorkBatch.Product.ExtInfo.Model; diff --git a/Tiger.Business.MES/WorkAction/PackingAction.cs b/Tiger.Business.MES/WorkAction/PackingAction.cs index 22a62cc..ae3603a 100644 --- a/Tiger.Business.MES/WorkAction/PackingAction.cs +++ b/Tiger.Business.MES/WorkAction/PackingAction.cs @@ -74,7 +74,8 @@ WorkBatch = CurPosition.WorkBatch.Batch.BATCH_NO, RULE_CODE = PkgRule.RULE_CODE, RULE_NAME = PkgRule.RULE_NAME, - ITEM_CODE = CurPosition.WorkBatch.WO.ITEM_CODE, + PROD_CODE = CurPosition.WorkBatch.WO.ITEM_CODE, + ITEM_CODE = Biz.Db.Queryable<MES_CUST_SN>().Where(q => q.FLOW_SN == CurPosition.CurWipSNs.First().FLOW_SN).First()?.ITEM_CODE, Item = new WipPkgItem() { PKG_CODE = max.PKG_CODE, @@ -154,7 +155,8 @@ LabelDic = CurPosition.Context["CurLabelDic"] as Dictionary<int, BAS_LABEL_TEMP>; LabelPV = Biz.Db.Queryable<BAS_LABEL_PV>().ToList(); //鑾峰彇鍖呰瑙勫垯鐨勭О閲嶈寖鍥� - PkgProd = Biz.Db.Queryable<BAS_PKG_PROD>().Where(q => q.PKG_RULE_ID == PkgRule.ID && q.ITEM_CODE == CurPkg.ITEM_CODE).First(); + PkgProd = Biz.Db.Queryable<BAS_PKG_PROD>().Where(q => q.PKG_RULE_ID == PkgRule.ID && q.ITEM_CODE == CurPkg.PROD_CODE).First(); + //鎶� CurStep?.SetStatusMessage(StepStatus.Normal, Biz.L("璁板綍鍖呰鏁版嵁")); } diff --git a/Tiger.Business/MES/Biz.Route.cs b/Tiger.Business/MES/Biz.Route.cs index 8243cd7..2e6c16b 100644 --- a/Tiger.Business/MES/Biz.Route.cs +++ b/Tiger.Business/MES/Biz.Route.cs @@ -521,11 +521,10 @@ expableOper.And(x => x.ROT_ID == item.ID); } } - if (!string.IsNullOrEmpty(input.prodCode)) - { - expable.And(x => x.PROD_CODE == input.prodCode); - expableOper.And(x => x.PROD_CODE == input.prodCode); - } + + expable.And(x => x.PROD_CODE == input.prodCode && x.CUST_CODE == input.custCode); + expableOper.And(x => x.PROD_CODE == input.prodCode && x.CUST_CODE == input.custCode); + var exp = expable.ToExpression(); var expOper = expableOper.ToExpression(); var db = Db; @@ -645,18 +644,18 @@ var result = new ApiAction(); try { - var item = await Biz.Db.Queryable<BAS_ITEM>().ByAuth(input.options).Where(x=>x.ITEM_CODE == input.prodCode).FirstAsync(); + var item = await Biz.Db.Queryable<BAS_ITEM>().ByAuth(input.options).Where(x => x.ITEM_CODE == input.prodCode).FirstAsync(); if (item == null) { result.IsSuccessed = false; result.LocaleMsg = new($"浜у搧[{input.prodCode}]涓嶅瓨鍦紒"); return result; } - item.DEFAULT_ROUTE = input.isDefault? input.rotCode: ""; + item.DEFAULT_ROUTE = input.isDefault ? input.rotCode : ""; var db = Db; var dbTran = db.UseTran(() => { - db.Updateable(item).UpdateColumns(q=> new { q.DEFAULT_ROUTE}).ExecuteCommand(); + db.Updateable(item).UpdateColumns(q => new { q.DEFAULT_ROUTE }).ExecuteCommand(); }); if (!dbTran.IsSuccess) { @@ -901,7 +900,7 @@ { db.Insertable(routeData.acts).ExecuteCommand(); } - if (operList.Count>0) + if (operList.Count > 0) { db.Insertable(operList).ExecuteCommand(); } @@ -954,6 +953,43 @@ return await Task.FromResult(result); } #endregion + /// <summary> + /// 鑾峰彇宸ヨ壓璺嚎鏍戝舰缁撴瀯 + /// </summary> + /// <param name="prodCode"></param> + /// <param name="orgCode"></param> + /// <returns></returns> + public async Task<List<V_MES_ROUTE_PTREE>> GetRoutePTree(string prodCode, string orgCode) + { + var result = new List<V_MES_ROUTE_PTREE>(); + try + { + + SugarParameter[] pars = Biz.Db.Ado.GetParameters(new { PROD_CODE = prodCode, ORG_CODE = orgCode }); + result = Biz.Db.Ado.UseStoredProcedure().SqlQuery<V_MES_ROUTE_PTREE>("SP_MES_GET_ROUTE_PTREE", pars);//杩斿洖List + var item = await Db.Queryable<BAS_ITEM>().Where(q => q.ITEM_CODE == prodCode).FirstAsync(); + if (item != null && !item.DEFAULT_ROUTE.IsNullOrEmpty()) + { + var pid = result.Where(q => q.code == $"DefaultRoute_{orgCode}_{prodCode}").Select(q => q.tid).FirstOrDefault(); + result.ForEach(d => + { + if (d.pid == pid && d.code == item.DEFAULT_ROUTE) + { + d.isDefault = true; + } + else + { + d.isDefault = false; + } + }); + } + } + catch (Exception ex) + { + Logger.Default.Error(ex, "淇濆瓨榛樿宸ヨ壓璺嚎鍒颁骇鍝佸紓甯�"); + } + return result; + } } //endClass Route } //endClass Biz } diff --git a/Tiger.Controllers.MES/Controllers/MESController.Route.cs b/Tiger.Controllers.MES/Controllers/MESController.Route.cs index a3450e4..e274299 100644 --- a/Tiger.Controllers.MES/Controllers/MESController.Route.cs +++ b/Tiger.Controllers.MES/Controllers/MESController.Route.cs @@ -1,6 +1,7 @@ 锘縰sing Microsoft.AspNetCore.Mvc; using Rhea.Common; using SqlSugar; +using System; using System.Collections.Generic; using System.Threading.Tasks; using System.Xml.Linq; @@ -273,8 +274,7 @@ [HttpGet] [Route("api/[controller]/[action]")] public async Task<IActionResult> GetRoutePTreeAsync(string? prodCode, string? orgCode) { - SugarParameter[] pars = Biz.Db.Ado.GetParameters(new { PROD_CODE = prodCode,ORG_CODE = orgCode }); - var data = Biz.Db.Ado.UseStoredProcedure().SqlQuery<V_MES_ROUTE_PTREE>("SP_MES_GET_ROUTE_PTREE", pars);//杩斿洖List + var data = await DI.Resolve<IRoute>().GetRoutePTree(prodCode, orgCode); return Ok(data); } diff --git a/Tiger.IBusiness/MES/IRoute.cs b/Tiger.IBusiness/MES/IRoute.cs index 61c3a5b..e3388dc 100644 --- a/Tiger.IBusiness/MES/IRoute.cs +++ b/Tiger.IBusiness/MES/IRoute.cs @@ -26,5 +26,6 @@ public Task<ApiAction> SaveWoRouteNodePost(List<MES_WO_NODE_POST> nodePost); public Task<ApiAction> SaveWoRouteData(WoRouteData routeData); public Task<ApiAction> SetDefaultRoute(ProdRotInput input); + public Task<List<V_MES_ROUTE_PTREE>> GetRoutePTree(string? prodCode, string? orgCode); } } diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs index 7871de1..fe5a467 100644 --- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs +++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs @@ -162,6 +162,7 @@ public string WorkBatch { get; set; } public string RULE_CODE { get; set; } public string RULE_NAME { get; set; } + public string PROD_CODE { get; set; } public string ITEM_CODE { get; set; } public WipPkgItem Item { get; set; } public bool NeedWeighing { get; set; } = false; diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/RouteInput.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/RouteInput.cs index c243f26..f7616b0 100644 --- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/RouteInput.cs +++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/RouteInput.cs @@ -20,6 +20,7 @@ public class ProdRotInput : RouteInput { public string prodCode { get; set; } + public string custCode { get; set; } public bool isDefault { get; set; } } diff --git a/Tiger.Model.Net/Entitys/MES/V_MES_ROUTE_PTREE.cs b/Tiger.Model.Net/Entitys/MES/V_MES_ROUTE_PTREE.cs index b4acc06..5314d59 100644 --- a/Tiger.Model.Net/Entitys/MES/V_MES_ROUTE_PTREE.cs +++ b/Tiger.Model.Net/Entitys/MES/V_MES_ROUTE_PTREE.cs @@ -61,6 +61,8 @@ public string tid { get; set; } [SugarColumn(IsIgnore = true)] public string cust { get; set; } + [SugarColumn(IsIgnore = true)] + public bool isDefault { get; set; } #endregion #region 鏋氫妇鍙橀噺 -- Gitblit v1.9.3