From b6a40a2d8fdcffb3accfc7e424c0726a87a59ddf Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期五, 05 十二月 2025 21:20:59 +0800
Subject: [PATCH] 提交

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_BasicService/ErpApiService.cs |  384 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 211 insertions(+), 173 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/ErpApiService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/ErpApiService.cs"
index 11c7c4e..b1efea1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/ErpApiService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/ErpApiService.cs"
@@ -1,4 +1,5 @@
-锘縰sing NetTaste;
+锘縰sing Microsoft.Extensions.Logging;
+using NetTaste;
 using Newtonsoft.Json;
 using Org.BouncyCastle.Ocsp;
 using SqlSugar.Extensions;
@@ -21,13 +22,15 @@
         private readonly ISupplierInfoService _supplierInfoService;
         private readonly IMaterialUnitService _materialUnitService;
         private readonly IMaterielInfoService _materielInfoService;
+        private readonly ILogger<ErpApiService> _logger;
 
-        public ErpApiService(IHttpClientFactory httpClientFactory, ISupplierInfoService supplierInfoService, IMaterialUnitService materialUnitService, IMaterielInfoService materielInfoService)
+        public ErpApiService(IHttpClientFactory httpClientFactory, ISupplierInfoService supplierInfoService, IMaterialUnitService materialUnitService, IMaterielInfoService materielInfoService, ILogger<ErpApiService> logger)
         {
             _httpClientFactory = httpClientFactory;
             _supplierInfoService = supplierInfoService;
             _materialUnitService = materialUnitService;
             _materielInfoService = materielInfoService;
+            _logger = logger;
         }
 
         /// <summary>
@@ -36,10 +39,22 @@
         /// <returns></returns>
         public async Task<string> GetTokenAsync()
         {
-            var request = new TokenRequest { appId = "BG_SYSTEM", secretKey = "7e9239c1e132462a9cf03bfa342a044aMTcxODE5MzgxODI4Mw" };
-            var response = await PostAsync<TokenRequest, TokenResponse>("auth/getAccessToken", request, includeToken: false);
-            var _token = response?.data?.access_token;
-            return _token ?? "";
+            try
+            {
+                //erp 娴嬭瘯鐜
+                //var request = new TokenRequest { appId = "BG_SYSTEM", secretKey = "7e9239c1e132462a9cf03bfa342a044aMTcxODE5MzgxODI4Mw" };
+                ////erp 姝e紡鐜
+                var request = new TokenRequest { appId = "BG_SYSTEM", secretKey = "9a3d0b5a37Bfc6dAM4b34ODb8ebDOSb937106d1b19DS29098" };
+                var response = await PostAsync<TokenRequest, TokenResponse>("auth/getAccessToken", request, includeToken: false);
+                var _token = response?.data?.access_token;
+                return _token ?? "";
+
+            }
+            catch (Exception ex)
+            {
+                _logger.LogInformation("ErpApiService GetTokenAsync澶辫触:  " + ex.Message);
+                return "";
+            }
 
         }
 
