using NFine.Data.Extensions; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using NFine.Code; using NFine.Repository; using System.Data.Common; using NFine.Domain._03_Entity.SRM; using ICS.Application.Entity; using Newtonsoft.Json; using System.Configuration; using System.Data.SqlClient; using ICS.Data; using Newtonsoft.Json.Linq; using NFine.Domain._03_Entity.WMS; using System.Net; using System.IO; namespace NFine.Application.WMS { public class ProductionRAFMRApp : RepositoryFactory { public static DataTable PRInvmes = new DataTable(); /// /// 退料 /// /// /// public DataTable GetICSMOApplyNeg(ref Pagination jqgridparam) { DataTable dt = new DataTable(); List parameter = new List(); string sql = @" select a.ID,a.ApplyNegCode,a.WHCode,b.WarehouseName,a.Status,a.Type,a.Memo,a.CreatePerson,a.CreateDateTime,a.MUSER,a.MUSERName from ICSMOApplyNeg a left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint where a.Type='2'"; sql = string.Format(sql); DataTable dttest = Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable GetICSMOApplyNegDetail(string ApplyNegCode, ref Pagination jqgridparam) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; DataTable dt = new DataTable(); //var queryParam = queryJson.ToJObject(); List parameter = new List(); string sql = @"select ID,ApplyNegCode,Sequence,SourceDetailID,InvCode,Quantity,Amount,IssueNegQuantity,ExtensionID,MUSER,MUSERName,MTIME from ICSMOApplyNegDetail WHERE ApplyNegCode='" + ApplyNegCode + "' "; return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public string DeleteICSMOApplyNeg(string keyValue) { //站点信息 string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string msg = ""; keyValue = keyValue.Substring(1, keyValue.Length - 2); string sql = string.Empty; sql += string.Format(@"DELETE FROM dbo.ICSMOApplyNeg WHERE ApplyNegCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint); sql += string.Format(@"DELETE FROM dbo.ICSMOApplyNegDetail WHERE ApplyNegCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint); try { if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0) { } } catch (Exception ex) { throw new Exception(ex.Message); } return msg; } public DataTable GetICSReturnTemporary(string rfqno) { string sql = @"SELECT a.ApplyNegCode, a.InvCode, a.Quantity, a.Amount, a.SourceDetailID as ZJID, b.InvName, b.InvStd, b.InvUnit, a.IssueNegQuantity , a.ExtensionID FROM ICSMOApplyNegDetail a LEFT JOIN ICSInventory b ON a.InvCode = b.InvCode and a.WorkPoint=b.WorkPoint where a.ApplyNegCode='" + rfqno + "'"; DataTable table = Repository().FindDataSetBySql(sql).Tables[0]; DataTable dtCloned = table.Clone(); foreach (DataColumn col in dtCloned.Columns) { col.DataType = typeof(string); } foreach (DataRow row in table.Rows) { DataRow newrow = dtCloned.NewRow(); foreach (DataColumn column in dtCloned.Columns) { newrow[column.ColumnName] = row[column.ColumnName].ToString(); } dtCloned.Rows.Add(newrow); } if (PRInvmes.Rows.Count > 0) { dtCloned.Merge(PRInvmes, false); } return dtCloned; } public DataTable GetINV(string invcode, ref Pagination jqgridparam) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; List parameter = new List(); DataTable table = new DataTable(); string wherestr = ""; if (!string.IsNullOrEmpty(invcode)) { wherestr += " and a.InvCode like '%" + invcode + "'%"; } string sql = "SELECT DISTINCT a.ApplyDetailID as ZJID,a.ApplyCode,a.Sequence as MuHang,a.InvCode,a.Quantity,a.Amount,b.InvName,b.InvStd,b.InvUnit,a.IssueQuantity,a.ExtensionID FROM ICSMOApply a left JOIN ICSInventory b ON a.InvCode = b.InvCode and a.WorkPoint=b.WorkPoint where a.IssueQuantity>0 and a.WorkPoint = '" + WorkPoint + "'" + wherestr; return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public void AddMOApplyNegTemp(string json) { var data = json.ToJObject(); if (PRInvmes.Columns.Count <= 0) { PRInvmes.Columns.Add("ZJID", typeof(string)); PRInvmes.Columns.Add("InvCode", typeof(string)); PRInvmes.Columns.Add("INVNAME", typeof(string)); PRInvmes.Columns.Add("InvStd", typeof(string)); PRInvmes.Columns.Add("InvUnit", typeof(string)); PRInvmes.Columns.Add("Quantity", typeof(string)); PRInvmes.Columns.Add("IssueNegQuantity", typeof(string)); PRInvmes.Columns.Add("ExtensionID", typeof(string)); PRInvmes.Columns.Add("Amount", typeof(string)); PRInvmes.Columns.Add("ID", typeof(string)); } string usercode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; DataRow newrow = PRInvmes.NewRow(); newrow["ZJID"] = data["ZJID"]; newrow["InvName"] = data["InvName"]; newrow["InvCode"] = data["InvCode"]; newrow["InvStd"] = data["InvStd"]; newrow["InvUnit"] = data["InvUnit"]; newrow["Amount"] = data["Amount"]; newrow["IssueNegQuantity"] = data["IssueNegQuantity"]; newrow["ExtensionID"] = data["ExtensionID"]; newrow["Quantity"] = ""; newrow["ID"] = data["ID"]; PRInvmes.Rows.Add(newrow); } public string SaveICSMOApplyNeg(string ICSASN) { string msg = ""; string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "MOIssueDocNegativeApply/Create"; string result = HttpPost(APIURL, ICSASN); JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText); string MessAge = Obj["Message"].ToString(); string Success = Obj["Success"].ToString(); if (Success.ToUpper() == "FALSE") { msg = MessAge; } return msg; } public void ClearTemp() { PRInvmes.Rows.Clear(); } public DataTable GetICSMOApplyNegDetailTemp(string ApplyNegCode) { string sql = @"SELECT a.ID, a.ID as TLZID, a.ApplyNegCode, a.InvCode, a.Quantity, a.Amount, a.SourceDetailID as ZJID, b.InvName, b.InvStd, b.InvUnit, a.IssueNegQuantity, a.ExtensionID FROM ICSMOApplyNegDetail a LEFT JOIN ICSInventory b ON a.InvCode = b.InvCode and a.WorkPoint=b.WorkPoint where a.ApplyNegCode='" + ApplyNegCode + "'"; DataTable table = Repository().FindDataSetBySql(sql).Tables[0]; if (PRInvmes == null || PRInvmes.Columns.Count <= 0) PRInvmes = table.Clone(); DataTable dtCloned = table.Clone(); foreach (DataColumn col in dtCloned.Columns) { col.DataType = typeof(string); } foreach (DataRow row in table.Rows) { DataRow newrow = dtCloned.NewRow(); foreach (DataColumn column in dtCloned.Columns) { newrow[column.ColumnName] = row[column.ColumnName].ToString(); } dtCloned.Rows.Add(newrow); } if (PRInvmes.Rows.Count > 0) { //dtCloned.Merge(Invmes, false); foreach (DataRow data in PRInvmes.Rows) { var info = dtCloned.Select(string.Format("TLZID='{0}'", data["TLZID"])); if (info != null && info.Length > 0) { info[0]["ZJID"] = data["ZJID"]; info[0]["InvName"] = data["InvName"]; info[0]["InvCode"] = data["InvCode"]; info[0]["InvStd"] = data["InvStd"]; info[0]["InvUnit"] = data["InvUnit"]; info[0]["Amount"] = data["Amount"]; info[0]["IssueNegQuantity"] = data["IssueNegQuantity"]; info[0]["ExtensionID"] = data["ExtensionID"]; info[0]["Quantity"] = 0; } else { DataRow newrow = dtCloned.NewRow(); newrow["ZJID"] = data["ZJID"]; newrow["InvName"] = data["InvName"]; newrow["InvCode"] = data["InvCode"]; newrow["InvStd"] = data["InvStd"]; newrow["InvUnit"] = data["InvUnit"]; newrow["Amount"] = data["Amount"]; newrow["Quantity"] = 0; newrow["ID"] = data["ID"]; newrow["TLZID"] = data["TLZID"]; newrow["IssueNegQuantity"] = data["IssueNegQuantity"]; newrow["ExtensionID"] = data["ExtensionID"]; dtCloned.Rows.Add(newrow); } } } return dtCloned; } public void UpdateMOApplyNegTemp(string json) { var data = json.ToJObject(); string usercode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; var info = PRInvmes.Select(string.Format("TLZID='{0}'", data["TLZID"])); if (info != null && info.Length > 0) { info[0]["ZJID"] = data["ZJID"]; info[0]["InvName"] = data["InvName"]; info[0]["InvCode"] = data["InvCode"]; info[0]["InvStd"] = data["InvStd"]; info[0]["InvUnit"] = data["InvUnit"]; info[0]["Amount"] = data["Amount"]; info[0]["IssueNegQuantity"] = data["IssueNegQuantity"]; info[0]["ExtensionID"] = data["ExtensionID"]; info[0]["Quantity"] = 0; } else { DataRow newrow = PRInvmes.NewRow(); newrow["ZJID"] = data["ZJID"]; newrow["InvName"] = data["InvName"]; newrow["InvCode"] = data["InvCode"]; newrow["InvStd"] = data["InvStd"]; newrow["InvUnit"] = data["InvUnit"]; newrow["Amount"] = data["Amount"]; newrow["IssueNegQuantity"] = data["IssueNegQuantity"]; newrow["ExtensionID"] = data["ExtensionID"]; newrow["Quantity"] = 0; newrow["ID"] = data["ID"]; newrow["TLZID"] = data["TLZID"]; PRInvmes.Rows.Add(newrow); } } public string AuditICSMOApplyNeg(string ICSASN) { string msg = ""; string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "MOIssueDocNegativeApply/Approve"; string result = HttpPost(APIURL, ICSASN); JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText); string MessAge = Obj["Message"].ToString(); string Success = Obj["Success"].ToString(); if (Success.ToUpper() == "FALSE") { msg = MessAge; } return msg; } public string UpdateICSMOApplyNeg(string ICSASN) { string msg = ""; string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "MOIssueDocNegativeApply/Update"; string result = HttpPost(APIURL, ICSASN); JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText); string MessAge = Obj["Message"].ToString(); string Success = Obj["Success"].ToString(); if (Success.ToUpper() == "FALSE") { msg = MessAge; } return msg; } //接口api解析 public static string HttpPost(string url, string body) { try { Encoding encoding = Encoding.UTF8; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*"; request.ContentType = "application/json; charset=utf-8"; byte[] buffer = encoding.GetBytes(body); request.ContentLength = buffer.Length; request.GetRequestStream().Write(buffer, 0, buffer.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding)) { return reader.ReadToEnd(); } } catch (WebException ex) { throw new Exception(ex.Message); } } } }