纽威

1618 lines
79 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
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. using NFine.Data.Extensions;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using NFine.Code;
  9. using NFine.Repository;
  10. using System.Data.Common;
  11. using NFine.Domain._03_Entity.SRM;
  12. using ICS.Application.Entity;
  13. using Newtonsoft.Json;
  14. using System.Configuration;
  15. using System.Data.SqlClient;
  16. using ICS.Data;
  17. namespace NFine.Application.WMS
  18. {
  19. public class PickMaterialApp : RepositoryFactory<ICSVendor>
  20. {
  21. public static DataTable Invmes = new DataTable();
  22. //工单备料(工单子件)
  23. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  24. {
  25. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  26. DataTable dt = new DataTable();
  27. var queryParam = queryJson.ToJObject();
  28. List<DbParameter> parameter = new List<DbParameter>();
  29. StringBuilder sqlstring = new StringBuilder();
  30. #region [SQL]
  31. // sql = @"select a.ID,b.MOCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,c.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  32. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  33. //from ICSMOPick a
  34. //left join ICSMO b on a.MODetailID=b.MODetailID and a.WorkPoint=b.WorkPoint
  35. //left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  36. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  37. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  38. // sql += " WHERE 1=1 and e.ID is null";
  39. sqlstring.Append($@"select a.MOCode as Code,a.CreateDateTime as MTIME,a.createperson as MUSER,
  40. case when max(d.SourceID) is null then '' else '' end as IsNew,
  41. f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,
  42. f.cFree2 ,f.cFree3 ,f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  43. from ICSMO a
  44. inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  45. left join ICSMOPickMerge d on d.SourceID=b.ID and d.WorkPoint=b.WorkPoint
  46. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  47. where a.WorkPoint='{WorkPoint}' ");
  48. if (!string.IsNullOrWhiteSpace(queryJson))
  49. {
  50. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  51. {
  52. sqlstring.Append($" and a.MOCode like '%{queryParam["POCode"]}%' ");
  53. }
  54. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  55. {
  56. sqlstring.Append($" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  57. }
  58. }
  59. sqlstring.Append(@" group by a.MOCode, a.WorkPoint,a.CreateDateTime,a.createperson,f.Colspan,f.ProjectCode,
  60. f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4,
  61. f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10");
  62. #endregion
  63. return Repository().FindTablePageBySql(sqlstring.ToString(), parameter.ToArray(), ref jqgridparam);
  64. }
  65. //工单备料(工单子件)子表查询
  66. public DataTable GetSubGridJson1(string Code)
  67. {
  68. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  69. DataTable dt = new DataTable();
  70. //var queryParam = queryJson.ToJObject();
  71. List<DbParameter> parameter = new List<DbParameter>();
  72. string sql = @" select a.ID,b.MOCode as Code,a.Sequence+'-'+b.Sequence AS Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,c.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  73. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  74. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  75. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  76. from ICSMOPick a
  77. left join ICSMO b on a.MODetailID=b.MODetailID and a.WorkPoint=b.WorkPoint
  78. left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  79. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  80. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  81. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  82. where b.MOCode='{0}' and a.WorkPoint='{1}'";
  83. sql = string.Format(sql, Code, WorkPoint);
  84. return Repository().FindTableBySql(sql.ToString());
  85. }
  86. //工单领料(发料申请)
  87. public DataTable GetGridJson2(string queryJson, ref Pagination jqgridparam)
  88. {
  89. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  90. DataTable dt = new DataTable();
  91. var queryParam = queryJson.ToJObject();
  92. List<DbParameter> parameter = new List<DbParameter>();
  93. StringBuilder sqlString=new StringBuilder();
  94. #region [SQL]
  95. // select a.ID,a.ApplyCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName ,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  96. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  97. // from ICSMOApply a
  98. // left join ICSWarehouse b on a.WHCode = b.WarehouseCode and a.WorkPoint = b.WorkPoint
  99. // left join ICSInventory d on a.InvCode = d.InvCode and a.WorkPoint = d.WorkPoint
  100. // left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  101. sqlString.Append($@"
  102. SELECT * from (select row_number() over(partition by a.ApplyCode ORDER BY a.ApplyCode) as row,
  103. a.ApplyCode as Code,a.CreateDateTime as MTIME,a.createperson as MUSER,
  104. case when max(e.SourceID) is null then '' else '' end as IsNew,f.Colspan ,
  105. f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,
  106. f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  107. from ICSMOApply a
  108. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  109. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  110. where a.WorkPoint='{WorkPoint}' ");
  111. if (!string.IsNullOrWhiteSpace(queryJson))
  112. {
  113. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  114. {
  115. sqlString.Append($@" and a.ApplyCode like '%{queryParam["POCode"]}%' ");
  116. }
  117. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  118. {
  119. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  120. }
  121. }
  122. sqlString.Append(@" group by a.ApplyCode, a.WorkPoint,a.CreateDateTime,a.createperson,
  123. f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,
  124. f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10) as t where t.row=1");
  125. #endregion
  126. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  127. }
  128. //工单领料(发料申请)子表查询
  129. public DataTable GetSubGridJson2(string Code)
  130. {
  131. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  132. DataTable dt = new DataTable();
  133. //var queryParam = queryJson.ToJObject();
  134. List<DbParameter> parameter = new List<DbParameter>();
  135. string 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,
  136. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  137. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  138. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  139. from ICSMOApply a
  140. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  141. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  142. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  143. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  144. where a.ApplyCode='{0}' and a.WorkPoint='{1}'";
  145. sql = string.Format(sql, Code, WorkPoint);
  146. return Repository().FindTableBySql(sql.ToString());
  147. }
  148. //工单材料出库(材料出库)
  149. public DataTable GetGridJson3(string queryJson, ref Pagination jqgridparam)
  150. {
  151. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  152. DataTable dt = new DataTable();
  153. var queryParam = queryJson.ToJObject();
  154. List<DbParameter> parameter = new List<DbParameter>();
  155. StringBuilder sqlString = new StringBuilder();
  156. #region [SQL]
  157. // 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,
  158. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  159. // from ICSMOIssue a
  160. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  161. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  162. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint ";
  163. // sql += " WHERE 1=1 and e.ID is null";
  164. sqlString.Append($@"SELECT * FROM(SELECT row_number ( ) OVER ( partition BY a.IssueCode ORDER BY a.IssueCode ) AS row,
  165. a.IssueCode as Code,a.CreateDateTime as MTIME,a.createperson as MUSER,
  166. case when max(e.SourceID) is null then '' else ''
  167. end as IsNew,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,
  168. f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10
  169. from ICSMOIssue a
  170. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  171. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  172. where a.WorkPoint = '{WorkPoint}' ");
  173. if (!string.IsNullOrWhiteSpace(queryJson))
  174. {
  175. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  176. {
  177. sqlString.Append($@" and a.IssueCode like '%{queryParam["POCode"]}%' ");
  178. }
  179. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  180. {
  181. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  182. }
  183. }
  184. sqlString.Append(@"group by a.IssueCode,a.CreateDateTime,a.createperson,f.Colspan,f.ProjectCode,f.BatchCode,
  185. f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,
  186. f.cFree8, f.cFree9, f.cFree10 ) AS t WHERE t.row= 1 ");
  187. #endregion
  188. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  189. }
  190. //工单材料出库(材料出库)子表查询
  191. public DataTable GetSubGridJson3(string Code)
  192. {
  193. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  194. DataTable dt = new DataTable();
  195. //var queryParam = queryJson.ToJObject();
  196. List<DbParameter> parameter = new List<DbParameter>();
  197. 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,
  198. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  199. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  200. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  201. from ICSMOIssue a
  202. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  203. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  204. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  205. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  206. where a.IssueCode='{0}' and a.WorkPoint='{1}'";
  207. sql = string.Format(sql, Code, WorkPoint);
  208. return Repository().FindTableBySql(sql.ToString());
  209. }
  210. //委外备料(委外备料)
  211. public DataTable GetGridJson4(string queryJson, ref Pagination jqgridparam)
  212. {
  213. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  214. DataTable dt = new DataTable();
  215. var queryParam = queryJson.ToJObject();
  216. List<DbParameter> parameter = new List<DbParameter>();
  217. StringBuilder sqlString = new StringBuilder();
  218. #region [SQL]
  219. sqlString.Append($@"select * from (select row_number() over(partition by b.OOCode order by b.OOCode) row, b.OOCode as Code,
  220. b.CreateDateTime as MTIME,
  221. b.CreatePerson as MUSER,
  222. case
  223. when max(e.SourceID) is null then ''
  224. else ''
  225. end as IsNew,
  226. f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,
  227. f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10
  228. from ICSOOPick a
  229. inner join ICSOutsourcingOrder b on a.OODetailID = b.OODetailID and a.WorkPoint = b.WorkPoint
  230. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  231. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  232. WHERE b.WorkPoint = '{WorkPoint}' ");
  233. if (!string.IsNullOrWhiteSpace(queryJson))
  234. {
  235. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  236. {
  237. sqlString.Append($@" and a.OOCode like '%{queryParam["POCode"]}%' ");
  238. }
  239. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  240. {
  241. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  242. }
  243. }
  244. sqlString.Append(@" group by b.OOCode,b.CreateDateTime,b.CreatePerson,f.Colspan ,f.ProjectCode ,
  245. f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4,
  246. f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10) t where t.row=1");
  247. #endregion
  248. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  249. }
  250. //委外备料(委外备料)子表查询
  251. public DataTable GetSubGridJson4(string Code)
  252. {
  253. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  254. DataTable dt = new DataTable();
  255. //var queryParam = queryJson.ToJObject();
  256. List<DbParameter> parameter = new List<DbParameter>();
  257. 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,
  258. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  259. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  260. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  261. from ICSOOPick a
  262. left join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID and a.WorkPoint=b.WorkPoint
  263. left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  264. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  265. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  266. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  267. where b.OOCode='{0}' and b.WorkPoint='{1}'";
  268. sql = string.Format(sql, Code, WorkPoint);
  269. return Repository().FindTableBySql(sql.ToString());
  270. }
  271. //委外领料(委外发料申请)
  272. public DataTable GetGridJson5(string queryJson, ref Pagination jqgridparam)
  273. {
  274. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  275. DataTable dt = new DataTable();
  276. var queryParam = queryJson.ToJObject();
  277. List<DbParameter> parameter = new List<DbParameter>();
  278. StringBuilder sqlString=new StringBuilder();
  279. #region [SQL]
  280. // 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,
  281. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  282. // from ICSOApply a
  283. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  284. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  285. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  286. // sql += " WHERE 1=1 and e.ID is null";
  287. 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,
  288. case when max(e.SourceID) is null then ''
  289. else ''
  290. end as IsNew,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,
  291. f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10
  292. from ICSOApply a
  293. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  294. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  295. where a.WorkPoint = '{WorkPoint}'");
  296. if (!string.IsNullOrWhiteSpace(queryJson))
  297. {
  298. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  299. {
  300. sqlString.Append($@" and a.ApplyCode like '%{queryParam["POCode"]}%' ");
  301. }
  302. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  303. {
  304. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  305. }
  306. }
  307. sqlString.Append(@"group by a.ApplyCode,a.CreateDateTime,a.CreatePerson,f.Colspan,f.ProjectCode,
  308. f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,
  309. f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10 ) t where row=1");
  310. #endregion
  311. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  312. }
  313. //委外领料(委外发料申请)子表查询
  314. public DataTable GetSubGridJson5(string Code)
  315. {
  316. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  317. DataTable dt = new DataTable();
  318. //var queryParam = queryJson.ToJObject();
  319. List<DbParameter> parameter = new List<DbParameter>();
  320. string 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,
  321. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  322. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  323. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  324. from ICSOApply a
  325. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  326. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  327. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  328. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  329. where a.ApplyCode='{0}' and a.WorkPoint='{1}'";
  330. sql = string.Format(sql, Code, WorkPoint);
  331. return Repository().FindTableBySql(sql.ToString());
  332. }
  333. //委外材料出库(委外发料申请)
  334. public DataTable GetGridJson6(string queryJson, ref Pagination jqgridparam)
  335. {
  336. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  337. DataTable dt = new DataTable();
  338. var queryParam = queryJson.ToJObject();
  339. List<DbParameter> parameter = new List<DbParameter>();
  340. StringBuilder sqlString=new StringBuilder();
  341. #region [SQL]
  342. // 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,
  343. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  344. // from ICSOIssue a
  345. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  346. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  347. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  348. // sql += " WHERE 1=1 and e.ID is null";
  349. sqlString.Append($@"select * from(select row_number() over(partition by a.IssueCode order by a.IssueCode) row, a.IssueCode as Code,
  350. a.CreateDateTime as MTIME,
  351. a.CreatePerson as MUSER,
  352. case
  353. when max(e.SourceID) is null then ''
  354. else ''
  355. end as IsNew,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,
  356. f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,
  357. f.cFree8,f.cFree9,f.cFree10
  358. from ICSOIssue a
  359. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  360. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  361. where a.WorkPoint = '{WorkPoint}'");
  362. if (!string.IsNullOrWhiteSpace(queryJson))
  363. {
  364. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  365. {
  366. sqlString.Append($@" and a.IssueCode like '%{queryParam["POCode"]}%' ");
  367. }
  368. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  369. {
  370. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  371. }
  372. }
  373. sqlString.Append(@"group by a.IssueCode,a.CreateDateTime,a.CreatePerson,f.Colspan,f.ProjectCode,
  374. f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,
  375. f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10) t where t.row=1");
  376. #endregion
  377. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  378. }
  379. //委外材料出库(委外发料申请)子表查询
  380. public DataTable GetSubGridJson6(string Code)
  381. {
  382. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  383. DataTable dt = new DataTable();
  384. //var queryParam = queryJson.ToJObject();
  385. List<DbParameter> parameter = new List<DbParameter>();
  386. 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,
  387. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  388. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  389. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  390. from ICSOIssue a
  391. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  392. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  393. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  394. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  395. where a.IssueCode='{0}' and a.WorkPoint='{1}'";
  396. sql = string.Format(sql, Code, WorkPoint);
  397. return Repository().FindTableBySql(sql.ToString());
  398. }
  399. //销售发货(销售发货)
  400. public DataTable GetGridJson7(string queryJson, ref Pagination jqgridparam)
  401. {
  402. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  403. DataTable dt = new DataTable();
  404. var queryParam = queryJson.ToJObject();
  405. List<DbParameter> parameter = new List<DbParameter>();
  406. StringBuilder sqlString = new StringBuilder();
  407. #region [SQL]
  408. // 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,
  409. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  410. // from ICSSDN a
  411. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  412. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  413. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  414. // sql += " WHERE 1=1 and a.Type='1' and e.ID is null";
  415. sqlString.Append($@"SELECT * from (SELECT Row_Number() over(partition by a.SDNCode Order by a.SDNCode) as r, a.SDNCode AS Code,
  416. a.CreateDateTime AS MTIME,
  417. a.CreatePerson AS MUSER,
  418. (CASE WHEN max(e.SourceID) IS NULL THEN '' ELSE '' END) AS IsNew,
  419. f.Colspan, f.ProjectCode, f.BatchCode, f.Version, f.Brand,
  420. f.cFree1, f.cFree2, f.cFree3, f.cFree4, f.cFree5, f.cFree6, f.cFree7, f.cFree8, f.cFree9, f.cFree10
  421. FROM ICSSDN a
  422. LEFT JOIN ICSMOPickMerge e ON a.ID = e.SourceID AND a.WorkPoint = e.WorkPoint
  423. LEFT JOIN ICSExtension f ON a.ExtensionID = f.ID AND a.WorkPoint = f.WorkPoint
  424. WHERE a.WorkPoint = '{WorkPoint}' ");
  425. if (!string.IsNullOrWhiteSpace(queryJson))
  426. {
  427. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  428. {
  429. sqlString.Append($" and a.SDNCode like '%{queryParam["POCode"]}%' ");
  430. }
  431. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  432. {
  433. sqlString.Append($" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  434. }
  435. }
  436. sqlString.Append(@"GROUP BY a.SDNCode, a.CreateDateTime, a.CreatePerson, f.Colspan, f.ProjectCode, f.BatchCode, f.Version, f.Brand,
  437. f.cFree1, f.cFree2, f.cFree3, f.cFree4, f.cFree5, f.cFree6, f.cFree7, f.cFree8, f.cFree9, f.cFree10) t WHERE t.r=1");
  438. #endregion
  439. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  440. }
  441. //销售发货(销售发货)子表查询
  442. public DataTable GetSubGridJson7(string Code)
  443. {
  444. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  445. DataTable dt = new DataTable();
  446. //var queryParam = queryJson.ToJObject();
  447. List<DbParameter> parameter = new List<DbParameter>();
  448. string 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,
  449. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  450. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  451. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.SDNQuantity as IssueQuantity
  452. from ICSSDN a
  453. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  454. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  455. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  456. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  457. where a.SDNCode='{0}' and a.WorkPoint='{1}'";
  458. sql = string.Format(sql, Code, WorkPoint);
  459. return Repository().FindTableBySql(sql.ToString());
  460. }
  461. //其它出库(其它出库)
  462. public DataTable GetGridJson8(string queryJson, ref Pagination jqgridparam)
  463. {
  464. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  465. DataTable dt = new DataTable();
  466. var queryParam = queryJson.ToJObject();
  467. List<DbParameter> parameter = new List<DbParameter>();
  468. StringBuilder sqlString = new StringBuilder();
  469. #region [SQL]
  470. // 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,
  471. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  472. //from ICSOtherOut a
  473. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  474. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  475. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  476. // sql += " WHERE 1=1 and e.ID is null ";
  477. sqlString.Append($@"select * from(select row_number() over(partition by a.OutCode order by a.OutCode) row, a.OutCode as Code,
  478. a.CreateDateTime as MTIME,
  479. a.CreatePerson as MUSER,
  480. case
  481. when max(e.SourceID) is null then ''
  482. else ''
  483. end as IsNew,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,
  484. f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10
  485. from ICSOtherOut a
  486. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  487. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  488. where a.WorkPoint = '{WorkPoint}'");
  489. #endregion
  490. if (!string.IsNullOrWhiteSpace(queryJson))
  491. {
  492. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  493. {
  494. sqlString.Append($@" and a.OutCode like '%{queryParam["POCode"]}%' ");
  495. }
  496. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  497. {
  498. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  499. }
  500. }
  501. sqlString.Append(@" group by a.OutCode,a.CreateDateTime,a.CreatePerson,f.Colspan,f.ProjectCode,f.BatchCode,
  502. f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,
  503. f.cFree7,f.cFree8,f.cFree9,f.cFree10) t where t.row=1");
  504. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  505. }
  506. //其它出库(其它出库)子表查询
  507. public DataTable GetSubGridJson8(string Code)
  508. {
  509. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  510. DataTable dt = new DataTable();
  511. //var queryParam = queryJson.ToJObject();
  512. List<DbParameter> parameter = new List<DbParameter>();
  513. 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,
  514. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  515. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  516. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.OutQuantity as IssueQuantity
  517. from ICSOtherOut a
  518. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  519. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  520. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  521. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  522. where a.OutCode='{0}' and a.WorkPoint='{1}'";
  523. sql = string.Format(sql, Code, WorkPoint);
  524. return Repository().FindTableBySql(sql.ToString());
  525. }
  526. //借用(借用)
  527. public DataTable GetGridJson9(string queryJson, ref Pagination jqgridparam)
  528. {
  529. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  530. DataTable dt = new DataTable();
  531. var queryParam = queryJson.ToJObject();
  532. List<DbParameter> parameter = new List<DbParameter>();
  533. StringBuilder sqlString=new StringBuilder();
  534. #region [SQL]
  535. // sql = @"
  536. //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,
  537. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  538. // from ICSBrrow a
  539. // left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  540. // left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  541. // left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  542. // sql += " WHERE 1=1 and e.ID is null ";
  543. sqlString.Append($@"select * from(select row_number() over(partition by a.BrrowCode order by a.BrrowCode) row, a.BrrowCode as Code,
  544. a.CreateDateTime as MTIME,
  545. a.CreatePerson as MUSER,
  546. case
  547. when max(e.SourceID) is null then ''
  548. else ''
  549. end as IsNew,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,
  550. f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,
  551. f.cFree8,f.cFree9,f.cFree10
  552. from ICSBrrow a
  553. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  554. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  555. where a.WorkPoint = '{WorkPoint}'");
  556. if (!string.IsNullOrWhiteSpace(queryJson))
  557. {
  558. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  559. {
  560. sqlString.Append($@" and a.BrrowCode like '%{queryParam["POCode"]}%' ");
  561. }
  562. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  563. {
  564. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  565. }
  566. }
  567. sqlString.Append(@"group by a.BrrowCode,a.CreateDateTime,a.CreatePerson,f.Colspan,f.ProjectCode,
  568. f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,
  569. f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,
  570. f.cFree10) t where t.row=1");
  571. #endregion
  572. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  573. }
  574. //借用(借用)子表查询
  575. public DataTable GetSubGridJson9(string Code)
  576. {
  577. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  578. DataTable dt = new DataTable();
  579. //var queryParam = queryJson.ToJObject();
  580. List<DbParameter> parameter = new List<DbParameter>();
  581. 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,
  582. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  583. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  584. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.BrrowQuantity as IssueQuantity
  585. from ICSBrrow a
  586. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  587. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  588. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  589. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  590. where a.BrrowCode='{0}' and a.WorkPoint='{1}'";
  591. sql = string.Format(sql, Code, WorkPoint);
  592. return Repository().FindTableBySql(sql.ToString());
  593. }
  594. //物料调拨
  595. public DataTable GetGridJson10(string queryJson, ref Pagination jqgridparam)
  596. {
  597. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  598. DataTable dt = new DataTable();
  599. var queryParam = queryJson.ToJObject();
  600. List<DbParameter> parameter = new List<DbParameter>();
  601. StringBuilder sqlString=new StringBuilder();
  602. #region [SQL]
  603. // sql = @"
  604. //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,
  605. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  606. // from ICSBrrow 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. // sql += " WHERE 1=1 and e.ID is null ";
  611. sqlString.Append($@"select * from (select row_number() over(partition by a.TransferNO order by a.TransferNO) row,
  612. a.TransferNO as Code,a.CreateDateTime as MTIME,a.CreatePerson as MUSER,
  613. case
  614. when max(e.SourceID) is null then ''
  615. else ''
  616. end as IsNew,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,
  617. f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10
  618. from ICSTransfer a
  619. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  620. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  621. where a.WorkPoint = '{WorkPoint}' and a.Status = '1'");
  622. if (!string.IsNullOrWhiteSpace(queryJson))
  623. {
  624. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  625. {
  626. sqlString.Append($@" and a.BrrowCode like '%{queryParam["POCode"]}%' ");
  627. }
  628. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  629. {
  630. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  631. }
  632. }
  633. sqlString.Append(@"group by a.TransferNO,a.CreateDateTime,a.CreatePerson,f.Colspan,f.ProjectCode,
  634. f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,
  635. f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10) t where t.row=1");
  636. #endregion
  637. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  638. }
  639. //物料调拨子表查询
  640. public DataTable GetSubGridJson10(string Code)
  641. {
  642. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  643. DataTable dt = new DataTable();
  644. //var queryParam = queryJson.ToJObject();
  645. List<DbParameter> parameter = new List<DbParameter>();
  646. string sql = @"select a.ID,a.TransferNO as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.FromWarehouseCode as WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  647. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  648. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  649. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.TransferQuantity as IssueQuantity
  650. from ICSTransfer a
  651. left join ICSWarehouse b on a.FromWarehouseCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  652. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  653. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  654. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  655. where a.TransferNO='{0}' and b.WorkPoint='{1}'";
  656. sql = string.Format(sql, Code, WorkPoint);
  657. return Repository().FindTableBySql(sql.ToString());
  658. }
  659. //两步调拨
  660. public DataTable GetGridJson11(string queryJson, ref Pagination jqgridparam)
  661. {
  662. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  663. DataTable dt = new DataTable();
  664. var queryParam = queryJson.ToJObject();
  665. List<DbParameter> parameter = new List<DbParameter>();
  666. StringBuilder sqlString=new StringBuilder();
  667. #region [SQL]
  668. // sql = @"
  669. //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,
  670. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  671. // from ICSBrrow a
  672. // left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  673. // left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  674. // left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  675. // sql += " WHERE 1=1 and e.ID is null ";
  676. 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,
  677. case when max(e.SourceID) is null then '' else '' end as IsNew,
  678. f.Colspan, f.ProjectCode, f.BatchCode, f.Version, f.Brand,
  679. f.cFree1, f.cFree2, f.cFree3, f.cFree4, f.cFree5, f.cFree6, f.cFree7, f.cFree8, f.cFree9, f.cFree10
  680. FROM ICSOtherOut a
  681. INNER JOIN ICSTransfer tra ON a.TransferDetailID = tra.TransferDetailID AND a.WorkPoint = tra.WorkPoint
  682. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  683. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  684. where a.WorkPoint = '{WorkPoint}'
  685. and a.Status = '2' ");
  686. if (!string.IsNullOrWhiteSpace(queryJson))
  687. {
  688. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  689. {
  690. sqlString.Append($@" and a.OutCode like '%{queryParam["POCode"]}%' ");
  691. }
  692. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  693. {
  694. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  695. }
  696. }
  697. sqlString.Append(@" group by a.OutCode, a.CreateDateTime, a.CreatePerson, f.Colspan ,f.ProjectCode ,
  698. f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4 ,
  699. f.cFree5, f.cFree6, f.cFree7, f.cFree8, f.cFree9, f.cFree10) t where t.row=1");
  700. #endregion
  701. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  702. }
  703. //两步调拨子表查询
  704. public DataTable GetSubGridJson11(string Code)
  705. {
  706. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  707. DataTable dt = new DataTable();
  708. //var queryParam = queryJson.ToJObject();
  709. List<DbParameter> parameter = new List<DbParameter>();
  710. 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,
  711. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  712. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  713. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.OutQuantity as IssueQuantity
  714. FROM ICSOtherOut a
  715. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  716. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  717. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  718. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  719. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  720. where a.OutCode='{0}' and a.WorkPoint='{1}'";
  721. sql = string.Format(sql, Code, WorkPoint);
  722. return Repository().FindTableBySql(sql.ToString());
  723. }
  724. public DataTable GetICSMOPickMergeTemp(string ID,string Type)
  725. {
  726. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  727. #region sql
  728. string sql = @"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  729. c.Code,
  730. c.InvCode,
  731. c.InvName,
  732. c.InvStd,
  733. c.InvUnit,
  734. FLOOR(c.iQuantity) AS iQuantity,
  735. d.WarehouseCode,
  736. d.LocationCode,
  737. d.LotNO,
  738. FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  739. CONVERT(varchar(100),d.MTIME, 23) MTIME,
  740. FLOOR(f.QTYTotal) QTYTotal INTO #temp
  741. FROM
  742. ({0}) c
  743. LEFT JOIN ICSWareHouseLotInfo d ON c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode AND d.WorkPoint='{1}' AND d.Quantity>0
  744. left join ICSInventoryLot m on d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint and c.ExtensionID=m.ExtensionID
  745. 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
  746. DECLARE @ItemCode VARCHAR(50),
  747. @QTY DECIMAL(18,3),
  748. @ItemCodeCurrent VARCHAR(50),
  749. @QTYCurrent DECIMAL(18,3),
  750. @iQuantityCurrent DECIMAL(18,3),
  751. @CanDelete BIT,
  752. @Row INT,
  753. @rowCurrent INT
  754. SET @Row = @@rowcount
  755. SET @rowCurrent=1
  756. SET @CanDelete=0
  757. SET @ItemCode=''
  758. WHILE @rowCurrent<=@Row
  759. BEGIN
  760. SELECT @ItemCodeCurrent=InvCode,@QTYCurrent=QTY,@iQuantityCurrent=iQuantity FROM #temp WHERE rowNo=@rowCurrent
  761. PRINT(@rowCurrent)
  762. IF @ItemCode<>@ItemCodeCurrent
  763. BEGIN
  764. SET @ItemCode=@ItemCodeCurrent
  765. SET @QTY=0
  766. SET @CanDelete=0
  767. END
  768. IF @CanDelete=1
  769. BEGIN
  770. DELETE FROM #temp WHERE rowNo=@rowCurrent
  771. SET @rowCurrent += 1
  772. CONTINUE
  773. END
  774. SET @QTY += @QTYCurrent
  775. IF @QTY>=@iQuantityCurrent
  776. BEGIN
  777. SET @CanDelete=1
  778. END
  779. SET @rowCurrent += 1
  780. END
  781. SELECT * FROM #temp
  782. DROP TABLE #temp
  783. ";
  784. #endregion
  785. string sqls = "";
  786. if (Type=="1")
  787. {
  788. #region 工单备料sql
  789. sqls = @" SELECT
  790. c.MOCode as Code,
  791. a.InvCode,
  792. b.InvName,
  793. b.InvStd,
  794. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  795. a.WhCode,
  796. b.InvUnit,
  797. a.ExtensionID
  798. FROM
  799. ICSMOPick a
  800. inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  801. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  802. WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  803. GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  804. #endregion
  805. }
  806. if (Type == "2")
  807. {
  808. #region 工单领料SQL
  809. sqls = @" select
  810. a.ApplyCode as Code,
  811. a.InvCode,
  812. b.InvName,
  813. b.InvStd,
  814. b.InvUnit,
  815. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  816. a.WhCode,
  817. a.ExtensionID
  818. FROM
  819. ICSMOApply a
  820. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  821. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  822. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  823. #endregion
  824. }
  825. if (Type=="3")
  826. {
  827. #region 工单材料出库SQL
  828. sqls = @" select
  829. a.IssueCode as Code,
  830. a.InvCode,
  831. b.InvName,
  832. b.InvStd,
  833. b.InvUnit,
  834. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  835. a.WhCode,
  836. a.ExtensionID
  837. FROM
  838. ICSMOIssue a
  839. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  840. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  841. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  842. #endregion
  843. }
  844. if (Type=="4")
  845. {
  846. #region 委外备料SQL
  847. sqls = @" select
  848. c.OOCode as Code,
  849. a.InvCode,
  850. b.InvName,
  851. b.InvStd,
  852. b.InvUnit,
  853. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  854. a.WhCode,
  855. a.ExtensionID
  856. FROM
  857. ICSOOPick a
  858. left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  859. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  860. WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  861. GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode, a.ExtensionID";
  862. #endregion
  863. }
  864. if (Type=="5")
  865. {
  866. #region 委外领料SQL
  867. sqls = @" select
  868. a.ApplyCode as Code,
  869. a.InvCode,
  870. b.InvName,
  871. b.InvStd,
  872. b.InvUnit,
  873. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  874. a.WhCode,
  875. a.ExtensionID
  876. FROM
  877. ICSOApply a
  878. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  879. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  880. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  881. #endregion
  882. }
  883. if (Type=="6")
  884. {
  885. #region 委外材料出库SQL
  886. sqls = @" select
  887. a.IssueCode as Code,
  888. a.InvCode,
  889. b.InvName,
  890. b.InvStd,
  891. b.InvUnit,
  892. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  893. a.WhCode,
  894. a.ExtensionID
  895. FROM
  896. ICSOIssue a
  897. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  898. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  899. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  900. #endregion
  901. }
  902. if (Type=="7")
  903. {
  904. #region 销售发货SQL
  905. sqls = @" select
  906. a.SDNCode as Code,
  907. a.InvCode,
  908. b.InvName,
  909. b.InvStd,
  910. b.InvUnit,
  911. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  912. a.WhCode,
  913. a.ExtensionID
  914. FROM
  915. ICSSDN a
  916. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  917. WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  918. GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  919. #endregion
  920. }
  921. if (Type=="8")
  922. {
  923. #region 其它出库SQL
  924. sqls = @" select
  925. a.OutCode as Code,
  926. a.InvCode,
  927. b.InvName,
  928. b.InvStd,
  929. b.InvUnit,
  930. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  931. a.WhCode,
  932. a.ExtensionID
  933. FROM
  934. ICSOtherOut a
  935. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  936. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  937. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  938. #endregion
  939. }
  940. if (Type == "9")
  941. {
  942. #region 借用SQL
  943. sqls = @"select
  944. a.BrrowCode as Code,
  945. a.InvCode,
  946. b.InvName,
  947. b.InvStd,
  948. b.InvUnit,
  949. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  950. a.WhCode,
  951. a.ExtensionID
  952. FROM
  953. ICSBrrow a
  954. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  955. WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  956. GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  957. #endregion
  958. }
  959. if (Type == "10")
  960. {
  961. #region 物料调拨
  962. sqls = @" select
  963. a.TransferNO as Code,
  964. a.InvCode,
  965. b.InvName,
  966. b.InvStd,
  967. b.InvUnit,
  968. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  969. a.FromWarehouseCode as WhCode,
  970. a.ExtensionID
  971. FROM
  972. ICSTransfer a
  973. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  974. WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  975. GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID";
  976. #endregion
  977. }
  978. if (Type == "11")
  979. {
  980. #region 两步调出
  981. sqls = @"select
  982. a.OutCode as Code,
  983. a.InvCode,
  984. b.InvName,
  985. b.InvStd,
  986. b.InvUnit,
  987. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  988. a.WHCode ,
  989. a.ExtensionID
  990. from ICSOtherOut a
  991. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  992. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  993. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  994. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID";
  995. #endregion
  996. }
  997. sqls = string.Format(sqls, string.IsNullOrWhiteSpace(ID)?"''":ID.TrimEnd(','),WorkPoint);
  998. sql = string.Format(sql, sqls, WorkPoint);
  999. DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  1000. DataTable dtCloned = table.Clone();
  1001. foreach (DataColumn col in dtCloned.Columns)
  1002. {
  1003. col.DataType = typeof(string);
  1004. }
  1005. foreach (DataRow row in table.Rows)
  1006. {
  1007. DataRow newrow = dtCloned.NewRow();
  1008. foreach (DataColumn column in dtCloned.Columns)
  1009. {
  1010. newrow[column.ColumnName] = row[column.ColumnName].ToString();
  1011. }
  1012. dtCloned.Rows.Add(newrow);
  1013. }
  1014. if (Invmes.Rows.Count > 0)
  1015. {
  1016. dtCloned.Merge(Invmes, false);
  1017. }
  1018. return dtCloned;
  1019. }
  1020. public DataTable GetICSMOPickMergeTemp2(string ID, string Type)
  1021. {
  1022. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1023. #region sql
  1024. string sql = @"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  1025. c.MergeID,
  1026. c.Code,
  1027. c.InvCode,
  1028. c.InvName,
  1029. c.InvStd,
  1030. c.InvUnit,
  1031. FLOOR(c.iQuantity) AS iQuantity,
  1032. d.WarehouseCode,
  1033. d.LocationCode,
  1034. d.LotNO,
  1035. FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  1036. CONVERT(varchar(100),d.MTIME, 23) MTIME,
  1037. FLOOR(f.QTYTotal) QTYTotal INTO #temp
  1038. FROM
  1039. ({0}) c
  1040. LEFT JOIN ICSWareHouseLotInfo d ON c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode AND d.WorkPoint='{1}' AND d.Quantity>0
  1041. left join ICSInventoryLot m on d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint and c.ExtensionID=m.ExtensionID
  1042. 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
  1043. DECLARE @ItemCode VARCHAR(50),
  1044. @QTY DECIMAL(18,3),
  1045. @ItemCodeCurrent VARCHAR(50),
  1046. @QTYCurrent DECIMAL(18,3),
  1047. @iQuantityCurrent DECIMAL(18,3),
  1048. @CanDelete BIT,
  1049. @Row INT,
  1050. @rowCurrent INT
  1051. SET @Row = @@rowcount
  1052. SET @rowCurrent=1
  1053. SET @CanDelete=0
  1054. SET @ItemCode=''
  1055. WHILE @rowCurrent<=@Row
  1056. BEGIN
  1057. SELECT @ItemCodeCurrent=InvCode,@QTYCurrent=QTY,@iQuantityCurrent=iQuantity FROM #temp WHERE rowNo=@rowCurrent
  1058. PRINT(@rowCurrent)
  1059. IF @ItemCode<>@ItemCodeCurrent
  1060. BEGIN
  1061. SET @ItemCode=@ItemCodeCurrent
  1062. SET @QTY=0
  1063. SET @CanDelete=0
  1064. END
  1065. IF @CanDelete=1
  1066. BEGIN
  1067. DELETE FROM #temp WHERE rowNo=@rowCurrent
  1068. SET @rowCurrent += 1
  1069. CONTINUE
  1070. END
  1071. SET @QTY += @QTYCurrent
  1072. IF @QTY>=@iQuantityCurrent
  1073. BEGIN
  1074. SET @CanDelete=1
  1075. END
  1076. SET @rowCurrent += 1
  1077. END
  1078. SELECT * FROM #temp
  1079. DROP TABLE #temp
  1080. ";
  1081. #endregion
  1082. string sqls = "";
  1083. if (Type == "1")
  1084. {
  1085. #region 工单备料sql
  1086. sqls = @" select
  1087. x.MergeID,
  1088. c.MOCode as Code,
  1089. a.InvCode,
  1090. b.InvName,
  1091. b.InvStd,
  1092. b.InvUnit,
  1093. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1094. a.WhCode,
  1095. a.ExtensionID
  1096. FROM
  1097. ICSMOPick a
  1098. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1099. inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  1100. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1101. WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  1102. GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  1103. #endregion
  1104. }
  1105. if (Type == "2")
  1106. {
  1107. #region 工单领料SQL
  1108. sqls = @" select
  1109. x.MergeID,
  1110. a.ApplyCode as Code,
  1111. a.InvCode,
  1112. b.InvName,
  1113. b.InvStd,
  1114. b.InvUnit,
  1115. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1116. a.WhCode,
  1117. a.ExtensionID
  1118. FROM
  1119. ICSMOApply a
  1120. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1121. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1122. WHERE x.SourceID in ({0}) AND a.WorkPoint = '{1}'
  1123. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  1124. #endregion
  1125. }
  1126. if (Type == "3")
  1127. {
  1128. #region 工单材料出库SQL
  1129. sqls = @" select
  1130. x.MergeID,
  1131. a.IssueCode as Code,
  1132. a.InvCode,
  1133. b.InvName,
  1134. b.InvStd,
  1135. b.InvUnit,
  1136. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1137. a.WhCode,
  1138. a.ExtensionID
  1139. FROM
  1140. ICSMOIssue a
  1141. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1142. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1143. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1144. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1145. #endregion
  1146. }
  1147. if (Type == "4")
  1148. {
  1149. #region 委外备料SQL
  1150. sqls = @" select
  1151. x.MergeID,
  1152. c.OOCode as Code,
  1153. a.InvCode,
  1154. b.InvName,
  1155. b.InvStd,
  1156. b.InvUnit,
  1157. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1158. a.WhCode,
  1159. a.ExtensionID
  1160. FROM
  1161. ICSOOPick a
  1162. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1163. left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  1164. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1165. WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  1166. GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID, x.MergeID";
  1167. #endregion
  1168. }
  1169. if (Type == "5")
  1170. {
  1171. #region 委外领料SQL
  1172. sqls = @" select
  1173. x.MergeID,
  1174. a.ApplyCode as Code,
  1175. a.InvCode,
  1176. b.InvName,
  1177. b.InvStd,
  1178. b.InvUnit,
  1179. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1180. a.WhCode,
  1181. a.ExtensionID
  1182. FROM
  1183. ICSOApply a
  1184. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1185. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1186. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  1187. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1188. #endregion
  1189. }
  1190. if (Type == "6")
  1191. {
  1192. #region 委外材料出库SQL
  1193. sqls = @" select
  1194. x.MergeID,
  1195. a.IssueCode as Code,
  1196. a.InvCode,
  1197. b.InvName,
  1198. b.InvStd,
  1199. b.InvUnit,
  1200. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1201. a.WhCode,
  1202. a.ExtensionID
  1203. FROM
  1204. ICSOIssue a
  1205. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1206. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1207. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1208. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1209. #endregion
  1210. }
  1211. if (Type == "7")
  1212. {
  1213. #region 销售发货SQL
  1214. sqls = @" select
  1215. x.MergeID,
  1216. a.SDNCode as Code,
  1217. a.InvCode,
  1218. b.InvName,
  1219. b.InvStd,
  1220. b.InvUnit,
  1221. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1222. a.WhCode,
  1223. a.ExtensionID
  1224. FROM
  1225. ICSSDN a
  1226. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1227. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1228. WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  1229. GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1230. #endregion
  1231. }
  1232. if (Type == "8")
  1233. {
  1234. #region 其它出库SQL
  1235. sqls = @" select
  1236. x.MergeID,
  1237. a.OutCode 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. ICSOtherOut a
  1247. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1248. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1249. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1250. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1251. #endregion
  1252. }
  1253. if (Type == "9")
  1254. {
  1255. #region 借用SQL
  1256. sqls = @" select
  1257. x.MergeID,
  1258. a.BrrowCode as Code,
  1259. a.InvCode,
  1260. b.InvName,
  1261. b.InvStd,
  1262. b.InvUnit,
  1263. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1264. a.WhCode,
  1265. a.ExtensionID
  1266. FROM
  1267. ICSBrrow a
  1268. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1269. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1270. WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  1271. GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1272. #endregion
  1273. }
  1274. if (Type == "10")
  1275. {
  1276. #region 物料调拨
  1277. sqls = @" select
  1278. x.MergeID,
  1279. a.TransferNO as Code,
  1280. a.InvCode,
  1281. b.InvName,
  1282. b.InvStd,
  1283. b.InvUnit,
  1284. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1285. a.FromWarehouseCode as WhCode,
  1286. a.ExtensionID
  1287. FROM
  1288. ICSTransfer a
  1289. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1290. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1291. WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  1292. GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID,x.MergeID";
  1293. #endregion
  1294. }
  1295. if (Type == "10")
  1296. {
  1297. #region 两步调出
  1298. sqls = @"select
  1299. x.MergeID,
  1300. a.OutCode as Code,
  1301. a.InvCode,
  1302. b.InvName,
  1303. b.InvStd,
  1304. b.InvUnit,
  1305. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1306. a.WHCode as WhCode,
  1307. a.ExtensionID
  1308. FROM
  1309. ICSOtherOut a
  1310. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1311. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1312. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1313. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1314. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID,x.MergeID";
  1315. #endregion
  1316. }
  1317. sqls = string.Format(sqls, string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(','), WorkPoint);
  1318. sql = string.Format(sql, sqls, WorkPoint);
  1319. DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  1320. DataTable dtCloned = table.Clone();
  1321. foreach (DataColumn col in dtCloned.Columns)
  1322. {
  1323. col.DataType = typeof(string);
  1324. }
  1325. foreach (DataRow row in table.Rows)
  1326. {
  1327. DataRow newrow = dtCloned.NewRow();
  1328. foreach (DataColumn column in dtCloned.Columns)
  1329. {
  1330. newrow[column.ColumnName] = row[column.ColumnName].ToString();
  1331. }
  1332. dtCloned.Rows.Add(newrow);
  1333. }
  1334. if (Invmes.Rows.Count > 0)
  1335. {
  1336. dtCloned.Merge(Invmes, false);
  1337. }
  1338. return dtCloned;
  1339. }
  1340. public string MergeMaterial(string keyValue,string Type)
  1341. {
  1342. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1343. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1344. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1345. string msg = "";
  1346. string sql = string.Empty;
  1347. keyValue = keyValue.TrimEnd(',');
  1348. DateTime time = DateTime.Now;
  1349. string Tday = time.ToString("yyyyMMdd");
  1350. string sqls = string.Format(@"SELECT MAX(A.SourceID) AS SourceID FROM ICSMOPickMerge A WHERE A.SourceID LIKE '{0}%' AND LEN(a.SourceID) = 13", Tday);
  1351. DataSet ds = SqlHelper.GetDataSetBySql(sqls);
  1352. string MergeID = "";
  1353. Int64 Merge_ID = 0;
  1354. DataTable dts = ds.Tables[0];
  1355. if (dts != null && dts.Rows.Count > 0)
  1356. {
  1357. string lot = dts.Rows[0]["SourceID"].ToString();
  1358. if (!string.IsNullOrWhiteSpace(lot))
  1359. Merge_ID = Convert.ToInt64(lot.Substring(lot.Length - 5));
  1360. }
  1361. MergeID = Tday + (Merge_ID + 1).ToString().PadLeft(5, '0');
  1362. if (Type == "1")//工单备料
  1363. {
  1364. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1365. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1366. select NEWID(),'{0}',b.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1367. from ICSMO a inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  1368. where a.MOCode in ({5})
  1369. ";
  1370. }
  1371. if (Type == "2")//工单发料
  1372. {
  1373. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1374. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1375. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1376. from ICSMOApply a
  1377. where a.ApplyCode in ({5})";
  1378. }
  1379. if (Type == "3")//材料出库
  1380. {
  1381. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1382. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1383. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1384. from ICSMOIssue a
  1385. where a.IssueCode in ({5}) ";
  1386. }
  1387. if (Type == "4")//委外备料
  1388. {
  1389. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1390. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1391. select NEWID(),'{0}',b.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1392. from ICSOutsourcingOrder a inner join ICSOOPick b on a.OODetailID=b.OODetailID and b.WorkPoint=a.WorkPoint
  1393. where a.OOCode in ({5})";
  1394. }
  1395. if (Type == "5")//委外领料
  1396. {
  1397. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1398. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1399. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1400. from ICSOApply a
  1401. where a.ApplyCode in ({5})";
  1402. }
  1403. if (Type == "6")//委外材料出库
  1404. {
  1405. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1406. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1407. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1408. from ICSOIssue a
  1409. where a.IssueCode in ('{5}')";
  1410. }
  1411. if (Type == "7")//销售发货
  1412. {
  1413. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1414. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1415. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1416. from ICSOIssue a
  1417. where a.IssueCode in ({5})";
  1418. }
  1419. if (Type == "8")//其它出库
  1420. {
  1421. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1422. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1423. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1424. from ICSSDN a
  1425. where a.SDNCode in ({5})";
  1426. }
  1427. if (Type == "9")//借用单
  1428. {
  1429. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1430. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1431. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1432. from ICSOtherOut a
  1433. where a.OutCode in ({5})";
  1434. }
  1435. if (Type == "10")//物料调拨
  1436. {
  1437. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1438. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1439. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1440. from ICSTransfer a
  1441. where a.TransferNO in ({5})
  1442. ";
  1443. }
  1444. if (Type == "11")//两步调出
  1445. {
  1446. sql += @" INSERT INTO dbo.ICSMOPickMerge
  1447. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1448. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1449. from ICSOtherOut a
  1450. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1451. where a.OutCode in ({5})
  1452. ";
  1453. }
  1454. sql = string.Format(sql, MergeID, Type, MUSER, MUSERNAME, WorkPoint, keyValue);
  1455. try
  1456. {
  1457. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  1458. {
  1459. }
  1460. else
  1461. {
  1462. msg = "新增失败";
  1463. }
  1464. }
  1465. catch (Exception ex)
  1466. {
  1467. throw new Exception(ex.Message);
  1468. }
  1469. return msg;
  1470. }
  1471. public string CheckQty(string objArr)
  1472. {
  1473. objArr= objArr.TrimEnd(',');
  1474. string sql = @"select * from ICSMOPickMerge a
  1475. left join ICSMOPick b on a.SourceID=b.ID and a.WorkPoint=b.WorkPoint
  1476. left join ICSMO c on b.MODetailID=c.MODetailID and b.WorkPoint=c.WorkPoint
  1477. where MOCode in ({0})";
  1478. sql = string.Format(sql, objArr);
  1479. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1480. if (dt != null&&dt.Rows.Count>0)
  1481. {
  1482. return "1";
  1483. }
  1484. return "0";
  1485. }
  1486. }
  1487. }