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.

902 lines
44 KiB

3 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.Domain.Entity.ProductManage;
  7. using NFine.Domain.IRepository.ProductManage;
  8. using NFine.Repository;
  9. using NFine.Repository.ProductManage;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.Data.Common;
  14. using System.Linq;
  15. using System.Text;
  16. namespace NFine.Application
  17. {
  18. public class CartonNoManageApp : RepositoryFactory<ICSVendor>
  19. {
  20. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  21. {
  22. // string sqlDelete = @" DELETE a FROM ICSContainer a
  23. //LEFT JOIN dbo.ICSContainerLot b ON a.ID=b.ContainerID
  24. // WHERE b.ContainerID IS NULL and a.EATTRIBUTE3='SRM' and isnull(ContainerType,'')='ContainerType01'";
  25. // SqlHelper.ExecuteNonQuery(sqlDelete);
  26. DataTable dt = new DataTable();
  27. var queryParam = queryJson.ToJObject();
  28. List<DbParameter> parameter = new List<DbParameter>();
  29. //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
  30. // FROM dbo.ICSCarton a
  31. // LEFT JOIN Sys_WorkPoint w on a.WorkPoint=w.WorkPointCode
  32. // LEFT JOIN dbo.ICSVendor b ON a.EATTRIBUTE8=b.cVenCode AND a.WorkPoint=b.WorkPoint
  33. // WHERE 1=1 and EATTRIBUTE3='SRM'";
  34. string sql = @"select distinct a.ID,a.ContainerCode,a.MUSERName, CONVERT(NVARCHAR(50),a.MTIME,23) as MTIME,b.VenName,w.WorkPointName,w.WorkPointCode,a.EATTRIBUTE8
  35. FROM dbo.ICSContainer a
  36. LEFT JOIN Sys_WorkPoint w on a.WorkPoint=w.WorkPointCode
  37. LEFT JOIN dbo.ICSVendor b ON a.EATTRIBUTE8=b.VenCode AND a.WorkPoint=b.WorkPoint
  38. left join ICSContainerLot c on c.ContainerID=a.ID AND a.WorkPoint=c.WorkPoint
  39. LEFT JOIN dbo.ICSInventoryLot d ON c.LotNo=d.LotNo AND d.WorkPoint=c.WorkPoint
  40. LEFT JOIN dbo.ICSINVENTORY e ON d.InvCode=e.INVCODE AND d.WorkPoint=e.WorkPoint
  41. WHERE 1=1 and a.EATTRIBUTE3='SRM' and a.ContainerType='ContainerType01' ";
  42. if (queryParam["Type"].ToString()=="2")
  43. {
  44. sql += "and a.EATTRIBUTE1='2' ";
  45. }
  46. else if (queryParam["Type"].ToString() == "1")
  47. {
  48. sql += "and a.EATTRIBUTE1='1' ";
  49. }
  50. else
  51. {
  52. sql += "";
  53. }
  54. if (!string.IsNullOrWhiteSpace(queryJson))
  55. {
  56. if (!string.IsNullOrWhiteSpace(queryParam["CartonNo"].ToString()))
  57. {
  58. sql += " and ContainerCode like '%" + queryParam["CartonNo"].ToString() + "%' ";
  59. }
  60. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  61. {
  62. sql += " and a.EATTRIBUTE8 like '%" + queryParam["VenCode"].ToString() + "%' ";
  63. }
  64. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  65. {
  66. sql += " and b.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  67. }
  68. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  69. {
  70. sql += " and e.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  71. }
  72. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  73. {
  74. sql += " and CONVERT(NVARCHAR(50),a.MTIME,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  75. }
  76. if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
  77. {
  78. sql += " and CONVERT(NVARCHAR(50),a.MTIME,23) <= '" + queryParam["TimeTo"].ToString() + "' ";
  79. }
  80. }
  81. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  82. {
  83. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  84. }
  85. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  86. {
  87. sql += " and a.EATTRIBUTE8='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  88. }
  89. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  90. }
  91. /// <summary>
  92. /// 子表查询
  93. /// </summary>
  94. /// <param name="queryJson"></param>
  95. /// <param name="jqgridparam"></param>
  96. /// <returns></returns>
  97. public DataTable GetSubGridJson(string CartonNo, ref Pagination jqgridparam)
  98. {
  99. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  100. DataTable dt = new DataTable();
  101. //var queryParam = queryJson.ToJObject();
  102. List<DbParameter> parameter = new List<DbParameter>();
  103. //string sql = @"SELECT a.ID,c.ItemCODE,d.INVNAME,c.VenderLotNO,c.LOTQTY,c.TYPE,
  104. // b.EATTRIBUTE8,c.ORDERNO,c.TransNo,c.TransLine,a.LotNo,d.INVDESC,d.INVTYPE,e.MEMO,d.INVSTD,d.INVPARSETYPE
  105. // FROM dbo.ICSITEMLot2Carton a
  106. // LEFT JOIN dbo.ICSCarton b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
  107. // LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
  108. // LEFT JOIN dbo.ICSINVENTORY d ON c.ItemCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
  109. // LEFT JOIN dbo.ICSPO_PoMain e ON c.TransNO=e.POCode AND c.TransLine=e.PORow AND a.WorkPoint=e.WorkPoint
  110. // WHERE a.CartonNO='" + CartonNo + "' and a.WorkPoint in(" + WorkPoint + ")";
  111. string sql = @"
  112. SELECT a.ID,c.InvCode,d.INVNAME,c.Quantity,c.TYPE,
  113. b.EATTRIBUTE8,g.ProjectCode,f.TransCode,f.TransSequence,a.LotNo,d.INVDESC,d.INVSTD
  114. FROM dbo.ICSContainerLot a
  115. LEFT JOIN dbo.ICSContainer b ON a.ContainerID=b.ID AND a.WorkPoint=b.WorkPoint
  116. LEFT JOIN dbo.ICSInventoryLot c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  117. left join ICSInventoryLotDetail f on c.LOTNO=f.LotNO
  118. LEFT JOIN dbo.ICSINVENTORY d ON c.InvCode=d.INVCODE AND a.WorkPoint=d.WorkPoint
  119. LEFT JOIN dbo.ICSPurchaseOrder e ON f.TransCode=e.POCode AND f.TransSequence=e.Sequence AND a.WorkPoint=e.WorkPoint
  120. LEFT JOIN dbo.ICSExtension g ON e.ExtensionID=g.ID
  121. WHERE b.ContainerCode='" + CartonNo + "' and a.WorkPoint in(" + WorkPoint + ")";
  122. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  123. }
  124. public DataTable GetSubGridJsons(string CartonNo,string WorkPointCode, ref Pagination jqgridparam)
  125. {
  126. // string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  127. DataTable dt = new DataTable();
  128. //var queryParam = queryJson.ToJObject();
  129. List<DbParameter> parameter = new List<DbParameter>();
  130. //string sql = @"SELECT a.ID,c.ItemCODE,d.INVNAME,c.VenderLotNO,c.LOTQTY,c.TYPE,
  131. // b.EATTRIBUTE8,c.ORDERNO,c.TransNo,c.TransLine,a.LotNo,d.INVDESC,d.INVTYPE,e.MEMO,d.INVSTD,d.INVPARSETYPE
  132. // FROM dbo.ICSITEMLot2Carton a
  133. // LEFT JOIN dbo.ICSCarton b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
  134. // LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
  135. // LEFT JOIN dbo.ICSINVENTORY d ON c.ItemCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
  136. // LEFT JOIN dbo.ICSPO_PoMain e ON c.TransNO=e.POCode AND c.TransLine=e.PORow AND a.WorkPoint=e.WorkPoint
  137. // WHERE a.CartonNO='" + CartonNo + "' and a.WorkPoint in(" + WorkPoint + ")";
  138. string sql = @"
  139. SELECT a.ID,c.InvCode,d.INVNAME,c.Quantity,c.TYPE,
  140. b.EATTRIBUTE8,g.ProjectCode,f.TransCode,f.TransSequence,a.LotNo,d.INVDESC,d.INVSTD
  141. FROM dbo.ICSContainerLot a
  142. LEFT JOIN dbo.ICSContainer b ON a.ContainerID=b.ID AND a.WorkPoint=b.WorkPoint
  143. LEFT JOIN dbo.ICSInventoryLot c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  144. left join ICSInventoryLotDetail f on c.LOTNO=f.LotNO
  145. LEFT JOIN dbo.ICSINVENTORY d ON c.InvCode=d.INVCODE AND a.WorkPoint=d.WorkPoint
  146. LEFT JOIN dbo.ICSPurchaseOrder e ON f.TransCode=e.POCode AND f.TransSequence=e.Sequence AND a.WorkPoint=e.WorkPoint
  147. LEFT JOIN dbo.ICSExtension g ON e.ExtensionID=g.ID
  148. WHERE b.ContainerCode='" + CartonNo + "' and a.WorkPoint in('" + WorkPointCode + "')";
  149. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  150. }
  151. public DataTable GetSubGridJson_Add(string queryJson,string WorkPoint, ref Pagination jqgridparam)
  152. {
  153. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  154. DataTable dt = new DataTable();
  155. var queryParam = queryJson.ToJObject();
  156. List<DbParameter> parameter = new List<DbParameter>();
  157. string sql = @" SELECT a.ID,a.ID as ZJID,c.InvCode,d.INVNAME,c.Quantity,c.TYPE,
  158. b.EATTRIBUTE8,g.ProjectCode,f.TransCode,f.TransSequence,a.LotNo,d.INVDESC,d.INVSTD
  159. FROM dbo.ICSContainerLot a
  160. LEFT JOIN dbo.ICSContainer b ON a.ContainerID=b.ID AND a.WorkPoint=b.WorkPoint
  161. LEFT JOIN dbo.ICSInventoryLot c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  162. left join ICSInventoryLotDetail f on c.LOTNO=f.LotNO
  163. LEFT JOIN dbo.ICSINVENTORY d ON c.InvCode=d.INVCODE AND a.WorkPoint=d.WorkPoint
  164. LEFT JOIN dbo.ICSPurchaseOrder e ON f.TransCode=e.POCode AND f.TransSequence=e.Sequence AND a.WorkPoint=e.WorkPoint
  165. LEFT JOIN dbo.ICSExtension g ON e.ExtensionID=g.ID
  166. WHERE b.ContainerCode='" + queryParam["CartonNo"].ToString() + "' and a.WorkPoint='" + WorkPoint + "'";
  167. if (queryParam["Type"].ToString()=="2")
  168. {
  169. sql += "and c.Type = '201'";
  170. }
  171. else
  172. {
  173. sql += "and c.Type = '200'";
  174. }
  175. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  176. }
  177. public DataTable GetSubGridJson_AddByAsn(string queryJson, string WorkPoint, ref Pagination jqgridparam)
  178. {
  179. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  180. DataTable dt = new DataTable();
  181. var queryParam = queryJson.ToJObject();
  182. List<DbParameter> parameter = new List<DbParameter>();
  183. string sql = @" SELECT b.ID, b.LotNo,'' AS ProjectCode,d.TransCode,d.TransSequence,a.ASNCode,a.VenCode,g.InvCode,h.INVDESC,h.INVSTD,c.Quantity,c.Type FROM dbo.ICSASN a
  184. inner JOIN dbo.ICSASNDetail b ON a.ASNCode=b.ASNCode AND a.WorkPoint=b.WorkPoint
  185. inner JOIN dbo.ICSInventoryLot c ON b.LotNo=c.LotNo AND b.WorkPoint=c.WorkPoint
  186. inner JOIN dbo.ICSInventoryLotDetail d ON c.LotNo=d.LotNo AND c.WorkPoint=d.WorkPoint
  187. LEFT JOIN ICSContainerLot e ON d.LotNo=e.LotNo AND d.WorkPoint=e.WorkPoint
  188. LEFT JOIN dbo.ICSDeliveryNotice f ON a.ASNCode=f.ASNCode AND a.WorkPoint=f.WorkPoint AND f.DNType='2'
  189. inner JOIN dbo.ICSPurchaseOrder g ON d.TransCode=g.POCode AND d.TransSequence=g.Sequence AND d.WorkPoint=g.WorkPoint
  190. LEFT JOIN dbo.ICSInventory h ON g.InvCode=h.InvCode AND g.WorkPoint=g.WorkPoint
  191. WHERE a.ASNCode='" + queryParam["ASNCode"].ToString()+"'and a.WorkPoint='" + WorkPoint + "' AND e.LotNo IS NULL AND f.ASNCode IS NULL";
  192. //if (queryParam["Type"].ToString() == "2")
  193. //{
  194. // sql += "and c.Type = '201'";
  195. //}
  196. //else
  197. //{
  198. // sql += "and c.Type = '200'";
  199. //}
  200. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  201. {
  202. sql += " and g.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  203. }
  204. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  205. {
  206. sql += " and h.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  207. }
  208. if (!string.IsNullOrWhiteSpace(queryParam["TransNo"].ToString()))
  209. {
  210. sql += " and d.TransCode like '%" + queryParam["TransNo"].ToString() + "%' ";
  211. }
  212. if (!string.IsNullOrWhiteSpace(queryParam["TransLine"].ToString()))
  213. {
  214. sql += " and d.TransSequence like '%" + queryParam["TransLine"].ToString() + "%' ";
  215. }
  216. if (!string.IsNullOrWhiteSpace(queryParam["LotNo"].ToString()))
  217. {
  218. sql += " and c.LotNo like '%" + queryParam["LotNo"].ToString() + "%' ";
  219. }
  220. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  221. }
  222. /// <summary>
  223. /// 子表查询
  224. /// </summary>
  225. /// <param name="queryJson"></param>
  226. /// <param name="jqgridparam"></param>
  227. /// <returns></returns>
  228. public DataTable GetSubGridJson(string CartonNo, string queryJson, ref Pagination jqgridparam)
  229. {
  230. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  231. DataTable dt = new DataTable();
  232. //var queryParam = queryJson.ToJObject();
  233. List<DbParameter> parameter = new List<DbParameter>();
  234. string sql = @"SELECT a.ID,c.ItemCODE,d.INVNAME,c.VenderLotNO,c.LOTQTY,c.TYPE
  235. FROM dbo.ICSITEMLot2Carton a
  236. LEFT JOIN dbo.ICSCarton b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
  237. LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
  238. LEFT JOIN dbo.ICSINVENTORY d ON c.ItemCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
  239. WHERE a.CartonNO='" + CartonNo + "' and a.WorkPoint in(" + WorkPoint + ")";
  240. if (!string.IsNullOrEmpty(queryJson))
  241. {
  242. sql += @"UNION ALL
  243. SELECT a.ID,a.ItemCODE,b.INVNAME,a.VenderLotNO,a.LOTQTY,a.TYPE
  244. FROM dbo.ICSITEMLot a
  245. LEFT JOIN dbo.ICSINVENTORY b ON a.ItemCODE=b.INVCODE AND a.WorkPoint=b.WorkPoint
  246. WHERE a.ID IN (" + queryJson.TrimEnd(',') + ") and a.WorkPonit in (" + WorkPoint + ")";
  247. }
  248. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  249. }
  250. public DataTable GetSubGridJsonByCreate(string POCode, string PORow)
  251. {
  252. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  253. DataTable dt = new DataTable();
  254. //var queryParam = queryJson.ToJObject();
  255. List<DbParameter> parameter = new List<DbParameter>();
  256. string sql = @"SELECT a.ID, a.POCode,a.PORow, CONVERT(NVARCHAR(50),a.PODate,23) as PODate,a.ORDERNO,a.VenCode,a.VenName,a.InvCode,
  257. b.INVNAME,b.INVSTD,b.INVDESC,b.INVUOM,a.Quantity,ISNULL(c.CreatedQty,0) AS CreatedQty,isnull(c.InQty,0) as InQty,a.WorkPoint
  258. FROM dbo.ICSPO_PoMain a
  259. LEFT JOIN dbo.ICSINVENTORY b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
  260. LEFT JOIN (SELECT SUM(x.LOTQTY) CreatedQty,TransNO,TransLine,x.WorkPoint,
  261. SUM(CASE WHEN y.LotNO IS NOT NULL THEN x.LOTQTY ELSE 0 END) AS InQty
  262. FROM dbo.ICSITEMLot x
  263. LEFT JOIN dbo.ICSWareHouseLotInfo y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
  264. GROUP BY TransNO,TransLine,x.WorkPoint) c ON a.POCode=c.TransNO AND a.PORow=c.TransLine AND a.WorkPoint=c.WorkPoint
  265. WHERE 1=1
  266. and a.POCode='" + POCode + "' and a.PORow='" + PORow + "' and a.WorkPonit in (" + WorkPoint + "";
  267. return Repository().FindTableBySql(sql.ToString());
  268. }
  269. public DataTable GetVendorLotNo(string VenCode, string WorkPoint)
  270. {
  271. DataTable dt = new DataTable();
  272. //var queryParam = queryJson.ToJObject();
  273. List<DbParameter> parameter = new List<DbParameter>();
  274. string dtPre = DateTime.Now.ToString("yyyyMMdd");
  275. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSITEMLotNo','VendorLotNo','" + VenCode + dtPre + "',2";
  276. return Repository().FindTableBySql(sql.ToString());
  277. }
  278. /// <summary>
  279. /// 生成条码
  280. /// </summary>
  281. /// <param name="POCode"></param>
  282. /// <param name="PORow"></param>
  283. /// <param name="keyValue"></param>
  284. /// <returns></returns>
  285. public int CreateItemLotNo(string POCode, string PORow, string keyValue)
  286. {
  287. var queryParam = keyValue.ToJObject();
  288. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  289. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  290. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  291. decimal LOTQTY = minPackQty;
  292. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  293. string VenCode = GetVendorCode(POCode, PORow, WorkPoint);
  294. string Pre = VenCode + DateTime.Now.ToString("yyMMdd");
  295. string sql = string.Empty;
  296. string VendorLot = queryParam["VendorLot"].ToString();
  297. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  298. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  299. for (int i = 0; i < createPageCount; i++)
  300. {
  301. if (i + 1 == createPageCount)
  302. {
  303. if (minPackQty * createPageCount > thisCreateQty)
  304. {
  305. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  306. }
  307. }
  308. string LotNo = GetSerialCode(WorkPoint, "ICSITEMLot", "LotNO", Pre, 5);
  309. sql += string.Format(@"INSERT INTO dbo.ICSITEMLot
  310. ( ID ,LotNO ,ItemCODE ,TransNO ,TransLine ,VENDORITEMCODE ,VENDORCODE ,
  311. VenderLotNO ,PRODUCTDATE ,LOTQTY ,ACTIVE ,Exdate ,WorkPoint ,
  312. MUSER ,MUSERName ,MTIME ,TYPE,ORDERNO)
  313. SELECT NEWID(),'{0}',InvCode,POCode,PORow,'',NULL,
  314. '{1}',GETDATE(),'{2}','Y','2999-12-31 00:00:00.000','{3}',
  315. '{4}','{5}',GETDATE(),'',ORDERNO
  316. FROM dbo.ICSPO_PoMain WHERE POCode='{6}' AND PORow='{7}' AND WorkPoint='{3}'",
  317. LotNo, VendorLot, LOTQTY, WorkPoint, MUSER, MUSERNAME, POCode, PORow);
  318. sql += "\r\n";
  319. }
  320. int count = SqlHelper.ExecuteNonQuery(sql);
  321. return count;
  322. }
  323. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  324. {
  325. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  326. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  327. return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  328. }
  329. public string GetVendorCode(string POCode, string PORow, string WorkPoint)
  330. {
  331. string sql = string.Format(@"SELECT VenCode FROM dbo.ICSPO_PoMain
  332. WHERE POCode='{0}' AND PORow='{1}' AND WorkPoint='{2}'", POCode, PORow, WorkPoint);
  333. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  334. string VenCode = string.Empty;
  335. if (dt != null && dt.Rows.Count > 0)
  336. {
  337. VenCode = dt.Rows[0][0].ToString();
  338. }
  339. return VenCode;
  340. }
  341. /// <summary>
  342. /// 删除条码
  343. /// </summary>
  344. /// <param name="keyValue"></param>
  345. /// <returns></returns>
  346. public string DeleteItemLot(string keyValue)
  347. {
  348. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  349. string msg = "";
  350. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  351. string sql = string.Format(@"SELECT * FROM dbo.ICSASNDETAIL
  352. WHERE LOTNO IN (
  353. SELECT LotNo FROM dbo.ICSITEMLot2Carton WHERE LotNo_ID IN ({0})
  354. ) OR LOTNO IN (
  355. SELECT LotNO FROM dbo.ICSITEMLot WHERE ID IN ({0})
  356. ) and WorkPoint='{1}'", keyValue.TrimEnd(','), WorkPoint);
  357. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  358. if (dt == null || dt.Rows.Count <= 0)
  359. {
  360. sql = string.Format(@"DELETE FROM dbo.ICSITEMLot2Carton WHERE LotNo_ID IN ({0}) and WorkPoint='{1}'; ", keyValue.TrimEnd(','), WorkPoint);
  361. DbHelper.ExecuteNonQuery(CommandType.Text, sql);
  362. }
  363. else
  364. {
  365. msg = "所选条码已加入送货单,请先在送货单管理页面删除该条码!";
  366. }
  367. return msg;
  368. }
  369. public string DeleteCartonNos(string keyValue, string WorkPoint)
  370. {
  371. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  372. string msg = "";
  373. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  374. //WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  375. string sql = string.Format(@"SELECT * FROM dbo.ICSInventoryLot
  376. WHERE LOTNO IN (
  377. SELECT LotNO FROM dbo.ICSContainerLot WHERE ContainerID in ({0}) and WorkPoint in ('{1}'))", keyValue.TrimEnd(','), WorkPoint.TrimEnd(','));
  378. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  379. if (dt == null || dt.Rows.Count <= 0)
  380. {
  381. sql = string.Format(@"DELETE FROM dbo.ICSContainer WHERE ContainerCode in ({0}) and WorkPoint in ('{1}')
  382. DELETE FROM dbo.ICSContainerLot WHERE ContainerID in ({0}) and WorkPoint in ('{1}') ", keyValue.TrimEnd(','), WorkPoint.TrimEnd(','));
  383. DbHelper.ExecuteNonQuery(CommandType.Text, sql);
  384. }
  385. else
  386. {
  387. msg = "所选箱号中已有加入送货单中,请先在送单号中删除!";
  388. }
  389. return msg;
  390. }
  391. /// <summary>
  392. /// 删除箱号
  393. /// </summary>
  394. /// <param name="keyValue"></param>
  395. /// <returns></returns>
  396. public string DeleteCartonNo(string keyValue, string WorkPoint)
  397. {
  398. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  399. string msg = "";
  400. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  401. string sql = string.Format(@"SELECT * FROM dbo.ICSASNDETAIL
  402. WHERE LOTNO IN (
  403. SELECT LotNO FROM dbo.ICSContainer a
  404. LEFT JOIN ICSContainerLot b ON a.ID=b.ContainerID WHERE a.ContainerCode in ({0}) and a.WorkPoint in ({1}))", keyValue.TrimEnd(','), WorkPoint.TrimEnd(','));
  405. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  406. if (dt == null || dt.Rows.Count <= 0)
  407. {
  408. sql = string.Format(@" DELETE a FROM dbo.ICSContainerLot a
  409. LEFT JOIN ICSContainer b ON a.ContainerID=b.ID
  410. WHERE b.ContainerCode in ({0}) AND a.WorkPoint in ({1})
  411. DELETE FROM dbo.ICSContainer WHERE ContainerCode in ({0}) and WorkPoint in ({1})
  412. ", keyValue.TrimEnd(','), WorkPoint.TrimEnd(','));
  413. DbHelper.ExecuteNonQuery(CommandType.Text, sql);
  414. }
  415. else
  416. {
  417. msg = "所选箱号中已有加入送货单中,请先在送单号中删除!";
  418. }
  419. return msg;
  420. }
  421. /// <summary>
  422. /// 选择条码
  423. /// </summary>
  424. /// <returns></returns>
  425. public DataTable GetInfoBySelectItemCode(string queryJson, ref Pagination jqgridparam)
  426. {
  427. string Left = string.Empty;
  428. var queryParam = queryJson.ToJObject();
  429. List<DbParameter> parameter = new List<DbParameter>();
  430. string sql = @"SELECT a.ID, a.LotNO,a.InvCode,d.INVNAME,a.Quantity,a.TYPE,g.ProjectCode,f.TransCode,
  431. f.TransSequence,d.INVDESC,d.INVSTD,CONVERT(NVARCHAR(20), a.ProductDate,23) AS ProductDate
  432. FROM dbo.ICSInventoryLot a
  433. LEFT JOIN ICSInventoryLotDetail f ON a.LotNo=f.LotNo AND a.WorkPoint=f.WorkPoint
  434. LEFT JOIN dbo.ICSContainerLot b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  435. LEFT JOIN dbo.ICSASNDETAIL c ON a.LotNO=c.LOTNO AND a.WorkPoint=c.WorkPoint
  436. LEFT JOIN dbo.ICSINVENTORY d ON a.InvCode=d.INVCODE AND a.WorkPoint=d.WorkPoint
  437. {1}
  438. left join (SELECT LotNo FROM dbo.ICSContainerLot a
  439. LEFT JOIN ICSContainer b ON a.ContainerID=b.ID WHERE b.ContainerCode = '{0}') ss on a.LotNo=ss.LotNO
  440. LEFT JOIN dbo.ICSExtension g ON e.ExtensionID=g.ID AND e.WorkPoint=g.WorkPoint
  441. WHERE b.LotNo IS NULL AND c.LOTNO IS NULL and ss.LotNo is NULL and ISNULL(a.EATTRIBUTE1,'')='' AND e.Status<>'3' ";
  442. if (queryParam["Type"].ToString() == "2")
  443. {
  444. Left = " LEFT JOIN dbo.ICSOutsourcingOrder e ON f.TransCode=e.OOCode AND f.TransSequence=e.Sequence AND a.WorkPoint=e.WorkPoint ";
  445. }
  446. else
  447. {
  448. Left = " LEFT JOIN dbo.ICSPurchaseOrder e ON f.TransCode=e.POCode AND f.TransSequence=e.Sequence AND a.WorkPoint=e.WorkPoint ";
  449. }
  450. sql = string.Format(sql, queryParam["CartonNo"].ToString(), Left);
  451. if (!string.IsNullOrEmpty(queryJson))
  452. {
  453. if (queryParam["Type"].ToString()=="2")
  454. {
  455. sql += " and a.Type='201' ";
  456. }
  457. else
  458. {
  459. sql += " and a.Type='200' ";
  460. }
  461. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  462. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  463. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  464. sql += " and d.INVNAME like '%" + queryParam["InvName"].ToString() + "%'";
  465. if (!string.IsNullOrWhiteSpace(queryParam["OrderNo"].ToString()))
  466. sql += " and g.ProjectCode like '%" + queryParam["OrderNo"].ToString() + "%'";
  467. if (!string.IsNullOrWhiteSpace(queryParam["TransNo"].ToString()))
  468. sql += " and f.TransCode like '%" + queryParam["TransNo"].ToString() + "%'";
  469. if (!string.IsNullOrWhiteSpace(queryParam["TransLine"].ToString()))
  470. sql += " and f.TransSequence like '%" + queryParam["TransLine"].ToString() + "%'";
  471. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  472. sql += " and e.VenCode like '%" + queryParam["VenCode"].ToString() + "%'";
  473. if (!string.IsNullOrWhiteSpace(queryParam["LotNo"].ToString()))
  474. sql += " and a.LotNo like '%" + queryParam["LotNo"].ToString() + "%'";
  475. }
  476. sql += " and a.WorkPoint='" + queryParam["WorkPoint"].ToString() + "'";
  477. //string VenCode = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
  478. //if (!string.IsNullOrEmpty(VenCode))
  479. //{
  480. // sql += " AND e.VenCode='"+ VenCode + "'";
  481. //}
  482. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  483. }
  484. /// <summary>
  485. /// 获取供应商列表
  486. /// </summary>
  487. /// <returns></returns>
  488. public DataTable GetVendor()
  489. {
  490. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  491. string sql = @"
  492. select '' as F_VenCode, '' as cVenName
  493. union all
  494. SELECT DISTINCT a.F_VenCode,isnull(b.VenName,'') as cVenName FROM dbo.Sys_SRM_User a
  495. LEFT JOIN dbo.ICSVendor b ON a.F_VenCode=b.VenCode
  496. WHERE a.F_VenCode IS NOT NULL AND a.F_VenCode <>'' ";
  497. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  498. if (role != "admin")
  499. {
  500. sql += " and b.WorkPoint=" + WorkPoint + "";
  501. }
  502. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  503. return dt;
  504. }
  505. public string GetCartonNo(string WorkPoint)
  506. {
  507. string CartonNo = string.Empty;
  508. string VenCode = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
  509. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  510. if (!string.IsNullOrEmpty(VenCode))
  511. {
  512. string Date = DateTime.Now.ToString("yyMMdd");
  513. string Pre = "C" + VenCode + Date;
  514. CartonNo = GetSerialCode(WorkPoint, "ICSCarton", "CartonNo", Pre, 3);
  515. }
  516. if (!string.IsNullOrEmpty(CartonNo))
  517. {
  518. string sql = string.Empty;
  519. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  520. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  521. sql = @"INSERT INTO dbo.ICSContainer
  522. ( ID ,ContainerCode ,ContainerID,ContainerName,InventoryMixed,ProjectMixed,BatchMixed,Multiplex,
  523. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerType)
  524. VALUES ( NEWID(),'" + CartonNo + "','','','','','','','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','SRM','ContainerType01')";
  525. try
  526. {
  527. SqlHelper.ExecuteNonQuery(sql);
  528. }
  529. catch (Exception ex)
  530. {
  531. throw new Exception(ex.Message);
  532. }
  533. }
  534. return CartonNo;
  535. }
  536. public string GetCartonNoByPerson(string VenCode, string WorkPoint)
  537. {
  538. string CartonNo = string.Empty;
  539. string Date = DateTime.Now.ToString("yyMMdd");
  540. string Pre = "C" + VenCode + Date;
  541. CartonNo = GetSerialCode(WorkPoint, "ICSCarton", "CartonNo", Pre, 3);
  542. if (!string.IsNullOrEmpty(CartonNo))
  543. {
  544. string sql = string.Empty;
  545. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  546. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  547. sql = @"INSERT INTO dbo.ICSContainer
  548. ( ID ,ContainerCode ,ContainerID,ContainerName,InventoryMixed,ProjectMixed,BatchMixed,Multiplex,
  549. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerType)
  550. VALUES ( NEWID(),'" + CartonNo + "','','','','','','','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','SRM','ContainerType01')";
  551. try
  552. {
  553. SqlHelper.ExecuteNonQuery(sql);
  554. }
  555. catch (Exception ex)
  556. {
  557. throw new Exception(ex.Message);
  558. }
  559. }
  560. return CartonNo;
  561. }
  562. public string CheckCartonNo(string JsonData, string CartonNo, string WorkPoint)
  563. {
  564. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  565. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  566. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  567. string msg = "";
  568. string sql = "";
  569. //string sql = string.Format(@"SELECT DISTINCT * FROM (
  570. // SELECT DISTINCT INVCODE FROM dbo.ICSITEMLot2Carton
  571. // WHERE CartonNO='{0}' and WorkPoint={2}
  572. // UNION ALL
  573. // SELECT DISTINCT ItemCODE AS INVCODE FROM dbo.ICSITEMLot WHERE ID IN ({1}) and WorkPoint={2}
  574. // ) t", CartonNo, JsonData.TrimEnd(','), WorkPoint);
  575. //DataTable dt = SqlHelper.GetDataTableBySql(sql);
  576. //if (dt.Rows.Count > 1)
  577. //{
  578. // msg = "箱号原有物料与新增物料编码不同!";
  579. //}
  580. //else
  581. //{
  582. //sql = string.Format(@"UPDATE dbo.ICSCarton SET ItemCode=
  583. // ( SELECT DISTINCT ItemCODE AS INVCODE FROM dbo.ICSITEMLot WHERE ID IN ({0}) and WorkPoint={2})
  584. // WHERE CartonNO='{1}' and WorkPoint={2}", JsonData.TrimEnd(','), CartonNo, WorkPoint);
  585. //try
  586. //{
  587. // SqlHelper.ExecuteNonQuery(sql);
  588. //}
  589. //catch (Exception ex)
  590. //{
  591. // throw new Exception(ex.Message);
  592. //}
  593. sql = "SELECT ID FROM ICSContainer WHERE ContainerCode='{0}' ";
  594. sql = string.Format(sql, CartonNo);
  595. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  596. string ID = dt.Rows[0]["ID"].ToString();
  597. sql = @"INSERT INTO dbo.ICSContainerLot
  598. ( ID ,ContainerID ,LotNo ,
  599. MUSER ,MUSERName ,MTIME ,WorkPoint )
  600. SELECT NEWID(), '" + ID + @"',a.LotNO,
  601. '" + MUSER + "','" + MUSERNAME + "',getdate()," + WorkPoint + @"
  602. FROM dbo.ICSInventoryLot a
  603. left join ICSInventoryLotDetail b on a.LOTNO=b.LotNO
  604. WHERE ID IN(" + JsonData.TrimEnd(',') + ") and a.WorkPoint=" + WorkPoint + "";
  605. try
  606. {
  607. SqlHelper.ExecuteNonQuery(sql);
  608. }
  609. catch (Exception ex)
  610. {
  611. throw new Exception(ex.Message);
  612. }
  613. //}
  614. return msg;
  615. }
  616. /// <summary>
  617. /// 删除箱号内的条码
  618. /// </summary>
  619. /// <param name="keyValue"></param>
  620. /// <returns></returns>
  621. public string DeleteInfo(string keyValue,string WorkPoint)
  622. {
  623. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  624. string msg = "";
  625. string sql = string.Format(@"DELETE FROM dbo.ICSContainerLot WHERE ID in ({0}) and WorkPoint in ('{1}') ", keyValue.TrimEnd(','), WorkPoint.TrimEnd(','));
  626. try
  627. {
  628. SqlHelper.ExecuteNonQuery(sql);
  629. }
  630. catch (Exception ex)
  631. {
  632. msg = ex.Message;
  633. }
  634. return msg;
  635. }
  636. public string CheckIsAll(string CartonNo)
  637. {
  638. string sql = @"SELECT a.ContainerCode,b.ID
  639. FROM dbo.ICSContainer a
  640. LEFT JOIN ICSContainerLot b ON a.ID=b.ContainerID AND a.WorkPoint=b.WorkPoint
  641. LEFT JOIN dbo.ICSASNDETAIL c ON c.LotNo=b.LOTNO AND a.WorkPoint=c.WorkPoint
  642. WHERE a.ContainerCode='" + CartonNo + "' AND c.ID IS not NULL";
  643. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  644. if (dt != null && dt.Rows.Count > 0)
  645. {
  646. return "0";
  647. }
  648. else
  649. {
  650. return "1";
  651. }
  652. }
  653. public string GetContainerCode(string RoleEnCode, string WorkPoint)
  654. {
  655. DataTable dt = new DataTable();
  656. string Date = DateTime.Now.ToString("yyMMdd");
  657. string Pre = "C" + RoleEnCode + Date;
  658. string CartonNo = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", Pre, 3);
  659. return CartonNo;
  660. }
  661. public string SaveICSContainerForBox(string ICSASN)
  662. {
  663. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  664. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  665. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  666. string msg = "";
  667. string sql = string.Empty;
  668. string ID = Guid.NewGuid().ToString();
  669. JArray res = (JArray)JsonConvert.DeserializeObject(ICSASN);
  670. foreach (var item in res)
  671. {
  672. JObject jo = (JObject)item;
  673. //创建箱子
  674. sql += @" INSERT INTO dbo.ICSContainer
  675. ( ID ,ContainerCode ,ContainerName,InventoryMixed,ProjectMixed,BatchMixed,Multiplex,
  676. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerType,ContainerID,EATTRIBUTE1)
  677. VALUES ( '{0}','{1}','{1}','1','1','1','1','{2}','{3}',getdate(),'{4}','{5}','SRM','ContainerType01','','{6}')";
  678. sql = string.Format(sql, ID, jo["ContainerCode"].ToString(), MUSER, MUSERNAME, jo["WorkPoint"].ToString(), jo["VenCode"].ToString(), jo["Type"].ToString());
  679. JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["Detail"].ToString());
  680. foreach (var detail in resdetail)
  681. {
  682. //箱子与条码绑定
  683. JObject det = (JObject)detail;
  684. sql += @" INSERT INTO dbo.ICSContainerLot
  685. ( ID ,ContainerID ,LotNo,
  686. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE1)
  687. VALUES ( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}','{5}')";
  688. sql = string.Format(sql, ID, det["LotNo"].ToString(), MUSER, MUSERNAME, jo["WorkPoint"].ToString(), jo["ContainerCode"].ToString());
  689. }
  690. }
  691. try
  692. {
  693. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  694. {
  695. }
  696. else
  697. {
  698. msg = "新增失败";
  699. }
  700. }
  701. catch (Exception ex)
  702. {
  703. msg = ex.Message;
  704. }
  705. return msg;
  706. }
  707. public string SaveICSContainerForBoxByAsn(string ICSASN)
  708. {
  709. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  710. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  711. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  712. string msg = "";
  713. string sql = string.Empty;
  714. string ID = Guid.NewGuid().ToString();
  715. JArray res = (JArray)JsonConvert.DeserializeObject(ICSASN);
  716. foreach (var item in res)
  717. {
  718. JObject jo = (JObject)item;
  719. //创建箱子
  720. sql += @" INSERT INTO dbo.ICSContainer
  721. ( ID ,ContainerCode ,ContainerName,InventoryMixed,ProjectMixed,BatchMixed,Multiplex,
  722. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerType,ContainerID,EATTRIBUTE1)
  723. VALUES ( '{0}','{1}','{1}','1','1','1','1','{2}','{3}',getdate(),'{4}','{5}','SRM','ContainerType01','','{6}')";
  724. sql = string.Format(sql, ID, jo["ContainerCode"].ToString(), MUSER, MUSERNAME, jo["WorkPoint"].ToString(), jo["VenCode"].ToString(), jo["Type"].ToString());
  725. JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["Detail"].ToString());
  726. foreach (var detail in resdetail)
  727. {
  728. //箱子与条码绑定
  729. JObject det = (JObject)detail;
  730. sql += @" INSERT INTO dbo.ICSContainerLot
  731. ( ID ,ContainerID ,LotNo,
  732. MUSER ,MUSERName ,MTIME,WorkPoint)
  733. VALUES ( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}')";
  734. sql = string.Format(sql, ID, det["LotNo"].ToString(), MUSER, MUSERNAME, jo["WorkPoint"].ToString());
  735. }
  736. }
  737. try
  738. {
  739. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  740. {
  741. }
  742. else
  743. {
  744. msg = "新增失败";
  745. }
  746. }
  747. catch (Exception ex)
  748. {
  749. msg = ex.Message;
  750. }
  751. return msg;
  752. }
  753. public string UpdateICSContainerForBox(string ICSASN)
  754. {
  755. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  756. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  757. string msg = "";
  758. string sql = string.Empty;
  759. string idss = "";
  760. string Code = "";
  761. JArray res = (JArray)JsonConvert.DeserializeObject(ICSASN);
  762. foreach (var item in res)
  763. {
  764. JObject jo = (JObject)item;
  765. Code = jo["ID"].ToString();
  766. JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["Detail"].ToString());
  767. foreach (var detail in resdetail)
  768. {
  769. JObject det = (JObject)detail;
  770. if (string.IsNullOrWhiteSpace(det["ZJID"].ToString()))
  771. {
  772. string DetailID = Guid.NewGuid().ToString();
  773. sql += @" INSERT INTO dbo.ICSContainerLot
  774. ( ID ,ContainerID ,LotNo,
  775. MUSER ,MUSERName ,MTIME,WorkPoint)
  776. VALUES ( '{0}','{1}','{2}','{3}','{4}',getdate(),'{5}')";
  777. sql = string.Format(sql, DetailID, jo["ID"].ToString(), det["LotNo"].ToString(), MUSER, MUSERNAME, jo["WorkPoint"].ToString());
  778. idss += "'" + DetailID + "',";
  779. }
  780. else
  781. {
  782. idss += "'" + det["ZJID"].ToString() + "',";
  783. }
  784. }
  785. }
  786. sql += @"DELETE ICSContainerLot where ContainerID ='{0}' and id not in ({1})";
  787. sql = string.Format(sql, Code, idss.Substring(0, idss.Length - 1));
  788. try
  789. {
  790. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  791. {
  792. }
  793. else
  794. {
  795. msg = "修改失败";
  796. }
  797. }
  798. catch (Exception ex)
  799. {
  800. msg = ex.Message;
  801. }
  802. return msg;
  803. }
  804. public string IsProductDate()
  805. {
  806. string F_ItemName = SqlHelper.GetSHDZDSHItemsDetails("ProductDate", "");
  807. if (!string.IsNullOrWhiteSpace(F_ItemName))
  808. {
  809. return "0";
  810. }
  811. else
  812. {
  813. return "1";
  814. }
  815. }
  816. public string IsInvCode()
  817. {
  818. string F_ItemName = SqlHelper.GetSHDZDSHItemsDetails("InvCode", "");
  819. if (!string.IsNullOrWhiteSpace(F_ItemName))
  820. {
  821. return "0";
  822. }
  823. else
  824. {
  825. return "1";
  826. }
  827. }
  828. }
  829. }