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

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