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.

281 lines
11 KiB

3 weeks ago
  1. using NFine.Repository;
  2. using NFine.Domain._03_Entity.SRM;
  3. using NFine.Data.Extensions;
  4. using System;
  5. using Newtonsoft.Json.Linq;
  6. using Newtonsoft.Json;
  7. using System.Data.SqlClient;
  8. using System.Data;
  9. using NFine.Code;
  10. namespace NFine.Application.PNWMS
  11. {
  12. public class BasicSettingsApp : RepositoryFactory<ICSVendor>
  13. {
  14. public string DeleteStack(string keyValue)
  15. {
  16. //站点信息
  17. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  18. string msg = "";
  19. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  20. //keyValue = keyValue.Substring(1, keyValue.Length - 2);
  21. string sql = string.Empty;
  22. foreach (var item in res)
  23. {
  24. JObject jo = (JObject)item;
  25. sql = string.Format(@"
  26. IF EXISTS(SELECT * FROM dbo.ICSWareHouseLotInfo a
  27. LEFT JOIN dbo.ICSLocation b ON a.LocationCode=b.LocationCode and a.WorkPoint=b.WorkPoint
  28. where b.ID = '{0}' and a.Quantity>0)
  29. BEGIN
  30. RAISERROR('{2}!',16,1);
  31. RETURN
  32. END
  33. DELETE FROM dbo.ICSLocation WHERE ID = '{0}' and WorkPoint ='{1}'", jo["ID"].ToString(), WorkPoint, jo["LocationCode"].ToString());
  34. try
  35. {
  36. SqlHelper.ExecuteNonQuery(sql);
  37. }
  38. catch (Exception ex)
  39. {
  40. msg = ex.Message;
  41. //throw new Exception(ex.Message);
  42. }
  43. }
  44. return msg;
  45. }
  46. //库位导入
  47. public string SetData_PR(String savePath)
  48. {
  49. //数据获取
  50. try
  51. {
  52. int index = 1;
  53. string msg = "";
  54. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  55. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  56. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  57. SqlConnection conn = SqlHelper.GetDataCenterConn();
  58. string sql = "";
  59. int count = 0;
  60. DataTable data = FileToExcel.ExcelToTable(savePath);
  61. foreach (DataRow dr in data.Rows)
  62. {
  63. index++;
  64. var StackCode = "";
  65. var StackName = "";
  66. //string GUID = Guid.NewGuid().ToString();
  67. string KuFang = dr["库房编码"].ToString().Trim().ToUpper();
  68. string Qu = dr["区"].ToString().Trim().ToUpper();
  69. string Pai = dr["排"].ToString().Trim().ToUpper();
  70. string Jia = dr["货架"].ToString().Trim().ToUpper();
  71. string Ceng = dr["层"].ToString().Trim().ToUpper();
  72. string Ge = dr["格"].ToString().Trim().ToUpper();
  73. if (KuFang == "" || KuFang == null)
  74. {
  75. throw new Exception("第 " + index + " 行库房编码不能为空!");
  76. }
  77. if (Qu == "" && Pai == "" && Jia == "" && Ceng == "" && Ge == "")
  78. {
  79. throw new Exception("第 " + index + " 区、排、货架、层、格至少填写一项!");
  80. }
  81. string sqlWH = @"select ID from ICSWarehouse where WarehouseCode='{0}' and WorkPoint='{1}'";
  82. sqlWH = string.Format(sqlWH, KuFang, WorkPoint);
  83. DataTable dd = SqlHelper.CmdExecuteDataTable(sqlWH);
  84. if (dd == null || dd.Rows.Count <= 0)
  85. {
  86. throw new Exception("库房编码: " + KuFang + " 不存在!");
  87. }
  88. string WHID = dd.Rows[0]["ID"].ToString();
  89. StackCode = KuFang;
  90. StackName = KuFang + "仓库";
  91. if (Qu != "")
  92. {
  93. StackCode += "-" + Qu;
  94. StackName += Qu + "区";
  95. }
  96. if (Pai != "")
  97. {
  98. StackCode += "-" + Pai;
  99. StackName += Pai + "排";
  100. }
  101. if (Jia != "")
  102. {
  103. StackCode += "-" + Jia;
  104. StackName += Jia + "货架";
  105. }
  106. if (Ceng != "")
  107. {
  108. StackCode += "-" + Ceng;
  109. StackName += Ceng + "层";
  110. }
  111. if (Ge != "")
  112. {
  113. StackCode += "-" + Ge;
  114. StackName += Ge + "格";
  115. }
  116. string sqls = @"select LocationCode from ICSLocation where LocationCode='{0}' and WorkPoint='{1}'";
  117. sqls = string.Format(sqls, StackCode, WorkPoint);
  118. DataTable dnum = SqlHelper.CmdExecuteDataTable(sqls);
  119. if (dnum != null && dnum.Rows.Count > 0)
  120. {
  121. throw new Exception("库位: " + StackCode + " 已存在!");
  122. }
  123. else
  124. {
  125. sql += @"Insert INto ICSLocation
  126. ( ID, LocationCode, LocationName, WHID, MUSER, MUSERName, MTIME, WorkPoint, EATTRIBUTE1, Region, Row, GoodsShelf, Tier, Grid)
  127. Values (newid(),'{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','','{6}','{7}','{8}','{9}','{10}')";
  128. }
  129. sql = string.Format(sql, StackCode, StackName, WHID, MUSER, MUSERNAME, WorkPoint, Qu, Pai, Jia, Ceng, Ge);
  130. }
  131. count = SqlHelper.CmdExecuteNonQueryLi(sql);
  132. if (count > 0)
  133. {
  134. msg = "导入成功";
  135. }
  136. else
  137. {
  138. return "无有效的导入数据。";
  139. }
  140. return msg;
  141. }
  142. catch (Exception ex)
  143. {
  144. return ex.Message;
  145. }
  146. }
  147. /// <summary>
  148. /// 获取库房信息
  149. /// </summary>
  150. /// <returns></returns>
  151. public DataTable GetWarehouse()
  152. {
  153. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  154. string sql = @"
  155. select '' as WarehouseCode,'' as WarehouseName
  156. union all
  157. SELECT [WarehouseCode],[WarehouseName] FROM [ICSWarehouse] WITH (NOLOCK) WHERE 1=1 ";
  158. //string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  159. //if (role != "admin")
  160. //{
  161. // sql += " and b.WorkPoint='" + WorkPoint + "'";
  162. //}
  163. sql += " and WorkPoint='" + WorkPoint + "'";
  164. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  165. return dt;
  166. }
  167. /// <summary>
  168. /// 修改库位
  169. /// </summary>
  170. /// <param name="queryJson"></param>
  171. /// <returns></returns>
  172. public string UpdateStack(string keyValue)
  173. {
  174. var queryParam = keyValue.ToJObject();
  175. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  176. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  177. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  178. string msg = "";
  179. string StackSql = @"select * from ICSWarehouse where WarehouseCode='{0}'";
  180. StackSql = string.Format(StackSql, queryParam["Warehouse"].ToString());
  181. DataTable dt = SqlHelper.GetDataTableBySql(StackSql);
  182. string sql = string.Empty;
  183. sql = @"UPDATE dbo.ICSLocation set LocationCode='{0}',LocationName='{1}',WHID='{2}',MUSER='{3}',MUSERName='{4}',MTIME=GETDATE(),WorkPoint='{5}',Region='{7}',Row='{8}',GoodsShelf ='{9}',Tier='{10}',Grid='{11}' WHERE ID='{6}'";
  184. sql = string.Format(sql, queryParam["StackCode"].ToString(), queryParam["StackName"].ToString(), dt.Rows[0]["ID"].ToString(), MUSER, MUSERNAME, WorkPoint, queryParam["ID"].ToString(), queryParam["Qu"].ToString(), queryParam["Pai"].ToString(), queryParam["Jia"].ToString(), queryParam["Ceng"].ToString(), queryParam["Ge"].ToString());
  185. try
  186. {
  187. if (SqlHelper.ExecuteNonQuery(sql) > 0)
  188. {
  189. }
  190. else
  191. {
  192. msg = "修改失败";
  193. }
  194. }
  195. catch (Exception ex)
  196. {
  197. throw new Exception(ex.Message);
  198. }
  199. return msg;
  200. }
  201. /// <summary>
  202. /// 新增库位
  203. /// </summary>
  204. /// <param name="queryJson"></param>
  205. /// <returns></returns>
  206. public string InsertStack(string keyValue)
  207. {
  208. var queryParam = keyValue.ToJObject();
  209. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  210. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  211. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  212. string msg = "";
  213. string StackSql = @"select * from ICSWarehouse where WarehouseCode='{0}' and WorkPoint='{1}'";
  214. StackSql = string.Format(StackSql, queryParam["Warehouse"].ToString(), WorkPoint);
  215. DataTable dt = SqlHelper.GetDataTableBySql(StackSql);
  216. string sql = string.Empty;
  217. sql = @"IF ((SELECT 1 FROM ICSLocation WHERE LocationCode='{0}' AND LocationName='{1}' AND WHID='{2}' AND WorkPoint='{5}' ) IS NULL)
  218. BEGIN
  219. INSERT INTO dbo.ICSLocation
  220. ( ID ,LocationCode ,LocationName ,WHID ,MUSER ,
  221. MUSERName ,MTIME ,WorkPoint ,Region,Row,GoodsShelf ,Tier,Grid) Values(NEWID(),'{0}','{1}','{2}','{3}','{4}',GETDATE(),'{5}','{6}','{7}','{8}','{9}','{10}')
  222. END
  223. ELSE
  224. BEGIN
  225. RAISERROR('',16,1);
  226. END ";
  227. sql = string.Format(sql, queryParam["StackCode"].ToString(), queryParam["StackName"].ToString(), dt.Rows[0]["ID"].ToString(), MUSER, MUSERNAME, WorkPoint, queryParam["Qu"].ToString(), queryParam["Pai"].ToString(), queryParam["Jia"].ToString(), queryParam["Ceng"].ToString(), queryParam["Ge"].ToString());
  228. try
  229. {
  230. if (SqlHelper.ExecuteNonQuery(sql) > 0)
  231. {
  232. }
  233. else
  234. {
  235. msg = "新增失败";
  236. }
  237. }
  238. catch (Exception ex)
  239. {
  240. msg = ex.Message;
  241. return msg;
  242. }
  243. return msg;
  244. }
  245. }
  246. }