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.MES { public partial class MES_U9C : IMES_U9C { public static string U9CAuthLoginUrl { get; set; } = Biz.SysParam["U9CAuthLoginUrl_Test", "U9CUrl"].PARAM_VALUE; // "http://172.16.80.20/U9C/webapi/OAuth2/AuthLogin?"; 测试 //public static string U9CAuthLoginUrl { get; set; } = Biz.SysParam["U9CAuthLoginUrl", "U9CUrl"].PARAM_VALUE; //正式 public static string secret = "&entcode=02&orgcode=101&clientid=mes&clientsecret=12c8ee7e9bb74ad2a6a0fb3315c8af20"; public static string RcvRptDocCreateUrl { get; set; } = Biz.SysParam["RcvRptDocCreateUrl_Test", "U9CUrl"].PARAM_VALUE; //"http://172.16.80.20/u9C/webapi/RcvRptDoc/Create"; 测试 //public static string RcvRptDocCreateUrl //{ get; set; } = Biz.SysParam["RcvRptDocCreateUrl", "U9CUrl"].PARAM_VALUE; //正式 /// /// 入库单接口 /// /// /// public async Task> RcvRptDocCreate(RcvRptDocCreateInput input) { Logger.Interface.Info($"/**\r\n *进入入库单接口....\r\n */\r\n"); //固定写法 var action = new ApiAction(); try { //先保存数据 bool IsSuccessed = true; var db = Biz.Db; var dbTran = db.UseTran(() => { var s = db.Storageable(input.ErpProdInBths, "U9C_RcvRptDocCreate") .WhereColumns(t => new { t.ORDER_NO, t.WORK_ORDER, t.GHOST_ROW }) .ToStorage(); s.AsInsertable.ExecuteCommand(); s.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); }); if (!dbTran.IsSuccess) { action.CatchExceptionWithLog(dbTran.ErrorException, $"数据处理失败"); Logger.Interface.Error(action.Message); IsSuccessed = false; } //保存成功,调用U9C接口-测试用 int i = 1; List ErpProdInBths = new List(); foreach (var item in input.RcvRptDocBases.Where(q => q.Status != "Y")) { var ErpProdInBth = Biz.Db.Queryable().Where(q => q.WORK_ORDER == item.WorkOrder).First(); item.Status = "Y"; if (!ErpProdInBth.IsNullOrEmpty()) { ErpProdInBth.ORDER_NO = $"XX001-{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 = $"XX001-{i}"; d.STATUS = "Y"; } } i++; } 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(); }); if (!dbTran.IsSuccess) { action.CatchExceptionWithLog(dbTran.ErrorException, $"数据处理失败"); Logger.Interface.Error(action.Message); IsSuccessed = false; } input.ErpProdInBths = ErpProdInBths; //保存成功,调用U9C接口 //if (IsSuccessed) //{ // var u9CLoginResult = await HttpHelper.GetAsync($"{U9CAuthLoginUrl}userCode=admin{secret}"); // if (u9CLoginResult.Success) // { // var token = u9CLoginResult.Data; // Logger.Interface.Info($"U9C登录token: {token}"); // List ErpProdInBths = new List(); // foreach (var item in input.RcvRptDocBases.Where(q=>q.Status != "Y")) // { // List param = new() { // new() { // CompleteList = new(){ // new CompleteList // { // MOKey = new MOKey { DocNo = item.WorkOrder }, // Wh = new Wh { Code = item.WhCode }, // DescFlexField = new DescFlexField { PrivateDescSeg1 = item.PkgQty.ToString() }, // Item = new Item { Code = item.ItemCode }, // CompleteQty = item.CompleteQty, // OutputType = item.OutputType, // StorageType = item.StorageType, // DocState = item.DocState, // } // } // } // }; // var response = await HttpHelper.PostAsync(RcvRptDocCreateUrl, JsonConvert.SerializeObject(param), new Dictionary() { { "token", token } }); // var result = JsonConvert.DeserializeObject(response.Message); // var ErpProdInBth = Biz.Db.Queryable().Where(q => q.WORK_ORDER == item.WorkOrder).First(); // if (result != null) // { // if (result.Success && result.Data[0].m_isSucess) // { // 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).FirstOrDefault(); // if (!d.IsNullOrEmpty()) // { // d.ORDER_NO = result.Data[0].m_code; // } // } // 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; // ErpProdInBths.Add(ErpProdInBth); // } // 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 }).ExecuteCommand(); // }); // if (!dbTran.IsSuccess) // { // action.CatchExceptionWithLog(dbTran.ErrorException, $"数据处理失败"); // Logger.Interface.Error(action.Message); // IsSuccessed = false; // } // input.ErpProdInBths = ErpProdInBths; // } //} action.Data = input; } catch (System.Exception ex) { action.CatchExceptionWithLog(ex, "生成入库单异常"); } Logger.Interface.Info($"/* 入库单接口结束 */\r\n"); //固定写法 return action; } } }