@@ -50,49 +65,57 @@
         /// <returns></returns>
         public async Task GetSuppliersAsync(string vendorCode = null)
         {
-            var req = new SupplierRequest { vendorCode = vendorCode };
-            var result = await PostAsync<SupplierRequest, SupplierResponse>("erp/getVendorInfo", req, includeToken: true);
-            if (result != null && result.data != null && result.data.Any())
+            try
             {
-                var dblists = _supplierInfoService.Repository.QueryData();
-                var excepts = dblists.Select(O => O.SupplierCode).Except(result.data.Select(o => o.vendorCode));
-                foreach (var except in excepts)
+                var req = new SupplierRequest { vendorCode = vendorCode };
+                var result = await PostAsync<SupplierRequest, SupplierResponse>("erp/getVendorInfo", req, includeToken: true);
+                if (result != null && result.data != null && result.data.Any())
                 {
-                    var first = dblists.FirstOrDefault(o => o.SupplierCode == except);
-                    if (first != null)
+                    var dblists = _supplierInfoService.Repository.QueryData();
+                    var excepts = dblists.Select(O => O.SupplierCode).Except(result.data.Select(o => o.vendorCode));
+                    foreach (var except in excepts)
                     {
-                        _supplierInfoService.Repository.DeleteData(first);
-                    }
-                }
-                foreach (var item in result.data)
-                {
-                    var first = dblists.FirstOrDefault(o => o.SupplierCode == item.vendorCode);
-                    if (first != null)
-                    {
-                        first.SupplierCode = item.vendorCode;
-                        first.SupplierName = item.vendorName;
-                        first.SupplierShortName = item.vendorShortName;
-                        first.Status = item.effective.ObjToInt();
-                        first.CreateDate = item.createDate.ObjToDate();
-                        first.ModifyDate = item.modifyDate.ObjToDate();
-                        _supplierInfoService.Repository.UpdateData(first);
-                    }
-                    else
-                    {
-                        Dt_SupplierInfo dt_SupplierInfo = new()
+                        var first = dblists.FirstOrDefault(o => o.SupplierCode == except);
+                        if (first != null)
                         {
-                            SupplierCode = item.vendorCode,
-                            SupplierName = item.vendorName,
-                            SupplierShortName = item.vendorShortName,
-                            Status = item.effective.ObjToInt(),
-                            CreateDate = item.createDate.ObjToDate(),
-                            Creater = "ERP",
-                            Modifier = "ERP",
-                            ModifyDate = item.modifyDate.ObjToDate()
-                        };
-                        _supplierInfoService.Repository.AddData(dt_SupplierInfo);
+                            _supplierInfoService.Repository.DeleteData(first);
+                        }
+                    }
+                    foreach (var item in result.data)
+                    {
+                        var first = dblists.FirstOrDefault(o => o.SupplierCode == item.vendorCode);
+                        if (first != null)
+                        {
+                            first.SupplierCode = item.vendorCode;
+                            first.SupplierName = item.vendorName;
+                            first.SupplierShortName = item.vendorShortName;
+                            first.Status = item.effective.ObjToInt();
+                            first.CreateDate = item.createDate.ObjToDate();
+                            first.ModifyDate = item.modifyDate.ObjToDate();
+                            _supplierInfoService.Repository.UpdateData(first);
+                        }
+                        else
+                        {
+                            Dt_SupplierInfo dt_SupplierInfo = new()
+                            {
+                                SupplierCode = item.vendorCode,
+                                SupplierName = item.vendorName,
+                                SupplierShortName = item.vendorShortName,
+                                Status = item.effective.ObjToInt(),
+                                CreateDate = item.createDate.ObjToDate(),
+                                Creater = "ERP",
+                                Modifier = "ERP",
+                                ModifyDate = item.modifyDate.ObjToDate()
+                            };
+                            _supplierInfoService.Repository.AddData(dt_SupplierInfo);
+                        }
                     }
                 }
+            }
+            catch (Exception ex)
+            {
+                _logger.LogInformation("ErpApiService GetSuppliersAsync澶辫触:  " + ex.Message);
+
             }
 
         }
