纽威
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.

2587 lines
130 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. using NFine.Data.Extensions;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using NFine.Code;
  9. using NFine.Repository;
  10. using System.Data.Common;
  11. using NFine.Domain._03_Entity.SRM;
  12. using ICS.Application.Entity;
  13. using Newtonsoft.Json;
  14. using System.Configuration;
  15. using System.Data.SqlClient;
  16. using ICS.Data;
  17. namespace NFine.Application.WMS
  18. {
  19. public class PickMaterialApp : RepositoryFactory<ICSVendor>
  20. {
  21. public static DataTable Invmes = new DataTable();
  22. //工单备料(工单子件)
  23. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  24. {
  25. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  26. DataTable dt = new DataTable();
  27. var queryParam = queryJson.ToJObject();
  28. List<DbParameter> parameter = new List<DbParameter>();
  29. StringBuilder sqlstring = new StringBuilder();
  30. #region [SQL]
  31. // sql = @"select a.ID,b.MOCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,c.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  32. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  33. //from ICSMOPick a
  34. //left join ICSMO b on a.MODetailID=b.MODetailID and a.WorkPoint=b.WorkPoint
  35. //left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  36. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  37. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  38. // sql += " WHERE 1=1 and e.ID is null";
  39. sqlstring.Append($@"select a.MOCode as Code,a.CreateDateTime as MTIME,a.createperson as MUSER,
  40. case when max(d.SourceID) is null then '' else '' end as IsNew,
  41. f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,
  42. f.cFree2 ,f.cFree3 ,f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  43. from ICSMO a
  44. inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  45. left join ICSMOPickMerge d on d.SourceID=b.ID and d.WorkPoint=b.WorkPoint
  46. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  47. where a.WorkPoint='{WorkPoint}' ");
  48. if (!string.IsNullOrWhiteSpace(queryJson))
  49. {
  50. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  51. {
  52. sqlstring.Append($" and a.MOCode like '%{queryParam["POCode"]}%' ");
  53. }
  54. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  55. {
  56. sqlstring.Append($" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  57. }
  58. }
  59. sqlstring.Append(@" group by a.MOCode, a.WorkPoint,a.CreateDateTime,a.createperson,f.Colspan,f.ProjectCode,
  60. f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4,
  61. f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10");
  62. #endregion
  63. return Repository().FindTablePageBySql(sqlstring.ToString(), parameter.ToArray(), ref jqgridparam);
  64. }
  65. //工单备料(工单子件)子表查询
  66. public DataTable GetSubGridJson1(string Code)
  67. {
  68. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  69. DataTable dt = new DataTable();
  70. //var queryParam = queryJson.ToJObject();
  71. List<DbParameter> parameter = new List<DbParameter>();
  72. string sql = @" select a.ID,b.MOCode as Code,a.Sequence+'-'+b.Sequence AS Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,c.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  73. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  74. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  75. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  76. from ICSMOPick a
  77. left join ICSMO b on a.MODetailID=b.MODetailID and a.WorkPoint=b.WorkPoint
  78. left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  79. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  80. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  81. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  82. where b.MOCode='{0}' and a.WorkPoint='{1}'";
  83. sql = string.Format(sql, Code, WorkPoint);
  84. return Repository().FindTableBySql(sql.ToString());
  85. }
  86. //工单领料(发料申请)
  87. public DataTable GetGridJson2(string queryJson, ref Pagination jqgridparam)
  88. {
  89. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  90. DataTable dt = new DataTable();
  91. var queryParam = queryJson.ToJObject();
  92. List<DbParameter> parameter = new List<DbParameter>();
  93. StringBuilder sqlString = new StringBuilder();
  94. #region [SQL]
  95. // select a.ID,a.ApplyCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName ,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  96. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  97. // from ICSMOApply a
  98. // left join ICSWarehouse b on a.WHCode = b.WarehouseCode and a.WorkPoint = b.WorkPoint
  99. // left join ICSInventory d on a.InvCode = d.InvCode and a.WorkPoint = d.WorkPoint
  100. // left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  101. sqlString.Append($@"
  102. SELECT * from (select row_number() over(partition by a.ApplyCode ORDER BY a.ApplyCode) as row,
  103. a.ApplyCode as Code,a.CreateDateTime as MTIME,a.createperson as MUSER,a.WHCode,detail.LocationCode AS Area,
  104. a.EATTRIBUTE,a.Sets,a.OrderInvCode,a.OrderInvDescribe,a.BillType,a.Remarks,a.Desks,a.DispatchNumber,a.DispatcherName,
  105. a.ReceiverNumber,a.ReceiverName,a.Urgency,a.NeedDate,a.NeedTime,a.RemarksTerm,a.TextNumber,a.InvDescribe,a.Unit,a.StockIndicator,
  106. case when max(e.SourceID) is null then '' else '' end as IsNew,f.Colspan ,
  107. f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,
  108. f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.ID
  109. from ICSMOApply a
  110. left JOIN ICSInventory b ON b.InvCode=a.InvCode
  111. LEFT JOIN ICSInventoryDetail detail ON b.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  112. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  113. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  114. where a.WorkPoint='{WorkPoint}' ");
  115. if (!string.IsNullOrWhiteSpace(queryJson))
  116. {
  117. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  118. {
  119. sqlString.Append($@" and a.ApplyCode like '%{queryParam["POCode"]}%' ");
  120. }
  121. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  122. {
  123. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  124. }
  125. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  126. {
  127. sqlString.Append($@" and a.WHCode like '%{queryParam["WHCode"]}%' ");
  128. }
  129. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  130. {
  131. sqlString.Append($@" and detail.LocationCode like '%{queryParam["Area"]}%' ");
  132. }
  133. }
  134. sqlString.Append(@" group by a.ApplyCode, a.WorkPoint,a.CreateDateTime,a.createperson,
  135. f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,
  136. f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.WHCode,detail.LocationCode,a.ID,a.EATTRIBUTE,a.Sets,a.OrderInvCode,a.OrderInvDescribe,a.BillType,a.Remarks,a.Desks,a.DispatchNumber,a.DispatcherName,
  137. a.ReceiverNumber,a.ReceiverName,a.Urgency,a.NeedDate,a.NeedTime,a.RemarksTerm,a.TextNumber,a.InvDescribe,a.Unit,a.StockIndicator) as t where t.row=1");
  138. #endregion
  139. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  140. }
  141. //工单领料(发料申请)子表查询
  142. public DataTable GetSubGridJson2(string queryJson, string Code)
  143. {
  144. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  145. DataTable dt = new DataTable();
  146. var queryParam = queryJson.ToJObject();
  147. List<DbParameter> parameter = new List<DbParameter>();
  148. string sql = @"SELECT * FROM (select row_number() over(partition by a.ApplyCode,a.InvCode,a.Sequence ORDER BY a.ApplyCode) as row,
  149. a.ID,a.ApplyCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName ,a.InvCode,
  150. a.EATTRIBUTE,a.Sets,a.OrderInvCode,a.OrderInvDescribe,a.BillType,a.Remarks,a.Desks,a.DispatchNumber,a.DispatcherName,
  151. a.ReceiverNumber,a.ReceiverName,a.Urgency,a.NeedDate,a.NeedTime,a.RemarksTerm,a.TextNumber,a.InvDescribe,a.Unit,a.StockIndicator,
  152. d.InvName,d.InvDesc,d.InvStd,d.InvUnit,d.EATTRIBUTE1 AS Area,
  153. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  154. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  155. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  156. from ICSMOApply a
  157. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  158. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  159. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  160. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  161. where a.ApplyCode='{0}' and a.WorkPoint='{1}'";
  162. if (!string.IsNullOrWhiteSpace(queryJson))
  163. {
  164. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  165. {
  166. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  167. }
  168. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  169. {
  170. sql += " and d.EATTRIBUTE1 like '%" + queryParam["Area"].ToString() + "%' ";
  171. }
  172. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  173. {
  174. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  175. }
  176. }
  177. sql += " ) c WHERE c.row=1 ";
  178. sql = string.Format(sql, Code, WorkPoint);
  179. return Repository().FindTableBySql(sql.ToString());
  180. }
  181. //工单材料出库(材料出库)
  182. public DataTable GetGridJson3(string queryJson, ref Pagination jqgridparam)
  183. {
  184. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  185. DataTable dt = new DataTable();
  186. var queryParam = queryJson.ToJObject();
  187. List<DbParameter> parameter = new List<DbParameter>();
  188. StringBuilder sqlString = new StringBuilder();
  189. #region [SQL]
  190. // sql = @"select a.ID,a.IssueCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode ,b.WarehouseName ,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  191. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  192. // from ICSMOIssue a
  193. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  194. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  195. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint ";
  196. // sql += " WHERE 1=1 and e.ID is null";
  197. sqlString.Append($@"SELECT * FROM(SELECT row_number ( ) OVER ( partition BY a.IssueCode ORDER BY a.IssueCode ) AS row,
  198. a.IssueCode as Code,a.CreateDateTime as MTIME,a.createperson as MUSER,
  199. case when max(e.SourceID) is null then '' else ''
  200. end as IsNew,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,
  201. f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10
  202. from ICSMOIssue a
  203. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  204. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  205. where a.WorkPoint = '{WorkPoint}' ");
  206. if (!string.IsNullOrWhiteSpace(queryJson))
  207. {
  208. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  209. {
  210. sqlString.Append($@" and a.IssueCode like '%{queryParam["POCode"]}%' ");
  211. }
  212. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  213. {
  214. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  215. }
  216. }
  217. sqlString.Append(@"group by a.IssueCode,a.CreateDateTime,a.createperson,f.Colspan,f.ProjectCode,f.BatchCode,
  218. f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,
  219. f.cFree8, f.cFree9, f.cFree10 ) AS t WHERE t.row= 1 ");
  220. #endregion
  221. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  222. }
  223. //工单材料出库(材料出库)子表查询
  224. public DataTable GetSubGridJson3(string Code)
  225. {
  226. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  227. DataTable dt = new DataTable();
  228. //var queryParam = queryJson.ToJObject();
  229. List<DbParameter> parameter = new List<DbParameter>();
  230. string sql = @"select a.ID,a.IssueCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode ,b.WarehouseName ,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  231. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  232. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  233. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  234. from ICSMOIssue a
  235. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  236. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  237. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  238. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  239. where a.IssueCode='{0}' and a.WorkPoint='{1}'";
  240. sql = string.Format(sql, Code, WorkPoint);
  241. return Repository().FindTableBySql(sql.ToString());
  242. }
  243. //委外备料(委外备料)
  244. public DataTable GetGridJson4(string queryJson, ref Pagination jqgridparam)
  245. {
  246. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  247. DataTable dt = new DataTable();
  248. var queryParam = queryJson.ToJObject();
  249. List<DbParameter> parameter = new List<DbParameter>();
  250. StringBuilder sqlString = new StringBuilder();
  251. #region [SQL]
  252. sqlString.Append($@"select * from (select row_number() over(partition by b.OOCode order by b.OOCode) row, b.OOCode as Code,
  253. b.CreateDateTime as MTIME,
  254. b.CreatePerson as MUSER,
  255. case
  256. when max(e.SourceID) is null then ''
  257. else ''
  258. end as IsNew,
  259. f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,
  260. f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10
  261. from ICSOOPick a
  262. inner join ICSOutsourcingOrder b on a.OODetailID = b.OODetailID and a.WorkPoint = b.WorkPoint
  263. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  264. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  265. WHERE b.WorkPoint = '{WorkPoint}' ");
  266. if (!string.IsNullOrWhiteSpace(queryJson))
  267. {
  268. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  269. {
  270. sqlString.Append($@" and a.OOCode like '%{queryParam["POCode"]}%' ");
  271. }
  272. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  273. {
  274. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  275. }
  276. }
  277. sqlString.Append(@" group by b.OOCode,b.CreateDateTime,b.CreatePerson,f.Colspan ,f.ProjectCode ,
  278. f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4,
  279. f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10) t where t.row=1");
  280. #endregion
  281. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  282. }
  283. //委外备料(委外备料)子表查询
  284. public DataTable GetSubGridJson4(string Code)
  285. {
  286. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  287. DataTable dt = new DataTable();
  288. //var queryParam = queryJson.ToJObject();
  289. List<DbParameter> parameter = new List<DbParameter>();
  290. string sql = @"select a.ID,b.OOCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,c.WarehouseName ,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  291. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  292. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  293. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  294. from ICSOOPick a
  295. left join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID and a.WorkPoint=b.WorkPoint
  296. left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  297. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  298. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  299. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  300. where b.OOCode='{0}' and b.WorkPoint='{1}'";
  301. sql = string.Format(sql, Code, WorkPoint);
  302. return Repository().FindTableBySql(sql.ToString());
  303. }
  304. //委外领料(委外发料申请)
  305. public DataTable GetGridJson5(string queryJson, ref Pagination jqgridparam)
  306. {
  307. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  308. DataTable dt = new DataTable();
  309. var queryParam = queryJson.ToJObject();
  310. List<DbParameter> parameter = new List<DbParameter>();
  311. StringBuilder sqlString = new StringBuilder();
  312. #region [SQL]
  313. // sql = @"select a.ID,a.ApplyCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  314. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  315. // from ICSOApply a
  316. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  317. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  318. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  319. // sql += " WHERE 1=1 and e.ID is null";
  320. sqlString.Append($@"select * from (select row_number() over (partition by a.ApplyCode order by a.ApplyCode ) row, a.ApplyCode as Code,a.CreateDateTime as MTIME,a.CreatePerson as MUSER,
  321. case when max(e.SourceID) is null then ''
  322. else ''
  323. end as IsNew,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,
  324. f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.ID
  325. from ICSOApply a
  326. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  327. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  328. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  329. where a.WorkPoint = '{WorkPoint}'");
  330. if (!string.IsNullOrWhiteSpace(queryJson))
  331. {
  332. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  333. {
  334. sqlString.Append($@" and a.ApplyCode like '%{queryParam["POCode"]}%' ");
  335. }
  336. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  337. {
  338. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  339. }
  340. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  341. {
  342. sqlString.Append($@" and a.WHCode like '%{queryParam["WHCode"]}%' ");
  343. }
  344. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  345. {
  346. sqlString.Append($@" and d.EATTRIBUTE1 like '%{queryParam["Area"]}%' ");
  347. }
  348. }
  349. sqlString.Append(@"group by a.ApplyCode,a.CreateDateTime,a.CreatePerson,f.Colspan,f.ProjectCode,
  350. f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,
  351. f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.ID ) t where row=1");
  352. #endregion
  353. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  354. }
  355. //委外领料(委外发料申请)子表查询
  356. public DataTable GetSubGridJson5(string Code, string queryJson)
  357. {
  358. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  359. DataTable dt = new DataTable();
  360. var queryParam = queryJson.ToJObject();
  361. List<DbParameter> parameter = new List<DbParameter>();
  362. string sql = @"SELECT * FROM (select row_number() over(partition by a.ApplyCode,a.InvCode,a.Sequence ORDER BY a.ApplyCode) as row,
  363. a.ID,a.ApplyCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  364. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity,d.EATTRIBUTE1 AS Area,
  365. f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  366. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  367. from ICSOApply a
  368. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  369. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  370. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  371. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  372. where a.ApplyCode='{0}' and a.WorkPoint='{1}'";
  373. if (!string.IsNullOrWhiteSpace(queryJson))
  374. {
  375. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  376. {
  377. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  378. }
  379. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  380. {
  381. sql += " and d.EATTRIBUTE1 like '%" + queryParam["Area"].ToString() + "%' ";
  382. }
  383. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  384. {
  385. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  386. }
  387. }
  388. sql += " ) c WHERE c.row=1 ";
  389. sql = string.Format(sql, Code, WorkPoint);
  390. return Repository().FindTableBySql(sql.ToString());
  391. }
  392. //委外材料出库(委外发料申请)
  393. public DataTable GetGridJson6(string queryJson, ref Pagination jqgridparam)
  394. {
  395. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  396. DataTable dt = new DataTable();
  397. var queryParam = queryJson.ToJObject();
  398. List<DbParameter> parameter = new List<DbParameter>();
  399. StringBuilder sqlString = new StringBuilder();
  400. #region [SQL]
  401. // sql = @"select a.ID,a.IssueCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseCode,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  402. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  403. // from ICSOIssue a
  404. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  405. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  406. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  407. // sql += " WHERE 1=1 and e.ID is null";
  408. sqlString.Append($@"select * from(select row_number() over(partition by a.IssueCode order by a.IssueCode) row, a.IssueCode as Code,
  409. a.CreateDateTime as MTIME,
  410. a.CreatePerson as MUSER,
  411. case
  412. when max(e.SourceID) is null then ''
  413. else ''
  414. end as IsNew,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,
  415. f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,
  416. f.cFree8,f.cFree9,f.cFree10
  417. from ICSOIssue a
  418. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  419. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  420. where a.WorkPoint = '{WorkPoint}'");
  421. if (!string.IsNullOrWhiteSpace(queryJson))
  422. {
  423. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  424. {
  425. sqlString.Append($@" and a.IssueCode like '%{queryParam["POCode"]}%' ");
  426. }
  427. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  428. {
  429. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  430. }
  431. }
  432. sqlString.Append(@"group by a.IssueCode,a.CreateDateTime,a.CreatePerson,f.Colspan,f.ProjectCode,
  433. f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,
  434. f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10) t where t.row=1");
  435. #endregion
  436. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  437. }
  438. //委外材料出库(委外发料申请)子表查询
  439. public DataTable GetSubGridJson6(string Code)
  440. {
  441. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  442. DataTable dt = new DataTable();
  443. //var queryParam = queryJson.ToJObject();
  444. List<DbParameter> parameter = new List<DbParameter>();
  445. string sql = @"select a.ID,a.IssueCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseCode,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  446. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  447. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  448. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  449. from ICSOIssue a
  450. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  451. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  452. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  453. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  454. where a.IssueCode='{0}' and a.WorkPoint='{1}'";
  455. sql = string.Format(sql, Code, WorkPoint);
  456. return Repository().FindTableBySql(sql.ToString());
  457. }
  458. //销售发货(销售发货)
  459. public DataTable GetGridJson7(string queryJson, ref Pagination jqgridparam)
  460. {
  461. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  462. DataTable dt = new DataTable();
  463. var queryParam = queryJson.ToJObject();
  464. List<DbParameter> parameter = new List<DbParameter>();
  465. StringBuilder sqlString = new StringBuilder();
  466. #region [SQL]
  467. // sql = @"select a.ID,a.SDNCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  468. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  469. // from ICSSDN a
  470. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  471. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  472. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  473. // sql += " WHERE 1=1 and a.Type='1' and e.ID is null";
  474. sqlString.Append($@"SELECT * from (SELECT Row_Number() over(partition by a.SDNCode Order by a.SDNCode) as r, a.SDNCode AS Code,
  475. a.CreateDateTime AS MTIME,
  476. a.CreatePerson AS MUSER,
  477. (CASE WHEN max(e.SourceID) IS NULL THEN '' ELSE '' END) AS IsNew,
  478. f.Colspan, f.ProjectCode, f.BatchCode, f.Version, f.Brand,
  479. f.cFree1, f.cFree2, f.cFree3, f.cFree4, f.cFree5, f.cFree6, f.cFree7, f.cFree8, f.cFree9, f.cFree10,a.ID
  480. FROM ICSSDN a
  481. LEFT JOIN ICSMOPickMerge e ON a.ID = e.SourceID AND a.WorkPoint = e.WorkPoint
  482. LEFT JOIN ICSExtension f ON a.ExtensionID = f.ID AND a.WorkPoint = f.WorkPoint
  483. LEFT JOIN ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  484. WHERE a.WorkPoint = '{WorkPoint}' ");
  485. if (!string.IsNullOrWhiteSpace(queryJson))
  486. {
  487. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  488. {
  489. sqlString.Append($" and a.SDNCode like '%{queryParam["POCode"]}%' ");
  490. }
  491. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  492. {
  493. sqlString.Append($" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  494. }
  495. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  496. {
  497. sqlString.Append($@" and a.WHCode like '%{queryParam["WHCode"]}%' ");
  498. }
  499. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  500. {
  501. sqlString.Append($@" and d.EATTRIBUTE1 like '%{queryParam["Area"]}%' ");
  502. }
  503. }
  504. sqlString.Append(@"GROUP BY a.SDNCode, a.CreateDateTime, a.CreatePerson, f.Colspan, f.ProjectCode, f.BatchCode, f.Version, f.Brand,
  505. f.cFree1, f.cFree2, f.cFree3, f.cFree4, f.cFree5, f.cFree6, f.cFree7, f.cFree8, f.cFree9, f.cFree10,a.ID) t WHERE t.r=1");
  506. #endregion
  507. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  508. }
  509. //销售发货(销售发货)子表查询
  510. public DataTable GetSubGridJson7(string Code, string queryJson)
  511. {
  512. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  513. DataTable dt = new DataTable();
  514. var queryParam = queryJson.ToJObject();
  515. List<DbParameter> parameter = new List<DbParameter>();
  516. string sql = @"SELECT * FROM (select row_number() over(partition by a.SDNCode,a.InvCode,a.Sequence ORDER BY a.SDNCode) as row,
  517. a.ID,a.SDNCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode
  518. ,a.WorkPoint,a.Points,a.DeliveryType,a.DeliveryDescribe,a.InvDescribe,a.OtherDescribe,
  519. a.SalesUnit,a.StockIndicator,a.IsSerialNumber,
  520. d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  521. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity,d.EATTRIBUTE1 AS Area
  522. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  523. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.SDNQuantity as IssueQuantity
  524. from ICSSDN a
  525. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  526. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  527. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  528. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  529. where a.SDNCode='{0}' and a.WorkPoint='{1}'";
  530. if (!string.IsNullOrWhiteSpace(queryJson))
  531. {
  532. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  533. {
  534. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  535. }
  536. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  537. {
  538. sql += " and d.EATTRIBUTE1 like '%" + queryParam["Area"].ToString() + "%' ";
  539. }
  540. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  541. {
  542. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  543. }
  544. }
  545. sql += " ) c WHERE c.row=1 ";
  546. sql = string.Format(sql, Code, WorkPoint);
  547. return Repository().FindTableBySql(sql.ToString());
  548. }
  549. //其它出库(其它出库)
  550. public DataTable GetGridJson8(string queryJson, ref Pagination jqgridparam)
  551. {
  552. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  553. DataTable dt = new DataTable();
  554. var queryParam = queryJson.ToJObject();
  555. List<DbParameter> parameter = new List<DbParameter>();
  556. StringBuilder sqlString = new StringBuilder();
  557. #region [SQL]
  558. // sql = @"select a.ID,a.OutCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  559. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  560. //from ICSOtherOut a
  561. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  562. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  563. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  564. // sql += " WHERE 1=1 and e.ID is null ";
  565. sqlString.Append($@"select * from(select row_number() over(partition by a.OutCode order by a.OutCode) row, a.OutCode as Code,
  566. a.CreateDateTime as MTIME,
  567. a.CreatePerson as MUSER,
  568. case
  569. when max(e.SourceID) is null then ''
  570. else ''
  571. end as IsNew,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,
  572. f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.ID
  573. from ICSOtherOut a
  574. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  575. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  576. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  577. where a.WorkPoint = '{WorkPoint}'");
  578. #endregion
  579. if (!string.IsNullOrWhiteSpace(queryJson))
  580. {
  581. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  582. {
  583. sqlString.Append($@" and a.OutCode like '%{queryParam["POCode"]}%' ");
  584. }
  585. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  586. {
  587. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  588. }
  589. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  590. {
  591. sqlString.Append($@" and a.WHCode like '%{queryParam["WHCode"]}%' ");
  592. }
  593. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  594. {
  595. sqlString.Append($@" and d.EATTRIBUTE1 like '%{queryParam["Area"]}%' ");
  596. }
  597. }
  598. sqlString.Append(@" group by a.OutCode,a.CreateDateTime,a.CreatePerson,f.Colspan,f.ProjectCode,f.BatchCode,
  599. f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,
  600. f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.ID) t where t.row=1");
  601. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  602. }
  603. //其它出库(其它出库)子表查询
  604. public DataTable GetSubGridJson8(string Code, string queryJson)
  605. {
  606. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  607. DataTable dt = new DataTable();
  608. var queryParam = queryJson.ToJObject();
  609. List<DbParameter> parameter = new List<DbParameter>();
  610. string sql = @"SELECT * FROM (select row_number() over(partition by a.OutCode,a.InvCode,a.Sequence ORDER BY a.OutCode) as row,
  611. a.ID,a.OutCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.Quantity,
  612. a.InvCode,a.WorkPoint,a.OrderType, a.TypeDescribe,a.CostCenter,a.Remarks,a.PersonNumber,a.InvDescribe,
  613. a.Unit,a.StockIndicator,
  614. d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  615. case when e.SourceID is null then '' else '' end as IsNew,d.EATTRIBUTE1 AS Area
  616. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  617. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.OutQuantity as IssueQuantity
  618. from ICSOtherOut a
  619. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  620. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  621. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  622. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  623. where a.OutCode='{0}' and a.WorkPoint='{1}'";
  624. if (!string.IsNullOrWhiteSpace(queryJson))
  625. {
  626. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  627. {
  628. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  629. }
  630. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  631. {
  632. sql += " and d.EATTRIBUTE1 like '%" + queryParam["Area"].ToString() + "%' ";
  633. }
  634. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  635. {
  636. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  637. }
  638. }
  639. sql += " ) c WHERE c.row=1 ";
  640. sql = string.Format(sql, Code, WorkPoint);
  641. return Repository().FindTableBySql(sql.ToString());
  642. }
  643. //借用(借用)
  644. public DataTable GetGridJson9(string queryJson, ref Pagination jqgridparam)
  645. {
  646. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  647. DataTable dt = new DataTable();
  648. var queryParam = queryJson.ToJObject();
  649. List<DbParameter> parameter = new List<DbParameter>();
  650. StringBuilder sqlString = new StringBuilder();
  651. #region [SQL]
  652. // sql = @"
  653. //select a.ID,a.BrrowCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  654. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  655. // from ICSBrrow a
  656. // left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  657. // left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  658. // left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  659. // sql += " WHERE 1=1 and e.ID is null ";
  660. sqlString.Append($@"select * from(select row_number() over(partition by a.BrrowCode order by a.BrrowCode) row, a.BrrowCode as Code,
  661. a.CreateDateTime as MTIME,
  662. a.CreatePerson as MUSER,
  663. case
  664. when max(e.SourceID) is null then ''
  665. else ''
  666. end as IsNew,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,
  667. f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,
  668. f.cFree8,f.cFree9,f.cFree10
  669. from ICSBrrow a
  670. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  671. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  672. where a.WorkPoint = '{WorkPoint}'");
  673. if (!string.IsNullOrWhiteSpace(queryJson))
  674. {
  675. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  676. {
  677. sqlString.Append($@" and a.BrrowCode like '%{queryParam["POCode"]}%' ");
  678. }
  679. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  680. {
  681. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  682. }
  683. }
  684. sqlString.Append(@"group by a.BrrowCode,a.CreateDateTime,a.CreatePerson,f.Colspan,f.ProjectCode,
  685. f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,
  686. f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,
  687. f.cFree10) t where t.row=1");
  688. #endregion
  689. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  690. }
  691. //借用(借用)子表查询
  692. public DataTable GetSubGridJson9(string Code)
  693. {
  694. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  695. DataTable dt = new DataTable();
  696. //var queryParam = queryJson.ToJObject();
  697. List<DbParameter> parameter = new List<DbParameter>();
  698. string sql = @"select a.ID,a.BrrowCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  699. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  700. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  701. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.BrrowQuantity as IssueQuantity
  702. from ICSBrrow a
  703. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  704. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  705. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  706. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  707. where a.BrrowCode='{0}' and a.WorkPoint='{1}'";
  708. sql = string.Format(sql, Code, WorkPoint);
  709. return Repository().FindTableBySql(sql.ToString());
  710. }
  711. //物料调拨
  712. public DataTable GetGridJson10(string queryJson, ref Pagination jqgridparam)
  713. {
  714. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  715. DataTable dt = new DataTable();
  716. var queryParam = queryJson.ToJObject();
  717. List<DbParameter> parameter = new List<DbParameter>();
  718. StringBuilder sqlString = new StringBuilder();
  719. #region [SQL]
  720. // sql = @"
  721. //select a.ID,a.BrrowCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  722. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  723. // from ICSBrrow a
  724. // left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  725. // left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  726. // left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  727. // sql += " WHERE 1=1 and e.ID is null ";
  728. sqlString.Append($@"select * from (select row_number() over(partition by a.TransferNO order by a.TransferNO) row,
  729. a.TransferNO as Code,a.ID,a.CreateDateTime as MTIME,a.CreatePerson as MUSER,
  730. case
  731. when max(e.SourceID) is null then ''
  732. else ''
  733. end as IsNew,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,
  734. f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10
  735. from ICSTransfer a
  736. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  737. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  738. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  739. where a.WorkPoint = '{WorkPoint}' and a.Status = '2'");
  740. if (!string.IsNullOrWhiteSpace(queryJson))
  741. {
  742. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  743. {
  744. sqlString.Append($@" and a.TransferNO like '%{queryParam["POCode"]}%' ");
  745. }
  746. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  747. {
  748. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  749. }
  750. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  751. {
  752. sqlString.Append($@" and a.ToWarehouseCode like '%{queryParam["WHCode"]}%' ");
  753. }
  754. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  755. {
  756. sqlString.Append($@" and d.EATTRIBUTE1 like '%{queryParam["Area"]}%' ");
  757. }
  758. }
  759. sqlString.Append(@"group by a.TransferNO,a.CreateDateTime,a.CreatePerson,f.Colspan,f.ProjectCode,
  760. f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,
  761. f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.ID) t where t.row=1");
  762. #endregion
  763. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  764. }
  765. //物料调拨子表查询
  766. public DataTable GetSubGridJson10(string Code, string queryJson)
  767. {
  768. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  769. DataTable dt = new DataTable();
  770. var queryParam = queryJson.ToJObject();
  771. List<DbParameter> parameter = new List<DbParameter>();
  772. string sql = @"SELECT * from (select row_number() over(partition by a.TransferNO,a.InvCode,
  773. a.Sequence ORDER BY a.TransferNO) as row, a.ID,a.TransferNO as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.FromWarehouseCode as WHCode,b.WarehouseName,d.EATTRIBUTE1 AS Area,
  774. a.InvCode,a.ToWarehouseCode,a.EATTRIBUTE1 AS ReceiveWork,a.WorkPoint,a.OrderType,
  775. a.TypeDescribe,a.Remarks,a.PersonNumber,a.InvDescribe,
  776. a.Unit,a.StockIndicator,a.ReceiveInvCode,a.ReceiveInvDescribe,
  777. a.ReceiveStock,a.ReceiveSales,a.ReceiveSequence,a.Remark2,
  778. d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  779. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  780. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  781. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.TransferQuantity as IssueQuantity
  782. from ICSTransfer a
  783. left join ICSWarehouse b on a.FromWarehouseCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  784. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  785. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  786. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  787. where a.TransferNO='{0}' and b.WorkPoint='{1}'";
  788. if (!string.IsNullOrWhiteSpace(queryJson))
  789. {
  790. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  791. {
  792. sql += " and a.ToWarehouseCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  793. }
  794. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  795. {
  796. sql += " and d.EATTRIBUTE1 like '%" + queryParam["Area"].ToString() + "%' ";
  797. }
  798. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  799. {
  800. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  801. }
  802. }
  803. sql += " ) as t where t.row=1";
  804. sql = string.Format(sql, Code, WorkPoint);
  805. return Repository().FindTableBySql(sql.ToString());
  806. }
  807. //两步调拨
  808. public DataTable GetGridJson11(string queryJson, ref Pagination jqgridparam)
  809. {
  810. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  811. DataTable dt = new DataTable();
  812. var queryParam = queryJson.ToJObject();
  813. List<DbParameter> parameter = new List<DbParameter>();
  814. StringBuilder sqlString = new StringBuilder();
  815. #region [SQL]
  816. // sql = @"
  817. //select a.ID,a.BrrowCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  818. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  819. // from ICSBrrow a
  820. // left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  821. // left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  822. // left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  823. // sql += " WHERE 1=1 and e.ID is null ";
  824. sqlString.Append($@"select * from (select row_number() over(partition by a.OutCode order by a.OutCode)row, a.OutCode as Code, a.CreateDateTime as MTIME, a.CreatePerson as MUSER,
  825. case when max(e.SourceID) is null then '' else '' end as IsNew,a.EATTRIBUTE1 AS ReceiveWork,tra.ToWarehouseCode,
  826. f.Colspan, f.ProjectCode, f.BatchCode, f.Version, f.Brand,
  827. f.cFree1, f.cFree2, f.cFree3, f.cFree4, f.cFree5, f.cFree6, f.cFree7, f.cFree8, f.cFree9, f.cFree10
  828. FROM ICSOtherOut a
  829. INNER JOIN ICSTransfer tra ON a.TransferDetailID = tra.TransferDetailID AND a.WorkPoint = tra.WorkPoint
  830. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  831. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  832. where a.WorkPoint = '{WorkPoint}'
  833. and a.Status = '2' ");
  834. if (!string.IsNullOrWhiteSpace(queryJson))
  835. {
  836. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  837. {
  838. sqlString.Append($@" and a.OutCode like '%{queryParam["POCode"]}%' ");
  839. }
  840. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  841. {
  842. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  843. }
  844. }
  845. sqlString.Append(@" group by a.OutCode, a.CreateDateTime, a.CreatePerson,a.EATTRIBUTE1 ,tra.ToWarehouseCode, f.Colspan ,f.ProjectCode ,
  846. f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4 ,
  847. f.cFree5, f.cFree6, f.cFree7, f.cFree8, f.cFree9, f.cFree10) t where t.row=1");
  848. #endregion
  849. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  850. }
  851. //两步调拨子表查询
  852. public DataTable GetSubGridJson11(string Code)
  853. {
  854. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  855. DataTable dt = new DataTable();
  856. //var queryParam = queryJson.ToJObject();
  857. List<DbParameter> parameter = new List<DbParameter>();
  858. string sql = @" select a.ID,a.OutCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode ,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  859. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  860. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  861. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.OutQuantity as IssueQuantity
  862. FROM ICSOtherOut a
  863. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  864. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  865. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  866. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  867. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  868. where a.OutCode='{0}' and a.WorkPoint='{1}'";
  869. sql = string.Format(sql, Code, WorkPoint);
  870. return Repository().FindTableBySql(sql.ToString());
  871. }
  872. // public DataTable GetICSMOPickMergeTemp(string ID,string Type)
  873. // {
  874. // string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  875. // ID = string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(',');
  876. // #region sql
  877. // string sql = @"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  878. // c.Code,
  879. // c.InvCode,
  880. // c.InvName,
  881. // c.InvStd,
  882. // c.InvUnit,
  883. // FLOOR(c.iQuantity) AS iQuantity,
  884. // d.WarehouseCode,
  885. // m.LotNO,
  886. // (case when m.LotNo is null then 0 else FLOOR(ISNULL(d.Quantity, 0)) end) AS QTY,
  887. // (case when m.LotNo is null then null else d.LocationCode end) AS LocationCode,
  888. // CONVERT(varchar(100),d.MTIME, 23) MTIME,
  889. // FLOOR(f.QTYTotal) QTYTotal INTO #temp
  890. // FROM
  891. // ({0}) c
  892. // LEFT JOIN ICSWareHouseLotInfo d ON c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode AND d.WorkPoint='{1}' AND d.Quantity>0
  893. // left join ICSInventoryLot m on d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint and c.ExtensionID=m.ExtensionID
  894. // LEFT JOIN (SELECT INVCode,WarehouseCode,SUM(Quantity) AS QTYTotal FROM ICSWareHouseLotInfo WHERE WorkPoint='{1}' GROUP BY INVCode,WarehouseCode) f ON c.InvCode=f.INVCode AND c.WhCode=f.WarehouseCode
  895. //DECLARE @ItemCode VARCHAR(50),
  896. // @QTY DECIMAL(18,3),
  897. // @ItemCodeCurrent VARCHAR(50),
  898. // @Lotno VARCHAR(50),
  899. // @QTYCurrent DECIMAL(18,3),
  900. // @iQuantityCurrent DECIMAL(18,3),
  901. // @CanDelete BIT,
  902. // @Row INT,
  903. // @rowCurrent INT
  904. //SET @Row = @@rowcount
  905. //SET @rowCurrent=1
  906. //SET @CanDelete=0
  907. //SET @ItemCode=''
  908. //SET @Lotno = ''
  909. //WHILE @rowCurrent<=@Row
  910. // BEGIN
  911. // SELECT @ItemCodeCurrent=InvCode,@QTYCurrent=QTY,@iQuantityCurrent=iQuantity,@Lotno = Lotno FROM #temp WHERE rowNo=@rowCurrent
  912. //PRINT(@rowCurrent)
  913. // IF @ItemCode<>@ItemCodeCurrent
  914. // BEGIN
  915. // SET @ItemCode=@ItemCodeCurrent
  916. // SET @QTY=0
  917. // SET @CanDelete=0
  918. // END
  919. // IF @CanDelete=1
  920. // BEGIN
  921. // DELETE FROM #temp WHERE rowNo=@rowCurrent
  922. // SET @rowCurrent += 1
  923. // CONTINUE
  924. // END
  925. // SET @QTY += @QTYCurrent
  926. // IF @LotNo is null or @QTY>=@iQuantityCurrent
  927. // BEGIN
  928. // SET @CanDelete=1
  929. // END
  930. // SET @rowCurrent += 1
  931. // END
  932. //SELECT * FROM #temp
  933. //DROP TABLE #temp
  934. //";
  935. // #endregion
  936. // string sqls = "";
  937. // if (Type=="1")
  938. // {
  939. // #region 工单备料sql
  940. // sqls = @" SELECT
  941. // c.MOCode as Code,
  942. // a.InvCode,
  943. // b.InvName,
  944. // b.InvStd,
  945. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  946. // a.WhCode,
  947. // b.InvUnit,
  948. // a.ExtensionID
  949. // FROM
  950. // ICSMOPick a
  951. // inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  952. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  953. // WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  954. // GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  955. // #endregion
  956. // }
  957. // if (Type == "2")
  958. // {
  959. // return GetICSMOPickMergeByWorkorder(ID, WorkPoint);
  960. // }
  961. // if (Type=="3")
  962. // {
  963. // #region 工单材料出库SQL
  964. // sqls = @" select
  965. // a.IssueCode as Code,
  966. // a.InvCode,
  967. // b.InvName,
  968. // b.InvStd,
  969. // b.InvUnit,
  970. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  971. // a.WhCode,
  972. // a.ExtensionID
  973. // FROM
  974. // ICSMOIssue a
  975. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  976. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  977. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  978. // #endregion
  979. // }
  980. // if (Type=="4")
  981. // {
  982. // #region 委外备料SQL
  983. // sqls = @" select
  984. // c.OOCode as Code,
  985. // a.InvCode,
  986. // b.InvName,
  987. // b.InvStd,
  988. // b.InvUnit,
  989. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  990. // a.WhCode,
  991. // a.ExtensionID
  992. // FROM
  993. // ICSOOPick a
  994. // left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  995. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  996. // WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  997. // GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode, a.ExtensionID";
  998. // #endregion
  999. // }
  1000. // if (Type=="5")
  1001. // {
  1002. // #region 委外领料SQL
  1003. // sqls = @" select
  1004. // a.ApplyCode as Code,
  1005. // a.InvCode,
  1006. // b.InvName,
  1007. // b.InvStd,
  1008. //b.InvUnit,
  1009. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1010. // a.WhCode,
  1011. // a.ExtensionID
  1012. // FROM
  1013. // ICSOApply a
  1014. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1015. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  1016. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1017. // #endregion
  1018. // }
  1019. // if (Type=="6")
  1020. // {
  1021. // #region 委外材料出库SQL
  1022. // sqls = @" select
  1023. // a.IssueCode as Code,
  1024. // a.InvCode,
  1025. // b.InvName,
  1026. // b.InvStd,
  1027. //b.InvUnit,
  1028. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1029. // a.WhCode,
  1030. //a.ExtensionID
  1031. // FROM
  1032. // ICSOIssue a
  1033. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1034. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1035. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1036. // #endregion
  1037. // }
  1038. // if (Type=="7")
  1039. // {
  1040. // #region 销售发货SQL
  1041. // sqls = @" select
  1042. // a.SDNCode as Code,
  1043. // a.InvCode,
  1044. // b.InvName,
  1045. // b.InvStd,
  1046. //b.InvUnit,
  1047. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1048. // a.WhCode,
  1049. //a.ExtensionID
  1050. // FROM
  1051. // ICSSDN a
  1052. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1053. // WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  1054. // GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1055. // #endregion
  1056. // }
  1057. // if (Type=="8")
  1058. // {
  1059. // #region 其它出库SQL
  1060. // sqls = @" select
  1061. // a.OutCode as Code,
  1062. // a.InvCode,
  1063. // b.InvName,
  1064. // b.InvStd,
  1065. // b.InvUnit,
  1066. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1067. // a.WhCode,
  1068. // a.ExtensionID
  1069. // FROM
  1070. // ICSOtherOut a
  1071. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1072. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1073. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1074. // #endregion
  1075. // }
  1076. // if (Type == "9")
  1077. // {
  1078. // #region 借用SQL
  1079. // sqls = @"select
  1080. // a.BrrowCode as Code,
  1081. // a.InvCode,
  1082. // b.InvName,
  1083. // b.InvStd,
  1084. //b.InvUnit,
  1085. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1086. // a.WhCode,
  1087. //a.ExtensionID
  1088. // FROM
  1089. // ICSBrrow a
  1090. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1091. // WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  1092. // GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1093. // #endregion
  1094. // }
  1095. // if (Type == "10")
  1096. // {
  1097. // #region 物料调拨
  1098. // sqls = @" select
  1099. // a.TransferNO as Code,
  1100. // a.InvCode,
  1101. // b.InvName,
  1102. // b.InvStd,
  1103. //b.InvUnit,
  1104. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1105. // a.FromWarehouseCode as WhCode,
  1106. //a.ExtensionID
  1107. // FROM
  1108. // ICSTransfer a
  1109. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1110. // WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  1111. // GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID";
  1112. // #endregion
  1113. // }
  1114. // if (Type == "11")
  1115. // {
  1116. // #region 两步调出
  1117. // sqls = @"select
  1118. // a.OutCode as Code,
  1119. // a.InvCode,
  1120. // b.InvName,
  1121. // b.InvStd,
  1122. //b.InvUnit,
  1123. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1124. // a.WHCode ,
  1125. //a.ExtensionID
  1126. // from ICSOtherOut a
  1127. // INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1128. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1129. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1130. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID";
  1131. // #endregion
  1132. // }
  1133. // sqls = string.Format(sqls, ID,WorkPoint);
  1134. // sql = string.Format(sql, sqls, WorkPoint);
  1135. // DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  1136. // DataTable dtCloned = table.Clone();
  1137. // foreach (DataColumn col in dtCloned.Columns)
  1138. // {
  1139. // col.DataType = typeof(string);
  1140. // }
  1141. // foreach (DataRow row in table.Rows)
  1142. // {
  1143. // DataRow newrow = dtCloned.NewRow();
  1144. // foreach (DataColumn column in dtCloned.Columns)
  1145. // {
  1146. // newrow[column.ColumnName] = row[column.ColumnName].ToString();
  1147. // }
  1148. // dtCloned.Rows.Add(newrow);
  1149. // }
  1150. // if (Invmes.Rows.Count > 0)
  1151. // {
  1152. // dtCloned.Merge(Invmes, false);
  1153. // }
  1154. // return dtCloned;
  1155. // }
  1156. public DataTable GetICSMOPickMergeTemp(string ID, string Type)
  1157. {
  1158. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1159. ID = string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(',');
  1160. #region sql
  1161. #endregion
  1162. string sqls = "";
  1163. if (Type == "1")
  1164. {
  1165. #region 工单备料sql
  1166. sqls = @" SELECT
  1167. c.MOCode as Code,
  1168. a.InvCode,
  1169. b.InvName,
  1170. b.InvStd,
  1171. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1172. a.WhCode,
  1173. b.InvUnit,
  1174. a.ExtensionID
  1175. FROM
  1176. ICSMOPick a
  1177. inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  1178. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1179. WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  1180. GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1181. #endregion
  1182. }
  1183. if (Type == "2")
  1184. {
  1185. sqls = @"select
  1186. a.ApplyCode as Code, a.InvCode, b.InvName, b.InvStd, b.InvUnit, SUM(ISNULL(a.Quantity, 0)) AS iQuantity, a.WhCode,a.ExtensionID
  1187. FROM
  1188. ICSMOApply a
  1189. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1190. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  1191. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1192. }
  1193. if (Type == "3")
  1194. {
  1195. #region 工单材料出库SQL
  1196. sqls = @" select
  1197. a.IssueCode as Code,
  1198. a.InvCode,
  1199. b.InvName,
  1200. b.InvStd,
  1201. b.InvUnit,
  1202. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1203. a.WhCode,
  1204. a.ExtensionID
  1205. FROM
  1206. ICSMOIssue a
  1207. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1208. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1209. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1210. #endregion
  1211. }
  1212. if (Type == "4")
  1213. {
  1214. #region 委外备料SQL
  1215. sqls = @" select
  1216. c.OOCode as Code,
  1217. a.InvCode,
  1218. b.InvName,
  1219. b.InvStd,
  1220. b.InvUnit,
  1221. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1222. a.WhCode,
  1223. a.ExtensionID
  1224. FROM
  1225. ICSOOPick a
  1226. left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  1227. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1228. WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  1229. GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode, a.ExtensionID";
  1230. #endregion
  1231. }
  1232. if (Type == "5")
  1233. {
  1234. #region 委外领料SQL
  1235. sqls = @"select
  1236. a.ApplyCode as Code,
  1237. a.InvCode,
  1238. b.InvName,
  1239. b.InvStd,
  1240. b.InvUnit,
  1241. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1242. a.WhCode,a.ExtensionID
  1243. FROM
  1244. ICSOApply a
  1245. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1246. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  1247. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1248. #endregion
  1249. }
  1250. if (Type == "6")
  1251. {
  1252. #region 委外材料出库SQL
  1253. sqls = @" select
  1254. a.IssueCode as Code,
  1255. a.InvCode,
  1256. b.InvName,
  1257. b.InvStd,
  1258. b.InvUnit,
  1259. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1260. a.WhCode,
  1261. a.ExtensionID
  1262. FROM
  1263. ICSOIssue a
  1264. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1265. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1266. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1267. #endregion
  1268. }
  1269. if (Type == "7")
  1270. {
  1271. #region 销售发货SQL
  1272. sqls = @" select
  1273. a.SDNCode as Code,
  1274. a.InvCode,
  1275. b.InvName,
  1276. b.InvStd,
  1277. b.InvUnit,
  1278. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1279. a.WhCode,
  1280. a.ExtensionID
  1281. FROM
  1282. ICSSDN a
  1283. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1284. WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  1285. GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1286. #endregion
  1287. }
  1288. if (Type == "8")
  1289. {
  1290. #region 其它出库SQL
  1291. sqls = @" select
  1292. a.OutCode as Code,
  1293. a.InvCode,
  1294. b.InvName,
  1295. b.InvStd,
  1296. b.InvUnit,
  1297. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1298. a.WhCode,
  1299. a.ExtensionID
  1300. FROM
  1301. ICSOtherOut a
  1302. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1303. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1304. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1305. #endregion
  1306. }
  1307. if (Type == "9")
  1308. {
  1309. #region 借用SQL
  1310. sqls = @"select
  1311. a.BrrowCode as Code,
  1312. a.InvCode,
  1313. b.InvName,
  1314. b.InvStd,
  1315. b.InvUnit,
  1316. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1317. a.WhCode,
  1318. a.ExtensionID
  1319. FROM
  1320. ICSBrrow a
  1321. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1322. WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  1323. GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1324. #endregion
  1325. }
  1326. if (Type == "10")
  1327. {
  1328. #region 物料调拨
  1329. sqls = @"select
  1330. a.TransferNO as Code,
  1331. a.InvCode,
  1332. b.InvName,
  1333. b.InvStd,
  1334. b.InvUnit,
  1335. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1336. a.FromWarehouseCode as WhCode,
  1337. a.ExtensionID
  1338. FROM
  1339. ICSTransfer a
  1340. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1341. WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  1342. GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID";
  1343. #endregion
  1344. }
  1345. if (Type == "11")
  1346. {
  1347. #region 两步调出
  1348. sqls = @"select
  1349. a.OutCode as Code,
  1350. a.InvCode,
  1351. b.InvName,
  1352. b.InvStd,
  1353. b.InvUnit,
  1354. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1355. a.WHCode ,
  1356. a.ExtensionID
  1357. from ICSOtherOut a
  1358. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1359. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1360. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1361. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID";
  1362. #endregion
  1363. }
  1364. sqls = string.Format(sqls, ID, WorkPoint);
  1365. string sql = $@"SELECT row_number() over ( order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  1366. c.Code,
  1367. c.InvCode,
  1368. c.InvName,
  1369. c.InvStd,
  1370. c.InvUnit,
  1371. FLOOR(c.iQuantity) AS iQuantity,
  1372. c.WHCode AS WarehouseCode,
  1373. d.LotNO,
  1374. FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  1375. d.LocationCode AS LocationCode,
  1376. CONVERT(varchar(100),d.MTIME, 23) MTIME,
  1377. FLOOR(f.QTYTotal) QTYTotal
  1378. FROM
  1379. ({sqls}) c
  1380. left join (select d.WarehouseCode,d.Quantity,d.INVCode, m.LotNo, d.MTIME,d.LocationCode,m.ExtensionID
  1381. from ICSWareHouseLotInfo d ,ICSInventoryLot m
  1382. where d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint
  1383. and d.WorkPoint='{WorkPoint}' AND d.Quantity>0 ) d
  1384. on c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode and d.ExtensionID=c.ExtensionID
  1385. LEFT JOIN (SELECT INVCode,WarehouseCode,SUM(Quantity) AS QTYTotal FROM ICSWareHouseLotInfo WHERE WorkPoint='{WorkPoint}' GROUP BY INVCode,WarehouseCode) f ON c.InvCode=f.INVCode AND c.WhCode=f.WarehouseCode
  1386. order by c.Code,c.InvCode,d.MTIME ";
  1387. var dataset = Repository().FindDataSetBySql(sql);
  1388. if (dataset.Tables.Count == 0)
  1389. return null;
  1390. DataTable table = dataset.Tables[0];
  1391. decimal qtyCount = 0;
  1392. bool remove = false;
  1393. List<int> removeList = new List<int>();
  1394. for (int i = 0; i < table.Rows.Count; i++)
  1395. {
  1396. if (i != 0
  1397. && (!table.Rows[i]["InvCode"].ToString().Equals(table.Rows[i - 1]["InvCode"].ToString())
  1398. || !table.Rows[i]["Code"].ToString().Equals(table.Rows[i - 1]["Code"].ToString()))
  1399. )
  1400. {
  1401. qtyCount = 0;
  1402. remove = false;
  1403. }
  1404. if (remove)
  1405. {
  1406. removeList.Add(i);
  1407. }
  1408. else
  1409. {
  1410. var lotQty = table.Rows[i]["QTY"].ToString().ToDecimal();
  1411. var orderQty = table.Rows[i]["iQuantity"].ToString().ToDecimal();
  1412. qtyCount += lotQty;
  1413. if (qtyCount >= orderQty)
  1414. {
  1415. remove = true;
  1416. }
  1417. }
  1418. }
  1419. if (removeList.Count > 0)
  1420. {
  1421. removeList.Reverse();
  1422. foreach (var item in removeList)
  1423. {
  1424. table.Rows.RemoveAt(item);
  1425. }
  1426. }
  1427. var result = ConvertCellToString(table);
  1428. if (Invmes.Rows.Count > 0)
  1429. {
  1430. result.Merge(Invmes, false);
  1431. }
  1432. return result;
  1433. }
  1434. /// <summary>
  1435. /// 工单领料推荐
  1436. /// </summary>
  1437. /// <param name="Id"></param>
  1438. /// <param name="workPoint"></param>
  1439. /// <returns></returns>
  1440. public DataTable GetICSMOPickMergeByWorkorder(string Id, string workPoint)
  1441. {
  1442. string sql = $@"SELECT row_number() over (partition by c.Code,c.InvCode order by c.Code,c.InvCode,d.MTIME) AS rowNo,
  1443. c.Code,
  1444. c.InvCode,
  1445. c.InvName,
  1446. c.InvStd,
  1447. c.InvUnit,
  1448. FLOOR(c.iQuantity) AS iQuantity,
  1449. d.WarehouseCode,
  1450. d.LotNO,
  1451. FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  1452. d.LocationCode LocationCode,
  1453. CONVERT(varchar(100),d.MTIME, 23) MTIME,
  1454. FLOOR(f.QTYTotal) QTYTotal
  1455. FROM
  1456. (select
  1457. a.ApplyCode as Code, a.InvCode, b.InvName, b.InvStd, b.InvUnit, SUM(ISNULL(a.Quantity, 0)) AS iQuantity, a.WhCode,a.ExtensionID
  1458. FROM
  1459. ICSMOApply a
  1460. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1461. WHERE a.ApplyCode in ({Id}) AND a.WorkPoint = '{workPoint}'
  1462. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID) c
  1463. left join (select d.WarehouseCode,d.Quantity,d.INVCode, m.LotNo, d.MTIME,d.LocationCode,m.ExtensionID from ICSWareHouseLotInfo d ,ICSInventoryLot m
  1464. where d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint
  1465. and d.WorkPoint='{workPoint}' AND d.Quantity>0 ) d on c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode and d.ExtensionID=c.ExtensionID
  1466. LEFT JOIN (SELECT INVCode,WarehouseCode,SUM(Quantity) AS QTYTotal FROM ICSWareHouseLotInfo WHERE WorkPoint='1701' GROUP BY INVCode,WarehouseCode) f ON c.InvCode=f.INVCode AND c.WhCode=f.WarehouseCode
  1467. order by c.Code,c.InvCode,d.MTIME";
  1468. var dataset = Repository().FindDataSetBySql(sql);
  1469. if (dataset.Tables.Count == 0)
  1470. return null;
  1471. DataTable table = dataset.Tables[0];
  1472. decimal qtyCount = 0;
  1473. bool remove = false;
  1474. List<int> removeList = new List<int>();
  1475. for (int i = 0; i < table.Rows.Count; i++)
  1476. {
  1477. if (i != 0
  1478. && !table.Rows[i]["InvCode"].ToString().Equals(table.Rows[i - 1]["InvCode"].ToString()))
  1479. {
  1480. qtyCount = 0;
  1481. remove = false;
  1482. }
  1483. if (remove)
  1484. {
  1485. removeList.Add(i);
  1486. }
  1487. else
  1488. {
  1489. var lotQty = table.Rows[i]["QTY"].ToString().ToDecimal();
  1490. var orderQty = table.Rows[i]["iQuantity"].ToString().ToDecimal();
  1491. qtyCount += lotQty;
  1492. if (qtyCount >= orderQty)
  1493. {
  1494. remove = true;
  1495. }
  1496. }
  1497. }
  1498. if (removeList.Count > 0)
  1499. {
  1500. removeList.Reverse();
  1501. foreach (var item in removeList)
  1502. {
  1503. table.Rows.RemoveAt(item);
  1504. }
  1505. }
  1506. var result = ConvertCellToString(table);
  1507. if (Invmes.Rows.Count > 0)
  1508. {
  1509. result.Merge(Invmes, false);
  1510. }
  1511. return result;
  1512. }
  1513. public DataTable ConvertCellToString(DataTable data)
  1514. {
  1515. DataTable dtCloned = data.Clone();
  1516. foreach (DataColumn col in dtCloned.Columns)
  1517. {
  1518. col.DataType = typeof(string);
  1519. }
  1520. foreach (DataRow row in data.Rows)
  1521. {
  1522. DataRow newrow = dtCloned.NewRow();
  1523. foreach (DataColumn column in dtCloned.Columns)
  1524. {
  1525. newrow[column.ColumnName] = row[column.ColumnName].ToString();
  1526. }
  1527. dtCloned.Rows.Add(newrow);
  1528. }
  1529. return dtCloned;
  1530. }
  1531. // public DataTable GetICSMOPickMergeTemp2(string ID, string Type)
  1532. // {
  1533. // string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1534. // #region sql
  1535. // string sql = @"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  1536. // c.MergeID,
  1537. // c.Code,
  1538. // c.InvCode,
  1539. // c.InvName,
  1540. // c.InvStd,
  1541. //c.InvUnit,
  1542. // FLOOR(c.iQuantity) AS iQuantity,
  1543. // d.WarehouseCode,
  1544. // d.LocationCode,
  1545. // d.LotNO,
  1546. // FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  1547. // CONVERT(varchar(100),d.MTIME, 23) MTIME,
  1548. // FLOOR(f.QTYTotal) QTYTotal INTO #temp
  1549. // FROM
  1550. // ({0}) c
  1551. // LEFT JOIN ICSWareHouseLotInfo d ON c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode AND d.WorkPoint='{1}' AND d.Quantity>0
  1552. // left join ICSInventoryLot m on d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint and c.ExtensionID=m.ExtensionID
  1553. // LEFT JOIN (SELECT INVCode,WarehouseCode,SUM(Quantity) AS QTYTotal FROM ICSWareHouseLotInfo WHERE WorkPoint='{1}' GROUP BY INVCode,WarehouseCode) f ON c.InvCode=f.INVCode AND c.WhCode=f.WarehouseCode
  1554. //DECLARE @ItemCode VARCHAR(50),
  1555. // @QTY DECIMAL(18,3),
  1556. // @ItemCodeCurrent VARCHAR(50),
  1557. // @QTYCurrent DECIMAL(18,3),
  1558. // @iQuantityCurrent DECIMAL(18,3),
  1559. // @CanDelete BIT,
  1560. // @Row INT,
  1561. // @rowCurrent INT
  1562. //SET @Row = @@rowcount
  1563. //SET @rowCurrent=1
  1564. //SET @CanDelete=0
  1565. //SET @ItemCode=''
  1566. //WHILE @rowCurrent<=@Row
  1567. // BEGIN
  1568. // SELECT @ItemCodeCurrent=InvCode,@QTYCurrent=QTY,@iQuantityCurrent=iQuantity FROM #temp WHERE rowNo=@rowCurrent
  1569. //PRINT(@rowCurrent)
  1570. // IF @ItemCode<>@ItemCodeCurrent
  1571. // BEGIN
  1572. // SET @ItemCode=@ItemCodeCurrent
  1573. // SET @QTY=0
  1574. // SET @CanDelete=0
  1575. // END
  1576. // IF @CanDelete=1
  1577. // BEGIN
  1578. // DELETE FROM #temp WHERE rowNo=@rowCurrent
  1579. // SET @rowCurrent += 1
  1580. // CONTINUE
  1581. // END
  1582. // SET @QTY += @QTYCurrent
  1583. // IF @QTY>=@iQuantityCurrent
  1584. // BEGIN
  1585. // SET @CanDelete=1
  1586. // END
  1587. // SET @rowCurrent += 1
  1588. // END
  1589. //SELECT * FROM #temp
  1590. //DROP TABLE #temp
  1591. //";
  1592. // #endregion
  1593. // string sqls = "";
  1594. // if (Type == "1")
  1595. // {
  1596. // #region 工单备料sql
  1597. // sqls = @" select
  1598. // x.MergeID,
  1599. // c.MOCode as Code,
  1600. // a.InvCode,
  1601. // b.InvName,
  1602. // b.InvStd,
  1603. //b.InvUnit,
  1604. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1605. // a.WhCode,
  1606. //a.ExtensionID
  1607. // FROM
  1608. // ICSMOPick a
  1609. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1610. // inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  1611. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1612. // WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  1613. // GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  1614. // #endregion
  1615. // }
  1616. // if (Type == "2")
  1617. // {
  1618. // #region 工单领料SQL
  1619. // sqls = @" select
  1620. // x.MergeID,
  1621. // a.ApplyCode as Code,
  1622. // a.InvCode,
  1623. // b.InvName,
  1624. // b.InvStd,
  1625. //b.InvUnit,
  1626. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1627. // a.WhCode,
  1628. // a.ExtensionID
  1629. // FROM
  1630. // ICSMOApply a
  1631. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1632. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1633. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  1634. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  1635. // #endregion
  1636. // }
  1637. // if (Type == "3")
  1638. // {
  1639. // #region 工单材料出库SQL
  1640. // sqls = @" select
  1641. // x.MergeID,
  1642. // a.IssueCode as Code,
  1643. // a.InvCode,
  1644. // b.InvName,
  1645. // b.InvStd,
  1646. //b.InvUnit,
  1647. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1648. // a.WhCode,
  1649. //a.ExtensionID
  1650. // FROM
  1651. // ICSMOIssue a
  1652. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1653. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1654. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1655. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1656. // #endregion
  1657. // }
  1658. // if (Type == "4")
  1659. // {
  1660. // #region 委外备料SQL
  1661. // sqls = @" select
  1662. // x.MergeID,
  1663. // c.OOCode as Code,
  1664. // a.InvCode,
  1665. // b.InvName,
  1666. // b.InvStd,
  1667. //b.InvUnit,
  1668. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1669. // a.WhCode,
  1670. //a.ExtensionID
  1671. // FROM
  1672. // ICSOOPick a
  1673. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1674. // left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  1675. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1676. // WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  1677. // GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID, x.MergeID";
  1678. // #endregion
  1679. // }
  1680. // if (Type == "5")
  1681. // {
  1682. // #region 委外领料SQL
  1683. // sqls = @" select
  1684. // x.MergeID,
  1685. // a.ApplyCode as Code,
  1686. // a.InvCode,
  1687. // b.InvName,
  1688. // b.InvStd,
  1689. //b.InvUnit,
  1690. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1691. // a.WhCode,
  1692. //a.ExtensionID
  1693. // FROM
  1694. // ICSOApply a
  1695. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1696. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1697. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  1698. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1699. // #endregion
  1700. // }
  1701. // if (Type == "6")
  1702. // {
  1703. // #region 委外材料出库SQL
  1704. // sqls = @" select
  1705. // x.MergeID,
  1706. // a.IssueCode as Code,
  1707. // a.InvCode,
  1708. // b.InvName,
  1709. // b.InvStd,
  1710. //b.InvUnit,
  1711. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1712. // a.WhCode,
  1713. //a.ExtensionID
  1714. // FROM
  1715. // ICSOIssue a
  1716. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1717. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1718. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1719. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1720. // #endregion
  1721. // }
  1722. // if (Type == "7")
  1723. // {
  1724. // #region 销售发货SQL
  1725. // sqls = @" select
  1726. // x.MergeID,
  1727. // a.SDNCode as Code,
  1728. // a.InvCode,
  1729. // b.InvName,
  1730. // b.InvStd,
  1731. //b.InvUnit,
  1732. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1733. // a.WhCode,
  1734. //a.ExtensionID
  1735. // FROM
  1736. // ICSSDN a
  1737. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1738. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1739. // WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  1740. // GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1741. // #endregion
  1742. // }
  1743. // if (Type == "8")
  1744. // {
  1745. // #region 其它出库SQL
  1746. // sqls = @" select
  1747. // x.MergeID,
  1748. // a.OutCode as Code,
  1749. // a.InvCode,
  1750. // b.InvName,
  1751. // b.InvStd,
  1752. //b.InvUnit,
  1753. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1754. // a.WhCode,
  1755. //a.ExtensionID
  1756. // FROM
  1757. // ICSOtherOut a
  1758. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1759. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1760. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1761. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1762. // #endregion
  1763. // }
  1764. // if (Type == "9")
  1765. // {
  1766. // #region 借用SQL
  1767. // sqls = @" select
  1768. // x.MergeID,
  1769. // a.BrrowCode as Code,
  1770. // a.InvCode,
  1771. // b.InvName,
  1772. // b.InvStd,
  1773. //b.InvUnit,
  1774. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1775. // a.WhCode,
  1776. //a.ExtensionID
  1777. // FROM
  1778. // ICSBrrow a
  1779. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1780. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1781. // WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  1782. // GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1783. // #endregion
  1784. // }
  1785. // if (Type == "10")
  1786. // {
  1787. // #region 物料调拨
  1788. // sqls = @" select
  1789. // x.MergeID,
  1790. // a.TransferNO as Code,
  1791. // a.InvCode,
  1792. // b.InvName,
  1793. // b.InvStd,
  1794. //b.InvUnit,
  1795. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1796. // a.FromWarehouseCode as WhCode,
  1797. //a.ExtensionID
  1798. // FROM
  1799. // ICSTransfer a
  1800. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1801. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1802. // WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  1803. // GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID,x.MergeID";
  1804. // #endregion
  1805. // }
  1806. // if (Type == "11")
  1807. // {
  1808. // #region 两步调出
  1809. // sqls = @"select
  1810. // x.MergeID,
  1811. // a.OutCode as Code,
  1812. // a.InvCode,
  1813. // b.InvName,
  1814. // b.InvStd,
  1815. // b.InvUnit,
  1816. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1817. // a.WHCode as WhCode,
  1818. // a.ExtensionID
  1819. // FROM
  1820. // ICSOtherOut a
  1821. // INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1822. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1823. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1824. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1825. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID,x.MergeID";
  1826. // #endregion
  1827. // }
  1828. // sqls = string.Format(sqls, string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(','), WorkPoint);
  1829. // sql = string.Format(sql, sqls, WorkPoint);
  1830. // DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  1831. // DataTable dtCloned = table.Clone();
  1832. // foreach (DataColumn col in dtCloned.Columns)
  1833. // {
  1834. // col.DataType = typeof(string);
  1835. // }
  1836. // foreach (DataRow row in table.Rows)
  1837. // {
  1838. // DataRow newrow = dtCloned.NewRow();
  1839. // foreach (DataColumn column in dtCloned.Columns)
  1840. // {
  1841. // newrow[column.ColumnName] = row[column.ColumnName].ToString();
  1842. // }
  1843. // dtCloned.Rows.Add(newrow);
  1844. // }
  1845. // if (Invmes.Rows.Count > 0)
  1846. // {
  1847. // dtCloned.Merge(Invmes, false);
  1848. // }
  1849. // return dtCloned;
  1850. // }
  1851. public DataTable GetICSMOPickMergeTemp2(string ID, string Type)
  1852. {
  1853. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1854. string sqls = "";
  1855. if (Type == "1")
  1856. {
  1857. #region 工单备料sql
  1858. sqls = @" select
  1859. x.MergeID,
  1860. c.MOCode as Code,
  1861. a.InvCode,
  1862. b.InvName,
  1863. b.InvStd,
  1864. b.InvUnit,
  1865. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1866. a.WhCode,
  1867. a.ExtensionID
  1868. FROM
  1869. ICSMOPick a
  1870. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1871. inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  1872. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1873. WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  1874. GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  1875. #endregion
  1876. }
  1877. if (Type == "2")
  1878. {
  1879. #region 工单领料SQL
  1880. sqls = @" select
  1881. x.MergeID,
  1882. a.ApplyCode as Code,
  1883. a.InvCode,
  1884. b.InvName,
  1885. b.InvStd,
  1886. b.InvUnit,
  1887. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1888. a.WhCode,
  1889. a.ExtensionID
  1890. FROM
  1891. ICSMOApply a
  1892. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1893. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1894. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  1895. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  1896. #endregion
  1897. }
  1898. if (Type == "3")
  1899. {
  1900. #region 工单材料出库SQL
  1901. sqls = @" select
  1902. x.MergeID,
  1903. a.IssueCode as Code,
  1904. a.InvCode,
  1905. b.InvName,
  1906. b.InvStd,
  1907. b.InvUnit,
  1908. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1909. a.WhCode,
  1910. a.ExtensionID
  1911. FROM
  1912. ICSMOIssue a
  1913. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1914. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1915. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1916. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1917. #endregion
  1918. }
  1919. if (Type == "4")
  1920. {
  1921. #region 委外备料SQL
  1922. sqls = @" select
  1923. x.MergeID,
  1924. c.OOCode as Code,
  1925. a.InvCode,
  1926. b.InvName,
  1927. b.InvStd,
  1928. b.InvUnit,
  1929. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1930. a.WhCode,
  1931. a.ExtensionID
  1932. FROM
  1933. ICSOOPick a
  1934. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1935. left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  1936. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1937. WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  1938. GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID, x.MergeID";
  1939. #endregion
  1940. }
  1941. if (Type == "5")
  1942. {
  1943. #region 委外领料SQL
  1944. sqls = @" select
  1945. x.MergeID,
  1946. a.ApplyCode as Code,
  1947. a.InvCode,
  1948. b.InvName,
  1949. b.InvStd,
  1950. b.InvUnit,
  1951. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1952. a.WhCode,
  1953. a.ExtensionID
  1954. FROM
  1955. ICSOApply a
  1956. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1957. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1958. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  1959. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1960. #endregion
  1961. }
  1962. if (Type == "6")
  1963. {
  1964. #region 委外材料出库SQL
  1965. sqls = @" select
  1966. x.MergeID,
  1967. a.IssueCode as Code,
  1968. a.InvCode,
  1969. b.InvName,
  1970. b.InvStd,
  1971. b.InvUnit,
  1972. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1973. a.WhCode,
  1974. a.ExtensionID
  1975. FROM
  1976. ICSOIssue a
  1977. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1978. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1979. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1980. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1981. #endregion
  1982. }
  1983. if (Type == "7")
  1984. {
  1985. #region 销售发货SQL
  1986. sqls = @" select
  1987. x.MergeID,
  1988. a.SDNCode as Code,
  1989. a.InvCode,
  1990. b.InvName,
  1991. b.InvStd,
  1992. b.InvUnit,
  1993. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1994. a.WhCode,
  1995. a.ExtensionID
  1996. FROM
  1997. ICSSDN a
  1998. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1999. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2000. WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  2001. GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2002. #endregion
  2003. }
  2004. if (Type == "8")
  2005. {
  2006. #region 其它出库SQL
  2007. sqls = @" select
  2008. x.MergeID,
  2009. a.OutCode as Code,
  2010. a.InvCode,
  2011. b.InvName,
  2012. b.InvStd,
  2013. b.InvUnit,
  2014. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2015. a.WhCode,
  2016. a.ExtensionID
  2017. FROM
  2018. ICSOtherOut a
  2019. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2020. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2021. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  2022. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2023. #endregion
  2024. }
  2025. if (Type == "9")
  2026. {
  2027. #region 借用SQL
  2028. sqls = @" select
  2029. x.MergeID,
  2030. a.BrrowCode as Code,
  2031. a.InvCode,
  2032. b.InvName,
  2033. b.InvStd,
  2034. b.InvUnit,
  2035. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2036. a.WhCode,
  2037. a.ExtensionID
  2038. FROM
  2039. ICSBrrow a
  2040. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2041. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2042. WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  2043. GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2044. #endregion
  2045. }
  2046. if (Type == "10")
  2047. {
  2048. #region 物料调拨
  2049. sqls = @" select
  2050. x.MergeID,
  2051. a.TransferNO as Code,
  2052. a.InvCode,
  2053. b.InvName,
  2054. b.InvStd,
  2055. b.InvUnit,
  2056. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2057. a.FromWarehouseCode as WhCode,
  2058. a.ExtensionID
  2059. FROM
  2060. ICSTransfer a
  2061. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2062. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2063. WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  2064. GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID,x.MergeID";
  2065. #endregion
  2066. }
  2067. if (Type == "11")
  2068. {
  2069. #region 两步调出
  2070. sqls = @" select
  2071. x.MergeID,
  2072. a.OutCode as Code,
  2073. a.InvCode,
  2074. b.InvName,
  2075. b.InvStd,
  2076. b.InvUnit,
  2077. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2078. a.WHCode as WhCode,
  2079. a.ExtensionID
  2080. FROM
  2081. ICSOtherOut a
  2082. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  2083. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2084. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2085. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  2086. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID,x.MergeID";
  2087. #endregion
  2088. }
  2089. sqls = string.Format(sqls, string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(','), WorkPoint);
  2090. #region sql
  2091. string sql = $@"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  2092. c.MergeID,
  2093. c.Code,
  2094. c.InvCode,
  2095. c.InvName,
  2096. c.InvStd,
  2097. c.InvUnit,
  2098. FLOOR(c.iQuantity) AS iQuantity,
  2099. d.WarehouseCode,
  2100. d.LocationCode,
  2101. d.LotNO,
  2102. FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  2103. CONVERT(varchar(100),d.MTIME, 23) MTIME,
  2104. FLOOR(f.QTYTotal) QTYTotal
  2105. FROM
  2106. ({sqls}) c
  2107. left join (select d.WarehouseCode,d.Quantity,d.INVCode, m.LotNo, d.MTIME,d.LocationCode,m.ExtensionID
  2108. from ICSWareHouseLotInfo d ,ICSInventoryLot m
  2109. where d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint
  2110. and d.WorkPoint='{WorkPoint}' AND d.Quantity>0 ) d
  2111. on c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode and d.ExtensionID=c.ExtensionID
  2112. LEFT JOIN (SELECT INVCode,WarehouseCode,SUM(Quantity) AS QTYTotal FROM ICSWareHouseLotInfo WHERE WorkPoint='{WorkPoint}' GROUP BY INVCode,WarehouseCode) f ON c.InvCode=f.INVCode AND c.WhCode=f.WarehouseCode
  2113. order by c.Code,c.InvCode,d.MTIME ";
  2114. #endregion
  2115. var dataset = Repository().FindDataSetBySql(sql);
  2116. if (dataset.Tables.Count == 0)
  2117. return null;
  2118. DataTable table = dataset.Tables[0];
  2119. decimal qtyCount = 0;
  2120. bool remove = false;
  2121. List<int> removeList = new List<int>();
  2122. for (int i = 0; i < table.Rows.Count; i++)
  2123. {
  2124. if (i != 0
  2125. && (!table.Rows[i]["InvCode"].ToString().Equals(table.Rows[i - 1]["InvCode"].ToString())
  2126. || !table.Rows[i]["Code"].ToString().Equals(table.Rows[i - 1]["Code"].ToString()))
  2127. )
  2128. {
  2129. qtyCount = 0;
  2130. remove = false;
  2131. }
  2132. if (remove)
  2133. {
  2134. removeList.Add(i);
  2135. }
  2136. else
  2137. {
  2138. var lotQty = table.Rows[i]["QTY"].ToString().ToDecimal();
  2139. var orderQty = table.Rows[i]["iQuantity"].ToString().ToDecimal();
  2140. qtyCount += lotQty;
  2141. if (qtyCount >= orderQty)
  2142. {
  2143. remove = true;
  2144. }
  2145. }
  2146. }
  2147. if (removeList.Count > 0)
  2148. {
  2149. removeList.Reverse();
  2150. foreach (var item in removeList)
  2151. {
  2152. table.Rows.RemoveAt(item);
  2153. }
  2154. }
  2155. var result = ConvertCellToString(table);
  2156. if (Invmes.Rows.Count > 0)
  2157. {
  2158. result.Merge(Invmes, false);
  2159. }
  2160. return result;
  2161. }
  2162. public string MergeMaterial(string keyValue, string Type)
  2163. {
  2164. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2165. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2166. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2167. string msg = "";
  2168. string sql = string.Empty;
  2169. string dataList = string.Empty;
  2170. List<string> arry = keyValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
  2171. if (arry.Count > 0)
  2172. {
  2173. StringBuilder stringBuilder = new StringBuilder();
  2174. foreach (var i in arry)
  2175. {
  2176. stringBuilder.Append($@"'{i}',");
  2177. }
  2178. dataList = stringBuilder.ToString(0, stringBuilder.Length - 1);
  2179. }
  2180. Int64 Merge_ID = 0;
  2181. DateTime time = DateTime.Now;
  2182. string Tday = time.ToString("yyyyMMdd");
  2183. string sqls = string.Format(@"SELECT MAX(A.MergeID) AS SourceID FROM ICSMOPickMerge A WHERE A.MergeID LIKE '{0}%' AND LEN(a.MergeID) = 13", Tday);
  2184. DataSet ds = SqlHelper.GetDataSetBySql(sqls);
  2185. DataTable dts = ds.Tables[0];
  2186. if (dts != null && dts.Rows.Count > 0)
  2187. {
  2188. string lot = dts.Rows[0]["SourceID"].ToString();
  2189. if (!string.IsNullOrWhiteSpace(lot))
  2190. Merge_ID = Convert.ToInt64(lot.Substring(lot.Length - 5));
  2191. }
  2192. string MergeID = Tday + (Merge_ID + 1).ToString().PadLeft(5, '0');
  2193. string order = string.Empty;
  2194. string orderCode = string.Empty;
  2195. string quantity = string.Empty;
  2196. string sqlString1 = string.Empty;
  2197. string sqlString2 = string.Empty;
  2198. if (Type == "1")//工单备料
  2199. {
  2200. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2201. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2202. select NEWID(),'{0}',b.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2203. from ICSMO a inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  2204. where a.MOCode in ({5})
  2205. ";
  2206. }
  2207. if (Type == "2")//工单发料
  2208. {
  2209. order = "ICSMOApply";
  2210. orderCode = "b.ApplyCode";
  2211. quantity = "b.IssueQuantity";
  2212. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2213. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2214. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}',a.ApplyCode
  2215. from ICSMOApply a
  2216. where a.ApplyCode in ({5})";
  2217. }
  2218. if (Type == "3")//材料出库
  2219. {
  2220. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2221. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2222. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2223. from ICSMOIssue a
  2224. where a.IssueCode in ({5}) ";
  2225. }
  2226. if (Type == "4")//委外备料
  2227. {
  2228. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2229. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2230. select NEWID(),'{0}',b.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2231. from ICSOutsourcingOrder a inner join ICSOOPick b on a.OODetailID=b.OODetailID and b.WorkPoint=a.WorkPoint
  2232. where a.OOCode in ({5})";
  2233. }
  2234. if (Type == "5")//委外领料
  2235. {
  2236. order = "ICSOApply";
  2237. orderCode = "b.ApplyCode";
  2238. quantity = "b.IssueQuantity";
  2239. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2240. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2241. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}',a.ApplyCode
  2242. from ICSOApply a
  2243. where a.ApplyCode in ({5})";
  2244. }
  2245. if (Type == "6")//委外材料出库
  2246. {
  2247. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2248. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2249. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2250. from ICSOIssue a
  2251. where a.IssueCode in ({5})";
  2252. }
  2253. if (Type == "7")//销售发货
  2254. {
  2255. order = "ICSSDN";
  2256. orderCode = "b.SDNCode";
  2257. quantity = "b.SDNQuantity";
  2258. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2259. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2260. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}',a.SDNCode
  2261. from ICSSDN a
  2262. where a.SDNCode in ({5}) AND a.Type='1' ";
  2263. }
  2264. if (Type == "8")//其它出库
  2265. {
  2266. order = "ICSOtherOut";
  2267. orderCode = "b.OutCode";
  2268. quantity = "b.OutQuantity";
  2269. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2270. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2271. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}',a.OutCode
  2272. from ICSOtherOut a
  2273. where a.OutCode in ({5})";
  2274. }
  2275. if (Type == "9")//借用单
  2276. {
  2277. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2278. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2279. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2280. from ICSBrrow a
  2281. where a.BrrowCode in ({5})";
  2282. }
  2283. if (Type == "10")//物料调拨
  2284. {
  2285. order = "ICSTransfer";
  2286. orderCode = "b.TransferNO";
  2287. quantity = "b.TransferQuantity";
  2288. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2289. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2290. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}',a.TransferNO
  2291. from ICSTransfer a
  2292. where a.TransferNO in ({5})
  2293. ";
  2294. }
  2295. if (Type == "11")//两步调出
  2296. {
  2297. sql += @" INSERT INTO dbo.ICSMOPickMerge
  2298. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2299. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2300. from ICSOtherOut a
  2301. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  2302. where a.OutCode in ({5})
  2303. ";
  2304. }
  2305. sql = string.Format(sql, MergeID, Type, MUSER, MUSERNAME, WorkPoint, dataList);
  2306. sqlString1 += $@" SELECT a.ID FROM ICSMOPickMerge a WHERE a.SourceID IN (SELECT b.ID FROM {order} b WHERE {orderCode} IN({dataList}) )";
  2307. sqlString2 += $@" SELECT b.ID FROM {order} b WHERE {orderCode} IN({dataList}) AND {quantity}>0";
  2308. DataSet ds1 = SqlHelper.GetDataSetBySql(sqlString1);
  2309. DataSet ds2 = SqlHelper.GetDataSetBySql(sqlString2);
  2310. DataTable dts1 = ds1.Tables[0];
  2311. DataTable dts2 = ds2.Tables[0];
  2312. if ((dts1 != null && dts1.Rows.Count > 0))
  2313. {
  2314. }
  2315. else if (dts2 != null && dts2.Rows.Count > 0)
  2316. {
  2317. msg = "当前选择单据号存在已出库的单据号,合并拣料失败";
  2318. }
  2319. else
  2320. {
  2321. try
  2322. {
  2323. if (SqlHelper.CmdExecuteNonQueryLi(sql) == 0)
  2324. {
  2325. msg = "新增失败";
  2326. }
  2327. }
  2328. catch (Exception ex)
  2329. {
  2330. throw new Exception(ex.Message);
  2331. }
  2332. }
  2333. return msg;
  2334. }
  2335. public string CancelMergeMaterial(string keyValue, string Type)
  2336. {
  2337. string msg = "";
  2338. string sql = string.Empty;
  2339. keyValue = keyValue.TrimEnd(',');
  2340. List<string> arry = keyValue.Split(',').ToList();
  2341. string dataList = string.Empty;
  2342. if (arry.Count > 0)
  2343. {
  2344. foreach (var i in arry)
  2345. {
  2346. dataList += $@"'{i}',";
  2347. }
  2348. if (dataList.Any())
  2349. {
  2350. dataList = dataList.TrimEnd(',');
  2351. }
  2352. }
  2353. string sqls = $@" SELECT SourceID FROM ICSMOPickMerge WHERE EATTRIBUTE1 IN({dataList}) ";
  2354. DataSet ds = SqlHelper.GetDataSetBySql(sqls);
  2355. DataTable dts = ds.Tables[0];
  2356. if (dts == null || dts.Rows.Count <= 0)
  2357. {
  2358. msg = "当前单据未合并拣料,取消合并拣料失败";
  2359. return msg;
  2360. }
  2361. string sqlStrring = string.Empty;
  2362. if (Type == "2")//工单发料
  2363. {
  2364. sqlStrring = $@"select ID from ICSMOApply a where a.ID in ({sqls}) and a.IssueQuantity=0 ";
  2365. }
  2366. if (Type == "5")//委外领料
  2367. {
  2368. sqlStrring = $@"select ID from ICSOApply a where a.ID in ({sqls}) and a.IssueQuantity=0 ";
  2369. }
  2370. if (Type == "7")//销售发货
  2371. {
  2372. sqlStrring = $@"select ID from ICSSDN a where a.ID in ({sqls}) and a.SDNQuantity=0 AND a.Type='1' ";
  2373. }
  2374. if (Type == "8")//其它出库
  2375. {
  2376. sqlStrring = $@"select ID
  2377. from ICSOtherOut a
  2378. where a.ID in ({sqls}) and a.OutQuantity=0";
  2379. }
  2380. if (Type == "10")//物料调拨
  2381. {
  2382. sqlStrring = $@"select ID from ICSTransfer a where a.ID in ({sqls}) and a.TransferQuantity=0 ";
  2383. }
  2384. DataSet dsdata = SqlHelper.GetDataSetBySql(sqlStrring);
  2385. DataTable dtdsdatas = dsdata.Tables[0];
  2386. if (dtdsdatas == null || dtdsdatas.Rows.Count <= 0)
  2387. {
  2388. msg = "当前物料已经出库,取消合并失败";
  2389. return msg;
  2390. }
  2391. sql = $@"DELETE FROM ICSMOPickMerge WHERE SourceID IN({sqls})";
  2392. try
  2393. {
  2394. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  2395. {
  2396. }
  2397. else
  2398. {
  2399. msg = "取消合并失败";
  2400. }
  2401. }
  2402. catch (Exception ex)
  2403. {
  2404. throw new Exception(ex.Message);
  2405. }
  2406. return msg;
  2407. }
  2408. public string CheckQty(string objArr)
  2409. {
  2410. objArr = objArr.TrimEnd(',');
  2411. string sql = @"select * from ICSMOPickMerge a
  2412. left join ICSMOPick b on a.SourceID=b.ID and a.WorkPoint=b.WorkPoint
  2413. left join ICSMO c on b.MODetailID=c.MODetailID and b.WorkPoint=c.WorkPoint
  2414. where MOCode in ({0})";
  2415. sql = string.Format(sql, objArr);
  2416. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  2417. if (dt != null && dt.Rows.Count > 0)
  2418. {
  2419. return "1";
  2420. }
  2421. return "0";
  2422. }
  2423. }
  2424. }