服务端的TigerApi 框架,基于.NET6 2024 版本
已修改16个文件
已重命名2个文件
已添加2个文件
620 ■■■■ 文件已修改
Tiger.Business.WMS/Common/WmsTask.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/ERP/WMS_U9C.ApproveMaterialReqProdReturn.cs 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/ERP/WMS_U9C.ApproveMiscRcvTrans.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/ERP/WMS_U9C.ApproveMiscShip.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/ERP/WMS_U9C.ConfirmMaterialReqProdReturn.cs 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/ERP/WMS_U9C.CreateProdReturnOrder.cs 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/ERP/WMS_U9C.CreateTransferForm.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/ERP/WMS_U9C.CreateTransferIn.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/ERP/WMS_U9C.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/Extensions/Yada/OutExtension.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/Transaction/In_Default.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/Transaction/Out_Default.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/Transaction/WMSTransactionBase.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/Transaction/Yada/Out_BIZ_WMS_PREP.cs 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/Transaction/Yada/Print_BIZ_U9_ASN.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.IBusiness.WMS/iERP/IWMS_U9C.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN_DTL.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/Common/WmsTask.cs
@@ -794,6 +794,15 @@
        }
        #endregion Functions
        /// <summary>
        /// é‡ç½®æœ¬æ¬¡æ‰«ç ä¿¡æ¯
        /// </summary>
        public virtual void ResetScan()
        {
            //清理暂存数据提交操作
            DBCommitList.Clear();
        }
        public override bool Close(bool needSaveHistoryLog = false)
        {
            //needSaveHistoryLog = true;
Tiger.Business.WMS/ERP/WMS_U9C.ApproveMaterialReqProdReturn.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
using Tiger.Model;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using Rhea.Common;
using System.Net;
using System.Linq;
using Newtonsoft.Json;
using Tiger.IBusiness;
using Microsoft.AspNetCore.Http;
using Tiger.Model.Minsun;
using Org.BouncyCastle.Asn1.Tsp;
using Tiger.Model.Entitys.MES.Position;
using Apache.NMS.ActiveMQ.Commands;
using System.Security.Cryptography;
using System.Diagnostics;
using Tiger.Model.Entitys.MES.U9C;
using Newtonsoft.Json.Linq;
using System.Security.Policy;
using NetTaste;
namespace Tiger.Business.WMS
{
    public partial class WMS_U9C
    {
        /// <summary>
        /// é¢†æ–™å•退料单审核接口
        /// </summary>
        public static string ApproveReqReturnUrl
        { get; set; } = "http://172.16.80.20/u9c/webapi/IssueDoc/Approve"; // ApiConfig.IsTestServer ? Cache.SysParam["ApproveReqReturnUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["ApproveReqReturnUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/IssueDoc/Approve
        /// <summary>
        /// é¢†æ–™å•退料单审核接口
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task<ApiAction<List<U9CReturnData>>> ApproveReqReturn(ApproveReqReturnInput input)
        {
            Logger.Interface.Info($"/**\r\n *进入领料单退料单审核接口....\r\n */\r\n"); //固定写法
            var action = new ApiAction<List<U9CReturnData>>();
            try
            {
                //如果已经登录则不需要再次登录,直接使用传入的token
                if (input.IsLogin)
                {
                    var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={Reviewer}{secret}");
                    if (u9CLoginResult.Success)
                    {
                        input.token = u9CLoginResult.Data;
                        Logger.Interface.Info($"U9C登录token: {input.token}");
                    }
                }
                var response = await HttpHelper.PostAsync(ConfirmReqReturnUrl, JsonConvert.SerializeObject(input.ApproveReqReturnParams), new Dictionary<string, string>() { { "token", input.token } });
                var result = JsonConvert.DeserializeObject<U9CResult>(response.Message);
                if (result != null)
                {
                    if (result.Success && result.Data[0].m_isSucess)
                    {
                        action.Data = result.Data;
                        Logger.Interface.Info($"领料单退料单审核接口提交Json: {JsonConvert.SerializeObject(input.ApproveReqReturnParams)},返回Json: {response.Message}");
                    }
                    else
                    {
                        action.IsSuccessed = false;
                        action.LocaleMsg = new($"{action.Message}; {result.Data[0].m_errorMsg}");
                        Logger.Interface.Info($"领料单退料单审核接口失败:{result.Data[0].m_errorMsg},提交Json: {JsonConvert.SerializeObject(input.ApproveReqReturnParams)}");
                    }
                }
            }
            catch (System.Exception ex)
            {
                action.CatchExceptionWithLog(ex, "领料单/退料单发料/退料确认异常");
            }
            Logger.Interface.Info($"/* é¢†æ–™å•退料单审核接口结束 */\r\n"); //固定写法
            return action;
        }
    }
}
Tiger.Business.WMS/ERP/WMS_U9C.ApproveMiscRcvTrans.cs
ÎļþÃû´Ó Tiger.Business.WMS/ERP/WMS_U9C.CreateMiscRcvTrans.cs ÐÞ¸Ä
@@ -44,7 +44,7 @@
                //如果已经登录则不需要再次登录,直接使用传入的token
                if (input.IsLogin)
                {
                    var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}");
                    var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={Reviewer}{secret}");
                    if (u9CLoginResult.Success)
                    {
                        input.token = u9CLoginResult.Data;
Tiger.Business.WMS/ERP/WMS_U9C.ApproveMiscShip.cs
ÎļþÃû´Ó Tiger.Business.WMS/ERP/WMS_U9C.CreateMiscShip.cs ÐÞ¸Ä
@@ -44,7 +44,7 @@
                //如果已经登录则不需要再次登录,直接使用传入的token
                if (input.IsLogin)
                {
                    var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}");
                    var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={Reviewer}{secret}");
                    if (u9CLoginResult.Success)
                    {
                        input.token = u9CLoginResult.Data;
Tiger.Business.WMS/ERP/WMS_U9C.ConfirmMaterialReqProdReturn.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
using Tiger.Model;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using Rhea.Common;
using System.Net;
using System.Linq;
using Newtonsoft.Json;
using Tiger.IBusiness;
using Microsoft.AspNetCore.Http;
using Tiger.Model.Minsun;
using Org.BouncyCastle.Asn1.Tsp;
using Tiger.Model.Entitys.MES.Position;
using Apache.NMS.ActiveMQ.Commands;
using System.Security.Cryptography;
using System.Diagnostics;
using Tiger.Model.Entitys.MES.U9C;
using Newtonsoft.Json.Linq;
using System.Security.Policy;
using NetTaste;
namespace Tiger.Business.WMS
{
    public partial class WMS_U9C
    {
        /// <summary>
        /// é¢†æ–™å•/退料单 å‘æ–™/退料确认
        /// </summary>
        public static string ConfirmReqReturnUrl
        { get; set; } = "http://172.16.80.20/u9c/webapi/IssueDoc/Confirm"; // ApiConfig.IsTestServer ? Cache.SysParam["ConfirmReqReturnUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["ConfirmReqReturnUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/IssueDoc/Confirm
        /// <summary>
        /// é¢†æ–™å•/退料单发料/退料确认
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task<ApiAction<List<U9CReturnData>>> ConfirmReqReturn(ConfirmReqReturnInput input)
        {
            Logger.Interface.Info($"/**\r\n *进入领料单/退料单发料/退料确认接口....\r\n */\r\n"); //固定写法
            var action = new ApiAction<List<U9CReturnData>>();
            try
            {
                //如果已经登录则不需要再次登录,直接使用传入的token
                if (input.IsLogin)
                {
                    var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}");
                    if (u9CLoginResult.Success)
                    {
                        input.token = u9CLoginResult.Data;
                        Logger.Interface.Info($"U9C登录token: {input.token}");
                    }
                }
                var response = await HttpHelper.PostAsync(ConfirmReqReturnUrl, JsonConvert.SerializeObject(input.ConfirmReqReturnParams), new Dictionary<string, string>() { { "token", input.token } });
                var result = JsonConvert.DeserializeObject<U9CResult>(response.Message);
                if (result != null)
                {
                    if (result.Success && result.Data[0].m_isSucess)
                    {
                        action.Data = result.Data;
                        Logger.Interface.Info($"领料单/退料单发料/退料确认接口提交Json: {JsonConvert.SerializeObject(input.ConfirmReqReturnParams)},返回Json: {response.Message}");
                    }
                    else
                    {
                        action.IsSuccessed = false;
                        action.LocaleMsg = new($"{action.Message}; {result.Data[0].m_errorMsg}");
                        Logger.Interface.Info($"领料单/退料单发料/退料确认接口失败:{result.Data[0].m_errorMsg},提交Json: {JsonConvert.SerializeObject(input.ConfirmReqReturnParams)}");
                    }
                }
            }
            catch (System.Exception ex)
            {
                action.CatchExceptionWithLog(ex, "领料单/退料单发料/退料确认异常");
            }
            Logger.Interface.Info($"/* é¢†æ–™å•/退料单发料/退料确认接口结束 */\r\n"); //固定写法
            return action;
        }
    }
}
Tiger.Business.WMS/ERP/WMS_U9C.CreateProdReturnOrder.cs
@@ -31,7 +31,7 @@
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task<ApiAction<List<U9CReturnData>>> CreateProdReturnOrder(CreateProdReturnOrderInput input) {
        public async Task<ApiAction<List<U9CReturnData>>> CreateProdReturnOrderNew(CreateProdReturnOrderNewInput input) {
            Logger.Interface.Info($"/**\r\n *进入创建生产退料单-按行退料接口....\r\n */\r\n"); //固定写法
            var action = new ApiAction<List<U9CReturnData>>();
            try
@@ -47,20 +47,20 @@
                    }
                }
                var response = await HttpHelper.PostAsync(CreateProdReturnOrderUrl, JsonConvert.SerializeObject(input.CreateProdReturnOrderParam), new Dictionary<string, string>() { { "token", input.token } });
                var response = await HttpHelper.PostAsync(CreateProdReturnOrderNewUrl, JsonConvert.SerializeObject(input.CreateProdReturnOrderNewParams), new Dictionary<string, string>() { { "token", input.token } });
                var result = JsonConvert.DeserializeObject<U9CResult>(response.Message);
                if (result != null)
                {
                    if (result.Success && result.Data[0].m_isSucess)
                    {
                        action.Data = result.Data;
                        Logger.Interface.Info($"创建生产退料单-按行退料接口提交Json: {JsonConvert.SerializeObject(input.CreateProdReturnOrderParam)},返回Json: {response.Message}");
                        Logger.Interface.Info($"创建生产退料单-按行退料接口提交Json: {JsonConvert.SerializeObject(input.CreateProdReturnOrderNewParams)},返回Json: {response.Message}");
                    }
                    else
                    {
                        action.IsSuccessed = false;
                        action.LocaleMsg = new($"{action.Message}; {result.Data[0].m_errorMsg}");
                        Logger.Interface.Info($"创建生产退料单-按行退料接口失败:{result.Data[0].m_errorMsg}");
                        Logger.Interface.Info($"创建生产退料单-按行退料接口失败:{result.Data[0].m_errorMsg},提交Json: {JsonConvert.SerializeObject(input.CreateProdReturnOrderNewParams)}");
                    }
                }
            }
@@ -71,5 +71,52 @@
            Logger.Interface.Info($"/* åˆ›å»ºç”Ÿäº§é€€æ–™å•-按行退料接口结束 */\r\n"); //固定写法
            return action;
        }
        /// <summary>
        /// åˆ›å»ºç”Ÿäº§é€€æ–™å•
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task<ApiAction<List<U9CReturnData>>> CreateProdReturnOrder(CreateProdReturnOrderInput input)
        {
            Logger.Interface.Info($"/**\r\n *进入创建生产退料单接口....\r\n */\r\n"); //固定写法
            var action = new ApiAction<List<U9CReturnData>>();
            try
            {
                //如果已经登录则不需要再次登录,直接使用传入的token
                if (input.IsLogin)
                {
                    var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}");
                    if (u9CLoginResult.Success)
                    {
                        input.token = u9CLoginResult.Data;
                        Logger.Interface.Info($"U9C登录token: {input.token}");
                    }
                }
                var response = await HttpHelper.PostAsync(CreateProdReturnOrderNewUrl, JsonConvert.SerializeObject(input.CreateProdReturnOrderParam), new Dictionary<string, string>() { { "token", input.token } });
                var result = JsonConvert.DeserializeObject<U9CResult>(response.Message);
                if (result != null)
                {
                    if (result.Success && result.Data[0].m_isSucess)
                    {
                        action.Data = result.Data;
                        Logger.Interface.Info($"创建生产退料单接口提交Json: {JsonConvert.SerializeObject(input.CreateProdReturnOrderParam)},返回Json: {response.Message}");
                    }
                    else
                    {
                        action.IsSuccessed = false;
                        action.LocaleMsg = new($"{action.Message}; {result.Data[0].m_errorMsg}");
                        Logger.Interface.Info($"创建生产退料单接口失败:{result.Data[0].m_errorMsg}");
                    }
                }
            }
            catch (System.Exception ex)
            {
                action.CatchExceptionWithLog(ex, "创建生产退料单异常");
            }
            Logger.Interface.Info($"/* åˆ›å»ºç”Ÿäº§é€€æ–™å•接口结束 */\r\n"); //固定写法
            return action;
        }
    }
}
Tiger.Business.WMS/ERP/WMS_U9C.CreateTransferForm.cs
@@ -167,7 +167,7 @@
                //如果已经登录则不需要再次登录,直接使用传入的token
                if (input.IsLogin)
                {
                    var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}");
                    var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={Reviewer}{secret}");
                    if (u9CLoginResult.Success)
                    {
                        input.token = u9CLoginResult.Data;
Tiger.Business.WMS/ERP/WMS_U9C.CreateTransferIn.cs
@@ -32,12 +32,12 @@
        { get; set; } = "http://172.16.80.20/u9c/webapi/TransferIn/Approve"; // ApiConfig.IsTestServer ? Cache.SysParam["TransferInApproveUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["TransferInApproveUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/TransferIn/Approve
        /// <summary>
        /// åˆ›å»ºç”Ÿäº§é€€æ–™å•-按行退料接口
        /// åˆ›å»ºè°ƒå…¥å•接口
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task<ApiAction<List<U9CReturnData>>> CreateTransferIn(CreateTransferInInput input) {
            Logger.Interface.Info($"/**\r\n *进入创建生产退料单-按行退料接口....\r\n */\r\n"); //固定写法
            Logger.Interface.Info($"/**\r\n *进入创建调入单接口....\r\n */\r\n"); //固定写法
            var action = new ApiAction<List<U9CReturnData>>();
            try
            {
@@ -59,21 +59,21 @@
                    if (result.Success && result.Data[0].m_isSucess)
                    {
                        action.Data = result.Data;
                        Logger.Interface.Info($"创建生产退料单-按行退料接口提交Json: {JsonConvert.SerializeObject(input.CreateTransferInParam)},返回Json: {response.Message}");
                        Logger.Interface.Info($"创建调入单接口提交Json: {JsonConvert.SerializeObject(input.CreateTransferInParam)},返回Json: {response.Message}");
                    }
                    else
                    {
                        action.IsSuccessed = false;
                        action.LocaleMsg = new($"{action.Message}; {result.Data[0].m_errorMsg}");
                        Logger.Interface.Info($"创建生产退料单-按行退料接口失败:{result.Data[0].m_errorMsg}");
                        Logger.Interface.Info($"创建调入单接口失败:{result.Data[0].m_errorMsg}");
                    }
                }
            }
            catch (System.Exception ex)
            {
                action.CatchExceptionWithLog(ex, "创建生产退料单-按行退料异常");
                action.CatchExceptionWithLog(ex, "创建调入单异常");
            }
            Logger.Interface.Info($"/* åˆ›å»ºç”Ÿäº§é€€æ–™å•-按行退料接口结束 */\r\n"); //固定写法
            Logger.Interface.Info($"/* åˆ›å»ºè°ƒå…¥å•接口结束 */\r\n"); //固定写法
            return action;
        }
