CY_NC_Api.cs 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745
  1. using ConsoleApp1.Controller.Sql_controller;
  2. using ConsoleApp1.Controller.Ykb_API;
  3. using ConsoleApp1.Model;
  4. using H3.BizBus;
  5. using Newtonsoft.Json;
  6. using Newtonsoft.Json.Linq;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Data;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. namespace ConsoleApp1.Controller.CY_API
  14. {
  15. /// <summary>
  16. /// NC同步基础资料到氚云
  17. /// </summary>
  18. public class CY_NC_Api
  19. {
  20. //private Ding_YP_Public ding_YP_Public = new Ding_YP_Public();
  21. private Ykb_APIServer ykb_API = new Ykb_APIServer();
  22. public void NC_CY()
  23. {
  24. string ykbToken = ykb_API.dttoken();
  25. string dates = (DateTime.Now.AddDays(-5)).ToString("yyyy-MM-dd"); //获取当前年月日
  26. //string dates = "2021-02-22";
  27. IBDdocQuer.BDdocQueyPortTypeClient cs = new IBDdocQuer.BDdocQueyPortTypeClient();
  28. //string css1 = CY_API_Server.LoadBizObjects("LoadBizObjects", "D116604ab3e5ca3a3f944b2bb2db76b67780a2a", this.Filter("张涛"));
  29. int i = 0, j = 0; string mun = "", codes = null;
  30. #region NC 业务单元
  31. do
  32. {
  33. i = i + 1;
  34. var json = cs.bdDocQuey("{\"data\": {\"billfalg\": \"业务单元\",\"currentPage\":" + i + ",\"linesize\":\"200\",\"creationtime\":\"creationtime >= '" + dates + "'\"}}");//,\"code\":\"G00070\",\"ts\": \"ts>='"+ dates + "'\,\"ts\": \"ts\">='2021-02-22'\",\"currentPage\":" + i + ",\"linesize\":\"200\", ,\"ts\":\"ts >= '" + dates + "'\"
  35. JObject ResultJson = JsonConvert.DeserializeObject<JObject>(json.ToString());
  36. mun = ResultJson["msg"].ToString();
  37. if (ResultJson["code"].ToString() == "Y")
  38. {
  39. foreach (var item in ResultJson["returndata"])
  40. {
  41. ///调用查询方法判断该表中是否存在该条Code的值
  42. string css = CY_API_Server.LoadBizObjects("LoadBizObjects", "D116604Szkzflihsy7yhpiqs3v99ysio4", this.Filter(item["code"].ToString()));
  43. JObject jObject = JsonConvert.DeserializeObject<JObject>(css);
  44. if (jObject["Successful"].ToString().ToLower() == "true" && !string.IsNullOrEmpty(jObject["ReturnData"].ToString())) //表示已经存在
  45. {
  46. //ykb_API.InsertDAN(ykbToken, item["code"].ToString(), "gCEbY44UmM4Q00:法人实体", item["name"].ToString());
  47. string setData = ykb_API.setDAN(ykbToken, item["code"].ToString());
  48. int man = Convert.ToInt32(setData);
  49. if (man < 1)
  50. {
  51. ykb_API.InsertDAN(ykbToken, item["name"].ToString(), "gCEbY44UmM4Q00:法人实体", item["code"].ToString());
  52. }
  53. DataTable dt1 = BizObjectId(jObject);
  54. dt1.PrimaryKey = new DataColumn[] { dt1.Columns["Code"] };
  55. DataRow rows = dt1.Rows.Find(item["code"]);
  56. string ObjectId = string.Format(rows["ObjectId"].ToString());
  57. BusinessUnit businessUnit = new BusinessUnit()
  58. {
  59. F0000001 = item["code"].ToString(),
  60. F0000002 = item["name"].ToString()
  61. };
  62. Dictionary<string, string> dic = new Dictionary<string, string>();
  63. dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit));
  64. //调用修改方法进行修改
  65. CY_API_Server.UpdateBizObject("UpdateBizObject", "D116604Szkzflihsy7yhpiqs3v99ysio4", ObjectId, dic);
  66. }
  67. else
  68. {
  69. string setData = ykb_API.setDAN(ykbToken, item["code"].ToString());
  70. int man = Convert.ToInt32(setData);
  71. if (man < 1)
  72. {
  73. ykb_API.InsertDAN(ykbToken, item["name"].ToString(), "gCEbY44UmM4Q00:法人实体", item["code"].ToString());
  74. }
  75. //氚云接口(1.需要实体类 2.数据集合 3.IsSubmit)
  76. BusinessUnit businessUnit = new BusinessUnit()
  77. {
  78. F0000001 = item["code"].ToString(),
  79. F0000002 = item["name"].ToString()
  80. };
  81. Dictionary<string, string> dic = new Dictionary<string, string>();
  82. dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit));
  83. dic.Add("SchemaCode", "D116604Szkzflihsy7yhpiqs3v99ysio4");
  84. dic.Add("IsSubmit", "true");
  85. bool success = false;
  86. ///新增方法
  87. CY_API_Server.H3YunApi("CreateBizObject", dic, out success);
  88. if (success)
  89. {
  90. j++;
  91. codes += "&" + item["code"].ToString();
  92. }
  93. else
  94. {
  95. //_Controller.Synchronous_Log("氚云同步失败", "错误原因:氚云错误!");
  96. }
  97. }
  98. }
  99. if (j > 0)
  100. {
  101. //ding_YP_Public.send_to_conversation(null, "text", "业务单元新增" + j + "条数据,数据为:" + codes, false, "1951251420023804");
  102. }
  103. Sql_Controller.Synchronous_Log("业务单元同步成功","0", "成功信息:" + ResultJson["msg"].ToString());
  104. }
  105. else
  106. {
  107. Sql_Controller.Synchronous_Log("业务单元同步失败","1", "错误原因:" + ResultJson["msg"].ToString());
  108. }
  109. } while (mun == "查询到200条数据");
  110. i = 0; j = 0; codes = null;
  111. #endregion
  112. #region NC 项目档案
  113. do
  114. {
  115. i = i + 1;
  116. var json1 = cs.bdDocQuey("{\"data\": {\"billfalg\": \"项目档案\",\"currentPage\":" + i + ",\"linesize\":\"200\",\"creationtime\":\"creationtime >= '" + dates + "'\"}}");//,\"code\":\"XX00096\",\"currentPage\":" + i + ",\"linesize\":\"200\"
  117. JObject ResultJson1 = JsonConvert.DeserializeObject<JObject>(json1.ToString());
  118. mun = ResultJson1["msg"].ToString();
  119. if (ResultJson1["code"].ToString() == "Y")
  120. {
  121. foreach (var item2 in ResultJson1["returndata"])
  122. {
  123. ///调用批量查询接口
  124. string css = CY_API_Server.LoadBizObjects("LoadBizObjects", "D11660428ef6c76643f493daaa976d0909157cd", this.Filter(item2["project_code"].ToString()));
  125. JObject jObject = JsonConvert.DeserializeObject<JObject>(css);
  126. if (jObject["Successful"].ToString().ToLower() == "true" && !string.IsNullOrEmpty(jObject["ReturnData"].ToString())) //表示已经存在
  127. {
  128. //ykb_API.InsertDAN(ykbToken, item2["project_code"].ToString(), "gCEbY44UmM4Q00:项目", item2["project_name"].ToString());
  129. string setData = ykb_API.setDAN(ykbToken, item2["project_code"].ToString());
  130. if (Convert.ToInt32(setData) < 1)
  131. {
  132. ykb_API.InsertDAN(ykbToken, item2["project_name"].ToString(), "gCEbY44UmM4Q00:项目", item2["project_code"].ToString());
  133. }
  134. DataTable dt = BizObjectId(jObject);
  135. dt.PrimaryKey = new DataColumn[] { dt.Columns["Code"] };
  136. DataRow rows = dt.Rows.Find(item2["project_code"]);
  137. string ObjectId = string.Format(rows["ObjectId"].ToString());
  138. ProjectFiles businessUnit = new ProjectFiles()
  139. {
  140. F0000001 = item2["project_code"].ToString(),
  141. F0000002 = item2["project_name"].ToString(),
  142. F0000003 = item2["orgcode"].ToString(),
  143. F0000004 = item2["orgname"].ToString()
  144. };
  145. Dictionary<string, string> dic = new Dictionary<string, string>();
  146. dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit));
  147. //调用修改方法进行修改
  148. CY_API_Server.UpdateBizObject("UpdateBizObject", "D11660428ef6c76643f493daaa976d0909157cd", ObjectId, dic);
  149. }
  150. else //无数据则新增进去
  151. {
  152. string setData = ykb_API.setDAN(ykbToken,item2["project_code"].ToString());
  153. if (Convert.ToInt32(setData) < 1)
  154. {
  155. ykb_API.InsertDAN(ykbToken, item2["project_name"].ToString(), "gCEbY44UmM4Q00:项目", item2["project_code"].ToString());
  156. }
  157. //氚云接口(1.需要实体类 2.数据集合 3.IsSubmit)
  158. ProjectFiles project = new ProjectFiles()
  159. {
  160. F0000001 = item2["project_code"].ToString(),
  161. F0000002 = item2["project_name"].ToString(),
  162. F0000003 = item2["orgcode"].ToString(),
  163. F0000004 = item2["orgname"].ToString()
  164. };
  165. Dictionary<string, string> dic = new Dictionary<string, string>();
  166. dic.Add("BizObject", JsonConvert.SerializeObject(project));
  167. dic.Add("SchemaCode", "D11660428ef6c76643f493daaa976d0909157cd");
  168. dic.Add("IsSubmit", "true");
  169. bool success = false;
  170. CY_API_Server.H3YunApi("CreateBizObject", dic, out success);
  171. if (success)
  172. {
  173. j++;
  174. codes += "&" + item2["project_code"].ToString();
  175. }
  176. else
  177. {
  178. //_Controller.Synchronous_Log("氚云同步失败", "错误原因:氚云错误!");
  179. }
  180. }
  181. }
  182. if (j > 0)
  183. {
  184. //ding_YP_Public.send_to_conversation(null, "text", "项目档案新增" + j + "条数据,数据为:" + codes, false, "1951251420023804");
  185. }
  186. Sql_Controller.Synchronous_Log("项目档案同步成功", "0","成功信息:" + ResultJson1["msg"].ToString());
  187. }
  188. else
  189. {
  190. Sql_Controller.Synchronous_Log("项目档案同步失败","1", "错误原因:" + ResultJson1["msg"].ToString());
  191. }
  192. } while (mun == "查询到200条数据");
  193. i = 0; j = 0;
  194. #endregion
  195. #region 客商档案
  196. do
  197. {
  198. i = i + 1;
  199. var json3 = cs.bdDocQuey("{\"data\": {\"billfalg\": \"客商\",\"currentPage\":" + i + ",\"linesize\":\"200\",\"creationtime\":\"creationtime >= '" + dates + "'\"}}");//,\"code\":\"W09999\"\"currentPage\":" + i + ",\"linesize\":\"200\",\"creationtime\": \"creationtime >= '" + dates + "'\"
  200. JObject ResultJson3 = JsonConvert.DeserializeObject<JObject>(json3.ToString());
  201. mun = ResultJson3["msg"].ToString();
  202. if (ResultJson3["code"].ToString() == "Y")
  203. {
  204. foreach (var item4 in ResultJson3["returndata"])
  205. {
  206. string css = CY_API_Server.LoadBizObjects("LoadBizObjects", "D1166047df1ad979abe4335b41ec9b070b6d20f", this.Filter(item4["head"]["code"].ToString()));
  207. JObject jObject = JsonConvert.DeserializeObject<JObject>(css);
  208. if (jObject["Successful"].ToString().ToLower() == "true" && !string.IsNullOrEmpty(jObject["ReturnData"].ToString())) //表示已经存在
  209. {
  210. //ykb_API.InsertDAN(ykbToken, item4["head"]["name"].ToString(), "gCEbY44UmM4Q00:客商档案", item4["head"]["code"].ToString());
  211. string setData = ykb_API.setDAN(ykbToken, item4["head"]["code"].ToString());
  212. if (Convert.ToInt32(setData) < 1)
  213. {
  214. ykb_API.InsertDAN(ykbToken, item4["head"]["name"].ToString(), "gCEbY44UmM4Q00:供应商档案", item4["head"]["code"].ToString());
  215. }
  216. DataTable dt4 = BizObjectId(jObject);
  217. dt4.PrimaryKey = new DataColumn[] { dt4.Columns["Code"] };
  218. DataRow rows = dt4.Rows.Find(item4["head"]["code"]);
  219. string ObjectId = string.Format(rows["ObjectId"].ToString());
  220. merchantsUnit businessUnit = new merchantsUnit()
  221. {
  222. F0000001 = item4["head"]["code"].ToString(),
  223. F0000002 = item4["head"]["name"].ToString()
  224. };
  225. Dictionary<string, string> dic = new Dictionary<string, string>();
  226. dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit));
  227. //调用修改方法进行修改
  228. CY_API_Server.UpdateBizObject("UpdateBizObject", "D1166047df1ad979abe4335b41ec9b070b6d20f", ObjectId, dic);
  229. }
  230. else
  231. {
  232. string setData = ykb_API.setDAN(ykbToken, item4["head"]["code"].ToString());
  233. if (Convert.ToInt32(setData) < 1)
  234. {
  235. ykb_API.InsertDAN(ykbToken, item4["head"]["name"].ToString(), "gCEbY44UmM4Q00:供应商档案", item4["head"]["code"].ToString());
  236. }
  237. merchantsUnit dapa = new merchantsUnit()
  238. {
  239. F0000001 = item4["head"]["code"].ToString(),
  240. F0000002 = item4["head"]["name"].ToString()
  241. };
  242. Dictionary<string, string> dic = new Dictionary<string, string>();
  243. dic.Add("BizObject", JsonConvert.SerializeObject(dapa));
  244. dic.Add("SchemaCode", "D1166047df1ad979abe4335b41ec9b070b6d20f");
  245. dic.Add("IsSubmit", "true");
  246. bool success = false;
  247. CY_API_Server.H3YunApi("CreateBizObject", dic, out success);
  248. if (success)
  249. {
  250. j++;
  251. codes += "&" + item4["head"]["code"].ToString();
  252. }
  253. else
  254. {
  255. //_Controller.Synchronous_Log("氚云同步失败", "错误原因:氚云错误!");
  256. }
  257. }
  258. }
  259. if (j > 0)
  260. {
  261. //ding_YP_Public.send_to_conversation(null, "text", "客商档案新增" + j + "条数据,数据为:" + codes, false, "1951251420023804");//
  262. }
  263. Sql_Controller.Synchronous_Log("客商档案同步成功","0" ,"成功信息:" + ResultJson3["msg"].ToString());
  264. }
  265. else
  266. {
  267. Sql_Controller.Synchronous_Log("客商档案同步失败","1", "错误原因:" + ResultJson3["msg"].ToString());
  268. }
  269. } while (mun == "查询到200条数据");
  270. i = 0; j = 0;
  271. #endregion
  272. #region 预算组织
  273. do
  274. {
  275. i = i + 1;
  276. var json4 = cs.bdDocQuey("{\"data\": {\"billfalg\": \"预算组织\",\"currentPage\":" + i + ",\"linesize\":\"200\",\"creationtime\":\"creationtime >= '" + dates + "'\"}}"); //\"currentPage\":" + i + ",\"linesize\":\"200\",
  277. JObject ResultJson4 = JsonConvert.DeserializeObject<JObject>(json4.ToString());
  278. mun = ResultJson4["msg"].ToString();
  279. if (ResultJson4["code"].ToString() == "Y")
  280. {
  281. foreach (var item5 in ResultJson4["returndata"])
  282. {
  283. string css = CY_API_Server.LoadBizObjects("LoadBizObjects", "D116604Sq74oibupd5yckiaxh8209f1q5", this.Filter1(item5["code"].ToString()));
  284. JObject jObject = JsonConvert.DeserializeObject<JObject>(css);
  285. if (jObject["Successful"].ToString().ToLower() == "true" && !string.IsNullOrEmpty(jObject["ReturnData"].ToString())) //表示已经存在
  286. {
  287. string setData = ykb_API.setDAN(ykbToken, item5["code"].ToString());
  288. if (Convert.ToInt32(setData) < 1)
  289. {
  290. ykb_API.InsertDAN(ykbToken, item5["name"].ToString(), "gCEbY44UmM4Q00:预算组织", item5["code"].ToString());
  291. }
  292. DataTable dt5 = BizObjectId2(jObject);
  293. dt5.PrimaryKey = new DataColumn[] { dt5.Columns["Code"] };
  294. DataRow rows = dt5.Rows.Find(item5["code"]);
  295. string ObjectId = string.Format(rows["ObjectId"].ToString());
  296. merchantsUnit businessUnit = new merchantsUnit()
  297. {
  298. F0000002 = item5["code"].ToString(),
  299. F0000001 = item5["name"].ToString()
  300. };
  301. Dictionary<string, string> dic = new Dictionary<string, string>();
  302. dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit));
  303. //调用修改方法进行修改
  304. CY_API_Server.UpdateBizObject("UpdateBizObject", "D116604Sq74oibupd5yckiaxh8209f1q5", ObjectId, dic);
  305. }
  306. else
  307. {
  308. string setData = ykb_API.setDAN(ykbToken, item5["code"].ToString());
  309. if (Convert.ToInt32(setData) < 1)
  310. {
  311. ykb_API.InsertDAN(ykbToken, item5["name"].ToString(), "gCEbY44UmM4Q00:预算组织", item5["code"].ToString());
  312. }
  313. TheBudget Yv = new TheBudget()
  314. {
  315. F0000002 = item5["code"].ToString(),
  316. F0000001 = item5["name"].ToString()
  317. };
  318. Dictionary<string, string> dic = new Dictionary<string, string>();
  319. dic.Add("BizObject", JsonConvert.SerializeObject(Yv));
  320. dic.Add("SchemaCode", "D116604Sq74oibupd5yckiaxh8209f1q5");
  321. dic.Add("IsSubmit", "true");
  322. bool success = false;
  323. CY_API_Server.H3YunApi("CreateBizObject", dic, out success);
  324. if (success)
  325. {
  326. j++;
  327. codes += "&" + item5["code"].ToString();
  328. }
  329. else
  330. {
  331. //_Controller.Synchronous_Log("氚云同步失败", "错误原因:氚云错误!");
  332. }
  333. }
  334. }
  335. if (j > 0)
  336. {
  337. //ding_YP_Public.send_to_conversation(null, "text", "预算组织新增" + j + "条数据,数据为:" + codes, false, "1951251420023804");
  338. }
  339. Sql_Controller.Synchronous_Log("客商档案同步成功","0","成功信息:" + ResultJson4["msg"].ToString());
  340. }
  341. else
  342. {
  343. Sql_Controller.Synchronous_Log("客商档案同步失败","1", "错误原因:" + ResultJson4["msg"].ToString());
  344. }
  345. } while (mun == "查询到200条数据");
  346. i = 0; j = 0;
  347. #endregion
  348. #region NC 部门档案
  349. do
  350. {
  351. i = i + 1;
  352. var json2 = cs.bdDocQuey("{\"data\": {\"billfalg\": \"部门\",\"currentPage\":" + i + ",\"linesize\":\"200\",\"creationtime\":\"creationtime >= '" + dates + "'\"}}"); //,\"code\":\"0046\"\"currentPage\":" + i + ",\"linesize\":\"200\",
  353. JObject ResultJson2 = JsonConvert.DeserializeObject<JObject>(json2.ToString());
  354. mun = ResultJson2["msg"].ToString();
  355. if (ResultJson2["code"].ToString() == "Y")
  356. {
  357. foreach (var item3 in ResultJson2["returndata"])
  358. {
  359. string css = CY_API_Server.LoadBizObjects("LoadBizObjects", "D11660434d73096fca14c20acffdfa2dfcfb5ac", this.Filter(item3["code"].ToString()));
  360. JObject jObject = JsonConvert.DeserializeObject<JObject>(css);
  361. if (jObject["Successful"].ToString().ToLower() == "true" && !string.IsNullOrEmpty(jObject["ReturnData"].ToString())) //表示已经存在
  362. {
  363. string setData = ykb_API.setDAN(ykbToken, item3["code"].ToString());
  364. if (Convert.ToInt32(setData) < 1)
  365. {
  366. ykb_API.InsertDAN(ykbToken, item3["name"].ToString(), "gCEbY44UmM4Q00:部门档案", item3["code"].ToString());
  367. }
  368. DataTable dt3 = BizObjectId(jObject);
  369. dt3.PrimaryKey = new DataColumn[] { dt3.Columns["Code"] };
  370. DataRow rows = dt3.Rows.Find(item3["code"]);
  371. string ObjectId = string.Format(rows["ObjectId"].ToString());
  372. departmentUnit businessUnit = new departmentUnit()
  373. {
  374. F0000001 = item3["code"].ToString(),
  375. F0000002 = item3["name"].ToString(),
  376. F0000003 = item3["projectcode"].ToString(),
  377. F0000004 = item3["projectname"].ToString()
  378. };
  379. Dictionary<string, string> dic = new Dictionary<string, string>();
  380. dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit));
  381. //调用修改方法进行修改
  382. CY_API_Server.UpdateBizObject("UpdateBizObject", "D11660434d73096fca14c20acffdfa2dfcfb5ac", ObjectId, dic);
  383. }
  384. else
  385. {
  386. string setData = ykb_API.setDAN(ykbToken, item3["code"].ToString());
  387. if (Convert.ToInt32(setData) < 1)
  388. {
  389. ykb_API.InsertDAN(ykbToken, item3["name"].ToString(), "gCEbY44UmM4Q00:部门档案", item3["code"].ToString());
  390. }
  391. //氚云接口(1.需要实体类 2.数据集合 3.IsSubmit)
  392. departmentUnit depa = new departmentUnit()
  393. {
  394. F0000001 = item3["code"].ToString(),
  395. F0000002 = item3["name"].ToString(),
  396. F0000003 = item3["projectcode"].ToString(),
  397. F0000004 = item3["projectname"].ToString()
  398. };
  399. Dictionary<string, string> dic = new Dictionary<string, string>();
  400. dic.Add("BizObject", JsonConvert.SerializeObject(depa));
  401. dic.Add("SchemaCode", "D11660434d73096fca14c20acffdfa2dfcfb5ac");
  402. dic.Add("IsSubmit", "true");
  403. bool success = false;
  404. CY_API_Server.H3YunApi("CreateBizObject", dic, out success);
  405. if (success)
  406. {
  407. j++;
  408. codes += "&" + item3["code"].ToString();
  409. }
  410. else
  411. {
  412. //_Controller.Synchronous_Log("氚云同步失败", "错误原因:氚云错误!");
  413. }
  414. }
  415. }
  416. if (j > 0)
  417. {
  418. //ding_YP_Public.send_to_conversation(null, "text", "部门档案新增" + j + "条数据,数据为:" + codes, false, "1951251420023804");
  419. }
  420. Sql_Controller.Synchronous_Log("部门档案同步成功", "0","成功信息:" + ResultJson2["msg"].ToString());
  421. }
  422. else
  423. {
  424. Sql_Controller.Synchronous_Log("部门档案同步失败","1", "错误原因:" + ResultJson2["msg"].ToString());
  425. }
  426. } while (mun == "查询到200条数据");
  427. i = 0;
  428. #endregion
  429. }
  430. #region 钉钉-氚云
  431. /// <summary>
  432. /// 钉钉写入氚云
  433. /// </summary>
  434. /// <param name="json2"></param>
  435. public void Basic(JObject json2)
  436. {
  437. try
  438. {
  439. string value = json2["userid"].ToString();
  440. ///调用查询方法判断该表中是否存在该条Code的值
  441. string css = CY_API_Server.LoadBizObjects("LoadBizObjects", "D116604ab3e5ca3a3f944b2bb2db76b67780a2a", this.Filter(value, ""));
  442. JObject jObject = JsonConvert.DeserializeObject<JObject>(css);
  443. if (jObject["Successful"].ToString().ToLower() == "true" && !string.IsNullOrEmpty(jObject["ReturnData"].ToString())) //表示已经存在
  444. {
  445. DataTable dt1 = BizObjectId(jObject);
  446. DataTable dt2 = BizObjectId2(json2, value, dt1.Rows[0]["ObjectId"].ToString());
  447. dt2.PrimaryKey = new DataColumn[] { dt2.Columns["userid"] };
  448. //DataRow rows = dt1.Rows.Find(item["code"]);
  449. DataRow rows = dt2.Rows.Find(value);
  450. string ObjectId = string.Format(rows["ObjectId"].ToString());
  451. BasicData businessUnit = new BasicData()
  452. {
  453. F0000009 = value, //员工ID
  454. F0000001 = dt2.Rows[0]["sys00-name"].ToString().Trim(), //姓名 sys00-name
  455. F0000010 = dt2.Rows[0]["sys00-mainDeptId"].ToString().Trim(), //部门ID
  456. F0000002 = dt2.Rows[0]["sys00-mainDept"].ToString().Trim(), //部门
  457. F0000003 = dt2.Rows[0]["145d3425-9dea-42a6-88ae-1e4e3590046c"].ToString().Trim(), //所属公司 145d3425-9dea-42a6-88ae-1e4e3590046c
  458. F0000006 = dt2.Rows[0]["sys00-position"].ToString().Trim(), //岗位 sys00-position
  459. F0000007 = dt2.Rows[0]["sys00-confirmJoinTime"].ToString().Trim(), //入职时间
  460. F0000008 = dt2.Rows[0]["sys01-positionLevel"].ToString().Trim(), //职级 sys01-positionLevel
  461. F0000004 = dt2.Rows[0]["sys05-nowContractStartTime"].ToString().Trim(), //原合同开始时间
  462. F0000005 = dt2.Rows[0]["sys05-nowContractEndTime"].ToString().Trim(), //原合同结束时间
  463. F0000012 = dt2.Rows[0]["sys05-contractPeriodType"].ToString().Trim(), //续签期限 sys05-contractPeriodType
  464. F0000013 = dt2.Rows[0]["sys05-contractRenewCount"].ToString().Trim() //续签次数 sys05-contractRenewCount
  465. };
  466. Dictionary<string, string> dic = new Dictionary<string, string>();
  467. dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit));
  468. ////调用修改方法进行修改
  469. CY_API_Server.UpdateBizObject("UpdateBizObject", "D116604ab3e5ca3a3f944b2bb2db76b67780a2a", ObjectId, dic);
  470. }
  471. else
  472. {
  473. DataTable dt2 = BizObjectId2(json2, value, "");
  474. //dt2.PrimaryKey = new DataColumn[] { dt2.Columns["Code"]};
  475. //DataRow rows = dt2.Rows.Find(dt2.Columns["field_list"]);
  476. //string ObjectId = string.Format(rows["ObjectId"].ToString());
  477. //氚云接口(1.需要实体类 2.数据集合 3.IsSubmit)
  478. BasicData businessUnit = new BasicData()
  479. {
  480. F0000009 = value, //员工ID
  481. F0000001 = dt2.Rows[0]["sys00-name"].ToString(), //姓名 sys00-name
  482. F0000010 = dt2.Rows[0]["sys00-mainDeptId"].ToString(), //部门ID
  483. F0000002 = dt2.Rows[0]["sys00-mainDept"].ToString(), //部门
  484. F0000003 = dt2.Rows[0]["145d3425-9dea-42a6-88ae-1e4e3590046c"].ToString(), //所属公司 145d3425-9dea-42a6-88ae-1e4e3590046c
  485. F0000006 = dt2.Rows[0]["sys00-position"].ToString(), //岗位 sys00-position
  486. F0000007 = dt2.Rows[0]["sys00-confirmJoinTime"].ToString(), //入职时间
  487. F0000008 = dt2.Rows[0]["sys01-positionLevel"].ToString(), //职级 sys01-positionLevel
  488. F0000004 = dt2.Rows[0]["sys05-nowContractStartTime"].ToString(), //原合同开始时间
  489. F0000005 = dt2.Rows[0]["sys05-nowContractEndTime"].ToString(), //原合同结束时间
  490. F0000012 = dt2.Rows[0]["sys05-contractPeriodType"].ToString(), //续签期限 sys05-contractPeriodType
  491. F0000013 = dt2.Rows[0]["sys05-contractRenewCount"].ToString() //续签次数 sys05-contractRenewCount
  492. };
  493. Dictionary<string, string> dic = new Dictionary<string, string>();
  494. dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit));
  495. dic.Add("SchemaCode", "D116604ab3e5ca3a3f944b2bb2db76b67780a2a");
  496. dic.Add("IsSubmit", "true");
  497. bool success = false;
  498. ///新增方法
  499. CY_API_Server.H3YunApi("CreateBizObject", dic, out success);
  500. if (success)
  501. {
  502. }
  503. else
  504. {
  505. //_Controller.Synchronous_Log("氚云同步失败", "错误原因:氚云错误!");
  506. }
  507. }
  508. }
  509. catch (Exception ex)
  510. {
  511. throw ex;
  512. }
  513. }
  514. /// <summary>
  515. /// 钉钉写入氚云-基础资料-人员基础信息
  516. /// </summary>
  517. /// <param name="json3"></param>
  518. public void employee(JObject json3)
  519. {
  520. try
  521. {
  522. string value = json3["userid"].ToString();
  523. ///调用查询方法判断该表中是否存在该条Code的值
  524. string css = CY_API_Server.LoadBizObjects("LoadBizObjects", "D116604d621ec6c5f904694941a255b98aca91b", this.Filter(value, ""));
  525. JObject jObject = JsonConvert.DeserializeObject<JObject>(css);
  526. if (jObject["Successful"].ToString().ToLower() == "true" && !string.IsNullOrEmpty(jObject["ReturnData"].ToString())) //表示已经存在
  527. {
  528. DataTable dt3 = BizObjectId(jObject);
  529. DataTable dt4 = BizObjectId2(json3, value, dt3.Rows[0]["ObjectId"].ToString());
  530. dt4.PrimaryKey = new DataColumn[] { dt4.Columns["userid"] };
  531. //DataRow rows = dt3.Rows.Find(item["code"]);
  532. DataRow rows = dt4.Rows.Find(value);
  533. string ObjectId = string.Format(rows["ObjectId"].ToString());
  534. BasicData businessUnit = new BasicData()
  535. {
  536. F0000009 = value, //员工ID
  537. F0000001 = dt4.Rows[0]["sys00-name"].ToString(), //姓名 sys00-name
  538. F0000005 = dt4.Rows[0]["a66a51a7-dcaa-47da-b056-ccebe6fca72d"].ToString(),
  539. F0000002 = dt4.Rows[0]["145d3425-9dea-42a6-88ae-1e4e3590046c"].ToString(),
  540. F0000003 = dt4.Rows[0]["473f9667-d220-426f-8431-56be1e8a027d"].ToString(),
  541. F0000004 = dt4.Rows[0]["395840c1-2cbe-4f36-b3fb-249d7ddf42f2"].ToString()
  542. };
  543. Dictionary<string, string> dic = new Dictionary<string, string>();
  544. dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit));
  545. ////调用修改方法进行修改
  546. CY_API_Server.UpdateBizObject("UpdateBizObject", "D116604d621ec6c5f904694941a255b98aca91b", ObjectId, dic);
  547. }
  548. else
  549. {
  550. DataTable dt4 = BizObjectId2(json3, value, "");
  551. BasicPersonnelInformation businessUnit = new BasicPersonnelInformation()
  552. {
  553. F0000009 = value, //员工ID
  554. F0000001 = dt4.Rows[0]["sys00-name"].ToString(), //姓名 sys00-name
  555. F0000005 = dt4.Rows[0]["a66a51a7-dcaa-47da-b056-ccebe6fca72d"].ToString(),
  556. F0000002 = dt4.Rows[0]["145d3425-9dea-42a6-88ae-1e4e3590046c"].ToString(),
  557. F0000003 = dt4.Rows[0]["473f9667-d220-426f-8431-56be1e8a027d"].ToString(),
  558. F0000004 = dt4.Rows[0]["395840c1-2cbe-4f36-b3fb-249d7ddf42f2"].ToString()
  559. };
  560. Dictionary<string, string> dic = new Dictionary<string, string>();
  561. dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit));
  562. dic.Add("SchemaCode", "D116604d621ec6c5f904694941a255b98aca91b");
  563. dic.Add("IsSubmit", "true");
  564. bool success = false;
  565. ///新增方法
  566. CY_API_Server.H3YunApi("CreateBizObject", dic, out success);
  567. if (success)
  568. {
  569. }
  570. else
  571. {
  572. //_Controller.Synchronous_Log("氚云同步失败", "错误原因:氚云错误!");
  573. }
  574. }
  575. }
  576. catch (Exception ex)
  577. {
  578. throw ex;
  579. }
  580. }
  581. #endregion
  582. #region 过滤器
  583. public string Filter(string code)
  584. {
  585. // return "{\"FromRowNum\": -1,\"RequireCount\": 5000,\"ReturnItems\": [], \"SortByCollection\": [],\"ToRowNum\": 5000, \"Matcher\": { \"Type\": \"And\", \"Matchers\": [{\"Name\":\"F0000001\",\"Operator\":2,\"Value\":\""+code+ "\"}]}}";
  586. Filter filter = new Filter(); //构建过滤器
  587. And andMatcher = new And(); //构造And匹配器
  588. andMatcher.Add(new ItemMatcher("F0000001", ComparisonOperatorType.Equal, code)); //添加查询条件
  589. //andMatcher.Add(new ItemMatcher("ZT", ComparisonOperatorType.Equal, qJ.ZT)); //添加查询条件
  590. filter.Matcher = andMatcher;
  591. filter.ToRowNum = 500;
  592. return H3.BizBus.BizStructureUtility.FilterToJson(filter);
  593. }
  594. public string Filter1(string code)
  595. {
  596. // return "{\"FromRowNum\": -1,\"RequireCount\": 5000,\"ReturnItems\": [], \"SortByCollection\": [],\"ToRowNum\": 5000, \"Matcher\": { \"Type\": \"And\", \"Matchers\": [{\"Name\":\"F0000001\",\"Operator\":2,\"Value\":\""+code+ "\"}]}}";
  597. Filter filter = new Filter(); //构建过滤器
  598. And andMatcher = new And(); //构造And匹配器
  599. andMatcher.Add(new ItemMatcher("F0000002", ComparisonOperatorType.Equal, code)); //添加查询条件
  600. //andMatcher.Add(new ItemMatcher("ZT", ComparisonOperatorType.Equal, qJ.ZT)); //添加查询条件
  601. filter.Matcher = andMatcher;
  602. filter.ToRowNum = 500;
  603. return H3.BizBus.BizStructureUtility.FilterToJson(filter);
  604. }
  605. /// <summary>
  606. /// 过滤器
  607. /// </summary>
  608. /// <param name="code"></param>
  609. /// <returns></returns>
  610. public string Filter(string code, string organization)
  611. {
  612. // return "{\"FromRowNum\": -1,\"RequireCount\": 5000,\"ReturnItems\": [], \"SortByCollection\": [],\"ToRowNum\": 5000, \"Matcher\": { \"Type\": \"And\", \"Matchers\": [{\"Name\":\"F0000001\",\"Operator\":2,\"Value\":\""+code+ "\"}]}}";
  613. Filter filter = new Filter(); //构建过滤器
  614. And andMatcher = new And(); //构造And匹配器
  615. andMatcher.Add(new ItemMatcher("F0000009", ComparisonOperatorType.Equal, code)); //添加查询条件
  616. //andMatcher.Add(new ItemMatcher("F0000010", ComparisonOperatorType.Equal, organization)); //添加查询条件
  617. filter.Matcher = andMatcher;
  618. filter.ToRowNum = 500;
  619. return H3.BizBus.BizStructureUtility.FilterToJson(filter);
  620. }
  621. public DataTable BizObjectId(JObject ResultJson)
  622. {
  623. DataTable dt = new DataTable();
  624. dt.Columns.Add("ObjectId", typeof(string));
  625. dt.Columns.Add("Code", typeof(string));
  626. foreach (var item in ResultJson["ReturnData"]["BizObjectArray"])
  627. {
  628. DataRow dr = dt.NewRow();
  629. dr["ObjectId"] = item["ObjectId"].ToString();
  630. dr["Code"] = item["F0000001"].ToString();
  631. dt.Rows.Add(dr);
  632. }
  633. return dt;
  634. }
  635. public DataTable BizObjectId2(JObject ResultJson)
  636. {
  637. DataTable dt = new DataTable();
  638. dt.Columns.Add("ObjectId", typeof(string));
  639. dt.Columns.Add("Code", typeof(string));
  640. foreach (var item in ResultJson["ReturnData"]["BizObjectArray"])
  641. {
  642. DataRow dr = dt.NewRow();
  643. dr["ObjectId"] = item["ObjectId"].ToString();
  644. dr["Code"] = item["F0000002"].ToString();
  645. dt.Rows.Add(dr);
  646. }
  647. return dt;
  648. }
  649. public DataTable BizObjectId1(JObject ResultJson)
  650. {
  651. DataTable dt = new DataTable();
  652. dt.Columns.Add("ObjectId", typeof(string));
  653. dt.Columns.Add("orgcode", typeof(string));
  654. foreach (var item in ResultJson["ReturnData"]["BizObjectArray"])
  655. {
  656. DataRow dr = dt.NewRow();
  657. dr["ObjectId"] = item["ObjectId"].ToString();
  658. dr["orgcode"] = item["F0000001"].ToString();
  659. dt.Rows.Add(dr);
  660. }
  661. return dt;
  662. }
  663. public DataTable BizObjectId2(JObject ResultJson, string value, string ObjectId)
  664. {
  665. DataTable dt = new DataTable();
  666. dt.Columns.Add("ObjectId", typeof(string));
  667. foreach (var items in ResultJson["field_list"])
  668. {
  669. if (!dt.Columns.Contains(items["field_code"].ToString()))
  670. dt.Columns.Add(items["field_code"].ToString(), typeof(string));
  671. }
  672. dt.Columns.Add("userid", typeof(string));
  673. DataRow dr = dt.NewRow();
  674. int i = 0;
  675. dr["ObjectId"] = ObjectId;
  676. foreach (var item in ResultJson["field_list"])
  677. {
  678. long mun = ResultJson["field_list"][i].LongCount();
  679. if (mun < 4)
  680. {
  681. dr[item["field_code"].ToString()] = null;
  682. }
  683. else
  684. {
  685. dr[item["field_code"].ToString()] = item["label"].ToString();
  686. }
  687. i++;
  688. }
  689. dr["userid"] = value;
  690. dt.Rows.Add(dr);
  691. return dt;
  692. }
  693. #endregion
  694. }
  695. }