From f44e51ecb4e3206a962493df7450b5dc3375b159 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期五, 28 十一月 2025 17:52:10 +0800
Subject: [PATCH] 标准版

---
 appsettings.json                                 |    4 
 service/Wom/WomdaaManager.cs                     |    3 
 util/AppSettings.cs                              |    1 
 service/ErpKcManager.cs                          |   10 
 service/QC/OaApi.cs                              |  123 ++++++++++-------
 Dto/ErpKc.cs                                     |   11 +
 entity/ErpMesKc.cs                               |   31 ++++
 Controllers/Kingdee/ErpBOMController.cs          |   40 +++++
 service/base/LoginService.cs                     |    2 
 NewPdaSqlServer.csproj                           |    1 
 service/ErpBOMManager.cs                         |  137 +++++++++++++++++++
 service/Warehouse/MesInvItemInCDetailsManager.cs |   27 +++
 util/AppsettingsUtility.cs                       |    1 
 13 files changed, 334 insertions(+), 57 deletions(-)

diff --git a/Controllers/Kingdee/ErpBOMController.cs b/Controllers/Kingdee/ErpBOMController.cs
new file mode 100644
index 0000000..b268367
--- /dev/null
+++ b/Controllers/Kingdee/ErpBOMController.cs
@@ -0,0 +1,40 @@
+锘縰sing System.Dynamic;
+using Microsoft.AspNetCore.Mvc;
+
+using NewPdaSqlServer.entity;
+using NewPdaSqlServer.util;
+using MES.Service.service.Kingdee;
+
+
+namespace NewPdaSqlServer.Controllers.Kingdee;
+
+
+[ApiController]
+[Route("api/[controller]")]
+public class ErpBOMController : ControllerBase 
+{
+    private readonly ErpBOMManager kc = new();
+
+
+    //
+    [HttpPost("Save")]
+    public ResponseResult Save()
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos = kc.QueryErpBOM();
+
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+}
diff --git a/Dto/ErpKc.cs b/Dto/ErpKc.cs
index a6845de..5b4cbd9 100644
--- a/Dto/ErpKc.cs
+++ b/Dto/ErpKc.cs
@@ -14,4 +14,15 @@
         public string? FSTOREURNUM { get; set; }
         public string? FStockOrgId { get; set; }
     }
+
+    public class ErpBom
+    {
+        public string? FITEMPPROPERTY { get; set; }
+        public string? FMATERIALID { get; set; }
+        public string? FITEMNAME { get; set; }
+        public string? FENTRYID { get; set; }
+        public string? FCHILDITEMNAME { get; set; }
+        public string? FNUMERATOR { get; set; }
+        public string? FDENOMINATOR { get; set; }
+    }
 }
diff --git a/NewPdaSqlServer.csproj b/NewPdaSqlServer.csproj
index 64dfbc8..3c8eb59 100644
--- a/NewPdaSqlServer.csproj
+++ b/NewPdaSqlServer.csproj
@@ -7,6 +7,7 @@
     </PropertyGroup>
 
     <ItemGroup>
+        <PackageReference Include="Kingdee.CDP.WebApi.SDK" Version="1.0.2" />
         <PackageReference Include="Masuit.Tools.Core" Version="2024.5.8" />
         <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.8" />
         <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.10" />
diff --git a/appsettings.json b/appsettings.json
index ba9a4cb..5bdcc28 100644
--- a/appsettings.json
+++ b/appsettings.json
@@ -9,8 +9,8 @@
   "AppSettings": {
     "TestErpUrl": "http://192.168.1.149:8066/WebService1.asmx/MesToErpinfoTest",
     "ProductionErpUrl": "http://192.168.1.149:8066/WebService1.asmx/MesToErpinfoTest",
-    //"DataBaseConn": "Data Source=192.168.1.146,12468;Initial Catalog=TEST_MES;User ID=testUser;Password =qixi1qaz@WSXtest;Encrypt=True;TrustServerCertificate=True;"
-    "DataBaseConn": "Data Source=192.168.1.146,12468;Initial Catalog=GS_MES;User ID=mesUser;Password =qixi1qaz@WSXmes;Encrypt=True;TrustServerCertificate=True;"
+    "DataBaseConn": "Data Source=172.100.1.114,12468;Initial Catalog=TEST_MES;User ID=testUser;Password =qixi1qaz@WSXtest;Encrypt=True;TrustServerCertificate=True;"
+    //"DataBaseConn": "Data Source=172.100.1.114,12468;Initial Catalog=GS_MES;User ID=mesUser;Password =qixi1qaz@WSXmes;Encrypt=True;TrustServerCertificate=True;"
   },
   "Version": "1.0.0",
   "X-KDApi-AcctID": "6244701c616bff",
