From 8caee486894a66a35ea0732ad575d7342589635f Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期五, 15 十一月 2024 10:26:40 +0800 Subject: [PATCH] 生成入库获取条码工单信息及包装信息 --- Tiger.Controllers.MES/Controllers/MESController.BIZ_MES_WO.cs | 21 +++++++ Tiger.IBusiness.MES/BIZ/IMES_WO.cs | 1 Tiger.Business.MES/iERP/U9C_MES.cs | 2 Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs | 66 ++++++++++++++++++++++ Tiger.Business.MES/BIZ/BIZ_MES_WO.cs | 60 ++++++++++++++++++++ Tiger.Controllers.System/Controllers/Base/BaseController.cs | 4 6 files changed, 151 insertions(+), 3 deletions(-) diff --git a/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs b/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs index 9052669..25765c6 100644 --- a/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs +++ b/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs @@ -19,6 +19,7 @@ using System.Net.NetworkInformation; using Tiger.Model.MES.Yada; using static Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser; +using Tiger.Model.Minsun; namespace Tiger.Business.MES { @@ -662,5 +663,64 @@ } return result; } + + /// <summary> + /// 鐢熸垚鍏ュ簱鑾峰彇鏉$爜宸ュ崟淇℃伅鍙婂寘瑁呬俊鎭� + /// </summary> + /// <param name="code"></param> + /// <returns></returns> + public async Task<ApiAction<InStoreInfo>> GetErpProdInBth(string code) + { + var result = new ApiAction<InStoreInfo>(); + try + { + //寰楀埌宸ュ崟鏉$爜璁板綍 + var woSns = await Biz.Db.Queryable<BIZ_MES_WO_SN>().Where(q => q.OUTER_SN == code).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(); + 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, + ITEM_CODE = wo.ITEM_CODE, + ITEM_NAME = wo.ItemInfo?.ITEM_NAME, + 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_NAME, + PLAN_QTY = wo.PLAN_QTY, + SCAN_QTY = woSns.Count + }, + InStoreScanInfo = new() { + SN = code, + WORK_ORDER = wo.ORDER_NO, + BATCH_NO = woSns[0].BATCH_NO, + SCAN_QTY = woSns.Count + } + }; + result.Data = inStoreInfo; + result.LocaleMsg = new($"鑾峰彇鏉$爜[{code}]宸ュ崟淇℃伅鍙婂寘瑁呬俊鎭垚鍔�"); + } + catch (Exception ex) + { + result.CatchExceptionWithLog(ex, $"鑾峰彇鏉$爜[{code}]宸ュ崟淇℃伅鍙婂寘瑁呬俊鎭紓甯�"); + } + return result; + } } } diff --git a/Tiger.Business.MES/iERP/U9C_MES.cs b/Tiger.Business.MES/iERP/U9C_MES.cs index 7f56288..b2a47eb 100644 --- a/Tiger.Business.MES/iERP/U9C_MES.cs +++ b/Tiger.Business.MES/iERP/U9C_MES.cs @@ -572,7 +572,7 @@ CUST_PREFIX = di["OutBarHead"] == null ? "" : di["OutBarHead"].ToString(), SALES_CONTRACT = di["Contracts"] == null ? "" : di["Contracts"].ToString(), }; - if (!Biz.Db.Queryable<BIZ_MES_WO>().Any(x => x.ORDER_NO == woItem.ORDER_NO && (x.STATUS > BIZ_MES_WO.STATUSs.Init.GetValue() || x.ROUTE_STATUS > BIZ_MES_WO.ROUTE_STATUSs.WaitSet.GetValue()))) + if (!Biz.Db.Queryable<BIZ_MES_WO>().Any(x => x.ORDER_NO == woItem.ORDER_NO && x.STATUS > BIZ_MES_WO.STATUSs.Imported.GetValue())) { items.Add(woItem); } diff --git a/Tiger.Controllers.MES/Controllers/MESController.BIZ_MES_WO.cs b/Tiger.Controllers.MES/Controllers/MESController.BIZ_MES_WO.cs index a2dbdac..2860075 100644 --- a/Tiger.Controllers.MES/Controllers/MESController.BIZ_MES_WO.cs +++ b/Tiger.Controllers.MES/Controllers/MESController.BIZ_MES_WO.cs @@ -263,5 +263,26 @@ } return Ok(response); } + + /// <summary> + /// 鐢熸垚鍏ュ簱鑾峰彇鏉$爜宸ュ崟淇℃伅鍙婂寘瑁呬俊鎭� + /// </summary> + /// <param name="action"></param> + /// <returns></returns> + [HttpPost] + [Route("api/[controller]/[action]")] + public async Task<IActionResult> GetErpProdInBth([FromBody] ApiAction action) + { + ApiAction response = new(); + try + { + response = response.GetResponse(await DI.Resolve<IBIZ_MES_WO>().GetErpProdInBth(action.Data?.ToString())); + } + catch (System.Exception ex) + { + response = response.GetResponse().CatchExceptionWithLog(ex); + } + return Ok(response); + } } } diff --git a/Tiger.Controllers.System/Controllers/Base/BaseController.cs b/Tiger.Controllers.System/Controllers/Base/BaseController.cs index 7783881..24899c1 100644 --- a/Tiger.Controllers.System/Controllers/Base/BaseController.cs +++ b/Tiger.Controllers.System/Controllers/Base/BaseController.cs @@ -569,8 +569,8 @@ { await file.CopyToAsync(stream); } - - return Ok(new { file.FileName, file.ContentType, file.Length, url= $@"{BizConfig.Configuration["DownloadAddress"]}/"+ file.FileName }); + var downloadAddress = entityName == "BAS_LABEL_TEMP" || entityName == "BAS_LABEL_VAR" ? "/Template" : ""; + return Ok(new { file.FileName, file.ContentType, file.Length, url= $@"{BizConfig.Configuration["DownloadAddress"]}{downloadAddress}/"+ file.FileName }); } #endregion diff --git a/Tiger.IBusiness.MES/BIZ/IMES_WO.cs b/Tiger.IBusiness.MES/BIZ/IMES_WO.cs index 00040e9..d0f4268 100644 --- a/Tiger.IBusiness.MES/BIZ/IMES_WO.cs +++ b/Tiger.IBusiness.MES/BIZ/IMES_WO.cs @@ -24,5 +24,6 @@ public Task<ApiAction> GetShipList(string wo, string orgCode); public Task<ApiAction> SavePrintLabelInAct(string code); public Task<ApiAction> UnbindWipSnFromWO(UnbindWipSnInput input); + public Task<ApiAction<InStoreInfo>> GetErpProdInBth(string code); } } diff --git a/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs b/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs index 4eab884..38fdd85 100644 --- a/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs +++ b/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs @@ -138,4 +138,70 @@ #endregion }//endClass + + public class ProdInBatch + { + /// <summary> + /// 入库单号 + /// </summary> + [DisplayName("入库单号")] + public string ORDER_NO { get; set; } + /// <summary> + /// 工单批次号 + /// </summary> + [DisplayName("工单批次号")] + public string BATCH_NO { get; set; } + /// <summary> + /// 工单号 + /// </summary> + [DisplayName("工单号")] + public string WORK_ORDER { get; set; } + /// <summary> + /// 物料编码 + /// </summary> + [DisplayName("物料编码")] + public string ITEM_CODE { get; set; } + /// <summary> + /// 物料名称 + /// </summary> + [DisplayName("物料名称")] + public string ITEM_NAME { get; set; } + /// <summary> + /// 计划数量 + /// </summary> + [DisplayName("计划数量")] + public double PLAN_QTY { get; set; } + /// <summary> + /// 已扫描数量 + /// </summary> + [DisplayName("已扫描数量")] + public double SCAN_QTY { get; set; } + } + + public class InStoreScanInfo + { + /// <summary> + /// 条码 + /// </summary> + [DisplayName("条码")] + public string SN { get; set; } + [DisplayName("工单批次号")] + public string BATCH_NO { get; set; } + /// <summary> + /// 工单号 + /// </summary> + [DisplayName("工单号")] + public string WORK_ORDER { get; set; } + /// <summary> + /// 已扫描数量 + /// </summary> + [DisplayName("已扫描数量")] + public double SCAN_QTY { get; set; } + } + + public class InStoreInfo { + public BIZ_ERP_PROD_IN_BTH ErpProdInBth { get; set; } + public ProdInBatch ProdInBatch { get; set; } + public InStoreScanInfo InStoreScanInfo { get; set; } + } } \ No newline at end of file -- Gitblit v1.9.3