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.

467 lines
17 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. using NFine.Data.Extensions;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Text;
  6. using NFine.Code;
  7. using NFine.Repository;
  8. using System.Data.Common;
  9. using NFine.Domain._03_Entity.SRM;
  10. using Newtonsoft.Json;
  11. using System.Configuration;
  12. using System.Net;
  13. using System.IO;
  14. using Newtonsoft.Json.Linq;
  15. using System.Linq;
  16. namespace NFine.Application.OMAY
  17. {
  18. public class OMAYApsApp : RepositoryFactory<ICSVendor>
  19. {
  20. public DataTable GetGridJsonChengPing(string queryJson, ref Pagination jqgridparam)
  21. {
  22. DataTable dt = new DataTable();
  23. var queryParam = queryJson.ToJObject();
  24. List<DbParameter> parameter = new List<DbParameter>();
  25. //object Figure = GetDecimalDigits();
  26. #region [SQL]
  27. string sql = @" select
  28. a.*
  29. from
  30. (
  31. select '' isSelect
  32. ,a.ID
  33. ,a.EATTRIBUTE5 as PreOrderNo --
  34. ,a.EATTRIBUTE6 as BusinessName --
  35. ,a.MOCode
  36. ,a.Sequence MoSeq
  37. ,a.MODetailID
  38. ,a.DepCode
  39. ,b.DepName --
  40. ,a.CreateDateTime --
  41. ,a.EATTRIBUTE3 PackageAsk --
  42. ,a.EATTRIBUTE4 SpecialAsk--
  43. ,a.EATTRIBUTE2 Useage--
  44. ,a.InvCode ItemCode
  45. ,c.EATTRIBUTE2 ItemAddCode
  46. ,c.InvName ItemName
  47. ,c.InvStd ItemStd
  48. ,c.InvUnit ItemUnit
  49. ,a.Amount
  50. ,case when a.ApsOrderDate is null then ''
  51. else CONVERT(varchar(10), a.PlanStartDate,120) end as PlanStartDate
  52. ,case when a.ApsOrderDate is null then ''
  53. else CONVERT(varchar(10), a.PlanEndDate,120) end as PlanEndDate
  54. ,a.ApsOrderDate
  55. ,a.APSStatus
  56. from ICSMO a with(nolock)
  57. left join ICSDepartment b with(nolock) on a.DepCode=b.DepCode
  58. left join ICSInventory c with(nolock) on a.InvCode=c.InvCode
  59. where 1=1
  60. <1>
  61. --order by a.CreateDateTime desc
  62. ) a
  63. where 1=1
  64. ";
  65. // sql += " WHERE 1=1 and a.MOStatus<>'3' ";
  66. //sql = string.Format(sql, Figure);
  67. //sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  68. #endregion
  69. if (!string.IsNullOrWhiteSpace(queryJson))
  70. {
  71. if (!string.IsNullOrWhiteSpace(queryParam["ItemCode"].ToString()))
  72. {
  73. sql += " and a.ItemCode like '%" + queryParam["ItemCode"].ToString() + "%' ";
  74. }
  75. if (!string.IsNullOrWhiteSpace(queryParam["ItemName"].ToString()))
  76. {
  77. sql += " and a.ItemName like '%" + queryParam["ItemName"].ToString() + "%' ";
  78. }
  79. var ssName1 = queryParam["SSName"].ToString();
  80. var ssName2 = queryParam["SSName2"].ToString();
  81. if (string.IsNullOrEmpty(ssName1)&& string.IsNullOrEmpty(ssName2))
  82. {
  83. sql = sql.Replace("<1>", "and a.APSStatus is null ");
  84. }
  85. else
  86. {
  87. if(!string.IsNullOrEmpty(ssName1) && !string.IsNullOrEmpty(ssName2))
  88. {
  89. sql += " and a.DepName ='" + ssName1 + "' and a.APSStatus='Y' ";
  90. sql = sql.Replace("<1>", " ");
  91. }
  92. if (!string.IsNullOrEmpty(ssName1))
  93. {
  94. sql += " and a.DepName ='" + ssName1 + "' and a.APSStatus='Y' ";
  95. sql = sql.Replace("<1>", " ");
  96. }
  97. if (!string.IsNullOrEmpty(ssName2))
  98. {
  99. sql += " and a.DepName ='" + ssName2 + "' ";
  100. sql = sql.Replace("<1>", " and a.APSStatus is null ");
  101. }
  102. }
  103. //if (!string.IsNullOrWhiteSpace(queryParam["SSName"].ToString()))
  104. //{
  105. // sql += " and a.DepName ='"+ queryParam["SSName"].ToString() + "' and a.APSStatus='Y' ";
  106. // sql = sql.Replace("<1>", " ");
  107. //}
  108. //else
  109. //{
  110. // sql = sql.Replace("<1>", "and a.APSStatus is null ");
  111. //}
  112. }
  113. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  114. //{
  115. // sql = sql.Replace("{0}", "and a.WorkPoint = '" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'");
  116. // // sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  117. //}
  118. //else
  119. //{
  120. // sql = sql.Replace("{0}", "");
  121. //}
  122. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  123. //{
  124. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  125. //}
  126. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  127. }
  128. public string GetOrgAName()
  129. {
  130. string returnValue = string.Empty;
  131. string sql = @"select
  132. b.F_FullName as OrgName
  133. ,b.F_EnCode as OrgCode
  134. ,a.*
  135. from [dbo].[Sys_SRM_Role] a
  136. left join Sys_SRM_Organize b on a.F_OrganizeId=b.F_Id
  137. where 1=1
  138. and a.F_EnCode='{0}'
  139. ";
  140. sql = string.Format(sql, NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode);
  141. var dt = Repository().FindDataSetBySql(sql.ToString()).Tables[0];
  142. if (dt == null || dt.Rows.Count == 0)
  143. {
  144. return returnValue;
  145. }
  146. returnValue = dt.Rows[0]["OrgName"].ToStringExt();
  147. return returnValue;
  148. }
  149. public string UpdateMoPlan2(string keyValue)
  150. {
  151. string returnValue = string.Empty;
  152. var queryParam = keyValue.ToJObject();
  153. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  154. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  155. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  156. string sql = string.Empty;
  157. sql = @"
  158. UPDATE dbo.ICSMO set MTIME=GETDATE(),MUSER='{0}',WorkPoint='{1}'
  159. ,ApsOrderDate='{2}'
  160. ,planStartDate='{4}'
  161. ,planEndDate='{5}'
  162. WHERE ID in ('{3}')";
  163. var ids = queryParam["ids"].ToString().Split(',');
  164. sql = string.Format(sql, MUSER, WorkPoint, queryParam["orderDate"].ToString(), string.Join("','", ids)
  165. , queryParam["planStartDate"].ToString(), queryParam["planEndDate"].ToString());
  166. var rows = SqlHelper.CmdExecuteNonQueryLi(sql) > 0;
  167. if (!rows)
  168. {
  169. throw new Exception("修改失败");
  170. }
  171. return returnValue;
  172. }
  173. public string UpdateMoPlan(string keyValue)
  174. {
  175. string returnValue = string.Empty;
  176. var queryParam = keyValue.ToJObject();
  177. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  178. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  179. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  180. string sql = string.Empty;
  181. sql = @"
  182. declare @DepCode nvarchar(100)
  183. select @DepCode= DepCode from ICSDepartment
  184. where DepName='{0}'
  185. --select @DepCode
  186. UPDATE dbo.ICSMO set DepCode=@DepCode, MTIME=GETDATE(),MUSER='{1}',WorkPoint='{2}',APSStatus='Y' <1> <2> <3> WHERE ID in ('{3}')";
  187. var ids = queryParam["ids"].ToString().Split(',');
  188. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "MOHKWam/Update";
  189. var planStartDate = queryParam["planStartDate"].ToStringExt();
  190. var planEndDate = queryParam["planEndDate"].ToStringExt();
  191. sql = string.Format(sql, queryParam["line"].ToString(), MUSER, WorkPoint, string.Join("','", ids), queryParam["orderDate"].ToString());
  192. if (!string.IsNullOrEmpty(queryParam["orderDate"].ToString()))
  193. {
  194. sql= sql.Replace("<1>", ",ApsOrderDate=getdate() ");
  195. }
  196. else
  197. {
  198. sql=sql.Replace("<1>", "");
  199. }
  200. if (!string.IsNullOrEmpty(planStartDate))
  201. {
  202. sql = sql.Replace("<2>", ",PlanStartDate='" + planStartDate + "'");
  203. }
  204. else
  205. {
  206. sql = sql.Replace("<2>", "");
  207. }
  208. if (!string.IsNullOrEmpty(planEndDate))
  209. {
  210. sql = sql.Replace("<3>", ",PlanEndDate='" + planEndDate + "'");
  211. }
  212. else
  213. {
  214. sql = sql.Replace("<3>", "");
  215. }
  216. try
  217. {
  218. if (string.IsNullOrEmpty(planStartDate) || string.IsNullOrEmpty(planEndDate))
  219. {
  220. sql = sql.Replace(",APSStatus='Y'", " ");
  221. var rows2 = SqlHelper.CmdExecuteNonQueryLi(sql) > 0;
  222. if (!rows2)
  223. {
  224. throw new Exception("修改失败");
  225. }
  226. return returnValue;
  227. }
  228. string objsql = @"
  229. declare @WorkPointCode varchar(100)
  230. select @WorkPointCode=WorkPointCode from Sys_WorkPoint
  231. select
  232. @WorkPointCode as WorkPoint
  233. ,a.MODetailID as MoDid
  234. ,'{0}' StartDate
  235. ,'{1}' DueDate
  236. ,a.DepCode cDept
  237. from ICSMO a with(nolock)
  238. where a.ID in ('{2}')
  239. ";
  240. objsql = string.Format(objsql, planStartDate, planEndDate, string.Join("','", ids));
  241. var dt = Repository().FindDataSetBySql(objsql.ToString()).Tables[0];
  242. if (dt == null || dt.Rows.Count == 0)
  243. {
  244. return returnValue;
  245. }
  246. List<object> objList = new List<object>();
  247. foreach (DataRow item in dt.Rows)
  248. {
  249. object obj = new
  250. {
  251. WorkPoint = item["WorkPoint"].ToString(),
  252. MoDid = item["MoDid"].ToString(),
  253. StartDate = planStartDate,
  254. DueDate = planEndDate,
  255. cDept = item["cDept"].ToString(),
  256. };
  257. objList.Add(obj);
  258. }
  259. var result = HttpMethods.Post<ResultDto>(APIURL, objList).Result;
  260. if (!result.Success)
  261. {
  262. return result.Message;
  263. }
  264. var rows = SqlHelper.CmdExecuteNonQueryLi(sql) > 0;
  265. if (!rows)
  266. {
  267. throw new Exception("修改失败");
  268. }
  269. }
  270. catch (Exception ex)
  271. {
  272. returnValue = ex.Message;
  273. }
  274. return returnValue;
  275. }
  276. public DataTable GetApsPlanSelectSubItemList(string ids, ref Pagination pagination)
  277. {
  278. DataTable dt = new DataTable();
  279. // var queryParam = queryJson.ToJObject();
  280. List<DbParameter> parameter = new List<DbParameter>();
  281. //object Figure = GetDecimalDigits();
  282. #region [SQL]
  283. string sql = @"select
  284. a.SubItemCode,a.SubItemName,a.SubItemStd,a.InvUnit,a.AmountUnit
  285. ,sum( a.Quantity) Quantity
  286. ,sum( a.Amount) Amount
  287. ,max(a.ID) ID
  288. from
  289. (
  290. select 0 Code
  291. --a.*
  292. ,a.ID
  293. ,c.InvCode SubItemCode
  294. ,c.InvName SubItemName
  295. ,c.InvStd SubItemStd
  296. ,a.Quantity --
  297. ,c.InvUnit --
  298. ,a.Amount --
  299. ,c.AmountUnit --
  300. from ICSMOPick a with(nolock)
  301. left join ICSMO b with(nolock) on a.MODetailID=b.MODetailID
  302. left join ICSInventory c with(nolock) on a.InvCode =c.InvCode
  303. where 1=1
  304. <1>
  305. and a.EATTRIBUTE1=0
  306. ) a
  307. group by a.SubItemCode,a.SubItemName,a.SubItemStd,a.InvUnit,a.AmountUnit
  308. order by a.SubItemCode,a.SubItemName,a.SubItemStd
  309. ";
  310. // sql += " WHERE 1=1 and a.MOStatus<>'3' ";
  311. var list = ids.Split(',');
  312. sql = sql.Replace("<1>", " and b.ID in ('" + string.Join("','", list) + "')");
  313. //sql = sql.Replace("<2>", "and b.Sequence=" + moSeq + "");
  314. //sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  315. #endregion
  316. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  317. //{
  318. // sql = sql.Replace("<3>", "and a.WorkPoint = '" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'");
  319. // // sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  320. //}
  321. //else
  322. //{
  323. // sql = sql.Replace("<3>", "");
  324. //}
  325. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  326. //{
  327. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  328. //}
  329. return Repository().FindDataSetBySql(sql.ToString(), parameter.ToArray()).Tables[0];
  330. }
  331. public DataTable GetApsPlanSubGridJsonList(string moCode, int moSeq, ref Pagination pagination)
  332. {
  333. DataTable dt = new DataTable();
  334. // var queryParam = queryJson.ToJObject();
  335. List<DbParameter> parameter = new List<DbParameter>();
  336. //object Figure = GetDecimalDigits();
  337. #region [SQL]
  338. string sql = @"select 0 Code
  339. --a.*
  340. ,a.ID
  341. ,a.Sequence SubSeq
  342. ,c.InvCode SubItemCode
  343. ,c.InvName SubItemName
  344. --,c.ClassCode
  345. --,c.ClassName
  346. ,c.InvStd SubItemDtd
  347. ,convert(nvarchar(100), floor (isnull( a.EATTRIBUTE3,0) *100)) +'%' as Rate --
  348. ,a.Quantity --
  349. ,c.InvUnit --
  350. ,a.Amount --
  351. ,c.AmountUnit --
  352. from ICSMOPick a with(nolock)
  353. left join ICSMO b with(nolock) on a.MODetailID=b.MODetailID
  354. left join ICSInventory c with(nolock) on a.InvCode =c.InvCode and a.WorkPoint=c.WorkPoint
  355. where 1=1
  356. <1>
  357. <2>
  358. and a.EATTRIBUTE1=0
  359. --and left( c.ClassCode,2)='01'
  360. order by a.Sequence
  361. ";
  362. // sql += " WHERE 1=1 and a.MOStatus<>'3' ";
  363. sql = sql.Replace("<1>", "and b.MOCode='" + moCode + "'");
  364. sql = sql.Replace("<2>", "and b.Sequence=" + moSeq + "");
  365. //sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  366. #endregion
  367. //if (!string.IsNullOrWhiteSpace(queryJson))
  368. //{
  369. // if (!string.IsNullOrWhiteSpace(queryParam["ItemCode"].ToString()))
  370. // {
  371. // sql += " and a.ItemCode like '%" + queryParam["ItemCode"].ToString() + "%' ";
  372. // }
  373. // if (!string.IsNullOrWhiteSpace(queryParam["ItemName"].ToString()))
  374. // {
  375. // sql += " and a.ItemName like '%" + queryParam["ItemName"].ToString() + "%' ";
  376. // }
  377. // //if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  378. // //{
  379. // // sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  380. // //}
  381. // //if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  382. // //{
  383. // // sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  384. // //}
  385. // //if (!string.IsNullOrWhiteSpace(queryParam["SelGDLX"].ToString()))
  386. // //{
  387. // // sql += " and a.MOType like '%" + queryParam["SelGDLX"].ToString() + "%' ";
  388. // //}
  389. // //if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  390. // //{
  391. // // string POStatus = queryParam["POStatus"].ToString();
  392. // // if (POStatus == "0")
  393. // // {
  394. // // //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  395. // // }
  396. // // else if (POStatus == "1")
  397. // // {
  398. // // sql += " and ISNULL(c.LOTQTY,0)>=a.Quantity";
  399. // // }
  400. // // else
  401. // // {
  402. // // sql += " and ISNULL(c.LOTQTY,0)<a.Quantity";
  403. // // }
  404. // //}
  405. //}
  406. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  407. //{
  408. // sql = sql.Replace("<3>", "and a.WorkPoint = '" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'");
  409. // // sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  410. //}
  411. //else
  412. //{
  413. // sql = sql.Replace("<3>", "");
  414. //}
  415. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  416. //{
  417. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  418. //}
  419. return Repository().FindDataSetBySql(sql.ToString(), parameter.ToArray()).Tables[0];
  420. }
  421. }
  422. }