From 7320ad025a920fb52633e344fe1ce5ae2d612bfd Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期日, 09 三月 2025 00:34:21 +0800 Subject: [PATCH] 雅达-新增生产退料单接口及相关类 --- Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs | 362 +++++++++++++++++++++++++++++++++++++++----- Tiger.Business.WMS/ERP/WMS_U9C.CreateTransferIn.cs | 75 +++++++++ Tiger.Business.WMS/ERP/WMS_U9C.cs | 2 3 files changed, 396 insertions(+), 43 deletions(-) diff --git a/Tiger.Business.WMS/ERP/WMS_U9C.CreateTransferIn.cs b/Tiger.Business.WMS/ERP/WMS_U9C.CreateTransferIn.cs new file mode 100644 index 0000000..977af98 --- /dev/null +++ b/Tiger.Business.WMS/ERP/WMS_U9C.CreateTransferIn.cs @@ -0,0 +1,75 @@ +锘縰sing 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 + { + //濡傛灉宸茬粡鐧诲綍鍒欎笉闇�瑕佸啀娆$櫥褰曪紝鐩存帴浣跨敤浼犲叆鐨則oken + 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($"鍒涘缓鐢熶骇閫�鏂欏崟-鎸夎閫�鏂欐帴鍙f彁浜son: {JsonConvert.SerializeObject(input.CreateTransferInParam)}锛岃繑鍥濲son: {response.Message}"); + } + else + { + action.IsSuccessed = false; + action.LocaleMsg = new($"{action.Message}; {result.Data[0].m_errorMsg}"); + Logger.Interface.Info($"鍒涘缓鐢熶骇閫�鏂欏崟-鎸夎閫�鏂欐帴鍙eけ璐�:{result.Data[0].m_errorMsg}"); + } + } + } + catch (System.Exception ex) + { + action.CatchExceptionWithLog(ex, "鍒涘缓鐢熶骇閫�鏂欏崟-鎸夎閫�鏂欏紓甯�"); + } + Logger.Interface.Info($"/* 鍒涘缓鐢熶骇閫�鏂欏崟-鎸夎閫�鏂欐帴鍙g粨鏉� */\r\n"); //鍥哄畾鍐欐硶 + return action; + } + } +} diff --git a/Tiger.Business.WMS/ERP/WMS_U9C.cs b/Tiger.Business.WMS/ERP/WMS_U9C.cs index a8b02ee..6fb5244 100644 --- a/Tiger.Business.WMS/ERP/WMS_U9C.cs +++ b/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鍗曟帴鍙� diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs index 9f4be92..e72ed77 100644 --- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs +++ b/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> /// 鍏ュ簱鍗曟帴鍙d紶鍏ュ弬鏁� @@ -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锛屾病鏈堿SN鍗曡禒鍝佷紶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> + /// 鏀惰揣鎵瑰彿鏈塧sn鍗曞垯甯﹀嚭閲岄潰鎵规锛屾棤asn鍗曞垯鎸夊勾鏈堟棩鐢熸垚8浣嶆壒鍙� + /// </summary> public string RcvLotCode { get; set; } + /// <summary> + /// 搴撳瓨鎵瑰彿鏈塧sn鍗曞垯甯﹀嚭閲岄潰鎵规锛屾棤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> + /// 鍙戞枡鍗曚綅鍙栧鏂欒〃鐨勫彂鏂欏崟浣岻ssueUOM + /// </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鐩存帴鎵h处 + /// </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> + /// 鍙戞枡鍗曚綅鍙栧鏂欒〃鐨勫彂鏂欏崟浣岻ssueUOM + /// </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> + /// 璋冨叆鎵瑰彿 绫诲埆涓篢ransIn002浼犵┖锛孴ransIn003鏃跺繀浼� + /// </summary> + public string LotInfo_Code { get; set; } + /// <summary> + /// 璋冨叆鍌ㄤ綅 绫诲埆涓篢ransIn002浼犵┖锛孴ransIn003鏃跺繀浼� + /// </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 + + } -- Gitblit v1.9.3