using NFine.Application; using NFine.Application.KBSSRM; using NFine.Application.ProductManage; using NFine.Code; using NFine.Data.Extensions; using NFine.Domain.Entity.ProductManage; using NPOI.SS.Formula.Functions; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Threading; using System.Web; using System.Web.Mvc; using static NPOI.HSSF.Util.HSSFColor; namespace NFine.Web.Areas.KBSSRM.Controllers { public class CreateItemLotController : ControllerBase { private KBSCreateItemLotApp App = new KBSCreateItemLotApp(); [HttpGet] [HandlerAjaxOnly] public ActionResult GetGridJson(Pagination pagination, string queryJson) { DataTable ListData = App.GetGridJson(queryJson, ref pagination); var JsonData = new { total = pagination.total, page = pagination.page, records = pagination.records, rows = ListData, }; return Content(JsonData.ToJson()); } [HttpGet] [HandlerAjaxOnly] public ActionResult GetGridJsonByBB(Pagination pagination, string queryJson) { DataTable ListData = App.GetGridJsonByBB(queryJson, ref pagination); var JsonData = new { total = pagination.total, page = pagination.page, records = pagination.records, rows = ListData, }; return Content(JsonData.ToJson()); } [HttpGet] [HandlerAjaxOnly] public ActionResult GetGridJsonWeiWai(Pagination pagination, string queryJson) { DataTable ListData = App.GetGridJsonWeiWai(queryJson, ref pagination); var JsonData = new { total = pagination.total, page = pagination.page, records = pagination.records, rows = ListData, }; return Content(JsonData.ToJson()); } [HttpGet] [HandlerAjaxOnly] public ActionResult GetGridJsonWeiWaiByBB(Pagination pagination, string queryJson) { DataTable ListData = App.GetGridJsonWeiWaiByBB(queryJson, ref pagination); var JsonData = new { total = pagination.total, page = pagination.page, records = pagination.records, rows = ListData, }; return Content(JsonData.ToJson()); } [HttpGet] [HandlerAjaxOnly] public ActionResult GetSubGridJson(string POCode, string PORow,string WorkPoint, Pagination pagination) { DataTable ListData = App.GetSubGridJson(POCode, PORow, WorkPoint ,ref pagination); var JsonData = new { total = pagination.total, page = pagination.page, records = pagination.records, rows = ListData, }; return Content(JsonData.ToJson()); } [HttpGet] [HandlerAjaxOnly] public ActionResult GetSubGridJsonByWeiWai(string POCode, string PORow, string WorkPoint, Pagination pagination) { DataTable ListData = App.GetSubGridJsonByWeiWai(POCode, PORow, WorkPoint, ref pagination); var JsonData = new { total = pagination.total, page = pagination.page, records = pagination.records, rows = ListData, }; return Content(JsonData.ToJson()); } public ActionResult Index() { return View(); } public ActionResult Form2() { return View(); } public ActionResult IndexByBB() { return View(); } public ActionResult FormByYL() { return View(); } //[HttpGet] //[HandlerAjaxOnly] //public ActionResult GetFormJson(string keyValue) //{ // //var data = maintainAppApp.GetForm(keyValue); // //return Content(data.ToJson()); //} [HttpPost] [HandlerAjaxOnly] [ValidateAntiForgeryToken] public ActionResult SubmitForm(string POCode, string PORow, string keyValue, string WorkPoint, string IsEable) { int i = App.CreateItemLotNo(POCode, PORow, keyValue, WorkPoint, IsEable); if (i > 0) { return Success("生成成功!"); } else { return Error("生成失败!"); } } [HttpPost] [HandlerAjaxOnly] [ValidateAntiForgeryToken] public ActionResult BatchSubmitForm(string keyValue) { int i = App.BatchSubmitForm(keyValue); if (i > 0) { return Success("生成成功!"); } else { return Error("生成失败!"); } } [HttpPost] [HandlerAjaxOnly] [ValidateAntiForgeryToken] public ActionResult SubmitFormWeiWai(string OOCode, string Sequence, string keyValue, string WorkPoint, string IsEable) { int i = App.SubmitFormWeiWai(OOCode, Sequence, keyValue, WorkPoint, IsEable); if (i > 0) { return Success("生成成功!"); } else { return Error("生成失败!"); } } /// /// 点击生成条码查询 /// /// 采购订单 /// 采购行 /// 多站点 /// [HttpGet] [HandlerAjaxOnly] public ActionResult GetSubGridJsonByCreate(string POCode, string PORow, string WorkPoint) { DataTable ListData = App.GetSubGridJsonByCreate(POCode, PORow,WorkPoint); var JsonData = new { rows = ListData, }; return Content(JsonData.ToJson()); } /// /// 点击生成条码查询 /// /// 采购订单 /// 采购行 /// 多站点 /// [HttpGet] [HandlerAjaxOnly] public ActionResult GetSubGridJsonByCreateWeiWai(string OOCode, string Sequence, string WorkPoint) { DataTable ListData = App.GetSubGridJsonByCreateWeiWai(OOCode, Sequence, WorkPoint); var JsonData = new { rows = ListData, }; return Content(JsonData.ToJson()); } [HttpGet] [HandlerAjaxOnly] public ActionResult GetVendorLotNo(string InvCode, string WorkPoint) { DataTable ListData = App.GetVendorLotNo(InvCode, WorkPoint); var JsonData = new { VendorLotNo = ListData.Rows[0][0].ToString(), }; return Content(JsonData.ToJson()); } [HttpPost] [HandlerAjaxOnly] [ValidateAntiForgeryToken] public ActionResult DeleteItemLot(string keyValue, string WorkPoint) { keyValue = keyValue.Substring(1, keyValue.Length - 2); WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2); string msg = App.DeleteItemLot(keyValue, WorkPoint); if (string.IsNullOrWhiteSpace(msg)) { return Success("删除成功!"); } else { return Error(msg); } } /// /// 打印数据参数:服务器的URL+打印的文件名,转化为Base64编码 /// protected string strPrintData; /// /// 标识是否安装了控件 /// protected bool bIsInstallPrintControl = true; /// /// 打印控件的Cookie值 /// protected string strPrintControlCookie = ""; /// /// 获取Url中去掉文件名的路径 /// /// private string GetUrlPath() { string strUrl = Request.Url.ToString(); int iEnd = strUrl.LastIndexOf("/"); strUrl = strUrl.Substring(0, iEnd + 1); return strUrl; } /// /// 设置控件调用的Cookie值,判断是否安装了打印控件 /// /// private void SetCookieAndURL(PrintJson pJson) { bIsInstallPrintControl = false; strPrintControlCookie = ""; HttpCookie pCookieInstall = Request.Cookies["InstallPrintControl"]; if (pCookieInstall != null) { //Cookie存在 strPrintControlCookie = pCookieInstall.Value.ToString(); //以Cookie值查找在数据表中是否存在 string strSql = @"Select * From sys_SRM_CheckInstall Where Cookie = @Cookie"; SqlParameter[] pmcCookie = { new SqlParameter("Cookie", strPrintControlCookie) }; using (SqlDataReader drCookie = DbHelper.ExecuteReader(DbHelper.ConnectionString, CommandType.Text, strSql, pmcCookie)) { if (drCookie.Read()) { //标识为已经安装 bIsInstallPrintControl = true; } drCookie.Close(); } //更新Cookie的保存时间 pCookieInstall.Expires = DateTime.Now.AddYears(10); Response.SetCookie(pCookieInstall); } else {//Cookie不存在,则新建Cookie strPrintControlCookie = System.Guid.NewGuid().ToString(); pCookieInstall = new HttpCookie("InstallPrintControl", strPrintControlCookie); pCookieInstall.Expires = DateTime.Now.AddYears(10); Response.Cookies.Add(pCookieInstall); } string strUrl = Server.MapPath("/PrintTemp/") + "IsCheckInstall"; pJson.SetCookieAndURL(strPrintControlCookie, strUrl); } /// /// 生成条码打印 /// /// ID /// 多站点 /// [HttpPost] [HandlerAjaxOnly] public ActionResult PrintItemLot(string keyValue, string WorkPoint,string Type) { // string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; keyValue = keyValue.Substring(1, keyValue.Length - 2); WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2); string strPrintFileName = Server.MapPath("/ReportFile/") + "lot.fr3"; PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName); pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息 //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息 //pJson.AddPrintParam("ShopName", "测试酒楼"); //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!"); SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件 string strSql = ""; if (Type=="1") { strSql = @"SELECT distinct b.ExtensionID,a.InvCode,a.LotNo AS QRLotNo,b.POCode,CONVERT(varchar(100),b.CreateDateTime, 23) PODate,g.BatchCode,a.Quantity,c.InvName, c.InvStd, c.ClassName,c.InvDesc, b.VenCode,h.VenName,c.InvUnit,f.WarehouseName, a.LotNO AS QRLotNo,CONVERT(varchar(100), a.ProductDate, 23) as PRODUCTDATE,CONVERT(varchar(100), b.PlanArriveDate, 23) as PreArriveDate ,CAST(b.VenCode+'_'+a.InvCode+'_'+CAST(a.Quantity AS NVARCHAR(20))+'_'+c.InvUnit+g.BatchCode+'_'+CONVERT(varchar(100), a.ProductDate, 23)+'_' +a.LotNo AS NVARCHAR(100)) AS erweima ,a.EATTRIBUTE2,a.EATTRIBUTE3,CONVERT(varchar(100),dateadd(day,c.EffectiveDays,a.ProductDate), 23) AS exprdate,i.asnCode,b.EATTRIBUTE3 as DXEATTRIBUTE3 ,a.EATTRIBUTE4 as DXEATTRIBUTE4,b.EATTRIBUTE4 as PODXEATTRIBUTE4,c1.LocationCode ,c.EATTRIBUTE11,c.EATTRIBUTE12,c.EATTRIBUTE13,c.EATTRIBUTE14,c.EATTRIBUTE15 ,c.EATTRIBUTE16,c.EATTRIBUTE17,c.EATTRIBUTE18, CASE WHEN c.EATTRIBUTE19='1'THEN'食品级物料'WHEN c.EATTRIBUTE19='0'THEN'非食品级物料' END EATTRIBUTE19,ISNULL(a.EATTRIBUTE6,'') as isSJBGInvCode,a.EATTRIBUTE8, CASE WHEN c.InvIQC='0' THEN '免'ELSE '' END AS InvIQC,k.ContainerCode FROM dbo.ICSInventoryLot a left join ICSExtension g on a.ExtensionID=g.ID and a.WorkPoint=g.WorkPoint left join ICSInventoryLotDetail e on a.lotNo=e.LotNo and a.WorkPoint=e.WorkPoint LEFT JOIN dbo.ICSPurchaseOrder b ON b.POCode=e.TransCode AND b.Sequence=e.TransSequence AND a.WorkPoint=b.WorkPoint LEFT JOIN dbo.ICSInventory c ON a.InvCode=c.InvCode AND a.WorkPoint=c.WorkPoint left join dbo.ICSInventoryBatchEnable d on c.InvCode=d.InvCode and c.WorkPoint=d.WorkPoint AND d.BatchEnable=1 left join ICSWarehouse f on d.WHCode=f.WarehouseCode and d.WorkPoint=f.WorkPoint left join ICSVendor h on b.VenCode=h.VenCode and b.WorkPoint=h.WorkPoint LEFT JOIN icsasndetail i ON a.lotNO=i.LotNO AND a.workPoint=i.workPoint LEFT JOIN dbo.ICSContainerLot j ON a. lotno=j.LotNo AND a. WorkPoint=j. WorkPoint LEFT JOIN dbo.IcSContainer k ON j.ContainerID=k.ID AND i. WorkPoint=k.WorkPoint LEFT JOIN ( SELECT InvCode, WarehouseCode, LocationCode, MTIME, WorkPoint, new_index FROM ( SELECT b.InvCode, b.WarehouseCode, b.LocationCode, b.MTIME, b.WorkPoint, ROW_NUMBER() OVER ( PARTITION BY b.InvCode ORDER BY b.MTIME ASC ) AS new_index FROM ICSWareHouseLotInfo b WITH (NOLOCK) WHERE b.quantity > 0 ) AS subquery WHERE new_index = 1 ) c1 ON c1.invcode = a.invcode AND c1.WorkPoint = a.WorkPoint LEFT JOIN ( SELECT InvCode, WarehouseCode, LocationCode, MTIME, WorkPoint FROM ( SELECT b.InvCode, b.WarehouseCode, b.LocationCode, b.MTIME, b.WorkPoint FROM dbo.ICSWarehouse a LEFT JOIN dbo.ICSWareHouseLotInfo b ON a.WarehouseCode=b.WarehouseCode AND a.WorkPoint=b.WorkPoint WHERE b.quantity > 0 and a.WarehouseCode='YL020' ) AS subquery ) c2 ON c2.invcode = a.invcode AND c2.WorkPoint = a.WorkPoint where a.ID IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint in ('" + WorkPoint.Trim(',') + "')"; } if (Type == "2") { strSql = @"SELECT distinct b.ExtensionID,a.InvCode,a.LotNo AS QRLotNo,b.OOCode as POCode,CONVERT(varchar(100),b.CreateDateTime, 23) PODate,g.BatchCode,a.Quantity,c.InvName, c.InvStd, c.ClassName,c.InvDesc, b.VenCode,h.VenName,c.InvUnit,f.WarehouseName, a.LotNO AS QRLotNo,CONVERT(varchar(100), a.ProductDate, 23) as PRODUCTDATE,CONVERT(varchar(100), b.PlanArriveDate, 23) as PreArriveDate ,CAST(b.VenCode+'_'+a.InvCode+'_'+CAST(a.Quantity AS NVARCHAR(20))+'_'+c.InvUnit+g.BatchCode+'_'+CONVERT(varchar(100), a.ProductDate, 23)+'_' +a.LotNo AS NVARCHAR(100)) AS erweima ,a.EATTRIBUTE3,CONVERT(varchar(100),dateadd(day,c.EffectiveDays,a.ProductDate), 23) AS exprdate,i.OASNCode as asnCode,b.EATTRIBUTE3 as DXEATTRIBUTE3 ,a.EATTRIBUTE4 as DXEATTRIBUTE4,b.EATTRIBUTE4 as PODXEATTRIBUTE4,c1.LocationCode, c.EATTRIBUTE11,c.EATTRIBUTE12,c.EATTRIBUTE13,c.EATTRIBUTE14,c.EATTRIBUTE15 ,c.EATTRIBUTE16,c.EATTRIBUTE17,c.EATTRIBUTE18, CASE WHEN c.EATTRIBUTE19='1'THEN'食品级物料'WHEN c.EATTRIBUTE19='0'THEN'非食品级物料' END EATTRIBUTE19,ISNULL(a.EATTRIBUTE6,'') as isSJBGInvCode,a.EATTRIBUTE8, CASE WHEN c.InvIQC='0' THEN '免'ELSE '' END AS InvIQC ,a.InvCode+'~'+' '+'~'+' '+'~'+b.OOCode+'~'+' '+'~'+h.VenName as NKSM,k.ContainerCode FROM dbo.ICSInventoryLot a left join ICSExtension g on a.ExtensionID=g.ID and a.WorkPoint=g.WorkPoint left join ICSInventoryLotDetail e on a.lotNo=e.LotNo and a.WorkPoint=e.WorkPoint LEFT JOIN dbo.ICSOutsourcingOrder b ON b.OOCode=e.TransCode AND b.Sequence=e.TransSequence AND a.WorkPoint=b.WorkPoint LEFT JOIN dbo.ICSInventory c ON a.InvCode=c.InvCode AND a.WorkPoint=c.WorkPoint left join dbo.ICSInventoryBatchEnable d on c.InvCode=d.InvCode and c.WorkPoint=d.WorkPoint AND d.BatchEnable=1 left join ICSWarehouse f on d.WHCode=f.WarehouseCode and d.WorkPoint=f.WorkPoint left join ICSVendor h on b.VenCode=h.VenCode and b.WorkPoint=h.WorkPoint LEFT JOIN ICSOASNDetail i ON a.lotNO=i.LotNO AND a.workPoint=i.workPoint LEFT JOIN dbo.ICSContainerLot j ON a. lotno=j.LotNo AND a. WorkPoint=j. WorkPoint LEFT JOIN dbo.IcSContainer k ON j.ContainerID=k.ID AND i. WorkPoint=k.WorkPoint LEFT JOIN ( SELECT InvCode, WarehouseCode, LocationCode, MTIME, WorkPoint, new_index FROM ( SELECT b.InvCode, b.WarehouseCode, b.LocationCode, b.MTIME, b.WorkPoint, ROW_NUMBER() OVER ( PARTITION BY b.InvCode ORDER BY b.MTIME ASC ) AS new_index FROM ICSWareHouseLotInfo b WITH (NOLOCK) WHERE b.quantity > 0 ) AS subquery WHERE new_index = 1 ) c1 ON c1.invcode = a.invcode AND c1.WorkPoint = a.WorkPoint where a.ID IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint in ('" + WorkPoint.Trim(',') + "')"; } //string strSql = @"Select * From CashLog"; DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null); string strPrintTempFile = pJson.ShowReport(dtCashLog); //产生JSON文件内容 //string strPrintTempFile = pJson.ExportReportPdf(dtCashLog, null, null, null, null, null, "D:/基础版/NFine.Framework/NFine.Web/File/PDF"); //导出PDF文件 //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印 string strServerURL = GetUrlPath() + "PrintTemp/"; string strData = strServerURL + strPrintTempFile; strPrintData = PrintFunction.EnBase64(strData); var JsonData = new { strPrintData_1 = strPrintData, bIsInstallPrintControl_1 = bIsInstallPrintControl, strPrintControlCookie_1 = strPrintControlCookie }; //多站点 string sql = @"UPDATE dbo.ICSInventoryLot SET PrintTimes=ISNULL(PrintTimes,0)+1, LastPrintUser='', LastPrintTime=GETDATE() WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')"; SqlHelper.ExecuteNonQuery(sql); return Content(JsonData.ToJson()); } [HttpPost] [HandlerAjaxOnly] public ActionResult PrintPurchaseOrder(string keyValue,string Type) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string strSql = string.Empty; DataTable dtOrder = null; keyValue = keyValue.Substring(1, keyValue.Length - 2); string strPrintFileName = Server.MapPath("/ReportFile/") + "PurchaseOrder.fr3"; PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName); pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息 pJson.MasterOptions(1, "POCode", false); //主从关系 SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件 if (Type == "1") { strSql = @"SELECT DISTINCT POCode,a.VenCode,VenName,a.CreateDateTime,CreatePerson,c.F_RealName FROM dbo.ICSPurchaseOrder a LEFT JOIN ICSVendor b ON a.VenCode = b.VenCode AND a.WorkPoint = b.WorkPoint LEFT JOIN sys_srm_user c ON a.CreatePerson=c.F_account AND a.workpoint=c.F_location WHERE POCode IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint=" + WorkPoint.TrimEnd(',') + ""; dtOrder = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null); strSql = @" SELECT a.InvCode,b.INVNAME,b.INVSTD,b.InvUnit,a.Quantity,a.UnitPrice, CAST(a.UnitPrice*a.Quantity AS DECIMAL(18,4)) AS TaxPrice,a.PlanArriveDate ,a.Sequence,a.POCode FROM dbo.ICSPurchaseOrder a LEFT JOIN dbo.ICSINVENTORY b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint WHERE a.POCode IN (" + keyValue.TrimEnd(',') + @") and a.WorkPoint=" + WorkPoint.TrimEnd(',') + @" ORDER BY CONVERT(int,convert(numeric(4,0),a.Sequence ))"; } else { strSql = @" SELECT DISTINCT a.OOCode as POCode ,a.VenCode,VenName,a.CreateDateTime,CreatePerson,c.F_RealName FROM dbo.ICSOutsourcingOrder a LEFT JOIN ICSVendor b ON a.VenCode = b.VenCode AND a.WorkPoint = b.WorkPoint LEFT JOIN sys_srm_user c ON a.CreatePerson=c.F_account AND a.workpoint=c.F_location WHERE OOCode IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint=" + WorkPoint.TrimEnd(',') + ""; dtOrder = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null); strSql = @" SELECT a.InvCode,b.INVNAME,b.INVSTD,b.InvUnit,a.Quantity,a.UnitPrice, CAST(a.UnitPrice*a.Quantity AS DECIMAL(18,4)) AS TaxPrice,a.PlanArriveDate ,a.Sequence,a.OOCode as POCode FROM dbo.ICSOutsourcingOrder a LEFT JOIN dbo.ICSINVENTORY b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint WHERE a.OOCode IN (" + keyValue.TrimEnd(',') + @") and a.WorkPoint=" + WorkPoint.TrimEnd(',') + @" ORDER BY CONVERT(int,convert(numeric(4,0),a.Sequence ))"; } DataTable dtOderDetail = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null); string strPrintTempFile = pJson.ShowReport(dtOrder, dtOderDetail); //产生JSON文件内容 //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印 string strServerURL = GetUrlPath() + "PrintTemp/"; string strData = strServerURL + strPrintTempFile; strPrintData = PrintFunction.EnBase64(strData); var JsonData = new { strPrintData_1 = strPrintData, bIsInstallPrintControl_1 = bIsInstallPrintControl, strPrintControlCookie_1 = strPrintControlCookie }; return Content(JsonData.ToJson()); } /// /// 写日志(用于跟踪) /// private void WriteLog(string strMessage) { string strLogFile = Server.MapPath("./Cookie_Log.txt"); StreamWriter swLogFile = null; try { if (!System.IO.File.Exists(strLogFile)) { swLogFile = System.IO.File.CreateText(strLogFile); } else { swLogFile = System.IO.File.AppendText(strLogFile); } swLogFile.WriteLine(strMessage); } catch { } finally { if (swLogFile != null) swLogFile.Close(); } } /// ///判断数据表中是否存在,若不存在则新建一条记录,若存在则更新最后访问的时间 /// /// private void UpdateCheckInstall(string strCookie) { bool bIsExist = false; //判断记录是否存在 GetLastAccessTime(strCookie, ref bIsExist); string strSql = ""; SqlParameter[] pmcCookie = { new SqlParameter("Cookie", strCookie) }; if (bIsExist) { //存在则更新最后访问的时间 strSql = @"Update sys_SRM_CheckInstall Set LastAccessTime = getDate() Where Cookie = @Cookie"; } else { //不存在则新建一条记录 strSql = @"Insert into sys_SRM_CheckInstall(Cookie, LastAccessTime) Values( @Cookie, getDate() )"; } DbHelper.ExecuteNonQuery(DbHelper.ConnectionString, CommandType.Text, strSql, pmcCookie); } public DateTime ToDateTime(object SrcValue) { if (Convert.IsDBNull(SrcValue) == true) return DateTime.MinValue; else { try { return Convert.ToDateTime(SrcValue); } catch { return DateTime.MinValue; } } } /// /// 获取此Cookie的最后访问时间 /// /// /// private DateTime GetLastAccessTime(string strCookie, ref bool bIsExist) { DateTime dtLastAccessTime = DateTime.MinValue; bIsExist = false; string strSql = @"Select * From sys_SRM_CheckInstall Where Cookie = @Cookie"; SqlParameter[] pmcCookie = { new SqlParameter("Cookie", strCookie) }; using (SqlDataReader drCookie = DbHelper.ExecuteReader(DbHelper.ConnectionString, CommandType.Text, strSql, pmcCookie)) { if (drCookie.Read()) { dtLastAccessTime = ToDateTime(drCookie["LastAccessTime"]); bIsExist = true; } drCookie.Close(); } return dtLastAccessTime; } [HttpGet] [HandlerAjaxOnly] public ActionResult IsCheckInstall(string checkInstall) { string strValue = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss 访问,"); if (Request.QueryString["cookie"] != null) { //有控件上传的Cookie值 string strCookie = Request.QueryString["cookie"].ToString(); //判断数据表中是否存在,若不存在则新建一条记录,若存在则更新最后访问的时间 UpdateCheckInstall(strCookie); strValue = strValue + "上传的cookie:" + strCookie; } else if (checkInstall != null) {//Ajax检查控件是否安装了,防止那种客户把打印控件卸装了,打印时无法检测到的情况 string strCookie = checkInstall; //读取最后访问的时间 string strResult = "PrintControlInstall"; bool bIsExist = false; DateTime dtLastAccessTime = GetLastAccessTime(strCookie, ref bIsExist); if (!bIsExist || dtLastAccessTime.AddSeconds(30) < DateTime.Now) { strResult = "NOT"; } Response.Clear(); Response.Write(strResult); strValue = strValue + "检测安装的值:" + strCookie; } WriteLog(strValue); return null; } [HttpGet] [HandlerAjaxOnly] public ActionResult IsCheckInstall() { string strValue = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss 访问,"); if (Request.QueryString["cookie"] != null) { //有控件上传的Cookie值 string strCookie = Request.QueryString["cookie"].ToString(); //判断数据表中是否存在,若不存在则新建一条记录,若存在则更新最后访问的时间 UpdateCheckInstall(strCookie); strValue = strValue + "上传的cookie:" + strCookie; } else if (Request.QueryString["checkInstall"] != null) {//Ajax检查控件是否安装了,防止那种客户把打印控件卸装了,打印时无法检测到的情况 string strCookie = Request.QueryString["checkInstall"]; //读取最后访问的时间 string strResult = "PrintControlInstall"; bool bIsExist = false; DateTime dtLastAccessTime = GetLastAccessTime(strCookie, ref bIsExist); if (!bIsExist || dtLastAccessTime.AddSeconds(30) < DateTime.Now) { strResult = "NOT"; } Response.Clear(); Response.Write(strResult); strValue = strValue + "检测安装的值:" + strCookie; } WriteLog(strValue); return null; } [HttpGet] public ActionResult SelectICSExtensionEnable(string BeginTime, string EndTime) { var data = App.SelectICSExtensionEnable(BeginTime, EndTime); return Content(data.ToJson()); } [HttpGet] public ActionResult SelectICSInventoryEnable(string BeginTime) { var data = App.SelectICSInventoryEnable(BeginTime); return Content(data.ToJson()); } [HttpGet] public ActionResult SelectICSColumnEnableForLotEnable(string WorkPoint) { var data = App.SelectICSColumnEnableForLotEnable(WorkPoint); return Content(data.ToJson()); } public ActionResult GetQiSetNum(string keyValue) { var rows = App.GetQiSetNum(keyValue); return Content(rows.ToJson()); } /// /// 查询是否启用序列号 /// /// /// /// [HttpGet] [HandlerAjaxOnly] public ActionResult GetInventoryIsEnable(string InvCode, string WorkPoint) { DataTable ListData = App.GetInventoryIsEnable(InvCode, WorkPoint); var JsonData = new { ContainerEnable = ListData.Rows[0][0].ToString(), }; return Content(JsonData.ToJson()); } [HttpGet] public ActionResult GetInvBatchEnable(string InvCode) { var data = App.GetInvBatchEnable(InvCode); return Content(data.ToJson()); } [HttpGet] public ActionResult GetInvBatchCardControl(string InvCode,string BatchCode,string PRODUCTDATE) { bool flag = App.GetInvBatchCardControl(InvCode, BatchCode, PRODUCTDATE); var JsonData = new { Flag = flag, }; return Content(JsonData.ToJson()); } public ActionResult GetWWComplete(string BeginTime, string EndTime) { var data = App.GetWWComplete(BeginTime, EndTime); return Content(data.ToJson()); } [HttpGet] [HandlerAjaxOnly] public ActionResult GetLoadShowForColumn(string WorkPoint) { DataTable ListData = App.GetLoadShowForColumn(WorkPoint); var JsonData = new { rows = ListData, }; return Content(JsonData.ToJson()); } public ActionResult ISPOBack() { string result = App.ISPOBack(); var JsonData = new { result = result }; return Content(JsonData.ToJson()); } public ActionResult ISEableDDSX(string VenCode, string InvCode, string WorkPoint, string PODate, string POCode, string Sequence) { string result = App.ISEableDDSX( VenCode,InvCode,WorkPoint,PODate, POCode, Sequence); var JsonData = new { result = result }; return Content(JsonData.ToJson()); } [HttpGet] public ActionResult SeachCreateLotOrderByPO() { var data = App.SeachCreateLotOrderByPO(); return Content(data.ToJson()); } [HttpGet] public ActionResult SeachCreateLotOrderByOO() { var data = App.SeachCreateLotOrderByOO(); return Content(data.ToJson()); } //比博独有校验交期是否维护 public ActionResult SeachPoArriveDate(string Code,string Row,string Type) { bool Flag = App.SeachPoArriveDate(Code, Row,Type); var JsonData = new { Flag = Flag }; return Content(JsonData.ToJson()); } } }