@@ -90,12 +90,14 @@
            var action = new ApiAction<List<U9CReturnData2>>();
            try
            {
                action = await Submit(input);
                if (action.IsSuccessed)
                {
                    input.IsLogin = false;
                    action = await Approve(input);
                }
                //action = await Submit(input);
                //if (action.IsSuccessed)
                //{
                //    input.IsLogin = false;
                //    action = await Approve(input);
                //}
                action = await Approve(input);
            }
            catch (System.Exception ex)
            {
Tiger.Business.WMS/ERP/WMS_U9C.cs
@@ -18,6 +18,10 @@
        public static string U9CAuthLoginUrl { get; set; } = ApiConfig.IsTestServer ? Cache.SysParam["U9CAuthLoginUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["U9CAuthLoginUrl", "U9CUrl"].PARAM_VALUE; // "http://172.16.80.20/U9C/webapi/OAuth2/AuthLogin?"; æµ‹è¯•
        //public static string U9CAuthLoginUrl { get; set; } = Cache.SysParam["U9CAuthLoginUrl", "U9CUrl"].PARAM_VALUE; //正式
        public static string secret = "&entcode=02&orgcode=101&clientid=mes&clientsecret=12c8ee7e9bb74ad2a6a0fb3315c8af20";
        /// <summary>
        /// å®¡æ ¸äºº
        /// </summary>
        public static string Reviewer = Cache.SysParam["Reviewer", "U9CUrl"].PARAM_VALUE;
        public static string CreateRcvBySrcASNUrl
        { get; set; } = "http://172.16.80.20/U9C/webapi/Receivement/CreateRcvBySrcASN"; //ApiConfig.IsTestServer ? Cache.SysParam["CreateRcvBySrcASNUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateRcvBySrcASNUrl", "U9CUrl"].PARAM_VALUE;  //"http://172.16.80.20/U9C/webapi/Receivement/CreateRcvBySrcASN"; æµ‹è¯•
        public static string CreateReceivementUrl
@@ -26,14 +30,29 @@
        { get; set; } = "http://172.16.80.20/u9c/webapi/Receivement/SubmitLine";  // ApiConfig.IsTestServer ? Cache.SysParam["SubmitLineUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["SubmitLineUrl", "U9CUrl"].PARAM_VALUE;  //http://172.16.80.20/u9c/webapi/Receivement/SubmitLine; æµ‹è¯•
        public static string ApproveLineUrl
        { get; set; } = "http://172.16.80.20/u9c/webapi/Receivement/ApproveLine"; // ApiConfig.IsTestServer ? Cache.SysParam["ApproveLineUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["ApproveLineUrl", "U9CUrl"].PARAM_VALUE;  //http://172.16.80.20/u9c/webapi/Receivement/ApproveLine; æµ‹è¯•
        /// <summary>
        /// åˆ›å»ºç”Ÿäº§é¢†æ–™å•
        /// </summary>
        public static string CreateProdMaterialReqUrl
        { get; set; } = "http://172.16.80.20/u9c/webapi/IssueDoc/Create"; // ApiConfig.IsTestServer ? Cache.SysParam["CreateProdMaterialReqUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateProdMaterialReqUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/IssueDoc/Create
        public static string CreateProdReturnOrderUrl
        /// <summary>
        /// åˆ›å»ºç”Ÿäº§é€€æ–™å•-按行退料
        /// </summary>
        public static string CreateProdReturnOrderNewUrl
        { get; set; } = "http://172.16.80.20/u9c/webapi/IssueDoc/CreateRecedeIssueDocNew"; // ApiConfig.IsTestServer ? Cache.SysParam["CreateProdReturnOrderUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateProdReturnOrderUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/IssueDoc/CreateRecedeIssueDocNew
        /// <summary>
        /// åˆ›å»ºå§”外生产领料单
        /// </summary>
        public static string CreateOutProdMaterialReqUrl
        { get; set; } = "http://172.16.80.20/u9c/webapi/PMIssueDoc/Create"; // ApiConfig.IsTestServer ? Cache.SysParam["CreateOutProdMaterialReqUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateOutProdMaterialReqUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/PMIssueDoc/Create
        /// <summary>
        /// åˆ›å»ºå§”外生产退料单
        /// </summary>
        public static string CreateOutProdReturnOrderUrl
        { get; set; } = "http://172.16.80.20/u9c/webapi/PMIssueDoc/CreateRecedeIssueDoc"; // ApiConfig.IsTestServer ? Cache.SysParam["CreateOutProdReturnOrderUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateOutProdReturnOrderUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/PMIssueDoc/CreateRecedeIssueDoc
        /// <summary>
        /// åˆ›å»ºè°ƒå…¥å•
        /// </summary>
        public static string CreateTransferInUrl
        { get; set; } = "http://172.16.80.20/u9c/webapi/TransferIn/Create"; // ApiConfig.IsTestServer ? Cache.SysParam["CreateTransferInUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateTransferInUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/TransferIn/Create
@@ -232,7 +251,7 @@
                //如果已经登录则不需要再次登录,直接使用传入的token
                if (input.IsLogin)
                {
                    var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}");
                    var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={Reviewer}{secret}");
                    if (u9CLoginResult.Success)
                    {
                        input.token = u9CLoginResult.Data;
Tiger.Business.WMS/Extensions/Yada/OutExtension.cs
@@ -72,5 +72,43 @@
            }
            return pickList;
        }
        /// <summary>
        /// æ ¹æ®å‘料类型,调用相应发料单据的ERP接口
        /// </summary>
        /// <param name="type"></param>
        /// <param name="orderNo"></param>
        /// <param name="commitInput"></param>
        /// <returns></returns>
        public static List<BIZ_WMS_PREP_SRC_DTL> CommitToERP(this BIZ_WMS_PREP.BIZ_TYPEs type, string orderNo, object commitInput)
        {
            // æŸ¥è¯¢å•据明细
            var pickList = new List<BIZ_WMS_PREP_SRC_DTL>();
            switch (type)
            {
                case BIZ_WMS_PREP.BIZ_TYPEs.Others:
                    {
                        var dtls = Biz.Db.Queryable<BIZ_U9_MISC_OUT_DTL>().Where(q => q.ORDER_NO == orderNo).ToList();
                        pickList = dtls.Select(q => q.GetPickItem()).ToList();
                    }
                    break;
                case BIZ_WMS_PREP.BIZ_TYPEs.WorkOrder:
                    {
                        var dtls = Biz.DataSource["YadaU9C"].Client.Queryable<mes_MOPickList>().Where(q => q.MoDocNo == orderNo).ToList();
                        pickList = dtls.Select(q => q.GetPickItem()).ToList();
                    }
                    break;
                case BIZ_WMS_PREP.BIZ_TYPEs.Outsourcing:
                    {
                        var dtls = Biz.DataSource["YadaU9C"].Client.Queryable<mes_SCMPickList>().Where(q => q.PoDocNo == orderNo).ToList();
                        pickList = dtls.Select(q => q.GetPickItem()).ToList();
                    }
                    break;
                case BIZ_WMS_PREP.BIZ_TYPEs.Requisition:
                default:
                    break;
            }
            return pickList;
        }
    }
}
Tiger.Business.WMS/Transaction/In_Default.cs
@@ -65,7 +65,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"扫描[{input.SN}]异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.Scan.ScanException", input.SN));
            }
