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

3179 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
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
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]["Code"].ToString().Equals(table.Rows[i - 1]["Code"].ToString())
  1742. || !table.Rows[i]["ExtensionID"].ToString().Equals(table.Rows[i - 1]["ExtensionID"].ToString()))
  1743. )
  1744. {
  1745. qtyCount = 0;
  1746. remove = false;
  1747. }
  1748. if (table.Rows[i]["QTYLeft"].ToString().ToDecimal() == 0)
  1749. {
  1750. removeList.Add(i);
  1751. continue;
  1752. }
  1753. if (remove)
  1754. {
  1755. removeList.Add(i);
  1756. }
  1757. else
  1758. {
  1759. var lotQty = table.Rows[i]["QTYLeft"].ToString().ToDecimal();
  1760. var orderQty = table.Rows[i]["iQuantity"].ToString().ToDecimal();
  1761. qtyCount += lotQty;
  1762. foreach (DataRow dr in table.Rows)
  1763. {
  1764. if (dr["LotNO"].ToString() == table.Rows[i]["LotNO"].ToString())
  1765. {
  1766. if (qtyCount > orderQty)
  1767. {
  1768. dr["QTYLeft"] = Convert.ToDecimal(qtyCount) - Convert.ToDecimal(orderQty);
  1769. }
  1770. else
  1771. {
  1772. dr["QTYLeft"] = 0;
  1773. }
  1774. }
  1775. }
  1776. if (qtyCount >= orderQty)
  1777. {
  1778. table.Rows[i]["SendQTY"] = Convert.ToDecimal(lotQty) - (Convert.ToDecimal(qtyCount) - Convert.ToDecimal(orderQty));
  1779. remove = true;
  1780. }
  1781. else
  1782. {
  1783. table.Rows[i]["SendQTY"] = lotQty;
  1784. }
  1785. }
  1786. }
  1787. if (removeList.Count > 0)
  1788. {
  1789. removeList.Reverse();
  1790. foreach (var item in removeList)
  1791. {
  1792. table.Rows.RemoveAt(item);
  1793. }
  1794. }
  1795. #region 拣料时增加条码出入库记录,修改库存锁定数量,以作占料处理
  1796. string BusinessCode = string.Empty;
  1797. string TransType = "";
  1798. if (Type == "2") { BusinessCode = "13"; TransType = "生产发料-生产订单备料表"; }
  1799. if (Type == "12") { BusinessCode = "14"; TransType = "生产发料-领料申请单"; }
  1800. if (Type == "5") { BusinessCode = "6"; TransType = "委外发料-委外领料申请单"; }
  1801. if (Type == "7") { BusinessCode = "19"; TransType = "销售发货-销售发货单"; }
  1802. if (Type == "8") { BusinessCode = "24"; TransType = "杂发"; }
  1803. if (Type == "10") { BusinessCode = "47"; TransType = "调拨申请单"; }
  1804. string Identification = Guid.NewGuid().ToString();
  1805. var pikTbLogTime = DateTime.Now;
  1806. string pikTbLogsql = string.Empty;
  1807. List<string> DocNoList = new List<string>();
  1808. string InspectJosn = "";
  1809. string InspectJosnHead = "";
  1810. string InspectJosnBody = "";
  1811. InspectJosn += "{";
  1812. InspectJosn += "\"IMP_ORDINI\":[";
  1813. InspectJosn += "货柜主表区域预留";
  1814. InspectJosn += "],";
  1815. InspectJosn += "\"IMP_ORDINI_RIGHE\":[";
  1816. InspectJosn += "货柜子表区域预留";
  1817. InspectJosn += "]";
  1818. InspectJosn += "}";
  1819. foreach (DataRow PickLog in table.Rows)
  1820. {
  1821. string hgsql = @"select A.InvCode,A.LocationCode,B.F_Define3,C.LocationCode AS Area
  1822. from ICSWareHouseLotInfo A
  1823. INNER JOIN Sys_SRM_ItemsDetail B ON B.F_Define2=A.LocationCode AND F_Define4=A.WorkPoint AND F_ItemName='HG_Location'
  1824. INNER JOIN ICSInventoryDetail C ON C.INVCode=A.InvCode AND C.WHCode=A.WarehouseCode AND C.WorkPoint=A.WorkPoint
  1825. where A.LotNo='{0}' AND A.WorkPoint='{1}'";
  1826. hgsql = string.Format(hgsql, PickLog["LotNO"].ToString(), WorkPoint);
  1827. var hgds = Repository().FindDataSetBySql(hgsql);
  1828. if (hgds.Tables.Count == 0)
  1829. return null;
  1830. DataTable hgtable = hgds.Tables[0];
  1831. if (hgtable.Rows.Count > 0)
  1832. {
  1833. if (!DocNoList.Contains(PickLog["Code"].ToString()))
  1834. {
  1835. DocNoList.Add(PickLog["Code"].ToString());
  1836. }
  1837. InspectJosnBody += "{";
  1838. InspectJosnBody += "\"RIG_ORDINE\":\"" + PickLog["Code"].ToString() + "\",";
  1839. InspectJosnBody += "\"RIG_ARTICOLO\": \"" + hgtable.Rows[0]["InvCode"].ToString() + "\",";
  1840. InspectJosnBody += "\"RIG_SUB1\": \"\",";
  1841. InspectJosnBody += "\"RIG_SUB2\": \"\",";
  1842. InspectJosnBody += "\"RIG_ELERUOLI_GEST\": \"" + hgtable.Rows[0]["Area"].ToString() + "\",";
  1843. InspectJosnBody += "\"RIG_ELEBAIE\": \"" + hgtable.Rows[0]["F_Define3"].ToString() + "\",";
  1844. InspectJosnBody += "\"RIG_QTAR\": " + PickLog["SendQTY"].ToString() + ",";
  1845. InspectJosnBody += "\"RIG_HOSTINF\": \"" + PickLog["Sequence"].ToString() + "\"";
  1846. InspectJosnBody += "},";
  1847. }
  1848. }
  1849. InspectJosnBody.TrimEnd(',');
  1850. foreach (string DocNo in DocNoList)
  1851. {
  1852. InspectJosnHead += "{";
  1853. InspectJosnHead += "\"ORD_ORDINE\":\"" + DocNo.TrimStart('\'').TrimEnd('\'') + "\",";
  1854. InspectJosnHead += "\"ORD_DES\":\"" + TransType + "\",";
  1855. InspectJosnHead += "\"ORD_TIPOOP\":\"P\",";
  1856. InspectJosnHead += "\"ORD_CLIENTE\":\"" + WorkPoint + "\"";
  1857. InspectJosnHead += "},";
  1858. }
  1859. InspectJosnHead.TrimEnd(',');
  1860. if (InspectJosnBody != "")
  1861. {
  1862. InspectJosn = InspectJosn.Replace("货柜主表区域预留", InspectJosnHead);
  1863. InspectJosn = InspectJosn.Replace("货柜子表区域预留", InspectJosnBody);
  1864. if (Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["UploadERP"]))
  1865. {
  1866. string callresult = "";
  1867. #region 货柜接口调用前日志
  1868. object logID = Guid.NewGuid();
  1869. string logsql = @"insert into ICSWMS_HGLog
  1870. values
  1871. ('{0}',GETDATE(),'{1}','{2}','{3}','{4}','{5}')";
  1872. logsql = string.Format(logsql, logID, InspectJosn, "", WorkPoint, MUSER, MUSERNAME);
  1873. SqlHelper.CmdExecuteNonQueryLi(logsql);
  1874. #endregion
  1875. callresult = HTTPHelper.RestFulGet(InspectJosn, postUrlStr);
  1876. #region 货柜接口调用后日志
  1877. logsql = @"update ICSWMS_HGLog set ReturnResult='{0}'
  1878. where ID='{1}'";
  1879. logsql = string.Format(logsql, callresult, logID);
  1880. SqlHelper.CmdExecuteNonQueryLi(logsql);
  1881. #endregion
  1882. if (!callresult.Contains("successo"))
  1883. {
  1884. ICSHGResult hgresult = JsonConvert.DeserializeObject<ICSHGResult>(callresult.TrimStart('[').TrimEnd(']'));
  1885. throw new Exception("货柜单据传输接口调用报错,主要报错信息:" + hgresult.PrimaryError + ",次要报错信息:" + hgresult.SecondaryError + "");
  1886. }
  1887. }
  1888. }
  1889. foreach (DataRow PickLog in table.Rows)
  1890. {
  1891. pikTbLogsql += @"INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  1892. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  1893. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  1894. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  1895. MTIME,WorkPoint,EATTRIBUTE1)
  1896. SELECT NEWID(),'{0}','{1}','{2}',a.LotNo ,a.InvCode ,
  1897. a.WarehouseCode,a.LocationCode,'','','{3}',
  1898. '','1','15','{4}','0','',
  1899. '','','','{5}' ,'{6}' ,
  1900. '{7}' ,'{8}' ,''
  1901. FROM ICSWareHouseLotInfo a
  1902. WHERE a.LotNo='{9}' AND a.WorkPoint='{8}' ";
  1903. pikTbLogsql += @"update ICSWareHouseLotInfo set LockQuantity=LockQuantity+'{3}' where LotNo='{9}' ";
  1904. pikTbLogsql = string.Format(pikTbLogsql, Identification, PickLog["Code"].ToString(), PickLog["Sequence"].ToString(), PickLog["SendQTY"].ToString(), BusinessCode, MUSER, MUSERNAME, pikTbLogTime, WorkPoint, PickLog["LotNO"].ToString());
  1905. }
  1906. SqlHelper.CmdExecuteNonQueryLi(pikTbLogsql);
  1907. #endregion
  1908. #region 将拣料结果存入表中,以人员区分,每次存入之前清空对应人员存入的数据
  1909. string picksql = @"delete from ICSPickPrintTemp
  1910. where MUSER='{0}' AND WorkPoint='{1}'";
  1911. picksql = string.Format(picksql, MUSER, WorkPoint);
  1912. SqlHelper.ExecuteNonQuery(picksql);
  1913. picksql = "";
  1914. foreach (DataRow pickdr in table.Rows)
  1915. {
  1916. picksql += @" INSERT INTO ICSPickPrintTemp
  1917. (ID,DocNO,INVCode,iQuantity,WHCode,BinCode,LotNO,QTYTotal,SendQTY,MUSER,MUSERNAME,WorkPoint)
  1918. VALUES
  1919. (NEWID(),'{0}','{1}',{2},'{3}','{4}','{5}',{6},{7},'{8}','{9}','{10}')";
  1920. picksql = string.Format(picksql, pickdr["Code"].ToString(), pickdr["InvCode"].ToString(), Convert.ToDecimal(pickdr["iQuantity"])
  1921. , pickdr["WarehouseCode"].ToString(), pickdr["LocationCode"].ToString(), pickdr["LotNO"].ToString()
  1922. , Convert.ToDecimal(pickdr["QTYTotal"]), Convert.ToDecimal(pickdr["SendQTY"]), MUSER, MUSERNAME, WorkPoint);
  1923. }
  1924. SqlHelper.ExecuteNonQuery(picksql);
  1925. #endregion
  1926. var result = ConvertCellToString(table);
  1927. if (Invmes.Rows.Count > 0)
  1928. {
  1929. result.Merge(Invmes, false);
  1930. }
  1931. return result;
  1932. }
  1933. /// <summary>
  1934. /// 工单领料推荐
  1935. /// </summary>
  1936. /// <param name="Id"></param>
  1937. /// <param name="workPoint"></param>
  1938. /// <returns></returns>
  1939. public DataTable GetICSMOPickMergeByWorkorder(string Id, string workPoint)
  1940. {
  1941. string sql = $@"SELECT row_number() over (partition by c.Code,c.InvCode order by c.Code,c.InvCode,d.MTIME) AS rowNo,
  1942. c.Code,
  1943. c.InvCode,
  1944. c.InvName,
  1945. c.InvStd,
  1946. c.InvUnit,
  1947. FLOOR(c.iQuantity) AS iQuantity,
  1948. d.WarehouseCode,
  1949. d.LotNO,
  1950. FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  1951. d.LocationCode LocationCode,
  1952. CONVERT(varchar(100),d.MTIME, 23) MTIME,
  1953. FLOOR(f.QTYTotal) QTYTotal
  1954. FROM
  1955. (select
  1956. a.ApplyCode as Code, a.InvCode, b.InvName, b.InvStd, b.InvUnit, SUM(ISNULL(a.Quantity, 0)) AS iQuantity, a.WhCode,a.ExtensionID
  1957. FROM
  1958. ICSMOApply a
  1959. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1960. WHERE a.ApplyCode in ({Id}) AND a.WorkPoint = '{workPoint}'
  1961. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID) c
  1962. left join (select d.WarehouseCode,d.Quantity,d.INVCode, m.LotNo, d.MTIME,d.LocationCode,m.ExtensionID from ICSWareHouseLotInfo d ,ICSInventoryLot m
  1963. where d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint
  1964. and d.WorkPoint='{workPoint}' AND d.Quantity>0 ) d on c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode and d.ExtensionID=c.ExtensionID
  1965. 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
  1966. order by c.Code,c.InvCode,d.MTIME";
  1967. var dataset = Repository().FindDataSetBySql(sql);
  1968. if (dataset.Tables.Count == 0)
  1969. return null;
  1970. DataTable table = dataset.Tables[0];
  1971. decimal qtyCount = 0;
  1972. bool remove = false;
  1973. List<int> removeList = new List<int>();
  1974. for (int i = 0; i < table.Rows.Count; i++)
  1975. {
  1976. if (i != 0
  1977. && !table.Rows[i]["InvCode"].ToString().Equals(table.Rows[i - 1]["InvCode"].ToString()))
  1978. {
  1979. qtyCount = 0;
  1980. remove = false;
  1981. }
  1982. if (remove)
  1983. {
  1984. removeList.Add(i);
  1985. }
  1986. else
  1987. {
  1988. var lotQty = table.Rows[i]["QTY"].ToString().ToDecimal();
  1989. var orderQty = table.Rows[i]["iQuantity"].ToString().ToDecimal();
  1990. qtyCount += lotQty;
  1991. if (qtyCount >= orderQty)
  1992. {
  1993. remove = true;
  1994. }
  1995. }
  1996. }
  1997. if (removeList.Count > 0)
  1998. {
  1999. removeList.Reverse();
  2000. foreach (var item in removeList)
  2001. {
  2002. table.Rows.RemoveAt(item);
  2003. }
  2004. }
  2005. var result = ConvertCellToString(table);
  2006. if (Invmes.Rows.Count > 0)
  2007. {
  2008. result.Merge(Invmes, false);
  2009. }
  2010. return result;
  2011. }
  2012. public DataTable ConvertCellToString(DataTable data)
  2013. {
  2014. DataTable dtCloned = data.Clone();
  2015. foreach (DataColumn col in dtCloned.Columns)
  2016. {
  2017. col.DataType = typeof(string);
  2018. }
  2019. foreach (DataRow row in data.Rows)
  2020. {
  2021. DataRow newrow = dtCloned.NewRow();
  2022. foreach (DataColumn column in dtCloned.Columns)
  2023. {
  2024. newrow[column.ColumnName] = row[column.ColumnName].ToString();
  2025. }
  2026. dtCloned.Rows.Add(newrow);
  2027. }
  2028. return dtCloned;
  2029. }
  2030. // public DataTable GetICSMOPickMergeTemp2(string ID, string Type)
  2031. // {
  2032. // string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2033. // #region sql
  2034. // string sql = @"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  2035. // c.MergeID,
  2036. // c.Code,
  2037. // c.InvCode,
  2038. // c.InvName,
  2039. // c.InvStd,
  2040. //c.InvUnit,
  2041. // FLOOR(c.iQuantity) AS iQuantity,
  2042. // d.WarehouseCode,
  2043. // d.LocationCode,
  2044. // d.LotNO,
  2045. // FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  2046. // CONVERT(varchar(100),d.MTIME, 23) MTIME,
  2047. // FLOOR(f.QTYTotal) QTYTotal INTO #temp
  2048. // FROM
  2049. // ({0}) c
  2050. // LEFT JOIN ICSWareHouseLotInfo d ON c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode AND d.WorkPoint='{1}' AND d.Quantity>0
  2051. // left join ICSInventoryLot m on d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint and c.ExtensionID=m.ExtensionID
  2052. // 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
  2053. //DECLARE @ItemCode VARCHAR(50),
  2054. // @QTY DECIMAL(18,3),
  2055. // @ItemCodeCurrent VARCHAR(50),
  2056. // @QTYCurrent DECIMAL(18,3),
  2057. // @iQuantityCurrent DECIMAL(18,3),
  2058. // @CanDelete BIT,
  2059. // @Row INT,
  2060. // @rowCurrent INT
  2061. //SET @Row = @@rowcount
  2062. //SET @rowCurrent=1
  2063. //SET @CanDelete=0
  2064. //SET @ItemCode=''
  2065. //WHILE @rowCurrent<=@Row
  2066. // BEGIN
  2067. // SELECT @ItemCodeCurrent=InvCode,@QTYCurrent=QTY,@iQuantityCurrent=iQuantity FROM #temp WHERE rowNo=@rowCurrent
  2068. //PRINT(@rowCurrent)
  2069. // IF @ItemCode<>@ItemCodeCurrent
  2070. // BEGIN
  2071. // SET @ItemCode=@ItemCodeCurrent
  2072. // SET @QTY=0
  2073. // SET @CanDelete=0
  2074. // END
  2075. // IF @CanDelete=1
  2076. // BEGIN
  2077. // DELETE FROM #temp WHERE rowNo=@rowCurrent
  2078. // SET @rowCurrent += 1
  2079. // CONTINUE
  2080. // END
  2081. // SET @QTY += @QTYCurrent
  2082. // IF @QTY>=@iQuantityCurrent
  2083. // BEGIN
  2084. // SET @CanDelete=1
  2085. // END
  2086. // SET @rowCurrent += 1
  2087. // END
  2088. //SELECT * FROM #temp
  2089. //DROP TABLE #temp
  2090. //";
  2091. // #endregion
  2092. // string sqls = "";
  2093. // if (Type == "1")
  2094. // {
  2095. // #region 工单备料sql
  2096. // sqls = @" select
  2097. // x.MergeID,
  2098. // c.MOCode as Code,
  2099. // a.InvCode,
  2100. // b.InvName,
  2101. // b.InvStd,
  2102. //b.InvUnit,
  2103. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2104. // a.WhCode,
  2105. //a.ExtensionID
  2106. // FROM
  2107. // ICSMOPick a
  2108. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2109. // inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  2110. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2111. // WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  2112. // GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  2113. // #endregion
  2114. // }
  2115. // if (Type == "2")
  2116. // {
  2117. // #region 工单领料SQL
  2118. // sqls = @" select
  2119. // x.MergeID,
  2120. // a.ApplyCode as Code,
  2121. // a.InvCode,
  2122. // b.InvName,
  2123. // b.InvStd,
  2124. //b.InvUnit,
  2125. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2126. // a.WhCode,
  2127. // a.ExtensionID
  2128. // FROM
  2129. // ICSMOApply a
  2130. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2131. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2132. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  2133. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  2134. // #endregion
  2135. // }
  2136. // if (Type == "3")
  2137. // {
  2138. // #region 工单材料出库SQL
  2139. // sqls = @" select
  2140. // x.MergeID,
  2141. // a.IssueCode as Code,
  2142. // a.InvCode,
  2143. // b.InvName,
  2144. // b.InvStd,
  2145. //b.InvUnit,
  2146. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2147. // a.WhCode,
  2148. //a.ExtensionID
  2149. // FROM
  2150. // ICSMOIssue a
  2151. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2152. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2153. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  2154. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2155. // #endregion
  2156. // }
  2157. // if (Type == "4")
  2158. // {
  2159. // #region 委外备料SQL
  2160. // sqls = @" select
  2161. // x.MergeID,
  2162. // c.OOCode as Code,
  2163. // a.InvCode,
  2164. // b.InvName,
  2165. // b.InvStd,
  2166. //b.InvUnit,
  2167. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2168. // a.WhCode,
  2169. //a.ExtensionID
  2170. // FROM
  2171. // ICSOOPick a
  2172. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2173. // left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  2174. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2175. // WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  2176. // GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID, x.MergeID";
  2177. // #endregion
  2178. // }
  2179. // if (Type == "5")
  2180. // {
  2181. // #region 委外领料SQL
  2182. // sqls = @" select
  2183. // x.MergeID,
  2184. // a.ApplyCode as Code,
  2185. // a.InvCode,
  2186. // b.InvName,
  2187. // b.InvStd,
  2188. //b.InvUnit,
  2189. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2190. // a.WhCode,
  2191. //a.ExtensionID
  2192. // FROM
  2193. // ICSOApply a
  2194. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2195. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2196. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  2197. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2198. // #endregion
  2199. // }
  2200. // if (Type == "6")
  2201. // {
  2202. // #region 委外材料出库SQL
  2203. // sqls = @" select
  2204. // x.MergeID,
  2205. // a.IssueCode as Code,
  2206. // a.InvCode,
  2207. // b.InvName,
  2208. // b.InvStd,
  2209. //b.InvUnit,
  2210. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2211. // a.WhCode,
  2212. //a.ExtensionID
  2213. // FROM
  2214. // ICSOIssue a
  2215. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2216. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2217. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  2218. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2219. // #endregion
  2220. // }
  2221. // if (Type == "7")
  2222. // {
  2223. // #region 销售发货SQL
  2224. // sqls = @" select
  2225. // x.MergeID,
  2226. // a.SDNCode as Code,
  2227. // a.InvCode,
  2228. // b.InvName,
  2229. // b.InvStd,
  2230. //b.InvUnit,
  2231. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2232. // a.WhCode,
  2233. //a.ExtensionID
  2234. // FROM
  2235. // ICSSDN a
  2236. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2237. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2238. // WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  2239. // GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2240. // #endregion
  2241. // }
  2242. // if (Type == "8")
  2243. // {
  2244. // #region 其它出库SQL
  2245. // sqls = @" select
  2246. // x.MergeID,
  2247. // a.OutCode as Code,
  2248. // a.InvCode,
  2249. // b.InvName,
  2250. // b.InvStd,
  2251. //b.InvUnit,
  2252. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2253. // a.WhCode,
  2254. //a.ExtensionID
  2255. // FROM
  2256. // ICSOtherOut a
  2257. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2258. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2259. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  2260. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2261. // #endregion
  2262. // }
  2263. // if (Type == "9")
  2264. // {
  2265. // #region 借用SQL
  2266. // sqls = @" select
  2267. // x.MergeID,
  2268. // a.BrrowCode as Code,
  2269. // a.InvCode,
  2270. // b.InvName,
  2271. // b.InvStd,
  2272. //b.InvUnit,
  2273. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2274. // a.WhCode,
  2275. //a.ExtensionID
  2276. // FROM
  2277. // ICSBrrow a
  2278. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2279. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2280. // WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  2281. // GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2282. // #endregion
  2283. // }
  2284. // if (Type == "10")
  2285. // {
  2286. // #region 物料调拨
  2287. // sqls = @" select
  2288. // x.MergeID,
  2289. // a.TransferNO as Code,
  2290. // a.InvCode,
  2291. // b.InvName,
  2292. // b.InvStd,
  2293. //b.InvUnit,
  2294. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2295. // a.FromWarehouseCode as WhCode,
  2296. //a.ExtensionID
  2297. // FROM
  2298. // ICSTransfer a
  2299. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2300. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2301. // WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  2302. // GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID,x.MergeID";
  2303. // #endregion
  2304. // }
  2305. // if (Type == "11")
  2306. // {
  2307. // #region 两步调出
  2308. // sqls = @"select
  2309. // x.MergeID,
  2310. // a.OutCode as Code,
  2311. // a.InvCode,
  2312. // b.InvName,
  2313. // b.InvStd,
  2314. // b.InvUnit,
  2315. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2316. // a.WHCode as WhCode,
  2317. // a.ExtensionID
  2318. // FROM
  2319. // ICSOtherOut a
  2320. // INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  2321. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2322. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2323. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  2324. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID,x.MergeID";
  2325. // #endregion
  2326. // }
  2327. // sqls = string.Format(sqls, string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(','), WorkPoint);
  2328. // sql = string.Format(sql, sqls, WorkPoint);
  2329. // DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  2330. // DataTable dtCloned = table.Clone();
  2331. // foreach (DataColumn col in dtCloned.Columns)
  2332. // {
  2333. // col.DataType = typeof(string);
  2334. // }
  2335. // foreach (DataRow row in table.Rows)
  2336. // {
  2337. // DataRow newrow = dtCloned.NewRow();
  2338. // foreach (DataColumn column in dtCloned.Columns)
  2339. // {
  2340. // newrow[column.ColumnName] = row[column.ColumnName].ToString();
  2341. // }
  2342. // dtCloned.Rows.Add(newrow);
  2343. // }
  2344. // if (Invmes.Rows.Count > 0)
  2345. // {
  2346. // dtCloned.Merge(Invmes, false);
  2347. // }
  2348. // return dtCloned;
  2349. // }
  2350. public DataTable GetICSMOPickMergeTemp2(string ID, string Type)
  2351. {
  2352. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2353. string sqls = "";
  2354. if (Type == "1")
  2355. {
  2356. #region 工单备料sql
  2357. sqls = @" select
  2358. x.MergeID,
  2359. c.MOCode as Code,
  2360. a.InvCode,
  2361. b.InvName,
  2362. b.InvStd,
  2363. b.InvUnit,
  2364. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2365. a.WhCode,
  2366. a.ExtensionID
  2367. FROM
  2368. ICSMOPick a
  2369. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2370. inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  2371. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2372. WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  2373. GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  2374. #endregion
  2375. }
  2376. if (Type == "2" || Type == "12")
  2377. {
  2378. #region 工单领料SQL
  2379. sqls = @" select
  2380. x.MergeID,
  2381. a.ApplyCode as Code,
  2382. a.InvCode,
  2383. b.InvName,
  2384. b.InvStd,
  2385. b.InvUnit,
  2386. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2387. a.WhCode,
  2388. a.ExtensionID
  2389. FROM
  2390. ICSMOApply a
  2391. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2392. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2393. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  2394. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  2395. #endregion
  2396. }
  2397. if (Type == "3")
  2398. {
  2399. #region 工单材料出库SQL
  2400. sqls = @" select
  2401. x.MergeID,
  2402. a.IssueCode as Code,
  2403. a.InvCode,
  2404. b.InvName,
  2405. b.InvStd,
  2406. b.InvUnit,
  2407. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2408. a.WhCode,
  2409. a.ExtensionID
  2410. FROM
  2411. ICSMOIssue a
  2412. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2413. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2414. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  2415. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2416. #endregion
  2417. }
  2418. if (Type == "4")
  2419. {
  2420. #region 委外备料SQL
  2421. sqls = @" select
  2422. x.MergeID,
  2423. c.OOCode as Code,
  2424. a.InvCode,
  2425. b.InvName,
  2426. b.InvStd,
  2427. b.InvUnit,
  2428. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2429. a.WhCode,
  2430. a.ExtensionID
  2431. FROM
  2432. ICSOOPick a
  2433. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2434. left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  2435. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2436. WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  2437. GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID, x.MergeID";
  2438. #endregion
  2439. }
  2440. if (Type == "5")
  2441. {
  2442. #region 委外领料SQL
  2443. sqls = @" select
  2444. x.MergeID,
  2445. a.ApplyCode as Code,
  2446. a.InvCode,
  2447. b.InvName,
  2448. b.InvStd,
  2449. b.InvUnit,
  2450. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2451. a.WhCode,
  2452. a.ExtensionID
  2453. FROM
  2454. ICSOApply a
  2455. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2456. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2457. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  2458. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2459. #endregion
  2460. }
  2461. if (Type == "6")
  2462. {
  2463. #region 委外材料出库SQL
  2464. sqls = @" select
  2465. x.MergeID,
  2466. a.IssueCode as Code,
  2467. a.InvCode,
  2468. b.InvName,
  2469. b.InvStd,
  2470. b.InvUnit,
  2471. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2472. a.WhCode,
  2473. a.ExtensionID
  2474. FROM
  2475. ICSOIssue a
  2476. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2477. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2478. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  2479. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2480. #endregion
  2481. }
  2482. if (Type == "7")
  2483. {
  2484. #region 销售发货SQL
  2485. sqls = @" select
  2486. x.MergeID,
  2487. a.SDNCode as Code,
  2488. a.InvCode,
  2489. b.InvName,
  2490. b.InvStd,
  2491. b.InvUnit,
  2492. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2493. a.WhCode,
  2494. a.ExtensionID
  2495. FROM
  2496. ICSSDN a
  2497. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2498. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2499. WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}' AND a.Type='1'
  2500. GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2501. #endregion
  2502. }
  2503. if (Type == "8")
  2504. {
  2505. #region 其它出库SQL
  2506. sqls = @" select
  2507. x.MergeID,
  2508. a.OutCode as Code,
  2509. a.InvCode,
  2510. b.InvName,
  2511. b.InvStd,
  2512. b.InvUnit,
  2513. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2514. a.WhCode,
  2515. a.ExtensionID
  2516. FROM
  2517. ICSOtherOut a
  2518. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2519. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2520. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  2521. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2522. #endregion
  2523. }
  2524. if (Type == "9")
  2525. {
  2526. #region 借用SQL
  2527. sqls = @" select
  2528. x.MergeID,
  2529. a.BrrowCode as Code,
  2530. a.InvCode,
  2531. b.InvName,
  2532. b.InvStd,
  2533. b.InvUnit,
  2534. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2535. a.WhCode,
  2536. a.ExtensionID
  2537. FROM
  2538. ICSBrrow a
  2539. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2540. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2541. WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  2542. GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2543. #endregion
  2544. }
  2545. if (Type == "10")
  2546. {
  2547. #region 物料调拨
  2548. sqls = @" select
  2549. x.MergeID,
  2550. a.TransferNO as Code,
  2551. a.InvCode,
  2552. b.InvName,
  2553. b.InvStd,
  2554. b.InvUnit,
  2555. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2556. a.FromWarehouseCode as WhCode,
  2557. a.ExtensionID
  2558. FROM
  2559. ICSTransfer a
  2560. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2561. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2562. WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  2563. GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID,x.MergeID";
  2564. #endregion
  2565. }
  2566. if (Type == "11")
  2567. {
  2568. #region 两步调出
  2569. sqls = @" select
  2570. x.MergeID,
  2571. a.OutCode as Code,
  2572. a.InvCode,
  2573. b.InvName,
  2574. b.InvStd,
  2575. b.InvUnit,
  2576. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2577. a.WHCode as WhCode,
  2578. a.ExtensionID
  2579. FROM
  2580. ICSOtherOut a
  2581. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  2582. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2583. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2584. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  2585. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID,x.MergeID";
  2586. #endregion
  2587. }
  2588. sqls = string.Format(sqls, string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(','), WorkPoint);
  2589. #region sql
  2590. string sql = $@"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  2591. c.MergeID,
  2592. c.Code,
  2593. c.InvCode,
  2594. c.InvName,
  2595. c.InvStd,
  2596. c.InvUnit,
  2597. FLOOR(c.iQuantity) AS iQuantity,
  2598. d.WarehouseCode,
  2599. d.LocationCode,
  2600. d.LotNO,
  2601. FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  2602. CONVERT(varchar(100),d.MTIME, 23) MTIME,
  2603. FLOOR(f.QTYTotal) QTYTotal
  2604. FROM
  2605. ({sqls}) c
  2606. left join (select d.WarehouseCode,d.Quantity,d.INVCode, m.LotNo, d.MTIME,d.LocationCode,m.ExtensionID
  2607. from ICSWareHouseLotInfo d ,ICSInventoryLot m
  2608. where d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint
  2609. and d.WorkPoint='{WorkPoint}' AND d.Quantity>0 ) d
  2610. on c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode and d.ExtensionID=c.ExtensionID
  2611. 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
  2612. order by c.Code,c.InvCode,d.MTIME ";
  2613. #endregion
  2614. var dataset = Repository().FindDataSetBySql(sql);
  2615. if (dataset.Tables.Count == 0)
  2616. return null;
  2617. DataTable table = dataset.Tables[0];
  2618. decimal qtyCount = 0;
  2619. bool remove = false;
  2620. List<int> removeList = new List<int>();
  2621. for (int i = 0; i < table.Rows.Count; i++)
  2622. {
  2623. if (i != 0
  2624. && (!table.Rows[i]["InvCode"].ToString().Equals(table.Rows[i - 1]["InvCode"].ToString())
  2625. || !table.Rows[i]["Code"].ToString().Equals(table.Rows[i - 1]["Code"].ToString()))
  2626. )
  2627. {
  2628. qtyCount = 0;
  2629. remove = false;
  2630. }
  2631. if (remove)
  2632. {
  2633. removeList.Add(i);
  2634. }
  2635. else
  2636. {
  2637. var lotQty = table.Rows[i]["QTY"].ToString().ToDecimal();
  2638. var orderQty = table.Rows[i]["iQuantity"].ToString().ToDecimal();
  2639. qtyCount += lotQty;
  2640. if (qtyCount >= orderQty)
  2641. {
  2642. remove = true;
  2643. }
  2644. }
  2645. }
  2646. if (removeList.Count > 0)
  2647. {
  2648. removeList.Reverse();
  2649. foreach (var item in removeList)
  2650. {
  2651. table.Rows.RemoveAt(item);
  2652. }
  2653. }
  2654. var result = ConvertCellToString(table);
  2655. if (Invmes.Rows.Count > 0)
  2656. {
  2657. result.Merge(Invmes, false);
  2658. }
  2659. return result;
  2660. }
  2661. public string MergeMaterial(string keyValue, string Type)
  2662. {
  2663. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2664. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2665. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2666. string msg = "";
  2667. string sql = string.Empty;
  2668. string dataList = string.Empty;
  2669. List<string> arry = keyValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
  2670. if (arry.Count > 0)
  2671. {
  2672. StringBuilder stringBuilder = new StringBuilder();
  2673. foreach (var i in arry)
  2674. {
  2675. stringBuilder.Append($@"'{i}',");
  2676. }
  2677. dataList = stringBuilder.ToString(0, stringBuilder.Length - 1);
  2678. }
  2679. Int64 Merge_ID = 0;
  2680. DateTime time = DateTime.Now;
  2681. string Tday = time.ToString("yyyyMMdd");
  2682. string sqls = string.Format(@"SELECT MAX(A.MergeID) AS SourceID FROM ICSMOPickMerge A WHERE A.MergeID LIKE '{0}%' AND LEN(a.MergeID) = 13", Tday);
  2683. DataSet ds = SqlHelper.GetDataSetBySql(sqls);
  2684. DataTable dts = ds.Tables[0];
  2685. if (dts != null && dts.Rows.Count > 0)
  2686. {
  2687. string lot = dts.Rows[0]["SourceID"].ToString();
  2688. if (!string.IsNullOrWhiteSpace(lot))
  2689. Merge_ID = Convert.ToInt64(lot.Substring(lot.Length - 5));
  2690. }
  2691. string MergeID = Tday + (Merge_ID + 1).ToString().PadLeft(5, '0');
  2692. string order = string.Empty;
  2693. string orderCode = string.Empty;
  2694. string quantity = string.Empty;
  2695. string sqlString1 = string.Empty;
  2696. string sqlString2 = string.Empty;
  2697. if (Type == "1")//工单备料
  2698. {
  2699. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2700. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2701. select NEWID(),'{0}',b.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2702. from ICSMO a inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  2703. where a.MOCode in ({5})
  2704. ";
  2705. }
  2706. if (Type == "2")//工单发料
  2707. {
  2708. order = "ICSMOApply";
  2709. orderCode = "b.ApplyCode";
  2710. quantity = "b.IssueQuantity";
  2711. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2712. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2713. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}',a.ApplyCode
  2714. from ICSMOApply a
  2715. where a.ApplyCode in ({5})";
  2716. }
  2717. if (Type == "3")//材料出库
  2718. {
  2719. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2720. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2721. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2722. from ICSMOIssue a
  2723. where a.IssueCode in ({5}) ";
  2724. }
  2725. if (Type == "4")//委外备料
  2726. {
  2727. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2728. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2729. select NEWID(),'{0}',b.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2730. from ICSOutsourcingOrder a inner join ICSOOPick b on a.OODetailID=b.OODetailID and b.WorkPoint=a.WorkPoint
  2731. where a.OOCode in ({5})";
  2732. }
  2733. if (Type == "5")//委外领料
  2734. {
  2735. order = "ICSOApply";
  2736. orderCode = "b.ApplyCode";
  2737. quantity = "b.IssueQuantity";
  2738. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2739. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2740. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}',a.ApplyCode
  2741. from ICSOApply a
  2742. where a.ApplyCode in ({5})";
  2743. }
  2744. if (Type == "6")//委外材料出库
  2745. {
  2746. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2747. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2748. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2749. from ICSOIssue a
  2750. where a.IssueCode in ({5})";
  2751. }
  2752. if (Type == "7")//销售发货
  2753. {
  2754. order = "ICSSDN";
  2755. orderCode = "b.SDNCode";
  2756. quantity = "b.SDNQuantity";
  2757. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2758. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2759. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}',a.SDNCode
  2760. from ICSSDN a
  2761. where a.SDNCode in ({5}) AND a.Type='1' ";
  2762. }
  2763. if (Type == "8")//其它出库
  2764. {
  2765. order = "ICSOtherOut";
  2766. orderCode = "b.OutCode";
  2767. quantity = "b.OutQuantity";
  2768. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2769. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2770. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}',a.OutCode
  2771. from ICSOtherOut a
  2772. where a.OutCode in ({5})";
  2773. }
  2774. if (Type == "9")//借用单
  2775. {
  2776. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2777. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2778. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2779. from ICSBrrow a
  2780. where a.BrrowCode in ({5})";
  2781. }
  2782. if (Type == "10")//物料调拨
  2783. {
  2784. order = "ICSTransfer";
  2785. orderCode = "b.TransferNO";
  2786. quantity = "b.TransferQuantity";
  2787. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2788. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2789. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}',a.TransferNO
  2790. from ICSTransfer a
  2791. where a.TransferNO in ({5})
  2792. ";
  2793. }
  2794. if (Type == "11")//两步调出
  2795. {
  2796. sql += @" INSERT INTO dbo.ICSMOPickMerge
  2797. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2798. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2799. from ICSOtherOut a
  2800. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  2801. where a.OutCode in ({5})
  2802. ";
  2803. }
  2804. sql = string.Format(sql, MergeID, Type, MUSER, MUSERNAME, WorkPoint, dataList);
  2805. sqlString1 += $@" SELECT a.ID FROM ICSMOPickMerge a WHERE a.SourceID IN (SELECT b.ID FROM {order} b WHERE {orderCode} IN({dataList}) )";
  2806. sqlString2 += $@" SELECT b.ID FROM {order} b WHERE {orderCode} IN({dataList}) AND {quantity}>0";
  2807. DataSet ds1 = SqlHelper.GetDataSetBySql(sqlString1);
  2808. DataSet ds2 = SqlHelper.GetDataSetBySql(sqlString2);
  2809. DataTable dts1 = ds1.Tables[0];
  2810. DataTable dts2 = ds2.Tables[0];
  2811. if ((dts1 != null && dts1.Rows.Count > 0))
  2812. {
  2813. }
  2814. else if (dts2 != null && dts2.Rows.Count > 0)
  2815. {
  2816. msg = "当前选择单据号存在已出库的单据号,合并 失败";
  2817. }
  2818. else
  2819. {
  2820. try
  2821. {
  2822. if (SqlHelper.CmdExecuteNonQueryLi(sql) == 0)
  2823. {
  2824. msg = "新增失败";
  2825. }
  2826. }
  2827. catch (Exception ex)
  2828. {
  2829. throw new Exception(ex.Message);
  2830. }
  2831. }
  2832. return msg;
  2833. }
  2834. public string CancelMergeMaterial(string keyValue, string Type)
  2835. {
  2836. string msg = "";
  2837. string sql = string.Empty;
  2838. keyValue = keyValue.TrimEnd(',');
  2839. List<string> arry = keyValue.Split(',').ToList();
  2840. string dataList = string.Empty;
  2841. if (arry.Count > 0)
  2842. {
  2843. foreach (var i in arry)
  2844. {
  2845. dataList += $@"'{i}',";
  2846. }
  2847. if (dataList.Any())
  2848. {
  2849. dataList = dataList.TrimEnd(',');
  2850. }
  2851. }
  2852. string sqls = $@" SELECT SourceID FROM ICSMOPickMerge WHERE EATTRIBUTE1 IN({dataList}) ";
  2853. DataSet ds = SqlHelper.GetDataSetBySql(sqls);
  2854. DataTable dts = ds.Tables[0];
  2855. if (dts == null || dts.Rows.Count <= 0)
  2856. {
  2857. msg = "当前单据未合并拣料,取消合并拣料失败";
  2858. return msg;
  2859. }
  2860. string sqlStrring = string.Empty;
  2861. if (Type == "2")//工单发料
  2862. {
  2863. sqlStrring = $@"select ID from ICSMOApply a where a.ID in ({sqls}) and a.IssueQuantity=0 ";
  2864. }
  2865. if (Type == "5")//委外领料
  2866. {
  2867. sqlStrring = $@"select ID from ICSOApply a where a.ID in ({sqls}) and a.IssueQuantity=0 ";
  2868. }
  2869. if (Type == "7")//销售发货
  2870. {
  2871. sqlStrring = $@"select ID from ICSSDN a where a.ID in ({sqls}) and a.SDNQuantity=0 AND a.Type='1' ";
  2872. }
  2873. if (Type == "8")//其它出库
  2874. {
  2875. sqlStrring = $@"select ID
  2876. from ICSOtherOut a
  2877. where a.ID in ({sqls}) and a.OutQuantity=0";
  2878. }
  2879. if (Type == "10")//物料调拨
  2880. {
  2881. sqlStrring = $@"select ID from ICSTransfer a where a.ID in ({sqls}) and a.TransferQuantity=0 ";
  2882. }
  2883. DataSet dsdata = SqlHelper.GetDataSetBySql(sqlStrring);
  2884. DataTable dtdsdatas = dsdata.Tables[0];
  2885. if (dtdsdatas == null || dtdsdatas.Rows.Count <= 0)
  2886. {
  2887. msg = "当前物料已经出库,取消合并失败";
  2888. return msg;
  2889. }
  2890. sql = $@"DELETE FROM ICSMOPickMerge WHERE SourceID IN({sqls})";
  2891. try
  2892. {
  2893. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  2894. {
  2895. }
  2896. else
  2897. {
  2898. msg = "取消合并失败";
  2899. }
  2900. }
  2901. catch (Exception ex)
  2902. {
  2903. throw new Exception(ex.Message);
  2904. }
  2905. return msg;
  2906. }
  2907. public string CheckQty(string objArr)
  2908. {
  2909. objArr = objArr.TrimEnd(',');
  2910. string sql = @"select * from ICSMOPickMerge a
  2911. left join ICSMOPick b on a.SourceID=b.ID and a.WorkPoint=b.WorkPoint
  2912. left join ICSMO c on b.MODetailID=c.MODetailID and b.WorkPoint=c.WorkPoint
  2913. where MOCode in ({0})";
  2914. sql = string.Format(sql, objArr);
  2915. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  2916. if (dt != null && dt.Rows.Count > 0)
  2917. {
  2918. return "1";
  2919. }
  2920. return "0";
  2921. }
  2922. //删除占料
  2923. public string DelPickLog(string objCode)
  2924. {
  2925. //站点信息
  2926. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2927. string msg = "";
  2928. objCode = objCode.Substring(1, objCode.Length - 2);
  2929. string sql = string.Empty;
  2930. sql += string.Format(@"update b set b.LockQuantity=convert(decimal(18,6),b.LockQuantity)-convert(decimal(18,6),a.Quantity )
  2931. from dbo.ICSWareHouseLotInfoLog a
  2932. left join dbo.ICSWareHouseLotInfo b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  2933. where a.TransCode in ({0}) and a.TransType='15' and a.WorkPoint='{1}'", objCode.TrimEnd(','), WorkPoint);
  2934. sql += string.Format(@" delete dbo.ICSWareHouseLotInfoLog where TransCode in({0}) and TransType='15' and WorkPoint='{1}'", objCode.TrimEnd(','), WorkPoint);
  2935. try
  2936. {
  2937. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  2938. {
  2939. }
  2940. }
  2941. catch (Exception ex)
  2942. {
  2943. throw new Exception(ex.Message);
  2944. }
  2945. return msg;
  2946. }
  2947. public int SeachPickLog(string objCode)
  2948. {
  2949. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2950. objCode = objCode.TrimEnd(',');
  2951. string[] parameters = objCode.Split(',');
  2952. int parameterCount = parameters.Length;
  2953. string sql = @" select distinct a.TransCode from dbo.ICSWareHouseLotInfoLog a
  2954. left join dbo.ICSWareHouseLotInfo b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  2955. where a.TransCode in ({0}) and a.TransType='15' and a.WorkPoint='{1}'";
  2956. sql = string.Format(sql, objCode, WorkPoint);
  2957. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  2958. int count = dt.Rows.Count;
  2959. return count;
  2960. }
  2961. public DataTable GetPickLogInfo(string ID)
  2962. {
  2963. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2964. DataTable dt = new DataTable();
  2965. List<DbParameter> parameter = new List<DbParameter>();
  2966. string sql = @"
  2967. 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,
  2968. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  2969. from dbo.ICSWareHouseLotInfoLog a
  2970. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2971. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  2972. where a.TransCode in ({0}) and a.TransType='15' and a.WorkPoint='{1}'";
  2973. sql = string.Format(sql, ID.TrimEnd(','), WorkPoint);
  2974. return Repository().FindTableBySql(sql.ToString());
  2975. }
  2976. }
  2977. }