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

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