服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2025-03-09 7320ad025a920fb52633e344fe1ce5ae2d612bfd
雅达-新增生产退料单接口及相关类

在 `WMS_U9C.cs` 文件中,新增 `CreateTransferIn` 方法,用于创建生产退料单的接口,包含输入参数处理、登录验证、API 调用及结果处理逻辑。同时,新增了 `CreateTransferInInput`、`CreateTransferInParam`、`TransInLines`、`ItemEntity` 和 `TransInSubLines` 等类,增强系统功能。

在 `U9CParameter.cs` 文件中,进行了多处代码修改和优化,新增类、属性和注释,调整部分属性的默认值,提高代码可读性和可维护性。

这些更改扩展了系统功能,特别是在处理生产退料和调入单的相关操作上,提供了更清晰和结构化的代码实现。
已修改2个文件
已添加1个文件
439 ■■■■■ 文件已修改
Tiger.Business.WMS/ERP/WMS_U9C.CreateTransferIn.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/ERP/WMS_U9C.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs 362 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/ERP/WMS_U9C.CreateTransferIn.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
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>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task<ApiAction<List<U9CReturnData>>> CreateTransferIn(CreateTransferInInput 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(CreateTransferInUrl, JsonConvert.SerializeObject(input.CreateTransferInParam), 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.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}");
                    }
                }
            }
            catch (System.Exception ex)
            {
                action.CatchExceptionWithLog(ex, "创建生产退料单-按行退料异常");
            }
            Logger.Interface.Info($"/* åˆ›å»ºç”Ÿäº§é€€æ–™å•-按行退料接口结束 */\r\n"); //固定写法
            return action;
        }
    }
}
Tiger.Business.WMS/ERP/WMS_U9C.cs
@@ -45,6 +45,8 @@
        { get; set; } = ApiConfig.IsTestServer ? Cache.SysParam["CreateOutProdMaterialReqUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateOutProdMaterialReqUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/PMIssueDoc/Create
        public static string CreateOutProdReturnOrderUrl
        { get; set; } = ApiConfig.IsTestServer ? Cache.SysParam["CreateOutProdReturnOrderUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateOutProdReturnOrderUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/PMIssueDoc/CreateRecedeIssueDoc
        public static string CreateTransferInUrl
        { get; set; } = ApiConfig.IsTestServer ? Cache.SysParam["CreateTransferInUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateTransferInUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/TransferIn/Create
        /// <summary>
        /// æ–°å¢žæ”¶è´§å•-来源ASN单接口
Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs
@@ -54,6 +54,19 @@
        public bool IsLogin { get; set; }
    }
    public class IssueUOM : BaseCode { }
    public class POLine : BaseCode
    {
    }
    public class IssueBin
    {
        public string code { get; set; }
    }
    public class Lot : IssueBin
    {
    }
    #region å…¥åº“单接口
    /// <summary>
    /// å…¥åº“单接口传入参数
@@ -102,7 +115,7 @@
    public class RcvRptDocCreateParam
    {
       public List<CompleteList> CompleteList { get; set; }
        public List<CompleteList> CompleteList { get; set; }
        public string Remark { get; set; }
        public DateTime BusinessDate { get; set; }
    }
@@ -119,7 +132,7 @@
        public int DocState { get; set; } = 1;
    }
    public class BarcodeCreateInput: U9CBaseInput
    public class BarcodeCreateInput : U9CBaseInput
    {
        public string RevDocId { get; set; }
        public string RevDocLineId { get; set; }
@@ -142,7 +155,7 @@
    #endregion
    #region åŠæˆå“æ¡ç ç”Ÿæˆ
    public class BarcodeCreateByAssignQtyInput: BarcodeCreateInput
    public class BarcodeCreateByAssignQtyInput : BarcodeCreateInput
    {
        /// <summary>
        /// å…¥åº“单行总数量
@@ -179,7 +192,8 @@
        public BarcodeCreateByAssignQtyData Data { get; set; }
    }
    public class BarcodeCreateByAssignQtyData     {
    public class BarcodeCreateByAssignQtyData
    {
        public string ErrorMessage { get; set; }
        public string OtherID { get; set; }
        public string CreatedBarCodes { get; set; }
@@ -187,17 +201,20 @@
        public List<string> Data { get; set; }
    }
    public class BaseCode
    {
        public string Code { get; set; }
    }
    public class MOKey
    {
        public string DocNo { get; set; }
    }
    public class Wh
    public class Wh : BaseCode
    {
        public string Code { get; set; }
    }
    public class Item
    public class Item : BaseCode
    {
        public string Code { get; set; }
    }
    public class DescFlexField
    {
@@ -212,21 +229,34 @@
        public string OtherID { get; set; } = "WMS";
    }
    public class ASNToRcvTransDTO {
    public class ASNToRcvTransDTO
    {
        public TransQty TransQty { get; set; }
        public string ASNLineKey { get; set; }
    }
    public class TransQty
    {
        /// <summary>
        /// æœ¬æ¬¡æ”¶è´§æ•°é‡1
        /// </summary>
        public string m_amount1 { get; set; }
        public m_uOM1 m_uOM1 { get; set; }
    }
    public class m_uOM1
    {
        /// <summary>
        /// å•位id
        /// </summary>
        public UOMMain_SKey UOMMain_SKey { get; set; }
        /// <summary>
        /// å•位id
        /// </summary>
        public string UOMMain { get; set; }
        /// <summary>
        /// å•位id
        /// </summary>
        public UOMSub_SKey UOMSub_SKey { get; set; }
    }
@@ -243,12 +273,12 @@
    /// <summary>
    /// æ–°å¢žæ”¶è´§å•接口-传入参数
    /// </summary>
    public class CreateRcvBySrcASNInput: U9CBaseInput
    public class CreateRcvBySrcASNInput : U9CBaseInput
    {
        /// <summary>
        /// å½“前收货数量 - m_amount1
        /// </summary>
        public string CurRevQty { get; set; }
        public string CurRevQty { get; set; }
        /// <summary>
        /// ASN单行ID
        /// </summary>
@@ -267,18 +297,29 @@
    }
    public class RcvDTO {
    public class RcvDTO
    {
        /// <summary>
        /// æ—¥æœŸ
        /// </summary>
        public DateTime BusinessDate { get; set; }
        /// <summary>
        /// ä¾›åº”商
        /// </summary>
        public Supplier Supplier { get; set; }
        /// <summary>
        /// å•据类型:有ASN单传RCV01,没有ASN单赠品传RCV03
        /// </summary>
        public RcvDocType RcvDocType { get; set; }
        public List<RcvLine> RcvLines { get; set; }
        public bool IsRcvByChangeable { get; set; }
        public bool IsPriceListChangeable { get; set; }
        public bool IsConfirmTermChangeable { get; set; }
        public bool IsPaymentTermChangeable { get; set; }
        public bool IsLineApprove { get; set; }
        public bool IsRcvByChangeable { get; set; } = true;
        public bool IsPriceListChangeable { get; set; } = true;
        public bool IsConfirmTermChangeable { get; set; } = true;
        public bool IsPaymentTermChangeable { get; set; } = true;
        public bool IsLineApprove { get; set; } = true;
    }
    public class Supplier {
    public class Supplier
    {
        public string m_code { get; set; }
    }
    public class RcvDocType
@@ -287,18 +328,48 @@
    }
    public class RcvLine
    {
        public bool IsPresent { get; set; }
        /// <summary>
        /// æ˜¯å¦èµ å“ä¸€èˆ¬å›ºå®šä¼ true
        /// </summary>
        public bool IsPresent { get; set; } = true;
        public ItemInfo ItemInfo { get; set; }
        public Wh2 Wh { get; set; }
        public List<RcvLineLocation> RcvLineLocations { get; set; }
        /// <summary>
        /// å®žåˆ°æ•°é‡1
        /// </summary>
        public double ArriveQtyTU { get; set; }
        /// <summary>
        /// å®žåˆ°æ•°é‡
        /// </summary>
        public double ArriveQtyPU { get; set; }
        /// <summary>
        /// å®žæ”¶æ•°é‡1
        /// </summary>
        public double RcvQtyTU { get; set; }
        /// <summary>
        /// å®žæ”¶æ•°é‡
        /// </summary>
        public double RcvQtyPU { get; set; }
        /// <summary>
        /// ç‚¹æ”¶æ•°é‡1
        /// </summary>
        public double EyeballingQtyTU { get; set; }
        /// <summary>
        /// æ”¶è´§ç¨‹åºæŸ¥è¯¢æ–™å“è§†å›¾ReceiptMode得出
        /// </summary>
        public double RcvProcedure { get; set; }
        public double StorageType { get; set; }
        /// <summary>
        /// å­˜å‚¨ç±»åž‹å›ºå®šä¼ 4
        /// </summary>
        public double StorageType { get; set; } = 4;
        /// <summary>
        /// æ”¶è´§æ‰¹å·æœ‰asn单则带出里面批次,无asn单则按年月日生成8位批号
        /// </summary>
        public string RcvLotCode { get; set; }
        /// <summary>
        /// åº“存批号有asn单则带出里面批次,无asn单则按年月日生成8位批号
        /// </summary>
        public string InvLotCode { get; set; }
    }
@@ -332,10 +403,22 @@
    }
    public class SubmitLineInputParam
    {
        /// <summary>
        /// æ”¶è´§å•行ID
        /// </summary>
        public string RcvLineID { get; set; }
        public string OtherID { get; set; } = "WMS";
        /// <summary>
        /// æ”¶è´§å•号
        /// </summary>
        public string RcvDocNo { get; set; }
        /// <summary>
        /// æ”¶è´§å•行号
        /// </summary>
        public string DocLineNo { get; set; }
        /// <summary>
        /// ç»„织编码
        /// </summary>
        public string OrgCode { get; set; }
    }
@@ -349,27 +432,70 @@
    public class CreateProdMaterialReqParam
    {
        public List<object> MOs { get; set; }
        /// <summary>
        /// ç”Ÿäº§è®¢å•编码
        /// </summary>
        public MOs MOs { get; set; }
        /// <summary>
        /// é¢†æ–™å•行集合
        /// </summary>
        public List<PickListDTOs> PickListDTOs { get; set; }
        /// <summary>
        /// ä¸šåŠ¡ç±»åž‹æ ¹æ®ç”Ÿäº§è®¢å•è§†å›¾æŸ¥è¯¢BusinessType得出
        /// </summary>
        public int BusinessType { get; set; }
        public int IssueType { get; set; }
        public int DocStatus { get; set; }
        /// <summary>
        /// æ”¶å‘类别默认传0发料
        /// </summary>
        public int IssueType { get; set; } = 0;
        /// <summary>
        /// å•据状态默认传3为创建即关闭
        /// </summary>
        public int DocStatus { get; set; } = 3;
        public string OtherID { get; set; } = "WMS";
    }
    public class PickListDTOs
    {
        public List<object> MOs { get; set; }
        public List<object> Item { get; set; }
        public List<object> IssueWh { get; set; }
        public List<object> IssueBin { get; set; }
        /// <summary>
        /// é¢†æ–™å•料品
        /// </summary>
        public Item Item { get; set; }
        /// <summary>
        /// å‘料仓库
        /// </summary>
        public Wh IssueWh { get; set; }
        /// <summary>
        /// å‘料储位
        /// </summary>
        public IssueBin IssueBin { get; set; }
        /// <summary>
        /// å®žå‘数量
        /// </summary>
        public double IssuedQty { get; set; }
        /// <summary>
        /// åº”发数量
        /// </summary>
        public double IssueQty { get; set; }
        public List<object> IssueUOM { get; set; }
        /// <summary>
        /// å‘料单位取备料表的发料单位IssueUOM
        /// </summary>
        public IssueUOM IssueUOM { get; set; }
        /// <summary>
        /// å¤‡æ–™è¡¨è¡ŒID
        /// </summary>
        public string MOPickList { get; set; }
        public List<object> Lot { get; set; }
        public int StorageType { get; set; }
        /// <summary>
        /// å‘料批次
        /// </summary>
        public Lot Lot { get; set; }
        /// <summary>
        /// ä½¿ç”¨çŠ¶æ€å›ºå®šä¼ 4
        /// </summary>
        public int StorageType { get; set; } = 4;
    }
    public class MOs : BaseCode { }
    #endregion
    #region åˆ›å»ºç”Ÿäº§é€€æ–™å•-按行退料接口
@@ -402,25 +528,67 @@
    }
    public class CreateOutProdMaterialReqParam
    {
        public List<object> POLine { get; set; }
        /// <summary>
        /// å•据状态固定传3直接扣账
        /// </summary>
        public int DocStatus { get; set; } = 3;
        /// <summary>
        /// å¤–协采购订单号
        /// </summary>
        public List<POLine> POLine { get; set; }
        /// <summary>
        /// ä¸šåŠ¡æ—¥æœŸ
        /// </summary>
        public DateTime BusinessDate { get; set; }
        /// <summary>
        /// é¢†æ–™è¡Œé›†åˆ
        /// </summary>
        public List<PickListDTOs2> PickListDTOs { get; set; }
        public int BusinessType { get; set; }
        /// <summary>
        /// å›ºå®šä¼ 326即全程委外
        /// </summary>
        public int BusinessType { get; set; } = 326;
        /// <summary>
        /// å‘料单确认时间
        /// </summary>
        public string BusinessCreatedOn { get; set; }
        public int DocStatus { get; set; }
        public string OtherID { get; set; } = "WMS";
    }
    public class PickListDTOs2
    {
        public List<object> Item { get; set; }
        public List<object> IssueWh { get; set; }
        public List<object> IssueBin { get; set; }
        /// <summary>
        /// æ–™å“ç¼–码
        /// </summary>
        public Item Item { get; set; }
        /// <summary>
        /// é¢†æ–™ä»“库
        /// </summary>
        public Wh IssueWh { get; set; }
        /// <summary>
        /// é¢†æ–™å‚¨ä½
        /// </summary>
        public IssueBin IssueBin { get; set; }
        /// <summary>
        /// å®žå‘数量
        /// </summary>
        public double IssuedQty { get; set; }
        /// <summary>
        /// åº”发数量
        /// </summary>
        public double IssueQty { get; set; }
        public List<object> IssueUOM { get; set; }
        /// <summary>
        /// å‘料单位取备料表的发料单位IssueUOM
        /// </summary>
        public IssueUOM IssueUOM { get; set; }
        /// <summary>
        /// å§”外订单备料表行ID
        /// </summary>
        public string SCMOPickList { get; set; }
        public List<object> Lot { get; set; }
        /// <summary>
        /// å‘料批次
        /// </summary>
        public Lot Lot { get; set; }
    }
    #endregion
@@ -431,14 +599,122 @@
    }
    public class CreateOutProdReturnOrderParam
    {
        public List<object> POLine { get; set; }
        public DateTime BusinessDate { get; set; }
        public List<PickListDTOs2> PickListDTOs { get; set; }
        public int BusinessType { get; set; }
        public string BusinessCreatedOn { get; set; }
        /// <summary>
        /// æ–™å“
        /// </summary>
        public string ItemCode { get; set; }
        /// <summary>
        /// é€€æ–™æ•°é‡
        /// </summary>
        public double RecedeQty { get; set; }
        public bool IsAutoIssued { get; set; } = true;
        public bool IsCheckQty { get; set; } = true;
        public int DocStatus { get; set; }
        /// <summary>
        /// å§”外领料单号
        /// </summary>
        public string PMIssueDocNo { get; set; }
        /// <summary>
        /// å§”外领料单行号
        /// </summary>
        public double IssueLineNum { get; set; }
        public string OtherID { get; set; } = "WMS";
    }
    #endregion
    #region åˆ›å»ºè°ƒå…¥å•
    public class CreateTransferInInput : U9CBaseInput
    {
        public List<CreateTransferInParam> CreateTransferInParam { get; set; }
    }
    public class CreateTransferInParam
    {
        /// <summary>
        /// é»˜è®¤"WMS"
        /// </summary>
        public string OtherID { get; set; } = "WMS";
        /// <summary>
        /// å•据日期
        /// </summary>
        public DateTime BusinessDate { get; set; }
        /// <summary>
        /// å•据类型编码 TransIn002为仓库转储用于调拨车间仓 TransIn003 ä¸ºåº“位转储用于日常调拨储位
        /// </summary>
        public string TransInDocType_Code { get; set; } = "TransIn002";
        /// <summary>
        /// è°ƒå…¥å•行
        /// </summary>
        public List<TransInLines> TransInLines { get; set; }
    }
    public class TransInLines
    {
        /// <summary>
        /// è°ƒå…¥ä»“库
        /// </summary>
        public string TransInWh_Code { get; set; }
        /// <summary>
        /// è°ƒå…¥æ‰¹å·  ç±»åˆ«ä¸ºTransIn002传空,TransIn003时必传
        /// </summary>
        public string LotInfo_Code { get; set; }
        /// <summary>
        /// è°ƒå…¥å‚¨ä½  ç±»åˆ«ä¸ºTransIn002传空,TransIn003时必传
        /// </summary>
        public string TransInBinCode { get; set; }
        /// <summary>
        /// è°ƒå…¥æ–™å“
        /// </summary>
        public ItemEntity ItemInfo { get; set; }
        /// <summary>
        /// è°ƒå…¥æ•°é‡
        /// </summary>
        public double StoreUOMQty { get; set; }
        /// <summary>
        /// å­˜å‚¨ç±»åž‹é»˜è®¤ä¼ 4
        /// </summary>
        public int StorageType { get; set; }
        /// <summary>
        /// è°ƒå…¥å•子行调出信息
        /// </summary>
        public List<TransInSubLines> TransInSubLines { get; set; }
    }
    public class ItemEntity
    {
        public string ItemCode { get; set; }
    }
    public class TransInSubLines
    {
        /// <summary>
        /// è°ƒå‡ºç»„织
        /// </summary>
        public string TransOutOrg_Code { get; set; }
        /// <summary>
        /// è°ƒå‡ºä»“库
        /// </summary>
        public string TransOutWh_Code { get; set; }
        /// <summary>
        /// è°ƒå‡ºå‚¨ä½
        /// </summary>
        public string TransInBins { get; set; }
        /// <summary>
        /// è°ƒå‡ºæ‰¹å·
        /// </summary>
        public string LotInfo_Code { get; set; }
        /// <summary>
        /// è°ƒå‡ºæ•°é‡
        /// </summary>
        public double StoreUOMQty { get; set; }
        /// <summary>
        /// å­˜å‚¨ç±»åž‹é»˜è®¤ä¼ 4
        /// </summary>
        public int StorageType { get; set; }
    }
    #endregion
}