using Kingdee.CDP.WebApi.SDK; using Microsoft.VisualStudio.TestTools.UnitTesting; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Text; namespace Kingdee.BOS.WebApi.SDK.Test { [TestClass] public class OperateExample { /// /// 付款申请单 /// [TestMethod] public string Test_EmpInfo(object ydapidata) { string jsonsZTab = ""; //List dic = new List(); JObject array = JsonConvert.DeserializeObject(ydapidata.ToString()); foreach (var item in array["tableField_leqinlq8"]) { JObject itemarray = JsonConvert.DeserializeObject(item.ToString()); DateTime dqr = GetDateTime(itemarray["dateField_lewl78sg"].ToString()); DateTime yfr = GetDateTime(itemarray["dateField_lewl78sh"].ToString()); 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() + "\" },"; } //初始化 var clienter = new K3CloudApi(); StringBuilder error = new StringBuilder(); //测试连接 RepoResult reporesult = clienter.CheckAuthInfo(); Assert.IsTrue(reporesult.ResponseStatus.IsSuccess); if (reporesult.ResponseStatus.IsSuccess) { string jsons = "{\"NeedUpDateFields\": [],\"NeedReturnFields\": [],\"IsDeleteEntry\": \"true\",\"SubSystemId\": \"\",\"IsVerifyBaseDataField\": \"false\",\"IsEntryBatchFill\": \"true\",\"ValidateFlag\": \"true\",\"NumberSearch\": \"true\",\"IsAutoAdjustField\": \"false\",\"InterationFlags\": \"\",\"IgnoreInterationFlag\": \"\"," + "\"Model\": {\"FID\": 0," + "\"FBILLTYPEID\": { \"FNUMBER\": \"FKSQ001_SYS\"}," + "\"FDATE\": \"2023-04-13 00:00:00\",\"FCONTACTUNITTYPE\": \""+array["selectField_lexydxa5"].ToString() +"\"," + "\"FCONTACTUNIT\": {\"FNumber\": \""+array["selectField_lexydxa5_id"].ToString() +"\"}," + "\"FRECTUNITTYPE\": \"BD_Supplier\"," + "\"FRECTUNIT\": {\"FNumber\": \"00111\"}," + "\"FCURRENCYID\": {\"FNumber\": \"PRE001\"}," + "\"FPAYORGID\": {\"FNumber\": \""+array["radioField_leqinlq7_id"].ToString() == null? "101": array["textField_lewk1q3x"].ToString() + "\"}," + "\"FSETTLEORGID\": {\"FNumber\": \"100\"}," + "\"FPURCHASEORGID\": { \"FNumber\": \"100\"}," + "\"FDOCUMENTSTATUS\": \"Z\",\"FCANCELSTATUS\": \"A\",\"FIsCredit\": false," + "\"FAPPLYORGID\": {\"FNumber\": \"100\"}," + "\"FSETTLECUR\": {\"FNUMBER\": \"PRE001\"}," + "\"FISCARRYRATE\": false,\"FMoreReceive\": false,\"F_BQB_Combo\": \"对公付款\"," + "\"F_BQB_GYS\": {\"FNUMBER\": \"00111\"}," + "\"F_BQB_FKDQ\": \""+ array["radioField_leqinlq7"].ToString() + "付款\", " + "\"FPAYAPPLYENTRY\":[" + jsonsZTab.Substring(0, jsonsZTab.Length - 1) + "]}}"; //保存接口的请求参数的规定格式 var requestJObject = JObject.Parse(jsons); //调用保存接口 var resultJson = clienter.Save("CN_PAYAPPLY", JsonConvert.SerializeObject(requestJObject)); JObject resJson = JsonConvert.DeserializeObject(resultJson); //根据不同业务单据拼接不同的字段和数值 var number = resJson["Result"]["Number"].ToString(); //对返回结果进行解析和校验,这里使用的是JsonPatch var isSuccess = ValidateResponse(resultJson); Assert.IsTrue(isSuccess); Assert.IsTrue(Test_EmpInfo_Submit(clienter, number)); Assert.IsTrue(Test_EmpInfo_Audit(clienter, number)); return resultJson.ToString(); } else { return error.AppendLine("User authentication information is wrong, please check again!").ToString(); } } #region /// /// 付款-查询 /// /// /// /// public bool Test_EmpInfo_View(K3CloudApi clienter, string number) { //查询的请求参数 var param = JObject.Parse("{\"CreateOrgId\":0,\"Number\":\"" + number + "\",\"Id\":\"\"}"); //调用查询接口 var resultJson = clienter.View("CN_PAYAPPLY", JsonConvert.SerializeObject(param)); return ValidateResponse(resultJson); } /// /// 付款-提交 /// /// /// /// public bool Test_EmpInfo_Submit(K3CloudApi clienter, string number) { //查询的请求参数 var param = JObject.Parse("{\"CreateOrgId\": 0,"+ "\"Numbers\": [\"" +number +"\"]," + "\"Ids\": \"\","+ "\"SelectedPostId\": 0,"+ "\"NetworkCtrl\": \"\","+ "\"IgnoreInterationFlag\": \"\"}"); //调用查询接口 var resultJson = clienter.Submit("CN_PAYAPPLY", JsonConvert.SerializeObject(param)); return ValidateResponse(resultJson); } /// /// 付款-审核 /// /// /// /// public bool Test_EmpInfo_Audit(K3CloudApi clienter, string number) { //查询的请求参数 var param = JObject.Parse("{\"CreateOrgId\":0,\"Numbers\":[\"" + number + "\"],\"Ids\":\"\",\"InterationFlags\":\"\",\"NetworkCtrl\":\"\",\"IsVerifyProcInst\":\"\",\"IgnoreInterationFlag\":\"\"}"); //调用查询接口 var resultJson = clienter.Audit("CN_PAYAPPLY", JsonConvert.SerializeObject(param)); return ValidateResponse(resultJson); } #endregion public bool ValidateResponse(string resultJson) { //对返回结果进行解析和校验,这里使用的是JsonPatch var resultJObject = JObject.Parse(resultJson); var queryNode = resultJObject.SelectToken("$..IsSuccess"); if (queryNode == null) { return true; } var isSuccess = queryNode.Value(); return isSuccess; } public DateTime GetDateTime(string timeStamp) { var posixTime = DateTime.SpecifyKind(new DateTime(1970, 1, 1), DateTimeKind.Utc); var time = posixTime.AddMilliseconds(Convert.ToDouble(timeStamp)); return time; } } }