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

3315 lines
175 KiB

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