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

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