using HH.YiDaSyncNC.Dtos.NC; using HH.YiDaSyncNC.Dtos.YIDA; using HH.YiDaSyncNC.Helper; using HH.YiDaSyncNC.Models; using Newtonsoft.Json; using SqlSugar; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Linq; namespace HH.YiDaSyncNC.DataSync { public class FKYF_SyncService { public string _AppType; public string _SystemToken; public string _UserId; public string _FormId; public SqlSugarClient _db; public SqlSugarClient _db_nc; public string _NCApiUrl; public static string _Static_PK_bd_project = ConfigurationManager.AppSettings["bd_project"]; public static string _Static_pk_org_jt = ConfigurationManager.AppSettings["pk_org_jt"]; public FKYF_SyncService(string AppType, string SystemToken, string UserId, string FormId, SqlSugarClient db, SqlSugarClient db_nc, string NCApiUrl) { _AppType = AppType; _SystemToken = SystemToken; _UserId = UserId; _FormId = FormId; _db = db; _db_nc = db_nc; _NCApiUrl = NCApiUrl; } public void DataSync() { //DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId); //// 宜搭全量数据Id //var serchKeyListJson = new //{ // radioField_lycrvvtk = "Y", // selectField_lrnh633d = "预付", //}; //var idList = _dingTalkService.GetFormIdList(JsonConvert.SerializeObject(serchKeyListJson)); ////LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList"); //#region 获取NC中选项数据的Id //var bd_customerDic = _db_nc.Queryable().ToList(); //var bd_incomeDic = _db_nc.Queryable().ToList(); //var org_orgsDic = _db_nc.Queryable().ToList(); //var bd_projectDic = _db_nc.Queryable().ToList(); //var bd_materialDic = _db_nc.Queryable().ToList(); //var bd_measdocDic = _db_nc.Queryable().ToList(); //var org_deptDic = _db_nc.Queryable().ToList(); //var bd_psndocDic = _db_nc.Queryable().ToList(); //var sm_userDic = _db_nc.Queryable().ToList(); //var org_accountingbookDic = _db_nc.Queryable().ToList(); //#endregion //foreach (var item in idList) //{ // string createTime = ""; // string modifyTime = ""; // var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime); // string jsonData = JsonConvert.SerializeObject(ydDataSource); // YiDa_SKDNC thisYiDaData = JsonConvert.DeserializeObject(jsonData); // if (string.IsNullOrWhiteSpace(thisYiDaData.selectField_lvywoqmb)) continue; // if (string.IsNullOrWhiteSpace(thisYiDaData.textField_lwitiobt)) continue; // var detailObjFPList1 = thisYiDaData.tableField_lsx02qv5; //发票明细 // if (detailObjFPList1 is null || detailObjFPList1.Count == 0) continue; // DateTime 日期 = DateTime.Now;// UnixTimeHelper.ConvertMillisecondsToDateTime(thisYiDaData.dateField_lviv4sfy); // string 组织 = ""; // if (!string.IsNullOrWhiteSpace(thisYiDaData.selectField_lvywoqmb)) // { // var tempData = org_orgsDic.FirstOrDefault(f => f.name == thisYiDaData.selectField_lvywoqmb); // if (tempData != null) // { // 组织 = tempData.code; // 组织 // } // } // string 单据号 = ""; // if (!string.IsNullOrWhiteSpace(thisYiDaData.serialNumberField_lwiz0n9f)) // { // 单据号 = thisYiDaData.serialNumberField_lwiz0n9f; // 组织 // } // string 制单人 = "OA-NC"; // // 表头 // var headModel = new FKYF_SyncServiceModel.DataModel.voucher_header() // { // billdate = 日期.ToString("yyyy-MM-dd"), // billmaker = 制单人, // billno = 单据号, // billperiod = 日期.ToString("MM"), // billyear = 日期.ToString("yyyy"), // creationtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), // creator = 制单人, // local_money = thisYiDaData.numberField_lvua3j18.ToString(), // money = thisYiDaData.numberField_lvua3j18.ToString(), // pk_org = 组织, // pu_org = 组织, // pu_deptid = "", // pu_psndoc = "", // }; // //表体 // var detailList = new List(); // if (thisYiDaData.tableField_lrngrtgu != null) // { // var detailObjList1 = thisYiDaData.tableField_lrngrtgu; //明细 // int index = 1; // foreach (var objItem in detailObjList1) // { // var thisBody = new FKYF_SyncServiceModel.DataModel.voucher_body() // { // sett_org = 组织, // supplier = thisYiDaData.textField_lwitiobt, // pk_subjcode = objItem.textField_lwitioch, // subjcode = objItem.textField_lwitioce, // billdate = 日期.ToString("yyyy-MM-dd"), // busidate = 日期.ToString("yyyy-MM-dd"), // invoiceno = detailObjFPList1.FirstOrDefault().textField_lsx02qv8, // price = objItem.numberField_lvxa4v09.ToString(),// "单价", // taxprice = objItem.numberField_lvua3j17.ToString(), // quantity_cr = "1",//"贷方数量", // money_cr = objItem.numberField_lvua3j17.ToString(),//"贷方原币金额", // notax_cr = objItem.numberField_lvxa4v09.ToString(),//"贷方原币无税金额", // local_money_cr = objItem.numberField_lvua3j17.ToString(),//"组织本币金额(贷方)", // local_notax_cr = objItem.numberField_lvxa4v09.ToString(),//"组织本币无税金额(贷方)", // caltaxmny = objItem.numberField_lvxa4v09.ToString(),//"计税金额", // local_tax_cr = objItem.numberField_lvxa4v08.ToString() ?? "0",//"税额", // taxrate = "13", // pu_org = 组织, // rowno = index.ToString(), // ordercubasdoc = thisYiDaData.textField_lwitiobt, // pk_fiorg = 组织, // pk_org= 组织, // pu_deptid = "", // pk_psndoc ="", // pk_deptid ="", // material="", // }; // detailList.Add(thisBody); // index++; // } // XElement xElement = FKYF_SyncServiceModel.ImportXml_应付单.TemplateHeade(headModel); // xElement.Add(FKYF_SyncServiceModel.ImportXml_应付单.Header(headModel));//添加表头数据 // xElement.Element("bill").Element("billhead").Element("bodys").Add(FKYF_SyncServiceModel.ImportXml_应付单.Body(detailList)); // //生成凭证 // var results_应付单 = NCImportFunc.NCImport2(xElement, _NCApiUrl + "?account=01&groupcode=0"); // LogHelper.WriteLog(JsonConvert.SerializeObject(results_应付单), "results_应付单"); //} //} } } }