using Newtonsoft.Json; using Newtonsoft.Json.Linq; using NFine.Code; using NFine.Data.Extensions; using NFine.Domain._03_Entity.SRM; using NFine.Domain.Entity.ProductManage; using NFine.Domain.IRepository.ProductManage; using NFine.Repository; using NFine.Repository.ProductManage; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.Common; using System.Linq; using System.Text; namespace NFine.Application { public class POMaintenanceApp : RepositoryFactory { public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); string sql = @" SELECT DISTINCT a.ID, a.POCode,CONVERT(NVARCHAR(15),CreateDateTime,23) AS PODate,ExtensionID,a.VenCode,d.VenName,ReleaseState,a.WorkPoint,c.WorkPointName,b.PlanArriveDate FROM dbo.ICSPurchaseOrder a LEFT JOIN (SELECT POCode,PlanArriveDate,WorkPoint FROM dbo.ICSPurchaseOrder) b ON a.POCode=b.POCode and a.WorkPoint=b.WorkPoint LEFT JOIN Sys_WorkPoint c on a.WorkPoint=c.WorkPointCode left join ICSVendor d on a.VenCode=d.VenCode and a.WorkPoint=d.WorkPoint WHERE 1=1 and ReleaseState='1'"; if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString())) { sql += " and a.ExtensionID like '%" + queryParam["ORDERNO"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.POCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString())) { sql += " and a.PODate >='" + queryParam["BeginDate"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString())) { sql += " and a.PODate <='" + queryParam["EndDate"].ToString() + "'"; } if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString())) { sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString())) { sql += " and a.VenName like '%" + queryParam["VenName"].ToString() + "%'"; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "1") { sql += " AND a.ArriveDate IS not NULL"; } else if(POStatus=="2") { sql += " AND a.ArriveDate IS NULL"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin") { //已改多站点 sql += " and WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable GetGridJsonWeiWai(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); string sql = @" SELECT DISTINCT a.ID, a.OOCode,CONVERT(NVARCHAR(15),CreateDateTime,23) AS PODate,ExtensionID,a.VenCode,d.VenName,ReleaseState,a.WorkPoint,c.WorkPointName,a.PlanArriveDate FROM dbo.ICSOutsourcingOrder a LEFT JOIN Sys_WorkPoint c on a.WorkPoint=c.WorkPointCode left join ICSVendor d on a.VenCode=d.VenCode and a.WorkPoint=d.WorkPoint WHERE 1=1 and ReleaseState='1'"; if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString())) { sql += " and a.ExtensionID like '%" + queryParam["ORDERNO"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.OOCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString())) { sql += " and a.PODate >='" + queryParam["BeginDate"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString())) { sql += " and a.PODate <='" + queryParam["EndDate"].ToString() + "'"; } if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString())) { sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString())) { sql += " and a.VenName like '%" + queryParam["VenName"].ToString() + "%'"; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "1") { sql += " AND a.ArriveDate IS not NULL"; } else if (POStatus == "2") { sql += " AND a.ArriveDate IS NULL"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin") { //已改多站点 sql += " and WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 子表查询 /// /// /// /// public DataTable GetSubGridJson(string queryJson, ref Pagination jqgridparam,string WorkPoint) { DataTable dt = new DataTable(); //var queryParam = queryJson.ToJObject(); List parameter = new List(); string sql = @"SELECT a.POCode, a.ID, a.Sequence,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.Quantity,CONVERT(NVARCHAR(50), a.PlanArriveDate,23) as PreArriveDate, CONVERT(NVARCHAR(50),a.ArriveDate,23) as ArriveDate ,a.ExtensionID, CONVERT(NVARCHAR(50),a.DeliveryDate,23) as DeliveryDate, case when isnull(a.ArriveDate,'')='' then '0' else '1' end as IsNew, b.ClassName,b.InvDesc FROM dbo.ICSPurchaseOrder a left JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint WHERE a.ID='" + queryJson + "' and a.WorkPoint='"+ WorkPoint + "'"; return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 子表查询 /// /// /// /// public DataTable GetSubGridJsonWeiWai(string queryJson, ref Pagination jqgridparam,string WorkPoint) { DataTable dt = new DataTable(); //var queryParam = queryJson.ToJObject(); List parameter = new List(); string sql = @" SELECT a.OOCode, a.ID, a.Sequence,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.Quantity,CONVERT(NVARCHAR(50), a.PlanArriveDate,23) as PreArriveDate, CONVERT(NVARCHAR(50),a.ArriveDate,23) as ArriveDate ,a.ExtensionID, CONVERT(NVARCHAR(50),a.DeliveryDate,23) as DeliveryDate, case when isnull(a.ArriveDate,'')='' then '0' else '1' end as IsNew, b.ClassName,b.InvDesc FROM dbo.ICSOutsourcingOrder a left JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint WHERE a.ID='" + queryJson + "' and a.WorkPoint='"+ WorkPoint + "'"; return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 订单发布 /// /// 参数 /// public int SubmitPoMaintenance(string queryJson) { DataTable dt = new DataTable(); List parameter = new List(); ICSPO_PoMain[] list = JsonConvert.DeserializeObject(queryJson); string sql = string.Empty; //已改多站点 //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; foreach (var obj in list) { if (!string.IsNullOrWhiteSpace(obj.DeliveryDate)) { sql += ",DeliveryDate='" + obj.DeliveryDate + "' ,DeliveryUser='" + UserCode + "'"; } if (obj.IsNew == "0") { if (!string.IsNullOrWhiteSpace(obj.ArriveDate)) sql += ",ArriveDate='" + obj.ArriveDate + "',ArriveUser='" + UserCode + "',MTIME=getdate() "; } sql += " where ID='" + obj.ID + "' and WorkPoint='" + obj.WorkPoint + "'"; sql += " \r\n"; sql = "update ICSPurchaseOrder set "+sql.Substring(1); } string U9ConnStr = ""; foreach (var obj in list) { if (obj.WorkPoint== "UFDATA_206_2019") { U9ConnStr= ConfigurationManager.ConnectionStrings["U8connstr2"].ConnectionString; } if (obj.WorkPoint == "UFDATA_106_2019") { U9ConnStr = ConfigurationManager.ConnectionStrings["U8connstr"].ConnectionString; } string sqlU9 = string.Format(@"update b set b.cDefine28='" + obj.ArriveDate + @"' from dbo.PO_Pomain a left join dbo.po_podetails b on a.POID=b.POID where a.cPOID='" + obj.POCode + "' and b.ivouchrowno='" + obj.PORow + "'"); sqlU9 += "\r\n"; sqlU9 += string.Format(@"update b set b.cDefine29='" + obj.DeliveryDate + @"' from dbo.PO_Pomain a left join dbo.po_podetails b on a.POID=b.POID where a.cPOID='" + obj.POCode + "' and b.ivouchrowno='" + obj.PORow + "'"); int i = SqlHelper.ExecuteNonQuery(U9ConnStr, sqlU9); } StringBuilder Str = new StringBuilder(sql); return Repository().ExecuteBySql(Str); } /// /// 订单发布 /// /// 参数 /// public int SubmitFormWeiWai(string queryJson) { DataTable dt = new DataTable(); List parameter = new List(); ICSPO_PoMain[] list = JsonConvert.DeserializeObject(queryJson); string sql = string.Empty; //已改多站点 //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; foreach (var obj in list) { if (!string.IsNullOrWhiteSpace(obj.DeliveryDate)) { sql += ",DeliveryDate='" + obj.DeliveryDate + "' ,DeliveryUser='" + UserCode + "'"; } if (obj.IsNew == "0") { if (!string.IsNullOrWhiteSpace(obj.ArriveDate)) sql += ",ArriveDate='" + obj.ArriveDate + "',ArriveUser='" + UserCode + "',MTIME=getdate() "; } sql += " where ID='" + obj.ID + "' and WorkPoint='" + obj.WorkPoint + "'"; sql += " \r\n"; sql = "update ICSOutsourcingOrder set " + sql.Substring(1); } string U9ConnStr = ""; foreach (var obj in list) { if (obj.WorkPoint == "UFDATA_206_2019") { U9ConnStr = ConfigurationManager.ConnectionStrings["U8connstr2"].ConnectionString; } if (obj.WorkPoint == "UFDATA_106_2019") { U9ConnStr = ConfigurationManager.ConnectionStrings["U8connstr"].ConnectionString; } string sqlU9 = string.Format(@"update b set b.cDefine28='" + obj.ArriveDate + @"' from dbo.PO_Pomain a left join dbo.po_podetails b on a.POID=b.POID where a.cPOID='" + obj.POCode + "' and b.ivouchrowno='" + obj.PORow + "'"); sqlU9 += "\r\n"; sqlU9 += string.Format(@"update b set b.cDefine29='" + obj.DeliveryDate + @"' from dbo.PO_Pomain a left join dbo.po_podetails b on a.POID=b.POID where a.cPOID='" + obj.POCode + "' and b.ivouchrowno='" + obj.PORow + "'"); int i = SqlHelper.ExecuteNonQuery(U9ConnStr, sqlU9); } StringBuilder Str = new StringBuilder(sql); return Repository().ExecuteBySql(Str); } } }