using NFine.Data.Extensions; using System; using System.Collections.Generic; using System.Data; using System.Text; using NFine.Code; using NFine.Repository; using System.Data.Common; using NFine.Domain._03_Entity.SRM; using Newtonsoft.Json; using System.Configuration; using System.Net; using System.IO; using Newtonsoft.Json.Linq; using System.Data.SqlClient; using ICS.Data; namespace NFine.Application.WMS { public class BlitemApp : RepositoryFactory { public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); #region [SQL] string sql = @"SELECT ID, CheckCode, SelectLevel, Status, Quantity, Amount, MUSER, MUSERName, MTIME, WorkPoint FROM dbo.ICSCheck"; sql += " WHERE 1=1"; sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName()); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and CheckCode like '%" + queryParam["POCode"].ToString() + "%' "; } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable GetSubGridJson(string ID, string Inventory, string InvCode,string LotNo, ref Pagination jqgridparam) { DataTable dt = new DataTable(); //var queryParam = queryJson.ToJObject(); List parameter = new List(); string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @" SELECT distinct a.ID, b.InvCode, b.InvName , b.InvUnit, b.InvStd , a.LotNo, e.BatchCode, a.Quantity, d.WarehouseCode, d.LocationCode, f.LocationName, a.PrimaryQuantity, a.PrimaryAmount, a.ReplayQuantity, a.ReplayAmount, a.CheckQuantity, a.CheckAmount, a.PrimaryQuantity- a.Quantity as DifferenceNum, a.ReplayQuantity- a.Quantity as ReplayDifferenceNum, a.CheckQuantity- a.Quantity as CheckDifferenceNum, d.LockQuantity,e.Colspan ,e.ProjectCode ,e.Version ,e.Brand , e.cFree1 ,e.cFree2 ,e.cFree3 ,e.cFree4 ,e.cFree5 ,e.cFree6 ,e.cFree7 ,e.cFree8 ,e.cFree9 ,e.cFree10 ,b.EATTRIBUTE1,b.EATTRIBUTE2,b.EATTRIBUTE3,b.EATTRIBUTE4,b.EATTRIBUTE5,b.EATTRIBUTE6,b.EATTRIBUTE7,b.EATTRIBUTE8, b.EATTRIBUTE9,b.EATTRIBUTE10 FROM ICSCheckDetail a left join ICSInventoryLot c on a.LotNo=c.LotNO and a.WorkPoint=c.WorkPoint left join ICSInventory b on c.InvCode=b.InvCode AND c.WorkPoint=b.WorkPoint left join ICSWareHouseLotInfo d on c.LotNO=d.LotNO AND c.WorkPoint=d.WorkPoint left join dbo.ICSExtension e on c.ExtensionID=e.ID and c.WorkPoint=e.WorkPoint left join ICSLocation f on f.LocationCode=d.LocationCode and f.WorkPoint=d.WorkPoint WHERE a.CheckID='" + ID + "' and a.WorkPoint in ('" + WorkPoint + "')"; if (!string.IsNullOrWhiteSpace(InvCode)) { sql += " and b.InvCode like '%" + InvCode + "%' "; } if (!string.IsNullOrWhiteSpace(LotNo)) { sql += " and a.LotNo like '%" + LotNo + "%' "; } if (Inventory=="1") { sql += "and a.Quantity>0"; } else if (Inventory == "2") { sql += "and a.Quantity<=0"; } else { } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public string DeleteICSCheckDetail(string ID) { //站点信息 string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string msg = ""; string sql = string.Empty; try { sql = string.Format(@"DELETE FROM ICSCheckDetail WHERE ID ='{0}' and WorkPoint ='{1}'", ID, WorkPoint); SqlHelper.ExecuteNonQuery(sql); } catch (Exception ex) { throw new Exception(ex.Message); } return msg; } /// /// 获取仓库 /// /// public DataTable GetWHCode() { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string sql = @" select '' as ID,'' as WarehouseName union all SELECT ID+'|'+WarehouseCode,WarehouseName FROM ICSWarehouse WITH (NOLOCK) WHERE WorkPoint = '{0}' "; sql = string.Format(sql, WorkPoint); //string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode; //if (role != "admin") //{ // sql += " and b.WorkPoint='" + WorkPoint + "'"; //} DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } public DataTable GetQU(string WHCodeID) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string sql = @" select '' as QUValue,'' as QUName union all SELECT Region as QUValue,Region+'区' as QUName FROM ICSLocation WITH (NOLOCK) WHERE WHID = '{0}' AND WorkPoint='{1}' "; sql = string.Format(sql, WHCodeID, WorkPoint); DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } //public DataTable GetQU(string WHCodeID) //{ // string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; // string sql = @"SELECT Region as QUValue,Region+'区' as QUName FROM ICSLocation WHERE WHID = '{0}' AND WorkPoint='{1}'"; // sql = string.Format(sql, WHCodeID, WorkPoint); // DataTable dt = Repository().FindTableBySql(sql); // return dt; //} public DataTable GetPai(string WHCodeID, string Qu) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string sql = @" select '' as PaiValue,'' as PaiName union all SELECT Row as PaiValue,Row+'排' as PaiName FROM ICSLocation WITH (NOLOCK) WHERE WHID = '{0}' AND WorkPoint='{1}' and Region='{2}' "; sql = string.Format(sql, WHCodeID, WorkPoint, Qu); DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } public DataTable GetHuoJia(string WHCodeID, string Qu, string Pai) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string sql = @" select '' as HuoJiaValue,'' as HuoJiaName union all SELECT GoodsShelf as HuoJiaValue,GoodsShelf +'货架' as HuoJiaName FROM ICSLocation WITH (NOLOCK) WHERE WHID = '{0}' AND WorkPoint='{1}' and Region='{2}' and Row='{3}' "; sql = string.Format(sql, WHCodeID, WorkPoint, Qu, Pai); DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } public DataTable GetCeng(string WHCodeID, string Qu, string Pai, string HuoJia) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string sql = @" select '' as CengValue,'' as CengName union all SELECT Tier as CengValue,Tier +'层' as CengName FROM ICSLocation WITH (NOLOCK) WHERE WHID = '{0}' AND WorkPoint='{1}' and Region='{2}' and Row='{3}' and GoodsShelf ='{4}' "; sql = string.Format(sql, WHCodeID, WorkPoint, Qu, Pai, HuoJia); DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } public DataTable GetGe(string WHCodeID, string Qu, string Pai, string HuoJia, string Ceng) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string sql = @" select '' as GeValue,'' as GeName union all SELECT Grid as GeValue,Grid +'格' as GeName FROM ICSLocation WITH (NOLOCK) WHERE WHID = '{0}' AND WorkPoint='{1}' and Region='{2}' and Row='{3}' and GoodsShelf ='{4}' and Tier='{5}' "; sql = string.Format(sql, WHCodeID, WorkPoint, Qu, Pai, HuoJia, Ceng); DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } public string AddICSCheck(string Parameter) { string msg = ""; string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "Check/Create"; string result = HttpPost(APIURL, Parameter); 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); } } public string DeleteICSCheck(string keyValue) { //站点信息 string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string msg = ""; keyValue = keyValue.Substring(1, keyValue.Length - 2); string sql = string.Empty; try { sql += string.Format(@" IF EXISTS(SELECT CheckID FROM ICSCheckDetail WHERE CheckID in ({0}) and EATTRIBUTE1 ='1' ) BEGIN RAISERROR('该盘点计划已执行,无法删除!',16,1); RETURN END DELETE FROM dbo.ICSCheck WHERE ID IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint); sql += string.Format(@"DELETE FROM dbo.ICSCheckDetail WHERE CheckID IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint); SqlHelper.ExecuteNonQuery(sql); } catch (Exception ex) { msg = ex.Message; } return msg; } public DataTable GetGridJsonWarehouse(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); #region [SQL] string sql = @"select distinct a.ID, a.WarehouseCode as SelectLevel ,a.WarehouseCode,a.WarehouseName from ICSWarehouse a "; #endregion if (!string.IsNullOrWhiteSpace(queryJson)&& !string.IsNullOrWhiteSpace(queryParam["StartDate"].ToString())&& !string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString())) { sql += " INNER JOIN ICSWareHouseLotInfoLog c ON (c.FromWarehouseCode=a.WarehouseCode or c.ToWarehouseCode=a.WarehouseCode) AND a.WorkPoint=c.WorkPoint AND (c.TransType='1' or c.TransType='2') WHERE 1=1 "; if (!string.IsNullOrWhiteSpace(queryParam["StartDate"].ToString())) { sql += " and c.MTIME >= '" + queryParam["StartDate"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString())) { sql += " and c.MTIME < '" + queryParam["EndDate"].ToString() + "' "; } } else { sql += " WHERE 1=1"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable GetSubGridJsonRegion(string ID, ref Pagination jqgridparam) { DataTable dt = new DataTable(); //var queryParam = queryJson.ToJObject(); List parameter = new List(); string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @" select distinct b.WarehouseCode+'-'+a.Region as SelectLevelAA, dbo.GetSelectLevel(a.LocationCode,b.WarehouseCode,a.Region) as SelectLevel, a.WHID, b.WarehouseCode,a.Region from ICSLocation a left join ICSWarehouse b on a.WHID=b.ID and a.WorkPoint=b.WorkPoint WHERE a.WHID='" + ID + "' and a.WorkPoint in ('" + WorkPoint + "')"; return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable GetSubGridJsonRow(string WHID, string Region, ref Pagination jqgridparam) { DataTable dt = new DataTable(); //var queryParam = queryJson.ToJObject(); List parameter = new List(); string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @" select distinct isnull(b.WarehouseCode,'')+'-'+isnull(a.Region,'')+'-'+isnull(a.Row,'') as SelectLevelAA, dbo.GetSelectLevel(a.LocationCode,b.WarehouseCode,a.Region+'-'+a.Row) as SelectLevel, a.WHID, b.WarehouseCode,a.Region ,a.Row from ICSLocation a left join ICSWarehouse b on a.WHID=b.ID and a.WorkPoint=b.WorkPoint WHERE a.WHID='" + WHID + "' and a.Region='" + Region + "' and isnull(a.Row,'') !='' and a.WorkPoint in ('" + WorkPoint + "')"; return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable GetSubGridJsonGoodsShelf(string WHID, string Region, string Row, ref Pagination jqgridparam) { DataTable dt = new DataTable(); //var queryParam = queryJson.ToJObject(); List parameter = new List(); string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @" select distinct isnull(b.WarehouseCode,'')+'-'+isnull(a.Region,'')+'-'+isnull(a.Row,'')+'-'+isnull(a.GoodsShelf,'') as SelectLevelAA, dbo.GetSelectLevel(a.LocationCode,b.WarehouseCode,a.Region+'-'+a.Row+'-'+a.GoodsShelf) as SelectLevel, a.WHID, b.WarehouseCode,a.Region ,a.Row,a.GoodsShelf from ICSLocation a left join ICSWarehouse b on a.WHID=b.ID and a.WorkPoint=b.WorkPoint WHERE a.WHID='" + WHID + "' and a.Region='" + Region + "' and a.Row='" + Row + "' and isnull(a.GoodsShelf,'') !='' and a.WorkPoint in ('" + WorkPoint + "')"; return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable GetSubGridJsonTier(string WHID, string Region, string Row, string GoodsShelf, ref Pagination jqgridparam) { DataTable dt = new DataTable(); //var queryParam = queryJson.ToJObject(); List parameter = new List(); string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @" select distinct isnull(b.WarehouseCode,'')+'-'+isnull(a.Region,'')+'-'+isnull(a.Row,'')+'-'+isnull(a.GoodsShelf,'') +'-'+isnull(a.Tier,'') as SelectLevelAA, dbo.GetSelectLevel(a.LocationCode,b.WarehouseCode,a.Region+'-'+a.Row+'-'+a.GoodsShelf+'-'+a.Tier) as SelectLevel, a.WHID, b.WarehouseCode,a.Region ,a.Row,a.GoodsShelf ,a.Tier from ICSLocation a left join ICSWarehouse b on a.WHID=b.ID and a.WorkPoint=b.WorkPoint WHERE a.WHID='" + WHID + "' and a.Region='" + Region + "' and a.Row='" + Row + "' and a.GoodsShelf='" + GoodsShelf + "' and isnull(a.Tier,'') !='' and a.WorkPoint in ('" + WorkPoint + "')"; return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable GetSubGridJsonGrid(string WHID, string Region, string Row, string GoodsShelf, string Tier, ref Pagination jqgridparam) { DataTable dt = new DataTable(); //var queryParam = queryJson.ToJObject(); List parameter = new List(); string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @" select distinct isnull(b.WarehouseCode,'')+'-'+isnull(a.Region,'')+'-'+isnull(a.Row,'')+'-'+isnull(a.GoodsShelf,'') +'-'+isnull(a.Tier,'')+'-'+isnull(a.Grid,'') as SelectLevelAA, dbo.GetSelectLevel(a.LocationCode,b.WarehouseCode,a.Region+'-'+a.Row+'-'+a.GoodsShelf+'-'+a.Tier+'-'+a.Grid) as SelectLevel, a.WHID, b.WarehouseCode,a.Region ,a.Row ,a.GoodsShelf ,a.Tier,a.Grid from ICSLocation a left join ICSWarehouse b on a.WHID=b.ID and a.WorkPoint=b.WorkPoint WHERE a.WHID='" + WHID + "' and a.Region='" + Region + "' and a.Row='" + Row + "' and a.Tier='" + Tier + "' and a.GoodsShelf='" + GoodsShelf + "' and isnull(a.Grid,'') !='' and a.WorkPoint in ('" + WorkPoint + "')"; return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable StatementExportAll(string ID,string Inventory,string InvCode) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = string.Empty; object Figure = GetDecimalDigits(); string TableCode = string.Empty; #region sql语句 sql = @"SELECT distinct e.CheckCode as 盘点单号, a.LotNo as 条码, f.BatchCode as 批次, b.InvCode as 料品代码, b.InvName as 料品名称, b.InvStd as 规格型号, b.InvUnit as 单位, CAST(a.Quantity AS DECIMAL(18,{0})) as 库存数量, d.WarehouseCode as 仓库, d.LocationCode as 库位, g.LocationName as 库位名称, CAST(a.PrimaryQuantity AS DECIMAL(18,{0})) as 初盘数量, CAST(a.PrimaryAmount AS DECIMAL(18,{0})) as 初盘辅计量数量, a.PrimaryQuantity- a.Quantity as 初盘差异, CAST(a.ReplayQuantity as DECIMAL(18,{0})) as 复盘数量, CAST(a.ReplayAmount as DECIMAL(18,{0})) as 复盘辅计量数量, a.ReplayQuantity- a.Quantity as 复盘差异, CAST(a.CheckQuantity as DECIMAL(18,{0})) as 抽盘数量, CAST(a.CheckAmount as DECIMAL(18,{0})) as 抽盘辅计量数量, a.CheckQuantity- a.Quantity as 抽盘差异, a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8, a.EATTRIBUTE9,a.EATTRIBUTE10 FROM ICSCheck e left join dbo.ICSCheckDetail a on a.CheckID=e.ID and a.WorkPoint=e.WorkPoint left join ICSInventoryLot c on a.LotNo=c.LotNO and a.WorkPoint=c.WorkPoint left join ICSInventory b on c.InvCode=b.InvCode AND c.WorkPoint=b.WorkPoint left join ICSWareHouseLotInfo d on c.LotNO=d.LotNO AND c.WorkPoint=d.WorkPoint left join dbo.ICSExtension f on c.ExtensionID=f.ID and c.WorkPoint=f.WorkPoint left join ICSLocation g on g.LocationCode=d.LocationCode and g.WorkPoint=d.WorkPoint WHERE 1=1 and e.CheckCode in (" + ID.TrimEnd(',') + ") "; TableCode = "ICSCheckDetail"; #endregion sql = sql + " and a.WorkPoint='{1}'"; if (!string.IsNullOrWhiteSpace(InvCode)) { sql += " and b.InvCode like '%" + InvCode + "%' "; } if (Inventory == "1") { sql += "and a.Quantity>0"; } else if (Inventory == "2") { sql += "and a.Quantity<=0"; } sql += "order by d.WarehouseCode asc ,d.LocationCode asc"; sql = string.Format(sql, Figure, WorkPoint); DataTable dt = SqlHelper.GetDataTableBySql(sql); DataTable dtColumn = ColumnEnable(TableCode); foreach (DataRow drC in dtColumn.Rows) { if (dt.Columns.Contains(drC["ColumnCode"].ToString())) { if (!Convert.ToBoolean(drC["Enable"])) { dt.Columns.Remove(drC["ColumnCode"].ToString()); } else if (Convert.ToBoolean(drC["Enable"])) { dt.Columns[drC["ColumnCode"].ToString()].ColumnName = drC["Name"].ToString(); } } } return dt; } public DataTable ColumnEnable(string TableCode) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = string.Empty; sql = @"select ColumnCode,Name,Enable from ICSColumnEnable where TableCode='{0}' and WorkPoint='{1}'"; sql = string.Format(sql, TableCode, WorkPoint); DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } public object GetDecimalDigits() { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); try { string sql = string.Empty; sql = @"select Figure from ICSConfiguration where Code='Figure001' and Enable='1' and WorkPoint='" + WorkPoint + "'"; object Figure = SqlHelper.ExecuteScalar(sql); return Figure; } catch (Exception ex) { throw new Exception(ex.Message.ToString()); } } /// /// 按照物料显示数据 /// /// /// /// public DataTable GetGridJsonInv(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); #region [SQL] string sql = @"select DISTINCT a.ID ,a.InvName,a.InvStd,a.InvCode,a.InvUnit from ICSWareHouseLotInfo b INNER JOIN ICSInventory a ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint "; sql += " WHERE 1=1"; sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName()); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { //if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) //{ // sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; //} if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { string[] values = queryParam["InvCode"].ToString().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); string InvCode = "'" + string.Join("','", values) + "'"; if (values.Length>1) { sql += " and a.InvCode in (" + InvCode + ") "; } else { sql += " and a.InvCode like '%"+ queryParam["InvCode"].ToString() + "%' "; } } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and a.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString())) { sql += " and a.InvStd like '%" + queryParam["InvStd"].ToString() + "%' "; } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public string AuditICSCheck(string keyValue) { string msg = ""; keyValue = keyValue.Substring(1, keyValue.Length - 2); string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; try { string connString = SqlHelper.DataCenterConnString; SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString); conn.Open(); SqlTransaction sqlTran = conn.BeginTransaction(); SqlCommand cmd = new SqlCommand(); cmd.Transaction = sqlTran; cmd.Connection = conn; try { string sql = @"select a.WorkPoint,e.InvCode,f.WarehouseCode as WHCode , sum(isnull(a.PrimaryQuantity,0))-sum(isnull(g.Quantity,0)) as Num ,c.BatchCode INTO #TempERP from ICSCheckDetail a left join ICSInventoryLot b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint left join dbo.ICSInventory e on b.InvCode=e.InvCode and b.WorkPoint=e.WorkPoint left join ICSExtension c on b.ExtensionID=c.ID and a.WorkPoint=c.WorkPoint left join dbo.ICSWareHouseLotInfo g on b.LotNo=g.LotNo and b.WorkPoint=g.WorkPoint left join dbo.ICSLocation d on g.LocationCode=d.LocationCode and a.WorkPoint=d.WorkPoint left join dbo.ICSWarehouse f on d.WHID=f.ID and d.WorkPoint=f.WorkPoint where a.CheckID in ({0}) and a.WorkPoint='{1}' group by a.WorkPoint,e.InvCode,f.WarehouseCode,c.BatchCode select distinct WorkPoint as Costre,WorkPoint FROM #TempERP select WorkPoint as Costre, InvCode,WHCode,Num as Quantity ,'0' as Amount ,BatchCode FROM #TempERP where Num<>0 DROP TABLE #TempERP"; sql = string.Format(sql, keyValue.TrimEnd(','), WorkPoint); DataSet DSet = SqlCommandHelper.SQlReturnDataSet(sql, cmd); string Inputstr = SqlHelper.DataSetToJson(DSet, "details", "Costre"); string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "CheckDiffDoc/Create"; string result = HttpPost(APIURL, Inputstr); JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText); string MessAge = Obj["Message"].ToString(); string Success = Obj["Success"].ToString(); string ERPSql = ""; if (Success.ToUpper() == "FALSE") { throw new Exception("ERP接口调用失败:" + MessAge); } else { try { JArray res = (JArray)JsonConvert.DeserializeObject(Obj["Data"].ToString()); foreach (var item in res) { JObject jo = (JObject)item; ERPSql = @"update ICSCheck set Status='3' ,EATTRIBUTE1='"+ jo ["ID"].ToString()+ "' where ID in ("+ keyValue.TrimEnd(',') + ") "; //JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["details"].ToString()); //foreach (var detail in resdetail) //{ // JObject det = (JObject)detail; // ERPSql += @"UPDATE a set ERPID='{3}',ERPDetailID='{4}',ERPCode='{5}',ERPSequence='{6}',ERPUpload='1' // from ICSWareHouseLotInfoLog a // inner join ICSMTDOC b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint // where b.MTDOCCode='{0}' and b.Sequence='{1}' and a.Identification='{2}'"; // ERPSql += @" update ICSMTDOC set MTDOCID='{3}',MTDOCDetailID='{4}' where MTDOCCode='{0}' and Sequence='{1}'"; // ERPSql = string.Format(ERPSql, MTDOCCode, det["Sequence"].ToString(), Identification, jo["ID"].ToString(), det["DetailID"].ToString(), jo["MTCode"].ToString(), det["Sequence"].ToString()); //} } SqlCommandHelper.CmdExecuteNonQuery(ERPSql, cmd); } catch (Exception ex) { msg = ex.Message; } } cmd.Transaction.Commit(); //return dt; } catch (Exception ex) { cmd.Transaction.Rollback(); msg = ex.Message; } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } conn.Dispose(); } } catch (Exception ex) { msg = ex.Message; } return msg; } public string AuditSkipLot(string keyValue) { //站点信息 string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string msg = ""; keyValue = keyValue.Substring(1, keyValue.Length - 2); string sql = string.Empty; try { sql += string.Format(@" update A SET A.Quantity=0 FROM ICSWareHouseLotInfo A INNER JOIN ICSCheckDetail B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint INNER JOIN ICSCheck C ON C.ID=B.CheckID AND C.WorkPoint=B.WorkPoint WHERE ISNULL(B.EATTRIBUTE1,0)=0 AND ISNULL(B.EATTRIBUTE2,0)=0 AND ISNULL(B.EATTRIBUTE3,0)=0 AND C.ID IN ({0}) AND C.WorkPoint='{1}'", keyValue.TrimEnd(','), WorkPoint); SqlHelper.ExecuteNonQuery(sql); } catch (Exception ex) { msg = ex.Message; } return msg; } /// /// 按照备用字段9(客户料号)显示数据 金豪特有 其他项目如果不是字段相同不要在前台配置此按钮 /// /// /// /// public DataTable GetGridJsonCustomerInvJH(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); #region [SQL] string sql = @"select DISTINCT a.ID ,a.InvName,a.InvStd,a.InvCode,a.InvUnit,a.EATTRIBUTE9 AS CustomerInvCode from ICSWareHouseLotInfo b INNER JOIN ICSInventory a ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint "; sql += " WHERE 1=1 AND ISNULL(a.EATTRIBUTE9,'')!='' "; sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName()); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["CustomerInvCode"].ToString())) { string[] values = queryParam["CustomerInvCode"].ToString().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); string CustomerInvCode = "'" + string.Join("','", values) + "'"; if (values.Length > 1) { sql += " and a.EATTRIBUTE9 in (" + CustomerInvCode + ") "; } else { sql += " and a.EATTRIBUTE9 like '%" + queryParam["CustomerInvCode"].ToString() + "%' "; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } } }