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

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