From dec7552af8cde2238827016fc761e9701414a96a Mon Sep 17 00:00:00 2001
From: Marvin <marvinhong@163.com>
Date: Wed, 21 Dec 2022 14:16:11 +0800
Subject: [PATCH] =?UTF-8?q?1.=E6=96=B0=E5=A2=9E=E5=A4=96=E5=8C=85=E6=A8=A1?=
 =?UTF-8?q?=E7=BB=84=E7=9A=84FQC=E6=9F=A5=E8=AF=A2OCM016?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../Controllers/FQCController.cs              | 79 ++++++++++++++++++-
 .../Controllers/SYS/UserInfoesController.cs   |  1 +
 2 files changed, 77 insertions(+), 3 deletions(-)

diff --git a/AMESCoreStudio.Web/Controllers/FQCController.cs b/AMESCoreStudio.Web/Controllers/FQCController.cs
index 11b1efae..a831b979 100644
--- a/AMESCoreStudio.Web/Controllers/FQCController.cs
+++ b/AMESCoreStudio.Web/Controllers/FQCController.cs
@@ -36,7 +36,8 @@ namespace AMESCoreStudio.Web.Controllers
         public readonly IPCS _pcsApi;
         public readonly IBAS _basApi;
         public readonly IBLL _bllApi;
-        public FQCController(ILogger<PCSController> logger, IFQC fqcApi, IWebHostEnvironment env, IPCS pcsApi, IBLL bllApi, IBAS basApi)
+        public readonly ISYS _sysApi;
+        public FQCController(ILogger<PCSController> logger, IFQC fqcApi, IWebHostEnvironment env, IPCS pcsApi, IBLL bllApi, IBAS basApi, ISYS sysApi)
         {
             _logger = logger;
             _fqcApi = fqcApi;
@@ -44,6 +45,7 @@ namespace AMESCoreStudio.Web.Controllers
             _pcsApi = pcsApi;
             _bllApi = bllApi;
             _basApi = basApi;
+            _sysApi = sysApi;
         }
 
         #region 下拉選單
@@ -197,6 +199,28 @@ namespace AMESCoreStudio.Web.Controllers
             ViewBag.FactoryInfoList = FactoryInfo;
         }
 
+        /// <summary>
+        /// 廠別/委外廠
+        /// </summary>
+        /// <returns></returns>
+        private async Task GetFactoryInfo2(int factoryID)
+        {
+            var result = await _basApi.GetFactoryInfo(factoryID);
+
+            var FactoryInfo = new List<SelectListItem>();
+            for (int i = 0; i < result.Count; i++)
+            {
+                FactoryInfo.Add(new SelectListItem(result[i].FactoryNo + "-" + result[i].FactoryNameCh, result[i].FactoryID.ToString()));
+            }
+
+            if (FactoryInfo.Count == 0)
+            {
+                FactoryInfo.Add(new SelectListItem("N/A", null));
+            }
+
+            ViewBag.FactoryInfoList = FactoryInfo;
+        }
+
         /// <summary>
         /// QC檢驗工項類型
         /// </summary>
@@ -1583,9 +1607,58 @@ namespace AMESCoreStudio.Web.Controllers
         #endregion
 
         #region FQC008 FQC查詢
-        public async Task<IActionResult> FQC008()
+        public async Task<IActionResult> FQC008(string id)
         {
-            await GetFactoryInfo();
+            string unitNo = null, factoryNo = null;
+            int factoryID = -1;
+            if (id != null)
+            {
+                string[] param = id.Split('_');
+                if (param[0] != null && param[0] != "")
+                {
+                    unitNo = param[0];
+                }
+                if (param.Length > 1)
+                {
+                    if (param[1] != null && param[1] == "OC")
+                    {
+                        if (Request.Cookies["_AMESCookie"] != null)
+                        {
+                            var userID = "";
+                            HttpContext.Request.Cookies.TryGetValue("UserID", out userID);
+                            if (userID != null)
+                            {
+                                if (int.Parse(userID.ToString()) >= 0)
+                                {
+                                    int user_id = int.Parse(userID.ToString());
+                                    var user_info = await _sysApi.GetUserData(user_id);
+
+                                    if (user_info.DataTotal > 0)
+                                    {
+                                        foreach (var item in user_info.Data)
+                                        {
+                                            JObject jo = JObject.Parse(item.ToString());
+                                            factoryNo = jo["factoryNo"].ToString();
+                                            factoryID = int.Parse(jo["factoryID"].ToString());
+                                            ViewBag.UserFactory = factoryNo;
+                                        }
+                                    }
+                                }
+                            }
+
+                        }
+                    }
+                }
+            }
+            if (factoryID >0)
+            {
+                await GetFactoryInfo2(factoryID);
+            }
+            else
+            {
+                await GetFactoryInfo();
+            }
+
             return View();
         }
 
diff --git a/AMESCoreStudio.WebApi/Controllers/SYS/UserInfoesController.cs b/AMESCoreStudio.WebApi/Controllers/SYS/UserInfoesController.cs
index e42427c9..d618bd7b 100644
--- a/AMESCoreStudio.WebApi/Controllers/SYS/UserInfoesController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/SYS/UserInfoesController.cs
@@ -83,6 +83,7 @@ namespace AMESCoreStudio.WebApi.Controllers.SYS
                     {
                         q1.UserID,
                         q1.UserName,
+                        q2.FactoryID,
                         q2.FactoryNo
                     };
             q = q.Where(p => p.UserID == id);