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

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