@@ -273,7 +273,7 @@
                    action.IsSuccessed = false;
                    //action.LocaleMsg = Biz.L("储位[{0}]只能存放一个物料");
                    action.LocaleMsg = Biz.L("WMS.Default.ScanItem.LocationSingleFailure", nLocation.LOCATION_CODE);
                    ResetScan();
                    ResetTrans();
                    return SetOutPutMqttMsg(action, input.Locale);
                }
@@ -293,7 +293,7 @@
                {
                    action.IsSuccessed = false;
                    action.LocaleMsg = putonResult.LocaleMsg;
                    ResetScan();
                    ResetTrans();
                    return SetOutPutMqttMsg(action, input.Locale);
                }
@@ -303,7 +303,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"扫描条码[{input.SN}]复核异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanItem.ScanException", input.SN));
            }
@@ -394,7 +394,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"扫描货架/储位[{0}]异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanShelf.ScanException", Code));
            }
@@ -442,11 +442,11 @@
        #endregion
        /// <summary>
        /// é‡ç½®å½“前操作,有需要则重写此方法
        /// é‡ç½®äº‹åŠ¡æ•°æ®ï¼Œæœ‰éœ€è¦åˆ™é‡å†™æ­¤æ–¹æ³•
        /// </summary>
        public override void ResetScan()
        public override void ResetTrans()
        {
            base.ResetScan();
            base.ResetTrans();
            ResetScanInfo();
            CurScanShelf = null;
        }
