kingdeeToList.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448
  1. using ConsoleApp1.Controller.Sql_controller;
  2. using Kingdee.BOS.WebApi.Client;
  3. using Newtonsoft.Json;
  4. using Newtonsoft.Json.Linq;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Data;
  8. using System.IO;
  9. namespace LiChenkingdee.Controllers
  10. {
  11. /// <summary>
  12. /// 获取金蝶数据
  13. /// </summary>
  14. public class kingdeeToList
  15. {
  16. HttpHepler http = new HttpHepler();
  17. public void kindeeDL()
  18. {
  19. K3CloudApiClient client = new K3CloudApiClient("http://121.37.217.34/k3cloud/"); //http://121.37.217.34/k3cloud/
  20. var loginResult = client.ValidateLogin("612cade2b0fead", "administrator", "lichen17LC+", 2052); //正式
  21. //var loginResult = client.ValidateLogin("61c9778c87d3d1", "administrator", "Lichen*2021", 2052); //测试
  22. var resultType = JObject.Parse(loginResult)["LoginResultType"].Value<int>();
  23. //登录结果类型等于1,代表登录成功
  24. if (resultType == 1)
  25. {
  26. //client.ExecuteBillQuery("{"FormId":"","FieldKeys":"","FilterString":"","OrderString":"","TopRowCount":0,"StartRow":0,"Limit":0}");
  27. //PostKingdeeYG(client, DateTime.Now); //员工
  28. //PostKingdeeQT(client, DateTime.Now); //其他往来单位
  29. PostKingdeeKH(client, DateTime.Now); //客户单位
  30. //PostKingdeeGYS(client, DateTime.Now); //供应商
  31. //PostKingdeeFK(client, DateTime.Now); //付款
  32. //PostKingdeeYF(client, DateTime.Now); //应付
  33. }
  34. }
  35. /// <summary>
  36. /// 获取付款单
  37. /// </summary>
  38. public void PostKingdeeFK(K3CloudApiClient client,DateTime date)
  39. {
  40. string SJ = date.AddDays(-1).ToString("yyyy-MM-dd");
  41. var FKList = client.ExecuteBillQuery("{"+
  42. "\"FormId\": \"CN_PAYAPPLY\","+
  43. "\"FieldKeys\": \"FBillNo \","+
  44. "\"FilterString\": \"FCREATEDATE >'" + SJ + "' and FDOCUMENTSTATUS = 'B'\"," +
  45. "\"OrderString\": \"\","+
  46. "\"TopRowCount\": 0,"+
  47. "\"StartRow\": 0,"+
  48. "\"Limit\": 0}");
  49. foreach (var item in FKList)
  50. {
  51. string FBillNo = item[0].ToString();
  52. PostFKList(client, FBillNo);
  53. }
  54. }
  55. /// <summary>
  56. /// 应付单
  57. /// </summary>
  58. /// <param name="client"></param>
  59. /// <param name="date"></param>
  60. public void PostKingdeeYF(K3CloudApiClient client, DateTime date)
  61. {
  62. string SJ = date.AddDays(-1).ToString("yyyy-MM-dd");
  63. var FKList = client.ExecuteBillQuery("{" +
  64. "\"FormId\": \"AP_Payable\"," +
  65. "\"FieldKeys\": \"FBillNo \"," +
  66. "\"FilterString\": \"FCREATEDATE >'" + SJ + "'\"," +
  67. "\"OrderString\": \"\"," +
  68. "\"TopRowCount\": 0," +
  69. "\"StartRow\": 0," +
  70. "\"Limit\": 0}");
  71. foreach (var items in FKList)
  72. {
  73. string FBillNo = items[0].ToString();
  74. PostYFList(client, FBillNo);
  75. }
  76. }
  77. /// <summary>
  78. /// 付款申请单明细
  79. /// </summary>
  80. /// <returns></returns>
  81. public void PostFKList(K3CloudApiClient client,string FBillNo)
  82. {
  83. int i = 0;
  84. string url = "http://39.98.219.9:9001/api/lichen/form/fksq";
  85. Dictionary<string, List<Dictionary<string, string>>> dicFBillHead = new Dictionary<string, List<Dictionary<string, string>>>(); //头
  86. Dictionary<string, List<Dictionary<string, string>>> FkFBillBody = new Dictionary<string, List<Dictionary<string, string>>>();//体
  87. //string Contentjsonhead = "";
  88. string Contentjsonbody = "";
  89. List<Dictionary<string, string>> ListTable = new List<Dictionary<string, string>>();
  90. string ArrList = client.View("CN_PAYAPPLY", "{\"CreateOrgId\":0,\"Number\":\""+ FBillNo + "\",\"Id\":\"\"}");
  91. //string ArrList = client.View("CN_PAYAPPLY", "{\"CreateOrgId\":0,\"Number\":\"FKSQ000061\",\"Id\":\"\"}");
  92. JObject array = JsonConvert.DeserializeObject<JObject>(ArrList);
  93. foreach (var itemList in array["Result"])
  94. {
  95. if (i == 0)
  96. {
  97. i++;
  98. continue;
  99. }
  100. switch (itemList.Parent["Result"]["FCONTACTUNITTYPE"].ToString())
  101. {
  102. case "BD_Supplier":
  103. Contentjsonbody = "供应商";
  104. break;
  105. case "BD_Customer":
  106. Contentjsonbody = "客户";
  107. break;
  108. case "BD_Empinfo":
  109. Contentjsonbody = "员工";
  110. break;
  111. case "FIN_OTHERS":
  112. Contentjsonbody = "其他往来单位";
  113. break;
  114. }
  115. Dictionary<string, string> dicFkFBillHead = new Dictionary<string, string>();//单据头
  116. dicFkFBillHead.Add("FBillNo", itemList.Parent["Result"]["FBILLNo"].ToString()); //单据编号
  117. dicFkFBillHead.Add("FCREATORID", itemList.Parent["Result"]["FCREATORID"]["Id"].ToString()); //创建人ID
  118. dicFkFBillHead.Add("FCREATORNAME", itemList.Parent["Result"]["FCREATORID"]["Name"].ToString()); //创建人
  119. dicFkFBillHead.Add("FSETTLEORGID", itemList.Parent["Result"]["FSETTLEORGID_Id"].ToString()); //FSETTLEORGID 结算组织
  120. dicFkFBillHead.Add("FPURCHASEORGID", itemList.Parent["Result"]["FPURCHASEORGID_Id"].ToString()); //FPURCHASEORGID 采购组织
  121. dicFkFBillHead.Add("FDATE",GetChinaTicks(Convert.ToDateTime(itemList.Parent["Result"]["FDATE"].ToString()))); //FDATE 申请日期
  122. dicFkFBillHead.Add("FBILLTYPEID", itemList.Parent["Result"]["FBILLTYPEID"]["MultiLanguageText"][0]["Name"].ToString()); //单据类型:FBILLTYPEID
  123. dicFkFBillHead.Add("FCONTACTUNITTYPE", Contentjsonbody); //往来单位类型:FCONTACTUNITTYPE
  124. dicFkFBillHead.Add("FCONTACTUNIT_Id", itemList.Parent["Result"]["FCONTACTUNIT_Id"].ToString()); //往来单位编码
  125. dicFkFBillHead.Add("FCONTACTUNIT", itemList.Parent["Result"]["FCONTACTUNIT"]["MultiLanguageText"][0]["Name"].ToString()); //往来单位:FCONTACTUNIT
  126. //dicFkFBillHead.Add("FBUSINESSTYPE",itemList.Parent["FBUSINESSTYPE"]) //业务类型:FBUSINESSTYPE
  127. dicFkFBillHead.Add("FPAYORGID", itemList.Parent["Result"]["FPAYORGID"]["MultiLanguageText"][0]["Name"].ToString()); //付款组织:FPAYORGID
  128. dicFkFBillHead.Add("F_BQB_Combo", itemList.Parent["Result"]["F_BQB_Combo"].ToString()); //付款类型:F_BQB_Combo
  129. dicFkFBillHead.Add("F_BQB_FKDQ", itemList.Parent["Result"]["F_BQB_FKDQ"].ToString()); //付款地区:F_BQB_FKDQ
  130. dicFkFBillHead.Add("FEXPENSEDEPTID", string.IsNullOrEmpty(itemList.Parent["Result"]["FPAYAPPLYENTRY"][0]["FEXPENSEDEPTID"].ToString()) ? "无数据": itemList.Parent["Result"]["FPAYAPPLYENTRY"][0]["FEXPENSEDEPTID"]["MultiLanguageText"][0]["Name"].ToString()); //费用承担部门
  131. dicFkFBillHead.Add("FAPPLYORGID", itemList.Parent["Result"]["FAPPLYORGID"]["MultiLanguageText"][0]["Name"].ToString()); //申请组织
  132. dicFkFBillHead.Add("FRECTUNIT", itemList.Parent["Result"]["FRECTUNIT"]["MultiLanguageText"][0]["Name"].ToString()); //收款单位
  133. dicFkFBillHead.Add("F_BQB_FKGS", itemList.Parent["Result"]["F_BQB_FKGS"]["MultiLanguageText"][0]["FDataValue"].ToString()); //付款公司
  134. //Contentjsonhead = JsonConvert.SerializeObject(dicFkFBillHead);
  135. //单据体
  136. ///单据体数据
  137. List<Dictionary<string, string>> ListListBody = new List<Dictionary<string, string>>();
  138. foreach (var itemsData in array["Result"]["Result"]["FPAYAPPLYENTRY"])
  139. {
  140. string FDescription = string.IsNullOrEmpty(itemsData.Parent[0]["Description"].ToString()) ? "无数据" : itemsData.Parent[0]["Description"].ToString().Replace("\\", "");
  141. Dictionary<string, string> dicFkFPAYAPPLYENTRY = new Dictionary<string, string>();
  142. dicFkFPAYAPPLYENTRY.Add("FSETTLETYPEID", itemsData.Parent[0]["FSETTLETYPEID"]["MultiLanguageText"][0]["Name"].ToString()); //结算方式:FSETTLETYPEID //
  143. dicFkFPAYAPPLYENTRY.Add("FEACHBANKACCOUNT", itemsData.Parent[0]["FEACHBANKACCOUNT"].ToString()); //对方银行账号:FEACHBANKACCOUNT
  144. dicFkFPAYAPPLYENTRY.Add("FAPPLYAMOUNTFOR", itemsData.Parent[0]["FAPPLYAMOUNTFOR"].ToString()); //申请付款金额:FAPPLYAMOUNTFOR
  145. dicFkFPAYAPPLYENTRY.Add("FENDDATE", GetChinaTicks(Convert.ToDateTime(itemsData.Parent[0]["FENDDATE"].ToString()))); //到期日:FENDDATE
  146. dicFkFPAYAPPLYENTRY.Add("FEXPECTPAYDATE", GetChinaTicks(Convert.ToDateTime(itemsData.Parent[0]["FEXPECTPAYDATE"].ToString()))); //期望付款日期:FEXPECTPAYDATE
  147. dicFkFPAYAPPLYENTRY.Add("FEACHCCOUNTNAME",string.IsNullOrEmpty(itemsData.Parent[0]["MultiLanguageText"][0].ToString())?"无数据": itemsData.Parent[0]["MultiLanguageText"][0]["FEACHCCOUNTNAME"].ToString()); //对方账户名称:FEACHCCOUNTNAME
  148. dicFkFPAYAPPLYENTRY.Add("FEACHBANKNAME", itemsData.Parent[0]["MultiLanguageText"][0]["FEACHBANKNAME"].ToString()); //对方开户行:FEACHBANKNAME
  149. dicFkFPAYAPPLYENTRY.Add("FCOSTID_id", itemsData.Parent[0]["FCOSTID_Id"].ToString()); //费用项目ID:FCOSTID_id
  150. dicFkFPAYAPPLYENTRY.Add("FCOSTID", string.IsNullOrEmpty(itemsData.Parent[0]["FCOSTID"].ToString())?"无数据": itemsData.Parent[0]["FCOSTID"]["MultiLanguageText"][0]["Name"].ToString()); //费用项目:FCOSTID
  151. dicFkFPAYAPPLYENTRY.Add("FDescription", FDescription); //备注
  152. //备注:FDescription
  153. ListListBody.Add(dicFkFPAYAPPLYENTRY);
  154. }
  155. dicFkFBillHead.Add("DataTable", JsonConvert.SerializeObject(ListListBody));
  156. ListTable.Add(dicFkFBillHead);
  157. }
  158. Dictionary<string, List<Dictionary<string, string>>> Mapdata = new Dictionary<string, List<Dictionary<string, string>>>();
  159. Mapdata.Add("data", ListTable);
  160. string acts = http.HttpPost(url, JsonConvert.SerializeObject(Mapdata));
  161. }
  162. #region 应付单
  163. public void PostYFList(K3CloudApiClient client, string FBillNo)
  164. {
  165. int i = 0;
  166. string url = "http://39.98.219.9:9001/api/lichen/form/yfd";
  167. //string url = "http://192.168.1.148:9001/api/lichen/form/yfd";
  168. Dictionary<string, List<Dictionary<string, string>>> dicFBillHead = new Dictionary<string, List<Dictionary<string, string>>>(); //头
  169. Dictionary<string, List<Dictionary<string, string>>> FkFBillBody = new Dictionary<string, List<Dictionary<string, string>>>();//体
  170. //string Contentjsonbody = "";
  171. List<Dictionary<string, string>> ListTable = new List<Dictionary<string, string>>();
  172. string ArrList = client.View("AP_Payable", "{\"CreateOrgId\":0,\"Number\":\"" + FBillNo + "\",\"Id\":\"\"}");//AP00014611
  173. //string ArrList = client.View("AP_Payable", "{\"CreateOrgId\":0,\"Number\":\"AP00014611\",\"Id\":\"\"}");
  174. JObject array = JsonConvert.DeserializeObject<JObject>(ArrList);
  175. foreach (var itemList in array["Result"])
  176. {
  177. if (i == 0)
  178. {
  179. i++;
  180. continue;
  181. }
  182. string SUPPLIERID = string.IsNullOrEmpty(itemList.Parent["Result"]["SUPPLIERID"]["MultiLanguageText"][0]["Name"].ToString()) ? "无数据" : itemList.Parent["Result"]["SUPPLIERID"]["MultiLanguageText"][0]["Name"].ToString();
  183. string PayCurrency = string.IsNullOrEmpty(itemList.Parent["Result"]["CURRENCYID"]["MultiLanguageText"][0]["Name"].ToString()) ? "人民币" : itemList.Parent["Result"]["CURRENCYID"]["MultiLanguageText"][0]["Name"].ToString();
  184. string PayCondition = string.IsNullOrEmpty(itemList.Parent["Result"]["SUPPLIERID"]["SupplierFinance"][0]["PayCondition"]["MultiLanguageText"][0]["Name"].ToString()) ? "预付" : itemList.Parent["Result"]["SUPPLIERID"]["SupplierFinance"][0]["PayCondition"]["MultiLanguageText"][0]["Name"].ToString();
  185. Dictionary<string, string> dicFkFBillHead = new Dictionary<string, string>();//单据头
  186. dicFkFBillHead.Add("textField_ljqs84wy", itemList.Parent["Result"]["BillNo"].ToString()); //单据编号
  187. dicFkFBillHead.Add("selectField_ljqs84ww", itemList.Parent["Result"]["BillTypeID"]["MultiLanguageText"][0]["Name"].ToString()); //单据类型
  188. dicFkFBillHead.Add("selectField_ljqs84wz", SUPPLIERID); //供应商
  189. dicFkFBillHead.Add("textareaField_ljqs84xc", itemList.Parent["Result"]["REMARK"].ToString()); // 备注
  190. dicFkFBillHead.Add("selectField_ljqs84x4", PayCurrency); //币别
  191. dicFkFBillHead.Add("selectField_ljqs84xe", PayCondition); //付款条件
  192. dicFkFBillHead.Add("dateField_ljqs84xd", GetChinaTicks(Convert.ToDateTime(itemList.Parent["Result"]["DATE"].ToString())).ToString()); //业务日期
  193. dicFkFBillHead.Add("selectField_ljqs84x5", itemList.Parent["Result"]["SETTLEORGID"]["MultiLanguageText"][0]["Name"].ToString()); //结算组织
  194. dicFkFBillHead.Add("selectField_ljqs84x6", itemList.Parent["Result"]["FPAYORGID"]["MultiLanguageText"][0]["Name"].ToString()); //付款组织
  195. dicFkFBillHead.Add("dateField_ljqs84xf", GetChinaTicks(Convert.ToDateTime(itemList.Parent["Result"]["FENDDATE_H"].ToString())).ToString()); //到期日
  196. dicFkFBillHead.Add("selectField_ljqs84x7", itemList.Parent["Result"]["PURCHASEORGID"]["MultiLanguageText"][0]["Name"].ToString()); //采购组织
  197. dicFkFBillHead.Add("numberField_ljzdjury", itemList.Parent["Result"]["FALLAMOUNTFOR"].ToString()); //价税合计
  198. //dicFkFBillHead.Add("selectField_ljzbvqin", itemList.Parent["Result"]["FALLAMOUNTFOR"].ToString()); //价税合计
  199. ///单据体数据
  200. List<Dictionary<string, string>> ListListBody = new List<Dictionary<string, string>>();
  201. foreach (var itemsData in array["Result"]["Result"]["AP_PAYABLEENTRY"])
  202. {
  203. string F_BQB_Base = string.IsNullOrEmpty(itemsData["F_BQB_Base"].ToString()) ? "" : itemsData["F_BQB_Base"]["MultiLanguageText"][0]["Name"].ToString();
  204. string MATERIALID_Id = string.IsNullOrEmpty(itemsData["MATERIALID"].ToString())?" ": itemsData["MATERIALID"]["Number"].ToString();
  205. string MATERIALID = string.IsNullOrEmpty(itemsData["MATERIALID"].ToString())?" ": itemsData["MATERIALID"]["MultiLanguageText"][0]["Name"].ToString();
  206. string FPRICEUNITID = string.IsNullOrEmpty(itemsData["PRICEUNITID"].ToString())?"": itemsData["PRICEUNITID"]["MultiLanguageText"][0]["Name"].ToString();
  207. string FPrice = string.IsNullOrEmpty(itemsData["FPrice"].ToString())?"0": itemsData["FPrice"].ToString();
  208. string PriceQty = string.IsNullOrEmpty(itemsData["PriceQty"].ToString()) ? "0" : itemsData["PriceQty"].ToString();
  209. string TaxPrice = string.IsNullOrEmpty(itemsData["TaxPrice"].ToString())?"0": itemsData["TaxPrice"].ToString();
  210. string EntryTaxRate = string.IsNullOrEmpty(itemsData["EntryTaxRate"].ToString()) ? "0" : itemsData["EntryTaxRate"].ToString();
  211. string EntryDiscountRate = string.IsNullOrEmpty(itemsData["EntryDiscountRate"].ToString()) ? "0" : itemsData["EntryDiscountRate"].ToString();
  212. string FDISCOUNTAMOUNTFOR = string.IsNullOrEmpty(itemsData["FDISCOUNTAMOUNTFOR"].ToString()) ? "0" : itemsData["FDISCOUNTAMOUNTFOR"].ToString();
  213. string FALLAMOUNTFOR_D = string.IsNullOrEmpty(itemsData["FALLAMOUNTFOR_D"].ToString()) ? "0" : itemsData["FALLAMOUNTFOR_D"].ToString();
  214. string FTAXAMOUNTFOR_D = string.IsNullOrEmpty(itemsData["FTAXAMOUNTFOR_D"].ToString()) ? "0" : itemsData["FTAXAMOUNTFOR_D"].ToString();
  215. string FNoTaxAmountFor_D = string.IsNullOrEmpty(itemsData["FNoTaxAmountFor_D"].ToString()) ? "0" : itemsData["FNoTaxAmountFor_D"].ToString();
  216. string FCOSTID = string.IsNullOrEmpty(itemsData["FCOSTID"].ToString()) ? "" : itemsData["FCOSTID"]["MultiLanguageText"][0]["Name"].ToString();
  217. string Number = string.IsNullOrEmpty(itemsData["FCOSTID"].ToString()) ? "" : itemsData["FCOSTID"]["Number"].ToString();
  218. string FCOSTDEPARTMENTID = string.IsNullOrEmpty(itemsData["FCOSTDEPARTMENTID"].ToString()) ? "" : itemsData["FCOSTDEPARTMENTID"]["MultiLanguageText"][0]["Name"].ToString();
  219. Dictionary<string, string> dicFkFPAYAPPLYENTRY = new Dictionary<string, string>();
  220. dicFkFPAYAPPLYENTRY.Add("selectField_ljz5shhv", FCOSTID); //费用项目名称
  221. dicFkFPAYAPPLYENTRY.Add("textField_ljz5shhw", Number); //费用项目编码
  222. dicFkFPAYAPPLYENTRY.Add("selectField_ljqs84xh", F_BQB_Base); //客户
  223. dicFkFPAYAPPLYENTRY.Add("selectField_ljqs84xi", MATERIALID_Id); //物料编码
  224. dicFkFPAYAPPLYENTRY.Add("textField_ljqs84xl", MATERIALID); //物料名称
  225. dicFkFPAYAPPLYENTRY.Add("textField_ljqs84xm", FPRICEUNITID); //计价单位
  226. dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xn", FPrice); //单价
  227. dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xo", PriceQty); //计价数量
  228. dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xp", TaxPrice); //含税单价
  229. dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xq", EntryTaxRate); //税率
  230. dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xs", EntryDiscountRate); //折扣率
  231. dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xt", FDISCOUNTAMOUNTFOR); //折扣额
  232. dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xu", FNoTaxAmountFor_D); //不含税金额
  233. dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xv", FTAXAMOUNTFOR_D); //税额
  234. dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xw", FALLAMOUNTFOR_D); //价税合计
  235. dicFkFPAYAPPLYENTRY.Add("textField_ljzbvqik", FCOSTDEPARTMENTID); //费用承担部门
  236. ListListBody.Add(dicFkFPAYAPPLYENTRY);
  237. }
  238. dicFkFBillHead.Add("tableField_ljqs84xg", JsonConvert.SerializeObject(ListListBody));
  239. ListTable.Add(dicFkFBillHead);
  240. }
  241. Dictionary<string, List<Dictionary<string, string>>> Mapdata = new Dictionary<string, List<Dictionary<string, string>>>();
  242. Mapdata.Add("data", ListTable);
  243. string acts = http.HttpPost(url, JsonConvert.SerializeObject(Mapdata));
  244. }
  245. #endregion
  246. /// <summary>
  247. /// 时间转换 毫秒级别的时间戳
  248. /// </summary>
  249. /// <param name="dateTime"></param>
  250. /// <returns></returns>
  251. public static string GetChinaTicks(DateTime dateTime)
  252. {
  253. //北京时间相差8小时
  254. DateTime startTime = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1, 8, 0, 0, 0), TimeZoneInfo.Local);
  255. long t = (dateTime.Ticks - startTime.Ticks) / 10000; //除10000调整为13位
  256. return t.ToString();
  257. }
  258. #region 往来单位同步
  259. /// <summary>
  260. /// 获取金蝶客户往来单位
  261. /// </summary>
  262. public void PostKingdeeKH(K3CloudApiClient client, DateTime date)
  263. {
  264. try
  265. {
  266. DataTable dt = new DataTable();
  267. dt.Columns.Add("Type", Type.GetType("System.String"));
  268. dt.Columns.Add("FNumber", Type.GetType("System.String"));
  269. dt.Columns.Add("FName", Type.GetType("System.String"));
  270. DataRow newRow;
  271. DataTable dt2 = new DataTable();
  272. string daTime = date.AddDays(-1).ToString("yyyy-MM-ddThh:mm:ss");//FCreateDate >= '" + daTime + "'
  273. ///往来单位 FCreateDate >= '" + daTime + "',
  274. string url = "http://39.98.219.9:9001/api/lichen/form/wldx";
  275. //string url = "https://mc.cloudpure.cn/frp/lichen/form/wldx";
  276. //client.ExecuteBillQuerySync({\"FormId\": \"BD_Customer\",\"FieldKeys\": \"FNumber,FName\",\"FilterString\":\"FDOCUMENTSTATUS = 'C'\",\"OrderString\": \"\",\"TopRowCount\": 0,\"StartRow\": 0,\"Limit\": 0}");
  277. var dtlits = client.ExecuteBillQuery("{\"FormId\": \"BD_Customer\",\"FieldKeys\": \"FNumber,FName\",\"FilterString\":\"FDOCUMENTSTATUS = 'C'\",\"OrderString\": \"\",\"TopRowCount\": 0,\"StartRow\": 0,\"Limit\": 0}");
  278. List<Dictionary<string, string>> MapDic = new List<Dictionary<string, string>>();
  279. foreach (var item in dtlits)
  280. {
  281. if (item.Count > 1)
  282. {
  283. newRow = dt.NewRow();
  284. newRow["Type"] = "客户";
  285. newRow["FNumber"] = item[0].ToString();
  286. newRow["FName"] = item[1].ToString();
  287. dt.Rows.Add(newRow);
  288. DataView dv = new DataView(dt);
  289. dt2 = dv.ToTable(true,new string[]{"Type","FNumber","FName"});
  290. }
  291. }
  292. foreach (DataRow item in dt2.Rows)
  293. {
  294. Dictionary<string, string> dic = new Dictionary<string, string>();
  295. dic.Add("Type", "客户");
  296. dic.Add("FNumber", item["FNumber"].ToString());
  297. dic.Add("FName", item["FName"].ToString());
  298. MapDic.Add(dic);
  299. Dictionary<string, List<Dictionary<string, string>>> Mapdata = new Dictionary<string, List<Dictionary<string, string>>>();
  300. Mapdata.Add("data", MapDic);
  301. string Contentjson = JsonConvert.SerializeObject(Mapdata);
  302. string acts = http.HttpPost(url, Contentjson);
  303. }
  304. ShowLog("OK");
  305. }
  306. catch (Exception e)
  307. {
  308. ShowLog(e.Message);
  309. }
  310. }
  311. /// <summary>
  312. /// 同步金蝶员工往来单位
  313. /// </summary>
  314. /// <param name="client"></param>
  315. /// <param name="date"></param>
  316. public void PostKingdeeYG(K3CloudApiClient client, DateTime date)
  317. {
  318. try
  319. {
  320. //FCreateDate >= '" + daTime + "'\",FCreateDate >= '" + daTime + "'
  321. string daTime = date.AddDays(-1).ToString("yyyy-MM-ddThh:mm:ss");//39.98.219.9:9001 //FCreateDate >= '" + daTime + "'and
  322. //string url = "http://192.168.1.76:9001/api/lichen/form/wldx";
  323. string url = "http://39.98.219.9:9001/api/lichen/form/wldx";
  324. var KingdeeWLList = client.ExecuteBillQuery("{\"FormId\":\"BD_Empinfo\",\"FieldKeys\":\"FNumber,FName\",\"FilterString\":\"FCreateDate >= '" + daTime + "'and FDOCUMENTSTATUS = 'C'\",\"OrderString\": \"\",\"TopRowCount\": 0,\"StartRow\": 0,\"Limit\": 0}");
  325. List<Dictionary<string, string>> MapDic = new List<Dictionary<string, string>>();
  326. foreach (var item in KingdeeWLList)
  327. {
  328. if (item.Count > 1)
  329. {
  330. Dictionary<string, string> dic = new Dictionary<string, string>();
  331. dic.Add("Type", "员工");
  332. dic.Add("FNumber", item[0].ToString());
  333. dic.Add("FName", item[1].ToString());
  334. MapDic.Add(dic);
  335. Dictionary<string, List<Dictionary<string, string>>> Mapdata = new Dictionary<string, List<Dictionary<string, string>>>();
  336. Mapdata.Add("data", MapDic);
  337. string Contentjson = JsonConvert.SerializeObject(Mapdata);
  338. string acts = http.HttpPost(url, Contentjson);
  339. }
  340. }
  341. ShowLog("OK");
  342. }
  343. catch (Exception e)
  344. {
  345. ShowLog(e.Message);
  346. }
  347. }
  348. /// <summary>
  349. /// 其他往来单位
  350. /// </summary>
  351. /// <param name="client"></param>
  352. /// <param name="date"></param>
  353. public void PostKingdeeQT(K3CloudApiClient client, DateTime date)
  354. {
  355. try
  356. {
  357. //FCreateDate >= '" + daTime + "',
  358. string daTime = date.AddDays(-1).ToString("yyyy-MM-ddThh:mm:ss"); //FCreateDate >= '" + daTime + "'
  359. string url = "http://39.98.219.9:9001/api/lichen/form/wldx";
  360. var KingdeeWLList = client.ExecuteBillQuery("{\"FormId\": \"FIN_OTHERS\",\"FieldKeys\": \"FNumber,FName\",\"FilterString\":\"FCreateDate >= '" + daTime + "' andFDOCUMENTSTATUS = 'C'\",\"OrderString\": \"\",\"TopRowCount\": 0,\"StartRow\": 0,\"Limit\": 0}");
  361. List<Dictionary<string, string>> MapDic = new List<Dictionary<string, string>>();
  362. foreach (var item in KingdeeWLList)
  363. {
  364. if (item.Count > 1)
  365. {
  366. Dictionary<string, string> dic = new Dictionary<string, string>();
  367. dic.Add("Type", "其他往来单位");
  368. dic.Add("FNumber", item[0].ToString());
  369. dic.Add("FName", item[1].ToString());
  370. MapDic.Add(dic);
  371. Dictionary<string, List<Dictionary<string, string>>> Mapdata = new Dictionary<string, List<Dictionary<string, string>>>();
  372. Mapdata.Add("data", MapDic);
  373. string Contentjson = JsonConvert.SerializeObject(Mapdata);
  374. string acts = http.HttpPost(url, Contentjson);
  375. }
  376. }
  377. ShowLog("OK");
  378. }
  379. catch (Exception e)
  380. {
  381. ShowLog(e.Message);
  382. }
  383. }
  384. /// <summary>
  385. /// 供应商
  386. /// </summary>
  387. /// <param name="client"></param>
  388. /// <param name="date"></param>
  389. public void PostKingdeeGYS(K3CloudApiClient client, DateTime date)
  390. {
  391. try
  392. {
  393. string daTime = date.AddDays(-1).ToString("yyyy-MM-ddThh:mm:ss"); //FCreateDate >= '" + daTime + "',
  394. string url = "http://39.98.219.9:9001/api/lichen/form/wldx";
  395. //string querylist = "{\"FormId\":\"BD_Supplier\",\"FieldKeys\":\"FNumber,FName\",\"FilterString\":\"FDOCUMENTSTATUS = 'C'\",\"OrderString\":\"\",\"TopRowCount\":0,\"StartRow\":0,\"Limit\":0}";
  396. var KingdeeGYSList = client.ExecuteBillQuery("{ \"FormId\":\"BD_Supplier\",\"FieldKeys\":\"FNumber,FName\",\"FilterString\":\"FCreateDate >= '" + daTime + "' and FDOCUMENTSTATUS = 'C'\",\"OrderString\":\"\",\"TopRowCount\":0,\"StartRow\":0,\"Limit\":0}");
  397. //var KingdeeGYSList = client.ExecuteBillQuery(querylist);
  398. List<Dictionary<string, string>> MapDic = new List<Dictionary<string, string>>();
  399. foreach (var item in KingdeeGYSList)
  400. {
  401. if (item.Count > 1)
  402. {
  403. Dictionary<string, string> dic = new Dictionary<string, string>();
  404. dic.Add("Type", "供应商");
  405. dic.Add("FNumber", item[0].ToString());
  406. dic.Add("FName", item[1].ToString());
  407. MapDic.Add(dic);
  408. Dictionary<string, List<Dictionary<string, string>>> Mapdata = new Dictionary<string, List<Dictionary<string, string>>>();
  409. Mapdata.Add("data", MapDic);
  410. string Contentjson = JsonConvert.SerializeObject(Mapdata);
  411. string acts = http.HttpPost(url, Contentjson);
  412. }
  413. }
  414. ShowLog("OK");
  415. }
  416. catch (Exception e)
  417. {
  418. ShowLog(e.Message);
  419. }
  420. }
  421. #endregion
  422. #region 创建文本文件
  423. public void ShowLog(string log)
  424. {
  425. File.AppendAllText("log.txt", "\r\n" + log +",日期:"+DateTime.Now);
  426. }
  427. #endregion
  428. }
  429. }