From 7b3958c9c69fb37e580df1f99d25ad583e1584e2 Mon Sep 17 00:00:00 2001
From: llj <132905093+newwwwwwtree@users.noreply.github.com>
Date: 星期五, 08 五月 2026 11:26:07 +0800
Subject: [PATCH] 南通炎辰金蝶同步
---
WebAPI/Controllers/条码管理/WEBSController.cs | 821 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 795 insertions(+), 26 deletions(-)
diff --git "a/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs" "b/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
index c360f01..d06dceb 100644
--- "a/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
+++ "b/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
@@ -15582,6 +15582,41 @@
#region 璋冪敤閲戣澏webapi鎺ュ彛鍚屾鍩虹璧勬枡鏂规硶
+ #region 灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+ public static JArray ConvertKingdeeResultToObjects(string rawJson, string fieldKeys)
+ {
+ // <param name="rawJson">API 杩斿洖鐨勫師濮� JSON 瀛楃涓诧紙濡� [[...],[...]]锛�</param>
+ // <param name="fieldKeys">鏌ヨ鏃朵紶鍏ョ殑 FieldKeys 瀛楃涓诧紙閫楀彿鍒嗛殧锛�</param>
+
+ // 1. 瑙f瀽鍘熷鏁版嵁涓� JArray锛堜簩缁存暟缁勶級
+ JArray rawData = JArray.Parse(rawJson);
+
+ // 2. 鎷嗗垎瀛楁鍚嶆暟缁�
+ string[] fieldNames = fieldKeys.Split(',')
+ .Select(f => f.Trim())
+ .ToArray();
+
+ // 3. 鍒涘缓缁撴灉鏁扮粍
+ JArray result = new JArray();
+
+ // 4. 閬嶅巻姣忎竴琛屾暟鎹�
+ foreach (JArray row in rawData)
+ {
+ JObject obj = new JObject();
+
+ // 5. 鎸夌储寮曚綅缃槧灏勫瓧娈靛悕鍜屽��
+ for (int i = 0; i < fieldNames.Length && i < row.Count; i++)
+ {
+ obj[fieldNames[i]] = row[i];
+ }
+
+ result.Add(obj);
+ }
+
+ return result;
+ }
+ #endregion
+
#region 鐗╂枡鍩虹璧勬枡鍚屾
[Route("WEBSController/MaterialDataToLocalByKDWebApi")]
[HttpGet]
@@ -15689,41 +15724,775 @@
#endregion
- #region 灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
- public static JArray ConvertKingdeeResultToObjects(string rawJson, string fieldKeys)
+ #region 閮ㄩ棬鍩虹璧勬枡鍚屾
+ [Route("WEBSController/DepartmentDataToLocalByKDWebApi")]
+ [HttpGet]
+ public object DepartmentDataToLocalByKDWebApi(string HDate, int limit)
{
- // <param name="rawJson">API 杩斿洖鐨勫師濮� JSON 瀛楃涓诧紙濡� [[...],[...]]锛�</param>
- // <param name="fieldKeys">鏌ヨ鏃朵紶鍏ョ殑 FieldKeys 瀛楃涓诧紙閫楀彿鍒嗛殧锛�</param>
-
- // 1. 瑙f瀽鍘熷鏁版嵁涓� JArray锛堜簩缁存暟缁勶級
- JArray rawData = JArray.Parse(rawJson);
-
- // 2. 鎷嗗垎瀛楁鍚嶆暟缁�
- string[] fieldNames = fieldKeys.Split(',')
- .Select(f => f.Trim())
- .ToArray();
-
- // 3. 鍒涘缓缁撴灉鏁扮粍
- JArray result = new JArray();
-
- // 4. 閬嶅巻姣忎竴琛屾暟鎹�
- foreach (JArray row in rawData)
+ bool hasMore = true;//鏄惁寰幆鏌ヨ
+ try
{
- JObject obj = new JObject();
+ //璁块棶閲戣澏
+ string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+ string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+ string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+ ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+ bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+ string HReturn;
+ int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�
+ List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
- // 5. 鎸夌储寮曚綅缃槧灏勫瓧娈靛悕鍜屽��
- for (int i = 0; i < fieldNames.Length && i < row.Count; i++)
+ if (!bLogin)
{
- obj[fieldNames[i]] = row[i];
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+ string fieldKeys = "FDEPTID,FNumber,FName,FFORBIDSTATUS,FCREATEORGID,FUSEORGID";
+
+ oCn.BeginTran();//寮�濮嬩簨鍔�
+
+ while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+ {
+ //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+ string sJson = $"{{\"FormId\":\"BD_Department\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAuditDate >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+ //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+ var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+ new object[] { sJson });
+
+ //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+ JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+ if (formattedData.Count < limit)
+ {
+ hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+ }
+ else
+ {
+ startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+ }
+
+ foreach (JObject item in formattedData)
+ {
+ //鍒犻櫎鍘熸湁璁板綍
+ oCn.RunProc($"delete from Gy_Department where HItemID = {item["FDEPTID"]?.ToString()}");
+
+ oCn.RunProc("set identity_insert Gy_Department on");
+
+ //閲嶆柊鍐欏叆琛�
+ oCn.RunProc("Insert Into Gy_Department " +
+ "(HItemID,HNumber,HShortNumber,HName,HParentID" +
+ ",HLevel,HEndFlag,HRemark,HStopFlag,HUseFlag" +
+ ",HCREATEORGID,HUSEORGID,HERPItemID" +
+ ") " +
+ " values('" + item["FDEPTID"] + "','" + item["FNumber"] + "','" + item["FNumber"] + "','" + item["FName"] + "',0" +
+ ",'',0,'" + "CLD-ERP瀵煎叆" + "',0,''" +
+ "," + item["FCREATEORGID"] + "," + item["FCREATEORGID"] + "," + item["FDEPTID"] +
+ ") ");
+
+ oCn.RunProc("set identity_insert Gy_Department off");
+ }
}
- result.Add(obj);
+ oCn.Commit(); //鎻愪氦浜嬪姟
+
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "閮ㄩ棬淇℃伅鍚屾鎴愬姛";
+ objJsonResult.data = "";
+ return objJsonResult;
}
-
- return result;
+ catch (Exception e)
+ {
+ hasMore = false;
+ oCn.RollBack();//鍥炴粴浜嬪姟
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁鏌ヨ閮ㄩ棬淇℃伅鍙戠敓寮傚父锛�" + e.ToString();
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
}
- #endregion
#endregion
+
+ #region 浠撳簱鍩虹璧勬枡鍚屾
+ [Route("WEBSController/StockDataToLocalByKDWebApi")]
+ [HttpGet]
+ public object StockDataToLocalByKDWebApi(string HDate, int limit)
+ {
+ bool hasMore = true;//鏄惁寰幆鏌ヨ
+ try
+ {
+ //璁块棶閲戣澏
+ string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+ string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+ string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+ ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+ bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+ string HReturn;
+ int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�
+ List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
+
+ if (!bLogin)
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+ string fieldKeys = "FSTOCKID,FNumber,FName,FUSEORGID,FCREATEORGID,FFORBIDSTATUS,FIsOpenLocation,FAllowMinusQty,FSTOCKPROPERTY";
+
+ oCn.BeginTran();//寮�濮嬩簨鍔�
+
+ while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+ {
+ //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+ string sJson = $"{{\"FormId\":\"BD_STOCK\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAuditDate >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+ //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+ var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+ new object[] { sJson });
+
+ //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+ JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+ if (formattedData.Count < limit)
+ {
+ hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+ }
+ else
+ {
+ startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+ }
+
+ foreach (JObject item in formattedData)
+ {
+ //鍒犻櫎鍘熸湁璁板綍
+ oCn.RunProc($"delete from Gy_Warehouse where HItemID = {item["FSTOCKID"]?.ToString()}");
+
+ oCn.RunProc("set identity_insert Gy_Warehouse on");
+
+ //閲嶆柊鍐欏叆琛�
+ oCn.RunProc("Insert into Gy_Warehouse " +
+ " (HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID" +
+ ",HLevel,HEndFlag,HStopflag,HRemark,HEmpID,HAddress,HPhone,HUSEORGID,HCREATEORGID,HSPFlag,HSPGroupID,HUnderStock,HSTOCKPROPERTY,HERPItemID) " +
+ " Values('" + item["FSTOCKID"] + "','" + item["FNumber"] + "','" + item["FName"] + "','" +0 + "','" + item["FNumber"] + "'," + 1 +
+ "," + 1 + "," + "'true'" + "," + Convert.ToString(item["FFORBIDSTATUS"].ToString()=="A" ? 0 : 1) + ",'" + "CLD-ERP瀵煎叆" + "'," + 0 + ",'" + item["FAddress"] + "','" + item["FTel"] + "','" + item["FUSEORGID"] + "','" + item["FUSEORGID"] + "','" + item["FIsOpenLocation"] + "','" + item["FSTOCKID"] + "','" + item["FAllowMinusQty"] + "','" + item["FSTOCKPROPERTY"] + "'," + item["FSTOCKID"] + ")", ref DBUtility.ClsPub.sExeReturnInfo);
+
+ oCn.RunProc("set identity_insert Gy_Warehouse off");
+ }
+ }
+
+ oCn.Commit(); //鎻愪氦浜嬪姟
+
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "浠撳簱淇℃伅鍚屾鎴愬姛";
+ objJsonResult.data = "";
+ return objJsonResult;
+ }
+ catch (Exception e)
+ {
+ hasMore = false;
+ oCn.RollBack();//鍥炴粴浜嬪姟
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁鏌ヨ浠撳簱淇℃伅鍙戠敓寮傚父锛�" + e.ToString();
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ }
+
+ #endregion
+
+
+ #region 渚涘簲鍟嗗熀纭�璧勬枡鍚屾
+ [Route("WEBSController/SupplierDataToLocalByKDWebApi")]
+ [HttpGet]
+ public object SupplierDataToLocalByKDWebApi(string HDate, int limit)
+ {
+ bool hasMore = true;//鏄惁寰幆鏌ヨ
+ try
+ {
+ //璁块棶閲戣澏
+ string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+ string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+ string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+ ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+ bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+ string HReturn;
+ int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�
+ List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
+
+ if (!bLogin)
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+ string fieldKeys = "FSUPPLIERID,FNumber,FName,FUSEORGID,FCREATEORGID,FFORBIDSTATUS,FAddress,FContact,FMobile,FLocNewContact ,FFax,FEMail ,FBankCode ,FBankHolder,FTaxType,FTaxRateId ,FCountry ,FPayCurrencyId";
+
+ oCn.BeginTran();//寮�濮嬩簨鍔�
+
+ while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+ {
+ //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+ string sJson = $"{{\"FormId\":\"BD_Supplier\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAuditDate >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+ //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+ var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+ new object[] { sJson });
+
+ //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+ JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+ if (formattedData.Count < limit)
+ {
+ hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+ }
+ else
+ {
+ startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+ }
+
+ foreach (JObject item in formattedData)
+ {
+ //鍒犻櫎鍘熸湁璁板綍
+ oCn.RunProc($"delete from Gy_Supplier where HItemID = {item["FSUPPLIERID"]?.ToString()}");
+
+ oCn.RunProc("set identity_insert Gy_Supplier on");
+
+ oCn.RunProc("Insert Into Gy_Supplier " +
+ "(HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID" +
+ ",HLevel,HEndFlag,HStopflag,HRemark" +
+ ",HShortName,HAddress,HLinkMan,HLinkPhone,HMobilePhone" +
+ ",HFax,HPostalCode,HEmail,HBank,HBankAccount" +
+ ",HTaxNum,HTaxRate,HCountry,HCorMan,HEnglishName" +
+ ",HEnglishAddress,HCurID,HSSID,HAreaID,HMaterClass,HERPItemID,HUseOrgID,HCreateOrgID) " +
+ " values('" + item["FSUPPLIERID"] + "','" + item["FNumber"] + "','" + item["FName"] + "','" + 1 + "','" + item["FNumber"] + "','" + 1 + "'" +
+ "," + 1+ ",0,'" + (item["FFORBIDSTATUS"].ToString() == "A" ? 0 : 1) + "','" + "CLD-ERP瀵煎叆" + "'" +
+ ",'" + item["FName"] + "','" + item["FAddress"] + "','" + item["FLocNewContact"] + "','" + item["FMobile"] + "','" + item["FMobile"] + "'" +
+ ",'" + item["FFax"] + "','" + 0 + "','" + item["FEMail "] + "','" + item["FBankHolder"] + "','" + item["FBankCode"] + "'" +
+ ",'" + item["FTaxType"] + "','" + item["FTaxRateId "] + "','" + item["FCountry "] + "','" + "" + "','" + "" + "'" +
+ ",'" + item["FAddress"] + "'," + item["FPayCurrencyId"] + "," + 0 + "," + 0 + ",'" + 0 +
+ "'," + item["FSUPPLIERID"] + ",'" + item["FCREATEORGID"] + "','" + item["FCREATEORGID"] +
+ "') ");
+ oCn.RunProc("set identity_insert Gy_Supplier off");
+ }
+ }
+
+ oCn.Commit(); //鎻愪氦浜嬪姟
+
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "渚涘簲鍟嗕俊鎭悓姝ユ垚鍔�";
+ objJsonResult.data = "";
+ return objJsonResult;
+ }
+ catch (Exception e)
+ {
+ hasMore = false;
+ oCn.RollBack();//鍥炴粴浜嬪姟
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁鏌ヨ渚涘簲鍟嗕俊鎭彂鐢熷紓甯革紒" + e.ToString();
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ }
+
+ #endregion
+
+ #region 鍗曚綅鎹㈢畻鍩虹璧勬枡鍚屾
+ [Route("WEBSController/UnitConvertRateDataToLocalByKDWebApi")]
+ [HttpGet]
+ public object UnitConvertRateDataToLocalByKDWebApi(string HDate, int limit)
+ {
+ bool hasMore = true;//鏄惁寰幆鏌ヨ
+ try
+ {
+ //璁块棶閲戣澏
+ string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+ string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+ string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+ ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+ bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+ string HReturn;
+ int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�
+ List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
+
+ if (!bLogin)
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+ string fieldKeys = "FUNITCONVERTRATEID,FUSEORGID,FCREATEORGID,FFORBIDSTATUS,FBILLNO,FMATERIALID,FCURRENTUNITID,FDESTUNITID,FCONVERTTYPE,FCONVERTNUMERATOR,FCONVERTDENOMINATOR,FCREATORID,FCREATEDATE,FAPPROVERID,FAPPROVEDATE,FMODIFIERID,FMODIFYDATE,FFORBIDDERID,FFORBIDDATE";
+
+ oCn.BeginTran();//寮�濮嬩簨鍔�
+
+ while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+ {
+ //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+ string sJson = $"{{\"FormId\":\"BD_MATERIALUNITCONVERT\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FApproveDate >= '{HDate}'\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+ //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+ var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+ new object[] { sJson });
+
+ //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+ JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+ if (formattedData.Count < limit)
+ {
+ hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+ }
+ else
+ {
+ startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+ }
+
+ foreach (JObject item in formattedData)
+ {
+ //鍒犻櫎鍘熸湁璁板綍
+ oCn.RunProc($"delete from Gy_UnitConvertRate where HItemID = {item["FUNITCONVERTRATEID"]?.ToString()}");
+
+ oCn.RunProc("set identity_insert Gy_UnitConvertRate on");
+
+ string sql = "Insert into Gy_UnitConvertRate " +
+ "(HItemID,HNumber,HName,HShortNumber,HParentID,HLevel," +
+ "HEndFlag,HStopflag,HRemark,HUseFlag,HUSEORGID,HCREATEORGID," +
+ "HBILLNO,HMATERID,HCURRENTUNITID,HDESTUNITID,HCONVERTTYPE,HCONVERTNUMERATOR," +
+ "HCONVERTDENOMINATOR,HFORBIDSTATUS,HUnitID,HMaterNumber," +
+ "HMakeEmp,HMakeTime,HCheckEmp,HCheckTime,HModifyEmp,HModifyTime,HStopEmp,HStopTime) " +
+ "values('" + item["FUNITCONVERTRATEID"] + "','" + "','" + "','" + "'," + 1 + "," + 1 + ",'" +
+ "true" + "','" + (item["FFORBIDSTATUS"].ToString()=="A"?0:1) + "','CLD-ERP瀵煎叆','宸蹭娇鐢�','" + item["FUSEORGID"] + "','" + item["FUSEORGID"] + "'" +
+ ",'" + item["FBILLNO"] + "','" + item["FMATERIALID"] + "','" + item["FCURRENTUNITID"] + "','" + item["FDESTUNITID"] + "','" + item["FCONVERTTYPE"] + "','" + item["FCONVERTNUMERATOR"] + "'" +
+ ",'" + item["FCONVERTDENOMINATOR"] + "','" + item["FFORBIDSTATUS"] + "','" + 0 + "','" + "'" +
+ ",'" + item["FCREATORID"] + "','" + item["FCREATEDATE"] + "','" + item["FAPPROVERID"] + "','" + item["FAPPROVEDATE"] + "','" +
+ item["FMODIFIERID"] + "','" + item["FMODIFYDATE"] + "','" + item["FFORBIDDERID"] + "','" + item["FFORBIDDATE"] + "')";
+ oCn.RunProc(sql);
+ oCn.RunProc("set identity_insert Gy_UnitConvertRate off");
+ }
+ }
+
+ oCn.Commit(); //鎻愪氦浜嬪姟
+
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "鍗曚綅鎹㈢畻淇℃伅鍚屾鎴愬姛";
+ objJsonResult.data = "";
+ return objJsonResult;
+ }
+ catch (Exception e)
+ {
+ hasMore = false;
+ oCn.RollBack();//鍥炴粴浜嬪姟
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁鏌ヨ鍗曚綅鎹㈢畻淇℃伅鍙戠敓寮傚父锛�" + e.ToString();
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ }
+
+ #endregion
+
+ #region 鍛樺伐鍩虹璧勬枡鍚屾
+ [Route("WEBSController/StaffDataToLocalByKDWebApi")]
+ [HttpGet]
+ public object StaffDataToLocalByKDWebApi(string HDate, int limit)
+ {
+ bool hasMore = true;//鏄惁寰幆鏌ヨ
+ try
+ {
+ //璁块棶閲戣澏
+ string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+ string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+ string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+ ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+ bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+ string HReturn;
+ int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�
+ List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
+
+ if (!bLogin)
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+ string fieldKeys = "FPERSONID,FNumber,FName,FUSEORGID,FCREATEORGID,FPOSTID,FFIRSTCARDID,FSTAFFNUMBER";
+
+ oCn.BeginTran();//寮�濮嬩簨鍔�
+
+ while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+ {
+ //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+ string sJson = $"{{\"FormId\":\"BD_Empinfo\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAuditDate >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+ //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+ var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+ new object[] { sJson });
+
+ //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+ JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+ if (formattedData.Count < limit)
+ {
+ hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+ }
+ else
+ {
+ startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+ }
+
+ foreach (JObject item in formattedData)
+ {
+ //鍒犻櫎鍘熸湁璁板綍
+ oCn.RunProc($"delete from Gy_Staff where HItemID = {item["FPERSONID"]?.ToString()}");
+
+ oCn.RunProc("set identity_insert Gy_Staff on");
+
+ oCn.RunProc($@"insert into Gy_Staff(HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID
+ ,HLevel,HEndFlag,HStopflag,HRemark,HUseFlag,HUSEORGID
+ ,HCREATEORGID,HPERSONID,HPOSTID,HFIRSTCARDID,HDEPTID,HSTAFFNUMBER)
+ values({item["FPERSONID"]},'{item["FNUMBER"]}','{item["FNAME"]}','{""}','{item["FNUMBER"]}',
+ {1},{1},{"'true'"},{ 0 },
+ '{"CLD-ERP"}','{""}',{item["FUSEORGID"]},{item["FCREATEORGID"]},{item["FPERSONID"]},
+ {item["FPOSTID"]},{item["FFIRSTCARDID"]},{0},'{item["FSTAFFNUMBER"]}')", ref DBUtility.ClsPub.sExeReturnInfo);
+
+ oCn.RunProc("set identity_insert Gy_Staff off");
+ }
+ }
+
+ oCn.Commit(); //鎻愪氦浜嬪姟
+
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "鍛樺伐淇℃伅鍚屾鎴愬姛";
+ objJsonResult.data = "";
+ return objJsonResult;
+ }
+ catch (Exception e)
+ {
+ hasMore = false;
+ oCn.RollBack();//鍥炴粴浜嬪姟
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁鏌ヨ鍛樺伐淇℃伅鍙戠敓寮傚父锛�" + e.ToString();
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ }
+
+ #endregion
+
+
+ #region 瀹㈡埛鍩虹璧勬枡鍚屾
+ [Route("WEBSController/CustomerDataToLocalByKDWebApi")]
+ [HttpGet]
+ public object CustomerDataToLocalByKDWebApi(string HDate, int limit)
+ {
+ bool hasMore = true;//鏄惁寰幆鏌ヨ
+ try
+ {
+ //璁块棶閲戣澏
+ string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+ string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+ string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+ ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+ bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+ string HReturn;
+ int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�
+ List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
+
+ if (!bLogin)
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+ string fieldKeys = "FCUSTID,FNUMBER,FName,FUSEORGID,FCREATEORGID,FFORBIDSTATUS,FLOCATIONSTATUS,FADDRESS,FTContact,FMOBILE ,FTAXRATE1,FZIP,FTEL,FEMail ,FINVOICEBANKNAME,FINVOICEBANKACCOUNT,FTaxRate ,FTAXREGISTERCODE ,FCOUNTRY ,FTRADINGCURRID ,FSETTLETYPEID ,FSELLER ,FCustTypeId ";
+
+ oCn.BeginTran();//寮�濮嬩簨鍔�
+
+ while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+ {
+ //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+ string sJson = $"{{\"FormId\":\"BD_Customer\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAPPROVEDATE >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+ //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+ var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+ new object[] { sJson });
+
+ //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+ JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+ if (formattedData.Count < limit)
+ {
+ hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+ }
+ else
+ {
+ startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+ }
+
+ foreach (JObject item in formattedData)
+ {
+ //鍒犻櫎鍘熸湁璁板綍
+ oCn.RunProc($"delete from Gy_Customer where HItemID = {item["FCUSTID"]?.ToString()}");
+
+ oCn.RunProc("set identity_insert Gy_Customer on");
+
+ oCn.RunProc("Insert into Gy_Customer " +
+ " (HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID" +
+ ",HLevel,HEndFlag,HStopflag,HRemark" +
+ ",HShortName,HAddress,HLinkMan,HLinkPhone,HMobilePhone" +
+ ",HFax,HPostalCode,HEmail,HBank,HBankAccount" +
+ ",HTaxNum,HTaxRate,HCountry,HCorMan,HEnglishName" +
+ ",HEnglishAddress,HCurID,HSSID,HAreaID,HCusStatus" +
+ ",HEmpID,HCreditDate,HCreditRatingDate,HMaxCreditRatingDate" +
+ ",HMonthUseQty,HForecastCreditRating,HCreditLevelID,HCountAccrualRating" +
+ ",HSubsidyAccrualRating,HCreditRating,HMaxCreditRating" +
+ ",HCusTypeID,HERPItemID,HUseOrgID,HCreateOrgID) " +
+ " Values('" + item["FCUSTID"] + "','" + item["FNUMBER"] + "','" + item["FName"] + "','" + 1 + "','" + item["FNUMBER"] + "'," + 1 +
+ ", " + 1 + ",0,'" + (item["FFORBIDSTATUS"].ToString()=="A"?0:1) + "','" + "ERP瀵煎叆" + "'" +
+ ",'" + item["FName"] + "','" + item["FADDRESS"] + "','" + item["FTContact"] + "','" + item["FMOBILE"] + "','" + item["FTEL"] + "'" +
+ ",'" + item["FTAXRATE1"] + "','" + item["FZIP"] + "','" + item["FEMail"] + "','" + item["FINVOICEBANKNAME"] + "','" + item["FINVOICEBANKACCOUNT"] + "'" +
+ ",'" + item["FTAXREGISTERCODE"] + "'," + item["FTaxRate"] + ",'" + item["FCOUNTRY"] + "','','','','" + item["FTRADINGCURRID"] + "','" + item["FSETTLETYPEID"] + "'," + 0 + ",'" + "鍚堟牸" + "'" +
+ ",'" + 0+ "'," + 0 + "," + 0 + "," + 0 +
+ "," + 0 + "," + 0 + "," + 0+ "," + 0 +
+ "," + 0 + "," + 0 + "," + 0 +
+ ", '" + 0 + "','" + item["FCUSTID"] + "','" + item["FUSEORGID"] + "','" + item["FCREATEORGID"] + "')");
+ string sql = "set identity_insert gy_Customer off";
+ oCn.RunProc(sql);
+ }
+ }
+
+ oCn.Commit(); //鎻愪氦浜嬪姟
+
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "瀹㈡埛淇℃伅鍚屾鎴愬姛";
+ objJsonResult.data = "";
+ return objJsonResult;
+ }
+ catch (Exception e)
+ {
+ hasMore = false;
+ oCn.RollBack();//鍥炴粴浜嬪姟
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁鏌ヨ瀹㈡埛淇℃伅鍙戠敓寮傚父锛�" + e.ToString();
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ }
+
+ #endregion
+
+
+ #region 缁勭粐鍩虹璧勬枡鍚屾
+ [Route("WEBSController/ORGANIZATIONSDataToLocalByKDWebApi")]
+ [HttpGet]
+ public object ORGANIZATIONSDataToLocalByKDWebApi(string HDate, int limit)
+ {
+ bool hasMore = true;//鏄惁寰幆鏌ヨ
+ try
+ {
+ //璁块棶閲戣澏
+ string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+ string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+ string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+ ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+ bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+ string HReturn;
+ int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�
+ List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
+
+ if (!bLogin)
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+ string fieldKeys = "FORGID,FNUMBER,FName,FParentid,FFORBIDSTATUS";
+
+ oCn.BeginTran();//寮�濮嬩簨鍔�
+
+ while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+ {
+ //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+ string sJson = $"{{\"FormId\":\"ORG_Organizations\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAUDITDATE >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+ //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+ var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+ new object[] { sJson });
+
+ //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+ JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+ if (formattedData.Count < limit)
+ {
+ hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+ }
+ else
+ {
+ startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+ }
+
+ foreach (JObject item in formattedData)
+ {
+ //鍒犻櫎鍘熸湁璁板綍
+ oCn.RunProc($"delete from Xt_ORGANIZATIONS where HItemID = {item["FORGID"]?.ToString()}");
+
+ // oCn.RunProc("set identity_insert Xt_ORGANIZATIONS on");
+
+ string sql = "Insert into Xt_ORGANIZATIONS (HItemID,HNumber,HName,HParentID,HStopflag,HMakeTime,HRemark)" +
+ " values('" + item["FORGID"] + "','" + item["FNUMBER"] + "','" + item["FNAME"] + "','" + item["FParentid"] + "','" + (item["FFORBIDSTATUS"].ToString()=="A"?0:1) + "'," +
+ "getdate(),'" + "CLD瀵煎叆" +
+ "') ";
+ oCn.RunProc(sql);
+ //oCn.RunProc("set identity_insert Xt_ORGANIZATIONS off");
+ }
+ }
+
+ oCn.Commit(); //鎻愪氦浜嬪姟
+
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "缁勭粐淇℃伅鍚屾鎴愬姛";
+ objJsonResult.data = "";
+ return objJsonResult;
+ }
+ catch (Exception e)
+ {
+ hasMore = false;
+ oCn.RollBack();//鍥炴粴浜嬪姟
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁鏌ヨ缁勭粐淇℃伅鍙戠敓寮傚父锛�" + e.ToString();
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ }
+
+ #endregion
+
+
+ #region 杈呭姪灞炴�у熀纭�璧勬枡鍚屾
+ [Route("WEBSController/PropertyDataToLocalByKDWebApi")]
+ [HttpGet]
+ public object PropertyDataToLocalByKDWebApi(string HDate, int limit)
+ {
+ bool hasMore = true;//鏄惁寰幆鏌ヨ
+ try
+ {
+ //璁块棶閲戣澏
+ string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+ string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+ string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+ ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+ bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+ string HReturn;
+ int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�
+ List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
+
+ if (!bLogin)
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+ string fieldKeys = "FAuxPtyValueID,FAuxPtyNumber,FAuxPtyName,FBillNo,FFORBIDSTATUS";
+
+ oCn.BeginTran();//寮�濮嬩簨鍔�
+
+ while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+ {
+ //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+ string sJson = $"{{\"FormId\":\"BD_AuxPtyValue\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+ //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+ var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+ new object[] { sJson });
+
+ //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+ JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+ if (formattedData.Count < limit)
+ {
+ hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+ }
+ else
+ {
+ startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+ }
+
+ foreach (JObject item in formattedData)
+ {
+ //鍒犻櫎鍘熸湁璁板綍
+ oCn.RunProc($"delete from Gy_Property where HItemID = {item["FAuxPtyValueID"]?.ToString()}");
+
+ oCn.RunProc("set identity_insert Gy_Property on");
+
+ oCn.RunProc($@"insert into Gy_Property(HItemID,HNumber,HShortNumber,HName,HHelpCode,HParentID
+ ,HLevel,HEndFlag,HStopflag,HRemark,HPropertyTypeID,HUseFlag,HERPItemID,HMakeTime)
+ values({item["FAuxPtyValueID"]},'{item["FAuxPtyNumber"]}','{item["FAuxPtyNumber"]}','{item["FAuxPtyName"]}','{1}',{1},{1}
+ ,{ 1},{Convert.ToString(item["FFORBIDSTATUS"].ToString()=="A" ? 0 : 1) },'{"ERP瀵煎叆"}',{1},'{1}',{item["FAuxPtyValueID"]},{"getdate()"})", ref DBUtility.ClsPub.sExeReturnInfo);
+
+ oCn.RunProc("set identity_insert Gy_Property off");
+ }
+ }
+
+ oCn.Commit(); //鎻愪氦浜嬪姟
+
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "杈呭姪灞炴�т俊鎭悓姝ユ垚鍔�";
+ objJsonResult.data = "";
+ return objJsonResult;
+ }
+ catch (Exception e)
+ {
+ hasMore = false;
+ oCn.RollBack();//鍥炴粴浜嬪姟
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁鏌ヨ杈呭姪灞炴�т俊鎭彂鐢熷紓甯革紒" + e.ToString();
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ }
+
+ #endregion
+ #endregion
+
}
}
--
Gitblit v1.9.1