Tiger.Business.WMS/Transaction/Out_Default.cs
@@ -53,7 +53,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"扫描[{input.SN}]异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.Scan.ScanException", input.SN));
            }
@@ -163,7 +163,7 @@
                {
                    action.IsSuccessed = false;
                    action.LocaleMsg = downResult.LocaleMsg;
                    ResetScan();
                    ResetTrans();
                    return SetOutPutMqttMsg(action, input.Locale);
                }
@@ -178,7 +178,7 @@
            }
            catch (Exception ex)
            {
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"扫描条码[{input.SN}]复核异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanItem.ScanException", input.SN));
            }
@@ -262,7 +262,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"扫描货架/储位[{0}]异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanShelf.ScanException", Code));
            }
@@ -302,18 +302,18 @@
            action.LocaleMsg = Biz.L("WMS.Default.ScanItem.TakeDownSucceeded", CurInvItem.SN, CurInvItem.Location?.LOCATION_CODE);
            //重置工序
            ResetScan();
            ResetTrans();
            return SetOutPutMqttMsg(action, locale);
        }
        #endregion
        /// <summary>
        /// é‡ç½®å½“前操作,有需要则重写此方法
        /// é‡ç½®äº‹åŠ¡æ•°æ®ï¼Œæœ‰éœ€è¦åˆ™é‡å†™æ­¤æ–¹æ³•
        /// </summary>
        public override void ResetScan()
        public override void ResetTrans()
        {
            base.ResetScan();
            base.ResetTrans();
            Command = null;
            CurInvItem = null;
            CurScanShelf = null;
Tiger.Business.WMS/Transaction/WMSTransactionBase.cs
@@ -75,7 +75,7 @@
        {
            var action = new ApiAction();
            ResetScan();
            ResetTrans();
            action.IsSuccessed = true;
            //action.LocaleMsg = new($"操作已重置,请重新扫描");
            action.LocaleMsg = new("WMS.Transaction.Reset");
@@ -83,9 +83,9 @@
            return action;
        }
        /// <summary>
        /// é‡ç½®å½“前操作,有需要则重写此方法
        /// é‡ç½®äº‹åŠ¡æ•°æ®ï¼Œæœ‰éœ€è¦åˆ™é‡å†™æ­¤æ–¹æ³•
        /// </summary>
        public virtual void ResetScan()
        public virtual void ResetTrans()
        {
            ProcessingSn = null;
        }
Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs
@@ -67,7 +67,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"扫描[{input.SN}]异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.Scan.ScanException", input.SN));
            }
