123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- using Kingdee.CDP.WebApi.SDK;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using System;
- using System.Text;
- namespace Kingdee.BOS.WebApi.SDK.Test
- {
- [TestClass]
- public class Reimbursement
- {
- /// <summary>
- /// 报销申请单
- /// </summary>
- [TestMethod]
- public string Test_reimbursement(object ydapidata)
- {
- string jsonsZTab = "";
- //List<string> dic = new List<string>();
- JObject array = JsonConvert.DeserializeObject<JObject>(ydapidata.ToString());
- foreach (var item in array["tableField_leqinlq8"])
- {
- JObject itemarray = JsonConvert.DeserializeObject<JObject>(item.ToString());
- //DateTime dqr = GetDateTime(itemarray["dateField_leqinlqd"].ToString());
- //DateTime yfr = GetDateTime(itemarray["dateField_lgdd2fz5"].ToString());
- jsonsZTab += "{\"FExpID\": { \"FNUMBER\": \"FYXM09_SYS\" },\"FLocExpSubmitAmount\": 10.3,\"FLocReqSubmitAmount\": 10.3,\"FLOCTAXAMOUNT\": 0.3,\"FLOCNOTAXAMOUNT\": 10.0,\"FTaxSubmitAmt\": 10.0,\"FTaxRate\": 3.0,\"FTaxAmt\": 0.3,\"FExpenseAmount\": 10.3,\"FExpenseDeptEntryID\": {\"FNUMBER\": \"001.01\" },\"FRequestAmount\": 10.3,\"FExpSubmitAmount\": 10.3,\"FReqSubmitAmount\": 10.3,\"FOnlineBank\": false},";
- }
- //初始化
- var clienter = new K3CloudApi();
- StringBuilder error = new StringBuilder();
- //测试连接
- RepoResult reporesult = clienter.CheckAuthInfo();
- Assert.IsTrue(reporesult.ResponseStatus.IsSuccess);
- if (reporesult.ResponseStatus.IsSuccess)
- {
- //保存接口的请求参数的规定格式
- var requestJObject = JObject.Parse("{\"NeedUpDateFields\": [],\"NeedReturnFields\": [],\"IsDeleteEntry\": \"true\",\"SubSystemId\": \"\",\"IsVerifyBaseDataField\": \"false\",\"IsEntryBatchFill\": \"true\",\"ValidateFlag\": \"true\",\"NumberSearch\": \"true\",\"IsAutoAdjustField\": \"false\",\"InterationFlags\": \"\",\"IgnoreInterationFlag\": \"\"," +
- "\"Model\": {" +
- "\"FID\": 0,\"FDate\": \"2023-04-13 00:00:00\"," +
- "\"FCurrencyID\": {\"FNUMBER\": \"PRE001\"}," +
- "\"FOrgID\": {\"FNumber\": \"101\"}," +
- "\"FCausa\": \"测试\"," +
- "\"FProposerID\": {\"FSTAFFNUMBER\": \"010907031023147775\"}," +
- "\"FRequestDeptID\": {\"FNUMBER\": \"001.01\"}," +
- "\"FContactPhoneNo\": \"19972642292\"," +
- "\"FBillTypeID\": {\"FNUMBER\": \"FYBXD001_SYS\"}," +
- "\"FExpenseOrgId\": {\"FNumber\": \"101\"}," +
- "\"FExpenseDeptID\": {\"FNUMBER\": \"001.01\"}," +
- "\"FCONTACTUNITTYPE\": \"BD_Empinfo\"," +
- "\"FCONTACTUNIT\": {\"FNumber\": \"010907031023147775\"}," +
- "\"FPayOrgId\": {\"FNumber\": \"101\" }," +
- "\"FPaySettlleTypeID\": {\"FNUMBER\": \"JSFS04_SYS\"}," +
- "\"FBankBranchT\": \"开户银行\",\"FBankAccountNameT\": \"账户名称\",\"FBankAccountT\": \"银行账户\"," +
- "\"FLocCurrencyID\": {\"FNUMBER\":\"PRE001\"}," +
- "\"FExchangeTypeID\": {\"FNUMBER\":\"HLTX01_SYS\"}," +
- "\"FExchangeRate\": 1.0,\"FSplitEntry\": false,\"FCombinedPay\": true,\"FLocExpAmountSum\": 30.5,\"FLocReqAmountSum\": 30.5,\"FExpAmountSum\": 30.5,\"FReqAmountSum\": 30.5," +
- "\"FCreatorId\": {\"FUserID\": 16394 }," +
- "\"FCreateDate\": \"2023-04-13 17:34:10\",\"FRequestType\": \"1\",\"FReqReimbAmountSum\": 30.5,\"FReqPayReFoundAmountSum\": 30.5,\"FBankAddress\": \"开户行地址\",\"FBANKCNAPS\": \"联行号\",\"FRealPay\": false," +
- "\"FBankDetail\": {\"FNUMBER\": \"11\" },\"FCountry\":\"中国\",\"FNProvince\": \"1\",\"FNCity\": \"1\",\"FMultiPayee\": false,\"FillByBeimAmount\": false,\"F_BQB_KFDQ\": \"湖南付款\"," +
- "\"FEntity\": ["+jsonsZTab.Substring(0, jsonsZTab.Length - 1)+ "]}}");
- //调用保存接口
- var resultJson = clienter.Save("ER_ExpReimbursement", JsonConvert.SerializeObject(requestJObject));
- JObject resJson = JsonConvert.DeserializeObject<JObject>(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
- /// <summary>
- /// 报销-查询
- /// </summary>
- /// <param name="clienter"></param>
- /// <param name="number"></param>
- /// <returns></returns>
- public bool Test_EmpInfo_View(K3CloudApi clienter, string number)
- {
- //查询的请求参数
- var param = JObject.Parse("{\"CreateOrgId\":0,\"Number\":\"" +
- number +
- "\",\"Id\":\"\"}");
- //调用查询接口
- var resultJson = clienter.View("ER_ExpReimbursement", JsonConvert.SerializeObject(param));
- return ValidateResponse(resultJson);
- }
- /// <summary>
- /// 报销-提交
- /// </summary>
- /// <param name="clienter"></param>
- /// <param name="number"></param>
- /// <returns></returns>
- 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("ER_ExpReimbursement", JsonConvert.SerializeObject(param));
- return ValidateResponse(resultJson);
- }
- /// <summary>
- /// 报销-审核
- /// </summary>
- /// <param name="clienter"></param>
- /// <param name="number"></param>
- /// <returns></returns>
- 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("ER_ExpReimbursement", 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<Boolean>();
- return isSuccess;
- }
- /// <summary>
- /// 时间戳转换
- /// </summary>
- /// <param name="timeStamp"></param>
- /// <returns></returns>
- 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;
- }
- }
- }
|