OperateExample.cs 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. using Kingdee.CDP.WebApi.SDK;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using Newtonsoft.Json;
  4. using Newtonsoft.Json.Linq;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Text;
  8. namespace Kingdee.BOS.WebApi.SDK.Test
  9. {
  10. [TestClass]
  11. public class OperateExample
  12. {
  13. /// <summary>
  14. /// 付款申请单
  15. /// </summary>
  16. [TestMethod]
  17. public string Test_EmpInfo(object ydapidata)
  18. {
  19. string jsonsZTab = "";
  20. //List<string> dic = new List<string>();
  21. JObject array = JsonConvert.DeserializeObject<JObject>(ydapidata.ToString());
  22. foreach (var item in array["tableField_leqinlq8"])
  23. {
  24. JObject itemarray = JsonConvert.DeserializeObject<JObject>(item.ToString());
  25. DateTime dqr = GetDateTime(itemarray["dateField_lewl78sg"].ToString());
  26. DateTime yfr = GetDateTime(itemarray["dateField_lewl78sh"].ToString());
  27. jsonsZTab +="{\"FCOSTID\":{\"FNUMBER\": \"FYXM10_SYS\"},\"FEXPENSEDEPTID\": {\"FNUMBER\": \""+array["textField_leqinlpz"].ToString() +"\"},\"FSETTLETYPEID\": {\"FNumber\": \"JSFS04_SYS\"},\"FPAYPURPOSEID\": {\"FNumber\": \"SFKYT08_SYS\"},\"FENDDATE\": \"" + dqr + "\",\"FEXPECTPAYDATE\": \"" + yfr + "\",\"FAPPLYAMOUNTFOR\": " + itemarray["numberField_leqinlqa"].ToString() + ",\"FBankDetail\": {\"FNUMBER\": \"" + itemarray["textField_lfw71las"].ToString() + "\"},\"FEACHBANKACCOUNT\": \"TEST01\",\"FEACHCCOUNTNAME\": \"" + itemarray["textField_lfw71lar"].ToString() + "\",\"FEACHBANKNAME\": \"" + itemarray["textField_lfw71las"].ToString() + "\",\"FSwiftCode\": \"" + itemarray["textField_lfw71lar"].ToString() + "\",\"FDescription\": \"" + itemarray["textField_leqinlqb"].ToString() + "\" },";
  28. }
  29. //初始化
  30. var clienter = new K3CloudApi();
  31. StringBuilder error = new StringBuilder();
  32. //测试连接
  33. RepoResult reporesult = clienter.CheckAuthInfo();
  34. Assert.IsTrue(reporesult.ResponseStatus.IsSuccess);
  35. if (reporesult.ResponseStatus.IsSuccess)
  36. {
  37. string jsons = "{\"NeedUpDateFields\": [],\"NeedReturnFields\": [],\"IsDeleteEntry\": \"true\",\"SubSystemId\": \"\",\"IsVerifyBaseDataField\": \"false\",\"IsEntryBatchFill\": \"true\",\"ValidateFlag\": \"true\",\"NumberSearch\": \"true\",\"IsAutoAdjustField\": \"false\",\"InterationFlags\": \"\",\"IgnoreInterationFlag\": \"\"," +
  38. "\"Model\": {\"FID\": 0," +
  39. "\"FBILLTYPEID\": { \"FNUMBER\": \"FKSQ001_SYS\"}," +
  40. "\"FDATE\": \"2023-04-13 00:00:00\",\"FCONTACTUNITTYPE\": \""+array["selectField_lexydxa5"].ToString() +"\"," +
  41. "\"FCONTACTUNIT\": {\"FNumber\": \""+array["selectField_lexydxa5_id"].ToString() +"\"}," +
  42. "\"FRECTUNITTYPE\": \"BD_Supplier\"," +
  43. "\"FRECTUNIT\": {\"FNumber\": \"00111\"}," +
  44. "\"FCURRENCYID\": {\"FNumber\": \"PRE001\"}," +
  45. "\"FPAYORGID\": {\"FNumber\": \""+array["radioField_leqinlq7_id"].ToString() == null? "101": array["textField_lewk1q3x"].ToString() + "\"}," +
  46. "\"FSETTLEORGID\": {\"FNumber\": \"100\"}," +
  47. "\"FPURCHASEORGID\": { \"FNumber\": \"100\"}," +
  48. "\"FDOCUMENTSTATUS\": \"Z\",\"FCANCELSTATUS\": \"A\",\"FIsCredit\": false," +
  49. "\"FAPPLYORGID\": {\"FNumber\": \"100\"}," +
  50. "\"FSETTLECUR\": {\"FNUMBER\": \"PRE001\"}," +
  51. "\"FISCARRYRATE\": false,\"FMoreReceive\": false,\"F_BQB_Combo\": \"对公付款\"," +
  52. "\"F_BQB_GYS\": {\"FNUMBER\": \"00111\"}," +
  53. "\"F_BQB_FKDQ\": \""+ array["radioField_leqinlq7"].ToString() + "付款\", " +
  54. "\"FPAYAPPLYENTRY\":[" + jsonsZTab.Substring(0, jsonsZTab.Length - 1) + "]}}";
  55. //保存接口的请求参数的规定格式
  56. var requestJObject = JObject.Parse(jsons);
  57. //调用保存接口
  58. var resultJson = clienter.Save("CN_PAYAPPLY", JsonConvert.SerializeObject(requestJObject));
  59. JObject resJson = JsonConvert.DeserializeObject<JObject>(resultJson);
  60. //根据不同业务单据拼接不同的字段和数值
  61. var number = resJson["Result"]["Number"].ToString();
  62. //对返回结果进行解析和校验,这里使用的是JsonPatch
  63. var isSuccess = ValidateResponse(resultJson);
  64. Assert.IsTrue(isSuccess);
  65. Assert.IsTrue(Test_EmpInfo_Submit(clienter, number));
  66. Assert.IsTrue(Test_EmpInfo_Audit(clienter, number));
  67. return resultJson.ToString();
  68. }
  69. else
  70. {
  71. return error.AppendLine("User authentication information is wrong, please check again!").ToString();
  72. }
  73. }
  74. #region
  75. /// <summary>
  76. /// 付款-查询
  77. /// </summary>
  78. /// <param name="clienter"></param>
  79. /// <param name="number"></param>
  80. /// <returns></returns>
  81. public bool Test_EmpInfo_View(K3CloudApi clienter, string number)
  82. {
  83. //查询的请求参数
  84. var param = JObject.Parse("{\"CreateOrgId\":0,\"Number\":\"" +
  85. number +
  86. "\",\"Id\":\"\"}");
  87. //调用查询接口
  88. var resultJson = clienter.View("CN_PAYAPPLY", JsonConvert.SerializeObject(param));
  89. return ValidateResponse(resultJson);
  90. }
  91. /// <summary>
  92. /// 付款-提交
  93. /// </summary>
  94. /// <param name="clienter"></param>
  95. /// <param name="number"></param>
  96. /// <returns></returns>
  97. public bool Test_EmpInfo_Submit(K3CloudApi clienter, string number)
  98. {
  99. //查询的请求参数
  100. var param = JObject.Parse("{\"CreateOrgId\": 0,"+
  101. "\"Numbers\": [\"" +number +"\"]," +
  102. "\"Ids\": \"\","+
  103. "\"SelectedPostId\": 0,"+
  104. "\"NetworkCtrl\": \"\","+
  105. "\"IgnoreInterationFlag\": \"\"}");
  106. //调用查询接口
  107. var resultJson = clienter.Submit("CN_PAYAPPLY", JsonConvert.SerializeObject(param));
  108. return ValidateResponse(resultJson);
  109. }
  110. /// <summary>
  111. /// 付款-审核
  112. /// </summary>
  113. /// <param name="clienter"></param>
  114. /// <param name="number"></param>
  115. /// <returns></returns>
  116. public bool Test_EmpInfo_Audit(K3CloudApi clienter, string number)
  117. {
  118. //查询的请求参数
  119. var param = JObject.Parse("{\"CreateOrgId\":0,\"Numbers\":[\"" +
  120. number +
  121. "\"],\"Ids\":\"\",\"InterationFlags\":\"\",\"NetworkCtrl\":\"\",\"IsVerifyProcInst\":\"\",\"IgnoreInterationFlag\":\"\"}");
  122. //调用查询接口
  123. var resultJson = clienter.Audit("CN_PAYAPPLY", JsonConvert.SerializeObject(param));
  124. return ValidateResponse(resultJson);
  125. }
  126. #endregion
  127. public bool ValidateResponse(string resultJson)
  128. {
  129. //对返回结果进行解析和校验,这里使用的是JsonPatch
  130. var resultJObject = JObject.Parse(resultJson);
  131. var queryNode = resultJObject.SelectToken("$..IsSuccess");
  132. if (queryNode == null)
  133. {
  134. return true;
  135. }
  136. var isSuccess = queryNode.Value<Boolean>();
  137. return isSuccess;
  138. }
  139. public DateTime GetDateTime(string timeStamp)
  140. {
  141. var posixTime = DateTime.SpecifyKind(new DateTime(1970, 1, 1), DateTimeKind.Utc);
  142. var time = posixTime.AddMilliseconds(Convert.ToDouble(timeStamp));
  143. return time;
  144. }
  145. }
  146. }