服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2025-04-15 080741e0b917dc382ecba31c4b19fca1aa772bfd
增加上架单据信息
已修改5个文件
154 ■■■■■ 文件已修改
Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Controllers.WMS/Controllers/WMSController.In_BIZ_U9_RECEIPT.cs 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.IBusiness.WMS/Transaction/IIn_BIZ_U9_RECEIPT.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/Api/Output_Entitys.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs
@@ -440,8 +440,7 @@
                var receipt = new BIZ_U9_RECEIPT();
                receipt.Details = new();
                receipt.SnList = new();
                DbClient U9Cdb = Biz.DataSource["YadaU9C"].Client;
                var list = U9Cdb.Queryable<mes_ReturnedDocInfo>().Where(x => x.RcvId == result.Data[0].ID.ToDouble() && x.DocNo == result.Data[0].Code && x.SplitFlag != 1).ToList();
                var list = Biz.DataSource["YadaU9C"].Client.Queryable<mes_ReturnedDocInfo>().Where(x => x.RcvId == result.Data[0].ID.ToDouble() && x.DocNo == result.Data[0].Code && x.SplitFlag != 1).ToList();
                if (list != null && list.Count > 0)
                {
Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs
@@ -13,7 +13,6 @@
using Tiger.Business.WMS.Sharetronic.Shelf;
using Tiger.Model.Entitys.MES.U9C;
using Tiger.Model.MES.Yada;
using static IronPython.Modules._ast;
namespace Tiger.Business.WMS.Transaction
{
@@ -22,6 +21,7 @@
    /// </summary>
    public class In_BIZ_U9_RECEIPT : WmsTask, IIn_BIZ_U9_RECEIPT
    {
        public IIn_BIZ_U9_RECEIPT Init(string id, string userCode, string apiHost, string orgCode)
        {
            base.Init(id, userCode, apiHost, orgCode);
@@ -30,7 +30,7 @@
        }
        #region Propertys & Variables
        public string CurOrderNo { get; set; }
        #endregion
        #region Functions
@@ -216,6 +216,8 @@
                    return SetOutPutMqttMsg(action, input.Locale);
                }
                CurOrderNo = receipt.ORDER_NO;
                //执行上架数据处理
                foreach (var item in CurInvItem.Items)
                {
@@ -314,13 +316,18 @@
                });
                //完成所有处理后使用事务保存数据
                action = DoIfFinish(action, input.Locale, () => {
                action = DoIfFinish(action, input.Locale, () =>
                {
                    //设置当前物料的默认储位
                    if (CurInvItem.ItemInfo.DEFAULT_LOCATION.IsNullOrEmpty())
                    {
                        SetDefaultLocation(MainDB, CurInvItem.ItemInfo, nLocation);
                    }
                });
                //if (!action.Data.Data.IsNullOrEmpty() && action.Data.Data is DefaultInStoreOutput)
                //{
                //    (action.Data.Data as DefaultInStoreOutput).OrderInfo = receipt;
                //}
            }
            catch (Exception ex)
            {
@@ -461,6 +468,38 @@
            return SetOutPutMqttMsg(action, locale);
        }
        /// <summary>
        ///  获取需要上架的收货单列表(带分页)
        /// </summary>
        /// <returns></returns>
        public async Task<ApiAction<PageAble<BIZ_U9_RECEIPT>>> GetOrderList(BaseInputWithPage input)
        {
            var action = new ApiAction<PageAble<BIZ_U9_RECEIPT>>();
            var query = Biz.DataSource["YadaU9C"].Client.Queryable<mes_ReturnedDocInfo>().Where(q => q.Status == 3)
                                    .WhereIF(!input.OrderNo.IsNullOrEmpty(), q => q.DocNo.Contains(input.OrderNo))
                                    .OrderBy(q => q.DocNo).ToPage(input.pageIndex, input.pageSize);
            action.Data = await MainDB.Queryable<BIZ_U9_RECEIPT>().Where(q => query.data.Select(o => o.DocNo).Contains(q.ORDER_NO)).ToPageAsync(input.pageIndex, input.pageSize);
            foreach (var order in action.Data.data)
            {
                order.ERP_STATUS_CODE = query.data.FirstOrDefault(q => q.DocNo == order.ORDER_NO)?.Status.ToString();
                order.ERP_STATUS_NAME = query.data.FirstOrDefault(q => q.DocNo == order.ORDER_NO)?.StatusName;
            }
            MainDB.Updateable(action.Data.data, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.ERP_STATUS_CODE, q.ERP_STATUS_NAME }).ExecuteCommand();
            return action;
        }
        /// <summary>
        ///  获取当前收货单信息
        /// </summary>
        /// <returns></returns>
        public async Task<ApiAction<BIZ_U9_RECEIPT>> GetCurOrder()
        {
            var action = new ApiAction<BIZ_U9_RECEIPT>();
            action.Data = MainDB.Queryable<BIZ_U9_RECEIPT>().Where(q => q.ORDER_NO == CurOrderNo).IncludesAllFirstLayer().First();
            return action;
        }
        #endregion
        /// <summary>
Tiger.Controllers.WMS/Controllers/WMSController.In_BIZ_U9_RECEIPT.cs
@@ -137,5 +137,97 @@
            return Ok(response);
        }
        /// <summary>
        /// GetOrderList(ApiAction(BasePageInput))
        ///  获取需要上架的收货单列表(带分页)
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        [HttpPost]
        [Route("api/[controller]/In_U9Receipt/GetOrderList")]
        public async Task<IActionResult> In_BIZ_U9_RECEIPT_GetOrderListAsync([FromBody] ApiAction<BaseInputWithPage> action)
        {
            ApiAction response;
            IIn_BIZ_U9_RECEIPT trans = null;
            try
            {
                if (iBiz.WMS.Context.GetTransDic().ContainsKey(action.ID))
                {
                    trans = iBiz.WMS.Context.GetTransDic()[action.ID] as IIn_BIZ_U9_RECEIPT;
                    if (!trans.IsFinished)
                    {
                        if (action.IsAsync)
                        {
                            response = action.GetResponse(await trans.GetOrderList(action.Data));
                        }
                        else
                        {
                            lock (trans.TransLock) { response = action.GetResponse(trans.GetOrderList(action.Data).Result); }
                        }
                    }
                    else
                    {
                        response = action.GetResponse($"Transaction Error: 收货单(U9)上架事务[ID:{action.ID}]已经关闭,请重新打开收货单(U9)上架功能", false);
                    }
                }
                else
                {
                    response = action.GetResponse($"Transaction Error: 收货单(U9)上架事务[ID:{action.ID}]数据丢失,请重新打开收货单(U9)上架功能", false);
                }
            }
            catch (System.Exception ex)
            {
                response = action.GetResponse().CatchExceptionWithLog(ex);
            }
            trans?.AddHistory(Request, action);
            return Ok(response);
        }
        /// <summary>
        /// GetCurOrder(ApiAction)
        /// 获取当前收货单信息
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        [HttpPost]
        [Route("api/[controller]/In_U9Receipt/GetCurOrder")]
        public async Task<IActionResult> In_BIZ_U9_RECEIPT_GetCurOrderAsync([FromBody] ApiAction<BaseInput> action)
        {
            ApiAction response;
            IIn_BIZ_U9_RECEIPT trans = null;
            try
            {
                if (iBiz.WMS.Context.GetTransDic().ContainsKey(action.ID))
                {
                    trans = iBiz.WMS.Context.GetTransDic()[action.ID] as IIn_BIZ_U9_RECEIPT;
                    if (!trans.IsFinished)
                    {
                        if (action.IsAsync)
                        {
                            response = action.GetResponse(await trans.GetCurOrder());
                        }
                        else
                        {
                            lock (trans.TransLock) { response = action.GetResponse(trans.GetCurOrder().Result); }
                        }
                    }
                    else
                    {
                        response = action.GetResponse($"Transaction Error: 收货单(U9)上架事务[ID:{action.ID}]已经关闭,请重新打开收货单(U9)上架功能", false);
                    }
                }
                else
                {
                    response = action.GetResponse($"Transaction Error: 收货单(U9)上架事务[ID:{action.ID}]数据丢失,请重新打开收货单(U9)上架功能", false);
                }
            }
            catch (System.Exception ex)
            {
                response = action.GetResponse().CatchExceptionWithLog(ex);
            }
            trans?.AddHistory(Request, action);
            return Ok(response);
        }
    }
}
Tiger.IBusiness.WMS/Transaction/IIn_BIZ_U9_RECEIPT.cs
@@ -5,6 +5,7 @@
using System.Text;
using System.Threading.Tasks;
using Tiger.Model;
using Tiger.Model.MES.Yada;
namespace Tiger.IBusiness
{
@@ -20,6 +21,18 @@
        /// </summary>
        public Task<ApiAction<ScanOutput>> Scan(BaseInput input);
        /// <summary>
        ///  获取需要上架的收货单列表(带分页)
        /// </summary>
        /// <returns></returns>
        public Task<ApiAction<PageAble<BIZ_U9_RECEIPT>>> GetOrderList(BaseInputWithPage input);
        /// <summary>
        ///  获取当前收货单信息
        /// </summary>
        /// <returns></returns>
        public Task<ApiAction<BIZ_U9_RECEIPT>> GetCurOrder();
        public bool Close(bool needSaveHistoryLog = false);
    }
}
Tiger.Model.Net/Entitys/WMS/Api/Output_Entitys.cs
@@ -77,5 +77,6 @@
        public string RegionCode { get; set; }
        public string ShelfCode { get; set; }
        public string LocationCode { get; set; }
        public object OrderInfo { get; set; }
    }
}