SupplyOrderShipController.cs 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
  1. using JCSoft.WX.Framework.Api;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Microsoft.AspNetCore.Http;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Threading.Tasks;
  8. using Common.Wechat;
  9. using Common;
  10. using System.Data.SqlClient;
  11. using ZcPeng.PublicLibrary;
  12. using PublicLibrary.Model;
  13. using Common.Model;
  14. using System.Data;
  15. using Newtonsoft.Json.Converters;
  16. using CoreEntity.Entity;
  17. using Newtonsoft.Json;
  18. using Microsoft.Extensions.Caching.Memory;
  19. using CoreEntity.DAL;
  20. using System.Globalization;
  21. using Newtonsoft.Json.Linq;
  22. using SupplierWeb.Codes.mvc;
  23. namespace SupplierWeb.Controllers
  24. {
  25. [Route("web/supplyordership")]
  26. public class SupplyOrderShipController : BaseController
  27. {
  28. public SupplyOrderShipController(IMemoryCache cache, IApiClient client) : base(cache, client)
  29. {
  30. }
  31. ////查询采购订单(生成的,提交的)未发货
  32. [AuthPermission]
  33. [HttpPost, Route("purchaseorder/{staffId}")]
  34. public JsonResult purchaseorder(QueryFilter[] filters, Int32 pageIndex, Int32 pageSize,
  35. string sortField, Int32 sortDirection, string[] sumFields,
  36. string staffId,
  37. [FromBody]dynamic data)
  38. {
  39. string userids;
  40. userids = getStaffUserid(staffId);
  41. //判断参数是否合法
  42. if (string.IsNullOrEmpty(userids))
  43. {
  44. return Json(new
  45. {
  46. success = 0,
  47. msg = "没有登陆"
  48. });
  49. }
  50. int PushAccountId = Convert.ToInt32(userids);
  51. if (data != null)
  52. {
  53. //Newtonsoft.Json.Linq.JArray
  54. filters = data.filters.ToObject<QueryFilter[]>();
  55. pageIndex = data.pageIndex;
  56. pageSize = data.pageSize;
  57. sortField = data.sortField;
  58. sortDirection = data.sortDirection;
  59. sumFields = data.sumFields.ToObject<string[]>();
  60. }
  61. List<SqlParameter> parameters1 = new List<SqlParameter>();
  62. string filterstring = QueryFilter.getFilterSqlParam(filters, out parameters1, new PurOrderMTEx(),"A.");
  63. filterstring += " and not exists (select PurOrderBillNo from " + Config.TablePrefix + "PurOrderShipment where PurOrderBillNo = A.BillNo) " +
  64. " and A.K_ContactId in (select ContactId from ContactDoc where UserId = '" + PushAccountId + "')";
  65. filterstring = filterstring.Replace("and A.StaffName", "and C.StaffName");
  66. filterstring = filterstring.Replace("and A.Contact", "and F.Contact");
  67. filterstring = filterstring.Replace("and A.BusinessName", "and E.BusinessName");
  68. #region 获取订单
  69. DataTable dt = new DataTable();
  70. string result = string.Empty;
  71. string direct = " desc ";
  72. if (sortDirection != 1)
  73. direct = " asc";
  74. int start = (pageIndex - 1) * pageSize;
  75. int end = (start + 1 + pageSize);
  76. string commandText0 = "select * from (";
  77. string commandText1 =
  78. "select A.*," +
  79. //"B.AccountRealName," +
  80. "C.StaffName,E.BusinessName,F.Contact,row_number() over" +
  81. "( order by A." + sortField + " " + direct + " ) as rownum" +
  82. " from PurOrderMT A " +
  83. //" left join " + Config.TablePrefix + "Account B on A.SaleManId=B.PurStaffId" +
  84. " left join StaffDoc C on A.SaleManId=C.StaffId and C.EntId = A.EntId " +
  85. " left join BusinessDoc E on E.BusinessId=A.SuppliersId and E.Is_Supp = 'Y' and E.EntId = A.EntId " +
  86. " left join ContactDoc F on F.ContactId=A.K_ContactId and F.EntId = A.EntId " +
  87. //" left join ContactDoc F1 on F.ContactId=A.OppContId " +
  88. " where 1=1 " +
  89. filterstring +
  90. ")AAA";
  91. string commandText2 =
  92. " where AAA.rownum>" + start + " and AAA.rownum<" + end
  93. ;
  94. string commandText = commandText0 + commandText1 + commandText2;
  95. bool result1 = DataAccess.GetValues(commandText, ref dt, parameters1.ToArray(), out result);
  96. IList<PurOrderMTEx> users = new List<PurOrderMTEx>();
  97. if (dt != null && dt.Rows.Count > 0)
  98. {
  99. // 把DataTable转换为IList<UserInfo>
  100. users = ModelConvertHelper<PurOrderMTEx>.ConvertToModel(dt);
  101. }
  102. #endregion
  103. string resultrow;
  104. string commandTextCount = "select count(*) from (" + commandText1;
  105. long totalcount = DataAccess.GetRowCountDefine(commandTextCount, parameters1.ToArray(), out resultrow);
  106. IsoDateTimeConverter timejson = new IsoDateTimeConverter
  107. {
  108. DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss"
  109. };
  110. var jsonData = JsonConvert.SerializeObject(users, timejson);
  111. return Json(new
  112. {
  113. items = JsonConvert.DeserializeObject(jsonData),
  114. sum = new { },
  115. totalCount = totalcount
  116. });
  117. }
  118. ////查看采购单的发货状态,查看物流进度 已发货
  119. [AuthPermission]
  120. [HttpPost, Route("ordershipment/{staffId}")]
  121. public JsonResult ordershipment(QueryFilter[] filters, Int32 pageIndex, Int32 pageSize,
  122. string sortField, Int32 sortDirection, string[] sumFields,
  123. string staffId,
  124. [FromBody]dynamic data)
  125. {
  126. string userids;
  127. userids = getStaffUserid(staffId);
  128. //判断参数是否合法
  129. if (string.IsNullOrEmpty(userids))
  130. {
  131. return Json(new
  132. {
  133. success = 0,
  134. msg = "没有登陆"
  135. });
  136. }
  137. int PushAccountId = Convert.ToInt32(userids);
  138. if (data != null)
  139. {
  140. //Newtonsoft.Json.Linq.JArray
  141. filters = data.filters.ToObject<QueryFilter[]>();
  142. pageIndex = data.pageIndex;
  143. pageSize = data.pageSize;
  144. sortField = data.sortField;
  145. sortDirection = data.sortDirection;
  146. sumFields = data.sumFields.ToObject<string[]>();
  147. }
  148. List<SqlParameter> parameters1 = new List<SqlParameter>();
  149. string filterstring = QueryFilter.getFilterSqlParam(filters, out parameters1, new PurOrderMTEx(),"A.");
  150. filterstring += " and exists (select PurOrderBillNo from " + Config.TablePrefix + "PurOrderShipment where PurOrderBillNo = A.BillNo) " +
  151. " and A.K_ContactId in (select ContactId from ContactDoc where UserId = '" + PushAccountId + "')";
  152. filterstring = filterstring.Replace("and A.StaffName", "and C.StaffName");
  153. filterstring = filterstring.Replace("and A.Contact", "and F.Contact");
  154. filterstring = filterstring.Replace("and A.BusinessName", "and E.BusinessName");
  155. #region 获取订单
  156. DataTable dt = new DataTable();
  157. string result = string.Empty;
  158. string direct = " desc ";
  159. if (sortDirection != 1)
  160. direct = " asc";
  161. int start = (pageIndex - 1) * pageSize;
  162. int end = (start + 1 + pageSize);
  163. string commandText0 = "select * from (";
  164. string commandText1 =
  165. "select A.*,B.AccountRealName,C.StaffName,E.BusinessName,F.Contact,row_number() over" +
  166. "( order by A." + sortField + " " + direct + " ) as rownum" +
  167. " from PurOrderMT A " +
  168. " left join " + Config.TablePrefix + "Account B on A.SaleManId=B.PurStaffId" +
  169. " left join StaffDoc C on A.SaleManId=C.StaffId and C.EntId = A.EntId " +
  170. " left join supplyDoc D on A.SuppliersId=D.SuppliersId and D.EntId = A.EntId " +
  171. " left join BusinessDoc E on E.BusinessId=D.SuppliersId and E.Is_Supp = 'Y' and E.EntId = D.EntId " +
  172. " left join ContactDoc F on F.ContactId=A.K_ContactId and F.EntId = A.EntId " +
  173. //" left join ContactDoc F1 on F.ContactId=A.OppContId " +
  174. " where 1=1 " +
  175. filterstring +
  176. ")AAA";
  177. string commandText2 =
  178. " where AAA.rownum>" + start + " and AAA.rownum<" + end
  179. ;
  180. string commandText = commandText0 + commandText1 + commandText2;
  181. bool result1 = DataAccess.GetValues(commandText, ref dt, parameters1.ToArray(), out result);
  182. IList<PurOrderMTEx> users = new List<PurOrderMTEx>();
  183. if (dt != null && dt.Rows.Count > 0)
  184. {
  185. // 把DataTable转换为IList<UserInfo>
  186. users = ModelConvertHelper<PurOrderMTEx>.ConvertToModel(dt);
  187. }
  188. #endregion
  189. string resultrow;
  190. string commandTextCount = "select count(*) from (" + commandText1;
  191. long totalcount = DataAccess.GetRowCountDefine(commandTextCount, parameters1.ToArray(), out resultrow);
  192. IsoDateTimeConverter timejson = new IsoDateTimeConverter
  193. {
  194. DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss"
  195. };
  196. var jsonData = JsonConvert.SerializeObject(users, timejson);
  197. return Json(new
  198. {
  199. items = JsonConvert.DeserializeObject(jsonData),
  200. sum = new { },
  201. totalCount = totalcount
  202. });
  203. }
  204. ////订单发货后在订单发货管理中 录入物流单号
  205. [AuthPermission]
  206. [HttpPost, Route("addshipment")]
  207. public JsonResult AddShipment(char k_isbh, string k_kdcode, string k_qrdates, char k_xspay,
  208. [FromBody] dynamic data)
  209. {
  210. //string BillSn=string.Empty;
  211. var temp = (data.BillNo as JArray)?.ToArray();
  212. if (data != null)
  213. {
  214. k_isbh = data.k_isbh == null ? 'N' : data.k_isbh;
  215. k_kdcode = data.k_kdcode;
  216. k_qrdates = data.k_qrdates == null ? DateTime.Now.ToString("yyyy-MM-dd") : DateTime.ParseExact(data.k_qrdates.ToString(), "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture).ToString("yyyy-MM-dd");
  217. k_xspay = data.k_xspay == null ? 'N' : data.k_xspay;
  218. //BillNo = (data.BillNo as JArray).ToArray();
  219. //BillSn = data.BillSn;
  220. }
  221. //#region 添加是否备货 物流单号 发货时间
  222. //string commandTextRelate = "UPDATE PurOrderMT " +
  223. // " SET " +
  224. // " k_isbh = @k_isbh," +
  225. // " k_kdcode = @k_kdcode" +
  226. // " k_qrdates = @k_qrdates" +
  227. // " k_xspay = @k_xspay" +
  228. // " WHERE " +
  229. // "BillNo = @BillNo";
  230. //string result;
  231. ////准备参数
  232. //List<List<Object>> parametersRelate = new List<List<Object>>();
  233. //parametersRelate.Add(new List<Object>() { "BillNo", BillNo });
  234. //parametersRelate.Add(new List<Object>() { "k_isbh", k_isbh });
  235. //parametersRelate.Add(new List<Object>() { "k_kdcode", k_kdcode });
  236. //parametersRelate.Add(new List<Object>() { "k_qrdates", k_qrdates });
  237. //parametersRelate.Add(new List<Object>() { "k_xspay", k_xspay });
  238. //List<SqlParameter> parametersRelate1 = DataAccess.ToParameters(parametersRelate);
  239. //int success = DataAccess.ExecuteCommand(commandTextRelate, parametersRelate1, out result);
  240. //#endregion
  241. if (temp.Length > 0)
  242. {
  243. foreach (var item in temp)
  244. {
  245. string BillNo = item["BillNo"]?.ToString();
  246. string BillSn = item["BillSn"]?.ToString();
  247. #region 添加发货记录
  248. string commandText = "INSERT INTO " + Config.TablePrefix + "PurOrderShipment " +
  249. "(PurOrderBillNo,k_isbh,k_kdcode,k_qrdates,k_xspay)"
  250. + " VALUES (@PurOrderBillNo,@k_isbh,@k_kdcode,@k_qrdates,@k_xspay)";
  251. string resultInsert;
  252. //准备参数
  253. List<List<Object>> parameters = new List<List<Object>>();
  254. parameters.Add(new List<Object>() { "PurOrderBillNo", BillNo });
  255. parameters.Add(new List<Object>() { "k_isbh", k_isbh });
  256. parameters.Add(new List<Object>() { "k_kdcode", k_kdcode });
  257. parameters.Add(new List<Object>() { "k_qrdates", k_qrdates });
  258. parameters.Add(new List<Object>() { "k_xspay", k_xspay });
  259. List<SqlParameter> parameters1 = DataAccess.ToParameters(parameters);
  260. int successInsert = DataAccess.ExecuteCommand(commandText, parameters1, out resultInsert);
  261. #endregion
  262. int ShipmentId = BaseDAL.GetId(Config.TablePrefix + "PurOrderShipment");
  263. #region 添加发货明细
  264. string commandTextOrderDT = "INSERT INTO " + Config.TablePrefix + "PurShipmentOrderDT " +
  265. "(BillNo,ShipmentId,BillSn)"
  266. + " VALUES (@BillNo,@ShipmentId,@BillSn)";
  267. string resultInsertOrderDT;
  268. //准备参数
  269. List<List<Object>> parametersOrderDT = new List<List<Object>>();
  270. parametersOrderDT.Add(new List<Object>() { "BillNo", BillNo });
  271. parametersOrderDT.Add(new List<Object>() { "ShipmentId", ShipmentId });
  272. parametersOrderDT.Add(new List<Object>() { "BillSn", BillSn });
  273. List<SqlParameter> parametersOrderDT1 = DataAccess.ToParameters(parametersOrderDT);
  274. int successInsertOrderDT = DataAccess.ExecuteCommand(commandTextOrderDT, parametersOrderDT1, out resultInsertOrderDT);
  275. #endregion
  276. }
  277. return Json(new
  278. {
  279. success = true,
  280. //success1 = success,
  281. //result = result,
  282. //successInsert = successInsert,
  283. //resultInsert = resultInsert,
  284. //successInsertOrderDT = successInsertOrderDT,
  285. //resultInsertOrderDT = resultInsertOrderDT,
  286. });
  287. }
  288. return Json(new
  289. {
  290. success = false
  291. });
  292. }
  293. ////查询采购订单明细
  294. [AuthPermission]
  295. [HttpPost, Route("purchaseorderdt/{staffId}")]
  296. public JsonResult purchaseorderdt(QueryFilter[] filters, Int32 pageIndex, Int32 pageSize,
  297. string sortField, Int32 sortDirection, string[] sumFields,
  298. string staffId,
  299. [FromBody]dynamic data)
  300. {
  301. string userids;
  302. userids = getStaffUserid(staffId);
  303. //判断参数是否合法
  304. if (string.IsNullOrEmpty(userids))
  305. {
  306. return Json(new
  307. {
  308. items = new string[] { },
  309. sum = new { },
  310. totalCount = 0
  311. });
  312. }
  313. if (data != null)
  314. {
  315. //Newtonsoft.Json.Linq.JArray
  316. filters = data.filters.ToObject<QueryFilter[]>();
  317. pageIndex = data.pageIndex;
  318. pageSize = data.pageSize;
  319. sortField = data.sortField;
  320. sortDirection = data.sortDirection;
  321. sumFields = data.sumFields.ToObject<string[]>();
  322. }
  323. int PushAccountId = Convert.ToInt32(userids);
  324. if (filters.Length == 0)
  325. {
  326. return Json(new
  327. {
  328. items = new string[] { },
  329. sum = new { },
  330. totalCount = 0
  331. });
  332. }
  333. List<SqlParameter> parameters1 = new List<SqlParameter>();
  334. string filterstring = QueryFilter.getFilterSqlParam(filters, out parameters1, new PurOrderDTEx(),"G.");
  335. filterstring += " " +
  336. " and A.K_ContactId in (select ContactId from ContactDoc where UserId = '" + PushAccountId + "')";
  337. filterstring = filterstring.Replace("and G.GoodsName", "and H.GoodsName");
  338. filterstring = filterstring.Replace("and G.GoodsCode", "and H.GoodsCode");
  339. filterstring = filterstring.Replace("and G.StaffName", "and C.StaffName");
  340. filterstring = filterstring.Replace("and G.Contact", "and F.Contact");
  341. filterstring = filterstring.Replace("and G.BusinessName", "and E.BusinessName");
  342. #region 获取订单
  343. DataTable dt = new DataTable();
  344. string result = string.Empty;
  345. string direct = " desc ";
  346. if (sortDirection != 1)
  347. direct = " asc";
  348. int start = (pageIndex - 1) * pageSize;
  349. int end = (start + 1 + pageSize);
  350. string commandText0 = "select * from (";
  351. string commandText1 =
  352. "select G.*,A.OppContId,A.SuppliersId,B.AccountRealName,C.StaffName," +
  353. "E.BusinessName,F.Contact," +
  354. "H.GoodsName,H.GoodsCode,H.GoodsSpec,H.Manufacturer," +
  355. "row_number() over" +
  356. "( order by G." + sortField + " " + direct + " ) as rownum" +
  357. " from PurOrderDT G left join PurOrderMT A on G.BillNo = A.BillNo and A.EntId = G.EntId " +
  358. " left join GoodsDoc H on H.GoodsId=G.GoodsId and H.EntId = G.EntId " +
  359. " left join " + Config.TablePrefix + "Account B on A.SaleManId=B.PurStaffId" +
  360. " left join StaffDoc C on A.SaleManId=C.StaffId and C.EntId = A.EntId " +
  361. " left join supplydoc D on A.SuppliersId=D.SuppliersId and D.EntId = A.EntId " +
  362. " left join BusinessDoc E on E.BusinessId=D.SuppliersId and E.Is_Supp = 'Y' and E.EntId = D.EntId " +
  363. " left join ContactDoc F on F.ContactId=A.K_ContactId and F.EntId = A.EntId " +
  364. //" left join ContactDoc F1 on F.ContactId=A.OppContId " +
  365. " where 1=1 " +
  366. filterstring +
  367. ")AAA";
  368. string commandText2 =
  369. " where AAA.rownum>" + start + " and AAA.rownum<" + end
  370. ;
  371. string commandText = commandText0 + commandText1 + commandText2;
  372. bool result1 = DataAccess.GetValues(commandText, ref dt, parameters1.ToArray(), out result);
  373. IList<PurOrderDTEx> users = new List<PurOrderDTEx>();
  374. if (dt != null && dt.Rows.Count > 0)
  375. {
  376. // 把DataTable转换为IList<UserInfo>
  377. users = ModelConvertHelper<PurOrderDTEx>.ConvertToModel(dt);
  378. }
  379. #endregion
  380. string resultrow;
  381. string commandTextCount = "select count(*) from (" + commandText1;
  382. long totalcount = DataAccess.GetRowCountDefine(commandTextCount, parameters1.ToArray(), out resultrow);
  383. IsoDateTimeConverter timejson = new IsoDateTimeConverter
  384. {
  385. DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss"
  386. };
  387. var jsonData = JsonConvert.SerializeObject(users, timejson);
  388. return Json(new
  389. {
  390. items = JsonConvert.DeserializeObject(jsonData),
  391. sum = new { },
  392. totalCount = totalcount
  393. });
  394. }
  395. //订单明细
  396. [AuthPermission]
  397. [HttpPost, Route("orderdtshipment/{staffId}")]
  398. public JsonResult orderdtshipment(QueryFilter[] filters, Int32 pageIndex, Int32 pageSize,
  399. string sortField, Int32 sortDirection, string[] sumFields,
  400. string staffId,
  401. [FromBody]dynamic data)
  402. {
  403. string userids;
  404. userids = getStaffUserid(staffId);
  405. //判断参数是否合法
  406. if (string.IsNullOrEmpty(userids))
  407. {
  408. return Json(new
  409. {
  410. items = new string[] { },
  411. sum = new { },
  412. totalCount = 0
  413. });
  414. }
  415. if (data != null)
  416. {
  417. //Newtonsoft.Json.Linq.JArray
  418. filters = data.filters.ToObject<QueryFilter[]>();
  419. pageIndex = data.pageIndex;
  420. pageSize = data.pageSize;
  421. sortField = data.sortField;
  422. sortDirection = data.sortDirection;
  423. sumFields = data.sumFields.ToObject<string[]>();
  424. }
  425. int PushAccountId = Convert.ToInt32(userids);
  426. //if (filters.Length == 0)
  427. //{
  428. // return Json(new
  429. // {
  430. // items = new string[] { },
  431. // sum = new { },
  432. // totalCount = 0
  433. // });
  434. //}
  435. List<SqlParameter> parameters1 = new List<SqlParameter>();
  436. string filterstring = QueryFilter.getFilterSqlParam(filters, out parameters1, new PurOrderDTEx(),"G.");
  437. filterstring += " " +
  438. " and A.K_ContactId in (select ContactId from ContactDoc where UserId = '" + PushAccountId + "')";
  439. filterstring = filterstring.Replace("and G.GoodsName", "and H.GoodsName");
  440. filterstring = filterstring.Replace("and G.GoodsCode", "and H.GoodsCode");
  441. filterstring = filterstring.Replace("and G.StaffName", "and C.StaffName");
  442. filterstring = filterstring.Replace("and G.Contact", "and F.Contact");
  443. filterstring = filterstring.Replace("and G.BusinessName", "and E.BusinessName");
  444. #region 获取订单
  445. DataTable dt = new DataTable();
  446. string result = string.Empty;
  447. string direct = " desc ";
  448. if (sortDirection != 1)
  449. direct = " asc";
  450. int start = (pageIndex - 1) * pageSize;
  451. int end = (start + 1 + pageSize);
  452. string commandText0 = "select * from (";
  453. string commandText1 =
  454. "select G.*,A.OppContId,A.SuppliersId,B.AccountRealName,C.StaffName," +
  455. "E.BusinessName,F.Contact," +
  456. "H.GoodsName,H.GoodsCode,H.GoodsSpec,H.Manufacturer,X.k_kdcode," +
  457. "row_number() over" +
  458. "( order by G." + sortField + " " + direct + " ) as rownum" +
  459. " from PurOrderDT G left join PurOrderMT A on G.BillNo = A.BillNo and A.EntId = G.EntId " +
  460. " left join GoodsDoc H on H.GoodsId=G.GoodsId and H.EntId = G.EntId " +
  461. " left join " + Config.TablePrefix + "Account B on A.SaleManId=B.PurStaffId " +
  462. " left join StaffDoc C on A.SaleManId=C.StaffId and C.EntId = A.EntId " +
  463. " left join supplydoc D on A.SuppliersId=D.SuppliersId and D.EntId = A.EntId " +
  464. " left join BusinessDoc E on E.BusinessId=D.SuppliersId and E.Is_Supp = 'Y' and E.EntId = D.EntId " +
  465. " left join ContactDoc F on F.ContactId=A.K_ContactId and F.EntId = A.EntId " +
  466. //" left join ContactDoc F1 on F.ContactId=A.OppContId " +
  467. "left join sup_PurShipmentOrderDT Z on G.BillNo = Z.BillNo and g.BillSn=z.BillSn " +
  468. "left join sup_PurOrderShipment X on Z.ShipmentId=X.Id " +
  469. " where 1=1 " +
  470. filterstring +
  471. ")AAA";
  472. string commandText2 =
  473. " where AAA.rownum>" + start + " and AAA.rownum<" + end
  474. ;
  475. string commandText = commandText0 + commandText1 + commandText2;
  476. bool result1 = DataAccess.GetValues(commandText, ref dt, parameters1.ToArray(), out result);
  477. IList<PurOrderDTEx> users = new List<PurOrderDTEx>();
  478. if (dt != null && dt.Rows.Count > 0)
  479. {
  480. // 把DataTable转换为IList<UserInfo>
  481. users = ModelConvertHelper<PurOrderDTEx>.ConvertToModel(dt);
  482. }
  483. #endregion
  484. string resultrow;
  485. string commandTextCount = "select count(*) from (" + commandText1;
  486. long totalcount = DataAccess.GetRowCountDefine(commandTextCount, parameters1.ToArray(), out resultrow);
  487. IsoDateTimeConverter timejson = new IsoDateTimeConverter
  488. {
  489. DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss"
  490. };
  491. var jsonData = JsonConvert.SerializeObject(users, timejson);
  492. return Json(new
  493. {
  494. items = JsonConvert.DeserializeObject(jsonData),
  495. sum = new { },
  496. totalCount = totalcount
  497. });
  498. }
  499. }
  500. }