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

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