From a116cc7c2508d804667589de7f5f2f471378d92e Mon Sep 17 00:00:00 2001
From: llj <132905093+newwwwwwtree@users.noreply.github.com>
Date: 星期一, 29 十二月 2025 14:12:25 +0800
Subject: [PATCH] Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API

---
 WebAPI/Controllers/BaseSet/Xt_grdAlignment_WMESController.cs |  327 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 319 insertions(+), 8 deletions(-)

diff --git a/WebAPI/Controllers/BaseSet/Xt_grdAlignment_WMESController.cs b/WebAPI/Controllers/BaseSet/Xt_grdAlignment_WMESController.cs
index 46227c1..6914c54 100644
--- a/WebAPI/Controllers/BaseSet/Xt_grdAlignment_WMESController.cs
+++ b/WebAPI/Controllers/BaseSet/Xt_grdAlignment_WMESController.cs
@@ -4,7 +4,9 @@
 using System;
 using System.Collections.Generic;
 using System.Data;
+using System.IO;
 using System.Linq;
+using System.Text;
 using System.Web;
 using System.Web.Http;
 using WebAPI.Models;
@@ -35,7 +37,7 @@
                 {
                     ds = oCN.RunProcReturn("select * from  Xt_grdAlignment_WMES where HModName='" + HModName + "' and (HUserName='admin' or HUserName='Admin')", "Xt_grdAlignment_WMES");
 
-                    if (ds.Tables[0].Rows.Count == 0) {
+                    if (ds.Tables[0].Rows.Count != 0) {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
                         objJsonResult.Message = "Sucess锛�";
@@ -88,6 +90,7 @@
             public string Alignment;
             public string ColumnWidth;
             public string ColumnName_Other;
+            public bool IsTotalRow;
         }
 
         [Route("Xt_grdAlignment_WMES/AddgrdAlignmentWMES")]
@@ -140,7 +143,7 @@
 
                     var ColumnName_Other = (omdelsub[i].ColumnName_Other == null || omdelsub[i].ColumnName_Other.Trim() == "") ? omdelsub[i].ColumnName : omdelsub[i].ColumnName_Other;
 
-                    HGridString += $"{(i + 1)}|{(omdelsub[i].IsHide == true ? 1 : 0)}|{omdelsub[i].Alignment}|{width}|{ColumnName_Other}|{omdelsub[i].ColumnName},";
+                    HGridString += $"{(i + 1)}|{(omdelsub[i].IsHide == true ? 1 : 0)}|{omdelsub[i].Alignment}|{width}|{ColumnName_Other}|{omdelsub[i].ColumnName}|{(omdelsub[i].IsTotalRow == true ? 1 : 0)},";
                 }
                 HGridString = HGridString.Substring(0, HGridString.Length - 1);
 
@@ -223,7 +226,9 @@
                     var width = omdelsub[i].ColumnWidth;
                     if (string.IsNullOrEmpty(width) || DBUtility.ClsPub.isLong(width) == 0)
                         width = "120";
-                    HGridString += $"{(i + 1)}|{(omdelsub[i].IsHide == true ? 1 : 0)}|{omdelsub[i].Alignment}|{width}|{omdelsub[i].ColumnName},";
+                    var ColumnName_Other = (omdelsub[i].ColumnName_Other == null || omdelsub[i].ColumnName_Other.Trim() == "") ? omdelsub[i].ColumnName : omdelsub[i].ColumnName_Other;
+                    HGridString += $"{(i + 1)}|{(omdelsub[i].IsHide == true ? 1 : 0)}|{omdelsub[i].Alignment}|{width}|{ColumnName_Other}|{omdelsub[i].ColumnName}|{(omdelsub[i].IsTotalRow == true ? 1 : 0)},";
+
                 }
                 HGridString = HGridString.Substring(0, HGridString.Length - 1);
 