diff --git a/entity/ErpMesKc.cs b/entity/ErpMesKc.cs
index 93af660..94e5996 100644
--- a/entity/ErpMesKc.cs
+++ b/entity/ErpMesKc.cs
@@ -48,3 +48,34 @@
     public decimal? FStockOrgId { get; set; }
 
 }
+
+[SugarTable("ERP_BOM")]
+public class ErpBOM
+{
+    [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
+    public Guid ID { get; set; }
+    /// <summary>
+    ///     榛樿鍊�: (newid())
+    /// </summary>
+    [SugarColumn(ColumnName = "ItemProperty")]
+    public string? ItemProperty { get; set; }
+
+    [SugarColumn(ColumnName = "ItemId")]
+    public int? ItemId { get; set; }
+
+    [SugarColumn(ColumnName = "ItemName")]
+    public string? ItemName { get; set; }
+
+    [SugarColumn(ColumnName = "ChildItemId")]
+    public int? ChildItemId { get; set; }
+
+    [SugarColumn(ColumnName = "ChildItemName")]
+    public string? ChildItemName { get; set; }
+
+    [SugarColumn(ColumnName = "Numerator")]
+    public decimal? Numerator { get; set; }
+
+    [SugarColumn(ColumnName = "Denominator")]
+    public decimal? Denominator { get; set; }
+
+}
diff --git a/service/ErpBOMManager.cs b/service/ErpBOMManager.cs
new file mode 100644
index 0000000..2c045c4
--- /dev/null
+++ b/service/ErpBOMManager.cs
@@ -0,0 +1,137 @@
+锘�
+using Kingdee.CDP.WebApi.SDK;
+using MES.Service.Models;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Filters;
+using NewPdaSqlServer.DB;
+using NewPdaSqlServer.Dto;
+using NewPdaSqlServer.entity;
+using NewPdaSqlServer.util;
+using Newtonsoft.Json;
+using SqlSugar;
+using System.Text;
+
+namespace MES.Service.service.Kingdee;
+
+public class ErpBOMManager : Repository<ErpBOM>
+{
+
+    #region 鑾峰彇BOM
+    public bool QueryErpBOM()
+    {
+        List<ErpBom> bom = GetErpBOM();
+
+        // 妫�鏌ヨ繑鍥炵粨鏋滄槸鍚︿负绌�
+        if (bom == null || bom.Count == 0)
+        {
+            throw new NotImplementedException("杩斿洖缁撴灉涓虹┖");
+        }
+        else
+        {
+            var baseObjects = MapErpBOMtoMes(bom);
+
+            return UseTransaction(db =>
+            {
+                return SaveBOMData(db, baseObjects) ? 1 : 0;
+            }) > 0;
+        }
+    }
+
+    private bool SaveBOMData(SqlSugarScope db, List<ErpBOM> kcc)
+    {
+        Db.Deleteable<ErpBOM>()
+          .ExecuteCommand();
+
+        var save = base.InsertRange(kcc);
+        if (save) return true;
+        throw new NotImplementedException("鎻掑叆澶辫触");
+    }
+
+    public List<ErpBom> GetErpBOM()
+    {
+        //娉ㄦ剰 1锛氭澶勪笉鍐嶄娇鐢ㄥ弬鏁板舰寮忎紶鍏ョ敤鎴峰悕鍙婂瘑鐮佺瓑鏁忔劅淇℃伅锛屾敼涓哄湪鐧诲綍閰嶇疆鏂囦欢涓缃��
+        //娉ㄦ剰 2锛氬繀椤诲厛閰嶇疆绗笁鏂圭郴缁熺櫥褰曟巿鏉冧俊鎭悗锛屽啀杩涜涓氬姟鎿嶄綔锛岃鎯呭弬鑰冨悇璇█鐗堟湰SDK浠嬬粛涓殑鐧诲綍閰嶇疆鏂囦欢璇存槑銆�
+        //璇诲彇閰嶇疆锛屽垵濮嬪寲SDK
+        K3CloudApi client = new K3CloudApi();
+        //鐢ㄤ簬璁板綍缁撴灉
+        StringBuilder Info = new StringBuilder();
+        //涓氬姟瀵硅薄鏍囪瘑
+        string formId = "ENG_BOM";
+        DateTime dt = DateTime.Now;
+        //鏌ヨ瀛楁闆嗗悎锛屽嵆杩斿洖鍝簺鏁版嵁锛屼笉鑳戒负绌猴紝鏍规嵁涓嶅悓涓氬姟鍗曟嵁濉啓涓嶅悓鐨勫瓧娈靛悕锛屼互涓嬩粎涓虹ず渚�
+        //string fieldKeys = "FCod,FFileId,FRelevantObject";
+        //string FilterString = "FID='-2146304'";
+        string fieldKeys = "FITEMPPROPERTY ,FMATERIALID  ,FITEMNAME ,FTreeEntity_FENTRYID ,FCHILDITEMNAME ,FNUMERATOR , FDENOMINATOR";
+        var filterString = new[]
+                            {
+                                new
+                                {
+                                    FieldName = "FITEMPPROPERTY",
+                                    Compare = "29",
+                                    Value = "3",
+                                    Left = "(",
+                                    Right = ")",
+                                    Logic = 0
+                                }
+                            };
+        var param = new QueryParams()
+        {
+            FormId = formId,
+            FieldKeys = fieldKeys,
+            FilterString = filterString
+        };
+        //璋冪敤鎺ュ彛
+        var result = client.ExecuteBillQuery(param.ToJson());
+
+        return result.Select(s =>
+        {
+            var entity = new ErpBom
+            {
+                FITEMPPROPERTY = s[0]?.ToString(),
+                FMATERIALID = s[1]?.ToString(),
+                FITEMNAME = s[2]?.ToString(),
+                FENTRYID = s[3]?.ToString(),
+                FCHILDITEMNAME = s[4]?.ToString(),
+                FNUMERATOR = s[5]?.ToString(),
+                FDENOMINATOR = s[6]?.ToString()
+            };
+            return entity;
+        }).ToList();
+    }
+
+    private class QueryParams :BaseEntify
+    {
+        public string FormId { get; set; }
+
+        public string FieldKeys { get; set; }
+
+        public object[] FilterString { get; set; }
+    }
+
+    private List<ErpBOM> MapErpBOMtoMes(List<ErpBom> dtoList)
+    {
+        var ErpMesBomList = new List<ErpBOM>();
+
+        foreach (var dto in dtoList)
+        {
+            var kc = new ErpBOM
+            {
+                ID = Guid.NewGuid(),
+                ItemProperty = dto.FITEMPPROPERTY,
+                ItemId = Convert.ToInt32(dto.FMATERIALID),
+                ItemName = dto.FITEMNAME,
+                ChildItemId = Convert.ToInt32(dto.FENTRYID),
+                ChildItemName = dto.FCHILDITEMNAME,
+                Numerator = Convert.ToDecimal(dto.FNUMERATOR),
+                Denominator = Convert.ToDecimal(dto.FDENOMINATOR)
+
+            };
+
+            ErpMesBomList.Add(kc);
+        }
+
+        return ErpMesBomList;
+    }
+    #endregion
+
+}
diff --git a/service/ErpKcManager.cs b/service/ErpKcManager.cs
index 92f7e32..4986db2 100644
--- a/service/ErpKcManager.cs
+++ b/service/ErpKcManager.cs
@@ -1,13 +1,15 @@
 锘�
 using Kingdee.CDP.WebApi.SDK;
+using MES.Service.Models;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Filters;
+using NewPdaSqlServer.DB;
+using NewPdaSqlServer.Dto;
 using NewPdaSqlServer.entity;
 using NewPdaSqlServer.util;
+using Newtonsoft.Json;
 using SqlSugar;
-using NewPdaSqlServer.DB;
 using System.Text;
-using NewPdaSqlServer.Dto;
-using Microsoft.AspNetCore.Mvc;
-using MES.Service.Models;
 
 namespace MES.Service.service.Kingdee;
 
diff --git a/service/QC/OaApi.cs b/service/QC/OaApi.cs
index 632f099..67e5712 100644
--- a/service/QC/OaApi.cs
+++ b/service/QC/OaApi.cs
@@ -408,57 +408,82 @@
 
     private JArray BuildDetailData(dynamic queryObj)
     {
-        // 浣跨敤鍙傛暟鍖栨煡璇㈣幏鍙栨槑缁嗘暟鎹�
-        const string mainSql = @"select ROW_NUMBER() over (ORDER BY Jy_Date) AS xh,releaseNo AS jydh, Jy_Date AS jydrq, batchQty as sjsl,
-               chouQty AS cys, badQty AS bls, badProb AS bll,C.USER_NAME AS jyr
-            from Mes_QC_Exceptional_Detail A
-            LEFT JOIN MES_QA_ITEMS_DETECT_01 B ON A.releaseNo = B.release_no
-            LEFT JOIN SYS_USER C ON C.ACCOUNT = B.fcheck_by
-            WHERE pGuid = @guid";
-    
-        var details = Db.Ado.SqlQuery<dynamic>(mainSql, new { guid = queryObj.qcczdGuid });
-    
-        var tableRecords = new JArray();
-        
-        // 閬嶅巻姣忔潯鏄庣粏鏁版嵁
-        foreach (var record in details ?? Enumerable.Empty<dynamic>())
+        // 灏嗙洿鎺QL鏌ヨ鏇挎崲涓哄瓨鍌ㄨ繃绋嬭皟鐢�
+        var parameters = new[]
         {
-            // 淇瀛楁绫诲瀷杞崲锛堟暟鍊肩被鍨嬪幓闄ゅ瓧绗︿覆鍖呰9锛�
-            var fields = new JArray
-            {
-                //new JObject { ["fieldName"] = "xh", ["fieldValue"] = record.xh?.ToString() ?? "" },
-                new JObject { ["fieldName"] = "jydh", ["fieldValue"] = record.jydh?.ToString() ?? "" },
-                 new JObject { ["fieldName"] = "jyr", ["fieldValue"] = record.jyr?.ToString() ?? "" },
-                new JObject { 
-                    ["fieldName"] = "jydrq", 
-                    // 鏍煎紡鍖栦负"yyyy-MM-dd"瀛楃涓�
-                    ["fieldValue"] = (record.jydrq != null 
-                        ? Convert.ToDateTime(record.jydrq).ToString("yyyy-MM-dd ") 
-                        : DateTime.Now.ToString("yyyy-MM-dd"))
-                },
-                // 鏁板�煎瓧娈典繚鎸佹暟瀛楃被鍨嬭�岄潪瀛楃涓�
-                // 淇鏁板�肩被鍨嬭浆鎹㈡柟寮�
-                new JObject { ["fieldName"] = "sjsl", ["fieldValue"] = (float)(record.sjsl ?? 0m) },
-                new JObject { ["fieldName"] = "cys", ["fieldValue"] = (float)(record.cys ?? 0) },
-                new JObject { ["fieldName"] = "bls", ["fieldValue"] = (float)(record.bls ?? 0) },
-                new JObject { ["fieldName"] = "bll", ["fieldValue"] = 1, }
-            };
-    
-            tableRecords.Add(new JObject
-            {
-                ["recordOrder"] = 0,  // 瀹為檯涓氬姟涓彲鑳介渶瑕佹牴鎹鍙疯缃�
-                ["workflowRequestTableFields"] = fields
-            });
-        }
-    
-        return new JArray
-        {
-            new JObject
-            {
-                ["tableDBName"] = "formtable_main_321_dt1",//娴嬭瘯锛歠ormtable_main_33_dt1
-                ["workflowRequestTableRecords"] = tableRecords
-            }
+            new SugarParameter("@pi_guid", queryObj.qcczdGuid),
+            new SugarParameter("@inP1", null),
+            new SugarParameter("@inP2", null),
+            new SugarParameter("@inP3", null),
+            new SugarParameter("@inP4", null)
         };
+
+        try
+        {
+            var details = Db.Ado.SqlQuery<dynamic>(
+                "EXEC select_oa_BuildDetailData @pi_guid,@inP1,@inP2,@inP3,@inP4", 
+                parameters);
+
+
+            var tableRecords = new JArray();
+        
+            // 閬嶅巻姣忔潯鏄庣粏鏁版嵁
+            foreach (var record in details ?? Enumerable.Empty<dynamic>())
+            {
+                // 淇瀛楁绫诲瀷杞崲锛堟暟鍊肩被鍨嬪幓闄ゅ瓧绗︿覆鍖呰9锛�
+                var fields = new JArray
+                {
+                    //new JObject { ["fieldName"] = "xh", ["fieldValue"] = record.xh?.ToString() ?? "" },
+                    new JObject { ["fieldName"] = "jydh", ["fieldValue"] = record.jydh?.ToString() ?? "" },
+                    new JObject { ["fieldName"] = "jyr", ["fieldValue"] = record.jyr?.ToString() ?? "" },
+                    new JObject { ["fieldName"] = "xblb", ["fieldValue"] = record.xblb?.ToString() ?? "" },
+                    new JObject { 
+                        ["fieldName"] = "jydrq", 
+                        // 鏍煎紡鍖栦负"yyyy-MM-dd"瀛楃涓�
+                        ["fieldValue"] = (record.jydrq != null 
+                            ? Convert.ToDateTime(record.jydrq).ToString("yyyy-MM-dd ") 
+                            : DateTime.Now.ToString("yyyy-MM-dd"))
+                    },
+                    // 鏁板�煎瓧娈典繚鎸佹暟瀛楃被鍨嬭�岄潪瀛楃涓�
+                    // 淇鏁板�肩被鍨嬭浆鎹㈡柟寮�
+                    new JObject { ["fieldName"] = "sjsl", ["fieldValue"] = (float)(record.sjsl ?? 0m) },
+                    new JObject { ["fieldName"] = "cys", ["fieldValue"] = (float)(record.cys ?? 0) },
+                    new JObject { ["fieldName"] = "bls", ["fieldValue"] = (float)(record.bls ?? 0) },
+                    new JObject { ["fieldName"] = "bll", ["fieldValue"] = 1, }
+                };
+        
+                tableRecords.Add(new JObject
+                {
+                    ["recordOrder"] = 0,  // 瀹為檯涓氬姟涓彲鑳介渶瑕佹牴鎹鍙疯缃�
+                    ["workflowRequestTableFields"] = fields
+                });
+            }
+        
+            return new JArray
+            {
+                new JObject
+                {
+                    ["tableDBName"] = "formtable_main_321_dt1",//娴嬭瘯锛歠ormtable_main_33_dt1
+                    ["workflowRequestTableRecords"] = tableRecords
+                }
+            };
+        }
+        catch (Exception ex)
+        {
+            throw new Exception($"鏌ヨ寮傚父鏄庣粏澶辫触: {ex.Message}");
+        }
+
+        // // 浣跨敤鍙傛暟鍖栨煡璇㈣幏鍙栨槑缁嗘暟鎹�
+        // const string mainSql = @"select ROW_NUMBER() over (ORDER BY Jy_Date) AS xh,releaseNo AS jydh, Jy_Date AS jydrq, batchQty as sjsl,
+        //        chouQty AS cys, badQty AS bls, badProb AS bll,C.USER_NAME AS jyr
+        //     from Mes_QC_Exceptional_Detail A
+        //     LEFT JOIN MES_QA_ITEMS_DETECT_01 B ON A.releaseNo = B.release_no
+        //     LEFT JOIN SYS_USER C ON C.ACCOUNT = B.fcheck_by
+        //     WHERE pGuid = @guid";
+    
+        // var details = Db.Ado.SqlQuery<dynamic>(mainSql, new { guid = queryObj.qcczdGuid });
+    
+        
     }
 
     private JObject BuildOtherParams()
diff --git a/service/Warehouse/MesInvItemInCDetailsManager.cs b/service/Warehouse/MesInvItemInCDetailsManager.cs
index 8dfc5d4..a0d3fb0 100644
--- a/service/Warehouse/MesInvItemInCDetailsManager.cs
+++ b/service/Warehouse/MesInvItemInCDetailsManager.cs
@@ -104,6 +104,33 @@
         }
 
 
