RollingCapacity.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. using System;
  2. using System.Configuration;
  3. using System.Text;
  4. using Curtain.DataAccess;
  5. using Newtonsoft.Json;
  6. using Newtonsoft.Json.Linq;
  7. /// <summary>
  8. /// RollingCapacity 的摘要说明
  9. /// </summary>
  10. public class RollingCapacity
  11. {
  12. /// <summary>
  13. /// 三水陶瓷厂东科MES
  14. /// </summary>
  15. public const string http_domain = "https://hapcloud.hegii.com/api";
  16. public const string http_auth = "/auth/oauth/token";
  17. public const string http_url = "/mf/schemeForecast/getSchemeForecast";
  18. public const string grant_typ = "client_credentials";
  19. public const string client_id = "11f6868d1f7d4e8f8a66143c4740bea1";
  20. public const string client_secret = "da9086157c054fe5a4f9b273d66fd959";
  21. /// <summary>
  22. /// 拉取恒洁中台计划产销量
  23. /// </summary>
  24. /// <param name="today"></param>
  25. /// <returns></returns>
  26. public static string PullSchemeForecast(DateTime today)
  27. {
  28. string msg = "";
  29. string token = "";
  30. string json_data = "";
  31. string json_value = "";
  32. int year = today.Year;
  33. if (today.Month == 12)
  34. {
  35. year = year + 1;
  36. }
  37. try
  38. {
  39. token = HttpOAuth2.GetToken(http_domain + http_auth, new string[] { grant_typ, client_id, client_secret });
  40. Curtain.Log.Logger.Debug("token : " + token);
  41. JObject tokenObj = JsonConvert.DeserializeObject<JObject>(token);
  42. token = tokenObj["access_token"] + "";
  43. string SAP_werks = ConfigurationManager.AppSettings["SAP_werks"].ToString();
  44. json_data = @"{'werks':'" + SAP_werks + "', 'productCode':null, 'wealthYear': '" + year + "'}";
  45. json_value = HttpOAuth2.Post(http_domain + http_url, json_data, token);
  46. Curtain.Log.Logger.Debug("data : " + json_value);
  47. JObject returnObj = JsonConvert.DeserializeObject<JObject>(json_value);
  48. if (json_value.Contains("code"))
  49. {
  50. // 插入 中台 计划产量预测
  51. using (IDataAccess conn = DataAccess.Create())
  52. {
  53. JArray paramsArray = (JArray)returnObj["data"];
  54. conn.BeginTransaction();
  55. conn.ExecuteNonQuery("delete from t_reckon_prod_diff t where t.data_type = 100 and t.cw_year = @cw_year@", new CDAParameter("cw_year", year));
  56. //string sql = "insert into t_reckon_prod_diff (cw_year, cw_month, reckon_month, sap_sku, goodsid, data_type, data_value) " +
  57. // "values (@cw_year@, @cw_month@, @reckon_month@, @sap_sku@, @goodsid@, 100, @data_value@)";
  58. //foreach (JToken param in paramsArray)
  59. //{
  60. // string productCode = param["productCode"] + "";
  61. // //CDAParameter p_year = new CDAParameter("cw_year", today.Year);
  62. // //CDAParameter p_month = new CDAParameter("cw_month", 12);
  63. // //CDAParameter p_reckon_month = new CDAParameter("reckon_month", new DateTime(today.Year, 12, 1));
  64. // //CDAParameter p_sap_sku = new CDAParameter("sap_sku", productCode);
  65. // //CDAParameter p_goodsid = new CDAParameter("goodsid", null);
  66. // //CDAParameter p_data_value = new CDAParameter("data_value", 0);
  67. // // 12月
  68. // //p_data_value.Value = (int)param["qty12"];
  69. // //conn.ExecuteNonQuery();
  70. //}
  71. StringBuilder tmp_sql = new StringBuilder(" insert all ");
  72. tmp_sql.AppendLine();
  73. string sql_in = "into t_reckon_prod_diff (cw_year, cw_month, reckon_month, sap_sku, goodsid, data_type, data_value, SKU_NAME, SALES_CATEGORY_THREE, SAP_DATATYPE,SAP_DATAVERSION,SAP_DATASOURCE) values (";
  74. foreach (JToken param in paramsArray)
  75. {
  76. string productCode = "'" + param["productCode"] + "'";
  77. string product_name = ",'" + param["product_name"] + "'";
  78. string sales_category_three = ",'" + param["sales_category_three"] + "'";
  79. string dataType = ",'" + param["dataType"] + "'";
  80. string dataVersion = ",'" + param["dataVersion"] + "'";
  81. string dataSource = ",'" + param["dataSource"] + "'";
  82. tmp_sql.Append(sql_in);
  83. tmp_sql.Append(year);
  84. tmp_sql.Append(",");
  85. tmp_sql.Append(12);
  86. tmp_sql.Append(",");
  87. tmp_sql.Append("date'" + (year - 1) + "-12-01'");
  88. tmp_sql.Append(",");
  89. tmp_sql.Append(productCode);
  90. tmp_sql.Append(",");
  91. tmp_sql.Append("null");
  92. tmp_sql.Append(",");
  93. tmp_sql.Append(100);
  94. tmp_sql.Append(",");
  95. tmp_sql.Append(GetQty(param["qty12"]));
  96. tmp_sql.Append(product_name);
  97. tmp_sql.Append(sales_category_three);
  98. tmp_sql.Append(dataType);
  99. tmp_sql.Append(dataVersion);
  100. tmp_sql.Append(dataSource);
  101. tmp_sql.AppendLine(")");
  102. tmp_sql.Append(sql_in);
  103. tmp_sql.Append(year);
  104. tmp_sql.Append(",");
  105. tmp_sql.Append(1);
  106. tmp_sql.Append(",");
  107. tmp_sql.Append("date'" + (year) + "-01-01'");
  108. tmp_sql.Append(",");
  109. tmp_sql.Append(productCode);
  110. tmp_sql.Append(",");
  111. tmp_sql.Append("null");
  112. tmp_sql.Append(",");
  113. tmp_sql.Append(100);
  114. tmp_sql.Append(",");
  115. tmp_sql.Append(GetQty(param["qty1"]));
  116. tmp_sql.Append(product_name);
  117. tmp_sql.Append(sales_category_three);
  118. tmp_sql.Append(dataType);
  119. tmp_sql.Append(dataVersion);
  120. tmp_sql.Append(dataSource);
  121. tmp_sql.AppendLine(")");
  122. tmp_sql.Append(sql_in);
  123. tmp_sql.Append(year);
  124. tmp_sql.Append(",");
  125. tmp_sql.Append(2);
  126. tmp_sql.Append(",");
  127. tmp_sql.Append("date'" + (year) + "-02-01'");
  128. tmp_sql.Append(",");
  129. tmp_sql.Append(productCode);
  130. tmp_sql.Append(",");
  131. tmp_sql.Append("null");
  132. tmp_sql.Append(",");
  133. tmp_sql.Append(100);
  134. tmp_sql.Append(",");
  135. tmp_sql.Append(GetQty(param["qty2"]));
  136. tmp_sql.Append(product_name);
  137. tmp_sql.Append(sales_category_three);
  138. tmp_sql.Append(dataType);
  139. tmp_sql.Append(dataVersion);
  140. tmp_sql.Append(dataSource);
  141. tmp_sql.AppendLine(")");
  142. tmp_sql.Append(sql_in);
  143. tmp_sql.Append(year);
  144. tmp_sql.Append(",");
  145. tmp_sql.Append(3);
  146. tmp_sql.Append(",");
  147. tmp_sql.Append("date'" + (year) + "-03-01'");
  148. tmp_sql.Append(",");
  149. tmp_sql.Append(productCode);
  150. tmp_sql.Append(",");
  151. tmp_sql.Append("null");
  152. tmp_sql.Append(",");
  153. tmp_sql.Append(100);
  154. tmp_sql.Append(",");
  155. tmp_sql.Append(GetQty(param["qty3"]));
  156. tmp_sql.Append(product_name);
  157. tmp_sql.Append(sales_category_three);
  158. tmp_sql.Append(dataType);
  159. tmp_sql.Append(dataVersion);
  160. tmp_sql.Append(dataSource);
  161. tmp_sql.AppendLine(")");
  162. tmp_sql.Append(sql_in);
  163. tmp_sql.Append(year);
  164. tmp_sql.Append(",");
  165. tmp_sql.Append(4);
  166. tmp_sql.Append(",");
  167. tmp_sql.Append("date'" + (year) + "-04-01'");
  168. tmp_sql.Append(",");
  169. tmp_sql.Append(productCode);
  170. tmp_sql.Append(",");
  171. tmp_sql.Append("null");
  172. tmp_sql.Append(",");
  173. tmp_sql.Append(100);
  174. tmp_sql.Append(",");
  175. tmp_sql.Append(GetQty(param["qty4"]));
  176. tmp_sql.Append(product_name);
  177. tmp_sql.Append(sales_category_three);
  178. tmp_sql.Append(dataType);
  179. tmp_sql.Append(dataVersion);
  180. tmp_sql.Append(dataSource);
  181. tmp_sql.AppendLine(")");
  182. tmp_sql.Append(sql_in);
  183. tmp_sql.Append(year);
  184. tmp_sql.Append(",");
  185. tmp_sql.Append(5);
  186. tmp_sql.Append(",");
  187. tmp_sql.Append("date'" + (year) + "-05-01'");
  188. tmp_sql.Append(",");
  189. tmp_sql.Append(productCode);
  190. tmp_sql.Append(",");
  191. tmp_sql.Append("null");
  192. tmp_sql.Append(",");
  193. tmp_sql.Append(100);
  194. tmp_sql.Append(",");
  195. tmp_sql.Append(GetQty(param["qty5"]));
  196. tmp_sql.Append(product_name);
  197. tmp_sql.Append(sales_category_three);
  198. tmp_sql.Append(dataType);
  199. tmp_sql.Append(dataVersion);
  200. tmp_sql.Append(dataSource);
  201. tmp_sql.AppendLine(")");
  202. tmp_sql.Append(sql_in);
  203. tmp_sql.Append(year);
  204. tmp_sql.Append(",");
  205. tmp_sql.Append(6);
  206. tmp_sql.Append(",");
  207. tmp_sql.Append("date'" + (year) + "-06-01'");
  208. tmp_sql.Append(",");
  209. tmp_sql.Append(productCode);
  210. tmp_sql.Append(",");
  211. tmp_sql.Append("null");
  212. tmp_sql.Append(",");
  213. tmp_sql.Append(100);
  214. tmp_sql.Append(",");
  215. tmp_sql.Append(GetQty(param["qty6"]));
  216. tmp_sql.Append(product_name);
  217. tmp_sql.Append(sales_category_three);
  218. tmp_sql.Append(dataType);
  219. tmp_sql.Append(dataVersion);
  220. tmp_sql.Append(dataSource);
  221. tmp_sql.AppendLine(")");
  222. tmp_sql.Append(sql_in);
  223. tmp_sql.Append(year);
  224. tmp_sql.Append(",");
  225. tmp_sql.Append(7);
  226. tmp_sql.Append(",");
  227. tmp_sql.Append("date'" + (year) + "-07-01'");
  228. tmp_sql.Append(",");
  229. tmp_sql.Append(productCode);
  230. tmp_sql.Append(",");
  231. tmp_sql.Append("null");
  232. tmp_sql.Append(",");
  233. tmp_sql.Append(100);
  234. tmp_sql.Append(",");
  235. tmp_sql.Append(GetQty(param["qty7"]));
  236. tmp_sql.Append(product_name);
  237. tmp_sql.Append(sales_category_three);
  238. tmp_sql.Append(dataType);
  239. tmp_sql.Append(dataVersion);
  240. tmp_sql.Append(dataSource);
  241. tmp_sql.AppendLine(")");
  242. tmp_sql.Append(sql_in);
  243. tmp_sql.Append(year);
  244. tmp_sql.Append(",");
  245. tmp_sql.Append(8);
  246. tmp_sql.Append(",");
  247. tmp_sql.Append("date'" + (year) + "-08-01'");
  248. tmp_sql.Append(",");
  249. tmp_sql.Append(productCode);
  250. tmp_sql.Append(",");
  251. tmp_sql.Append("null");
  252. tmp_sql.Append(",");
  253. tmp_sql.Append(100);
  254. tmp_sql.Append(",");
  255. tmp_sql.Append(GetQty(param["qty8"]));
  256. tmp_sql.Append(product_name);
  257. tmp_sql.Append(sales_category_three);
  258. tmp_sql.Append(dataType);
  259. tmp_sql.Append(dataVersion);
  260. tmp_sql.Append(dataSource);
  261. tmp_sql.AppendLine(")");
  262. tmp_sql.Append(sql_in);
  263. tmp_sql.Append(year);
  264. tmp_sql.Append(",");
  265. tmp_sql.Append(9);
  266. tmp_sql.Append(",");
  267. tmp_sql.Append("date'" + (year) + "-09-01'");
  268. tmp_sql.Append(",");
  269. tmp_sql.Append(productCode);
  270. tmp_sql.Append(",");
  271. tmp_sql.Append("null");
  272. tmp_sql.Append(",");
  273. tmp_sql.Append(100);
  274. tmp_sql.Append(",");
  275. tmp_sql.Append(GetQty(param["qty9"]));
  276. tmp_sql.Append(product_name);
  277. tmp_sql.Append(sales_category_three);
  278. tmp_sql.Append(dataType);
  279. tmp_sql.Append(dataVersion);
  280. tmp_sql.Append(dataSource);
  281. tmp_sql.AppendLine(")");
  282. tmp_sql.Append(sql_in);
  283. tmp_sql.Append(year);
  284. tmp_sql.Append(",");
  285. tmp_sql.Append(10);
  286. tmp_sql.Append(",");
  287. tmp_sql.Append("date'" + (year) + "-10-01'");
  288. tmp_sql.Append(",");
  289. tmp_sql.Append(productCode);
  290. tmp_sql.Append(",");
  291. tmp_sql.Append("null");
  292. tmp_sql.Append(",");
  293. tmp_sql.Append(100);
  294. tmp_sql.Append(",");
  295. tmp_sql.Append(GetQty(param["qty10"]));
  296. tmp_sql.Append(product_name);
  297. tmp_sql.Append(sales_category_three);
  298. tmp_sql.Append(dataType);
  299. tmp_sql.Append(dataVersion);
  300. tmp_sql.Append(dataSource);
  301. tmp_sql.AppendLine(")");
  302. tmp_sql.Append(sql_in);
  303. tmp_sql.Append(year);
  304. tmp_sql.Append(",");
  305. tmp_sql.Append(11);
  306. tmp_sql.Append(",");
  307. tmp_sql.Append("date'" + (year) + "-11-01'");
  308. tmp_sql.Append(",");
  309. tmp_sql.Append(productCode);
  310. tmp_sql.Append(",");
  311. tmp_sql.Append("null");
  312. tmp_sql.Append(",");
  313. tmp_sql.Append(100);
  314. tmp_sql.Append(",");
  315. tmp_sql.Append(GetQty(param["qty11"]));
  316. tmp_sql.Append(product_name);
  317. tmp_sql.Append(sales_category_three);
  318. tmp_sql.Append(dataType);
  319. tmp_sql.Append(dataVersion);
  320. tmp_sql.Append(dataSource);
  321. tmp_sql.AppendLine(")");
  322. }
  323. tmp_sql.AppendLine("select 1 from dual");
  324. int result = conn.ExecuteNonQuery(tmp_sql.ToString());
  325. conn.Commit();
  326. msg += " 【t_reckon_prod_diff】操作成功";
  327. }
  328. // 刷新差异
  329. using (IDataAccess conn = DataAccess.Create())
  330. {
  331. conn.BeginTransaction();
  332. int result = conn.ExecuteSPNonQuery("pro_auto_reckon_prod_diff", new CDAParameter("@in_accountid@", 1), new CDAParameter("@in_date@", today));
  333. conn.Commit();
  334. msg += " 【pro_auto_reckon_prod_diff】操作成功";
  335. }
  336. }
  337. return msg;
  338. }
  339. catch (Exception e)
  340. {
  341. return "操作失败:" + e.Message;
  342. }
  343. }
  344. private static string GetQty(object value)
  345. {
  346. string s = value + "";
  347. if (s == null || s == "" || s == "null")
  348. {
  349. return "0";
  350. }
  351. return s;
  352. }
  353. }