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

1983 lines
98 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
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 = '2'");
  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. // ID = string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(',');
  728. // #region sql
  729. // string sql = @"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  730. // c.Code,
  731. // c.InvCode,
  732. // c.InvName,
  733. // c.InvStd,
  734. // c.InvUnit,
  735. // FLOOR(c.iQuantity) AS iQuantity,
  736. // d.WarehouseCode,
  737. // m.LotNO,
  738. // (case when m.LotNo is null then 0 else FLOOR(ISNULL(d.Quantity, 0)) end) AS QTY,
  739. // (case when m.LotNo is null then null else d.LocationCode end) AS LocationCode,
  740. // CONVERT(varchar(100),d.MTIME, 23) MTIME,
  741. // FLOOR(f.QTYTotal) QTYTotal INTO #temp
  742. // FROM
  743. // ({0}) c
  744. // LEFT JOIN ICSWareHouseLotInfo d ON c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode AND d.WorkPoint='{1}' AND d.Quantity>0
  745. // left join ICSInventoryLot m on d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint and c.ExtensionID=m.ExtensionID
  746. // 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
  747. //DECLARE @ItemCode VARCHAR(50),
  748. // @QTY DECIMAL(18,3),
  749. // @ItemCodeCurrent VARCHAR(50),
  750. // @Lotno VARCHAR(50),
  751. // @QTYCurrent DECIMAL(18,3),
  752. // @iQuantityCurrent DECIMAL(18,3),
  753. // @CanDelete BIT,
  754. // @Row INT,
  755. // @rowCurrent INT
  756. //SET @Row = @@rowcount
  757. //SET @rowCurrent=1
  758. //SET @CanDelete=0
  759. //SET @ItemCode=''
  760. //SET @Lotno = ''
  761. //WHILE @rowCurrent<=@Row
  762. // BEGIN
  763. // SELECT @ItemCodeCurrent=InvCode,@QTYCurrent=QTY,@iQuantityCurrent=iQuantity,@Lotno = Lotno FROM #temp WHERE rowNo=@rowCurrent
  764. //PRINT(@rowCurrent)
  765. // IF @ItemCode<>@ItemCodeCurrent
  766. // BEGIN
  767. // SET @ItemCode=@ItemCodeCurrent
  768. // SET @QTY=0
  769. // SET @CanDelete=0
  770. // END
  771. // IF @CanDelete=1
  772. // BEGIN
  773. // DELETE FROM #temp WHERE rowNo=@rowCurrent
  774. // SET @rowCurrent += 1
  775. // CONTINUE
  776. // END
  777. // SET @QTY += @QTYCurrent
  778. // IF @LotNo is null or @QTY>=@iQuantityCurrent
  779. // BEGIN
  780. // SET @CanDelete=1
  781. // END
  782. // SET @rowCurrent += 1
  783. // END
  784. //SELECT * FROM #temp
  785. //DROP TABLE #temp
  786. //";
  787. // #endregion
  788. // string sqls = "";
  789. // if (Type=="1")
  790. // {
  791. // #region 工单备料sql
  792. // sqls = @" SELECT
  793. // c.MOCode as Code,
  794. // a.InvCode,
  795. // b.InvName,
  796. // b.InvStd,
  797. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  798. // a.WhCode,
  799. // b.InvUnit,
  800. // a.ExtensionID
  801. // FROM
  802. // ICSMOPick a
  803. // inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  804. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  805. // WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  806. // GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  807. // #endregion
  808. // }
  809. // if (Type == "2")
  810. // {
  811. // return GetICSMOPickMergeByWorkorder(ID, WorkPoint);
  812. // }
  813. // if (Type=="3")
  814. // {
  815. // #region 工单材料出库SQL
  816. // sqls = @" select
  817. // a.IssueCode as Code,
  818. // a.InvCode,
  819. // b.InvName,
  820. // b.InvStd,
  821. // b.InvUnit,
  822. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  823. // a.WhCode,
  824. // a.ExtensionID
  825. // FROM
  826. // ICSMOIssue a
  827. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  828. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  829. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  830. // #endregion
  831. // }
  832. // if (Type=="4")
  833. // {
  834. // #region 委外备料SQL
  835. // sqls = @" select
  836. // c.OOCode as Code,
  837. // a.InvCode,
  838. // b.InvName,
  839. // b.InvStd,
  840. // b.InvUnit,
  841. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  842. // a.WhCode,
  843. // a.ExtensionID
  844. // FROM
  845. // ICSOOPick a
  846. // left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  847. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  848. // WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  849. // GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode, a.ExtensionID";
  850. // #endregion
  851. // }
  852. // if (Type=="5")
  853. // {
  854. // #region 委外领料SQL
  855. // sqls = @" select
  856. // a.ApplyCode as Code,
  857. // a.InvCode,
  858. // b.InvName,
  859. // b.InvStd,
  860. //b.InvUnit,
  861. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  862. // a.WhCode,
  863. // a.ExtensionID
  864. // FROM
  865. // ICSOApply a
  866. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  867. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  868. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  869. // #endregion
  870. // }
  871. // if (Type=="6")
  872. // {
  873. // #region 委外材料出库SQL
  874. // sqls = @" select
  875. // a.IssueCode as Code,
  876. // a.InvCode,
  877. // b.InvName,
  878. // b.InvStd,
  879. //b.InvUnit,
  880. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  881. // a.WhCode,
  882. //a.ExtensionID
  883. // FROM
  884. // ICSOIssue a
  885. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  886. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  887. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  888. // #endregion
  889. // }
  890. // if (Type=="7")
  891. // {
  892. // #region 销售发货SQL
  893. // sqls = @" select
  894. // a.SDNCode as Code,
  895. // a.InvCode,
  896. // b.InvName,
  897. // b.InvStd,
  898. //b.InvUnit,
  899. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  900. // a.WhCode,
  901. //a.ExtensionID
  902. // FROM
  903. // ICSSDN a
  904. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  905. // WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  906. // GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  907. // #endregion
  908. // }
  909. // if (Type=="8")
  910. // {
  911. // #region 其它出库SQL
  912. // sqls = @" select
  913. // a.OutCode as Code,
  914. // a.InvCode,
  915. // b.InvName,
  916. // b.InvStd,
  917. // b.InvUnit,
  918. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  919. // a.WhCode,
  920. // a.ExtensionID
  921. // FROM
  922. // ICSOtherOut a
  923. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  924. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  925. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  926. // #endregion
  927. // }
  928. // if (Type == "9")
  929. // {
  930. // #region 借用SQL
  931. // sqls = @"select
  932. // a.BrrowCode as Code,
  933. // a.InvCode,
  934. // b.InvName,
  935. // b.InvStd,
  936. //b.InvUnit,
  937. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  938. // a.WhCode,
  939. //a.ExtensionID
  940. // FROM
  941. // ICSBrrow a
  942. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  943. // WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  944. // GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  945. // #endregion
  946. // }
  947. // if (Type == "10")
  948. // {
  949. // #region 物料调拨
  950. // sqls = @" select
  951. // a.TransferNO as Code,
  952. // a.InvCode,
  953. // b.InvName,
  954. // b.InvStd,
  955. //b.InvUnit,
  956. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  957. // a.FromWarehouseCode as WhCode,
  958. //a.ExtensionID
  959. // FROM
  960. // ICSTransfer a
  961. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  962. // WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  963. // GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID";
  964. // #endregion
  965. // }
  966. // if (Type == "11")
  967. // {
  968. // #region 两步调出
  969. // sqls = @"select
  970. // a.OutCode as Code,
  971. // a.InvCode,
  972. // b.InvName,
  973. // b.InvStd,
  974. //b.InvUnit,
  975. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  976. // a.WHCode ,
  977. //a.ExtensionID
  978. // from ICSOtherOut a
  979. // INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  980. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  981. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  982. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID";
  983. // #endregion
  984. // }
  985. // sqls = string.Format(sqls, ID,WorkPoint);
  986. // sql = string.Format(sql, sqls, WorkPoint);
  987. // DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  988. // DataTable dtCloned = table.Clone();
  989. // foreach (DataColumn col in dtCloned.Columns)
  990. // {
  991. // col.DataType = typeof(string);
  992. // }
  993. // foreach (DataRow row in table.Rows)
  994. // {
  995. // DataRow newrow = dtCloned.NewRow();
  996. // foreach (DataColumn column in dtCloned.Columns)
  997. // {
  998. // newrow[column.ColumnName] = row[column.ColumnName].ToString();
  999. // }
  1000. // dtCloned.Rows.Add(newrow);
  1001. // }
  1002. // if (Invmes.Rows.Count > 0)
  1003. // {
  1004. // dtCloned.Merge(Invmes, false);
  1005. // }
  1006. // return dtCloned;
  1007. // }
  1008. public DataTable GetICSMOPickMergeTemp(string ID, string Type)
  1009. {
  1010. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1011. ID = string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(',');
  1012. #region sql
  1013. #endregion
  1014. string sqls = "";
  1015. if (Type == "1")
  1016. {
  1017. #region 工单备料sql
  1018. sqls = @" SELECT
  1019. c.MOCode as Code,
  1020. a.InvCode,
  1021. b.InvName,
  1022. b.InvStd,
  1023. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1024. a.WhCode,
  1025. b.InvUnit,
  1026. a.ExtensionID
  1027. FROM
  1028. ICSMOPick a
  1029. inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  1030. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1031. WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  1032. GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1033. #endregion
  1034. }
  1035. if (Type == "2")
  1036. {
  1037. return GetICSMOPickMergeByWorkorder(ID, WorkPoint);
  1038. }
  1039. if (Type == "3")
  1040. {
  1041. #region 工单材料出库SQL
  1042. sqls = @" select
  1043. a.IssueCode as Code,
  1044. a.InvCode,
  1045. b.InvName,
  1046. b.InvStd,
  1047. b.InvUnit,
  1048. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1049. a.WhCode,
  1050. a.ExtensionID
  1051. FROM
  1052. ICSMOIssue a
  1053. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1054. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1055. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1056. #endregion
  1057. }
  1058. if (Type == "4")
  1059. {
  1060. #region 委外备料SQL
  1061. sqls = @" select
  1062. c.OOCode as Code,
  1063. a.InvCode,
  1064. b.InvName,
  1065. b.InvStd,
  1066. b.InvUnit,
  1067. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1068. a.WhCode,
  1069. a.ExtensionID
  1070. FROM
  1071. ICSOOPick a
  1072. left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  1073. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1074. WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  1075. GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode, a.ExtensionID";
  1076. #endregion
  1077. }
  1078. if (Type == "5")
  1079. {
  1080. #region 委外领料SQL
  1081. sqls = @"select
  1082. a.ApplyCode as Code,
  1083. a.InvCode,
  1084. b.InvName,
  1085. b.InvStd,
  1086. b.InvUnit,
  1087. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1088. a.WhCode,a.ExtensionID
  1089. FROM
  1090. ICSOApply a
  1091. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1092. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  1093. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1094. #endregion
  1095. }
  1096. if (Type == "6")
  1097. {
  1098. #region 委外材料出库SQL
  1099. sqls = @" select
  1100. a.IssueCode as Code,
  1101. a.InvCode,
  1102. b.InvName,
  1103. b.InvStd,
  1104. b.InvUnit,
  1105. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1106. a.WhCode,
  1107. a.ExtensionID
  1108. FROM
  1109. ICSOIssue a
  1110. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1111. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1112. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1113. #endregion
  1114. }
  1115. if (Type == "7")
  1116. {
  1117. #region 销售发货SQL
  1118. sqls = @" select
  1119. a.SDNCode as Code,
  1120. a.InvCode,
  1121. b.InvName,
  1122. b.InvStd,
  1123. b.InvUnit,
  1124. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1125. a.WhCode,
  1126. a.ExtensionID
  1127. FROM
  1128. ICSSDN a
  1129. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1130. WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  1131. GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1132. #endregion
  1133. }
  1134. if (Type == "8")
  1135. {
  1136. #region 其它出库SQL
  1137. sqls = @" select
  1138. a.OutCode as Code,
  1139. a.InvCode,
  1140. b.InvName,
  1141. b.InvStd,
  1142. b.InvUnit,
  1143. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1144. a.WhCode,
  1145. a.ExtensionID
  1146. FROM
  1147. ICSOtherOut a
  1148. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1149. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1150. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1151. #endregion
  1152. }
  1153. if (Type == "9")
  1154. {
  1155. #region 借用SQL
  1156. sqls = @"select
  1157. a.BrrowCode as Code,
  1158. a.InvCode,
  1159. b.InvName,
  1160. b.InvStd,
  1161. b.InvUnit,
  1162. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1163. a.WhCode,
  1164. a.ExtensionID
  1165. FROM
  1166. ICSBrrow a
  1167. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1168. WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  1169. GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1170. #endregion
  1171. }
  1172. if (Type == "10")
  1173. {
  1174. #region 物料调拨
  1175. sqls = @"select
  1176. a.TransferNO as Code,
  1177. a.InvCode,
  1178. b.InvName,
  1179. b.InvStd,
  1180. b.InvUnit,
  1181. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1182. a.FromWarehouseCode as WhCode,
  1183. a.ExtensionID
  1184. FROM
  1185. ICSTransfer a
  1186. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1187. WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  1188. GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID";
  1189. #endregion
  1190. }
  1191. if (Type == "11")
  1192. {
  1193. #region 两步调出
  1194. sqls = @"select
  1195. a.OutCode 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 ICSOtherOut a
  1204. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1205. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1206. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1207. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID";
  1208. #endregion
  1209. }
  1210. sqls = string.Format(sqls, ID, WorkPoint);
  1211. string sql = $@"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  1212. c.Code,
  1213. c.InvCode,
  1214. c.InvName,
  1215. c.InvStd,
  1216. c.InvUnit,
  1217. FLOOR(c.iQuantity) AS iQuantity,
  1218. d.WarehouseCode,
  1219. d.LotNO,
  1220. FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  1221. d.LocationCode AS LocationCode,
  1222. CONVERT(varchar(100),d.MTIME, 23) MTIME,
  1223. FLOOR(f.QTYTotal) QTYTotal
  1224. FROM
  1225. ({sqls}) c
  1226. left join (select d.WarehouseCode,d.Quantity,d.INVCode, m.LotNo, d.MTIME,d.LocationCode,m.ExtensionID
  1227. from ICSWareHouseLotInfo d ,ICSInventoryLot m
  1228. where d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint
  1229. and d.WorkPoint='{WorkPoint}' AND d.Quantity>0 ) d
  1230. on c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode and d.ExtensionID=c.ExtensionID
  1231. 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
  1232. order by c.Code,c.InvCode,d.MTIME ";
  1233. var dataset = Repository().FindDataSetBySql(sql);
  1234. if (dataset.Tables.Count == 0)
  1235. return null;
  1236. DataTable table = dataset.Tables[0];
  1237. decimal qtyCount = 0;
  1238. bool remove = false;
  1239. List<int> removeList = new List<int>();
  1240. for (int i = 0; i < table.Rows.Count; i++)
  1241. {
  1242. if (i != 0
  1243. && !table.Rows[i]["InvCode"].ToString().Equals(table.Rows[i - 1]["InvCode"].ToString()))
  1244. {
  1245. qtyCount = 0;
  1246. remove = false;
  1247. }
  1248. if (remove)
  1249. {
  1250. removeList.Add(i);
  1251. }
  1252. else
  1253. {
  1254. var lotQty = table.Rows[i]["QTY"].ToString().ToDecimal();
  1255. var orderQty = table.Rows[i]["iQuantity"].ToString().ToDecimal();
  1256. qtyCount += lotQty;
  1257. if (qtyCount >= orderQty)
  1258. {
  1259. remove = true;
  1260. }
  1261. }
  1262. }
  1263. if (removeList.Count > 0)
  1264. {
  1265. removeList.Reverse();
  1266. foreach (var item in removeList)
  1267. {
  1268. table.Rows.RemoveAt(item);
  1269. }
  1270. }
  1271. var result = ConvertCellToString(table);
  1272. if (Invmes.Rows.Count > 0)
  1273. {
  1274. result.Merge(Invmes, false);
  1275. }
  1276. return result;
  1277. }
  1278. /// <summary>
  1279. /// 工单领料推荐
  1280. /// </summary>
  1281. /// <param name="Id"></param>
  1282. /// <param name="workPoint"></param>
  1283. /// <returns></returns>
  1284. public DataTable GetICSMOPickMergeByWorkorder(string Id,string workPoint)
  1285. {
  1286. string sql = $@"SELECT row_number() over (partition by c.Code,c.InvCode order by c.Code,c.InvCode,d.MTIME) AS rowNo,
  1287. c.Code,
  1288. c.InvCode,
  1289. c.InvName,
  1290. c.InvStd,
  1291. c.InvUnit,
  1292. FLOOR(c.iQuantity) AS iQuantity,
  1293. d.WarehouseCode,
  1294. d.LotNO,
  1295. FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  1296. d.LocationCode LocationCode,
  1297. CONVERT(varchar(100),d.MTIME, 23) MTIME,
  1298. FLOOR(f.QTYTotal) QTYTotal
  1299. FROM
  1300. (select
  1301. a.ApplyCode as Code, a.InvCode, b.InvName, b.InvStd, b.InvUnit, SUM(ISNULL(a.Quantity, 0)) AS iQuantity, a.WhCode,a.ExtensionID
  1302. FROM
  1303. ICSMOApply a
  1304. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1305. WHERE a.ApplyCode in ({Id}) AND a.WorkPoint = '{workPoint}'
  1306. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID) c
  1307. left join (select d.WarehouseCode,d.Quantity,d.INVCode, m.LotNo, d.MTIME,d.LocationCode,m.ExtensionID from ICSWareHouseLotInfo d ,ICSInventoryLot m
  1308. where d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint
  1309. and d.WorkPoint='{workPoint}' AND d.Quantity>0 ) d on c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode and d.ExtensionID=c.ExtensionID
  1310. 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
  1311. order by c.Code,c.InvCode,d.MTIME";
  1312. var dataset = Repository().FindDataSetBySql(sql);
  1313. if (dataset.Tables.Count == 0)
  1314. return null;
  1315. DataTable table = dataset.Tables[0];
  1316. decimal qtyCount = 0;
  1317. bool remove = false;
  1318. List<int> removeList = new List<int>();
  1319. for (int i = 0; i < table.Rows.Count; i++)
  1320. {
  1321. if(i != 0
  1322. && !table.Rows[i]["InvCode"].ToString().Equals(table.Rows[i-1]["InvCode"].ToString()))
  1323. {
  1324. qtyCount = 0;
  1325. remove = false;
  1326. }
  1327. if (remove)
  1328. {
  1329. removeList.Add(i);
  1330. }
  1331. else
  1332. {
  1333. var lotQty = table.Rows[i]["QTY"].ToString().ToDecimal();
  1334. var orderQty = table.Rows[i]["iQuantity"].ToString().ToDecimal();
  1335. qtyCount += lotQty;
  1336. if (qtyCount >= orderQty)
  1337. {
  1338. remove = true;
  1339. }
  1340. }
  1341. }
  1342. if(removeList.Count > 0)
  1343. {
  1344. removeList.Reverse();
  1345. foreach (var item in removeList)
  1346. {
  1347. table.Rows.RemoveAt(item);
  1348. }
  1349. }
  1350. var result = ConvertCellToString(table);
  1351. if (Invmes.Rows.Count > 0)
  1352. {
  1353. result.Merge(Invmes, false);
  1354. }
  1355. return result;
  1356. }
  1357. public DataTable ConvertCellToString(DataTable data)
  1358. {
  1359. DataTable dtCloned = data.Clone();
  1360. foreach (DataColumn col in dtCloned.Columns)
  1361. {
  1362. col.DataType = typeof(string);
  1363. }
  1364. foreach (DataRow row in data.Rows)
  1365. {
  1366. DataRow newrow = dtCloned.NewRow();
  1367. foreach (DataColumn column in dtCloned.Columns)
  1368. {
  1369. newrow[column.ColumnName] = row[column.ColumnName].ToString();
  1370. }
  1371. dtCloned.Rows.Add(newrow);
  1372. }
  1373. return dtCloned;
  1374. }
  1375. public DataTable GetICSMOPickMergeTemp2(string ID, string Type)
  1376. {
  1377. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1378. #region sql
  1379. string sql = @"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  1380. c.MergeID,
  1381. c.Code,
  1382. c.InvCode,
  1383. c.InvName,
  1384. c.InvStd,
  1385. c.InvUnit,
  1386. FLOOR(c.iQuantity) AS iQuantity,
  1387. d.WarehouseCode,
  1388. d.LocationCode,
  1389. d.LotNO,
  1390. FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  1391. CONVERT(varchar(100),d.MTIME, 23) MTIME,
  1392. FLOOR(f.QTYTotal) QTYTotal INTO #temp
  1393. FROM
  1394. ({0}) c
  1395. LEFT JOIN ICSWareHouseLotInfo d ON c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode AND d.WorkPoint='{1}' AND d.Quantity>0
  1396. left join ICSInventoryLot m on d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint and c.ExtensionID=m.ExtensionID
  1397. 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
  1398. DECLARE @ItemCode VARCHAR(50),
  1399. @QTY DECIMAL(18,3),
  1400. @ItemCodeCurrent VARCHAR(50),
  1401. @QTYCurrent DECIMAL(18,3),
  1402. @iQuantityCurrent DECIMAL(18,3),
  1403. @CanDelete BIT,
  1404. @Row INT,
  1405. @rowCurrent INT
  1406. SET @Row = @@rowcount
  1407. SET @rowCurrent=1
  1408. SET @CanDelete=0
  1409. SET @ItemCode=''
  1410. WHILE @rowCurrent<=@Row
  1411. BEGIN
  1412. SELECT @ItemCodeCurrent=InvCode,@QTYCurrent=QTY,@iQuantityCurrent=iQuantity FROM #temp WHERE rowNo=@rowCurrent
  1413. PRINT(@rowCurrent)
  1414. IF @ItemCode<>@ItemCodeCurrent
  1415. BEGIN
  1416. SET @ItemCode=@ItemCodeCurrent
  1417. SET @QTY=0
  1418. SET @CanDelete=0
  1419. END
  1420. IF @CanDelete=1
  1421. BEGIN
  1422. DELETE FROM #temp WHERE rowNo=@rowCurrent
  1423. SET @rowCurrent += 1
  1424. CONTINUE
  1425. END
  1426. SET @QTY += @QTYCurrent
  1427. IF @QTY>=@iQuantityCurrent
  1428. BEGIN
  1429. SET @CanDelete=1
  1430. END
  1431. SET @rowCurrent += 1
  1432. END
  1433. SELECT * FROM #temp
  1434. DROP TABLE #temp
  1435. ";
  1436. #endregion
  1437. string sqls = "";
  1438. if (Type == "1")
  1439. {
  1440. #region 工单备料sql
  1441. sqls = @" select
  1442. x.MergeID,
  1443. c.MOCode as Code,
  1444. a.InvCode,
  1445. b.InvName,
  1446. b.InvStd,
  1447. b.InvUnit,
  1448. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1449. a.WhCode,
  1450. a.ExtensionID
  1451. FROM
  1452. ICSMOPick a
  1453. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1454. inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  1455. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1456. WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  1457. GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  1458. #endregion
  1459. }
  1460. if (Type == "2")
  1461. {
  1462. #region 工单领料SQL
  1463. sqls = @" select
  1464. x.MergeID,
  1465. a.ApplyCode as Code,
  1466. a.InvCode,
  1467. b.InvName,
  1468. b.InvStd,
  1469. b.InvUnit,
  1470. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1471. a.WhCode,
  1472. a.ExtensionID
  1473. FROM
  1474. ICSMOApply a
  1475. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1476. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1477. WHERE x.SourceID in ({0}) AND a.WorkPoint = '{1}'
  1478. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  1479. #endregion
  1480. }
  1481. if (Type == "3")
  1482. {
  1483. #region 工单材料出库SQL
  1484. sqls = @" select
  1485. x.MergeID,
  1486. a.IssueCode as Code,
  1487. a.InvCode,
  1488. b.InvName,
  1489. b.InvStd,
  1490. b.InvUnit,
  1491. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1492. a.WhCode,
  1493. a.ExtensionID
  1494. FROM
  1495. ICSMOIssue a
  1496. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1497. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1498. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1499. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1500. #endregion
  1501. }
  1502. if (Type == "4")
  1503. {
  1504. #region 委外备料SQL
  1505. sqls = @" select
  1506. x.MergeID,
  1507. c.OOCode as Code,
  1508. a.InvCode,
  1509. b.InvName,
  1510. b.InvStd,
  1511. b.InvUnit,
  1512. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1513. a.WhCode,
  1514. a.ExtensionID
  1515. FROM
  1516. ICSOOPick a
  1517. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1518. left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  1519. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1520. WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  1521. GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID, x.MergeID";
  1522. #endregion
  1523. }
  1524. if (Type == "5")
  1525. {
  1526. #region 委外领料SQL
  1527. sqls = @" select
  1528. x.MergeID,
  1529. a.ApplyCode as Code,
  1530. a.InvCode,
  1531. b.InvName,
  1532. b.InvStd,
  1533. b.InvUnit,
  1534. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1535. a.WhCode,
  1536. a.ExtensionID
  1537. FROM
  1538. ICSOApply a
  1539. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1540. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1541. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  1542. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1543. #endregion
  1544. }
  1545. if (Type == "6")
  1546. {
  1547. #region 委外材料出库SQL
  1548. sqls = @" select
  1549. x.MergeID,
  1550. a.IssueCode as Code,
  1551. a.InvCode,
  1552. b.InvName,
  1553. b.InvStd,
  1554. b.InvUnit,
  1555. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1556. a.WhCode,
  1557. a.ExtensionID
  1558. FROM
  1559. ICSOIssue a
  1560. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1561. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1562. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1563. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1564. #endregion
  1565. }
  1566. if (Type == "7")
  1567. {
  1568. #region 销售发货SQL
  1569. sqls = @" select
  1570. x.MergeID,
  1571. a.SDNCode as Code,
  1572. a.InvCode,
  1573. b.InvName,
  1574. b.InvStd,
  1575. b.InvUnit,
  1576. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1577. a.WhCode,
  1578. a.ExtensionID
  1579. FROM
  1580. ICSSDN a
  1581. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1582. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1583. WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  1584. GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1585. #endregion
  1586. }
  1587. if (Type == "8")
  1588. {
  1589. #region 其它出库SQL
  1590. sqls = @" select
  1591. x.MergeID,
  1592. a.OutCode as Code,
  1593. a.InvCode,
  1594. b.InvName,
  1595. b.InvStd,
  1596. b.InvUnit,
  1597. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1598. a.WhCode,
  1599. a.ExtensionID
  1600. FROM
  1601. ICSOtherOut a
  1602. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1603. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1604. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1605. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1606. #endregion
  1607. }
  1608. if (Type == "9")
  1609. {
  1610. #region 借用SQL
  1611. sqls = @" select
  1612. x.MergeID,
  1613. a.BrrowCode as Code,
  1614. a.InvCode,
  1615. b.InvName,
  1616. b.InvStd,
  1617. b.InvUnit,
  1618. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1619. a.WhCode,
  1620. a.ExtensionID
  1621. FROM
  1622. ICSBrrow a
  1623. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1624. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1625. WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  1626. GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1627. #endregion
  1628. }
  1629. if (Type == "10")
  1630. {
  1631. #region 物料调拨
  1632. sqls = @" select
  1633. x.MergeID,
  1634. a.TransferNO as Code,
  1635. a.InvCode,
  1636. b.InvName,
  1637. b.InvStd,
  1638. b.InvUnit,
  1639. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1640. a.FromWarehouseCode as WhCode,
  1641. a.ExtensionID
  1642. FROM
  1643. ICSTransfer a
  1644. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1645. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1646. WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  1647. GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID,x.MergeID";
  1648. #endregion
  1649. }
  1650. if (Type == "10")
  1651. {
  1652. #region 两步调出
  1653. sqls = @"select
  1654. x.MergeID,
  1655. a.OutCode as Code,
  1656. a.InvCode,
  1657. b.InvName,
  1658. b.InvStd,
  1659. b.InvUnit,
  1660. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1661. a.WHCode as WhCode,
  1662. a.ExtensionID
  1663. FROM
  1664. ICSOtherOut a
  1665. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1666. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1667. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1668. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1669. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID,x.MergeID";
  1670. #endregion
  1671. }
  1672. sqls = string.Format(sqls, string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(','), WorkPoint);
  1673. sql = string.Format(sql, sqls, WorkPoint);
  1674. DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  1675. DataTable dtCloned = table.Clone();
  1676. foreach (DataColumn col in dtCloned.Columns)
  1677. {
  1678. col.DataType = typeof(string);
  1679. }
  1680. foreach (DataRow row in table.Rows)
  1681. {
  1682. DataRow newrow = dtCloned.NewRow();
  1683. foreach (DataColumn column in dtCloned.Columns)
  1684. {
  1685. newrow[column.ColumnName] = row[column.ColumnName].ToString();
  1686. }
  1687. dtCloned.Rows.Add(newrow);
  1688. }
  1689. if (Invmes.Rows.Count > 0)
  1690. {
  1691. dtCloned.Merge(Invmes, false);
  1692. }
  1693. return dtCloned;
  1694. }
  1695. public string MergeMaterial(string keyValue,string Type)
  1696. {
  1697. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1698. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1699. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1700. string msg = "";
  1701. string sql = string.Empty;
  1702. keyValue = keyValue.TrimEnd(',');
  1703. DateTime time = DateTime.Now;
  1704. string Tday = time.ToString("yyyyMMdd");
  1705. string sqls = string.Format(@"SELECT MAX(A.SourceID) AS SourceID FROM ICSMOPickMerge A WHERE A.SourceID LIKE '{0}%' AND LEN(a.SourceID) = 13", Tday);
  1706. DataSet ds = SqlHelper.GetDataSetBySql(sqls);
  1707. string MergeID = "";
  1708. Int64 Merge_ID = 0;
  1709. DataTable dts = ds.Tables[0];
  1710. if (dts != null && dts.Rows.Count > 0)
  1711. {
  1712. string lot = dts.Rows[0]["SourceID"].ToString();
  1713. if (!string.IsNullOrWhiteSpace(lot))
  1714. Merge_ID = Convert.ToInt64(lot.Substring(lot.Length - 5));
  1715. }
  1716. MergeID = Tday + (Merge_ID + 1).ToString().PadLeft(5, '0');
  1717. if (Type == "1")//工单备料
  1718. {
  1719. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1720. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1721. select NEWID(),'{0}',b.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1722. from ICSMO a inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  1723. where a.MOCode in ({5})
  1724. ";
  1725. }
  1726. if (Type == "2")//工单发料
  1727. {
  1728. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1729. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1730. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1731. from ICSMOApply a
  1732. where a.ApplyCode in ({5})";
  1733. }
  1734. if (Type == "3")//材料出库
  1735. {
  1736. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1737. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1738. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1739. from ICSMOIssue a
  1740. where a.IssueCode in ({5}) ";
  1741. }
  1742. if (Type == "4")//委外备料
  1743. {
  1744. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1745. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1746. select NEWID(),'{0}',b.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1747. from ICSOutsourcingOrder a inner join ICSOOPick b on a.OODetailID=b.OODetailID and b.WorkPoint=a.WorkPoint
  1748. where a.OOCode in ({5})";
  1749. }
  1750. if (Type == "5")//委外领料
  1751. {
  1752. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1753. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1754. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1755. from ICSOApply a
  1756. where a.ApplyCode in ({5})";
  1757. }
  1758. if (Type == "6")//委外材料出库
  1759. {
  1760. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1761. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1762. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1763. from ICSOIssue a
  1764. where a.IssueCode in ('{5}')";
  1765. }
  1766. if (Type == "7")//销售发货
  1767. {
  1768. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1769. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1770. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1771. from ICSOIssue a
  1772. where a.IssueCode in ({5})";
  1773. }
  1774. if (Type == "8")//其它出库
  1775. {
  1776. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1777. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1778. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1779. from ICSSDN a
  1780. where a.SDNCode in ({5})";
  1781. }
  1782. if (Type == "9")//借用单
  1783. {
  1784. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1785. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1786. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1787. from ICSOtherOut a
  1788. where a.OutCode in ({5})";
  1789. }
  1790. if (Type == "10")//物料调拨
  1791. {
  1792. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1793. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1794. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1795. from ICSTransfer a
  1796. where a.TransferNO in ({5})
  1797. ";
  1798. }
  1799. if (Type == "11")//两步调出
  1800. {
  1801. sql += @" INSERT INTO dbo.ICSMOPickMerge
  1802. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1803. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1804. from ICSOtherOut a
  1805. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1806. where a.OutCode in ({5})
  1807. ";
  1808. }
  1809. sql = string.Format(sql, MergeID, Type, MUSER, MUSERNAME, WorkPoint, keyValue);
  1810. try
  1811. {
  1812. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  1813. {
  1814. }
  1815. else
  1816. {
  1817. msg = "新增失败";
  1818. }
  1819. }
  1820. catch (Exception ex)
  1821. {
  1822. throw new Exception(ex.Message);
  1823. }
  1824. return msg;
  1825. }
  1826. public string CheckQty(string objArr)
  1827. {
  1828. objArr= objArr.TrimEnd(',');
  1829. string sql = @"select * from ICSMOPickMerge a
  1830. left join ICSMOPick b on a.SourceID=b.ID and a.WorkPoint=b.WorkPoint
  1831. left join ICSMO c on b.MODetailID=c.MODetailID and b.WorkPoint=c.WorkPoint
  1832. where MOCode in ({0})";
  1833. sql = string.Format(sql, objArr);
  1834. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1835. if (dt != null&&dt.Rows.Count>0)
  1836. {
  1837. return "1";
  1838. }
  1839. return "0";
  1840. }
  1841. }
  1842. }