+        // ========== 鏂板锛氶獙璇佸綋鍓嶅簱浣嶄笌鐗╂枡榛樿搴撲綅鏄惁涓�鑷� ==========
+        // 鑾峰彇鐗╂枡淇℃伅
+        var mesItems = Db.Queryable<MesItems>()
+            .Where(s => s.Id == itemBarcodeDetails.ItemId)
+            .First();
+
+        if (mesItems == null)
+            throw new Exception("鎵句笉鍒板搴旂殑鐗╂枡淇℃伅锛�");
+
+        // 妫�鏌ョ墿鏂欐槸鍚︽湁榛樿搴撲綅璁剧疆
+        if (!string.IsNullOrEmpty(mesItems.DepotCode))
+        {
+            // 鑾峰彇鐗╂枡榛樿搴撲綅瀵瑰簲鐨勪粨搴撲俊鎭�
+            var defaultDepot = Db.Queryable<MesDepots>()
+                .Where(d => d.DepotCode == mesItems.DepotCode)
+                .First();
+
+            if (mesItems.DepotCode != null && mesItems.DepotCode != "0")
+            {
+                // 姣旇緝褰撳墠鎵弿鐨勫簱浣嶆墍灞炰粨搴撶紪鐮佷笌鐗╂枡榛樿浠撳簱缂栫爜鏄惁涓�鑷�
+                if (mesDepost.DepotId?.ToString() != mesItems.DepotCode)
+                {
+                    throw new Exception($"褰撳墠搴撲綅鎵�灞炰粨搴揫{mesDepost.DepotId}]涓庣墿鏂欓粯璁や粨搴揫{mesItems.DepotCode}]涓嶄竴鑷达紝璇锋壂鎻忔纭殑搴撲綅锛�");
+                }
+            }
+        }
+
         //num = Db.Queryable<MesInvItemInCDetails>()
         //    .Where(it => it.ItemBarcode == itemBarcode)
         //    .Count();
