|
@@ -0,0 +1,447 @@
|
|
|
+using ConsoleApp1.Controller.Sql_controller;
|
|
|
+using Kingdee.BOS.WebApi.Client;
|
|
|
+using Newtonsoft.Json;
|
|
|
+using Newtonsoft.Json.Linq;
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Data;
|
|
|
+using System.IO;
|
|
|
+
|
|
|
+namespace LiChenkingdee.Controllers
|
|
|
+{
|
|
|
+ /// <summary>
|
|
|
+ /// 获取金蝶数据
|
|
|
+ /// </summary>
|
|
|
+ public class kingdeeToList
|
|
|
+ {
|
|
|
+ HttpHepler http = new HttpHepler();
|
|
|
+ public void kindeeDL()
|
|
|
+ {
|
|
|
+ K3CloudApiClient client = new K3CloudApiClient("http://121.37.217.34/k3cloud/"); //http://121.37.217.34/k3cloud/
|
|
|
+ var loginResult = client.ValidateLogin("612cade2b0fead", "administrator", "lichen17LC+", 2052); //正式
|
|
|
+ //var loginResult = client.ValidateLogin("61c9778c87d3d1", "administrator", "Lichen*2021", 2052); //测试
|
|
|
+ var resultType = JObject.Parse(loginResult)["LoginResultType"].Value<int>();
|
|
|
+ //登录结果类型等于1,代表登录成功
|
|
|
+ if (resultType == 1)
|
|
|
+ {
|
|
|
+ //client.ExecuteBillQuery("{"FormId":"","FieldKeys":"","FilterString":"","OrderString":"","TopRowCount":0,"StartRow":0,"Limit":0}");
|
|
|
+ //PostKingdeeYG(client, DateTime.Now); //员工
|
|
|
+ //PostKingdeeQT(client, DateTime.Now); //其他往来单位
|
|
|
+ PostKingdeeKH(client, DateTime.Now); //客户单位
|
|
|
+ //PostKingdeeGYS(client, DateTime.Now); //供应商
|
|
|
+ //PostKingdeeFK(client, DateTime.Now); //付款
|
|
|
+ //PostKingdeeYF(client, DateTime.Now); //应付
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取付款单
|
|
|
+ /// </summary>
|
|
|
+ public void PostKingdeeFK(K3CloudApiClient client,DateTime date)
|
|
|
+ {
|
|
|
+ string SJ = date.AddDays(-1).ToString("yyyy-MM-dd");
|
|
|
+ var FKList = client.ExecuteBillQuery("{"+
|
|
|
+ "\"FormId\": \"CN_PAYAPPLY\","+
|
|
|
+ "\"FieldKeys\": \"FBillNo \","+
|
|
|
+ "\"FilterString\": \"FCREATEDATE >'" + SJ + "' and FDOCUMENTSTATUS = 'B'\"," +
|
|
|
+ "\"OrderString\": \"\","+
|
|
|
+ "\"TopRowCount\": 0,"+
|
|
|
+ "\"StartRow\": 0,"+
|
|
|
+ "\"Limit\": 0}");
|
|
|
+ foreach (var item in FKList)
|
|
|
+ {
|
|
|
+ string FBillNo = item[0].ToString();
|
|
|
+ PostFKList(client, FBillNo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 应付单
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="client"></param>
|
|
|
+ /// <param name="date"></param>
|
|
|
+ public void PostKingdeeYF(K3CloudApiClient client, DateTime date)
|
|
|
+ {
|
|
|
+ string SJ = date.AddDays(-1).ToString("yyyy-MM-dd");
|
|
|
+ var FKList = client.ExecuteBillQuery("{" +
|
|
|
+ "\"FormId\": \"AP_Payable\"," +
|
|
|
+ "\"FieldKeys\": \"FBillNo \"," +
|
|
|
+ "\"FilterString\": \"FCREATEDATE >'" + SJ + "'\"," +
|
|
|
+ "\"OrderString\": \"\"," +
|
|
|
+ "\"TopRowCount\": 0," +
|
|
|
+ "\"StartRow\": 0," +
|
|
|
+ "\"Limit\": 0}");
|
|
|
+ foreach (var items in FKList)
|
|
|
+ {
|
|
|
+ string FBillNo = items[0].ToString();
|
|
|
+ PostYFList(client, FBillNo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 付款申请单明细
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ public void PostFKList(K3CloudApiClient client,string FBillNo)
|
|
|
+ {
|
|
|
+ int i = 0;
|
|
|
+ string url = "http://39.98.219.9:9001/api/lichen/form/fksq";
|
|
|
+ Dictionary<string, List<Dictionary<string, string>>> dicFBillHead = new Dictionary<string, List<Dictionary<string, string>>>(); //头
|
|
|
+ Dictionary<string, List<Dictionary<string, string>>> FkFBillBody = new Dictionary<string, List<Dictionary<string, string>>>();//体
|
|
|
+ //string Contentjsonhead = "";
|
|
|
+ string Contentjsonbody = "";
|
|
|
+ List<Dictionary<string, string>> ListTable = new List<Dictionary<string, string>>();
|
|
|
+ string ArrList = client.View("CN_PAYAPPLY", "{\"CreateOrgId\":0,\"Number\":\""+ FBillNo + "\",\"Id\":\"\"}");
|
|
|
+ //string ArrList = client.View("CN_PAYAPPLY", "{\"CreateOrgId\":0,\"Number\":\"FKSQ000061\",\"Id\":\"\"}");
|
|
|
+ JObject array = JsonConvert.DeserializeObject<JObject>(ArrList);
|
|
|
+ foreach (var itemList in array["Result"])
|
|
|
+ {
|
|
|
+ if (i == 0)
|
|
|
+ {
|
|
|
+ i++;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ switch (itemList.Parent["Result"]["FCONTACTUNITTYPE"].ToString())
|
|
|
+ {
|
|
|
+ case "BD_Supplier":
|
|
|
+ Contentjsonbody = "供应商";
|
|
|
+ break;
|
|
|
+ case "BD_Customer":
|
|
|
+ Contentjsonbody = "客户";
|
|
|
+ break;
|
|
|
+ case "BD_Empinfo":
|
|
|
+ Contentjsonbody = "员工";
|
|
|
+ break;
|
|
|
+ case "FIN_OTHERS":
|
|
|
+ Contentjsonbody = "其他往来单位";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ Dictionary<string, string> dicFkFBillHead = new Dictionary<string, string>();//单据头
|
|
|
+ dicFkFBillHead.Add("FBillNo", itemList.Parent["Result"]["FBILLNo"].ToString()); //单据编号
|
|
|
+ dicFkFBillHead.Add("FCREATORID", itemList.Parent["Result"]["FCREATORID"]["Id"].ToString()); //创建人ID
|
|
|
+ dicFkFBillHead.Add("FCREATORNAME", itemList.Parent["Result"]["FCREATORID"]["Name"].ToString()); //创建人
|
|
|
+ dicFkFBillHead.Add("FSETTLEORGID", itemList.Parent["Result"]["FSETTLEORGID_Id"].ToString()); //FSETTLEORGID 结算组织
|
|
|
+ dicFkFBillHead.Add("FPURCHASEORGID", itemList.Parent["Result"]["FPURCHASEORGID_Id"].ToString()); //FPURCHASEORGID 采购组织
|
|
|
+ dicFkFBillHead.Add("FDATE",GetChinaTicks(Convert.ToDateTime(itemList.Parent["Result"]["FDATE"].ToString()))); //FDATE 申请日期
|
|
|
+ dicFkFBillHead.Add("FBILLTYPEID", itemList.Parent["Result"]["FBILLTYPEID"]["MultiLanguageText"][0]["Name"].ToString()); //单据类型:FBILLTYPEID
|
|
|
+ dicFkFBillHead.Add("FCONTACTUNITTYPE", Contentjsonbody); //往来单位类型:FCONTACTUNITTYPE
|
|
|
+ dicFkFBillHead.Add("FCONTACTUNIT_Id", itemList.Parent["Result"]["FCONTACTUNIT_Id"].ToString()); //往来单位编码
|
|
|
+ dicFkFBillHead.Add("FCONTACTUNIT", itemList.Parent["Result"]["FCONTACTUNIT"]["MultiLanguageText"][0]["Name"].ToString()); //往来单位:FCONTACTUNIT
|
|
|
+ //dicFkFBillHead.Add("FBUSINESSTYPE",itemList.Parent["FBUSINESSTYPE"]) //业务类型:FBUSINESSTYPE
|
|
|
+ dicFkFBillHead.Add("FPAYORGID", itemList.Parent["Result"]["FPAYORGID"]["MultiLanguageText"][0]["Name"].ToString()); //付款组织:FPAYORGID
|
|
|
+ dicFkFBillHead.Add("F_BQB_Combo", itemList.Parent["Result"]["F_BQB_Combo"].ToString()); //付款类型:F_BQB_Combo
|
|
|
+ dicFkFBillHead.Add("F_BQB_FKDQ", itemList.Parent["Result"]["F_BQB_FKDQ"].ToString()); //付款地区:F_BQB_FKDQ
|
|
|
+ dicFkFBillHead.Add("FEXPENSEDEPTID", string.IsNullOrEmpty(itemList.Parent["Result"]["FPAYAPPLYENTRY"][0]["FEXPENSEDEPTID"].ToString()) ? "无数据": itemList.Parent["Result"]["FPAYAPPLYENTRY"][0]["FEXPENSEDEPTID"]["MultiLanguageText"][0]["Name"].ToString()); //费用承担部门
|
|
|
+ dicFkFBillHead.Add("FAPPLYORGID", itemList.Parent["Result"]["FAPPLYORGID"]["MultiLanguageText"][0]["Name"].ToString()); //申请组织
|
|
|
+ dicFkFBillHead.Add("FRECTUNIT", itemList.Parent["Result"]["FRECTUNIT"]["MultiLanguageText"][0]["Name"].ToString()); //收款单位
|
|
|
+ dicFkFBillHead.Add("F_BQB_FKGS", itemList.Parent["Result"]["F_BQB_FKGS"]["MultiLanguageText"][0]["FDataValue"].ToString()); //付款公司
|
|
|
+ //Contentjsonhead = JsonConvert.SerializeObject(dicFkFBillHead);
|
|
|
+ //单据体
|
|
|
+ ///单据体数据
|
|
|
+
|
|
|
+ List<Dictionary<string, string>> ListListBody = new List<Dictionary<string, string>>();
|
|
|
+ foreach (var itemsData in array["Result"]["Result"]["FPAYAPPLYENTRY"])
|
|
|
+ {
|
|
|
+ string FDescription = string.IsNullOrEmpty(itemsData.Parent[0]["Description"].ToString()) ? "无数据" : itemsData.Parent[0]["Description"].ToString().Replace("\\", "");
|
|
|
+ Dictionary<string, string> dicFkFPAYAPPLYENTRY = new Dictionary<string, string>();
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("FSETTLETYPEID", itemsData.Parent[0]["FSETTLETYPEID"]["MultiLanguageText"][0]["Name"].ToString()); //结算方式:FSETTLETYPEID //
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("FEACHBANKACCOUNT", itemsData.Parent[0]["FEACHBANKACCOUNT"].ToString()); //对方银行账号:FEACHBANKACCOUNT
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("FAPPLYAMOUNTFOR", itemsData.Parent[0]["FAPPLYAMOUNTFOR"].ToString()); //申请付款金额:FAPPLYAMOUNTFOR
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("FENDDATE", GetChinaTicks(Convert.ToDateTime(itemsData.Parent[0]["FENDDATE"].ToString()))); //到期日:FENDDATE
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("FEXPECTPAYDATE", GetChinaTicks(Convert.ToDateTime(itemsData.Parent[0]["FEXPECTPAYDATE"].ToString()))); //期望付款日期:FEXPECTPAYDATE
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("FEACHCCOUNTNAME",string.IsNullOrEmpty(itemsData.Parent[0]["MultiLanguageText"][0].ToString())?"无数据": itemsData.Parent[0]["MultiLanguageText"][0]["FEACHCCOUNTNAME"].ToString()); //对方账户名称:FEACHCCOUNTNAME
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("FEACHBANKNAME", itemsData.Parent[0]["MultiLanguageText"][0]["FEACHBANKNAME"].ToString()); //对方开户行:FEACHBANKNAME
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("FCOSTID_id", itemsData.Parent[0]["FCOSTID_Id"].ToString()); //费用项目ID:FCOSTID_id
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("FCOSTID", string.IsNullOrEmpty(itemsData.Parent[0]["FCOSTID"].ToString())?"无数据": itemsData.Parent[0]["FCOSTID"]["MultiLanguageText"][0]["Name"].ToString()); //费用项目:FCOSTID
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("FDescription", FDescription); //备注
|
|
|
+
|
|
|
+ //备注:FDescription
|
|
|
+ ListListBody.Add(dicFkFPAYAPPLYENTRY);
|
|
|
+ }
|
|
|
+ dicFkFBillHead.Add("DataTable", JsonConvert.SerializeObject(ListListBody));
|
|
|
+ ListTable.Add(dicFkFBillHead);
|
|
|
+ }
|
|
|
+ Dictionary<string, List<Dictionary<string, string>>> Mapdata = new Dictionary<string, List<Dictionary<string, string>>>();
|
|
|
+ Mapdata.Add("data", ListTable);
|
|
|
+ string acts = http.HttpPost(url, JsonConvert.SerializeObject(Mapdata));
|
|
|
+ }
|
|
|
+
|
|
|
+ #region 应付单
|
|
|
+ public void PostYFList(K3CloudApiClient client, string FBillNo)
|
|
|
+ {
|
|
|
+ int i = 0;
|
|
|
+ string url = "http://39.98.219.9:9001/api/lichen/form/yfd";
|
|
|
+ //string url = "http://192.168.1.148:9001/api/lichen/form/yfd";
|
|
|
+ Dictionary<string, List<Dictionary<string, string>>> dicFBillHead = new Dictionary<string, List<Dictionary<string, string>>>(); //头
|
|
|
+ Dictionary<string, List<Dictionary<string, string>>> FkFBillBody = new Dictionary<string, List<Dictionary<string, string>>>();//体
|
|
|
+ //string Contentjsonbody = "";
|
|
|
+ List<Dictionary<string, string>> ListTable = new List<Dictionary<string, string>>();
|
|
|
+ string ArrList = client.View("AP_Payable", "{\"CreateOrgId\":0,\"Number\":\"" + FBillNo + "\",\"Id\":\"\"}");//AP00014611
|
|
|
+ //string ArrList = client.View("AP_Payable", "{\"CreateOrgId\":0,\"Number\":\"AP00014611\",\"Id\":\"\"}");
|
|
|
+ JObject array = JsonConvert.DeserializeObject<JObject>(ArrList);
|
|
|
+ foreach (var itemList in array["Result"])
|
|
|
+ {
|
|
|
+ if (i == 0)
|
|
|
+ {
|
|
|
+ i++;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ string SUPPLIERID = string.IsNullOrEmpty(itemList.Parent["Result"]["SUPPLIERID"]["MultiLanguageText"][0]["Name"].ToString()) ? "无数据" : itemList.Parent["Result"]["SUPPLIERID"]["MultiLanguageText"][0]["Name"].ToString();
|
|
|
+ string PayCurrency = string.IsNullOrEmpty(itemList.Parent["Result"]["CURRENCYID"]["MultiLanguageText"][0]["Name"].ToString()) ? "人民币" : itemList.Parent["Result"]["CURRENCYID"]["MultiLanguageText"][0]["Name"].ToString();
|
|
|
+ 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();
|
|
|
+ Dictionary<string, string> dicFkFBillHead = new Dictionary<string, string>();//单据头
|
|
|
+ dicFkFBillHead.Add("textField_ljqs84wy", itemList.Parent["Result"]["BillNo"].ToString()); //单据编号
|
|
|
+ dicFkFBillHead.Add("selectField_ljqs84ww", itemList.Parent["Result"]["BillTypeID"]["MultiLanguageText"][0]["Name"].ToString()); //单据类型
|
|
|
+ dicFkFBillHead.Add("selectField_ljqs84wz", SUPPLIERID); //供应商
|
|
|
+ dicFkFBillHead.Add("textareaField_ljqs84xc", itemList.Parent["Result"]["REMARK"].ToString()); // 备注
|
|
|
+ dicFkFBillHead.Add("selectField_ljqs84x4", PayCurrency); //币别
|
|
|
+ dicFkFBillHead.Add("selectField_ljqs84xe", PayCondition); //付款条件
|
|
|
+ dicFkFBillHead.Add("dateField_ljqs84xd", GetChinaTicks(Convert.ToDateTime(itemList.Parent["Result"]["DATE"].ToString())).ToString()); //业务日期
|
|
|
+ dicFkFBillHead.Add("selectField_ljqs84x5", itemList.Parent["Result"]["SETTLEORGID"]["MultiLanguageText"][0]["Name"].ToString()); //结算组织
|
|
|
+ dicFkFBillHead.Add("selectField_ljqs84x6", itemList.Parent["Result"]["FPAYORGID"]["MultiLanguageText"][0]["Name"].ToString()); //付款组织
|
|
|
+ dicFkFBillHead.Add("dateField_ljqs84xf", GetChinaTicks(Convert.ToDateTime(itemList.Parent["Result"]["FENDDATE_H"].ToString())).ToString()); //到期日
|
|
|
+ dicFkFBillHead.Add("selectField_ljqs84x7", itemList.Parent["Result"]["PURCHASEORGID"]["MultiLanguageText"][0]["Name"].ToString()); //采购组织
|
|
|
+ dicFkFBillHead.Add("numberField_ljzdjury", itemList.Parent["Result"]["FALLAMOUNTFOR"].ToString()); //价税合计
|
|
|
+ //dicFkFBillHead.Add("selectField_ljzbvqin", itemList.Parent["Result"]["FALLAMOUNTFOR"].ToString()); //价税合计
|
|
|
+ ///单据体数据
|
|
|
+ List<Dictionary<string, string>> ListListBody = new List<Dictionary<string, string>>();
|
|
|
+ foreach (var itemsData in array["Result"]["Result"]["AP_PAYABLEENTRY"])
|
|
|
+ {
|
|
|
+ string F_BQB_Base = string.IsNullOrEmpty(itemsData["F_BQB_Base"].ToString()) ? "" : itemsData["F_BQB_Base"]["MultiLanguageText"][0]["Name"].ToString();
|
|
|
+ string MATERIALID_Id = string.IsNullOrEmpty(itemsData["MATERIALID"].ToString())?" ": itemsData["MATERIALID"]["Number"].ToString();
|
|
|
+ string MATERIALID = string.IsNullOrEmpty(itemsData["MATERIALID"].ToString())?" ": itemsData["MATERIALID"]["MultiLanguageText"][0]["Name"].ToString();
|
|
|
+ string FPRICEUNITID = string.IsNullOrEmpty(itemsData["PRICEUNITID"].ToString())?"": itemsData["PRICEUNITID"]["MultiLanguageText"][0]["Name"].ToString();
|
|
|
+ string FPrice = string.IsNullOrEmpty(itemsData["FPrice"].ToString())?"0": itemsData["FPrice"].ToString();
|
|
|
+ string PriceQty = string.IsNullOrEmpty(itemsData["PriceQty"].ToString()) ? "0" : itemsData["PriceQty"].ToString();
|
|
|
+ string TaxPrice = string.IsNullOrEmpty(itemsData["TaxPrice"].ToString())?"0": itemsData["TaxPrice"].ToString();
|
|
|
+ string EntryTaxRate = string.IsNullOrEmpty(itemsData["EntryTaxRate"].ToString()) ? "0" : itemsData["EntryTaxRate"].ToString();
|
|
|
+ string EntryDiscountRate = string.IsNullOrEmpty(itemsData["EntryDiscountRate"].ToString()) ? "0" : itemsData["EntryDiscountRate"].ToString();
|
|
|
+ string FDISCOUNTAMOUNTFOR = string.IsNullOrEmpty(itemsData["FDISCOUNTAMOUNTFOR"].ToString()) ? "0" : itemsData["FDISCOUNTAMOUNTFOR"].ToString();
|
|
|
+ string FALLAMOUNTFOR_D = string.IsNullOrEmpty(itemsData["FALLAMOUNTFOR_D"].ToString()) ? "0" : itemsData["FALLAMOUNTFOR_D"].ToString();
|
|
|
+ string FTAXAMOUNTFOR_D = string.IsNullOrEmpty(itemsData["FTAXAMOUNTFOR_D"].ToString()) ? "0" : itemsData["FTAXAMOUNTFOR_D"].ToString();
|
|
|
+ string FNoTaxAmountFor_D = string.IsNullOrEmpty(itemsData["FNoTaxAmountFor_D"].ToString()) ? "0" : itemsData["FNoTaxAmountFor_D"].ToString();
|
|
|
+ string FCOSTID = string.IsNullOrEmpty(itemsData["FCOSTID"].ToString()) ? "" : itemsData["FCOSTID"]["MultiLanguageText"][0]["Name"].ToString();
|
|
|
+ string Number = string.IsNullOrEmpty(itemsData["FCOSTID"].ToString()) ? "" : itemsData["FCOSTID"]["Number"].ToString();
|
|
|
+ string FCOSTDEPARTMENTID = string.IsNullOrEmpty(itemsData["FCOSTDEPARTMENTID"].ToString()) ? "" : itemsData["FCOSTDEPARTMENTID"]["MultiLanguageText"][0]["Name"].ToString();
|
|
|
+ Dictionary<string, string> dicFkFPAYAPPLYENTRY = new Dictionary<string, string>();
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("selectField_ljz5shhv", FCOSTID); //费用项目名称
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("textField_ljz5shhw", Number); //费用项目编码
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("selectField_ljqs84xh", F_BQB_Base); //客户
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("selectField_ljqs84xi", MATERIALID_Id); //物料编码
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("textField_ljqs84xl", MATERIALID); //物料名称
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("textField_ljqs84xm", FPRICEUNITID); //计价单位
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xn", FPrice); //单价
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xo", PriceQty); //计价数量
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xp", TaxPrice); //含税单价
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xq", EntryTaxRate); //税率
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xs", EntryDiscountRate); //折扣率
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xt", FDISCOUNTAMOUNTFOR); //折扣额
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xu", FNoTaxAmountFor_D); //不含税金额
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xv", FTAXAMOUNTFOR_D); //税额
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("numberField_ljqs84xw", FALLAMOUNTFOR_D); //价税合计
|
|
|
+ dicFkFPAYAPPLYENTRY.Add("textField_ljzbvqik", FCOSTDEPARTMENTID); //费用承担部门
|
|
|
+ ListListBody.Add(dicFkFPAYAPPLYENTRY);
|
|
|
+ }
|
|
|
+ dicFkFBillHead.Add("tableField_ljqs84xg", JsonConvert.SerializeObject(ListListBody));
|
|
|
+ ListTable.Add(dicFkFBillHead);
|
|
|
+ }
|
|
|
+ Dictionary<string, List<Dictionary<string, string>>> Mapdata = new Dictionary<string, List<Dictionary<string, string>>>();
|
|
|
+ Mapdata.Add("data", ListTable);
|
|
|
+ string acts = http.HttpPost(url, JsonConvert.SerializeObject(Mapdata));
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 时间转换 毫秒级别的时间戳
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dateTime"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string GetChinaTicks(DateTime dateTime)
|
|
|
+ {
|
|
|
+ //北京时间相差8小时
|
|
|
+ DateTime startTime = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1, 8, 0, 0, 0), TimeZoneInfo.Local);
|
|
|
+ long t = (dateTime.Ticks - startTime.Ticks) / 10000; //除10000调整为13位
|
|
|
+ return t.ToString();
|
|
|
+ }
|
|
|
+
|
|
|
+ #region 往来单位同步
|
|
|
+ /// <summary>
|
|
|
+ /// 获取金蝶客户往来单位
|
|
|
+ /// </summary>
|
|
|
+ public void PostKingdeeKH(K3CloudApiClient client, DateTime date)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ DataTable dt = new DataTable();
|
|
|
+ dt.Columns.Add("Type", Type.GetType("System.String"));
|
|
|
+ dt.Columns.Add("FNumber", Type.GetType("System.String"));
|
|
|
+ dt.Columns.Add("FName", Type.GetType("System.String"));
|
|
|
+ DataRow newRow;
|
|
|
+ DataTable dt2 = new DataTable();
|
|
|
+
|
|
|
+ string daTime = date.AddDays(-1).ToString("yyyy-MM-ddThh:mm:ss");//FCreateDate >= '" + daTime + "'
|
|
|
+ ///往来单位 FCreateDate >= '" + daTime + "',
|
|
|
+ string url = "http://39.98.219.9:9001/api/lichen/form/wldx";
|
|
|
+ //string url = "https://mc.cloudpure.cn/frp/lichen/form/wldx";
|
|
|
+ //client.ExecuteBillQuerySync({\"FormId\": \"BD_Customer\",\"FieldKeys\": \"FNumber,FName\",\"FilterString\":\"FDOCUMENTSTATUS = 'C'\",\"OrderString\": \"\",\"TopRowCount\": 0,\"StartRow\": 0,\"Limit\": 0}");
|
|
|
+ var dtlits = client.ExecuteBillQuery("{\"FormId\": \"BD_Customer\",\"FieldKeys\": \"FNumber,FName\",\"FilterString\":\"FDOCUMENTSTATUS = 'C'\",\"OrderString\": \"\",\"TopRowCount\": 0,\"StartRow\": 0,\"Limit\": 0}");
|
|
|
+ List<Dictionary<string, string>> MapDic = new List<Dictionary<string, string>>();
|
|
|
+ foreach (var item in dtlits)
|
|
|
+ {
|
|
|
+ if (item.Count > 1)
|
|
|
+ {
|
|
|
+ newRow = dt.NewRow();
|
|
|
+ newRow["Type"] = "客户";
|
|
|
+ newRow["FNumber"] = item[0].ToString();
|
|
|
+ newRow["FName"] = item[1].ToString();
|
|
|
+ dt.Rows.Add(newRow);
|
|
|
+ DataView dv = new DataView(dt);
|
|
|
+ dt2 = dv.ToTable(true,new string[]{"Type","FNumber","FName"});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ foreach (DataRow item in dt2.Rows)
|
|
|
+ {
|
|
|
+ Dictionary<string, string> dic = new Dictionary<string, string>();
|
|
|
+ dic.Add("Type", "客户");
|
|
|
+ dic.Add("FNumber", item["FNumber"].ToString());
|
|
|
+ dic.Add("FName", item["FName"].ToString());
|
|
|
+ MapDic.Add(dic);
|
|
|
+ Dictionary<string, List<Dictionary<string, string>>> Mapdata = new Dictionary<string, List<Dictionary<string, string>>>();
|
|
|
+ Mapdata.Add("data", MapDic);
|
|
|
+ string Contentjson = JsonConvert.SerializeObject(Mapdata);
|
|
|
+ string acts = http.HttpPost(url, Contentjson);
|
|
|
+ }
|
|
|
+ ShowLog("OK");
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+
|
|
|
+ ShowLog(e.Message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 同步金蝶员工往来单位
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="client"></param>
|
|
|
+ /// <param name="date"></param>
|
|
|
+ public void PostKingdeeYG(K3CloudApiClient client, DateTime date)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ //FCreateDate >= '" + daTime + "'\",FCreateDate >= '" + daTime + "'
|
|
|
+ string daTime = date.AddDays(-1).ToString("yyyy-MM-ddThh:mm:ss");//39.98.219.9:9001 //FCreateDate >= '" + daTime + "'and
|
|
|
+ //string url = "http://192.168.1.76:9001/api/lichen/form/wldx";
|
|
|
+ string url = "http://39.98.219.9:9001/api/lichen/form/wldx";
|
|
|
+ var KingdeeWLList = client.ExecuteBillQuery("{\"FormId\":\"BD_Empinfo\",\"FieldKeys\":\"FNumber,FName\",\"FilterString\":\"FCreateDate >= '" + daTime + "'and FDOCUMENTSTATUS = 'C'\",\"OrderString\": \"\",\"TopRowCount\": 0,\"StartRow\": 0,\"Limit\": 0}");
|
|
|
+ List<Dictionary<string, string>> MapDic = new List<Dictionary<string, string>>();
|
|
|
+ foreach (var item in KingdeeWLList)
|
|
|
+ {
|
|
|
+ if (item.Count > 1)
|
|
|
+ {
|
|
|
+ Dictionary<string, string> dic = new Dictionary<string, string>();
|
|
|
+ dic.Add("Type", "员工");
|
|
|
+ dic.Add("FNumber", item[0].ToString());
|
|
|
+ dic.Add("FName", item[1].ToString());
|
|
|
+ MapDic.Add(dic);
|
|
|
+ Dictionary<string, List<Dictionary<string, string>>> Mapdata = new Dictionary<string, List<Dictionary<string, string>>>();
|
|
|
+ Mapdata.Add("data", MapDic);
|
|
|
+ string Contentjson = JsonConvert.SerializeObject(Mapdata);
|
|
|
+ string acts = http.HttpPost(url, Contentjson);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ShowLog("OK");
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+
|
|
|
+ ShowLog(e.Message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 其他往来单位
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="client"></param>
|
|
|
+ /// <param name="date"></param>
|
|
|
+ public void PostKingdeeQT(K3CloudApiClient client, DateTime date)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ //FCreateDate >= '" + daTime + "',
|
|
|
+ string daTime = date.AddDays(-1).ToString("yyyy-MM-ddThh:mm:ss"); //FCreateDate >= '" + daTime + "'
|
|
|
+ string url = "http://39.98.219.9:9001/api/lichen/form/wldx";
|
|
|
+ var KingdeeWLList = client.ExecuteBillQuery("{\"FormId\": \"FIN_OTHERS\",\"FieldKeys\": \"FNumber,FName\",\"FilterString\":\"FCreateDate >= '" + daTime + "' andFDOCUMENTSTATUS = 'C'\",\"OrderString\": \"\",\"TopRowCount\": 0,\"StartRow\": 0,\"Limit\": 0}");
|
|
|
+ List<Dictionary<string, string>> MapDic = new List<Dictionary<string, string>>();
|
|
|
+ foreach (var item in KingdeeWLList)
|
|
|
+ {
|
|
|
+ if (item.Count > 1)
|
|
|
+ {
|
|
|
+ Dictionary<string, string> dic = new Dictionary<string, string>();
|
|
|
+ dic.Add("Type", "其他往来单位");
|
|
|
+ dic.Add("FNumber", item[0].ToString());
|
|
|
+ dic.Add("FName", item[1].ToString());
|
|
|
+ MapDic.Add(dic);
|
|
|
+ Dictionary<string, List<Dictionary<string, string>>> Mapdata = new Dictionary<string, List<Dictionary<string, string>>>();
|
|
|
+ Mapdata.Add("data", MapDic);
|
|
|
+ string Contentjson = JsonConvert.SerializeObject(Mapdata);
|
|
|
+ string acts = http.HttpPost(url, Contentjson);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ShowLog("OK");
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+
|
|
|
+ ShowLog(e.Message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 供应商
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="client"></param>
|
|
|
+ /// <param name="date"></param>
|
|
|
+ public void PostKingdeeGYS(K3CloudApiClient client, DateTime date)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ string daTime = date.AddDays(-1).ToString("yyyy-MM-ddThh:mm:ss"); //FCreateDate >= '" + daTime + "',
|
|
|
+ string url = "http://39.98.219.9:9001/api/lichen/form/wldx";
|
|
|
+ //string querylist = "{\"FormId\":\"BD_Supplier\",\"FieldKeys\":\"FNumber,FName\",\"FilterString\":\"FDOCUMENTSTATUS = 'C'\",\"OrderString\":\"\",\"TopRowCount\":0,\"StartRow\":0,\"Limit\":0}";
|
|
|
+ var KingdeeGYSList = client.ExecuteBillQuery("{ \"FormId\":\"BD_Supplier\",\"FieldKeys\":\"FNumber,FName\",\"FilterString\":\"FCreateDate >= '" + daTime + "' and FDOCUMENTSTATUS = 'C'\",\"OrderString\":\"\",\"TopRowCount\":0,\"StartRow\":0,\"Limit\":0}");
|
|
|
+ //var KingdeeGYSList = client.ExecuteBillQuery(querylist);
|
|
|
+ List<Dictionary<string, string>> MapDic = new List<Dictionary<string, string>>();
|
|
|
+ foreach (var item in KingdeeGYSList)
|
|
|
+ {
|
|
|
+ if (item.Count > 1)
|
|
|
+ {
|
|
|
+ Dictionary<string, string> dic = new Dictionary<string, string>();
|
|
|
+ dic.Add("Type", "供应商");
|
|
|
+ dic.Add("FNumber", item[0].ToString());
|
|
|
+ dic.Add("FName", item[1].ToString());
|
|
|
+ MapDic.Add(dic);
|
|
|
+ Dictionary<string, List<Dictionary<string, string>>> Mapdata = new Dictionary<string, List<Dictionary<string, string>>>();
|
|
|
+ Mapdata.Add("data", MapDic);
|
|
|
+ string Contentjson = JsonConvert.SerializeObject(Mapdata);
|
|
|
+ string acts = http.HttpPost(url, Contentjson);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ShowLog("OK");
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+
|
|
|
+ ShowLog(e.Message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
+
|
|
|
+ #region 创建文本文件
|
|
|
+ public void ShowLog(string log)
|
|
|
+ {
|
|
|
+ File.AppendAllText("log.txt", "\r\n" + log +",日期:"+DateTime.Now);
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+ }
|
|
|
+}
|