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.

269 lines
10 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. 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. namespace NFine.Application.OMAY
  16. {
  17. public class OMAYApp : RepositoryFactory<ICSVendor>
  18. {
  19. public DataTable GetYLAndPC(string Type ,string Group, string TimeFrom, string TimeArrive)
  20. {
  21. string sql = @" select
  22. isnull( sum( case when c.BusinessCode='13' and SUBSTRING(b.InvCode, 1, 2) IN ('01','04','05') then cast(isnull(c.Quantity,0)/1000 as decimal(18,2)) else 0 end ),0) as YLTR ,
  23. isnull( sum( case when c.BusinessCode='50' and b.EATTRIBUTE1='1' and SUBSTRING(b.InvCode, 1, 2) IN ('05') then cast( isnull(c.Quantity,0)/1000 as decimal(18,2)) else 0 end) ,0)as PCLRK
  24. from dbo.ICSMO a
  25. inner join dbo.ICSMOPick b on a.MODetailID=b.MODetailID and a.WorkPoint=b.WorkPoint
  26. inner join dbo.ICSWareHouseLotInfoLog c on a.MOCode=c.TransCode and a.Sequence+'~'+b.Sequence=c.TransSequence
  27. inner join dbo.ICSDepartment d on a.DepCode=d.DepCode
  28. where d.DepName = '" + Type + "' and c.MUSERName= '" + Type + Group + "' ";
  29. if (!string.IsNullOrWhiteSpace(TimeFrom))
  30. {
  31. sql += "and left(c.MTIME,7)>='" + TimeFrom + "'";
  32. }
  33. if (!string.IsNullOrWhiteSpace(TimeArrive))
  34. {
  35. sql += "and left(c.MTIME,7)<='" + TimeArrive + "'";
  36. }
  37. return Repository().FindTableBySql(sql.ToString());
  38. }
  39. public DataTable GetYLAndPCLRK(string Type, string Group, string TimeFrom, string TimeArrive)
  40. {
  41. string sql = @" select isnull(sum(a.Quantity),0)/1000 as PCLRK
  42. from dbo.ICSInventoryLot a
  43. inner join dbo.ICSWareHouseLotInfo b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  44. inner join dbo.ICSWareHouseLotInfoLog c on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  45. where a.Type='19' and c.BusinessCode='51'
  46. and a.MUSERName= '" + Type + Group + "' ";
  47. if (!string.IsNullOrWhiteSpace(TimeFrom))
  48. {
  49. sql += "and left(c.MTIME,7)>='" + TimeFrom + "'";
  50. }
  51. if (!string.IsNullOrWhiteSpace(TimeArrive))
  52. {
  53. sql += "and left(c.MTIME,7)<='" + TimeArrive + "'";
  54. }
  55. return Repository().FindTableBySql(sql.ToString());
  56. }
  57. public DataTable GetCC(string Type, string Group, string TimeFrom, string TimeArrive)
  58. {
  59. string sql = @" select cast( isnull( sum(isnull(b.Quantity,0)),0)/1000 as decimal(18,2)) as CC
  60. from dbo.ICSMO a
  61. inner join dbo.ICSWareHouseLotInfoLog b on a.MOCode=b.TransCode and a.Sequence=b.TransSequence and b.BusinessCode='17'
  62. inner join dbo.ICSDepartment d on a.DepCode=d.DepCode
  63. inner join dbo.ICSInventoryLot c on b.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  64. where d.DepName = '" + Type + "' and c.MUSERName= '" + Type + Group + "' ";
  65. if (!string.IsNullOrWhiteSpace(TimeFrom))
  66. {
  67. sql += "and left(b.MTIME,7)>='" + TimeFrom + "'";
  68. }
  69. if (!string.IsNullOrWhiteSpace(TimeArrive))
  70. {
  71. sql += "and left(b.MTIME,7)<='" + TimeArrive + "'";
  72. }
  73. return Repository().FindTableBySql(sql.ToString());
  74. }
  75. public DataTable GetCCL7(string Type, string Group, string TimeFrom, string TimeArrive)
  76. {
  77. string sqlwhere = string.Empty;
  78. string sql = @" select
  79. cast( isnull( sum(isnull(e.RowCC,0)),0) as decimal(18,2))
  80. from dbo.ICSMO a
  81. inner join dbo.ICSDepartment d on a.DepCode=d.DepCode
  82. inner join ( select a.MOCode,a.Sequence,a.WorkPoint, e.EATTRIBUTE5,e.EATTRIBUTE1,case when e.EATTRIBUTE3='' then isnull(b.Quantity,0) /isnull(e.EATTRIBUTE1,1)*e.EATTRIBUTE5/1000 else isnull( isnull(b.Quantity,0),0)/1000 end as RowCC from dbo.ICSMO a
  83. inner join dbo.ICSWareHouseLotInfoLog b on a.MOCode=b.TransCode and a.Sequence=b.TransSequence and b.BusinessCode='17'
  84. inner join dbo.ICSInventory e on a.InvCode=e.InvCode and a.WorkPoint=e.WorkPoint
  85. inner join dbo.ICSInventoryLot c on b.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  86. where c.MUSERName= '" + Type + Group + "' {0} )e on a.MOCode = e.MOCode and a.Sequence = e.Sequence and a.WorkPoint = e.WorkPoint where d.DepName = '" + Type + "' ";
  87. if (!string.IsNullOrWhiteSpace(TimeFrom))
  88. {
  89. sqlwhere += "and left(b.MTIME,7)>='" + TimeFrom + "'";
  90. }
  91. if (!string.IsNullOrWhiteSpace(TimeArrive))
  92. {
  93. sqlwhere += "and left(b.MTIME,7)<='" + TimeArrive + "'";
  94. }
  95. sql = string.Format(sql, sqlwhere);
  96. return Repository().FindTableBySql(sql.ToString());
  97. }
  98. public string CreateKPIMaintain(string keyValue)
  99. {
  100. var queryParam = keyValue.ToJObject();
  101. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  102. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  103. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  104. string msg = "";
  105. string sql = string.Empty;
  106. sql = @"IF EXISTS(SELECT * FROM dbo.ICSKPIMaintain
  107. where Team = '{0}' and Date='{1}' and WorkPoint='{5}')
  108. BEGIN
  109. RAISERROR(':{0},{1}!',16,1);
  110. RETURN
  111. END
  112. INSERT INTO dbo.ICSKPIMaintain
  113. ( ID ,Team,Date,Metrics ,Picking ,CreatePerson,CreateDate,MUSER,MTIME,WorkPoint )
  114. Values(NEWID(),'{0}','{1}','{2}','{3}','{4}',GETDATE(),'{4}',GETDATE(),'{5}')
  115. ";
  116. sql = string.Format(sql, queryParam["Team"].ToString(), queryParam["Date"].ToString(), queryParam["Metrics"].ToString(), queryParam["Picking"].ToString(), MUSER, WorkPoint);
  117. try
  118. {
  119. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  120. {
  121. }
  122. else
  123. {
  124. msg = "新增失败";
  125. }
  126. }
  127. catch (Exception ex)
  128. {
  129. msg = ex.Message;
  130. }
  131. return msg;
  132. }
  133. public string UpdateKPIMaintain(string keyValue)
  134. {
  135. var queryParam = keyValue.ToJObject();
  136. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  137. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  138. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  139. string msg = "";
  140. string sql = string.Empty;
  141. sql = @"UPDATE dbo.ICSKPIMaintain set Team = '{0}',Date='{1}',Metrics='{2}',Picking='{3}',MTIME=GETDATE(),MUSER='{4}',WorkPoint='{5}' WHERE ID='{6}'";
  142. sql = string.Format(sql, queryParam["Team"].ToString(), queryParam["Date"].ToString(), queryParam["Metrics"].ToString(), queryParam["Picking"].ToString(), MUSER, WorkPoint, queryParam["ID"].ToString());
  143. try
  144. {
  145. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  146. {
  147. }
  148. else
  149. {
  150. msg = "修改失败";
  151. }
  152. }
  153. catch (Exception ex)
  154. {
  155. msg = ex.Message;
  156. }
  157. return msg;
  158. }
  159. public string DeleteOMAYMaintain(string keyValue)
  160. {
  161. //站点信息
  162. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  163. string msg = "";
  164. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  165. string sql = string.Empty;
  166. sql = string.Format(@"DELETE FROM dbo.ICSKPIMaintain WHERE ID IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
  167. try
  168. {
  169. SqlHelper.ExecuteNonQuery(sql);
  170. }
  171. catch (Exception ex)
  172. {
  173. msg = ex.Message;
  174. }
  175. return msg;
  176. }
  177. public DataTable GetZB(string TimeFrom, string TimeArrive)
  178. {
  179. var Condition = "";
  180. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  181. string sql = @"CREATE TABLE #TempTable(Team VARCHAR(50))
  182. INSERT INTO #TempTable ( Team)
  183. VALUES ( 'L1'),('L2'), ( 'L3'), ('L4'),('L5'), ('L6');
  184. select a.Team as Team,
  185. sum(case when b.Metrics='' then 0 else cast(b.Metrics as decimal(18,2)) end )as Metrics
  186. from #TempTable a left join ICSKPIMaintain b on a.Team=SUBSTRING(b.Team, 1, 2) {0}
  187. group by a.Team
  188. drop table #TempTable";
  189. if (!string.IsNullOrWhiteSpace(TimeFrom))
  190. {
  191. Condition += "and b.Date>='"+ TimeFrom + "'";
  192. }
  193. if (!string.IsNullOrWhiteSpace(TimeArrive))
  194. {
  195. Condition += "and b.Date<='" + TimeArrive + "'";
  196. }
  197. sql= string.Format(sql, Condition);
  198. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  199. return dt;
  200. }
  201. public DataTable GetYFFJ(string TimeFrom, string TimeArrive)
  202. {
  203. var Condition = "";
  204. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  205. string sql = @" CREATE TABLE #TempTable(Team VARCHAR(50))
  206. INSERT INTO #TempTable ( Team)
  207. VALUES ( 'L1A'),( 'L1B'),( 'L2A'),( 'L2B'),( 'L3A'),( 'L3B'), ( 'L4A'),( 'L4B'), ( 'L5A'),( 'L5B'),( 'L6A'),( 'L6B')
  208. select a.Team as Team,
  209. sum(case when b.Picking='' then 0 else cast(b.Picking as decimal(18,2)) end) as Picking
  210. from #TempTable a left join ICSKPIMaintain b on a.Team=b.Team {0}
  211. group by a.Team
  212. drop table #TempTable";
  213. if (!string.IsNullOrWhiteSpace(TimeFrom))
  214. {
  215. Condition += "and b.Date>='" + TimeFrom + "'";
  216. }
  217. if (!string.IsNullOrWhiteSpace(TimeArrive))
  218. {
  219. Condition += "and b.Date<='" + TimeArrive + "'";
  220. }
  221. sql = string.Format(sql, Condition);
  222. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  223. return dt;
  224. }
  225. }
  226. }