@@ -104,160 +127,175 @@
         /// <returns></returns>
         public async Task GetMaterialUnitAsync(string itemNo = null)
         {
-            var req = new MaterialUnitRequest { itemNo = itemNo };
-            var result = await PostAsync<MaterialUnitRequest, MaterialUnitResponse>("erp/getMaterialUnit", req, true);
-            if (result != null && result.data != null && result.data.Any())
+            try
             {
-                var dblists = _materialUnitService.Repository.QueryData();
-                var excepts = dblists.Select(O => O.ItemNo).Except(result.data.Select(o => o.itemNo));
-                foreach (var except in excepts)
+                var req = new MaterialUnitRequest { itemNo = itemNo };
+                var result = await PostAsync<MaterialUnitRequest, MaterialUnitResponse>("erp/getMaterialUnit", req, true);
+                if (result != null && result.data != null && result.data.Any())
                 {
-                    var first = dblists.FirstOrDefault(o => o.ItemNo == except);
-                    if (first != null)
+                    var dblists = _materialUnitService.Repository.QueryData();
+                    var excepts = dblists.Select(O => O.ItemNo).Except(result.data.Select(o => o.itemNo));
+                    foreach (var except in excepts)
                     {
-                        _materialUnitService.Repository.DeleteData(first);
-                    }
-                }
-                foreach (var item in result.data)
-                {
-                    var first = dblists.FirstOrDefault(o => o.ItemNo == item.itemNo);
-                    if (first != null)
-                    {
-                        first.ItemNo = item.itemNo;
-                        first.ProductName = item.productName;
-                        first.FromUom = item.fromUom;
-                        first.ToUom = item.toUom;
-                        first.Ratio = item.ratio.ObjToDecimal();
-                        first.Creater = "ERP";
-                        first.Modifier = "ERP";
-                        first.CreateDate = item.createDate.ObjToDate();
-                        first.ModifyDate = item.modifyDate.ObjToDate();
-                        _materialUnitService.Repository.UpdateData(first);
-                    }
-                    else
-                    {
-                        Dt_MaterialUnit dt_MaterialUnit = new()
+                        var first = dblists.FirstOrDefault(o => o.ItemNo == except);
+                        if (first != null)
                         {
-                            ItemNo = item.itemNo,
-                            ProductName = item.productName,
-                            FromUom = item.fromUom,
-                            ToUom = item.toUom,
-                            Ratio = item.ratio.ObjToDecimal(),
-                            CreateDate = item.createDate.ObjToDate(),
-                            Creater = "ERP",
-                            Modifier = "ERP",
-                            ModifyDate = item.modifyDate.ObjToDate()
-                        };
-                        _materialUnitService.Repository.AddData(dt_MaterialUnit);
+                            _materialUnitService.Repository.DeleteData(first);
+                        }
+                    }
+                    foreach (var item in result.data)
+                    {
+                        var first = dblists.FirstOrDefault(o => o.ItemNo == item.itemNo);
+                        if (first != null)
+                        {
+                            first.ItemNo = item.itemNo;
+                            first.ProductName = item.productName;
+                            first.FromUom = item.fromUom;
+                            first.ToUom = item.toUom;
+                            first.Ratio = item.ratio.ObjToDecimal();
+                            first.Creater = "ERP";
+                            first.Modifier = "ERP";
+                            first.CreateDate = item.createDate.ObjToDate();
+                            first.ModifyDate = item.modifyDate.ObjToDate();
+                            _materialUnitService.Repository.UpdateData(first);
+                        }
+                        else
+                        {
+                            Dt_MaterialUnit dt_MaterialUnit = new()
+                            {
+                                ItemNo = item.itemNo,
+                                ProductName = item.productName,
+                                FromUom = item.fromUom,
+                                ToUom = item.toUom,
+                                Ratio = item.ratio.ObjToDecimal(),
+                                CreateDate = item.createDate.ObjToDate(),
+                                Creater = "ERP",
+                                Modifier = "ERP",
+                                ModifyDate = item.modifyDate.ObjToDate()
+                            };
+                            _materialUnitService.Repository.AddData(dt_MaterialUnit);
+                        }
                     }
                 }
+            }
+            catch (Exception ex)
+            {
+                _logger.LogInformation("ErpApiService GetMaterialUnitAsync 澶辫触:  " + ex.Message);
+
             }
 
         }
         public async Task GetMaterialInfoAsync(MaterialRequest materialRequest)
         {
-            var first = WIDESEA_Core.Helper.AppSettings.GetValue("FirstMaterialSync").ObjToBool();
-            if (first)
+            try
             {
-                var _token = await GetTokenAsync();
-                for (int i = 1; i < 400; i++)
+                var first = WIDESEA_Core.Helper.AppSettings.GetValue("FirstMaterialSync").ObjToBool();
+                if (first)
                 {
-                    materialRequest.pageNum = i;
-                    materialRequest.pageSize = 5000;
-                    var result = await PostAsync<MaterialRequest, MaterialResponse>("erp/getMaterialInfo", materialRequest, _token, true);
+                    var _token = await GetTokenAsync();
+                    for (int i = 1; i < 400; i++)
+                    {
+                        materialRequest.pageNum = i;
+                        materialRequest.pageSize = 5000;
+                        var result = await PostAsync<MaterialRequest, MaterialResponse>("erp/getMaterialInfo", materialRequest, _token, true);
+                        if (result != null && result.data != null && result.data.Any())
+                        {
+                            foreach (var item in result.data)
+                            {
+                                Dt_MaterielInfo dt_MaterielInfo = new Dt_MaterielInfo()
+                                {
+                                    MaterielModel = item.productModel,
+                                    MaterielCode = item.itemNo,
+                                    MaterielName = item.productName,
+                                    MaterielSpec = item.spec,
+                                    productTypeDesc = item.productTypeDesc,
+                                    productFamilyName = item.productFamilyName,
+                                    productFamilyShortName = item.productFamilyShortName,
+                                    plcode = item.plcode,
+                                    pl = item.pl,
+                                    drawingNo = item.drawingNo,
+                                    mversion = item.mversion,
+                                    warehouseName = item.warehouseName,
+                                    usageUOM = item.usageUOM,
+                                    purchaseUOM = item.purchaseUOM,
+                                    inventoryUOM = item.inventoryUOM,
+                                    CreateDate = item.createDate.ObjToDate(),
+                                    ModifyDate = item.modifyDate.ObjToDate(),
+                                };
+                                _materielInfoService.Repository.AddData(dt_MaterielInfo);
+                            }
+                        }
+                    }
+                }
+                else
+                {
+                    //materialRequest.modifyDateStart = DateTime.Now.AddDays(-1).Date.ToString("yyyy-MM-dd") + " 00:00:01";
+                    //materialRequest.modifyDateEnd = DateTime.Now.ToString("yyyy-MM-dd HH:mm") + ":01";
+                    //materialRequest.pageNum = 1;
+                    //materialRequest.pageSize = 5000;
+
+                    var result = await PostAsync<MaterialRequest, MaterialResponse>("erp/getMaterialInfo", materialRequest, true, true);
                     if (result != null && result.data != null && result.data.Any())
                     {
                         foreach (var item in result.data)
                         {
-                            Dt_MaterielInfo dt_MaterielInfo = new Dt_MaterielInfo()
+                            var dbfirst = _materielInfoService.Repository.QueryData(x => x.MaterielModel == item.productModel && x.MaterielCode == item.itemNo).FirstOrDefault();
+                            if (dbfirst != null)
                             {
-                                MaterielModel = item.productModel,
-                                MaterielCode = item.itemNo,
-                                MaterielName = item.productName,
-                                MaterielSpec = item.spec,
-                                productTypeDesc = item.productTypeDesc,
-                                productFamilyName = item.productFamilyName,
-                                productFamilyShortName = item.productFamilyShortName,
-                                plcode = item.plcode,
-                                pl = item.pl,
-                                drawingNo = item.drawingNo,
-                                mversion = item.mversion,
-                                warehouseName = item.warehouseName,
-                                usageUOM = item.usageUOM,
-                                purchaseUOM = item.purchaseUOM,
-                                inventoryUOM = item.inventoryUOM,
-                                CreateDate = item.createDate.ObjToDate(),
-                                ModifyDate = item.modifyDate.ObjToDate(),
-                            };
-                            _materielInfoService.Repository.AddData(dt_MaterielInfo);
+                                dbfirst.MaterielModel = item.productModel;
+                                dbfirst.MaterielCode = item.itemNo;
+                                dbfirst.MaterielName = item.productName;
+                                dbfirst.MaterielSpec = item.spec;
+                                dbfirst.productTypeDesc = item.productTypeDesc;
+                                dbfirst.productFamilyName = item.productFamilyName;
+                                dbfirst.productFamilyShortName = item.productFamilyShortName;
+                                dbfirst.plcode = item.plcode;
+                                dbfirst.pl = item.pl;
+                                dbfirst.drawingNo = item.drawingNo;
+                                dbfirst.mversion = item.mversion;
+                                dbfirst.warehouseName = item.warehouseName;
+                                dbfirst.usageUOM = item.usageUOM;
+                                dbfirst.purchaseUOM = item.purchaseUOM;
+                                dbfirst.inventoryUOM = item.inventoryUOM;
+                                dbfirst.CreateDate = item.createDate.ObjToDate();
+                                dbfirst.ModifyDate = item.modifyDate.ObjToDate();
+                                _materielInfoService.Repository.UpdateData(dbfirst);
+                            }
+                            else
+                            {
+                                Dt_MaterielInfo dt_MaterielInfo = new Dt_MaterielInfo()
+                                {
+                                    MaterielModel = item.productModel,
+                                    MaterielCode = item.itemNo,
+                                    MaterielName = item.productName,
+                                    MaterielSpec = item.spec,
+                                    productTypeDesc = item.productTypeDesc,
+                                    productFamilyName = item.productFamilyName,
+                                    productFamilyShortName = item.productFamilyShortName,
+                                    plcode = item.plcode,
+                                    pl = item.pl,
+                                    drawingNo = item.drawingNo,
+                                    mversion = item.mversion,
+                                    warehouseName = item.warehouseName,
+                                    usageUOM = item.usageUOM,
+                                    purchaseUOM = item.purchaseUOM,
+                                    inventoryUOM = item.inventoryUOM,
+                                    CreateDate = item.createDate.ObjToDate(),
+                                    ModifyDate = item.modifyDate.ObjToDate(),
+                                };
+                                _materielInfoService.Repository.AddData(dt_MaterielInfo);
+                            }
+
                         }
                     }
                 }
+
             }
