Tiger.Business.MES/Transaction/InStoreOrderNo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Business.MES/iERP/MES_U9C.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Controllers.MES/Controllers/MESController.InStoreOrderNo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.IBusiness.MES/Transaction/IInStoreOrderNo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Tiger.Business.MES/Transaction/InStoreOrderNo.cs
@@ -17,6 +17,9 @@ using Tiger.Model.Entitys.MES.BizPrintInstoreDoc; using System.Drawing.Printing; using Tiger.Model.Entitys.MES.Position; using System.Drawing.Drawing2D; using static Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser; using Tiger.Model.Minsun; namespace Tiger.Business.MES.Transaction { @@ -34,6 +37,8 @@ ApiHost = apiHost; OrgCode = input.OrgCode; pageSize = input.pageSize; _GetScannedList(); CurBatchNo = !inStoreInfos.IsNullOrEmpty() && inStoreInfos.InStoreScanInfos.Count>0? InStoreScanInfos[0].BATCH_NO: DateTime.Now.ToString("yyyyMMddHHmmss"); Logger.Console.Info($"Start {this.GetType().Name} Transaction[ID: {TransID}]"); return this; } @@ -44,20 +49,26 @@ public long UserId { get; set; } public string OrgCode { get; set; } public string CurSN { get; set; } public string CurBatchNo { get; set; } public int pageSize { get; set; } public RcvRptDocCreateInput RcvRptInput { get; set; } = new RcvRptDocCreateInput(); public List<ProdInBatch> ProdInBatchs { get; set; } = new List<ProdInBatch>(); public List<BIZ_ERP_PROD_IN_BTH> ErpProdInBths { get; set; } = new List<BIZ_ERP_PROD_IN_BTH>(); public List<BIZ_ERP_PROD_IN> ErpProdIns { get; set; } = new List<BIZ_ERP_PROD_IN>(); /// <summary> /// 扫描列表 /// </summary> public List<InStoreScanInfo> InStoreScanInfos { get; set; } = new List<InStoreScanInfo>(); public List<BIZ_ERP_PROD_IN_SN> ErpProdInSns { get; set; } = new List<BIZ_ERP_PROD_IN_SN>(); public InStoreInfos inStoreInfos { get; set; } #endregion Propertys & Variables #region Functions public ApiAction<InStoreInfos> GetInStoreInfos() { return new() { Data= inStoreInfos }; } /// <summary> /// 扫描条码 /// </summary> @@ -86,6 +97,7 @@ if (!ErpProdInBths.Any(q => q.WORK_ORDER == Info.ErpProdInBth.WORK_ORDER)) { Info.ErpProdInBth.AUTH_ORG = OrgCode; Info.ErpProdInBth.BATCH_NO = CurBatchNo; Info.ErpProdInBth.CREATE_USER = UserCode; Info.ErpProdInBth.CREATE_TIME = DateTime.Now; Info.ErpProdInBth.SCANED_DATE = DateTime.Now; @@ -94,7 +106,19 @@ Info.ErpProdInBth.ORDER_NO = UserCode; Info.ErpProdInBth.IS_HANDLED = "N"; Info.ErpProdInBth.CartonQty = n == 0 ? 1 : n; BIZ_ERP_PROD_IN prodIn = new() { AUTH_ORG = OrgCode, BILLCODE = UserCode, BILLDATE = DateTime.Now, STATUS = 0, HANDLED = -1, WAREHOUSECODE = "", SOURCECODE = Info.ErpProdInBth.WORK_ORDER, HANDLED_DATE = DateTime.Now, }; ErpProdInBths.Add(Info.ErpProdInBth); ErpProdIns.Add(prodIn); } else { @@ -104,7 +128,7 @@ if (!erpbth.IsNullOrEmpty()) { erpbth.SCAN_QTY += Info.InStoreScanInfo.SCAN_QTY.ToDouble(); Info.ErpProdInBth.CartonQty++; erpbth.CartonQty = n + 1; } } } @@ -139,7 +163,7 @@ isAdded = true; } } if (isAdded) if (!isAdded) { RcvRptInput.PrintJsons.Add(new() { @@ -154,14 +178,16 @@ //暂存扫码数据 if (!InStoreScanInfos.Any(q => q.WORK_ORDER == Info?.ErpProdInBth.WORK_ORDER && q.SN == CurSN)) { Info.InStoreScanInfo.BATCH_NO = CurBatchNo; InStoreScanInfos.Add(Info.InStoreScanInfo); } var wipPkgs = Biz.Db.Ado.UseStoredProcedure().SqlQuery<MES_WIP_PKG>("SP_MES_GET_ITEM_PKG", new SugarParameter("root", CurSN)); int maxLevel = wipPkgs.Max(p => p.LEVEL); foreach (var item in wipPkgs.Where(q=> q.LEVEL == maxLevel)) foreach (var item in wipPkgs.Where(q => q.LEVEL == maxLevel)) { var scanResult = new BIZ_ERP_PROD_IN_SN { AUTH_ORG = OrgCode, ID = Guid.NewGuid().ToString(), CARTONNO = CurSN, SN = item.SN, @@ -200,10 +226,16 @@ this.Close(!dbTran.IsSuccess); throw dbTran.ErrorException; } action.Data = new() { RcvRptInput.RcvRptDocBases = new(); RcvRptInput.labels = new(); RcvRptInput.ErpProdInBths = ErpProdInBths; RcvRptInput.userId = UserCode; inStoreInfos= new() { ErpProdInBths = ErpProdInBths, InStoreScanInfos = InStoreScanInfos, }; action.Data = inStoreInfos; } catch (Exception ex) { @@ -217,48 +249,88 @@ /// </summary> /// <param name="code"></param> /// <returns></returns> public async Task<ApiAction<RcvRptDocCreateInput>> GenerateInStoreOrder(RcvRptDocCreateInput input) public async Task<ApiAction<RcvRptDocCreateInput>> GenerateInStoreOrder() { var action = new ApiAction<RcvRptDocCreateInput>(); try { //input.RcvRptDocBases = new() //{ // new(){ // WorkOrder = item.WORK_ORDER, // ItemCode = item.ITEM_CODE, // WhCode = "10105", // PkgQty = item.SCAN_QTY, // CompleteQty = item.SCAN_QTY, // OutputType = 0, // StorageType = 4, // DocState = 1, // Status = "N" // } //}; action = await _IMES_U9C.RcvRptDocCreate(input); //保存数据库 var db = Business.Biz.Db; var dbTran = db.UseTran(() => //如果扫描记录为0 if (!RcvRptInput.ErpProdInBths.Any(q => q.IS_HANDLED == "N")) { //var x = db.Storageable(ErpProdInBths, $"InStoreOrderNo_{UserCode}") // .WhereColumns(t => new { t.ORDER_NO, t.WORK_ORDER, t.GHOST_ROW }) // .ToStorage(); //x.AsInsertable.ExecuteCommand(); //x.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); //var s = db.Storageable(ErpProdInSns, $"InStoreOrderNo_{UserCode}") // .WhereColumns(t => new { t.CARTONNO, t.SN, t.GHOST_ROW }) // .ToStorage(); //s.AsInsertable.ExecuteCommand(); //s.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); }); if (!dbTran.IsSuccess) action.IsSuccessed = false; action.LocaleMsg = Biz.L($"没有要入库的产品数据,请扫描包装完成的箱二维码重新生成入库单据!"); return action; } if (RcvRptInput.RcvRptDocBases.IsNullOrEmpty() || RcvRptInput.RcvRptDocBases.Count == 0) { Logger.Default.Fatal(dbTran.ErrorException, "Database transaction save exception"); this.Close(!dbTran.IsSuccess); throw dbTran.ErrorException; foreach (var item in RcvRptInput.ErpProdInBths) { var DocBase = new RcvRptDocBase() { WorkOrder = item.WORK_ORDER, ItemCode = item.ITEM_CODE, WhCode = "10105", PkgQty = item.SCAN_QTY.ToInt32(), CompleteQty = item.SCAN_QTY.ToInt32(), OutputType = 0, StorageType = 4, DocState = 1, Status = "N" }; if (!RcvRptInput.RcvRptDocBases.Any(q => q.WorkOrder == item.WORK_ORDER)) { RcvRptInput.RcvRptDocBases.Add(DocBase); } } } else { action.IsSuccessed = false; action.LocaleMsg = Biz.L($"有存在未提交的入库单,不能生成入库单"); return action; } action = await _IMES_U9C.RcvRptDocCreate(RcvRptInput); if (action.IsSuccessed) { foreach (var sn in ErpProdInSns) { var d = action.Data.ErpProdInBths.Where(q=> q.WORK_ORDER == sn.SOURCECODE).FirstOrDefault(); if (!d.IsNullOrEmpty()) { sn.BUSINESSCODE = d.ORDER_NO; sn.UPDATE_USER = UserCode; sn.UPDATE_TIME = DateTime.Now; } } foreach (var p in ErpProdIns) { var d = action.Data.ErpProdInBths.Where(q => q.WORK_ORDER == p.SOURCECODE).FirstOrDefault(); if (!d.IsNullOrEmpty()) { p.BILLCODE = d.ORDER_NO; p.UPDATE_USER = UserCode; p.UPDATE_TIME = DateTime.Now; p.HANDLED = 0; } } //保存数据库 var db = Business.Biz.Db; var dbTran = db.UseTran(() => { db.Updateable(ErpProdInSns, $"InStoreOrderNo_{UserCode}").UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.BUSINESSCODE }).ExecuteCommand(); var x = db.Storageable(ErpProdIns, $"InStoreOrderNo_{UserCode}") .WhereColumns(t => new { t.BILLCODE, t.SOURCECODE, t.GHOST_ROW }) .ToStorage(); x.AsInsertable.ExecuteCommand(); x.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); }); if (!dbTran.IsSuccess) { Logger.Default.Fatal(dbTran.ErrorException, "Database transaction save exception"); this.Close(!dbTran.IsSuccess); throw dbTran.ErrorException; } } } @@ -270,39 +342,115 @@ } /// <summary> /// 查询对应的条码 /// 查询已扫描列表 /// </summary> /// <returns></returns> public async Task<ApiAction<RcvRptDocCreateInput>> GetScannedBarcodes() public async Task<ApiAction<RcvRptDocCreateInput>> GetScannedList() { var action = new ApiAction<RcvRptDocCreateInput>(); try { //var query = await Biz.Db.Queryable<BIZ_ERP_RECEIPT_SN, BAS_ITEM>((t, m) => // new JoinQueryInfos( // JoinType.Left, t.ITEM_CODE == m.ITEM_CODE // )) // .Where((t, m) => t.CREATE_USER == UserCode // //&& t.WAREHOUSECODE.ToUpper() == WarehouseCode.ToUpper() // && t.STATUS == WMS_ITEM.STATUSs.Counted.GetValue() // && t.ITEM_CODE.ToUpper() == MaterialCode.ToUpper() // && t.BILLCODE == UserCode // && t.AUTH_ORG == OrgCode) // .Select((t, m) => new Model.Minsun.CustSupplyCheckDetail // { // Barcode = t.SN, // BarcodeQty = t.SCANQTY, // Unit = m.UNIT // }) // .ToListAsync(); action.Data = _GetScannedList(); } catch (Exception ex) { action.CatchExceptionWithLog(ex, $"查询对应的条码异常"); action.CatchExceptionWithLog(ex, $"查询已扫描列表异常"); } return action; } /// <summary> /// 从数据库读回操作者原本操作的记录 /// </summary> /// <returns></returns> private RcvRptDocCreateInput _GetScannedList() { RcvRptInput.RcvRptDocBases = new(); RcvRptInput.PrintJsons = new(); RcvRptInput.labels = new(); RcvRptInput.userId = UserCode; if (RcvRptInput.ErpProdInBths.Count == 0) { RcvRptInput.ErpProdInBths = Biz.Db.Queryable<BIZ_ERP_PROD_IN_BTH>() .Where(q => q.BATCH_NO == SqlFunc.Subqueryable<BIZ_ERP_PROD_IN_BTH>().Where(s => s.ORDER_NO == UserCode).Select(s => s.BATCH_NO)) .IncludesAllFirstLayer().ToList(); foreach (var item in RcvRptInput.ErpProdInBths) { var values = item.ProdInSns.GroupBy(x => x.CARTONNO) .Select(g => new InStoreScanInfo() { SN = g.Key, SALES_ORDER = item.SALES_ORDER, BATCH_NO = item.BATCH_NO, WORK_ORDER = item.WORK_ORDER, SCAN_QTY = g.Sum(x => x.Qty).ToDouble() }); foreach (var t in values) { InStoreScanInfos.Add(t); } item.CartonQty = values.Count(); BIZ_ERP_PROD_IN prodIn = new() { AUTH_ORG = OrgCode, BILLCODE = UserCode, BILLDATE = DateTime.Now, STATUS = 0, HANDLED = -1, WAREHOUSECODE = "", SOURCECODE = item.WORK_ORDER, HANDLED_DATE = DateTime.Now, }; ErpProdIns.Add(prodIn); ErpProdInSns.AddRange(item.ProdInSns); //生成打印实体 if (RcvRptInput.PrintJsons.Count == 0) { RcvRptInput.PrintJsons.Add(new() { ID = Guid.NewGuid().ToString("N"), Items = new() { item } }); } else { //拼分页 bool isAdded = false; foreach (var p in RcvRptInput.PrintJsons) { if (!p.Items.Any(q => q.WORK_ORDER == item.WORK_ORDER)) { if (p.Items.Count < pageSize) { p.Items.Add(item); isAdded = true; } } else { isAdded = true; } } if (!isAdded) { RcvRptInput.PrintJsons.Add(new() { ID = Guid.NewGuid().ToString("N"), Items = new() { item } }); } } } ErpProdInBths = RcvRptInput.ErpProdInBths; } inStoreInfos = new() { ErpProdInBths = ErpProdInBths, InStoreScanInfos = InStoreScanInfos, }; return RcvRptInput; } #endregion Functions public override bool Close(bool needSaveHistoryLog = false) Tiger.Business.MES/iERP/MES_U9C.cs
@@ -45,30 +45,25 @@ var action = new ApiAction<RcvRptDocCreateInput>(); try { //先保存数据 bool IsSuccessed = true; //保存成功,调用U9C接口-测试用 //int i = 1; //List<BIZ_ERP_PROD_IN_BTH> ErpProdInBths = new List<BIZ_ERP_PROD_IN_BTH>(); //foreach (var item in input.RcvRptDocBases.Where(q => q.Status != "Y")) //{ // var ErpProdInBth = Biz.Db.Queryable<BIZ_ERP_PROD_IN_BTH>().Where(q => q.WORK_ORDER == item.WorkOrder).First(); // var ErpProdInBth = input.ErpProdInBths.Where(q => q.WORK_ORDER == item.WorkOrder).FirstOrDefault(); // item.Status = "Y"; // if (!ErpProdInBth.IsNullOrEmpty()) // { // ErpProdInBth.ORDER_NO = $"YDRKD241200006"; // ErpProdInBth.ORDER_NO = $"YDRKD24120000{5+i}"; // ErpProdInBth.IS_HANDLED = "Y"; // ErpProdInBth.HANDLED_DATE = DateTime.Now; // ErpProdInBths.Add(ErpProdInBth); // } // foreach (var p in input.PrintJsons) // { // var d = p.Items.Where(q => q.WORK_ORDER == item.WorkOrder).FirstOrDefault(); // if (!d.IsNullOrEmpty()) // { // d.ORDER_NO = $"YDRKD241200006"; // d.STATUS = "Y"; // d.ORDER_NO = $"YDRKD24120000{5 + i}"; // d.IS_HANDLED = "Y"; // } // } // i++; @@ -76,7 +71,7 @@ //var _db = Biz.Db; //var _dbTran = _db.UseTran(() => //{ // _db.Updateable(ErpProdInBths, "U9C_RcvRptDocCreate").UpdateColumns(x => new { x.ORDER_NO, x.REMARK, x.IS_HANDLED, x.HANDLED_DATE }).ExecuteCommand(); // _db.Updateable(input.ErpProdInBths, "U9C_RcvRptDocCreate").UpdateColumns(x => new { x.ORDER_NO, x.REMARK, x.IS_HANDLED, x.HANDLED_DATE, x.UPDATE_USER, x.UPDATE_TIME }).ExecuteCommand(); //}); //if (!_dbTran.IsSuccess) //{ @@ -84,20 +79,16 @@ // Logger.Interface.Error(action.Message); // IsSuccessed = false; //} //input.ErpProdInBths = ErpProdInBths; //保存成功,调用U9C接口 if (IsSuccessed) var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}"); if (u9CLoginResult.Success) { var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}"); if (u9CLoginResult.Success) var token = u9CLoginResult.Data; Logger.Interface.Info($"U9C登录token: {token}"); foreach (var item in input.RcvRptDocBases.Where(q => q.Status != "Y")) { var token = u9CLoginResult.Data; Logger.Interface.Info($"U9C登录token: {token}"); List<BIZ_ERP_PROD_IN_BTH> ErpProdInBths = new List<BIZ_ERP_PROD_IN_BTH>(); foreach (var item in input.RcvRptDocBases.Where(q => q.Status != "Y")) { List<RcvRptDocCreateParam> param = new() { List<RcvRptDocCreateParam> param = new() { new() { CompleteList = new(){ new CompleteList @@ -116,70 +107,65 @@ BusinessDate = DateTime.Now, } }; var response = await HttpHelper.PostAsync(RcvRptDocCreateUrl, JsonConvert.SerializeObject(param), new Dictionary<string, string>() { { "token", token } }); var result = JsonConvert.DeserializeObject<U9CResult>(response.Message); var ErpProdInBth = Biz.Db.Queryable<BIZ_ERP_PROD_IN_BTH>().Where(q => q.WORK_ORDER == item.WorkOrder).First(); if (result != null) var response = await HttpHelper.PostAsync(RcvRptDocCreateUrl, JsonConvert.SerializeObject(param), new Dictionary<string, string>() { { "token", token } }); var result = JsonConvert.DeserializeObject<U9CResult>(response.Message); var ErpProdInBth = input.ErpProdInBths.Where(q => q.WORK_ORDER == item.WorkOrder).FirstOrDefault();.Where(q => q.WORK_ORDER == item.WorkOrder).FirstOrDefault(); if (result != null) { if (result.Success && result.Data[0].m_isSucess) { if (result.Success && result.Data[0].m_isSucess) Logger.Interface.Info($"生成入库单接口提交Json: {JsonConvert.SerializeObject(param)},返回Json: {response.Message}"); item.Status = "Y"; if (!ErpProdInBth.IsNullOrEmpty()) { Logger.Interface.Info($"生成入库单接口提交Json: {JsonConvert.SerializeObject(param)},返回Json: {response.Message}"); item.Status = "Y"; if (!ErpProdInBth.IsNullOrEmpty()) { ErpProdInBth.ORDER_NO = result.Data[0].m_code; ErpProdInBth.IS_HANDLED = "Y"; ErpProdInBth.HANDLED_DATE = DateTime.Now; ErpProdInBths.Add(ErpProdInBth); } foreach (var p in input.PrintJsons) { var d = p.Items.Where(q => q.WORK_ORDER == item.WorkOrder && q.IS_HANDLED != "P").FirstOrDefault(); if (!d.IsNullOrEmpty()) { d.ORDER_NO = result.Data[0].m_code; d.IS_HANDLED = "Y"; } } Logger.Interface.Info($"生成入库单成功"); ErpProdInBth.ORDER_NO = result.Data[0].m_code; ErpProdInBth.IS_HANDLED = "Y"; ErpProdInBth.HANDLED_DATE = DateTime.Now; } else foreach (var p in input.PrintJsons) { action.IsSuccessed = false; action.LocaleMsg = new($"{action.Message}; {result.Data[0].m_errorMsg}"); item.Status = "F"; if (!ErpProdInBth.IsNullOrEmpty()) var d = p.Items.Where(q => q.WORK_ORDER == item.WorkOrder && q.IS_HANDLED != "P").FirstOrDefault(); if (!d.IsNullOrEmpty()) { ErpProdInBth.REMARK = result.Data[0].m_errorMsg; ErpProdInBth.IS_HANDLED = "F"; ErpProdInBth.HANDLED_DATE = DateTime.Now; ErpProdInBths.Add(ErpProdInBth); d.ORDER_NO = result.Data[0].m_code; d.IS_HANDLED = "Y"; } foreach (var p in input.PrintJsons) { var d = p.Items.Where(q => q.WORK_ORDER == item.WorkOrder && q.IS_HANDLED != "P").FirstOrDefault(); if (!d.IsNullOrEmpty()) { d.ORDER_NO = result.Data[0].m_code; d.IS_HANDLED = "F"; } } Logger.Interface.Info($"生成入库单失败:{result.Data[0].m_errorMsg}"); } Logger.Interface.Info($"生成入库单成功"); } else { action.IsSuccessed = false; action.LocaleMsg = new($"{action.Message}; {result.Data[0].m_errorMsg}"); item.Status = "F"; if (!ErpProdInBth.IsNullOrEmpty()) { ErpProdInBth.REMARK = result.Data[0].m_errorMsg; ErpProdInBth.IS_HANDLED = "F"; ErpProdInBth.HANDLED_DATE = DateTime.Now; } foreach (var p in input.PrintJsons) { var d = p.Items.Where(q => q.WORK_ORDER == item.WorkOrder && q.IS_HANDLED != "P").FirstOrDefault(); if (!d.IsNullOrEmpty()) { d.ORDER_NO = result.Data[0].m_code; d.IS_HANDLED = "F"; } } Logger.Interface.Info($"生成入库单失败:{result.Data[0].m_errorMsg}"); } } var _db = Biz.Db; var _dbTran = _db.UseTran(() => { _db.Updateable(ErpProdInBths, "U9C_RcvRptDocCreate").UpdateColumns(x => new { x.ORDER_NO, x.REMARK, x.IS_HANDLED, x.HANDLED_DATE, x.UPDATE_USER, x.UPDATE_TIME }).ExecuteCommand(); }); if (!_dbTran.IsSuccess) { action.CatchExceptionWithLog(_dbTran.ErrorException, $"数据处理失败"); Logger.Interface.Error(action.Message); IsSuccessed = false; } input.ErpProdInBths = ErpProdInBths; } var _db = Biz.Db; var _dbTran = _db.UseTran(() => { _db.Updateable(input.ErpProdInBths, "U9C_RcvRptDocCreate").UpdateColumns(x => new { x.ORDER_NO, x.REMARK, x.IS_HANDLED, x.HANDLED_DATE, x.UPDATE_USER, x.UPDATE_TIME }).ExecuteCommand(); }); if (!_dbTran.IsSuccess) { action.CatchExceptionWithLog(_dbTran.ErrorException, $"数据处理失败"); Logger.Interface.Error(action.Message); } } input.labels = GetLabels(input.PrintJsons); Tiger.Controllers.MES/Controllers/MESController.InStoreOrderNo.cs
@@ -10,6 +10,7 @@ using Tiger.Model; using Tiger.Model.Entitys.MES.BizPrintInstoreDoc; using Tiger.Model.Entitys.MES.Position; using Tiger.Model.Entitys.MES.U9C; namespace Tiger.Api.Controllers.MES { @@ -36,9 +37,10 @@ { trans = AutoFacContainer.Instance.Resolve<IInStoreOrderNo>().Init(action.ID, Request.Host.Value, action.Data); iBiz.MES.Context.NewTransaction(HttpContext, trans); } response = action.GetResponse(); response = action.GetResponse(trans.GetInStoreInfos()); } catch (System.IO.InvalidDataException ex) { @@ -147,5 +149,94 @@ return Ok(response); } /// <summary> /// 调用U9C接口生成入库单 /// </summary> /// <param name="action"></param> /// <returns></returns> [HttpPost] [Route("api/[controller]/InStoreOrderNo/GenerateInStoreOrder")] public async Task<IActionResult> InStoreOrderNo_GenerateInStoreOrderAsync([FromBody] ApiAction<RcvRptDocCreateInput> action) { ApiAction response; IInStoreOrderNo trans = null; try { if (iBiz.MES.Context.GetTransDic().ContainsKey(action.ID)) { trans = iBiz.MES.Context.GetTransDic()[action.ID] as IInStoreOrderNo; if (!trans.IsFinished) { if (action.IsAsync) { response = action.GetResponse(await trans.GenerateInStoreOrder()); } else { lock (trans.TransLock) { response = action.GetResponse(trans.GenerateInStoreOrder().Result); } } } else { response = action.GetResponse($"Transaction Error: 入库单事务[ID:{action.ID}]已经关闭", false); } } else { response = action.GetResponse($"Transaction Error: 入库单事务[ID:{action.ID}]已经被关闭", false); } } catch (System.Exception ex) { response = action.GetResponse().CatchExceptionWithLog(ex); } trans?.AddHistory(Request, action); return Ok(response); } /// <summary> /// 查询对应的条码 /// </summary> /// <param name="action"></param> /// <returns></returns> [HttpPost] [Route("api/[controller]/InStoreOrderNo/GetScannedList")] public async Task<IActionResult> InStoreOrderNo_GetScannedListAsync([FromBody] ApiAction action) { ApiAction response; IInStoreOrderNo trans = null; try { if (iBiz.MES.Context.GetTransDic().ContainsKey(action.ID)) { trans = iBiz.MES.Context.GetTransDic()[action.ID] as IInStoreOrderNo; if (!trans.IsFinished) { if (action.IsAsync) { response = action.GetResponse(await trans.GetScannedList()); } else { lock (trans.TransLock) { response = action.GetResponse(trans.GetScannedList().Result); } } } else { response = action.GetResponse($"Transaction Error: 入库单事务[ID:{action.ID}]已经关闭", false); } } else { response = action.GetResponse($"Transaction Error: 入库单事务[ID:{action.ID}]已经被关闭", false); } } catch (System.Exception ex) { response = action.GetResponse().CatchExceptionWithLog(ex); } trans?.AddHistory(Request, action); return Ok(response); } } } Tiger.IBusiness.MES/Transaction/IInStoreOrderNo.cs
@@ -6,6 +6,7 @@ using System.Threading.Tasks; using Tiger.Model; using Tiger.Model.Entitys.MES.BizPrintInstoreDoc; using Tiger.Model.Entitys.MES.U9C; namespace Tiger.IBusiness { @@ -13,6 +14,9 @@ { public IInStoreOrderNo Init(string id, string apiHost, InstoreDocInput input); public Task<ApiAction<InStoreInfos>> Submit(string code); public Task<ApiAction<RcvRptDocCreateInput>> GenerateInStoreOrder(); public Task<ApiAction<RcvRptDocCreateInput>> GetScannedList(); public ApiAction<InStoreInfos> GetInStoreInfos(); public bool Close(bool needSaveHistoryLog = false); } Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs
@@ -39,7 +39,7 @@ public class RcvRptDocCreateInput { public List<RcvRptDocBase> RcvRptDocBases { get; set; } public List<BIZ_ERP_PROD_IN_BTH> ErpProdInBths { get; set; } public List<BIZ_ERP_PROD_IN_BTH> ErpProdInBths { get; set; } = new List<BIZ_ERP_PROD_IN_BTH>(); public List<InStorePrintJson> PrintJsons { get; set; } = new List<InStorePrintJson>(); public List<BAS_LABEL_TEMP> labels { get; set; } public string userId { get; set; } Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs
@@ -204,7 +204,7 @@ [DisplayName("条码")] public string SN { get; set; } public string SALES_ORDER { get; set; } [DisplayName("工单批次号")] [DisplayName("批次号")] public string BATCH_NO { get; set; } /// <summary> /// 工单号