@@ -306,8 +311,20 @@
         {
             try
             {
-                ds = oCN.RunProcReturn("select * from  Xt_ModuleButtonSet where HModuleName='" + HModName + "' and HBillType='" + HBillType + "' and HUserName='" + HUserName + "'", "Xt_ModuleButtonSet");
+                ds = oCN.RunProcReturn("select * from  Xt_ModuleButtonSet where HModuleName='" + HModName + "' and HBillType='" + HBillType + "' and HUserName='" + HUserName + "' order by HOrder", "Xt_ModuleButtonSet");
+                if (ds.Tables[0].Rows.Count == 0)
+                {
+                    ds = oCN.RunProcReturn("select * from  Xt_ModuleButtonSet where HModuleName='" + HModName + "' and HBillType='" + HBillType + "' and HUserName='" + "admin" + "' order by HOrder", "Xt_ModuleButtonSet");
 
+                    if (ds.Tables[0].Rows.Count != 0)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = ds.Tables[0].Rows.Count;
+                        objJsonResult.Message = "Sucess锛�";
+                        objJsonResult.data = ds.Tables[0];
+                        return objJsonResult;
+                    }
+                }
                 objJsonResult.code = "1";
                 objJsonResult.count = ds.Tables[0].Rows.Count;
                 objJsonResult.Message = "Sucess锛�";
@@ -331,6 +348,7 @@
             public string BtnID;
             public string BtnName;
             public bool IsHide;
+            public string HOtherName;
         }
         public class noEditList
         {
@@ -341,6 +359,7 @@
             public int HOrder;
             public bool HHideFlag;
             public bool HEditFlag;
+            public string HOtherName;
         }
 
         [Route("Xt_ModuleButtonSet_WMES/AddModuleButtonSetWMES")]
@@ -402,6 +421,7 @@
                             string HButtonID = HButtonIDLists[j].ToString();
                             string HButtonName = HButtonNameLists[j].ToString();
                             int HOrder = HOrderLists[j];
+                            string HOtherName = button[i].HOtherName;
                             if (button[i].IsHide)
                             {
                                 HHideFlag = 1;
@@ -411,7 +431,7 @@
                                 HEditFlag = 0;
                                 HHideFlag = 0;
                             }
-                            string sql = "exec h_p_Xt_ModuleButtonSet '" + HBillType + "','" + HModuleName + "','" + HButtonID + "','" + HButtonName + "'," + HOrder + "," + HHideFlag + "," + HEditFlag + ",'" + HUserName + "'";
+                            string sql = "exec h_p_Xt_ModuleButtonSet '" + HBillType + "','" + HModuleName + "','" + HButtonID + "','" + HButtonName + "'," + HOrder + "," + HHideFlag + "," + HEditFlag + ",'" + HUserName + "','" + HOtherName + "'";
                             oCN.RunProc(sql);
                         }
                     }
@@ -429,7 +449,8 @@
                             string HButtonID = noEditLists[i].HButtonID;
                             string HButtonName = noEditLists[i].HButtonName;
                             int HOrder = HOrderLists[j];
-                            string sql = "exec h_p_Xt_ModuleButtonSet '" + HBillType + "','" + HModuleName + "','" + HButtonID + "','" + HButtonName + "'," + HOrder + "," + HHideFlag + "," + HEditFlag + ",'" + HUserName + "'";
+                            string HOtherName = noEditLists[i].HOtherName;
+                            string sql = "exec h_p_Xt_ModuleButtonSet '" + HBillType + "','" + HModuleName + "','" + HButtonID + "','" + HButtonName + "'," + HOrder + "," + HHideFlag + "," + HEditFlag + ",'" + HUserName + "','" + HOtherName + "'";
                             oCN.RunProc(sql);
                         }
                     }
@@ -692,8 +713,6 @@
         }
         #endregion
 
-
-
         #region 鍩虹璧勬枡 鑾峰彇鏁版嵁
         [Route("Gy_GetBaseData/Gy_GetBaseData")]
         [HttpGet]
@@ -731,5 +750,297 @@
             }
         }
         #endregion
