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.

606 lines
30 KiB

4 days ago
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  3. using NFine.Code;
  4. using NFine.Data.Extensions;
  5. using NFine.Domain._03_Entity.SRM;
  6. using NFine.Repository;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Configuration;
  10. using System.Data;
  11. using System.Data.Common;
  12. using System.Linq;
  13. using System.Text;
  14. using System.Threading.Tasks;
  15. namespace NFine.Application.SRM
  16. {
  17. public class ContainerApp : RepositoryFactory<ICSVendor>
  18. {
  19. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  20. {
  21. DataTable dt = new DataTable();
  22. var queryParam = queryJson.ToJObject();
  23. List<DbParameter> parameter = new List<DbParameter>();
  24. //string sql = @"SELECT Serial,CartonNO,CartonStatus,PrintTimes,CONVERT(NVARCHAR(50),lastPrintTime,23) as lastPrintTime,MUSERName, CONVERT(NVARCHAR(50),MTIME,23) as MTIME,EATTRIBUTE8,EATTRIBUTE3,b.cVenName,w.WorkPointName,w.WorkPointCode
  25. // FROM dbo.ICSCarton a
  26. // LEFT JOIN Sys_WorkPoint w on a.WorkPoint=w.WorkPointCode
  27. // LEFT JOIN dbo.ICSVendor b ON a.EATTRIBUTE8=b.cVenCode AND a.WorkPoint=b.WorkPoint
  28. // WHERE 1=1 and EATTRIBUTE3='SRM'";
  29. string sql = @" SELECT a.ID,
  30. a.ContainerID,
  31. a.ContainerCODE,
  32. a.ContainerName,
  33. a.Memo,
  34. a.MUSER,
  35. a.MUSERName,
  36. a.MTIME,
  37. CASE WHEN a.InventoryMixed=0 THEN '否' ELSE '是' END InventoryMixed,
  38. CASE WHEN a.ProjectMixed=0 THEN '否' ELSE '是' END ProjectMixed,
  39. CASE WHEN a.BatchMixed=0 THEN '否' ELSE '是' END BatchMixed,
  40. CASE WHEN a.Multiplex=0 THEN '否' ELSE '是' END Multiplex,
  41. CASE WHEN ISNULL(d.ContainerID,'')='' THEN '使' ELSE '使' END ISUse,
  42. a.WorkPoint,
  43. b.ContainerCode AS fContainerCode,
  44. b.ContainerName AS fContainerName,
  45. a.ContainerType
  46. from ICSContainer a
  47. LEFT JOIN ICSContainer b ON a.ContainerID=b.ID
  48. left JOIN (SELECT DISTINCT ContainerID,WorkPoint FROM dbo.ICSContainerLot) d on d.ContainerID=a.ID AND a.WorkPoint=d.WorkPoint
  49. where 1=1 ";
  50. if (!string.IsNullOrWhiteSpace(queryJson))
  51. {
  52. if (!string.IsNullOrWhiteSpace(queryParam["ContainerCODE"].ToString()))
  53. {
  54. sql += " and a.ContainerCODE like '%" + queryParam["ContainerCODE"].ToString() + "%' ";
  55. }
  56. if (!string.IsNullOrWhiteSpace(queryParam["ContainerName"].ToString()))
  57. {
  58. sql += " and a.ContainerName like '%" + queryParam["ContainerName"].ToString() + "%' ";
  59. }
  60. }
  61. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  62. {
  63. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  64. }
  65. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  66. {
  67. sql += " and a.EATTRIBUTE8='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  68. }
  69. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  70. }
  71. public DataTable GetGridJson4(string queryJson, ref Pagination jqgridparam)
  72. {
  73. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  74. DataTable dt = new DataTable();
  75. var queryParam = queryJson.ToJObject();
  76. List<DbParameter> parameter = new List<DbParameter>();
  77. string sql = @" SELECT a.ID,
  78. a.ContainerID,
  79. a.ContainerCODE,
  80. a.ContainerName,
  81. a.Memo,
  82. a.MUSER,
  83. a.MUSERName,
  84. a.MTIME,
  85. CASE WHEN a.InventoryMixed=0 THEN '否' ELSE '是' END InventoryMixed,
  86. CASE WHEN a.ProjectMixed=0 THEN '否' ELSE '是' END ProjectMixed,
  87. CASE WHEN a.BatchMixed=0 THEN '否' ELSE '是' END BatchMixed,
  88. CASE WHEN a.Multiplex=0 THEN '否' ELSE '是' END Multiplex,
  89. CASE WHEN ISNULL(d.ContainerID,'')='' THEN '使' ELSE '使' END ISUse,
  90. a.WorkPoint,
  91. b.ContainerCode AS fContainerCode,
  92. b.ContainerName AS fContainerName,
  93. a.ContainerType
  94. from ICSContainer a
  95. LEFT JOIN ICSContainer b ON a.ContainerID=b.ID
  96. left JOIN (SELECT DISTINCT ContainerID,WorkPoint FROM dbo.ICSContainerLot) d on d.ContainerID=a.ID AND a.WorkPoint=d.WorkPoint
  97. where 1=1 and a.EATTRIBUTE3='SRM' and a.ContainerType='ContainerType04' ";
  98. if (!string.IsNullOrWhiteSpace(queryJson))
  99. {
  100. if (!string.IsNullOrWhiteSpace(queryParam["ContainerCODE"].ToString()))
  101. {
  102. sql += " and a.ContainerCODE like '%" + queryParam["ContainerCODE"].ToString() + "%' ";
  103. }
  104. if (!string.IsNullOrWhiteSpace(queryParam["ContainerName"].ToString()))
  105. {
  106. sql += " and a.ContainerName like '%" + queryParam["ContainerName"].ToString() + "%' ";
  107. }
  108. }
  109. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  110. {
  111. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  112. }
  113. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  114. {
  115. sql += " and a.EATTRIBUTE8='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  116. }
  117. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  118. }
  119. public DataTable GetGridJsonBinding(string queryJson, ref Pagination jqgridparam)
  120. {
  121. DataTable dt = new DataTable();
  122. var queryParam = queryJson.ToJObject();
  123. List<DbParameter> parameter = new List<DbParameter>();
  124. //string sql = @"SELECT Serial,CartonNO,CartonStatus,PrintTimes,CONVERT(NVARCHAR(50),lastPrintTime,23) as lastPrintTime,MUSERName, CONVERT(NVARCHAR(50),MTIME,23) as MTIME,EATTRIBUTE8,EATTRIBUTE3,b.cVenName,w.WorkPointName,w.WorkPointCode
  125. // FROM dbo.ICSCarton a
  126. // LEFT JOIN Sys_WorkPoint w on a.WorkPoint=w.WorkPointCode
  127. // LEFT JOIN dbo.ICSVendor b ON a.EATTRIBUTE8=b.cVenCode AND a.WorkPoint=b.WorkPoint
  128. // WHERE 1=1 and EATTRIBUTE3='SRM'";
  129. string sql = @" select
  130. a.ID,
  131. a.ContainerID,
  132. d.ContainerName,
  133. a.LotNo,
  134. b.Quantity,
  135. a.MUSER,
  136. a.MUSERName,
  137. a.WorkPoint,
  138. a.MTIME,
  139. b.InvCode,
  140. c.Invname,
  141. c.InvDesc,
  142. c.InvStd,
  143. d.ContainerCode
  144. from ICSContainerLot a
  145. left join ICSInventoryLot b on a.LotNo=b.lotno AND a.WorkPoint=b.WorkPoint
  146. left join ICSInventory c on b.InvCode=c.InvCode AND b.WorkPoint=c.WorkPoint
  147. left JOIN ICSContainer d on a.ContainerID=d.ID AND a.WorkPoint=d.WorkPoint
  148. where 1=1 ";
  149. if (!string.IsNullOrWhiteSpace(queryJson))
  150. {
  151. if (!string.IsNullOrWhiteSpace(queryParam["ContainerID"].ToString()))
  152. {
  153. sql += " and a.ContainerID like '%" + queryParam["ContainerID"].ToString() + "%' ";
  154. }
  155. if (!string.IsNullOrWhiteSpace(queryParam["LotNo"].ToString()))
  156. {
  157. sql += " and a.LotNo like '%" + queryParam["LotNo"].ToString() + "%' ";
  158. }
  159. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  160. {
  161. sql += " and b.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  162. }
  163. if (!string.IsNullOrWhiteSpace(queryParam["Invname"].ToString()))
  164. {
  165. sql += " and c.Invname like '%" + queryParam["Invname"].ToString() + "%' ";
  166. }
  167. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  168. {
  169. sql += " and c.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  170. }
  171. if (!string.IsNullOrWhiteSpace(queryParam["MUSERName"].ToString()))
  172. {
  173. sql += " and a.MUSERName like '%" + queryParam["MUSERName"].ToString() + "%' ";
  174. }
  175. }
  176. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  177. {
  178. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  179. }
  180. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  181. {
  182. sql += " and d.EATTRIBUTE8='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  183. }
  184. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  185. }
  186. /// <summary>
  187. /// 删除包装、容器
  188. /// </summary>
  189. /// <param name="keyValue">传入ID</param>
  190. /// <returns></returns>
  191. public string DeleteICSContainer(string keyValue)
  192. {
  193. ////站点信息
  194. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  195. //string msg = "";
  196. //keyValue = keyValue.Substring(1, keyValue.Length - 2);
  197. //string sql = string.Empty;
  198. //sql = string.Format(@"DELETE FROM dbo.ICSContainer WHERE ID IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
  199. //try
  200. //{
  201. // SqlHelper.ExecuteNonQuery(sql);
  202. //}
  203. //catch (Exception ex)
  204. //{
  205. // throw new Exception(ex.Message);
  206. //}
  207. //return msg;
  208. string msg = "";
  209. string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "ICSContainerCon/Untie";
  210. string result = SqlHelper.HttpPost(APIURL, keyValue);
  211. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  212. string MessAge = Obj["Message"].ToString();
  213. string Success = Obj["Success"].ToString();
  214. if (Success.ToUpper() == "FALSE")
  215. {
  216. msg = MessAge;
  217. }
  218. return msg;
  219. }
  220. //获取父容器
  221. public DataTable GetContainerID()
  222. {
  223. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  224. string sql = @"
  225. select '' as ID,'' as ContainerName
  226. union all
  227. SELECT DISTINCT a.ID,a.ContainerName FROM dbo.ICSContainer a ";
  228. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  229. if (role != "admin")
  230. {
  231. sql += " and b.WorkPoint in(" + WorkPoint + ")";
  232. }
  233. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  234. return dt;
  235. }
  236. //获取父容器
  237. public DataTable GetContainerType()
  238. {
  239. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  240. string sql = @"
  241. select '' as F_ItemName,'' as F_ItemCode
  242. union all
  243. SELECT a.F_ItemName,a.F_ItemCode FROM Sys_SRM_ItemsDetail a
  244. LEFT JOIN Sys_SRM_Items b ON a.F_ItemId = b.F_Id
  245. WHERE b.F_EnCode = 'ContainerType' and a.F_EnabledMark='1' ";
  246. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  247. if (role != "admin")
  248. {
  249. sql += " and b.WorkPoint in(" + WorkPoint + ")";
  250. }
  251. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  252. return dt;
  253. }
  254. /// <summary>
  255. /// 修改包装、容器
  256. /// </summary>
  257. /// <param name="queryJson"></param>
  258. /// <returns></returns>
  259. /// 20230717 lacy.xu Modifly 新增允许料品混装、允许项目号混装、允许批次混装、允许复用
  260. public string UpdateICSContainer(string keyValue)
  261. {
  262. var queryParam = keyValue.ToJObject();
  263. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  264. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  265. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  266. string msg = "";
  267. string sql = string.Empty;
  268. // sql = @" IF EXISTS(select ContainerCODE from ICSContainer where ContainerCODE='{1}' )
  269. // RAISERROR('容器:{1},已存在!',16,1)
  270. //UPDATE dbo.ICSContainer set ContainerID='{0}',ContainerCODE='{1}',ContainerName='{2}',Memo='{3}',MTIME=GETDATE(),MUSER='{4}',MUSERName='{5}',WorkPoint='{6}',InventoryMixed='{8}',ProjectMixed='{9}',BatchMixed='{10}',Multiplex='{11}' WHERE ID='{7}'";
  271. sql = @"UPDATE dbo.ICSContainer set ContainerID='{0}',ContainerCODE='{1}',ContainerName='{2}',Memo='{3}',MTIME=GETDATE(),MUSER='{4}',MUSERName='{5}',WorkPoint='{6}',InventoryMixed='{8}',ProjectMixed='{9}',BatchMixed='{10}',Multiplex='{11}',ContainerType='{12}' WHERE ID='{7}'";
  272. sql = string.Format(sql, queryParam["ContainerID"].ToString(), queryParam["ContainerCODE"].ToString(), queryParam["ContainerName"].ToString(), queryParam["Memo"].ToString(), MUSER, MUSERNAME, queryParam["WorkPoint"].ToString(), queryParam["ID"].ToString(), queryParam["InventoryMixed"].ToString(), queryParam["ProjectMixed"].ToString(), queryParam["BatchMixed"].ToString(), queryParam["Multiplex"].ToString(), queryParam["ContainerType"].ToString());
  273. try
  274. {
  275. if (SqlHelper.ExecuteNonQuery(sql) > 0)
  276. {
  277. }
  278. else
  279. {
  280. msg = "修改失败";
  281. }
  282. }
  283. catch (Exception ex)
  284. {
  285. msg = ex.Message;
  286. }
  287. return msg;
  288. }
  289. /// <summary>
  290. /// 新增包装、容器关联条码
  291. /// </summary>
  292. /// <param name="queryJson"></param>
  293. /// <returns></returns>
  294. public string InsertICSContainerLot(string keyValue)
  295. {
  296. var queryParam = keyValue.ToJObject();
  297. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  298. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  299. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  300. string msg = "";
  301. string sql = string.Empty;
  302. sql = @"INSERT INTO dbo.ICSContainerLot
  303. ( ID ,ContainerID ,LotNo ,MTIME,MUSER ,MUSERName ,WorkPoint )
  304. Values(NEWID(),'{0}','{1}',getdate(),'{2}','{3}','{4}')
  305. ";
  306. sql = string.Format(sql, queryParam["ContainerID"].ToString(), queryParam["LotNo"].ToString(), MUSER, MUSERNAME, WorkPoint);
  307. try
  308. {
  309. if (SqlHelper.ExecuteNonQuery(sql) > 0)
  310. {
  311. }
  312. else
  313. {
  314. msg = "新增失败";
  315. }
  316. }
  317. catch (Exception ex)
  318. {
  319. throw new Exception(ex.Message);
  320. }
  321. return msg;
  322. }
  323. //包装容器
  324. public DataTable GetSendContainer(ref Pagination jqgridparam, string queryJson)
  325. {
  326. DataTable dt = new DataTable();
  327. var queryParam = queryJson.ToJObject();
  328. List<DbParameter> parameter = new List<DbParameter>();
  329. string sql = @"select top 0 ID,ContainerID,ContainerCode,ContainerName,Memo,MUSER,MUSERName,MTIME,WorkPoint from ICSContainer";
  330. sql += " WHERE 1=1";
  331. sql = string.Format(sql);
  332. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  333. }
  334. public DataTable GetBindContainerID(string SireCode)
  335. {
  336. DataTable dt = new DataTable();
  337. //var queryParam = queryJson.ToJObject();
  338. List<DbParameter> parameter = new List<DbParameter>();
  339. string sql = @" select ID,WorkPoint from ICSContainer where ContainerCode='{0}'";
  340. sql = string.Format(sql, SireCode);
  341. return Repository().FindTableBySql(sql.ToString());
  342. }
  343. public DataTable GetContainerInfo(string Code)
  344. {
  345. DataTable dt = new DataTable();
  346. //var queryParam = queryJson.ToJObject();
  347. List<DbParameter> parameter = new List<DbParameter>();
  348. string sql = @" select ID,ContainerID,ContainerCode,ContainerName,Memo,MUSER,MUSERName,MTIME,WorkPoint from ICSContainer where ContainerCode='{0}'";
  349. sql = string.Format(sql, Code);
  350. return Repository().FindTableBySql(sql.ToString());
  351. }
  352. public string BindingContainerID(string keyValue)
  353. {
  354. // string msg = "";
  355. // try
  356. // {
  357. // string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  358. // string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  359. // string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  360. // string sql = string.Empty;
  361. // JArray res = (JArray)JsonConvert.DeserializeObject(ICSMTDOC);
  362. // foreach (var item in res)
  363. // {
  364. // JObject jo = (JObject)item;
  365. // sql += @"
  366. // IF NOT EXISTS(SELECT ContainerCode FROM ICSContainer WHERE ContainerCode='{1}' )
  367. // BEGIN
  368. // RAISERROR('容器:{1} 不存在!',16,1);
  369. // RETURN
  370. // END
  371. // IF EXISTS(select ContainerID from ICSContainer where ContainerCode='{1}' and isnull(ContainerID,'')<>'')
  372. // BEGIN
  373. // RAISERROR('容器:{1},已绑定父容器!',16,1);
  374. // RETURN
  375. // END
  376. // update ICSContainer set ContainerID='{0}' WHERE ContainerCode = '{1}' and WorkPoint ='{2}'";
  377. // sql = string.Format(sql, SireID, jo["ContainerCode"].ToString(), WorkPoint);
  378. // }
  379. // if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  380. // {
  381. // }
  382. // else
  383. // {
  384. // msg = "绑定失败";
  385. // }
  386. // }
  387. // catch (Exception ex)
  388. // {
  389. // msg = ex.Message;
  390. // }
  391. // return msg;
  392. string msg = "";
  393. string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "ICSContainerCon/Create";
  394. string result = SqlHelper.HttpPost(APIURL, keyValue);
  395. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  396. string MessAge = Obj["Message"].ToString();
  397. string Success = Obj["Success"].ToString();
  398. if (Success.ToUpper() == "FALSE")
  399. {
  400. msg = MessAge;
  401. }
  402. return msg;
  403. }
  404. /// <summary>
  405. /// 新增包装、容器
  406. /// </summary>
  407. /// <param name="queryJson"></param>
  408. /// <returns></returns>
  409. /// 20230717 lacy.xu Modifly 新增允许料品混装、允许项目号混装、允许批次混装、允许复用
  410. public string InsertICSContainer(string keyValue)
  411. {
  412. string msg = "";
  413. try
  414. {
  415. var queryParam = keyValue.ToJObject();
  416. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  417. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  418. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  419. string sql = string.Empty;
  420. sql = @"IF EXISTS(select ContainerCODE from ICSContainer where ContainerCODE='{1}' )
  421. RAISERROR('{1}',16,1)
  422. else
  423. INSERT INTO dbo.ICSContainer
  424. ( ID ,ContainerID ,ContainerCODE ,ContainerName,Memo,MTIME,MUSER ,MUSERName ,WorkPoint
  425. ,InventoryMixed,ProjectMixed,BatchMixed,Multiplex,ContainerType,EATTRIBUTE3)
  426. Values(NEWID(),'{0}','{1}','{2}','{3}',GETDATE(),'{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','SRM')
  427. ";
  428. sql = string.Format(sql, queryParam["ContainerID"].ToString(), queryParam["ContainerCODE"].ToString(), queryParam["ContainerName"].ToString(), queryParam["Memo"].ToString(), MUSER, MUSERNAME, queryParam["WorkPoint"].ToString(), queryParam["InventoryMixed"].ToString(), queryParam["ProjectMixed"].ToString(), queryParam["BatchMixed"].ToString(), queryParam["Multiplex"].ToString(), queryParam["ContainerType"].ToString());
  429. if (SqlHelper.ExecuteNonQuery(sql) > 0)
  430. {
  431. }
  432. else
  433. {
  434. msg = "新增失败";
  435. }
  436. }
  437. catch (Exception ex)
  438. {
  439. throw new Exception(ex.Message);
  440. }
  441. return msg;
  442. }
  443. //包装容器关联条码
  444. public DataTable GetSendContainerLot(ref Pagination jqgridparam, string queryJson)
  445. {
  446. DataTable dt = new DataTable();
  447. var queryParam = queryJson.ToJObject();
  448. List<DbParameter> parameter = new List<DbParameter>();
  449. string sql = @"
  450. select top 0 a.ID, a.LotNo,a.InvCode,b.InvName,b.InvStd,b.InvUnit, a.ProductDate,a.Quantity from ICSInventoryLot a
  451. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint";
  452. sql = string.Format(sql);
  453. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  454. }
  455. /// <summary>
  456. /// 回车后获取信息
  457. /// </summary>
  458. /// <param name="LotNo"></param>
  459. /// <returns>20230719 lacy.xu modifly 增加自由项</returns>
  460. public DataTable GetContainerLotInfo(string LotNo)
  461. {
  462. DataTable dt = new DataTable();
  463. //var queryParam = queryJson.ToJObject();
  464. List<DbParameter> parameter = new List<DbParameter>();
  465. string sql = @" select a.ID, a.LotNo,a.InvCode,b.InvName,b.InvStd,b.InvUnit, a.ProductDate,a.Quantity
  466. ,c.ProjectCode,c.BatchCode,Version,Brand,c.cFree1,c.cFree2,c.cFree3,c.cFree4,c.cFree5,c.cFree6,c.cFree7
  467. ,c.cFree8,c.cFree9,c.cFree10,a.WorkPoint
  468. from ICSInventoryLot a
  469. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  470. LEFT JOIN dbo.ICSExtension c ON a.ExtensionID=c.ID AND a.WorkPoint=c.WorkPoint
  471. where a.LotNo='{0}'";
  472. sql = string.Format(sql, LotNo);
  473. return Repository().FindTableBySql(sql.ToString());
  474. }
  475. public string BindingContainerLotID(string keyValue)
  476. {
  477. // string msg = "";
  478. // try
  479. // {
  480. // string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  481. // string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  482. // string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  483. // string sql = string.Empty;
  484. // JArray res = (JArray)JsonConvert.DeserializeObject(ICSMTDOC);
  485. // foreach (var item in res)
  486. // {
  487. // JObject jo = (JObject)item;
  488. // sql += @"
  489. // IF NOT EXISTS(SELECT ContainerCode FROM ICSContainer WHERE ContainerCode='{5}')
  490. // BEGIN
  491. // RAISERROR('容器:{5} 不存在!',16,1);
  492. // RETURN
  493. // END
  494. // IF NOT EXISTS(select LotNo from ICSInventoryLot where LotNo='{1}')
  495. // BEGIN
  496. // RAISERROR('条码:{1},不存在!',16,1);
  497. // RETURN
  498. // END
  499. // IF EXISTS(select LotNo from ICSContainerLot where LotNo ='{1}')
  500. // BEGIN
  501. // RAISERROR('条码:{1},已绑定容器!',16,1);
  502. // RETURN
  503. // END
  504. // INSERT INTO ICSContainerLot
  505. // (ID,ContainerID,LotNo,MUSER,MUSERName,WorkPoint,MTIME )
  506. // Values(NEWID(),'{0}','{1}','{2}','{3}','{4}',getdate())";
  507. // sql = string.Format(sql, SireID, jo["LotNo"].ToString(), MUSER, MUSERNAME, WorkPoint, SireCode);
  508. // }
  509. // if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  510. // {
  511. // }
  512. // else
  513. // {
  514. // msg = "绑定失败";
  515. // }
  516. // }
  517. // catch (Exception ex)
  518. // {
  519. // msg = ex.Message;
  520. // }
  521. // return msg;
  522. string msg = "";
  523. string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "ICSContainerLot/Create";
  524. string result = SqlHelper.HttpPost(APIURL, keyValue);
  525. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  526. string MessAge = Obj["Message"].ToString();
  527. string Success = Obj["Success"].ToString();
  528. if (Success.ToUpper() == "FALSE")
  529. {
  530. msg = MessAge;
  531. }
  532. return msg;
  533. }
  534. /// <summary>
  535. /// 删除包装、容器
  536. /// </summary>
  537. /// <param name="keyValue">传入ID</param>
  538. /// <returns></returns>
  539. public string DeleteICSContainerLot(string keyValue)
  540. {
  541. ////站点信息
  542. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  543. //string msg = "";
  544. //keyValue = keyValue.Substring(1, keyValue.Length - 2);
  545. //string sql = string.Empty;
  546. //sql = string.Format(@"DELETE FROM dbo.ICSContainerLot WHERE ID IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
  547. //try
  548. //{
  549. // SqlHelper.ExecuteNonQuery(sql);
  550. //}
  551. //catch (Exception ex)
  552. //{
  553. // throw new Exception(ex.Message);
  554. //}
  555. //return msg;
  556. string msg = "";
  557. string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "ICSContainerLot/Untie";
  558. string result = SqlHelper.HttpPost(APIURL, keyValue);
  559. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  560. string MessAge = Obj["Message"].ToString();
  561. string Success = Obj["Success"].ToString();
  562. if (Success.ToUpper() == "FALSE")
  563. {
  564. msg = MessAge;
  565. }
  566. return msg;
  567. }
  568. }
  569. }