@@ -165,7 +165,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"扫描条码[{0}]复核异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanItem.ScanException", input.SN));
            }
@@ -194,7 +194,7 @@
            action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.CountSuccess", CurSn.First().SN);
            //重置工序
            ResetScan();
            ResetTrans();
            return SetOutPutMqttMsg(action, locale); ;
        }
@@ -570,15 +570,24 @@
        #endregion
        /// <summary>
        /// é‡ç½®å½“前操作,有需要则重写此方法
        /// é‡ç½®äº‹åŠ¡æ•°æ®ï¼Œæœ‰éœ€è¦åˆ™é‡å†™æ­¤æ–¹æ³•
        /// </summary>
        public override void ResetTrans()
        {
            ResetScan();
            CurScanShelf = null;
            base.ResetTrans();
        }
        /// <summary>
        /// é‡ç½®æœ¬æ¬¡æ‰«ç ä¿¡æ¯
        /// </summary>
        public override void ResetScan()
        {
            base.ResetScan();
            Command = null;
            Command = "Normal";
            CurInvItem = null;
            CurScanShelf = null;
            CurSn = null;
            base.ResetScan();
        }
        public override bool Close(bool needSaveHistoryLog = false)
Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs
@@ -63,7 +63,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"扫描[{input.SN}]异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.Scan.ScanException", input.SN));
            }