-            else
+            catch (Exception ex)
             {
-                materialRequest.modifyDateStart = DateTime.Now.AddDays(-1).Date.ToString("yyyy-MM-dd") + " 00:00:01";
-                materialRequest.modifyDateEnd = DateTime.Now.ToString("yyyy-MM-dd HH:mm")+ ":01";
-                materialRequest.pageNum = 1;
-                materialRequest.pageSize = 5000;
+                _logger.LogInformation("ErpApiService GetMaterialInfoAsync 澶辫触:  " + ex.Message);
 
-                var result = await PostAsync<MaterialRequest, MaterialResponse>("erp/getMaterialInfo", materialRequest, true, true);
-                if (result != null && result.data != null && result.data.Any())
-                {
-                    foreach (var item in result.data)
-                    {
-                        var dbfirst = _materielInfoService.Repository.QueryData(x => x.MaterielModel == item.productModel && x.MaterielCode == item.itemNo).FirstOrDefault();
-                        if (dbfirst != null)
-                        {
-                            dbfirst.MaterielModel = item.productModel;
-                            dbfirst.MaterielCode = item.itemNo;
-                            dbfirst.MaterielName = item.productName;
-                            dbfirst.MaterielSpec = item.spec;
-                            dbfirst.productTypeDesc = item.productTypeDesc;
-                            dbfirst.productFamilyName = item.productFamilyName;
-                            dbfirst.productFamilyShortName = item.productFamilyShortName;
-                            dbfirst.plcode = item.plcode;
-                            dbfirst.pl = item.pl;
-                            dbfirst.drawingNo = item.drawingNo;
-                            dbfirst.mversion = item.mversion;
-                            dbfirst.warehouseName = item.warehouseName;
-                            dbfirst.usageUOM = item.usageUOM;
-                            dbfirst.purchaseUOM = item.purchaseUOM;
-                            dbfirst.inventoryUOM = item.inventoryUOM;
-                            dbfirst.CreateDate = item.createDate.ObjToDate();
-                            dbfirst.ModifyDate = item.modifyDate.ObjToDate();
-                            _materielInfoService.Repository.UpdateData(dbfirst);
-                        }
-                        else
-                        {
-                            Dt_MaterielInfo dt_MaterielInfo = new Dt_MaterielInfo()
-                            {
-                                MaterielModel = item.productModel,
-                                MaterielCode = item.itemNo,
-                                MaterielName = item.productName,
-                                MaterielSpec = item.spec,
-                                productTypeDesc = item.productTypeDesc,
-                                productFamilyName = item.productFamilyName,
-                                productFamilyShortName = item.productFamilyShortName,
-                                plcode = item.plcode,
-                                pl = item.pl,
-                                drawingNo = item.drawingNo,
-                                mversion = item.mversion,
-                                warehouseName = item.warehouseName,
-                                usageUOM = item.usageUOM,
-                                purchaseUOM = item.purchaseUOM,
-                                inventoryUOM = item.inventoryUOM,
-                                CreateDate = item.createDate.ObjToDate(),
-                                ModifyDate = item.modifyDate.ObjToDate(),
-                            };
-                            _materielInfoService.Repository.AddData(dt_MaterielInfo);
-                        }
-
-                    }
-                }
             }
-
-
         }
 
         private async Task<TResponse> PostAsync<TRequest, TResponse>(string url, TRequest request, string _token, bool isNullSerialize = false)
@@ -314,7 +352,7 @@
             }
             else
             {
-                json = JsonConvert.SerializeObject(request );
+                json = JsonConvert.SerializeObject(request);
             }
 
             var content = new StringContent(json, Encoding.UTF8, "application/json");

--
Gitblit v1.9.3