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

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