@@ -192,7 +192,7 @@
                    action.IsSuccessed = false;
                    //action.LocaleMsg = Biz.L("储位[{0}]只能存放一个物料");
                    action.LocaleMsg = Biz.L("WMS.Default.ScanItem.LocationSingleFailure", nLocation.LOCATION_CODE);
                    ResetScan();
                    ResetTrans();
                    return SetOutPutMqttMsg(action, input.Locale);
                }
@@ -223,7 +223,7 @@
                {
                    action.IsSuccessed = false;
                    action.LocaleMsg = putonResult.LocaleMsg;
                    ResetScan();
                    ResetTrans();
                    return SetOutPutMqttMsg(action, input.Locale);
                }
@@ -234,53 +234,51 @@
                    sn.IS_IN = "Y";
                }
                //如果当前行上架完成标记为待审核
                Action approveAction = null;
                receiptDtl.QTY_IN = receipt.SnList.Where(q => q.LINE_NO == receiptDtl.LINE_NO && q.STATUS == WMS_ITEM.STATUSs.InStore.GetValue()).Sum(q => q.QTY);
                if (receiptDtl.QTY_IN == receiptDtl.QTY_OK)
                {
                    receiptDtl.STATUS = BIZ_U9_RECEIPT.STATUSs.Review.GetValue();
                    //当前单据明细已经全部上架完成,可以调用U9行审接口
                    approveAction = () =>
                    //当前单据明细行已经全部上架完成,可以调用U9行审接口,如果行审失败则报错,最后一个上架失败
                    var iInput = new SubmitLineInput
                    {
                        var iInput = new SubmitLineInput
                        userId = UserCode,
                        IsLogin = true,
                        param = new()
                        {
                            userId = UserCode,
                            IsLogin = true,
                            param = new()
                            {
                                RcvLineID = receiptDtl.ID,
                                RcvDocNo = receiptDtl.ORDER_NO,
                                DocLineNo = receiptDtl.LINE_NO,
                                OrgCode = receiptDtl.AUTH_ORG,
                            }
                        };
                        var result = DI.Resolve<IWMS_U9C>().ReceivementApproveLine(iInput).Result;
                        if (!result.IsSuccessed)
                        {
                            throw new Exception(Biz.T(result.LocaleMsg, input.Locale));
                        }
                        else
                        {
                            //更新单据信息
                            MainDB.Updateable<BIZ_U9_RECEIPT_DTL>().SetColumns(q => q.STATUS == BIZ_U9_RECEIPT.STATUSs.Finished.GetValue()).Where(q => q.ID == receiptDtl.ID).ExecuteCommand();
                            if (!MainDB.Queryable<BIZ_U9_RECEIPT_DTL>().Any(q => q.STATUS < BIZ_U9_RECEIPT.STATUSs.Finished.GetValue() && q.ORDER_NO == receipt.ORDER_NO))
                            {
                                MainDB.Updateable<BIZ_U9_RECEIPT>().SetColumns(q => q.STATUS == BIZ_U9_RECEIPT.STATUSs.Finished.GetValue()).Where(q => q.ID == receipt.ID).ExecuteCommand();
                            }
                            RcvLineID = receiptDtl.ID,
                            RcvDocNo = receiptDtl.ORDER_NO,
                            DocLineNo = receiptDtl.LINE_NO,
                            OrgCode = receiptDtl.AUTH_ORG,
                        }
                    };
                    var result = await DI.Resolve<IWMS_U9C>().ReceivementApproveLine(iInput);
                    if (!result.IsSuccessed)
                    {
                        action.IsSuccessed = false;
                        action.LocaleMsg = result.LocaleMsg;
                        return SetOutPutMqttMsg(action, input.Locale);
                    }
                    else
                    {
                        receiptDtl.STATUS = BIZ_U9_RECEIPT.STATUSs.Finished.GetValue();
                    }
                }
                else
                {
                    receiptDtl.STATUS = BIZ_U9_RECEIPT.STATUSs.Storing.GetValue();
                }
                //更新单据状态
                if (receipt.Details.Any(q => q.STATUS < BIZ_U9_RECEIPT.STATUSs.Review.GetValue()))
                {
                    receipt.STATUS = BIZ_U9_RECEIPT.STATUSs.Storing.GetValue();
                }
                else
                else if (receipt.Details.Any(q => q.STATUS < BIZ_U9_RECEIPT.STATUSs.Finished.GetValue()))
                {
                    receipt.STATUS = BIZ_U9_RECEIPT.STATUSs.Review.GetValue();
                }
                else
                {
                    receipt.STATUS = BIZ_U9_RECEIPT.STATUSs.Finished.GetValue();
                }
                //创建变量克隆对象用于传入DBSubmitAction中保存当前需要暂存的数据值
@@ -296,12 +294,12 @@
                });
                //完成所有处理后使用事务保存数据
                action = DoIfFinish(action, input.Locale, approveAction);
                action = DoIfFinish(action, input.Locale);
            }
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"扫描条码[{input.SN}]复核异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanItem.ScanException", input.SN));
            }
@@ -392,7 +390,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"扫描货架/储位[{0}]异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanShelf.ScanException", Code));
            }