diff --git a/service/Wom/WomdaaManager.cs b/service/Wom/WomdaaManager.cs
index 34bc927..c516c2d 100644
--- a/service/Wom/WomdaaManager.cs
+++ b/service/Wom/WomdaaManager.cs
@@ -1423,7 +1423,7 @@
         var sqlParams = new List<SugarParameter> { };
 
         var sql2 = new StringBuilder(@"
-SELECT NAME,line_no FROM MES_WORKSHOP_LINE WHERE isAgv = 1 ORDER BY line_no");
+SELECT NAME,line_no,agvPostion FROM MES_WORKSHOP_LINE WHERE isAgv = 1 ORDER BY line_no");
 
 
         var XtItem = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams);
@@ -1505,6 +1505,7 @@
                 {
                     new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userAccount },
                     new("@pi_xtNum", SqlDbType.NVarChar, 100) { Value = query.XtNum },
+                    new("@in1", SqlDbType.NVarChar, 100) { Value = query.AgvDw },
                     new("@outMsg", SqlDbType.NVarChar, 2500) { Direction = ParameterDirection.Output },
                     new("@outSum", SqlDbType.Int) { Direction = ParameterDirection.Output }
                 };
diff --git a/service/base/LoginService.cs b/service/base/LoginService.cs
index 5314f17..30d082b 100644
--- a/service/base/LoginService.cs
+++ b/service/base/LoginService.cs
@@ -96,7 +96,7 @@
 
                     var icoimg = "";
                     if (mesFile != null)
