服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2024-11-15 8caee486894a66a35ea0732ad575d7342589635f
生成入库获取条码工单信息及包装信息
已修改6个文件
154 ■■■■■ 文件已修改
Tiger.Business.MES/BIZ/BIZ_MES_WO.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/iERP/U9C_MES.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Controllers.MES/Controllers/MESController.BIZ_MES_WO.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Controllers.System/Controllers/Base/BaseController.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.IBusiness.MES/BIZ/IMES_WO.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
        }
    }
}
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);
                        }
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);
        }
    }
}
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
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);
    }
}
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; }
    }
}