@@ -433,29 +431,30 @@
            action.LocaleMsg = Biz.L("WMS.Default.ScanItem.PutOnSucceeded", CurInvItem.SN, CurInvItem.Location.LOCATION_CODE);
            //重置工序
            ResetScanInfo();
            ResetScan();
            return SetOutPutMqttMsg(action, locale);
        }
        #endregion
        /// <summary>
        /// é‡ç½®å½“前操作,有需要则重写此方法
        /// é‡ç½®äº‹åŠ¡æ•°æ®ï¼Œæœ‰éœ€è¦åˆ™é‡å†™æ­¤æ–¹æ³•
        /// </summary>
        public override void ResetScan()
        public override void ResetTrans()
        {
            base.ResetScan();
            ResetScanInfo();
            ResetScan();
            CurScanShelf = null;
            base.ResetTrans();
        }
        /// <summary>
        /// é‡ç½®æ‰«ç ä¿¡æ¯
        /// é‡ç½®æœ¬æ¬¡æ‰«ç ä¿¡æ¯
        /// </summary>
        public void ResetScanInfo()
        public override void ResetScan()
        {
            Command = null;
            Command = "Normal";
            CurInvItem = null;
            base.ResetScan();
        }
        public override bool Close(bool needSaveHistoryLog = false)
Tiger.Business.WMS/Transaction/Yada/Out_BIZ_WMS_PREP.cs
@@ -95,7 +95,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"扫描[{input.SN}]异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.Scan.ScanException", input.SN));
            }
@@ -141,7 +141,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"备料任务扫描单据异常(Data: {0})");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Out_BIZ_WMS_PREP.ScanOrderException", input?.Data));
            }
@@ -272,7 +272,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"备料任务选择要物料行异常(Data: {0})");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Out_BIZ_WMS_PREP.SelectItemException", input?.Data));
            }
@@ -581,7 +581,7 @@
                {
                    action.IsSuccessed = false;
                    action.LocaleMsg = downResult.LocaleMsg;
                    ResetScanInfo();
                    ResetScan();
                    return SetOutPutMqttMsg(action, input.Locale);
                }
                else//处理备料任务数据
@@ -632,9 +632,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                //清理暂存数据提交操作
                DBCommitList.Clear();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"扫描条码[{input.SN}]复核异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanItem.ScanException", input.SN));
            }
@@ -735,7 +733,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"扫描货架/储位[{0}]异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanShelf.ScanException", Code));
            }
@@ -775,30 +773,33 @@
            action.LocaleMsg = Biz.L("WMS.Default.ScanItem.TakeDownSucceeded", CurInvItem.SN, CurInvItem.Location?.LOCATION_CODE);
            //重置工序
            ResetScanInfo();
            ResetScan();
            return SetOutPutMqttMsg(action, locale);
        }
        #endregion
        /// <summary>
        /// é‡ç½®å½“前操作,有需要则重写此方法
        /// é‡ç½®äº‹åŠ¡æ•°æ®ï¼Œæœ‰éœ€è¦åˆ™é‡å†™æ­¤æ–¹æ³•
        /// </summary>
        public override void ResetScan()
        public override void ResetTrans()
        {
            base.ResetScan();
            ResetScanInfo();
            ResetScan();
            CurPREP = new(MainDB, UserCode, OrgCode);
            CurPrepDtl = new();
            CurScanShelf = null;
            base.ResetTrans();
        }
        /// <summary>
        /// é‡ç½®æ‰«ç ä¿¡æ¯
        /// é‡ç½®æœ¬æ¬¡æ‰«ç ä¿¡æ¯
        /// </summary>
        public void ResetScanInfo()
        public override void ResetScan()
        {
            Command = "Normal";
            CurInvItem = null;
            CurSn = new();
            base.ResetScan();
        }
        public override bool Close(bool needSaveHistoryLog = false)
Tiger.Business.WMS/Transaction/Yada/Print_BIZ_U9_ASN.cs
@@ -78,7 +78,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                //action.CatchExceptionWithLog(ex, $"扫描[{input.SN}]异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.Scan.ScanException", input.SN));
            }
@@ -107,7 +107,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.Scan.ScanException", input.SN));
            }
            return SetOutPutMqttMsg(action, input.Locale);
@@ -229,7 +229,7 @@
            catch (Exception ex)
            {
                //取消当前操作
                ResetScan();
                ResetTrans();
                action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.Scan.ScanException", input.SN));
            }
            return SetOutPutMqttMsg(action, input.Locale);