-                        icoimg = "http://192.168.1.145:81/upload/" +
+                        icoimg = AppsettingsUtility.Settings.ImageUploadUrl +
                                  mesFile.UrlPath;
 
                     groupObj.child.Add(new MesSysPageview
diff --git a/util/AppSettings.cs b/util/AppSettings.cs
index dbbe2cb..b3a0ee0 100644
--- a/util/AppSettings.cs
+++ b/util/AppSettings.cs
@@ -5,4 +5,5 @@
     public string TestErpUrl { get; set; }
     public string ProductionErpUrl { get; set; }
     public string DataBaseConn { get; set; }
+    public string ImageUploadUrl { get; set; }
 }
\ No newline at end of file
diff --git a/util/AppsettingsUtility.cs b/util/AppsettingsUtility.cs
index 4e40d65..c826ca8 100644
--- a/util/AppsettingsUtility.cs
+++ b/util/AppsettingsUtility.cs
@@ -11,6 +11,7 @@
         myOwn.TestErpUrl = configuration["AppSettings:TestErpUrl"];
         myOwn.ProductionErpUrl = configuration["AppSettings:ProductionErpUrl"];
         myOwn.DataBaseConn = configuration["AppSettings:DataBaseConn"];
+        myOwn.ImageUploadUrl = configuration["AppSettings:ImageUploadUrl"];
         Settings = myOwn;
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3