You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

847 lines
33 KiB

4 days ago
  1. using NFine.Code;
  2. using NFine.Data.Extensions;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Data.SqlClient;
  6. using System.Data;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Web;
  10. using System.Web.Mvc;
  11. using NFine.Application.SRM;
  12. namespace NFine.Web.Areas.SRM.Controllers
  13. {
  14. public class DXCreateItemLotController : ControllerBase
  15. {
  16. DXCreateItemLotApp App = new DXCreateItemLotApp();
  17. // GET: SRM/DXCreateItemLot
  18. public ActionResult Index()
  19. {
  20. return View();
  21. }
  22. [HttpGet]
  23. [HandlerAjaxOnly]
  24. public ActionResult GetGridJson(Pagination pagination, string queryJson)
  25. {
  26. DataTable ListData = App.GetGridJson(queryJson, ref pagination);
  27. var JsonData = new
  28. {
  29. total = pagination.total,
  30. page = pagination.page,
  31. records = pagination.records,
  32. rows = ListData,
  33. };
  34. return Content(JsonData.ToJson());
  35. }
  36. [HttpGet]
  37. [HandlerAjaxOnly]
  38. public ActionResult GetGridJsonWeiWai(Pagination pagination, string queryJson)
  39. {
  40. DataTable ListData = App.GetGridJsonWeiWai(queryJson, ref pagination);
  41. var JsonData = new
  42. {
  43. total = pagination.total,
  44. page = pagination.page,
  45. records = pagination.records,
  46. rows = ListData,
  47. };
  48. return Content(JsonData.ToJson());
  49. }
  50. [HttpGet]
  51. [HandlerAjaxOnly]
  52. public ActionResult GetSubGridJson(string POCode, string PORow, string WorkPoint, Pagination pagination)
  53. {
  54. DataTable ListData = App.GetSubGridJson(POCode, PORow, WorkPoint, ref pagination);
  55. var JsonData = new
  56. {
  57. total = pagination.total,
  58. page = pagination.page,
  59. records = pagination.records,
  60. rows = ListData,
  61. };
  62. return Content(JsonData.ToJson());
  63. }
  64. public ActionResult Form2()
  65. {
  66. return View();
  67. }
  68. public ActionResult Form3()
  69. {
  70. return View();
  71. }
  72. public ActionResult Form4()
  73. {
  74. return View();
  75. }
  76. //[HttpGet]
  77. //[HandlerAjaxOnly]
  78. //public ActionResult GetFormJson(string keyValue)
  79. //{
  80. // //var data = maintainAppApp.GetForm(keyValue);
  81. // //return Content(data.ToJson());
  82. //}
  83. [HttpPost]
  84. [HandlerAjaxOnly]
  85. [ValidateAntiForgeryToken]
  86. public ActionResult SubmitForm(string POCode, string PORow, string keyValue, string WorkPoint, string IsEable)
  87. {
  88. int i = App.CreateItemLotNo(POCode, PORow, keyValue, WorkPoint, IsEable);
  89. if (i > 0)
  90. {
  91. return Success("生成成功!");
  92. }
  93. else
  94. {
  95. return Error("生成失败!");
  96. }
  97. }
  98. [HttpPost]
  99. [HandlerAjaxOnly]
  100. [ValidateAntiForgeryToken]
  101. public ActionResult SubmitFormWeiWai(string OOCode, string Sequence, string keyValue, string WorkPoint, string IsEable)
  102. {
  103. int i = App.SubmitFormWeiWai(OOCode, Sequence, keyValue, WorkPoint, IsEable);
  104. if (i > 0)
  105. {
  106. return Success("生成成功!");
  107. }
  108. else
  109. {
  110. return Error("生成失败!");
  111. }
  112. }
  113. /// <summary>
  114. /// 点击生成条码查询
  115. /// </summary>
  116. /// <param name="POCode">采购订单</param>
  117. /// <param name="PORow">采购行</param>
  118. /// <param name="WorkPoint">多站点</param>
  119. /// <returns></returns>
  120. [HttpGet]
  121. [HandlerAjaxOnly]
  122. public ActionResult GetSubGridJsonByCreate(string POCode, string PORow, string WorkPoint)
  123. {
  124. DataTable ListData = App.GetSubGridJsonByCreate(POCode, PORow, WorkPoint);
  125. var JsonData = new
  126. {
  127. rows = ListData,
  128. };
  129. return Content(JsonData.ToJson());
  130. }
  131. /// <summary>
  132. /// 点击生成条码查询
  133. /// </summary>
  134. /// <param name="POCode">采购订单</param>
  135. /// <param name="PORow">采购行</param>
  136. /// <param name="WorkPoint">多站点</param>
  137. /// <returns></returns>
  138. [HttpGet]
  139. [HandlerAjaxOnly]
  140. public ActionResult GetSubGridJsonByCreateBYMore(string POCode, string PORow, string WorkPoint)
  141. {
  142. DataTable ListData = App.GetSubGridJsonByCreateBYMore(POCode, PORow, WorkPoint);
  143. var JsonData = new
  144. {
  145. rows = ListData,
  146. };
  147. return Content(JsonData.ToJson());
  148. }
  149. /// <summary>
  150. /// 点击生成条码查询
  151. /// </summary>
  152. /// <param name="POCode">采购订单</param>
  153. /// <param name="PORow">采购行</param>
  154. /// <param name="WorkPoint">多站点</param>
  155. /// <returns></returns>
  156. [HttpGet]
  157. [HandlerAjaxOnly]
  158. public ActionResult GetSubGridJsonByCreateWeiWai(string OOCode, string Sequence, string WorkPoint)
  159. {
  160. DataTable ListData = App.GetSubGridJsonByCreateWeiWai(OOCode, Sequence, WorkPoint);
  161. var JsonData = new
  162. {
  163. rows = ListData,
  164. };
  165. return Content(JsonData.ToJson());
  166. }
  167. [HttpGet]
  168. [HandlerAjaxOnly]
  169. public ActionResult GetSubGridJsonByCreateWeiWaiByMore(string OOCode, string Sequence, string WorkPoint)
  170. {
  171. DataTable ListData = App.GetSubGridJsonByCreateWeiWaiByMore(OOCode, Sequence, WorkPoint);
  172. var JsonData = new
  173. {
  174. rows = ListData,
  175. };
  176. return Content(JsonData.ToJson());
  177. }
  178. [HttpGet]
  179. [HandlerAjaxOnly]
  180. public ActionResult GetVendorLotNo(string InvCode, string WorkPoint)
  181. {
  182. DataTable ListData = App.GetVendorLotNo(InvCode, WorkPoint);
  183. var JsonData = new
  184. {
  185. VendorLotNo = ListData.Rows[0][0].ToString(),
  186. };
  187. return Content(JsonData.ToJson());
  188. }
  189. [HttpPost]
  190. [HandlerAjaxOnly]
  191. [ValidateAntiForgeryToken]
  192. public ActionResult DeleteItemLot(string keyValue, string WorkPoint)
  193. {
  194. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  195. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  196. string msg = App.DeleteItemLot(keyValue, WorkPoint);
  197. if (string.IsNullOrWhiteSpace(msg))
  198. {
  199. return Success("删除成功!");
  200. }
  201. else
  202. {
  203. return Error(msg);
  204. }
  205. }
  206. /// <summary>
  207. /// 打印数据参数:服务器的URL+打印的文件名,转化为Base64编码
  208. /// </summary>
  209. protected string strPrintData;
  210. /// <summary>
  211. /// 标识是否安装了控件
  212. /// </summary>
  213. protected bool bIsInstallPrintControl = true;
  214. /// <summary>
  215. /// 打印控件的Cookie值
  216. /// </summary>
  217. protected string strPrintControlCookie = "";
  218. /// <summary>
  219. /// 获取Url中去掉文件名的路径
  220. /// </summary>
  221. /// <returns></returns>
  222. private string GetUrlPath()
  223. {
  224. string strUrl = Request.Url.ToString();
  225. int iEnd = strUrl.LastIndexOf("/");
  226. strUrl = strUrl.Substring(0, iEnd + 1);
  227. return strUrl;
  228. }
  229. /// <summary>
  230. /// 设置控件调用的Cookie值,判断是否安装了打印控件
  231. /// </summary>
  232. /// <param name="pJson"></param>
  233. private void SetCookieAndURL(PrintJson pJson)
  234. {
  235. bIsInstallPrintControl = false;
  236. strPrintControlCookie = "";
  237. HttpCookie pCookieInstall = Request.Cookies["InstallPrintControl"];
  238. if (pCookieInstall != null)
  239. { //Cookie存在
  240. strPrintControlCookie = pCookieInstall.Value.ToString();
  241. //以Cookie值查找在数据表中是否存在
  242. string strSql = @"Select * From sys_SRM_CheckInstall Where Cookie = @Cookie";
  243. SqlParameter[] pmcCookie = { new SqlParameter("Cookie", strPrintControlCookie) };
  244. using (SqlDataReader drCookie = DbHelper.ExecuteReader(DbHelper.ConnectionString, CommandType.Text, strSql, pmcCookie))
  245. {
  246. if (drCookie.Read())
  247. { //标识为已经安装
  248. bIsInstallPrintControl = true;
  249. }
  250. drCookie.Close();
  251. }
  252. //更新Cookie的保存时间
  253. pCookieInstall.Expires = DateTime.Now.AddYears(10);
  254. Response.SetCookie(pCookieInstall);
  255. }
  256. else
  257. {//Cookie不存在,则新建Cookie
  258. strPrintControlCookie = System.Guid.NewGuid().ToString();
  259. pCookieInstall = new HttpCookie("InstallPrintControl", strPrintControlCookie);
  260. pCookieInstall.Expires = DateTime.Now.AddYears(10);
  261. Response.Cookies.Add(pCookieInstall);
  262. }
  263. string strUrl = Server.MapPath("/PrintTemp/") + "IsCheckInstall";
  264. pJson.SetCookieAndURL(strPrintControlCookie, strUrl);
  265. }
  266. /// <summary>
  267. /// 生成条码打印
  268. /// </summary>
  269. /// <param name="keyValue">ID</param>
  270. /// <param name="WorkPoint">多站点</param>
  271. /// <returns></returns>
  272. [HttpPost]
  273. [HandlerAjaxOnly]
  274. public ActionResult PrintItemLot(string keyValue, string WorkPoint, string Type)
  275. {
  276. string strPrintTempFile = "";
  277. // string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  278. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  279. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  280. string strPrintFileName = "";
  281. if (Type == "3" || Type == "4")
  282. {
  283. strPrintFileName = Server.MapPath("/ReportFile/") + "lot1.fr3";
  284. }
  285. else
  286. {
  287. strPrintFileName = Server.MapPath("/ReportFile/") + "lot.fr3";
  288. }
  289. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  290. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  291. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  292. //pJson.AddPrintParam("ShopName", "测试酒楼");
  293. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  294. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  295. string strSql = "";
  296. if (Type == "1")
  297. {
  298. 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,
  299. c.InvStd,
  300. c.ClassName,c.InvDesc,
  301. b.VenCode,h.VenName,c.InvUnit,f.WarehouseName,
  302. a.LotNO AS QRLotNo,CONVERT(varchar(100), a.ProductDate, 23) as PRODUCTDATE,CONVERT(varchar(100), b.PlanArriveDate, 23) as PreArriveDate
  303. ,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
  304. ,a.EATTRIBUTE3,CONVERT(varchar(100),dateadd(day,c.EffectiveDays,a.ProductDate), 23) AS exprdate,i.asnCode,b.EATTRIBUTE3 as DXEATTRIBUTE3
  305. ,a.EATTRIBUTE4 as DXEATTRIBUTE4,b.EATTRIBUTE4 as PODXEATTRIBUTE4
  306. FROM dbo.ICSInventoryLot a
  307. left join ICSExtension g on a.ExtensionID=g.ID and a.WorkPoint=g.WorkPoint
  308. left join ICSInventoryLotDetail e on a.lotNo=e.LotNo and a.WorkPoint=e.WorkPoint
  309. LEFT JOIN dbo.ICSPurchaseOrder b ON b.POCode=e.TransCode AND b.Sequence=e.TransSequence AND a.WorkPoint=e.WorkPoint
  310. LEFT JOIN dbo.ICSInventory c ON a.InvCode=c.InvCode AND a.WorkPoint=c.WorkPoint
  311. left join dbo.ICSInventoryBatchEnable d on c.InvCode=d.InvCode and c.WorkPoint=d.WorkPoint AND d.BatchEnable=1
  312. left join ICSWarehouse f on d.WHCode=f.WarehouseCode and d.WorkPoint=f.WorkPoint
  313. left join ICSVendor h on b.VenCode=h.VenCode and b.WorkPoint=h.WorkPoint
  314. LEFT JOIN icsasndetail i ON a.lotNO=i.LotNO AND a.workPoint=i.workPoint
  315. where a.ID IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint in ('" + WorkPoint.Trim(',') + "')";
  316. }
  317. if (Type == "2")
  318. {
  319. 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,
  320. c.InvStd,
  321. c.ClassName,c.InvDesc,
  322. b.VenCode,h.VenName,c.InvUnit,f.WarehouseName,
  323. a.LotNO AS QRLotNo,CONVERT(varchar(100), a.ProductDate, 23) as PRODUCTDATE,CONVERT(varchar(100), b.PlanArriveDate, 23) as PreArriveDate
  324. ,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
  325. ,a.EATTRIBUTE3,CONVERT(varchar(100),dateadd(day,c.EffectiveDays,a.ProductDate), 23) AS exprdate,i.OASNCode as asnCode,b.EATTRIBUTE3 as DXEATTRIBUTE3
  326. ,a.EATTRIBUTE4 as DXEATTRIBUTE4,b.EATTRIBUTE4 as PODXEATTRIBUTE4
  327. FROM dbo.ICSInventoryLot a
  328. left join ICSExtension g on a.ExtensionID=g.ID and a.WorkPoint=g.WorkPoint
  329. left join ICSInventoryLotDetail e on a.lotNo=e.LotNo and a.WorkPoint=e.WorkPoint
  330. LEFT JOIN dbo.ICSOutsourcingOrder b ON b.OOCode=e.TransCode AND b.Sequence=e.TransSequence AND a.WorkPoint=e.WorkPoint
  331. LEFT JOIN dbo.ICSInventory c ON a.InvCode=c.InvCode AND a.WorkPoint=c.WorkPoint
  332. left join dbo.ICSInventoryBatchEnable d on c.InvCode=d.InvCode and c.WorkPoint=d.WorkPoint
  333. left join ICSWarehouse f on d.WHCode=f.WarehouseCode and d.WorkPoint=f.WorkPoint
  334. left join ICSVendor h on b.VenCode=h.VenCode and b.WorkPoint=h.WorkPoint
  335. LEFT JOIN ICSOASNDetail i ON a.lotNO=i.LotNO AND a.workPoint=i.workPoint
  336. where a.ID IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint in ('" + WorkPoint.Trim(',') + "')";
  337. }
  338. if (Type == "3")
  339. {
  340. strSql = @"SELECT a.InvCode,b.InvName,LotNo AS QRLotNo,b.InvStd,a.TransCode,a.EATTRIBUTE10 AS EATTRIBUTE3,CONVERT(DECIMAL(16,2), a.Quantity) AS Quantity,CONVERT(varchar(100), a.ProductDate, 23) as PRODUCTDATE,c.VenCode
  341. FROM ICSFinishedProductShipment a
  342. LEFT JOIN ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  343. LEFT JOIN ICSPurchaseOrder c ON a.TransCode=c.PoCode AND a.TransSequence=c.Sequence AND a.WorkPoint=c.WorkPoint
  344. where a.ID IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint in ('" + WorkPoint.Trim(',') + "')";
  345. }
  346. if (Type == "4")
  347. {
  348. strSql = @" SELECT a.InvCode,b.InvName,LotNo AS QRLotNo,b.InvStd,a.TransCode,a.EATTRIBUTE10 AS EATTRIBUTE3,CONVERT(DECIMAL(16,2), a.Quantity) AS Quantity,CONVERT(varchar(100), a.ProductDate, 23) as PRODUCTDATE,c.VenCode
  349. FROM ICSFinishedProductShipment a
  350. LEFT JOIN ICSInventory b ON a.InvCode = b.InvCode AND a.WorkPoint = b.WorkPoint
  351. LEFT JOIN ICSOutsourcingOrder c ON a.TransCode = c.OOCode AND a.TransSequence = c.Sequence AND a.WorkPoint = c.WorkPoint
  352. where a.ID IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint in ('" + WorkPoint.Trim(',') + "')";
  353. }
  354. //string strSql = @"Select * From CashLog";
  355. DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  356. if (Type == "3" || Type == "4")
  357. {
  358. DataTable jieguo = new DataTable();
  359. int dtCashLogCount = dtCashLog.Columns.Count * 2;
  360. for (int s = 1; s < 3; s++)
  361. {
  362. int Count = 0;
  363. foreach (DataColumn column in dtCashLog.Columns)
  364. {
  365. if (Count == dtCashLog.Columns.Count)
  366. {
  367. break;
  368. }
  369. jieguo.Columns.Add(column.ColumnName + s);
  370. Count++;
  371. }
  372. }
  373. //int dtCashLogCount = dtCashLog.Columns.Count * 2;
  374. //for (int s = 1; s < 3; s++)
  375. //{
  376. // int Count = 0;
  377. // foreach (DataColumn column in dtCashLog.Columns)
  378. // {
  379. // if (Count == dtCashLog.Columns.Count)
  380. // {
  381. // break;
  382. // }
  383. // Console.WriteLine(column.ColumnName);
  384. // jieguo.Columns.Add(column.ColumnName + s);
  385. // Count++;
  386. // }
  387. //}
  388. //// 遍历DataTable的每一行
  389. //for (int i = 0; i < dtCashLog.Rows.Count; i++)
  390. //{
  391. // var param = dtCashLog.Rows[i].ItemArray.ToList();
  392. // i++;
  393. // if (i < dtCashLog.Rows.Count)
  394. // {
  395. // param.AddRange(dtCashLog.Rows[i].ItemArray.ToList());
  396. // }
  397. // jieguo.Rows.Add(param.ToArray());
  398. //}
  399. string[] array2D = new string[dtCashLog.Rows[0].ItemArray.ToList().Count]; // 假设这是一个3x3的二维数组
  400. int rows = array2D.GetLength(0); // 获取行数
  401. // 添加新行,所有元素设置为"N/A"
  402. for (int i = 0; i < rows; i++)
  403. {
  404. array2D[i] = " ";
  405. }
  406. // 遍历DataTable的每一行
  407. for (int i = 0; i < dtCashLog.Rows.Count; i++)
  408. {
  409. var param = dtCashLog.Rows[i].ItemArray.ToList();
  410. i++;
  411. if (i < dtCashLog.Rows.Count)
  412. {
  413. param.AddRange(dtCashLog.Rows[i].ItemArray.ToList());
  414. }
  415. else
  416. {
  417. param.AddRange(array2D);
  418. }
  419. jieguo.Rows.Add(param.ToArray());
  420. }
  421. strPrintTempFile = pJson.ShowReport(jieguo);
  422. }
  423. else
  424. {
  425. strPrintTempFile = pJson.ShowReport(dtCashLog); //产生JSON文件内容
  426. }
  427. //string strPrintTempFile = pJson.ExportReportPdf(dtCashLog, null, null, null, null, null, "D:/基础版/NFine.Framework/NFine.Web/File/PDF"); //导出PDF文件
  428. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  429. string strServerURL = GetUrlPath() + "PrintTemp/";
  430. string strData = strServerURL + strPrintTempFile;
  431. strPrintData = PrintFunction.EnBase64(strData);
  432. var JsonData = new
  433. {
  434. strPrintData_1 = strPrintData,
  435. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  436. strPrintControlCookie_1 = strPrintControlCookie
  437. };
  438. //多站点
  439. string sql = @"UPDATE dbo.ICSInventoryLot
  440. SET PrintTimes=ISNULL(PrintTimes,0)+1,
  441. LastPrintUser='',
  442. LastPrintTime=GETDATE()
  443. WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
  444. SqlHelper.ExecuteNonQuery(sql);
  445. return Content(JsonData.ToJson());
  446. }
  447. /// <summary>
  448. /// 写日志(用于跟踪)
  449. /// </summary>
  450. private void WriteLog(string strMessage)
  451. {
  452. string strLogFile = Server.MapPath("./Cookie_Log.txt");
  453. StreamWriter swLogFile = null;
  454. try
  455. {
  456. if (!System.IO.File.Exists(strLogFile))
  457. {
  458. swLogFile = System.IO.File.CreateText(strLogFile);
  459. }
  460. else
  461. {
  462. swLogFile = System.IO.File.AppendText(strLogFile);
  463. }
  464. swLogFile.WriteLine(strMessage);
  465. }
  466. catch
  467. {
  468. }
  469. finally
  470. {
  471. if (swLogFile != null)
  472. swLogFile.Close();
  473. }
  474. }
  475. /// <summary>
  476. ///判断数据表中是否存在,若不存在则新建一条记录,若存在则更新最后访问的时间
  477. /// </summary>
  478. /// <param name="strCookie"></param>
  479. private void UpdateCheckInstall(string strCookie)
  480. {
  481. bool bIsExist = false;
  482. //判断记录是否存在
  483. GetLastAccessTime(strCookie, ref bIsExist);
  484. string strSql = "";
  485. SqlParameter[] pmcCookie = { new SqlParameter("Cookie", strCookie) };
  486. if (bIsExist)
  487. { //存在则更新最后访问的时间
  488. strSql = @"Update sys_SRM_CheckInstall
  489. Set LastAccessTime = getDate()
  490. Where Cookie = @Cookie";
  491. }
  492. else
  493. { //不存在则新建一条记录
  494. strSql = @"Insert into sys_SRM_CheckInstall(Cookie, LastAccessTime)
  495. Values( @Cookie, getDate() )";
  496. }
  497. DbHelper.ExecuteNonQuery(DbHelper.ConnectionString, CommandType.Text, strSql, pmcCookie);
  498. }
  499. public DateTime ToDateTime(object SrcValue)
  500. {
  501. if (Convert.IsDBNull(SrcValue) == true)
  502. return DateTime.MinValue;
  503. else
  504. {
  505. try
  506. {
  507. return Convert.ToDateTime(SrcValue);
  508. }
  509. catch
  510. {
  511. return DateTime.MinValue;
  512. }
  513. }
  514. }
  515. /// <summary>
  516. /// 获取此Cookie的最后访问时间
  517. /// </summary>
  518. /// <param name="strCookie"></param>
  519. /// <returns></returns>
  520. private DateTime GetLastAccessTime(string strCookie, ref bool bIsExist)
  521. {
  522. DateTime dtLastAccessTime = DateTime.MinValue;
  523. bIsExist = false;
  524. string strSql = @"Select * From sys_SRM_CheckInstall Where Cookie = @Cookie";
  525. SqlParameter[] pmcCookie = { new SqlParameter("Cookie", strCookie) };
  526. using (SqlDataReader drCookie = DbHelper.ExecuteReader(DbHelper.ConnectionString, CommandType.Text, strSql, pmcCookie))
  527. {
  528. if (drCookie.Read())
  529. {
  530. dtLastAccessTime = ToDateTime(drCookie["LastAccessTime"]);
  531. bIsExist = true;
  532. }
  533. drCookie.Close();
  534. }
  535. return dtLastAccessTime;
  536. }
  537. [HttpGet]
  538. [HandlerAjaxOnly]
  539. public ActionResult IsCheckInstall(string checkInstall)
  540. {
  541. string strValue = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss 访问,");
  542. if (Request.QueryString["cookie"] != null)
  543. { //有控件上传的Cookie值
  544. string strCookie = Request.QueryString["cookie"].ToString();
  545. //判断数据表中是否存在,若不存在则新建一条记录,若存在则更新最后访问的时间
  546. UpdateCheckInstall(strCookie);
  547. strValue = strValue + "上传的cookie:" + strCookie;
  548. }
  549. else if (checkInstall != null)
  550. {//Ajax检查控件是否安装了,防止那种客户把打印控件卸装了,打印时无法检测到的情况
  551. string strCookie = checkInstall;
  552. //读取最后访问的时间
  553. string strResult = "PrintControlInstall";
  554. bool bIsExist = false;
  555. DateTime dtLastAccessTime = GetLastAccessTime(strCookie, ref bIsExist);
  556. if (!bIsExist || dtLastAccessTime.AddSeconds(30) < DateTime.Now)
  557. {
  558. strResult = "NOT";
  559. }
  560. Response.Clear();
  561. Response.Write(strResult);
  562. strValue = strValue + "检测安装的值:" + strCookie;
  563. }
  564. WriteLog(strValue);
  565. return null;
  566. }
  567. [HttpGet]
  568. [HandlerAjaxOnly]
  569. public ActionResult IsCheckInstall()
  570. {
  571. string strValue = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss 访问,");
  572. if (Request.QueryString["cookie"] != null)
  573. { //有控件上传的Cookie值
  574. string strCookie = Request.QueryString["cookie"].ToString();
  575. //判断数据表中是否存在,若不存在则新建一条记录,若存在则更新最后访问的时间
  576. UpdateCheckInstall(strCookie);
  577. strValue = strValue + "上传的cookie:" + strCookie;
  578. }
  579. else if (Request.QueryString["checkInstall"] != null)
  580. {//Ajax检查控件是否安装了,防止那种客户把打印控件卸装了,打印时无法检测到的情况
  581. string strCookie = Request.QueryString["checkInstall"];
  582. //读取最后访问的时间
  583. string strResult = "PrintControlInstall";
  584. bool bIsExist = false;
  585. DateTime dtLastAccessTime = GetLastAccessTime(strCookie, ref bIsExist);
  586. if (!bIsExist || dtLastAccessTime.AddSeconds(30) < DateTime.Now)
  587. {
  588. strResult = "NOT";
  589. }
  590. Response.Clear();
  591. Response.Write(strResult);
  592. strValue = strValue + "检测安装的值:" + strCookie;
  593. }
  594. WriteLog(strValue);
  595. return null;
  596. }
  597. [HttpGet]
  598. public ActionResult SelectICSExtensionEnable(string BeginTime, string EndTime)
  599. {
  600. var data = App.SelectICSExtensionEnable(BeginTime, EndTime);
  601. return Content(data.ToJson());
  602. }
  603. [HttpGet]
  604. public ActionResult SelectICSInventoryEnable(string BeginTime)
  605. {
  606. var data = App.SelectICSInventoryEnable(BeginTime);
  607. return Content(data.ToJson());
  608. }
  609. [HttpGet]
  610. public ActionResult SelectICSColumnEnableForLotEnable(string WorkPoint)
  611. {
  612. var data = App.SelectICSColumnEnableForLotEnable(WorkPoint);
  613. return Content(data.ToJson());
  614. }
  615. public ActionResult GetQiSetNum(string keyValue)
  616. {
  617. var rows = App.GetQiSetNum(keyValue);
  618. return Content(rows.ToJson());
  619. }
  620. /// <summary>
  621. /// 查询是否启用序列号
  622. /// </summary>
  623. /// <param name="InvCode"></param>
  624. /// <param name="WorkPoint"></param>
  625. /// <returns></returns>
  626. [HttpGet]
  627. [HandlerAjaxOnly]
  628. public ActionResult GetInventoryIsEnable(string InvCode, string WorkPoint)
  629. {
  630. DataTable ListData = App.GetInventoryIsEnable(InvCode, WorkPoint);
  631. var JsonData = new
  632. {
  633. EATTERIBUTE10 = ListData.Rows[0][0].ToString(),
  634. };
  635. return Content(JsonData.ToJson());
  636. }
  637. [HttpGet]
  638. public ActionResult GetInvBatchEnable(string InvCode)
  639. {
  640. var data = App.GetInvBatchEnable(InvCode);
  641. return Content(data.ToJson());
  642. }
  643. public ActionResult GetWWComplete(string BeginTime, string EndTime)
  644. {
  645. var data = App.GetWWComplete(BeginTime, EndTime);
  646. return Content(data.ToJson());
  647. }
  648. [HttpGet]
  649. [HandlerAjaxOnly]
  650. public ActionResult GetLoadShowForColumn(string WorkPoint)
  651. {
  652. DataTable ListData = App.GetLoadShowForColumn(WorkPoint);
  653. var JsonData = new
  654. {
  655. rows = ListData,
  656. };
  657. return Content(JsonData.ToJson());
  658. }
  659. [HttpGet]
  660. [HandlerAjaxOnly]
  661. public ActionResult GetVendorBatchBYInvCodeZZ(string InvCode, string WorkPoint)
  662. {
  663. ActionResult result;
  664. try
  665. {
  666. DataTable vendorBatchBYInvCodeZZ = this.App.GetVendorBatchBYInvCodeZZ(InvCode, WorkPoint);
  667. var obj = new
  668. {
  669. VendorLotNo = vendorBatchBYInvCodeZZ.Rows[0][0].ToString()
  670. };
  671. result = base.Content(obj.ToJson());
  672. }
  673. catch (Exception ex)
  674. {
  675. result = this.Error(ex.Message);
  676. }
  677. return result;
  678. }
  679. [HttpGet]
  680. [HandlerAjaxOnly]
  681. public ActionResult GetGridJsonNOGK(Pagination pagination, string queryJson)
  682. {
  683. DataTable ListData = App.GetGridJsonNOGK(queryJson, ref pagination);
  684. var JsonData = new
  685. {
  686. total = pagination.total,
  687. page = pagination.page,
  688. records = pagination.records,
  689. rows = ListData,
  690. };
  691. return Content(JsonData.ToJson());
  692. }
  693. [HttpGet]
  694. [HandlerAjaxOnly]
  695. public ActionResult GetSubGridJsonNOGK(string POCode, string PORow, string WorkPoint, Pagination pagination)
  696. {
  697. DataTable ListData = App.GetSubGridJsonNOGK(POCode, PORow, WorkPoint, ref pagination);
  698. var JsonData = new
  699. {
  700. total = pagination.total,
  701. page = pagination.page,
  702. records = pagination.records,
  703. rows = ListData,
  704. };
  705. return Content(JsonData.ToJson());
  706. }
  707. [HttpPost]
  708. [HandlerAjaxOnly]
  709. [ValidateAntiForgeryToken]
  710. public ActionResult SubmitFormNOGK(string POCode, string PORow, string keyValue, string WorkPoint, string IsEable)
  711. {
  712. int i = App.SubmitFormNOGK(POCode, PORow, keyValue, WorkPoint, IsEable);
  713. if (i > 0)
  714. {
  715. return Success("生成成功!");
  716. }
  717. else
  718. {
  719. return Error("生成失败!");
  720. }
  721. }
  722. [HttpPost]
  723. [HandlerAjaxOnly]
  724. [ValidateAntiForgeryToken]
  725. public ActionResult DeleteItemLotNOGK(string keyValue, string WorkPoint)
  726. {
  727. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  728. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  729. string msg = App.DeleteItemLotNOGK(keyValue, WorkPoint);
  730. if (string.IsNullOrWhiteSpace(msg))
  731. {
  732. return Success("删除成功!");
  733. }
  734. else
  735. {
  736. return Error(msg);
  737. }
  738. }
  739. [HttpGet]
  740. [HandlerAjaxOnly]
  741. public ActionResult GetGridJsonWeiWaiNOGK(Pagination pagination, string queryJson)
  742. {
  743. DataTable ListData = App.GetGridJsonWeiWaiNOGK(queryJson, ref pagination);
  744. var JsonData = new
  745. {
  746. total = pagination.total,
  747. page = pagination.page,
  748. records = pagination.records,
  749. rows = ListData,
  750. };
  751. return Content(JsonData.ToJson());
  752. }
  753. [HttpGet]
  754. [HandlerAjaxOnly]
  755. public ActionResult GetSubGridJsonWeiWaiNOGK(string POCode, string PORow, string WorkPoint, Pagination pagination)
  756. {
  757. DataTable ListData = App.GetSubGridJsonWeiWaiNOGK(POCode, PORow, WorkPoint, ref pagination);
  758. var JsonData = new
  759. {
  760. total = pagination.total,
  761. page = pagination.page,
  762. records = pagination.records,
  763. rows = ListData,
  764. };
  765. return Content(JsonData.ToJson());
  766. }
  767. [HttpPost]
  768. [HandlerAjaxOnly]
  769. [ValidateAntiForgeryToken]
  770. public ActionResult SubmitFormWeiWaiNOGK(string OOCode, string Sequence, string keyValue, string WorkPoint, string IsEable)
  771. {
  772. int i = App.SubmitFormWeiWaiNOGK(OOCode, Sequence, keyValue, WorkPoint, IsEable);
  773. if (i > 0)
  774. {
  775. return Success("生成成功!");
  776. }
  777. else
  778. {
  779. return Error("生成失败!");
  780. }
  781. }
  782. }
  783. }