@@ -490,18 +490,18 @@
            action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.CountSuccess", string.Join(",", SnList));
            //重置工序
            ResetScan();
            ResetTrans();
            return SetOutPutMqttMsg(action, locale); ;
        }
        #endregion
        /// <summary>
        /// é‡ç½®å½“前操作,有需要则重写此方法
        /// é‡ç½®äº‹åŠ¡æ•°æ®ï¼Œæœ‰éœ€è¦åˆ™é‡å†™æ­¤æ–¹æ³•
        /// </summary>
        public override void ResetScan()
        public override void ResetTrans()
        {
            base.ResetScan();
            base.ResetTrans();
            Command = null;
            CurInvItem = null;
            CurScanShelf = null;
Tiger.IBusiness.WMS/iERP/IWMS_U9C.cs
@@ -17,8 +17,10 @@
        public Task<ApiAction<List<U9CReturnData2>>> ReceivementApproveLine(SubmitLineInput input);
        public Task<ApiAction<List<U9CReturnData>>> CreateProdMaterialReq(CreateProdMaterialReqInput input);
        public Task<ApiAction<List<U9CReturnData>>> CreateProdReturnOrder(CreateProdReturnOrderInput input);
        public Task<ApiAction<List<U9CReturnData>>> CreateProdReturnOrderNew(CreateProdReturnOrderNewInput input);
        public Task<ApiAction<List<U9CReturnData>>> CreateOutProdMaterialReq(CreateOutProdMaterialReqInput input);
        public Task<ApiAction<List<U9CReturnData>>> CreateOutProdReturnOrder(CreateOutProdReturnOrderInput input);
        public Task<ApiAction<List<U9CReturnData>>> ConfirmReqReturn(ConfirmReqReturnInput input);
        public Task<ApiAction<List<U9CReturnData>>> CreateTransferForm(CreateTransferFormInput input);
        public Task<ApiAction<List<U9CReturnData2>>> TransferFormApprove(TransferFormSubmitInput input);
        public Task<ApiAction<List<U9CReturnData>>> CreateTransferIn(CreateTransferInInput input);
Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs
@@ -504,12 +504,12 @@
    #endregion
    #region åˆ›å»ºç”Ÿäº§é€€æ–™å•-按行退料接口
    public class CreateProdReturnOrderInput : U9CBaseInput
    public class CreateProdReturnOrderNewInput : U9CBaseInput
    {
        public List<CreateProdReturnOrderParam> CreateProdReturnOrderParam { get; set; }
        public List<CreateProdReturnOrderNewParam> CreateProdReturnOrderNewParams { get; set; }
    }
    public class CreateProdReturnOrderParam
    public class CreateProdReturnOrderNewParam
    {
        public List<RecedeItemAndSnDTOList> RecedeItemAndSnDTOList { get; set; }
        public bool IsAutoIssued { get; set; }
@@ -524,6 +524,50 @@
        public double IssueLineNum { get; set; }
    }
    #endregion
    #region åˆ›å»ºç”Ÿäº§é€€æ–™å•
    public class CreateProdReturnOrderInput : U9CBaseInput
    {
        public List<CreateProdReturnOrderParam> CreateProdReturnOrderParam { get; set; }
    }
    public class CreateProdReturnOrderParam
    {
        /// <summary>
        /// ç‰©æ–™ç¼–码
        /// </summary>
        public string ItemCode { get; set; }
        /// <summary>
        /// å¤‡æ–™è¡¨ID
        /// </summary>
        public string PickID { get; set; }
        /// <summary>
        /// é€€æ–™æ•°é‡
        /// </summary>
        public double RecedeQty { get; set; }
        /// <summary>
        /// é€€æ–™ç†ç”± 0 å€’扣退料  1委外退料  2挪料退料 3领料建议退料 4假退料  5盘点差异退料  6跨期间反开工退料
        /// </summary>
        public int RecedeReason { get; set; }
        /// <summary>
        /// é¢†æ–™å•行ID
        /// </summary>
        public double IssueDocLine { get; set; }
        /// <summary>
        /// æ‰¹å·
        /// </summary>
        public string LotNo { get; set; }
        /// <summary>
        /// è‡ªåŠ¨æ‰£æ–™ é»˜è®¤ false
        /// </summary>
        public bool IsAutoIssued { get; set; } = false;
        public string OtherID { get; set; } = "WMS";
        /// <summary>
        /// çŠ¶æ€ 1为提交状态
        /// </summary>
        public int DocStatus { get; set; }
    }
    #endregion
    #region åˆ›å»ºå§”外生产领料单
@@ -628,6 +672,39 @@
    #endregion
    #region  é¢†æ–™å•/退料单发料/退料确认
    public class ConfirmReqReturnInput : U9CBaseInput
    {
        public List<ConfirmReqReturnParam> ConfirmReqReturnParams { get; set; }
    }
    public class ConfirmReqReturnParam
    {
        /// <summary>
        /// é¢†æ–™å•/退料单号
        /// </summary>
        public string DocNo { get; set; }
        public bool IsSucceed { get; set; } = true;
        public string ErrorMsg { get; set; }
        public bool OperateType { get; set; } = true;
        public string OtherID { get; set; } = "WMS";
        public bool IsNotNewTransaction { get; set; } = true;
        public bool IsAutoApp { get; set; } = true;
    }
    #endregion
    #region  é¢†æ–™å•退料单审核接口
    public class ApproveReqReturnInput : U9CBaseInput
    {
        public List<ApproveReqReturnParam> ApproveReqReturnParams { get; set; }
    }
    public class ApproveReqReturnParam: ConfirmReqReturnParam
    {
    }
    #endregion
    #region åˆ›å»ºè°ƒå…¥å•
    public class CreateTransferInInput : U9CBaseInput
    {
Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN_DTL.cs
@@ -119,6 +119,31 @@
        [DisplayName("采购数量")]
        public double PO_QTY { get; set; }
        /// <summary>
        /// æ”¶è´§å•ID
        /// </summary>
        [DisplayName("收货单ID")]
        public string RECEIVER_ID { get; set; }
        /// <summary>
        /// æ”¶è´§å•号
        /// </summary>
        [DisplayName("收货单号")]
        public string RECEIVER_NO { get; set; }
        /// <summary>
        /// æ”¶è´§å•行号
        /// </summary>
        [DisplayName("收货单行号")]
        public string RECEIVER_LINE { get; set; }
        /// <summary>
        /// æ”¶è´§äºº
        /// </summary>
        [DisplayName("收货人")]
        public string RECEIVER { get; set; }
        /// <summary>
        /// æ”¶è´§æ—¥æœŸ
        /// </summary>
        [DisplayName("收货日期")]
        public DateTime RECEIVE_DATE { get; set; } = DateTime.MinValue;
        /// <summary>
        /// é€æ£€å•ID
        /// </summary>
        [DisplayName("送检单ID")]