+
+        #region 鍗曟嵁缈昏瘧 鍒濆鍖� 鏌ヨ
+        [Route("Xt_grdAlignment_WMES/SelectMESLanguage")]
+        [HttpGet]
+        public object SelectMESLanguage(string sWhere)
+        {
+            try
+            {
+                //鑾峰彇鍏叡鏁版嵁鐨勬暟閲�
+                int count = 0;
+                DataSet dataSet = oCN.RunProcReturn("select * from  h_v_Xt_LanModuleList where 1=1 and HModuleCode in('GYModel')", "h_v_Xt_LanModuleList");
+                if (dataSet.Tables[0].Rows.Count > 0)
+                {
+                    count = dataSet.Tables[0].Rows.Count;
+                }
+
+                //鏍规嵁鍗曟嵁妯″潡鍚嶇О 鍜� 缈昏瘧绫诲瀷 鍘� 妯″潡琛ㄩ噷鏌ヨ 濡傛灉娌℃湁鏁版嵁 灏辨柊澧�,濡傛灉鏈夋暟鎹氨涓嶄繚瀛�
+
+                ds = oCN.RunProcReturn("select * from  h_v_Xt_LanModuleList where 1=1 " + sWhere, "h_v_Xt_LanModuleList");
+
+                objJsonResult.code = "1";
+                objJsonResult.count = count;
+                objJsonResult.Message = "";
+                objJsonResult.data = ds.Tables[0];
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+
+        #region 鍗曟嵁缈昏瘧 鍒濆鍖� 淇濆瓨
+        [Route("Xt_grdAlignment_WMES/SaveMESLanguage")]
+        [HttpPost]
+        public object SaveMESLanguage([FromBody] JObject sMainSub)
+        {
+            try
+            {
+                var _value = sMainSub["sMainSub"].ToString();
+                string msg1 = _value.ToString();
+                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+                string msg2 = sArray[0];
+                string HModName = sArray[1];
+                //濡傛灉娌℃湁鏁版嵁 灏辨柊澧�,濡傛灉鏈夋暟鎹氨涓嶄繚瀛�
+                //閫氳繃,杩涜鍒嗙粍
+                string[] data = msg2.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
+
+                oCN.BeginTran();
+
+                string HBillType = "3033";
+                long HInterID = DBUtility.ClsPub.CreateBillID(HBillType, ref DBUtility.ClsPub.sExeReturnInfo);
+                //瀹氫箟涓�涓┖闆嗗悎 鍘� 鍒ゆ柇鏄惁鏈夐噸澶嶇殑id
+                string[] list = new string[data.Length];
+               
+                //鍒ゆ柇鏄惁璺熷叕鍏卞瓧娈甸噸澶�
+                ds = oCN.RunProcReturn(" select * from  h_v_Xt_LanModuleList where  HModuleCode='GYModel'", "h_v_Xt_LanModuleList");
+                string[] Datalist = new string[ds.Tables[0].Rows.Count];
+
+                if (ds.Tables[0].Rows.Count > 0)
+                {
+                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
+                    {
+                        Datalist[i] = ds.Tables[0].Rows[i]["HFieldCode"].ToString() + ds.Tables[0].Rows[i]["HFieldName"].ToString();
+                    }
+                }
+
+                //瀹氫箟涓�涓� num 鍘诲畾涔� 褰撳墠鐨勭储寮�
+                int num = 0;
+
+                for (int i = 0; i < data.Length; i++)
+                {
+                    string[] Lable = data[i].Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
+
+                    if (Lable.Length == 3) {
+                        
+                        string HFieldCode = Lable[0];
+                        string HFieldName = Lable[1];
+                        string HFieldModelType = Lable[2];
+
+                        if (!list.Contains(HFieldCode + HFieldName) && !Datalist.Contains(HFieldCode + HFieldName))
+                        {
+
+                            list[num] = HFieldCode + HFieldName;
+                            num += 1;
+
+                            oCN.RunProc("insert into Xt_LanModuleSub(HInterID,HEntryID,HFieldModelType,HFieldCode,HFieldName)" +
+                              "values(" + HInterID + "," + num + ",'" + HFieldModelType + "','" + HFieldCode + "','" + HFieldName + "')");
+                        }
+                    }
+                }
+
+                oCN.RunProc("insert into Xt_LanModuleMain(HInterID,HBillType,HModuleName,HModuleCode)" +
+                 "values(" + HInterID + ",'" + HBillType + "','','" + HModName + "')");
+
+                oCN.Commit();
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                oCN.RollBack();
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鎶ラ敊淇℃伅 鏌ヨ
+        [Route("Xt_grdAlignment_WMES/SelectMessageError")]
+        [HttpGet]
+        public object SelectMessageError(string ErrorCode)
+        {
+            try
+            {
+                ds = oCN.RunProcReturn("select * from  Xt_MessageError where HErrorCode='" + ErrorCode + "'", "Xt_MessageError");
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "";
+                objJsonResult.data = ds.Tables[0];
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鍗曟嵁缈昏瘧 鏄犲皠 JSON鏂囦欢
+        internal Dictionary<string, string> LanguageDictionary = new Dictionary<string, string>
+        {
+            { "zh-Hans", "HFieldName"},
+            { "zh-Hant", "HFieldName"},
+            { "en", "HTranslationText_English"},
+            { "es", "HTranslationText_Spain"}
+        };
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="language">璇█</param>
+        /// <param name="forceUpdate">鏄惁寮哄埗鏇存柊</param>
+        /// <returns></returns>
+        [Route("Xt_grdAlignment_WMES/SelectMESLanguage_JSON")]
+        [HttpGet]
+        public object SelectMESLanguage_JSON(string language, bool forceUpdate)
+        {
+            try
+            {
+                // 鑾峰彇椤圭洰鏍圭洰褰�
+                string path = HttpContext.Current.Server.MapPath($"~/LanguagePack"); ;
+                string lang;
+                bool langSuccess = LanguageDictionary.TryGetValue(language, out lang);
+                if(langSuccess == false)
+                {
+                    // 璁剧疆榛樿璇█涓轰腑鏂�
+                    language = "zh-Hans";
+                    lang = "HFieldName";
+                }
+                ds = oCN.RunProcReturn("select * from  h_v_Xt_LanModuleList where 1=1", "h_v_Xt_LanModuleList");
+
+                // 濡傛灉鐩綍涓嶅瓨鍦ㄥ垯鍒涘缓鐩綍
+                if (!Directory.Exists(path))
+                {
+                    Directory.CreateDirectory(path);
+                }
+                // 濡傛灉璇█鍖呬笉瀛樺湪鍒欏垱寤烘柊璇█鍖�
+                if(File.Exists($@"{path}\{language}.json") == false)
+                {
+                    File.WriteAllText($@"{path}\{language}.json", "{}");
+                }
+                
+
+                LogService.Write("璇█鍖呭湴鍧�: " + Path.Combine(path, $"{language}.json"));
+                string JsonStr1 = "";
+                
+                using (StreamReader sr = new StreamReader(Path.Combine(path, $"{language}.json"), Encoding.UTF8))
+                {
+                    string lines;
+                    while ((lines = sr.ReadLine()) != null)//涓�琛屼竴琛屽幓璇伙紝濡傛灉璇诲彇杩欎竴琛岃祴鍊糽ines,骞朵笖lines= null璇佹槑璇诲彇瀹屼簡
+
+                    {
+                        JsonStr1 += lines;
+                    }
+                }
+                JObject languagePack = JObject.Parse(JsonStr1);
+
+                // 鍒ゆ柇鐗堟湰鍙� 鐜板湪MSSQL瀵瑰簲琛ㄤ腑 鏃犵増鏈彿瀛楁 浣跨敤鏁版嵁鏉$洰鏁版浛浠�
+                if(languagePack["_Version"] == null)
+                {
+                    languagePack["_Version"] = 0;
+                }
+                LogService.Write("璇█鍖呬腑鏁版嵁鏉℃暟: " + languagePack["_Version"].ToString() + "\n鏁版嵁搴撲腑鏁版嵁鏉℃暟: " + ds.Tables[0].Rows.Count.ToString());
+                if (languagePack["_Version"].Value<int>() != ds.Tables[0].Rows.Count || forceUpdate == true)
+                {
+                    // 鏇存柊鐗堟湰鍙�(鏁版嵁鏉$洰鏁�)
+                    languagePack["_Version"] = ds.Tables[0].Rows.Count;
+                    // 缁熻姣忎釜瀛楃妯″潡涓� 瀛楁鐮佸嚭鐜扮殑娆℃暟 濡傛灉鍑虹幇澶氭锛屽垯鏄犲皠涓篔Array绫诲瀷
+                    Dictionary<string, int> HFieldCodeDict = ds.Tables[0].AsEnumerable()
+                    .GroupBy(row => new
+                    {
+                        HModuleCode = row.Field<string>("HModuleCode"), 
+                        HFieldCode = row.Field<string>("HFieldCode") 
+                    })
+                    .Select(group => new {
+                        HModuleCode = group.Key.HModuleCode, 
+                        HFieldCode = group.Key.HFieldCode,  
+                        rowNum = group.Count()              
+                    }).ToDictionary(
+                        keySelector: p => $@"{p.HModuleCode}_{p.HFieldCode}",
+                        elementSelector:  p => p.rowNum
+                    );
+
+                    // 鐗堟湰鍙蜂笉涓�鑷� 鍒欒鍙栨暟鎹簱涓殑瀛楁锛屽皢瀛楁鍐欏叆鍒癹son瀵硅薄涓�
+                    foreach (DataRow row in ds.Tables[0].Rows)
+                    {
+                        // 鑾峰彇鎵�鍦ㄦā鍧楀瓧绗︿覆
+                        string HModuleCode = row["HModuleCode"].ToString();
+                        // 娌℃湁妯″潡瀵硅薄鐨勮瘽锛屽垯鏂板缓涓�涓ā鍧楀璞�
+                        if(languagePack[HModuleCode] == null)
+                        {
+                            languagePack[HModuleCode] = new JObject();
+                        }
+
+                        string HFieldCode = row["HFieldCode"].ToString();
+                        int rowNum = 1;
+                        HFieldCodeDict.TryGetValue($@"{row["HModuleCode"]}_{row["HFieldCode"]}", out rowNum);
+                        // 鍒ゆ柇瀛楁鐮佹槧灏勪腑锛屾ā鍧楀搴旂殑瀛楁鐮� 鏄惁 鍞竴
+                        if (rowNum == 1)
+                        {
+                            languagePack[HModuleCode][HFieldCode] = row[lang].ToString();
+                        }else
+                        {
+                            if(languagePack[HModuleCode][HFieldCode] == null)
+                            {
+                                languagePack[HModuleCode][HFieldCode] = new JArray();
+                            }
+
+                            var targetJArray = (JArray)languagePack[HModuleCode][HFieldCode];
+                            targetJArray.Add(row[lang].ToString());
+                        }
+                        
+                    }
+
+                    // 鍏ㄩ噺鍐欏叆鍒癹son鏂囦欢涓�
+                    File.WriteAllText($"{path}/{language}.json", languagePack.ToString(), System.Text.Encoding.UTF8);
+
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "Success锛�";
+                    objJsonResult.data = languagePack.ToString();
+                    return objJsonResult;
+                } else
+                {
+                    // 鐗堟湰鍙蜂竴鑷达紝 鍒欑洿鎺ヨ繑鍥炶鍙栫殑Json瀛楃涓�
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "Success锛�";
+                    objJsonResult.data = JsonStr1;
+                    return objJsonResult;
+                }
+            }
+            catch(Exception e)
+            {
+                LogService.Write("Exception锛�" + e.ToString());
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.Message.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1