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.

1254 lines
62 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.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.Configuration;
  13. using System.Data;
  14. using System.Data.Common;
  15. using System.IO;
  16. using System.Linq;
  17. using System.Net;
  18. using System.Text;
  19. namespace NFine.Application
  20. {
  21. public class POMaintenanceApp : RepositoryFactory<ICSPO_PoMain>
  22. {
  23. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  24. {
  25. string ParentId = "";
  26. DataTable dt = new DataTable();
  27. var queryParam = queryJson.ToJObject();
  28. List<DbParameter> parameter = new List<DbParameter>();
  29. string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder", "a").TrimEnd(',');
  30. string sql = @"SELECT DISTINCT a.ID, a.POCode,CONVERT(NVARCHAR(15),CreateDateTime,23) AS PODate,ExtensionID,a.VenCode,d.VenName,ReleaseState,ReleaseState as ReleaseStateBlock,a.WorkPoint,c.WorkPointName,b.PlanArriveDate,a.Sequence,e.ProjectCode
  31. ," + EATTRIBUTE + "";
  32. sql+= @" FROM dbo.ICSPurchaseOrder a
  33. LEFT JOIN (SELECT POCode,PlanArriveDate,WorkPoint,Sequence FROM dbo.ICSPurchaseOrder) b ON a.POCode=b.POCode and a.Sequence=b.Sequence and a.WorkPoint=b.WorkPoint
  34. LEFT JOIN Sys_WorkPoint c on a.WorkPoint=c.WorkPointCode
  35. left join ICSVendor d on a.VenCode=d.VenCode and a.WorkPoint=d.WorkPoint
  36. LEFT JOIN dbo.ICSExtension e ON a.ExtensionID=e.ID AND a.WorkPoint=e.WorkPoint
  37. LEFT JOIN dbo.ICSInventory f ON a.InvCode=f.InvCode AND a.WorkPoint=f.WorkPoint
  38. WHERE 1=1 and ReleaseState='1' and a.Status<>'3'";
  39. if (!string.IsNullOrWhiteSpace(queryJson))
  40. {
  41. if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
  42. {
  43. sql += " and a.ExtensionID like '%" + queryParam["ORDERNO"].ToString() + "%' ";
  44. }
  45. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  46. {
  47. sql += " and a.POCode like '%" + queryParam["POCode"].ToString() + "%' ";
  48. }
  49. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  50. {
  51. sql += " and CONVERT(NVARCHAR(20),CreateDateTime,23) >='" + queryParam["BeginDate"].ToString() + "' ";
  52. }
  53. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  54. {
  55. sql += " and CONVERT(NVARCHAR(20),CreateDateTime,23) <='" + queryParam["EndDate"].ToString() + "'";
  56. }
  57. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  58. {
  59. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  60. }
  61. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  62. {
  63. sql += " and d.VenName like '%" + queryParam["VenName"].ToString() + "%'";
  64. }
  65. if (!string.IsNullOrWhiteSpace(queryParam["EATTRIBUTE12"].ToString()))
  66. {
  67. sql += " and a.EATTRIBUTE12 like '%" + queryParam["EATTRIBUTE12"].ToString() + "%'";
  68. }
  69. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  70. {
  71. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  72. }
  73. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  74. {
  75. sql += " and f.InvName like '%" + queryParam["InvName"].ToString() + "%'";
  76. }
  77. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  78. {
  79. string POStatus = queryParam["POStatus"].ToString();
  80. if (POStatus == "1")
  81. {
  82. sql += " AND (a.ArriveDate IS not NULL or a.EATTRIBUTE29 IS not null)";
  83. }
  84. else if(POStatus=="2")
  85. {
  86. sql += " AND (a.ArriveDate is null and a.EATTRIBUTE29 is null )";
  87. }
  88. }
  89. }
  90. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  91. {
  92. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
  93. }
  94. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  95. {
  96. //已改多站点
  97. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  98. }
  99. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  100. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  101. {
  102. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  103. }
  104. else
  105. {
  106. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  107. }
  108. }
  109. #region 多交期查询主表
  110. public DataTable GetGridJsonByMore(string queryJson, ref Pagination jqgridparam)
  111. {
  112. string ParentId = "";
  113. DataTable dt = new DataTable();
  114. var queryParam = queryJson.ToJObject();
  115. List<DbParameter> parameter = new List<DbParameter>();
  116. string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder", "a").TrimEnd(',');
  117. string sql = @"SELECT DISTINCT a.ID, a.POCode,CONVERT(NVARCHAR(15),CreateDateTime,23) AS PODate,ExtensionID,a.VenCode,d.VenName,ReleaseState,ReleaseState as ReleaseStateBlock,a.WorkPoint,c.WorkPointName,b.PlanArriveDate,a.Sequence,e.ProjectCode
  118. ," + EATTRIBUTE + "";
  119. sql += @" FROM dbo.ICSPurchaseOrder a
  120. LEFT JOIN (SELECT POCode,PlanArriveDate,WorkPoint,Sequence FROM dbo.ICSPurchaseOrder) b ON a.POCode=b.POCode and a.Sequence=b.Sequence and a.WorkPoint=b.WorkPoint
  121. LEFT JOIN Sys_WorkPoint c on a.WorkPoint=c.WorkPointCode
  122. left join ICSVendor d on a.VenCode=d.VenCode and a.WorkPoint=d.WorkPoint
  123. LEFT JOIN dbo.ICSExtension e ON a.ExtensionID=e.ID AND a.WorkPoint=e.WorkPoint
  124. LEFT JOIN dbo.ICSInventory f ON a.InvCode=f.InvCode AND a.WorkPoint=f.WorkPoint
  125. WHERE 1=1 and ReleaseState='1' and a.Status<>'3'";
  126. if (!string.IsNullOrWhiteSpace(queryJson))
  127. {
  128. if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
  129. {
  130. sql += " and a.ExtensionID like '%" + queryParam["ORDERNO"].ToString() + "%' ";
  131. }
  132. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  133. {
  134. sql += " and a.POCode like '%" + queryParam["POCode"].ToString() + "%' ";
  135. }
  136. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  137. {
  138. sql += " and CONVERT(NVARCHAR(20),CreateDateTime,23) >='" + queryParam["BeginDate"].ToString() + "' ";
  139. }
  140. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  141. {
  142. sql += " and CONVERT(NVARCHAR(20),CreateDateTime,23) <='" + queryParam["EndDate"].ToString() + "'";
  143. }
  144. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  145. {
  146. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  147. }
  148. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  149. {
  150. sql += " and d.VenName like '%" + queryParam["VenName"].ToString() + "%'";
  151. }
  152. if (!string.IsNullOrWhiteSpace(queryParam["EATTRIBUTE12"].ToString()))
  153. {
  154. sql += " and a.EATTRIBUTE12 like '%" + queryParam["EATTRIBUTE12"].ToString() + "%'";
  155. }
  156. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  157. {
  158. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  159. }
  160. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  161. {
  162. sql += " and f.InvName like '%" + queryParam["InvName"].ToString() + "%'";
  163. }
  164. if (!string.IsNullOrWhiteSpace(queryParam["ArriveDate"].ToString()))
  165. {
  166. sql += " and a.ArriveDate = '" + queryParam["ArriveDate"].ToString() + "'";
  167. }
  168. if (!string.IsNullOrWhiteSpace(queryParam["DeliveryDate"].ToString()))
  169. {
  170. sql += " and a.DeliveryDate = '" + queryParam["DeliveryDate"].ToString() + "'";
  171. }
  172. if (!string.IsNullOrWhiteSpace(queryParam["EATTRIBUTE29"].ToString()))
  173. {
  174. sql += " and a.EATTRIBUTE29 like '%" + queryParam["EATTRIBUTE29"].ToString() + "%'";
  175. }
  176. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  177. {
  178. string POStatus = queryParam["POStatus"].ToString();
  179. if (POStatus == "1")
  180. {
  181. sql += " AND (a.ArriveDate IS not NULL or a.EATTRIBUTE29 IS not null)";
  182. }
  183. else if (POStatus == "2")
  184. {
  185. sql += " AND (a.ArriveDate is null and a.EATTRIBUTE29 is null )";
  186. }
  187. }
  188. }
  189. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  190. {
  191. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
  192. }
  193. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  194. {
  195. //已改多站点
  196. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  197. }
  198. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  199. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  200. {
  201. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  202. }
  203. else
  204. {
  205. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  206. }
  207. }
  208. #endregion
  209. public DataTable GetGridJsonWeiWai(string queryJson, ref Pagination jqgridparam)
  210. {
  211. string ParentId = "";
  212. DataTable dt = new DataTable();
  213. var queryParam = queryJson.ToJObject();
  214. List<DbParameter> parameter = new List<DbParameter>();
  215. string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder", "a").TrimEnd(',');
  216. string sql = @" SELECT DISTINCT a.ID, a.OOCode,CONVERT(NVARCHAR(15),CreateDateTime,23) AS PODate,ExtensionID,a.VenCode,d.VenName,ReleaseState,ReleaseState as ReleaseStateBlock,a.WorkPoint,c.WorkPointName,a.PlanArriveDate
  217. ," + EATTRIBUTE + "";
  218. sql+= @" FROM dbo.ICSOutsourcingOrder a
  219. LEFT JOIN Sys_WorkPoint c on a.WorkPoint=c.WorkPointCode
  220. left join ICSVendor d on a.VenCode=d.VenCode and a.WorkPoint=d.WorkPoint
  221. LEFT JOIN dbo.ICSInventory f ON a.InvCode=f.InvCode AND a.WorkPoint=f.WorkPoint
  222. WHERE 1=1 and ReleaseState='1' and a.Status<>'3'";
  223. if (!string.IsNullOrWhiteSpace(queryJson))
  224. {
  225. if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
  226. {
  227. sql += " and a.ExtensionID like '%" + queryParam["ORDERNO"].ToString() + "%' ";
  228. }
  229. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  230. {
  231. sql += " and a.OOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  232. }
  233. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  234. {
  235. sql += " and CONVERT(NVARCHAR(20),CreateDateTime,23) >='" + queryParam["BeginDate"].ToString() + "' ";
  236. }
  237. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  238. {
  239. sql += " and CONVERT(NVARCHAR(20),CreateDateTime,23) <='" + queryParam["EndDate"].ToString() + "'";
  240. }
  241. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  242. {
  243. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  244. }
  245. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  246. {
  247. sql += " and d.VenName like '%" + queryParam["VenName"].ToString() + "%'";
  248. }
  249. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  250. {
  251. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  252. }
  253. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  254. {
  255. sql += " and f.InvName like '%" + queryParam["InvName"].ToString() + "%'";
  256. }
  257. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  258. {
  259. string POStatus = queryParam["POStatus"].ToString();
  260. if (POStatus == "1")
  261. {
  262. sql += " AND a.ArriveDate IS not NULL";
  263. }
  264. else if (POStatus == "2")
  265. {
  266. sql += " AND a.ArriveDate IS NULL";
  267. }
  268. }
  269. }
  270. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  271. {
  272. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
  273. }
  274. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  275. {
  276. //已改多站点
  277. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  278. }
  279. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  280. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  281. {
  282. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  283. }
  284. else
  285. {
  286. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  287. }
  288. }
  289. #region 多交期维护(委外)
  290. public DataTable GetGridJsonWeiWaiByMore(string queryJson, ref Pagination jqgridparam)
  291. {
  292. string ParentId = "";
  293. DataTable dt = new DataTable();
  294. var queryParam = queryJson.ToJObject();
  295. List<DbParameter> parameter = new List<DbParameter>();
  296. string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder", "a").TrimEnd(',');
  297. string sql = @" SELECT DISTINCT a.ID, a.OOCode,CONVERT(NVARCHAR(15),CreateDateTime,23) AS PODate,ExtensionID,a.VenCode,d.VenName,ReleaseState,ReleaseState as ReleaseStateBlock,a.WorkPoint,c.WorkPointName,a.PlanArriveDate
  298. ," + EATTRIBUTE + "";
  299. sql += @" FROM dbo.ICSOutsourcingOrder a
  300. LEFT JOIN Sys_WorkPoint c on a.WorkPoint=c.WorkPointCode
  301. left join ICSVendor d on a.VenCode=d.VenCode and a.WorkPoint=d.WorkPoint
  302. LEFT JOIN dbo.ICSInventory f ON a.InvCode=f.InvCode AND a.WorkPoint=f.WorkPoint
  303. WHERE 1=1 and ReleaseState='1' and a.Status<>'3'";
  304. if (!string.IsNullOrWhiteSpace(queryJson))
  305. {
  306. if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
  307. {
  308. sql += " and a.ExtensionID like '%" + queryParam["ORDERNO"].ToString() + "%' ";
  309. }
  310. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  311. {
  312. sql += " and a.OOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  313. }
  314. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  315. {
  316. sql += " and CONVERT(NVARCHAR(20),CreateDateTime,23) >='" + queryParam["BeginDate"].ToString() + "' ";
  317. }
  318. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  319. {
  320. sql += " and CONVERT(NVARCHAR(20),CreateDateTime,23) <='" + queryParam["EndDate"].ToString() + "'";
  321. }
  322. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  323. {
  324. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  325. }
  326. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  327. {
  328. sql += " and a.VenName like '%" + queryParam["VenName"].ToString() + "%'";
  329. }
  330. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  331. {
  332. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  333. }
  334. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  335. {
  336. sql += " and f.InvName like '%" + queryParam["InvName"].ToString() + "%'";
  337. }
  338. if (!string.IsNullOrWhiteSpace(queryParam["ArriveDate"].ToString()))
  339. {
  340. sql += " and a.ArriveDate = '" + queryParam["ArriveDate"].ToString() + "'";
  341. }
  342. if (!string.IsNullOrWhiteSpace(queryParam["DeliveryDate"].ToString()))
  343. {
  344. sql += " and a.DeliveryDate = '" + queryParam["DeliveryDate"].ToString() + "'";
  345. }
  346. if (!string.IsNullOrWhiteSpace(queryParam["EATTRIBUTE29"].ToString()))
  347. {
  348. sql += " and a.EATTRIBUTE29 like '%" + queryParam["EATTRIBUTE29"].ToString() + "%'";
  349. }
  350. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  351. {
  352. string POStatus = queryParam["POStatus"].ToString();
  353. if (POStatus == "1")
  354. {
  355. sql += " AND a.ArriveDate IS not NULL";
  356. }
  357. else if (POStatus == "2")
  358. {
  359. sql += " AND a.ArriveDate IS NULL";
  360. }
  361. }
  362. }
  363. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  364. {
  365. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
  366. }
  367. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  368. {
  369. //已改多站点
  370. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  371. }
  372. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  373. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  374. {
  375. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  376. }
  377. else
  378. {
  379. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  380. }
  381. }
  382. #endregion
  383. /// <summary>
  384. /// 子表查询
  385. /// </summary>
  386. /// <param name="queryJson"></param>
  387. /// <param name="jqgridparam"></param>
  388. /// <returns></returns>
  389. public DataTable GetSubGridJson(string queryJson, ref Pagination jqgridparam,string WorkPoint)
  390. {
  391. DataTable dt = new DataTable();
  392. //var queryParam = queryJson.ToJObject();
  393. List<DbParameter> parameter = new List<DbParameter>();
  394. string sql = @"SELECT a.POCode, a.ID, a.Sequence,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.Quantity,CONVERT(NVARCHAR(50), a.PlanArriveDate,23) as PreArriveDate,
  395. CONVERT(NVARCHAR(50),a.ArriveDate,23) as ArriveDate ,a.ExtensionID, CONVERT(NVARCHAR(50),a.DeliveryDate,23) as DeliveryDate,
  396. case when isnull(a.ArriveDate,'')='' then '0' else '1' end as IsNew,
  397. b.ClassName,b.InvDesc,case when (isnull(a.ArriveDate,'')='' and isnull(a.EATTRIBUTE29,'')='' )then '0' else '1' end as IsNewBlock,a.EATTRIBUTE29,a.EATTRIBUTE30
  398. FROM dbo.ICSPurchaseOrder a
  399. left JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  400. WHERE a.ID='" + queryJson + "' and a.WorkPoint='"+ WorkPoint + "'";
  401. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  402. }
  403. /// <summary>
  404. /// 子表查询
  405. /// </summary>
  406. /// <param name="queryJson"></param>
  407. /// <param name="jqgridparam"></param>
  408. /// <returns></returns>
  409. public DataTable GetSubGridJsonByYL(string queryJson, ref Pagination jqgridparam, string WorkPoint)
  410. {
  411. DataTable dt = new DataTable();
  412. //var queryParam = queryJson.ToJObject();
  413. List<DbParameter> parameter = new List<DbParameter>();
  414. string sql = @"SELECT a.POCode, a.ID, a.Sequence,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.Quantity,CONVERT(NVARCHAR(50), a.PlanArriveDate,23) as PreArriveDate,
  415. CASE WHEN ISNULL(CONVERT(NVARCHAR(50),a.ArriveDate,23),'')='' THEN CONVERT(NVARCHAR(50), a.PlanArriveDate,23) ELSE CONVERT(NVARCHAR(50),a.ArriveDate,23) end as ArriveDate ,a.ExtensionID, CONVERT(NVARCHAR(50),a.DeliveryDate,23) as DeliveryDate,
  416. case when isnull(a.ArriveDate,'')='' then '0' else '1' end as IsNew,
  417. b.ClassName,b.InvDesc,case when isnull(a.ArriveDate,'')='' then '0' else '1' end as IsNewBlock,a.EATTRIBUTE9
  418. FROM dbo.ICSPurchaseOrder a
  419. left JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  420. WHERE a.ID='" + queryJson + "' and a.WorkPoint='" + WorkPoint + "'";
  421. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  422. }
  423. /// <summary>
  424. /// 子表查询
  425. /// </summary>
  426. /// <param name="queryJson"></param>
  427. /// <param name="jqgridparam"></param>
  428. /// <returns></returns>
  429. public DataTable GetSubGridJsonWeiWai(string queryJson, ref Pagination jqgridparam,string WorkPoint)
  430. {
  431. DataTable dt = new DataTable();
  432. //var queryParam = queryJson.ToJObject();
  433. List<DbParameter> parameter = new List<DbParameter>();
  434. string sql = @" SELECT a.OOCode, a.ID, a.Sequence,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.Quantity,CONVERT(NVARCHAR(50), a.PlanArriveDate,23) as PreArriveDate,
  435. CONVERT(NVARCHAR(50),a.ArriveDate,23) as ArriveDate ,a.ExtensionID, CONVERT(NVARCHAR(50),a.DeliveryDate,23) as DeliveryDate,
  436. case when isnull(a.ArriveDate,'')='' then '0' else '1' end as IsNew,
  437. b.ClassName,b.InvDesc,case when (isnull(a.ArriveDate,'')='' and isnull(a.EATTRIBUTE29,'')='' )then '0' else '1' end as IsNewBlock,a.EATTRIBUTE29,a.EATTRIBUTE30
  438. FROM dbo.ICSOutsourcingOrder a
  439. left JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  440. WHERE a.ID='" + queryJson + "' and a.WorkPoint='"+ WorkPoint + "'";
  441. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  442. }
  443. /// <summary>
  444. /// 订单发布
  445. /// </summary>
  446. /// <param name="queryJson">参数</param>
  447. /// <returns></returns>
  448. public string SubmitPoMaintenance(string queryJson)
  449. {
  450. string msg = "";
  451. DataTable dt = new DataTable();
  452. List<DbParameter> parameter = new List<DbParameter>();
  453. ICSPO_PoMain[] list = JsonConvert.DeserializeObject<ICSPO_PoMain[]>(queryJson);
  454. string sql = string.Empty;
  455. //已改多站点
  456. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  457. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  458. string F_ItemName = "";
  459. string Delivery1Name = "";
  460. string Delivery2Name = "";
  461. try
  462. {
  463. string sqldetail = @"SELECT a.F_ItemName,a.F_Define1,a.F_Define2 FROM Sys_SRM_ItemsDetail a
  464. LEFT JOIN Sys_SRM_Items b ON a.F_ItemId = b.F_Id
  465. WHERE b.F_EnCode = 'SYS_POMaintenance' and a.F_EnabledMark='1'";
  466. DataTable dts = SqlHelper.GetDataTableBySql(sqldetail);
  467. if (dts.Rows.Count > 0)
  468. {
  469. F_ItemName = dts.Rows[0]["F_ItemName"].ToString();
  470. Delivery1Name = dts.Rows[0]["F_Define1"].ToString();
  471. Delivery2Name = dts.Rows[0]["F_Define2"].ToString();
  472. }
  473. List<Dictionary<string, object>> parametersList = new List<Dictionary<string, object>>();
  474. if (!string.IsNullOrWhiteSpace(F_ItemName))
  475. {
  476. foreach (var obj in list)
  477. {
  478. var detailItem = new Dictionary<string, object>();
  479. detailItem["WorkPoint"] = obj.WorkPoint;
  480. detailItem["Code"] = obj.POCode;
  481. detailItem["Sequence"] = obj.PORow;
  482. detailItem["Delivery1Name"] = Delivery1Name;
  483. detailItem["Delivery1Value"] = obj.ArriveDate;
  484. detailItem["Delivery2Name"] = Delivery2Name;
  485. detailItem["Delivery2Value"] = obj.DeliveryDate;
  486. // 将Detail项添加到集合中
  487. parametersList.Add(detailItem);
  488. //U9ConnStr = ConfigurationManager.ConnectionStrings["U8connstr"].ConnectionString;
  489. //string sqlU9 = string.Format(@"update b
  490. // set b.cDefine28='" + obj.ArriveDate + @"'
  491. // from dbo.PO_Pomain a left join dbo.po_podetails b on a.POID=b.POID
  492. // where a.cPOID='" + obj.POCode + "' and b.ivouchrowno='" + obj.PORow + "'");
  493. //sqlU9 += "\r\n";
  494. //sqlU9 += string.Format(@"update b
  495. // set b.cDefine29='" + obj.DeliveryDate + @"'
  496. // from dbo.PO_Pomain a left join dbo.po_podetails b on a.POID=b.POID
  497. // where a.cPOID='" + obj.POCode + "' and b.ivouchrowno='" + obj.PORow + "'");
  498. //int i = SqlHelper.ExecuteNonQuery(U9ConnStr, sqlU9);
  499. }
  500. string Inputstr = JsonConvert.SerializeObject(parametersList);
  501. // Inputstr = "[" + Inputstr + "]";
  502. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "CDEFIND/UPDATE";
  503. string result = HttpPost(APIURL, Inputstr);
  504. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  505. string MessAge = Obj["Message"].ToString();
  506. string Success = Obj["Success"].ToString();
  507. string ApiSql = string.Empty;
  508. if (Success.ToUpper() == "FALSE")
  509. {
  510. throw new Exception("ERP接口调用失败:" + MessAge);
  511. }
  512. else
  513. {
  514. foreach (var obj in list)
  515. {
  516. sql += " update ICSPurchaseOrder set ";
  517. if (!string.IsNullOrWhiteSpace(obj.DeliveryDate))
  518. {
  519. sql += "DeliveryDate='" + obj.DeliveryDate + "' ,DeliveryUser='" + UserCode + "'";
  520. }
  521. else
  522. {
  523. sql += " DeliveryDate=null ";
  524. }
  525. if (obj.IsNew == "0")
  526. {
  527. if (!string.IsNullOrWhiteSpace(obj.ArriveDate))
  528. sql += ",ArriveDate='" + obj.ArriveDate + "',ArriveUser='" + UserCode + "',MTIME=getdate() ";
  529. }
  530. sql += " where ID='" + obj.ID + "' and WorkPoint='" + obj.WorkPoint + "'";
  531. sql += " \r\n";
  532. }
  533. SqlHelper.CmdExecuteNonQueryLi(sql);
  534. }
  535. }
  536. else
  537. {
  538. foreach (var obj in list)
  539. {
  540. sql += " update ICSPurchaseOrder set ";
  541. if (!string.IsNullOrWhiteSpace(obj.DeliveryDate))
  542. {
  543. sql += "DeliveryDate='" + obj.DeliveryDate + "' ,DeliveryUser='" + UserCode + "'";
  544. }
  545. else
  546. {
  547. sql += " DeliveryDate=null ";
  548. }
  549. if (obj.IsNew == "0")
  550. {
  551. if (!string.IsNullOrWhiteSpace(obj.ArriveDate))
  552. sql += ",ArriveDate='" + obj.ArriveDate + "',ArriveUser='" + UserCode + "',MTIME=getdate() ";
  553. }
  554. sql += " where ID='" + obj.ID + "' and WorkPoint='" + obj.WorkPoint + "'";
  555. sql += " \r\n";
  556. }
  557. SqlHelper.CmdExecuteNonQueryLi(sql);
  558. }
  559. }
  560. catch (Exception ex)
  561. {
  562. msg=ex.Message;
  563. }
  564. return msg;
  565. }
  566. public string MoreSubmitPoMaintenance(string queryJson)
  567. {
  568. string msg = "";
  569. DataTable dt = new DataTable();
  570. List<DbParameter> parameter = new List<DbParameter>();
  571. ICSPO_PoMain[] list = JsonConvert.DeserializeObject<ICSPO_PoMain[]>(queryJson);
  572. string sql = string.Empty;
  573. //已改多站点
  574. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  575. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  576. string F_ItemName = "";
  577. string Delivery1Name = "";
  578. string Delivery2Name = "";
  579. try
  580. {
  581. string sqldetail = @"SELECT a.F_ItemName,a.F_Define1,a.F_Define2 FROM Sys_SRM_ItemsDetail a
  582. LEFT JOIN Sys_SRM_Items b ON a.F_ItemId = b.F_Id
  583. WHERE b.F_EnCode = 'SYS_POMaintenance' and a.F_EnabledMark='1'";
  584. DataTable dts = SqlHelper.GetDataTableBySql(sqldetail);
  585. if (dts.Rows.Count > 0)
  586. {
  587. F_ItemName = dts.Rows[0]["F_ItemName"].ToString();
  588. Delivery1Name = dts.Rows[0]["F_Define1"].ToString();
  589. Delivery2Name = dts.Rows[0]["F_Define2"].ToString();
  590. }
  591. List<Dictionary<string, object>> parametersList = new List<Dictionary<string, object>>();
  592. if (!string.IsNullOrWhiteSpace(F_ItemName))
  593. {
  594. foreach (var obj in list)
  595. {
  596. var detailItem = new Dictionary<string, object>();
  597. detailItem["WorkPoint"] = obj.WorkPoint;
  598. detailItem["Code"] = obj.POCode;
  599. detailItem["Sequence"] = obj.PORow;
  600. detailItem["Delivery1Name"] = Delivery1Name;
  601. detailItem["Delivery1Value"] = obj.ArriveDate;
  602. detailItem["Delivery2Name"] = Delivery2Name;
  603. detailItem["Delivery2Value"] = obj.DeliveryDate;
  604. // 将Detail项添加到集合中
  605. parametersList.Add(detailItem);
  606. //U9ConnStr = ConfigurationManager.ConnectionStrings["U8connstr"].ConnectionString;
  607. //string sqlU9 = string.Format(@"update b
  608. // set b.cDefine28='" + obj.ArriveDate + @"'
  609. // from dbo.PO_Pomain a left join dbo.po_podetails b on a.POID=b.POID
  610. // where a.cPOID='" + obj.POCode + "' and b.ivouchrowno='" + obj.PORow + "'");
  611. //sqlU9 += "\r\n";
  612. //sqlU9 += string.Format(@"update b
  613. // set b.cDefine29='" + obj.DeliveryDate + @"'
  614. // from dbo.PO_Pomain a left join dbo.po_podetails b on a.POID=b.POID
  615. // where a.cPOID='" + obj.POCode + "' and b.ivouchrowno='" + obj.PORow + "'");
  616. //int i = SqlHelper.ExecuteNonQuery(U9ConnStr, sqlU9);
  617. }
  618. string Inputstr = JsonConvert.SerializeObject(parametersList);
  619. // Inputstr = "[" + Inputstr + "]";
  620. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "CDEFIND/UPDATE";
  621. string result = HttpPost(APIURL, Inputstr);
  622. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  623. string MessAge = Obj["Message"].ToString();
  624. string Success = Obj["Success"].ToString();
  625. string ApiSql = string.Empty;
  626. if (Success.ToUpper() == "FALSE")
  627. {
  628. throw new Exception("ERP接口调用失败:" + MessAge);
  629. }
  630. else
  631. {
  632. foreach (var obj in list)
  633. {
  634. sql += " update ICSPurchaseOrder set ";
  635. if (!string.IsNullOrWhiteSpace(obj.DeliveryDate))
  636. {
  637. sql += "DeliveryDate='" + obj.DeliveryDate + "' ,DeliveryUser='" + UserCode + "'";
  638. }
  639. else
  640. {
  641. sql += " DeliveryDate=null ";
  642. }
  643. if (obj.IsNew == "0")
  644. {
  645. if (!string.IsNullOrWhiteSpace(obj.ArriveDate))
  646. sql += ",ArriveDate='" + obj.ArriveDate + "',ArriveUser='" + UserCode + "',MTIME=getdate() ";
  647. }
  648. sql += " ,EATTRIBUTE29='" + obj.EATTRIBUTE29 + "',EATTRIBUTE30='" + obj.EATTRIBUTE30 + "' ";
  649. sql += " where ID='" + obj.ID + "' and WorkPoint='" + obj.WorkPoint + "'";
  650. sql += " \r\n";
  651. }
  652. SqlHelper.CmdExecuteNonQueryLi(sql);
  653. }
  654. }
  655. else
  656. {
  657. foreach (var obj in list)
  658. {
  659. sql += " update ICSPurchaseOrder set ";
  660. if (!string.IsNullOrWhiteSpace(obj.DeliveryDate))
  661. {
  662. sql += "DeliveryDate='" + obj.DeliveryDate + "' ,DeliveryUser='" + UserCode + "'";
  663. }
  664. else
  665. {
  666. sql += " DeliveryDate=null ";
  667. }
  668. if (obj.IsNew == "0")
  669. {
  670. if (!string.IsNullOrWhiteSpace(obj.ArriveDate))
  671. sql += ",ArriveDate='" + obj.ArriveDate + "',ArriveUser='" + UserCode + "',MTIME=getdate() ";
  672. }
  673. sql += " ,EATTRIBUTE29='" + obj.EATTRIBUTE29 + "',EATTRIBUTE30='" + obj.EATTRIBUTE30 + "' ";
  674. sql += " where ID='" + obj.ID + "' and WorkPoint='" + obj.WorkPoint + "'";
  675. sql += " \r\n";
  676. }
  677. SqlHelper.CmdExecuteNonQueryLi(sql);
  678. }
  679. }
  680. catch (Exception ex)
  681. {
  682. msg = ex.Message;
  683. }
  684. return msg;
  685. }
  686. public int SubmitPoMaintenanceByYL(string queryJson)
  687. {
  688. DataTable dt = new DataTable();
  689. List<DbParameter> parameter = new List<DbParameter>();
  690. ICSPO_PoMain[] list = JsonConvert.DeserializeObject<ICSPO_PoMain[]>(queryJson);
  691. string sql = string.Empty;
  692. //已改多站点
  693. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  694. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  695. foreach (var obj in list)
  696. {
  697. sql += " update ICSPurchaseOrder set ";
  698. if (!string.IsNullOrWhiteSpace(obj.DeliveryDate))
  699. {
  700. sql += "DeliveryDate='" + obj.DeliveryDate + "' ,DeliveryUser='" + UserCode + "'";
  701. }
  702. else
  703. {
  704. sql += " DeliveryDate=null ";
  705. }
  706. if (!string.IsNullOrWhiteSpace(obj.EATTRIBUTE9))
  707. {
  708. sql += ",EATTRIBUTE9='" + obj.EATTRIBUTE9 + "'";
  709. }
  710. else
  711. {
  712. sql += " ,EATTRIBUTE9=null ";
  713. }
  714. if (obj.IsNew == "0")
  715. {
  716. if (!string.IsNullOrWhiteSpace(obj.ArriveDate))
  717. sql += ",ArriveDate='" + obj.ArriveDate + "',ArriveUser='" + UserCode + "',MTIME=getdate() ";
  718. }
  719. sql += " where ID='" + obj.ID + "' and WorkPoint='" + obj.WorkPoint + "'";
  720. sql += " \r\n";
  721. }
  722. string U9ConnStr = "";
  723. string F_ItemName = SqlHelper.GetSHDZDSHItemsDetails("SYS_POMaintenance", "");
  724. if (!string.IsNullOrWhiteSpace(F_ItemName))
  725. {
  726. foreach (var obj in list)
  727. {
  728. //if (obj.WorkPoint== "UFDATA_206_2019")
  729. //{
  730. // U9ConnStr= ConfigurationManager.ConnectionStrings["U8connstr2"].ConnectionString;
  731. //}
  732. //if (obj.WorkPoint == "UFDATA_106_2019")
  733. //{
  734. U9ConnStr = ConfigurationManager.ConnectionStrings["U8connstr"].ConnectionString;
  735. //}
  736. string sqlU9 = string.Format(@"update b
  737. set b.cDefine33='" + obj.DeliveryDate + @"'
  738. from dbo.PO_Pomain a left join dbo.po_podetails b on a.POID=b.POID
  739. where a.cPOID='" + obj.POCode + "' and b.ivouchrowno='" + obj.PORow + "'");
  740. sqlU9 += "\r\n";
  741. int i = SqlHelper.ExecuteNonQuery(U9ConnStr, sqlU9);
  742. }
  743. }
  744. StringBuilder Str = new StringBuilder(sql);
  745. return Repository().ExecuteBySql(Str);
  746. }
  747. /// <summary>
  748. /// 批量回复交期
  749. /// </summary>
  750. /// <param name="POCode">采购订单</param>
  751. /// <param name="PORow">采购订单行号</param>
  752. /// <param name="keyValue">前台传入参数</param>
  753. /// <returns></returns>
  754. public int SubmitFormByBatch(string POCodeRow, string ArriveDate)
  755. {
  756. DataTable dt = new DataTable();
  757. List<DbParameter> parameter = new List<DbParameter>();
  758. string sql = string.Empty;
  759. //keyValue = keyValue.Substring(1, keyValue.Length - 2);
  760. //已改多站点
  761. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  762. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  763. sql += @" update ICSPurchaseOrder set ArriveDate='" + ArriveDate + "' " +
  764. ",DeliveryUser='" + UserCode + "' where PoCode+Sequence in("+ POCodeRow.TrimEnd(',') + ")";
  765. StringBuilder Str = new StringBuilder(sql);
  766. return Repository().ExecuteBySql(Str);
  767. }
  768. /// <summary>
  769. /// 批量回复交期
  770. /// </summary>
  771. /// <param name="POCode">采购订单</param>
  772. /// <param name="PORow">采购订单行号</param>
  773. /// <param name="keyValue">前台传入参数</param>
  774. /// <returns></returns>
  775. public int SubmitFormByBatchWeiWai(string POCodeRow, string ArriveDate)
  776. {
  777. DataTable dt = new DataTable();
  778. List<DbParameter> parameter = new List<DbParameter>();
  779. string sql = string.Empty;
  780. //keyValue = keyValue.Substring(1, keyValue.Length - 2);
  781. //已改多站点
  782. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  783. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  784. sql += @" update ICSPurchaseOrder set ArriveDate='" + ArriveDate + "' " +
  785. ",DeliveryUser='" + UserCode + "' where PoCode+Sequence in(" + POCodeRow.TrimEnd(',') + ")";
  786. StringBuilder Str = new StringBuilder(sql);
  787. return Repository().ExecuteBySql(Str);
  788. }
  789. /// <summary>
  790. /// 订单发布
  791. /// </summary>
  792. /// <param name="queryJson">参数</param>
  793. /// <returns></returns>
  794. public string SubmitFormWeiWai(string queryJson)
  795. {
  796. string msg = "";
  797. DataTable dt = new DataTable();
  798. List<DbParameter> parameter = new List<DbParameter>();
  799. ICSPO_PoMain[] list = JsonConvert.DeserializeObject<ICSPO_PoMain[]>(queryJson);
  800. string sql = string.Empty;
  801. //已改多站点
  802. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  803. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  804. string F_ItemName = "";
  805. string Delivery1Name = "";
  806. string Delivery2Name = "";
  807. try
  808. {
  809. string sqldetail = @"SELECT a.F_ItemName,a.F_Define1,a.F_Define2 FROM Sys_SRM_ItemsDetail a
  810. LEFT JOIN Sys_SRM_Items b ON a.F_ItemId = b.F_Id
  811. WHERE b.F_EnCode = 'SYS_POMaintenance' and a.F_EnabledMark='1'";
  812. DataTable dts = SqlHelper.GetDataTableBySql(sqldetail);
  813. if (dts.Rows.Count > 0)
  814. {
  815. F_ItemName = dts.Rows[0]["F_ItemName"].ToString();
  816. Delivery1Name = dts.Rows[0]["F_Define1"].ToString();
  817. Delivery2Name = dts.Rows[0]["F_Define2"].ToString();
  818. }
  819. List<Dictionary<string, object>> parametersList = new List<Dictionary<string, object>>();
  820. if (!string.IsNullOrWhiteSpace(F_ItemName))
  821. {
  822. foreach (var obj in list)
  823. {
  824. var detailItem = new Dictionary<string, object>();
  825. detailItem["WorkPoint"] = obj.WorkPoint;
  826. detailItem["Code"] = obj.POCode;
  827. detailItem["Sequence"] = obj.PORow;
  828. detailItem["Delivery1Name"] = Delivery1Name;
  829. detailItem["Delivery1Value"] = obj.ArriveDate;
  830. detailItem["Delivery2Name"] = Delivery2Name;
  831. detailItem["Delivery2Value"] = obj.DeliveryDate;
  832. // 将Detail项添加到集合中
  833. parametersList.Add(detailItem);
  834. //U9ConnStr = ConfigurationManager.ConnectionStrings["U8connstr"].ConnectionString;
  835. //string sqlU9 = string.Format(@"update b
  836. // set b.cDefine28='" + obj.ArriveDate + @"'
  837. // from dbo.PO_Pomain a left join dbo.po_podetails b on a.POID=b.POID
  838. // where a.cPOID='" + obj.POCode + "' and b.ivouchrowno='" + obj.PORow + "'");
  839. //sqlU9 += "\r\n";
  840. //sqlU9 += string.Format(@"update b
  841. // set b.cDefine29='" + obj.DeliveryDate + @"'
  842. // from dbo.PO_Pomain a left join dbo.po_podetails b on a.POID=b.POID
  843. // where a.cPOID='" + obj.POCode + "' and b.ivouchrowno='" + obj.PORow + "'");
  844. //int i = SqlHelper.ExecuteNonQuery(U9ConnStr, sqlU9);
  845. }
  846. string Inputstr = JsonConvert.SerializeObject(parametersList);
  847. //Inputstr = "[" + Inputstr + "]";
  848. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "CDEFIND/UPDATE";
  849. string result = HttpPost(APIURL, Inputstr);
  850. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  851. string MessAge = Obj["Message"].ToString();
  852. string Success = Obj["Success"].ToString();
  853. string ApiSql = string.Empty;
  854. if (Success.ToUpper() == "FALSE")
  855. {
  856. msg = MessAge;
  857. }
  858. else
  859. {
  860. foreach (var obj in list)
  861. {
  862. //if (!string.IsNullOrWhiteSpace(obj.DeliveryDate))
  863. //{
  864. // sql += ",DeliveryDate='" + obj.DeliveryDate + "' ,DeliveryUser='" + UserCode + "'";
  865. //}
  866. //if (obj.IsNew == "0")
  867. //{
  868. // if (!string.IsNullOrWhiteSpace(obj.ArriveDate))
  869. // sql += ",ArriveDate='" + obj.ArriveDate + "',ArriveUser='" + UserCode + "',MTIME=getdate() ";
  870. //}
  871. //sql += " where ID='" + obj.ID + "' and WorkPoint='" + obj.WorkPoint + "'";
  872. //sql += " \r\n";
  873. //sql = "update ICSOutsourcingOrder set " + sql.Substring(1);
  874. sql += " update ICSOutsourcingOrder set ";
  875. if (!string.IsNullOrWhiteSpace(obj.DeliveryDate))
  876. {
  877. sql += "DeliveryDate='" + obj.DeliveryDate + "' ,DeliveryUser='" + UserCode + "'";
  878. }
  879. else
  880. {
  881. sql += " DeliveryDate=null ";
  882. }
  883. if (obj.IsNew == "0")
  884. {
  885. if (!string.IsNullOrWhiteSpace(obj.ArriveDate))
  886. sql += ",ArriveDate='" + obj.ArriveDate + "',ArriveUser='" + UserCode + "',MTIME=getdate() ";
  887. }
  888. sql += " where ID='" + obj.ID + "' and WorkPoint='" + obj.WorkPoint + "'";
  889. sql += " \r\n";
  890. }
  891. SqlHelper.CmdExecuteNonQueryLi(sql);
  892. }
  893. }
  894. else
  895. {
  896. foreach (var obj in list)
  897. {
  898. //if (!string.IsNullOrWhiteSpace(obj.DeliveryDate))
  899. //{
  900. // sql += ",DeliveryDate='" + obj.DeliveryDate + "' ,DeliveryUser='" + UserCode + "'";
  901. //}
  902. //if (obj.IsNew == "0")
  903. //{
  904. // if (!string.IsNullOrWhiteSpace(obj.ArriveDate))
  905. // sql += ",ArriveDate='" + obj.ArriveDate + "',ArriveUser='" + UserCode + "',MTIME=getdate() ";
  906. //}
  907. //sql += " where ID='" + obj.ID + "' and WorkPoint='" + obj.WorkPoint + "'";
  908. //sql += " \r\n";
  909. //sql = "update ICSOutsourcingOrder set " + sql.Substring(1);
  910. sql += " update ICSOutsourcingOrder set ";
  911. if (!string.IsNullOrWhiteSpace(obj.DeliveryDate))
  912. {
  913. sql += "DeliveryDate='" + obj.DeliveryDate + "' ,DeliveryUser='" + UserCode + "'";
  914. }
  915. else
  916. {
  917. sql += " DeliveryDate=null ";
  918. }
  919. if (obj.IsNew == "0")
  920. {
  921. if (!string.IsNullOrWhiteSpace(obj.ArriveDate))
  922. sql += ",ArriveDate='" + obj.ArriveDate + "',ArriveUser='" + UserCode + "',MTIME=getdate() ";
  923. }
  924. sql += " where ID='" + obj.ID + "' and WorkPoint='" + obj.WorkPoint + "'";
  925. sql += " \r\n";
  926. }
  927. SqlHelper.CmdExecuteNonQueryLi(sql);
  928. }
  929. }
  930. catch (Exception ex)
  931. {
  932. msg = ex.Message;
  933. }
  934. return msg;
  935. }
  936. public string MoreSubmitFormWeiWai(string queryJson)
  937. {
  938. string msg = "";
  939. DataTable dt = new DataTable();
  940. List<DbParameter> parameter = new List<DbParameter>();
  941. ICSPO_PoMain[] list = JsonConvert.DeserializeObject<ICSPO_PoMain[]>(queryJson);
  942. string sql = string.Empty;
  943. //已改多站点
  944. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  945. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  946. string F_ItemName = "";
  947. string Delivery1Name = "";
  948. string Delivery2Name = "";
  949. try
  950. {
  951. string sqldetail = @"SELECT a.F_ItemName,a.F_Define1,a.F_Define2 FROM Sys_SRM_ItemsDetail a
  952. LEFT JOIN Sys_SRM_Items b ON a.F_ItemId = b.F_Id
  953. WHERE b.F_EnCode = 'SYS_POMaintenance' and a.F_EnabledMark='1'";
  954. DataTable dts = SqlHelper.GetDataTableBySql(sqldetail);
  955. if (dts.Rows.Count > 0)
  956. {
  957. F_ItemName = dts.Rows[0]["F_ItemName"].ToString();
  958. Delivery1Name = dts.Rows[0]["F_Define1"].ToString();
  959. Delivery2Name = dts.Rows[0]["F_Define2"].ToString();
  960. }
  961. List<Dictionary<string, object>> parametersList = new List<Dictionary<string, object>>();
  962. if (!string.IsNullOrWhiteSpace(F_ItemName))
  963. {
  964. foreach (var obj in list)
  965. {
  966. var detailItem = new Dictionary<string, object>();
  967. detailItem["WorkPoint"] = obj.WorkPoint;
  968. detailItem["Code"] = obj.POCode;
  969. detailItem["Sequence"] = obj.PORow;
  970. detailItem["Delivery1Name"] = Delivery1Name;
  971. detailItem["Delivery1Value"] = obj.ArriveDate;
  972. detailItem["Delivery2Name"] = Delivery2Name;
  973. detailItem["Delivery2Value"] = obj.DeliveryDate;
  974. // 将Detail项添加到集合中
  975. parametersList.Add(detailItem);
  976. //U9ConnStr = ConfigurationManager.ConnectionStrings["U8connstr"].ConnectionString;
  977. //string sqlU9 = string.Format(@"update b
  978. // set b.cDefine28='" + obj.ArriveDate + @"'
  979. // from dbo.PO_Pomain a left join dbo.po_podetails b on a.POID=b.POID
  980. // where a.cPOID='" + obj.POCode + "' and b.ivouchrowno='" + obj.PORow + "'");
  981. //sqlU9 += "\r\n";
  982. //sqlU9 += string.Format(@"update b
  983. // set b.cDefine29='" + obj.DeliveryDate + @"'
  984. // from dbo.PO_Pomain a left join dbo.po_podetails b on a.POID=b.POID
  985. // where a.cPOID='" + obj.POCode + "' and b.ivouchrowno='" + obj.PORow + "'");
  986. //int i = SqlHelper.ExecuteNonQuery(U9ConnStr, sqlU9);
  987. }
  988. string Inputstr = JsonConvert.SerializeObject(parametersList);
  989. //Inputstr = "[" + Inputstr + "]";
  990. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "CDEFIND/UPDATE";
  991. string result = HttpPost(APIURL, Inputstr);
  992. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  993. string MessAge = Obj["Message"].ToString();
  994. string Success = Obj["Success"].ToString();
  995. string ApiSql = string.Empty;
  996. if (Success.ToUpper() == "FALSE")
  997. {
  998. msg = MessAge;
  999. }
  1000. else
  1001. {
  1002. foreach (var obj in list)
  1003. {
  1004. if (!string.IsNullOrWhiteSpace(obj.DeliveryDate))
  1005. {
  1006. sql += ",DeliveryDate='" + obj.DeliveryDate + "' ,DeliveryUser='" + UserCode + "'";
  1007. }
  1008. else
  1009. {
  1010. sql += " DeliveryDate=null ";
  1011. }
  1012. if (obj.IsNew == "0")
  1013. {
  1014. if (!string.IsNullOrWhiteSpace(obj.ArriveDate))
  1015. sql += ",ArriveDate='" + obj.ArriveDate + "',ArriveUser='" + UserCode +"',MTIME=getdate() ";
  1016. }
  1017. sql += " ,EATTRIBUTE29='" + obj.EATTRIBUTE29 + "',EATTRIBUTE30='" + obj.EATTRIBUTE30 + "' ";
  1018. sql += " where ID='" + obj.ID + "' and WorkPoint='" + obj.WorkPoint + "'";
  1019. sql += " \r\n";
  1020. sql = "update ICSOutsourcingOrder set " + sql.Substring(1);
  1021. }
  1022. SqlHelper.CmdExecuteNonQueryLi(sql);
  1023. }
  1024. }
  1025. else
  1026. {
  1027. foreach (var obj in list)
  1028. {
  1029. if (!string.IsNullOrWhiteSpace(obj.DeliveryDate))
  1030. {
  1031. sql += ",DeliveryDate='" + obj.DeliveryDate + "' ,DeliveryUser='" + UserCode + "'";
  1032. }
  1033. else
  1034. {
  1035. sql += " DeliveryDate=null ";
  1036. }
  1037. if (obj.IsNew == "0")
  1038. {
  1039. if (!string.IsNullOrWhiteSpace(obj.ArriveDate))
  1040. sql += ",ArriveDate='" + obj.ArriveDate + "',ArriveUser='" + UserCode + "',MTIME=getdate() ";
  1041. }
  1042. sql += " ,EATTRIBUTE29='" + obj.EATTRIBUTE29 + "',EATTRIBUTE30='" + obj.EATTRIBUTE30 + "' ";
  1043. sql += " where ID='" + obj.ID + "' and WorkPoint='" + obj.WorkPoint + "'";
  1044. sql += " \r\n";
  1045. sql = "update ICSOutsourcingOrder set " + sql.Substring(1);
  1046. }
  1047. SqlHelper.CmdExecuteNonQueryLi(sql);
  1048. }
  1049. }
  1050. catch (Exception ex)
  1051. {
  1052. msg = ex.Message;
  1053. }
  1054. return msg;
  1055. }
  1056. //接口api解析
  1057. public static string HttpPost(string url, string body)
  1058. {
  1059. try
  1060. {
  1061. Encoding encoding = Encoding.UTF8;
  1062. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  1063. request.Method = "POST";
  1064. request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
  1065. request.ContentType = "application/json; charset=utf-8";
  1066. byte[] buffer = encoding.GetBytes(body);
  1067. request.ContentLength = buffer.Length;
  1068. request.GetRequestStream().Write(buffer, 0, buffer.Length);
  1069. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  1070. using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
  1071. {
  1072. return reader.ReadToEnd();
  1073. }
  1074. }
  1075. catch (WebException ex)
  1076. {
  1077. throw new Exception(ex.Message);
  1078. }
  1079. }
  1080. #region 文件名回写到栏位
  1081. public int UpLoadFile(string pocode, string sequence, string FileName)
  1082. {
  1083. try
  1084. {
  1085. DataTable dt = new DataTable();
  1086. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1087. string sql = "";
  1088. sql += string.Format(@"update ICSPurchaseOrder set EATTRIBUTE3='{0}'
  1089. where POCode='{1}'and Sequence='{2}'",
  1090. FileName, pocode, sequence);
  1091. // FileName.TrimEnd(';'), pocode, sequence);
  1092. sql += "\r\n";
  1093. StringBuilder Str = new StringBuilder(sql);
  1094. return Repository().ExecuteBySql(Str);
  1095. }
  1096. catch (Exception ex)
  1097. {
  1098. throw new Exception(ex.Message);
  1099. }
  1100. }
  1101. #endregion
  1102. #region 获取质检报告文件列表
  1103. public DataTable GetFileInfo(string POCode, string Sequence, ref Pagination jqgridparam)
  1104. {
  1105. List<DbParameter> parameter = new List<DbParameter>();
  1106. string sql = @" select ID, LEFT(EATTRIBUTE2, LEN(EATTRIBUTE2) - 1) as Code
  1107. into #sample
  1108. from ICSPurchaseOrder where POCode='{0}' and Sequence='{1}'
  1109. SELECT ID,b.v as FileName FROM (
  1110. SELECT ID,CONVERT(XML,'<n>'+REPLACE(Code,';','</n><n>')+'</n>') as x FROM #sample
  1111. ) a CROSS APPLY(SELECT k.n.value('.','varchar(100)') v FROM a.x.nodes('n') k(n)) b
  1112. select * from #sample
  1113. DROP table #sample ";
  1114. sql = string.Format(sql, POCode, Sequence);
  1115. // string sql = "select invcode,invname,invstd,invuom,invclass from icsinventory where workpoint='" + workpoint + "'" + wherestr;
  1116. DataTable dts = SqlHelper.GetDataTableBySql(sql);
  1117. return dts;
  1118. }
  1119. #endregion
  1120. #region 删除质检报告文件
  1121. public string DeleteFileByCode(string keyValue, string POCode, string Sequence, string path)
  1122. {
  1123. string msg = string.Empty;
  1124. string sql = string.Empty;
  1125. string[] File = keyValue.Split(';');
  1126. //string [] File = keyValue.TrimEnd(';').Split(';');
  1127. for (int i = 0; i < File.Length; i++)
  1128. {
  1129. var paths = path + "//" + File[i].ToString();
  1130. System.IO.File.Delete(paths);
  1131. var FileName = File[i].ToString() + ";";
  1132. sql += @"UPDATE ICSPurchaseOrder
  1133. SET EATTRIBUTE2 = REPLACE(EATTRIBUTE2, '{0}', '')
  1134. WHERE POCode='{1}' and Sequence='{2}'";
  1135. sql = string.Format(sql, FileName, POCode, Sequence);
  1136. }
  1137. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  1138. {
  1139. msg = "";
  1140. }
  1141. else
  1142. {
  1143. msg = "删除失败!";
  1144. }
  1145. return msg;
  1146. }
  1147. #endregion
  1148. }
  1149. }