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

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