using ConsoleApp1.Controller.Sql_controller; using ConsoleApp1.Controller.Ykb_API; using ConsoleApp1.Model; using H3.BizBus; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1.Controller.CY_API { /// /// NC同步基础资料到氚云 /// public class CY_NC_Api { //private Ding_YP_Public ding_YP_Public = new Ding_YP_Public(); private Ykb_APIServer ykb_API = new Ykb_APIServer(); public void NC_CY() { string ykbToken = ykb_API.dttoken(); string dates = (DateTime.Now.AddDays(-5)).ToString("yyyy-MM-dd"); //获取当前年月日 //string dates = "2021-02-22"; IBDdocQuer.BDdocQueyPortTypeClient cs = new IBDdocQuer.BDdocQueyPortTypeClient(); //string css1 = CY_API_Server.LoadBizObjects("LoadBizObjects", "D116604ab3e5ca3a3f944b2bb2db76b67780a2a", this.Filter("张涛")); int i = 0, j = 0; string mun = "", codes = null; #region NC 业务单元 do { i = i + 1; var json = cs.bdDocQuey("{\"data\": {\"billfalg\": \"业务单元\",\"currentPage\":" + i + ",\"linesize\":\"200\",\"creationtime\":\"creationtime >= '" + dates + "'\"}}");//,\"code\":\"G00070\",\"ts\": \"ts>='"+ dates + "'\,\"ts\": \"ts\">='2021-02-22'\",\"currentPage\":" + i + ",\"linesize\":\"200\", ,\"ts\":\"ts >= '" + dates + "'\" JObject ResultJson = JsonConvert.DeserializeObject(json.ToString()); mun = ResultJson["msg"].ToString(); if (ResultJson["code"].ToString() == "Y") { foreach (var item in ResultJson["returndata"]) { ///调用查询方法判断该表中是否存在该条Code的值 string css = CY_API_Server.LoadBizObjects("LoadBizObjects", "D116604Szkzflihsy7yhpiqs3v99ysio4", this.Filter(item["code"].ToString())); JObject jObject = JsonConvert.DeserializeObject(css); if (jObject["Successful"].ToString().ToLower() == "true" && !string.IsNullOrEmpty(jObject["ReturnData"].ToString())) //表示已经存在 { //ykb_API.InsertDAN(ykbToken, item["code"].ToString(), "gCEbY44UmM4Q00:法人实体", item["name"].ToString()); string setData = ykb_API.setDAN(ykbToken, item["code"].ToString()); int man = Convert.ToInt32(setData); if (man < 1) { ykb_API.InsertDAN(ykbToken, item["name"].ToString(), "gCEbY44UmM4Q00:法人实体", item["code"].ToString()); } DataTable dt1 = BizObjectId(jObject); dt1.PrimaryKey = new DataColumn[] { dt1.Columns["Code"] }; DataRow rows = dt1.Rows.Find(item["code"]); string ObjectId = string.Format(rows["ObjectId"].ToString()); BusinessUnit businessUnit = new BusinessUnit() { F0000001 = item["code"].ToString(), F0000002 = item["name"].ToString() }; Dictionary dic = new Dictionary(); dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit)); //调用修改方法进行修改 CY_API_Server.UpdateBizObject("UpdateBizObject", "D116604Szkzflihsy7yhpiqs3v99ysio4", ObjectId, dic); } else { string setData = ykb_API.setDAN(ykbToken, item["code"].ToString()); int man = Convert.ToInt32(setData); if (man < 1) { ykb_API.InsertDAN(ykbToken, item["name"].ToString(), "gCEbY44UmM4Q00:法人实体", item["code"].ToString()); } //氚云接口(1.需要实体类 2.数据集合 3.IsSubmit) BusinessUnit businessUnit = new BusinessUnit() { F0000001 = item["code"].ToString(), F0000002 = item["name"].ToString() }; Dictionary dic = new Dictionary(); dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit)); dic.Add("SchemaCode", "D116604Szkzflihsy7yhpiqs3v99ysio4"); dic.Add("IsSubmit", "true"); bool success = false; ///新增方法 CY_API_Server.H3YunApi("CreateBizObject", dic, out success); if (success) { j++; codes += "&" + item["code"].ToString(); } else { //_Controller.Synchronous_Log("氚云同步失败", "错误原因:氚云错误!"); } } } if (j > 0) { //ding_YP_Public.send_to_conversation(null, "text", "业务单元新增" + j + "条数据,数据为:" + codes, false, "1951251420023804"); } Sql_Controller.Synchronous_Log("业务单元同步成功","0", "成功信息:" + ResultJson["msg"].ToString()); } else { Sql_Controller.Synchronous_Log("业务单元同步失败","1", "错误原因:" + ResultJson["msg"].ToString()); } } while (mun == "查询到200条数据"); i = 0; j = 0; codes = null; #endregion #region NC 项目档案 do { i = i + 1; var json1 = cs.bdDocQuey("{\"data\": {\"billfalg\": \"项目档案\",\"currentPage\":" + i + ",\"linesize\":\"200\",\"creationtime\":\"creationtime >= '" + dates + "'\"}}");//,\"code\":\"XX00096\",\"currentPage\":" + i + ",\"linesize\":\"200\" JObject ResultJson1 = JsonConvert.DeserializeObject(json1.ToString()); mun = ResultJson1["msg"].ToString(); if (ResultJson1["code"].ToString() == "Y") { foreach (var item2 in ResultJson1["returndata"]) { ///调用批量查询接口 string css = CY_API_Server.LoadBizObjects("LoadBizObjects", "D11660428ef6c76643f493daaa976d0909157cd", this.Filter(item2["project_code"].ToString())); JObject jObject = JsonConvert.DeserializeObject(css); if (jObject["Successful"].ToString().ToLower() == "true" && !string.IsNullOrEmpty(jObject["ReturnData"].ToString())) //表示已经存在 { //ykb_API.InsertDAN(ykbToken, item2["project_code"].ToString(), "gCEbY44UmM4Q00:项目", item2["project_name"].ToString()); string setData = ykb_API.setDAN(ykbToken, item2["project_code"].ToString()); if (Convert.ToInt32(setData) < 1) { ykb_API.InsertDAN(ykbToken, item2["project_name"].ToString(), "gCEbY44UmM4Q00:项目", item2["project_code"].ToString()); } DataTable dt = BizObjectId(jObject); dt.PrimaryKey = new DataColumn[] { dt.Columns["Code"] }; DataRow rows = dt.Rows.Find(item2["project_code"]); string ObjectId = string.Format(rows["ObjectId"].ToString()); ProjectFiles businessUnit = new ProjectFiles() { F0000001 = item2["project_code"].ToString(), F0000002 = item2["project_name"].ToString(), F0000003 = item2["orgcode"].ToString(), F0000004 = item2["orgname"].ToString() }; Dictionary dic = new Dictionary(); dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit)); //调用修改方法进行修改 CY_API_Server.UpdateBizObject("UpdateBizObject", "D11660428ef6c76643f493daaa976d0909157cd", ObjectId, dic); } else //无数据则新增进去 { string setData = ykb_API.setDAN(ykbToken,item2["project_code"].ToString()); if (Convert.ToInt32(setData) < 1) { ykb_API.InsertDAN(ykbToken, item2["project_name"].ToString(), "gCEbY44UmM4Q00:项目", item2["project_code"].ToString()); } //氚云接口(1.需要实体类 2.数据集合 3.IsSubmit) ProjectFiles project = new ProjectFiles() { F0000001 = item2["project_code"].ToString(), F0000002 = item2["project_name"].ToString(), F0000003 = item2["orgcode"].ToString(), F0000004 = item2["orgname"].ToString() }; Dictionary dic = new Dictionary(); dic.Add("BizObject", JsonConvert.SerializeObject(project)); dic.Add("SchemaCode", "D11660428ef6c76643f493daaa976d0909157cd"); dic.Add("IsSubmit", "true"); bool success = false; CY_API_Server.H3YunApi("CreateBizObject", dic, out success); if (success) { j++; codes += "&" + item2["project_code"].ToString(); } else { //_Controller.Synchronous_Log("氚云同步失败", "错误原因:氚云错误!"); } } } if (j > 0) { //ding_YP_Public.send_to_conversation(null, "text", "项目档案新增" + j + "条数据,数据为:" + codes, false, "1951251420023804"); } Sql_Controller.Synchronous_Log("项目档案同步成功", "0","成功信息:" + ResultJson1["msg"].ToString()); } else { Sql_Controller.Synchronous_Log("项目档案同步失败","1", "错误原因:" + ResultJson1["msg"].ToString()); } } while (mun == "查询到200条数据"); i = 0; j = 0; #endregion #region 客商档案 do { i = i + 1; var json3 = cs.bdDocQuey("{\"data\": {\"billfalg\": \"客商\",\"currentPage\":" + i + ",\"linesize\":\"200\",\"creationtime\":\"creationtime >= '" + dates + "'\"}}");//,\"code\":\"W09999\"\"currentPage\":" + i + ",\"linesize\":\"200\",\"creationtime\": \"creationtime >= '" + dates + "'\" JObject ResultJson3 = JsonConvert.DeserializeObject(json3.ToString()); mun = ResultJson3["msg"].ToString(); if (ResultJson3["code"].ToString() == "Y") { foreach (var item4 in ResultJson3["returndata"]) { string css = CY_API_Server.LoadBizObjects("LoadBizObjects", "D1166047df1ad979abe4335b41ec9b070b6d20f", this.Filter(item4["head"]["code"].ToString())); JObject jObject = JsonConvert.DeserializeObject(css); if (jObject["Successful"].ToString().ToLower() == "true" && !string.IsNullOrEmpty(jObject["ReturnData"].ToString())) //表示已经存在 { //ykb_API.InsertDAN(ykbToken, item4["head"]["name"].ToString(), "gCEbY44UmM4Q00:客商档案", item4["head"]["code"].ToString()); string setData = ykb_API.setDAN(ykbToken, item4["head"]["code"].ToString()); if (Convert.ToInt32(setData) < 1) { ykb_API.InsertDAN(ykbToken, item4["head"]["name"].ToString(), "gCEbY44UmM4Q00:供应商档案", item4["head"]["code"].ToString()); } DataTable dt4 = BizObjectId(jObject); dt4.PrimaryKey = new DataColumn[] { dt4.Columns["Code"] }; DataRow rows = dt4.Rows.Find(item4["head"]["code"]); string ObjectId = string.Format(rows["ObjectId"].ToString()); merchantsUnit businessUnit = new merchantsUnit() { F0000001 = item4["head"]["code"].ToString(), F0000002 = item4["head"]["name"].ToString() }; Dictionary dic = new Dictionary(); dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit)); //调用修改方法进行修改 CY_API_Server.UpdateBizObject("UpdateBizObject", "D1166047df1ad979abe4335b41ec9b070b6d20f", ObjectId, dic); } else { string setData = ykb_API.setDAN(ykbToken, item4["head"]["code"].ToString()); if (Convert.ToInt32(setData) < 1) { ykb_API.InsertDAN(ykbToken, item4["head"]["name"].ToString(), "gCEbY44UmM4Q00:供应商档案", item4["head"]["code"].ToString()); } merchantsUnit dapa = new merchantsUnit() { F0000001 = item4["head"]["code"].ToString(), F0000002 = item4["head"]["name"].ToString() }; Dictionary dic = new Dictionary(); dic.Add("BizObject", JsonConvert.SerializeObject(dapa)); dic.Add("SchemaCode", "D1166047df1ad979abe4335b41ec9b070b6d20f"); dic.Add("IsSubmit", "true"); bool success = false; CY_API_Server.H3YunApi("CreateBizObject", dic, out success); if (success) { j++; codes += "&" + item4["head"]["code"].ToString(); } else { //_Controller.Synchronous_Log("氚云同步失败", "错误原因:氚云错误!"); } } } if (j > 0) { //ding_YP_Public.send_to_conversation(null, "text", "客商档案新增" + j + "条数据,数据为:" + codes, false, "1951251420023804");// } Sql_Controller.Synchronous_Log("客商档案同步成功","0" ,"成功信息:" + ResultJson3["msg"].ToString()); } else { Sql_Controller.Synchronous_Log("客商档案同步失败","1", "错误原因:" + ResultJson3["msg"].ToString()); } } while (mun == "查询到200条数据"); i = 0; j = 0; #endregion #region 预算组织 do { i = i + 1; var json4 = cs.bdDocQuey("{\"data\": {\"billfalg\": \"预算组织\",\"currentPage\":" + i + ",\"linesize\":\"200\",\"creationtime\":\"creationtime >= '" + dates + "'\"}}"); //\"currentPage\":" + i + ",\"linesize\":\"200\", JObject ResultJson4 = JsonConvert.DeserializeObject(json4.ToString()); mun = ResultJson4["msg"].ToString(); if (ResultJson4["code"].ToString() == "Y") { foreach (var item5 in ResultJson4["returndata"]) { string css = CY_API_Server.LoadBizObjects("LoadBizObjects", "D116604Sq74oibupd5yckiaxh8209f1q5", this.Filter1(item5["code"].ToString())); JObject jObject = JsonConvert.DeserializeObject(css); if (jObject["Successful"].ToString().ToLower() == "true" && !string.IsNullOrEmpty(jObject["ReturnData"].ToString())) //表示已经存在 { string setData = ykb_API.setDAN(ykbToken, item5["code"].ToString()); if (Convert.ToInt32(setData) < 1) { ykb_API.InsertDAN(ykbToken, item5["name"].ToString(), "gCEbY44UmM4Q00:预算组织", item5["code"].ToString()); } DataTable dt5 = BizObjectId2(jObject); dt5.PrimaryKey = new DataColumn[] { dt5.Columns["Code"] }; DataRow rows = dt5.Rows.Find(item5["code"]); string ObjectId = string.Format(rows["ObjectId"].ToString()); merchantsUnit businessUnit = new merchantsUnit() { F0000002 = item5["code"].ToString(), F0000001 = item5["name"].ToString() }; Dictionary dic = new Dictionary(); dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit)); //调用修改方法进行修改 CY_API_Server.UpdateBizObject("UpdateBizObject", "D116604Sq74oibupd5yckiaxh8209f1q5", ObjectId, dic); } else { string setData = ykb_API.setDAN(ykbToken, item5["code"].ToString()); if (Convert.ToInt32(setData) < 1) { ykb_API.InsertDAN(ykbToken, item5["name"].ToString(), "gCEbY44UmM4Q00:预算组织", item5["code"].ToString()); } TheBudget Yv = new TheBudget() { F0000002 = item5["code"].ToString(), F0000001 = item5["name"].ToString() }; Dictionary dic = new Dictionary(); dic.Add("BizObject", JsonConvert.SerializeObject(Yv)); dic.Add("SchemaCode", "D116604Sq74oibupd5yckiaxh8209f1q5"); dic.Add("IsSubmit", "true"); bool success = false; CY_API_Server.H3YunApi("CreateBizObject", dic, out success); if (success) { j++; codes += "&" + item5["code"].ToString(); } else { //_Controller.Synchronous_Log("氚云同步失败", "错误原因:氚云错误!"); } } } if (j > 0) { //ding_YP_Public.send_to_conversation(null, "text", "预算组织新增" + j + "条数据,数据为:" + codes, false, "1951251420023804"); } Sql_Controller.Synchronous_Log("客商档案同步成功","0","成功信息:" + ResultJson4["msg"].ToString()); } else { Sql_Controller.Synchronous_Log("客商档案同步失败","1", "错误原因:" + ResultJson4["msg"].ToString()); } } while (mun == "查询到200条数据"); i = 0; j = 0; #endregion #region NC 部门档案 do { i = i + 1; var json2 = cs.bdDocQuey("{\"data\": {\"billfalg\": \"部门\",\"currentPage\":" + i + ",\"linesize\":\"200\",\"creationtime\":\"creationtime >= '" + dates + "'\"}}"); //,\"code\":\"0046\"\"currentPage\":" + i + ",\"linesize\":\"200\", JObject ResultJson2 = JsonConvert.DeserializeObject(json2.ToString()); mun = ResultJson2["msg"].ToString(); if (ResultJson2["code"].ToString() == "Y") { foreach (var item3 in ResultJson2["returndata"]) { string css = CY_API_Server.LoadBizObjects("LoadBizObjects", "D11660434d73096fca14c20acffdfa2dfcfb5ac", this.Filter(item3["code"].ToString())); JObject jObject = JsonConvert.DeserializeObject(css); if (jObject["Successful"].ToString().ToLower() == "true" && !string.IsNullOrEmpty(jObject["ReturnData"].ToString())) //表示已经存在 { string setData = ykb_API.setDAN(ykbToken, item3["code"].ToString()); if (Convert.ToInt32(setData) < 1) { ykb_API.InsertDAN(ykbToken, item3["name"].ToString(), "gCEbY44UmM4Q00:部门档案", item3["code"].ToString()); } DataTable dt3 = BizObjectId(jObject); dt3.PrimaryKey = new DataColumn[] { dt3.Columns["Code"] }; DataRow rows = dt3.Rows.Find(item3["code"]); string ObjectId = string.Format(rows["ObjectId"].ToString()); departmentUnit businessUnit = new departmentUnit() { F0000001 = item3["code"].ToString(), F0000002 = item3["name"].ToString(), F0000003 = item3["projectcode"].ToString(), F0000004 = item3["projectname"].ToString() }; Dictionary dic = new Dictionary(); dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit)); //调用修改方法进行修改 CY_API_Server.UpdateBizObject("UpdateBizObject", "D11660434d73096fca14c20acffdfa2dfcfb5ac", ObjectId, dic); } else { string setData = ykb_API.setDAN(ykbToken, item3["code"].ToString()); if (Convert.ToInt32(setData) < 1) { ykb_API.InsertDAN(ykbToken, item3["name"].ToString(), "gCEbY44UmM4Q00:部门档案", item3["code"].ToString()); } //氚云接口(1.需要实体类 2.数据集合 3.IsSubmit) departmentUnit depa = new departmentUnit() { F0000001 = item3["code"].ToString(), F0000002 = item3["name"].ToString(), F0000003 = item3["projectcode"].ToString(), F0000004 = item3["projectname"].ToString() }; Dictionary dic = new Dictionary(); dic.Add("BizObject", JsonConvert.SerializeObject(depa)); dic.Add("SchemaCode", "D11660434d73096fca14c20acffdfa2dfcfb5ac"); dic.Add("IsSubmit", "true"); bool success = false; CY_API_Server.H3YunApi("CreateBizObject", dic, out success); if (success) { j++; codes += "&" + item3["code"].ToString(); } else { //_Controller.Synchronous_Log("氚云同步失败", "错误原因:氚云错误!"); } } } if (j > 0) { //ding_YP_Public.send_to_conversation(null, "text", "部门档案新增" + j + "条数据,数据为:" + codes, false, "1951251420023804"); } Sql_Controller.Synchronous_Log("部门档案同步成功", "0","成功信息:" + ResultJson2["msg"].ToString()); } else { Sql_Controller.Synchronous_Log("部门档案同步失败","1", "错误原因:" + ResultJson2["msg"].ToString()); } } while (mun == "查询到200条数据"); i = 0; #endregion } #region 钉钉-氚云 /// /// 钉钉写入氚云 /// /// public void Basic(JObject json2) { try { string value = json2["userid"].ToString(); ///调用查询方法判断该表中是否存在该条Code的值 string css = CY_API_Server.LoadBizObjects("LoadBizObjects", "D116604ab3e5ca3a3f944b2bb2db76b67780a2a", this.Filter(value, "")); JObject jObject = JsonConvert.DeserializeObject(css); if (jObject["Successful"].ToString().ToLower() == "true" && !string.IsNullOrEmpty(jObject["ReturnData"].ToString())) //表示已经存在 { DataTable dt1 = BizObjectId(jObject); DataTable dt2 = BizObjectId2(json2, value, dt1.Rows[0]["ObjectId"].ToString()); dt2.PrimaryKey = new DataColumn[] { dt2.Columns["userid"] }; //DataRow rows = dt1.Rows.Find(item["code"]); DataRow rows = dt2.Rows.Find(value); string ObjectId = string.Format(rows["ObjectId"].ToString()); BasicData businessUnit = new BasicData() { F0000009 = value, //员工ID F0000001 = dt2.Rows[0]["sys00-name"].ToString().Trim(), //姓名 sys00-name F0000010 = dt2.Rows[0]["sys00-mainDeptId"].ToString().Trim(), //部门ID F0000002 = dt2.Rows[0]["sys00-mainDept"].ToString().Trim(), //部门 F0000003 = dt2.Rows[0]["145d3425-9dea-42a6-88ae-1e4e3590046c"].ToString().Trim(), //所属公司 145d3425-9dea-42a6-88ae-1e4e3590046c F0000006 = dt2.Rows[0]["sys00-position"].ToString().Trim(), //岗位 sys00-position F0000007 = dt2.Rows[0]["sys00-confirmJoinTime"].ToString().Trim(), //入职时间 F0000008 = dt2.Rows[0]["sys01-positionLevel"].ToString().Trim(), //职级 sys01-positionLevel F0000004 = dt2.Rows[0]["sys05-nowContractStartTime"].ToString().Trim(), //原合同开始时间 F0000005 = dt2.Rows[0]["sys05-nowContractEndTime"].ToString().Trim(), //原合同结束时间 F0000012 = dt2.Rows[0]["sys05-contractPeriodType"].ToString().Trim(), //续签期限 sys05-contractPeriodType F0000013 = dt2.Rows[0]["sys05-contractRenewCount"].ToString().Trim() //续签次数 sys05-contractRenewCount }; Dictionary dic = new Dictionary(); dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit)); ////调用修改方法进行修改 CY_API_Server.UpdateBizObject("UpdateBizObject", "D116604ab3e5ca3a3f944b2bb2db76b67780a2a", ObjectId, dic); } else { DataTable dt2 = BizObjectId2(json2, value, ""); //dt2.PrimaryKey = new DataColumn[] { dt2.Columns["Code"]}; //DataRow rows = dt2.Rows.Find(dt2.Columns["field_list"]); //string ObjectId = string.Format(rows["ObjectId"].ToString()); //氚云接口(1.需要实体类 2.数据集合 3.IsSubmit) BasicData businessUnit = new BasicData() { F0000009 = value, //员工ID F0000001 = dt2.Rows[0]["sys00-name"].ToString(), //姓名 sys00-name F0000010 = dt2.Rows[0]["sys00-mainDeptId"].ToString(), //部门ID F0000002 = dt2.Rows[0]["sys00-mainDept"].ToString(), //部门 F0000003 = dt2.Rows[0]["145d3425-9dea-42a6-88ae-1e4e3590046c"].ToString(), //所属公司 145d3425-9dea-42a6-88ae-1e4e3590046c F0000006 = dt2.Rows[0]["sys00-position"].ToString(), //岗位 sys00-position F0000007 = dt2.Rows[0]["sys00-confirmJoinTime"].ToString(), //入职时间 F0000008 = dt2.Rows[0]["sys01-positionLevel"].ToString(), //职级 sys01-positionLevel F0000004 = dt2.Rows[0]["sys05-nowContractStartTime"].ToString(), //原合同开始时间 F0000005 = dt2.Rows[0]["sys05-nowContractEndTime"].ToString(), //原合同结束时间 F0000012 = dt2.Rows[0]["sys05-contractPeriodType"].ToString(), //续签期限 sys05-contractPeriodType F0000013 = dt2.Rows[0]["sys05-contractRenewCount"].ToString() //续签次数 sys05-contractRenewCount }; Dictionary dic = new Dictionary(); dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit)); dic.Add("SchemaCode", "D116604ab3e5ca3a3f944b2bb2db76b67780a2a"); dic.Add("IsSubmit", "true"); bool success = false; ///新增方法 CY_API_Server.H3YunApi("CreateBizObject", dic, out success); if (success) { } else { //_Controller.Synchronous_Log("氚云同步失败", "错误原因:氚云错误!"); } } } catch (Exception ex) { throw ex; } } /// /// 钉钉写入氚云-基础资料-人员基础信息 /// /// public void employee(JObject json3) { try { string value = json3["userid"].ToString(); ///调用查询方法判断该表中是否存在该条Code的值 string css = CY_API_Server.LoadBizObjects("LoadBizObjects", "D116604d621ec6c5f904694941a255b98aca91b", this.Filter(value, "")); JObject jObject = JsonConvert.DeserializeObject(css); if (jObject["Successful"].ToString().ToLower() == "true" && !string.IsNullOrEmpty(jObject["ReturnData"].ToString())) //表示已经存在 { DataTable dt3 = BizObjectId(jObject); DataTable dt4 = BizObjectId2(json3, value, dt3.Rows[0]["ObjectId"].ToString()); dt4.PrimaryKey = new DataColumn[] { dt4.Columns["userid"] }; //DataRow rows = dt3.Rows.Find(item["code"]); DataRow rows = dt4.Rows.Find(value); string ObjectId = string.Format(rows["ObjectId"].ToString()); BasicData businessUnit = new BasicData() { F0000009 = value, //员工ID F0000001 = dt4.Rows[0]["sys00-name"].ToString(), //姓名 sys00-name F0000005 = dt4.Rows[0]["a66a51a7-dcaa-47da-b056-ccebe6fca72d"].ToString(), F0000002 = dt4.Rows[0]["145d3425-9dea-42a6-88ae-1e4e3590046c"].ToString(), F0000003 = dt4.Rows[0]["473f9667-d220-426f-8431-56be1e8a027d"].ToString(), F0000004 = dt4.Rows[0]["395840c1-2cbe-4f36-b3fb-249d7ddf42f2"].ToString() }; Dictionary dic = new Dictionary(); dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit)); ////调用修改方法进行修改 CY_API_Server.UpdateBizObject("UpdateBizObject", "D116604d621ec6c5f904694941a255b98aca91b", ObjectId, dic); } else { DataTable dt4 = BizObjectId2(json3, value, ""); BasicPersonnelInformation businessUnit = new BasicPersonnelInformation() { F0000009 = value, //员工ID F0000001 = dt4.Rows[0]["sys00-name"].ToString(), //姓名 sys00-name F0000005 = dt4.Rows[0]["a66a51a7-dcaa-47da-b056-ccebe6fca72d"].ToString(), F0000002 = dt4.Rows[0]["145d3425-9dea-42a6-88ae-1e4e3590046c"].ToString(), F0000003 = dt4.Rows[0]["473f9667-d220-426f-8431-56be1e8a027d"].ToString(), F0000004 = dt4.Rows[0]["395840c1-2cbe-4f36-b3fb-249d7ddf42f2"].ToString() }; Dictionary dic = new Dictionary(); dic.Add("BizObject", JsonConvert.SerializeObject(businessUnit)); dic.Add("SchemaCode", "D116604d621ec6c5f904694941a255b98aca91b"); dic.Add("IsSubmit", "true"); bool success = false; ///新增方法 CY_API_Server.H3YunApi("CreateBizObject", dic, out success); if (success) { } else { //_Controller.Synchronous_Log("氚云同步失败", "错误原因:氚云错误!"); } } } catch (Exception ex) { throw ex; } } #endregion #region 过滤器 public string Filter(string code) { // return "{\"FromRowNum\": -1,\"RequireCount\": 5000,\"ReturnItems\": [], \"SortByCollection\": [],\"ToRowNum\": 5000, \"Matcher\": { \"Type\": \"And\", \"Matchers\": [{\"Name\":\"F0000001\",\"Operator\":2,\"Value\":\""+code+ "\"}]}}"; Filter filter = new Filter(); //构建过滤器 And andMatcher = new And(); //构造And匹配器 andMatcher.Add(new ItemMatcher("F0000001", ComparisonOperatorType.Equal, code)); //添加查询条件 //andMatcher.Add(new ItemMatcher("ZT", ComparisonOperatorType.Equal, qJ.ZT)); //添加查询条件 filter.Matcher = andMatcher; filter.ToRowNum = 500; return H3.BizBus.BizStructureUtility.FilterToJson(filter); } public string Filter1(string code) { // return "{\"FromRowNum\": -1,\"RequireCount\": 5000,\"ReturnItems\": [], \"SortByCollection\": [],\"ToRowNum\": 5000, \"Matcher\": { \"Type\": \"And\", \"Matchers\": [{\"Name\":\"F0000001\",\"Operator\":2,\"Value\":\""+code+ "\"}]}}"; Filter filter = new Filter(); //构建过滤器 And andMatcher = new And(); //构造And匹配器 andMatcher.Add(new ItemMatcher("F0000002", ComparisonOperatorType.Equal, code)); //添加查询条件 //andMatcher.Add(new ItemMatcher("ZT", ComparisonOperatorType.Equal, qJ.ZT)); //添加查询条件 filter.Matcher = andMatcher; filter.ToRowNum = 500; return H3.BizBus.BizStructureUtility.FilterToJson(filter); } /// /// 过滤器 /// /// /// public string Filter(string code, string organization) { // return "{\"FromRowNum\": -1,\"RequireCount\": 5000,\"ReturnItems\": [], \"SortByCollection\": [],\"ToRowNum\": 5000, \"Matcher\": { \"Type\": \"And\", \"Matchers\": [{\"Name\":\"F0000001\",\"Operator\":2,\"Value\":\""+code+ "\"}]}}"; Filter filter = new Filter(); //构建过滤器 And andMatcher = new And(); //构造And匹配器 andMatcher.Add(new ItemMatcher("F0000009", ComparisonOperatorType.Equal, code)); //添加查询条件 //andMatcher.Add(new ItemMatcher("F0000010", ComparisonOperatorType.Equal, organization)); //添加查询条件 filter.Matcher = andMatcher; filter.ToRowNum = 500; return H3.BizBus.BizStructureUtility.FilterToJson(filter); } public DataTable BizObjectId(JObject ResultJson) { DataTable dt = new DataTable(); dt.Columns.Add("ObjectId", typeof(string)); dt.Columns.Add("Code", typeof(string)); foreach (var item in ResultJson["ReturnData"]["BizObjectArray"]) { DataRow dr = dt.NewRow(); dr["ObjectId"] = item["ObjectId"].ToString(); dr["Code"] = item["F0000001"].ToString(); dt.Rows.Add(dr); } return dt; } public DataTable BizObjectId2(JObject ResultJson) { DataTable dt = new DataTable(); dt.Columns.Add("ObjectId", typeof(string)); dt.Columns.Add("Code", typeof(string)); foreach (var item in ResultJson["ReturnData"]["BizObjectArray"]) { DataRow dr = dt.NewRow(); dr["ObjectId"] = item["ObjectId"].ToString(); dr["Code"] = item["F0000002"].ToString(); dt.Rows.Add(dr); } return dt; } public DataTable BizObjectId1(JObject ResultJson) { DataTable dt = new DataTable(); dt.Columns.Add("ObjectId", typeof(string)); dt.Columns.Add("orgcode", typeof(string)); foreach (var item in ResultJson["ReturnData"]["BizObjectArray"]) { DataRow dr = dt.NewRow(); dr["ObjectId"] = item["ObjectId"].ToString(); dr["orgcode"] = item["F0000001"].ToString(); dt.Rows.Add(dr); } return dt; } public DataTable BizObjectId2(JObject ResultJson, string value, string ObjectId) { DataTable dt = new DataTable(); dt.Columns.Add("ObjectId", typeof(string)); foreach (var items in ResultJson["field_list"]) { if (!dt.Columns.Contains(items["field_code"].ToString())) dt.Columns.Add(items["field_code"].ToString(), typeof(string)); } dt.Columns.Add("userid", typeof(string)); DataRow dr = dt.NewRow(); int i = 0; dr["ObjectId"] = ObjectId; foreach (var item in ResultJson["field_list"]) { long mun = ResultJson["field_list"][i].LongCount(); if (mun < 4) { dr[item["field_code"].ToString()] = null; } else { dr[item["field_code"].ToString()] = item["label"].ToString(); } i++; } dr["userid"] = value; dt.Rows.Add(dr); return dt; } #endregion } }