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

3185 lines
168 KiB

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